Browse Source

feat: Nix build

tags/0.2.0
Dale 1 week ago
parent
commit
0e12091128
Signed by: Deiru <deiru2k@gmail.com> GPG Key ID: AA250C0277B927E1
17 changed files with 804 additions and 278 deletions
  1. +43
    -2
      default.nix
  2. +10
    -2
      package.json
  3. +150
    -0
      src/domains/landing/components/Landing.tsx
  4. +13
    -8
      src/domains/landing/index.tsx
  5. +152
    -0
      src/domains/status/components/Status.tsx
  6. +0
    -22
      src/domains/status/index.ts
  7. +35
    -0
      src/domains/status/index.tsx
  8. +1
    -1
      src/lib/mastodon.ts
  9. +2
    -3
      src/lib/mumble.ts
  10. +1
    -1
      src/lib/xmpp.ts
  11. +7
    -4
      src/server.ts
  12. +0
    -111
      src/templates/landing/index.ejs
  13. +0
    -0
      src/templates/landing/pages/about_fediverse.ejs
  14. +0
    -120
      src/templates/status/index.ejs
  15. +1
    -1
      static/landing/styles/style.css
  16. +2
    -0
      tsconfig.json
  17. +387
    -3
      yarn.lock

+ 43
- 2
default.nix View File

@@ -1,13 +1,54 @@
with import <nixpkgs> {};

stdenv.mkDerivation {
let
name = "gensoc-status";
version = "0.1.0";
src = ./.;
executableName = "gensoc-status";
nodePkg = pkgs.nodejs-12_x;
yarnPkg = pkgs.yarn.override { nodejs = nodePkg; };
port = 8081;
in mkYarnPackage {
inherit name src version;
system = builtins.currentSystem;

packageJSON = "${src}/package.json";
yarnLock = "${src}/yarn.lock";
doDist = false;

buildInputs = [
automake autoconf m4 git bash
nodejs-10_x libpng libGL gcc
nodejs-10_x libpng libGL gcc makeWrapper
(yarn.override { nodejs = nodejs-10_x; })
];

nativeBuildInputs = [
makeWrapper
];

configurePhase = ''
rm -rf ./node_modules || true
ln -s $node_modules ./node_modules
export PATH=$PATH:$node_modules/.bin/
export NODE_PATH=$NODE_PATH:$node_modules
'';

buildPhase = ''
yarn build:server
'';

installPhase = ''
mkdir $out
cp -R dist/* $out/
cp -R static $out/static
makeWrapper ${nodePkg}/bin/node $out/bin/${executableName} \
--add-flags $out/server.js \
--set NODE_PATH $NODE_PATH:$out:$node_modules \
--set STATIC_PATH $out/static \
--set PORT ${toString port}
'';

distPhase = ''
true
'';
}

+ 10
- 2
package.json View File

@@ -11,25 +11,33 @@
"build:server": "./node_modules/.bin/webpack --config webpack.config.server.js"
},
"dependencies": {
"@emotion/core": "^10.0.35",
"@nrk/nodecache-as-promised": "^1.3.4",
"@xmpp/client": "^0.7.3",
"async-shelljs": "^0.1.2",
"axios": "^0.19.0",
"ejs": "^2.6.1",
"classnames": "^2.2.6",
"cors": "^2.8.5",
"ejs": "^2.6.1",
"emotion": "^10.0.27",
"express": "^4.17.1",
"gamedig": "^2.0.14",
"mumble-ping": "^1.0.0",
"ramda": "^0.26.1",
"react": "^16.13.1",
"react-dom": "^16.13.1",
"shelljs": "^0.8.3"
},
"devDependencies": {
"@types/classnames": "^2.2.10",
"@types/ejs": "^2.6.3",
"@types/express": "^4.16.1",
"@types/gamedig": "^1.0.0",
"@types/node": "^12.0.4",
"@types/node": "^14.11.5",
"@types/node-xmpp-client": "^3.1.4",
"@types/ramda": "^0.26.9",
"@types/react": "^16.9.51",
"@types/react-dom": "^16.9.8",
"@types/shelljs": "^0.8.5",
"@types/superagent": "^4.1.1",
"copy-webpack-plugin": "^5.0.3",


+ 150
- 0
src/domains/landing/components/Landing.tsx View File

@@ -0,0 +1,150 @@
import React, { FC } from 'react';
import { MumbleStatus } from 'src/lib/mumble';
import { XMPPStatus } from 'src/lib/xmpp';
import { MastodonStatus } from 'src/lib/mastodon';

import cn from 'classnames';

type Props = {
mastodon: MastodonStatus,
mumble: MumbleStatus,
xmpp: XMPPStatus,
staticHost?: string,
}

const Landing: FC<Props> = ({ mastodon, mumble, xmpp, staticHost = 'http://localhost:8080' }) => (
<html>
<head>
<title>GenSoc Network</title>
<meta name="viewport" content="width=device-width, initial-scale=1" />
<script src="https://kit.fontawesome.com/8b6623489d.js"></script>
<link rel="stylesheet" type="text/css" href={`${staticHost}/static/landing/styles/style.css?v=1.0`} />
</head>
<body>
<div className="grid-container">
<div className="grid-cell">
<div className="yuyuko-cell">
<div className="yuyuko-bg img-bg"></div>
<h3>Gensokyo.social</h3>
<hr className="break" />
<h4>A Free <a href="https://en.wikipedia.org/wiki/Fediverse" target="blank_">Fediverse</a> Node.</h4>
<ul className="feature-list">
<li>Fully-automated Luxury Gay Yokai Communism:</li>
<li>Running Mastodon {mastodon.version}</li>
<li>Providing social network services and more</li>
<li>Operating on <a target="_blank" href="https://nixos.org">NixOS</a> from <a target="_blank" href="https://www.openstreetmap.org/search?query=Limburger%20Str.%2045%2C%2065555%20Limburg%20an%20der%20Lahn#map=19/50.40888/8.06255">Limburg, Germany</a></li>
<li>Proudly using <a href="https://jortage.com" target="_blank">Jortage</a></li>
<li>Serving dinner</li>
</ul>
</div>
</div>
<div className="grid-cell">
<div className="youmu-cell">
<div className="img-bg youmu-bg"></div>
<h3>Mastodon</h3>
<hr className="break" />
<h4>Is it dinner yet?</h4>
<p style={{
padding: "10px", backgroundColor: "var(--Warning)",
color: "black", borderRadius: "2px",
marginTop: "10px", display: "inline-block",
}}>
Due to onslaught of bots we have enabled applications. <br />
The only requirement is to sound like an actual human
</p>
<ul className="links">
<li><a href="https://gensokyo.social/auth/sign_in" className="youmu-link">Sign Up</a></li>
<li><a href="https://gensokyo.social/auth/sign_up" className="youmu-link">Log In</a></li>
<li><a href="https://gensokyo.social/web/timelines/home" className="youmu-link">Home</a></li>
<li><a href="https://gensokyo.social/about" className="youmu-link">About Page</a></li>
</ul>
</div>
</div>
<div className="grid-cell">
<div className="yuuka-cell">
<div className="yuuka-bg img-bg"></div>
<h3>New user?</h3>
<hr className="break" />
<h4>Here's the rundown</h4>
<ul className="links">
<li><a href="https://medium.com/@VirtualAdept/a-friendly-introduction-to-the-fediverse-5b4ef3f8ed0e" target="_blank" className="yuuka-link">What's Fediverse?</a></li>
<li><a href="https://blog.joinmastodon.org/2018/08/mastodon-quick-start-guide/" target="_blank" className="yuuka-link">Learn the Ropes</a></li>
<li><a href="https://www.notion.so/deiru/Rules-and-Code-of-Conduct-aa95638c4aa148c1b6139f297ff0318b" target="_blank" className="yuuka-link">Read the Rules</a></li>
<li><a href="https://www.notion.so/Terms-of-Service-5a5782fe41ea4fff86ff85bb074f2046" target="_blank" className="yuuka-link">Study the Terms of Service</a></li>
</ul>
</div>
</div>
<div className="grid-cell">
<div className="byakuren-cell">
<div className="byakuren-bg img-bg"></div>
<h3>Services Status</h3>
<hr className="break" />
<h4>See how we\'re doing.</h4>
<table className="services-list">
<tbody>
<tr>
<td>{'<*>'}</td>
<td>Mastodon</td>
<td>{mastodon.online ? 'Online' : 'Offline'}</td>
<td>
<span className={cn({
"text-success": mastodon.online,
"text-fail": !mastodon.online,
})}>
</span>
</td>
</tr>
<tr>
<td>{'<*>'}</td>
<td>Mumble</td>
<td>{mumble.online ? 'Online' : 'Offline'}</td>
<td>
<span className={cn({
"text-success": mumble.online,
"text-fail": !mumble.online,
})}>
</span>
</td>
</tr>
<tr>
<td>{'<*>'}</td>
<td>XMPP</td>
<td>{xmpp.online ? 'Online' : 'Offline'}</td>
<td>
<span className={cn({
"text-success": xmpp.online,
"text-fail": !xmpp.online,
})}>
</span>
</td>
</tr>
</tbody>
</table>
{xmpp.unstable && (
<div style={{
padding: "10px", backgroundColor: "var(--Warning)",
color: "black", borderRadius: "2px",
marginTop: "10px", display: "inline-block",
}}>
XMPP is currently wonky.
Do not rely on status that much
</div>
)}
<div style={{marginTop: "15px"}}>
Refer to <a target="_blank" href="https://status.gensokyo.social">Status page</a> for more details.
</div>
<ul className="bottom-links">
<li><a href="https://code.gensokyo.social/Gensokyo.social/status" target="_blank">Code</a></li>
<li><a href="https://www.notion.so/GenSoc-4ea8d54e1d494d02a6c952492380a87f" target="_blank" className="yuuka-link">GenSoc Central</a></li>
</ul>
</div>
</div>
</div>
</body>
</html>
);

export default Landing

src/domains/landing/index.ts → src/domains/landing/index.tsx View File

@@ -1,7 +1,9 @@
import React from 'react';
import { Router } from 'express';
import * as ejs from 'ejs';

import { getFromCache } from 'src/lib/status';
import Landing from './components/Landing';
import { renderToString } from 'react-dom/server';

const development = process.env.NODE_ENV === 'development';
const STATIC_HOST = development ? 'http://localhost:8080' : 'https://gensokyo.network';
@@ -9,13 +11,16 @@ const STATIC_HOST = development ? 'http://localhost:8080' : 'https://gensokyo.ne
const router = Router();
router.get('/', (_, res) => {
getFromCache().then(([mastodonStatus, mumbleStatus, XMPPStatus]) => {
ejs.renderFile(
'./src/templates/landing/index.ejs',
{ mastodonStatus, mumbleStatus, XMPPStatus, staticHost: STATIC_HOST}, {},
(_, str) => {
res.status(200).send(str);
},
);
const statusPage = (
<Landing
mastodon={mastodonStatus}
mumble={mumbleStatus}
xmpp={XMPPStatus}
staticHost={STATIC_HOST}
/>
)
const page = renderToString(statusPage);
res.status(200).send(page);
})
});


+ 152
- 0
src/domains/status/components/Status.tsx View File

@@ -0,0 +1,152 @@
import React, { FC } from 'react';
import { MastodonStatus } from 'src/lib/mastodon';
import { MumbleStatus } from 'src/lib/mumble';
import { XMPPStatus } from 'src/lib/xmpp';

import cn from 'classnames';

type Props = {
mastodon: MastodonStatus;
mumble: MumbleStatus;
xmpp: XMPPStatus;
staticHost?: string;
};

const Status: FC<Props> = ({ mastodon, mumble, xmpp, staticHost = 'http://localhost:8080' }) => (
<html>
<head>
<title>GenSoc Status</title>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" />
<link rel="stylesheet" href={`${staticHost}/static/status/style.css`} />
<meta name="viewport" content="width=device-width, initial-scale=1" />
</head>
<body style={{position: "relative"}}>
<div className="container mt-5">
<div className="row">
<div className="col col-md-12">
<h3>
Gensokyo.social services status page<br />
<small className="text-muted">
We offer a number of services for our users. Here you can monitor their status and find useful info on how to use them
</small>
</h3>
</div>
</div>
<hr />
<div className="row mt-3">
<div className="col col-md-12">
<div className="card">
<div className={cn('card-body', 'text-white', {
'bg-success': mastodon.online,
'bg-danger': !mastodon.online,
})} >
<h5 className="card-title">Mastodon is { mastodon.online ? "Online" : "Offline" }</h5>
<p className="card-text">
Free and decentralized microblogging social network
</p>
</div>
<ul className="list-group list-group-flush">
<li className="list-group-item">
Version: <span className="badge badge-primary">{mastodon.version}</span>
</li>
<li className="list-group-item">
Total users: <span className="badge badge-primary">{mastodon.totalUsers}</span>
</li>
<li className="list-group-item">
Total statuses: <span className="badge badge-primary">{mastodon.totalStatuses}</span>
</li>
<li className="list-group-item">
Known domains: <span className="badge badge-primary">{mastodon.knownDomains}</span>
</li>
</ul>
<div className="card-body">
<a href="https://gensokyo.social" target="_blank" className="card-link">Visit site</a>
</div>
<div className="card-body">
<a href="https://gensokyo.social/explore" target="_blank" className="card-link">Profile directory</a>
<a className="card-link" target="_blank" href="https://www.notion.so/deiru/Rules-and-Code-of-Conduct-aa95638c4aa148c1b6139f297ff0318b">Rules</a>
<a className="card-link" target="_blank" href="https://www.notion.so/Terms-of-Service-5a5782fe41ea4fff86ff85bb074f2046">Terms of Service</a>
</div>
<div className="card-body">
<a href="https://tusky.app" target="_blank" className="card-link">Android Client</a>
<a href="https://itunes.apple.com/us/app/toot/id1229021451?mt=8" target="_blank" className="card-link">iOS Client</a>
</div>
</div>
</div>
</div>
<hr />
<div className="row mt-3">
<div className="col col-md-12">
<div className="card">
<div className={cn('card-body', 'text-white', {
'bg-success': mumble.online,
'bg-danger': !mumble.online,
})} >
<h5 className="card-title">Mumble is {mumble.online ? "Online" : "Offline"} </h5>
<p className="card-text">
Free voice chat with positional audio and overlay support
</p>
</div>
{mumble.online && (
<ul className="list-group list-group-flush">
<li className="list-group-item">
Current users: <span className="badge badge-primary">{mumble.currentUsers} / {mumble.maxUsers}</span>
</li>
</ul>
)}
<div className="card-body">
<span className="card-link">Server address: gensokyo.social</span>
<a href="https://wiki.mumble.info/wiki/Main_Page" target="_blank" className="card-link">Client</a>
</div>
</div>
</div>
</div>
<hr />
<div className="row mt-3 mb-5">
<div className="col col-md-12">
<div className="card">
<div className={cn('card-body', 'text-white', {
'bg-success': xmpp.online,
'bg-danger': !xmpp.online,
})} >
<h5 className="card-title">XMPP is {xmpp.online ? "Online" : "Offline"} </h5>
<p className="card-text">
Free and Secure decentralized messenger with strong encryption support
</p>
</div>
{xmpp.unstable && (
<div className="card-body alert alert-warning" style={{margin: 0, width: "100%"}}>
<b>XMPP</b> and it's status checker are currently <i><b>unstable</b></i>. Please check in with the services manualy
</div>
)}
<div className="card-body">
<span className="card-link">Server address: gensokyo.social</span>
<a href="https://gajim.org" target="_blank" className="card-link">Desktop Client</a>
<a href="https://conversations.im" target="_blank" className="card-link">Android Client</a>
<a href="https://itunes.apple.com/us/app/monal-free-xmpp-chat/id317711500" target="_blank" className="card-link">iOS Client</a>
</div>
</div>
</div>
</div>
</div>
<footer className="footer mt-auto py-3" style={{position: "sticky", bottom: 0, background: "white"}}>
<div className="container">
<span className="text-muted">
<span className="footer-links">
<a href="https://gensokyo.social">GenSoc</a>
<a target="_blank" href="https://code.gensokyo.social/Gensokyo.social/status">Source Code</a>
</span>
<span className="footer-links">
<a target="_blank" href="https://www.notion.so/GenSoc-4ea8d54e1d494d02a6c952492380a87f">Knowledge Hub</a>
<a target="_blank" href="https://www.notion.so/720ca25bfb5c44eba9610bbe9351acb1?v=72300b507b114fea9be2cd07e383a228">Task Log</a>
<a target="_blank" href="https://www.notion.so/deiru/Rules-and-Code-of-Conduct-aa95638c4aa148c1b6139f297ff0318b">Rules</a>
<a target="_blank" href="https://www.notion.so/Terms-of-Service-5a5782fe41ea4fff86ff85bb074f2046">Terms of Service</a>
</span>
</span>
</div>
</footer>
</body>
</html>
);

export default Status;

+ 0
- 22
src/domains/status/index.ts View File

@@ -1,22 +0,0 @@
import { Router } from 'express';
import * as ejs from 'ejs';

import { getFromCache } from 'src/lib/status';

const development = process.env.NODE_ENV === 'development';
const STATIC_HOST = development ? 'http://localhost:8080' : 'https://gensokyo.network';

const router = Router();
router.get('/', (_, res) => {
getFromCache().then(([mastodonStatus, mumbleStatus, XMPPStatus]) => {
ejs.renderFile(
'./src/templates/status/index.ejs',
{ mastodonStatus, mumbleStatus, XMPPStatus, staticHost: STATIC_HOST}, {},
(_, str) => {
res.status(200).send(str);
},
);
})
});

export default router;

+ 35
- 0
src/domains/status/index.tsx View File

@@ -0,0 +1,35 @@
import React from "react";

import { Router } from "express";
import { renderToString } from "react-dom/server";

import Status from './components/Status';

import { getFromCache } from 'src/lib/status';

const development = process.env.NODE_ENV === 'development';
const STATIC_HOST = development ? 'http://localhost:8080' : 'https://gensokyo.network';

const router = Router();
router.get('/', (_, res) => {
getFromCache().then(([mastodonStatus, mumbleStatus, XMPPStatus]) => {
const statusPage = (
<Status
mastodon={mastodonStatus}
mumble={mumbleStatus}
xmpp={XMPPStatus}
/>
)
const page = renderToString(statusPage);
res.status(200).send(page);
// ejs.renderFile(
// './src/templates/status/index.ejs',
// { mastodonStatus, mumbleStatus, XMPPStatus, staticHost: STATIC_HOST}, {},
// (_, str) => {
// res.status(200).send(str);
// },
// );
})
});

export default router;

+ 1
- 1
src/lib/mastodon.ts View File

@@ -6,7 +6,7 @@ import config from '../config';

(tls as any).DEFAULT_ECDH_CURVE = 'auto';

interface MastodonStatus {
export interface MastodonStatus {
online: boolean;
totalUsers?: number;
totalStatuses?: number;


+ 2
- 3
src/lib/mumble.ts View File

@@ -1,7 +1,6 @@
import * as R from 'ramda';
import * as MumblePing from 'mumble-ping';
import MumblePing from 'mumble-ping';

interface MumbleStatus {
export interface MumbleStatus {
online: boolean,
currentUsers?: number,
maxUsers?: number,


+ 1
- 1
src/lib/xmpp.ts View File

@@ -1,6 +1,6 @@
import * as shelljs from 'async-shelljs'

interface XMPPStatus {
export interface XMPPStatus {
online: boolean;
unstable?: boolean;
}


+ 7
- 4
src/server.ts View File

@@ -1,4 +1,4 @@
import * as Express from 'express';
import Express from 'express';
import cors = require('cors');


@@ -8,6 +8,9 @@ import landingRouter from 'src/domains/landing';

const app = Express();

const STATIC_PATH = process.env.STATIC_PATH || './static';
const PORT = process.env.PORT || 8080;

const developing = process.env.NODE_ENV === 'development';

const domains = developing ? {
@@ -20,9 +23,9 @@ const domains = developing ? {

const dispatcher = serveDomains(domains);

app.use('/static', cors(), Express.static('static'));
app.use('/static', cors(), Express.static(STATIC_PATH));
app.use(dispatcher);

app.listen(8080, () => {
console.log('listening on 8080')
app.listen(PORT, () => {
console.log(`listening on ${PORT}`)
});

+ 0
- 111
src/templates/landing/index.ejs View File

@@ -1,111 +0,0 @@
<html>
<head>
<title>GenSoc Network</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<script src="https://kit.fontawesome.com/8b6623489d.js" crossorigin="anonymous"></script>
<link rel="stylesheet" type="text/css" href="<%= staticHost %>/static/landing/styles/style.css?v=1.0"
<!-- inject:css -->
<!-- only importantFile.js will be injected here -->
<!-- endinject -->
</head>
<body>
<div class="grid-container">
<div class="grid-cell">
<div class="yuyuko-cell">
<div class="yuyuko-bg img-bg"></div>
<h3>Gensokyo.social</h3>
<hr class="break" />
<h4>A Free <a href="https://en.wikipedia.org/wiki/Fediverse" target="blank_">Fediverse</a> Node.</h4>
<ul class="feature-list">
<li>Fully-automated Luxury Gay Yokai Communism:</li>
<li>Running Mastodon <%= mastodonStatus.version %></li>
<li>Providing social network services and more</li>
<li>Operating on <a target="_blank" href="https://nixos.org">NixOS</a> from <a target="_blank" href="https://www.openstreetmap.org/search?query=Limburger%20Str.%2045%2C%2065555%20Limburg%20an%20der%20Lahn#map=19/50.40888/8.06255">Limburg, Germany</a>
<li>Proudly using <a href="https://jortage.com" target="_blank">Jortage</a></li>
<li>Serving dinner</li>
</ul>
</div>
</div>
<div class="grid-cell">
<div class="youmu-cell">
<div class="img-bg youmu-bg"></div>
<h3>Mastodon</h3>
<hr class="break" />
<h4>Is it dinner yet?</h4>
<ul class="links">
<li><a href="https://gensokyo.social/auth/sign_in" class="youmu-link">Sign Up</a></li>
<li><a href="https://gensokyo.social/auth/sign_up" class="youmu-link">Log In</a></li>
<li><a href="https://gensokyo.social/web/timelines/home" class="youmu-link">Home</a></li>
<li><a href="https://gensokyo.social/about" class="youmu-link">About Page</a></li>
</ul>
</div>
</div>
<div class="grid-cell">
<div class="yuuka-cell">
<div class="yuuka-bg img-bg"></div>
<h3>New user?</h3>
<hr class="break" />
<h4>Here's the rundown</h4>
<ul class="links">
<li><a href="https://medium.com/@VirtualAdept/a-friendly-introduction-to-the-fediverse-5b4ef3f8ed0e" target="_blank" class="yuuka-link">What's Fediverse?</a></li>
<li><a href="https://blog.joinmastodon.org/2018/08/mastodon-quick-start-guide/" target="_blank" class="yuuka-link">Learn the Ropes</a></li>
<li><a href="https://www.notion.so/deiru/Rules-and-Code-of-Conduct-aa95638c4aa148c1b6139f297ff0318b" target="_blank" class="yuuka-link">Read the Rules</a></li>
<li><a href="https://www.notion.so/Terms-of-Service-5a5782fe41ea4fff86ff85bb074f2046" target="_blank" class="yuuka-link">Study the Terms of Service</a></li>
</ul>
</div>
</div>
<div class="grid-cell">
<div class="byakuren-cell">
<div class="byakuren-bg img-bg"></div>
<h3>Services Status</h3>
<hr class="break" />
<h4>See how we're doing.</h4>
<table class="services-list">
<tbody>
<tr>
<td><*></td>
<td>Mastodon</td>
<% if (mastodonStatus.online) { %>
<td>Online</td>
<td><span class="text-success">●</span></td>
<% } else { %>
<td>Offline</td>
<td><span class="text-fail">●</span></td>
<% } %>
</tr>
<tr>
<td><*></td>
<td>Mumble</td>
<% if (mumbleStatus.online) { %>
<td>Online</td>
<td><span class="text-success">●</span></td>
<% } else { %>
<td>Offline</td>
<td><span class="text-fail">●</span></td>
<% } %>
</tr>
<tr>
<td><*></td>
<td>XMPP</td>
<% if (XMPPStatus.online) { %>
<td>Online</td>
<td><span class="text-success">●</span></td>
<% } else { %>
<td>Offline</td>
<td><span class="text-fail">●</span></td>
<% } %>
</tr>
</tbody>
</table>
<div style="margin-top: 15px;">
Refer to <a target="_blank" href="https://status.gensokyo.social">Status page</a> for more details.
</div>
<ul class="bottom-links">
<li><a href="https://code.gensokyo.social/Gensokyo.social/status" target="_blank">Code</a></li>
<li><a href="https://www.notion.so/GenSoc-4ea8d54e1d494d02a6c952492380a87f" target="_blank" class="yuuka-link">GenSoc Central</a></li>
</ul>
</div>
</div>
</div>
</body>
</html>

+ 0
- 0
src/templates/landing/pages/about_fediverse.ejs View File


+ 0
- 120
src/templates/status/index.ejs View File

@@ -1,120 +0,0 @@
<html>
<head>
<title>GenSoc Status</title>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
<link rel="stylesheet" href="<%= staticHost %>/static/status/style.css" />
<meta name="viewport" content="width=device-width, initial-scale=1">
</head>
<body style="position: relative">
<div class="container mt-5">
<div class="row">
<div class="col col-md-12">
<h3>
Gensokyo.social services status page<br />
<small class="text-muted">We offer a number of services for our users. Here you can monitor their status and find useful info on how to use them</small>
</h3>
</div>
</div>
<hr />
<div class="row mt-3">
<div class="col col-md-12">
<div class="card">
<div class="card-body <% if (mastodonStatus.online) { %>bg-success<% } else { %>bg-error<% } %> text-white">
<h5 class="card-title">Mastodon is <% if (mastodonStatus.online) { %> Online <% } else { %>Offline<% } %></h5>
<p class="card-text">
Free and decentralized microblogging social network
</p>
</div>
<ul class="list-group list-group-flush">
<li class="list-group-item">
Version: <span class="badge badge-primary"><%= mastodonStatus.version %></span>
</li>
<li class="list-group-item">
Total users: <span class="badge badge-primary"><%= mastodonStatus.totalUsers %></span>
</li>
<li class="list-group-item">
Total statuses: <span class="badge badge-primary"><%= mastodonStatus.totalStatuses %></span>
</li>
<li class="list-group-item">
Known domains: <span class="badge badge-primary"><%= mastodonStatus.knownDomains %></span>
</li>
</ul>
<div class="card-body">
<a href="https://gensokyo.social" target="_blank" class="card-link">Visit site</a>
</div>
<div class="card-body">
<a href="https://gensokyo.social/explore" target="_blank" class="card-link">Profile directory</a>
<!-- <a href="https://gensokyo.social/about/more" target="_blank" class="card-link">Rules</a> -->
<!-- <a href="https://gensokyo.social/terms" target="_blank" class="card-link">Terms of Service</a> -->
<a class="card-link" target="_blank" href="https://www.notion.so/deiru/Rules-and-Code-of-Conduct-aa95638c4aa148c1b6139f297ff0318b">Rules</a>
<a class="card-link" target="_blank" href="https://www.notion.so/Terms-of-Service-5a5782fe41ea4fff86ff85bb074f2046">Terms of Service</a>
</div>
<div class="card-body">
<a href="https://tusky.app" target="_blank" class="card-link">Android Client</a>
<a href="https://itunes.apple.com/us/app/toot/id1229021451?mt=8" target="_blank" class="card-link">iOS Client</a>
</div>
</div>
</div>
</div>
<hr />
<div class="row mt-3">
<div class="col col-md-12">
<div class="card">
<div class="card-body <% if (mumbleStatus.online) { %>bg-success<% } else { %>bg-danger<% } %> text-white">
<h5 class="card-title">Mumble is <% if (mumbleStatus.online) { %> Online <% } else { %>Offline<% } %></h5>
<p class="card-text">
Free voice chat with positional audio and overlay support
</p>
</div>
<% if (mumbleStatus.online) { %>
<ul class="list-group list-group-flush">
<li class="list-group-item">
Current users: <span class="badge badge-primary"><%= mumbleStatus.currentUsers %> / <%= mumbleStatus.maxUsers %></span>
</li>
</ul>
<% } %>
<div class="card-body">
<span class="card-link">Server address: gensokyo.social</span>
<a href="https://wiki.mumble.info/wiki/Main_Page" target="_blank" class="card-link">Client</a>
</div>
</div>
</div>
</div>
<hr />
<div class="row mt-3 mb-5">
<div class="col col-md-12">
<div class="card">
<div class="card-body <% if (XMPPStatus.online) { %>bg-success<% } else { %>bg-danger<% } %> text-white">
<h5 class="card-title">XMPP is <% if (XMPPStatus.online) { %> Online <% } else { %>Offline<% } %></h5>
<p class="card-text">
Free and Secure decentralized messenger with strong encryption support
</p>
</div>
<div class="card-body">
<span class="card-link">Server address: gensokyo.social</span>
<a href="https://gajim.org" target="_blank" class="card-link">Desktop Client</a>
<a href="https://conversations.im" target="_blank" class="card-link">Android Client</a>
<a href="https://itunes.apple.com/us/app/monal-free-xmpp-chat/id317711500" target="_blank" class="card-link">iOS Client</a>
</div>
</div>
</div>
</div>
</div>
<footer class="footer mt-auto py-3" style="position: sticky; bottom: 0; background: white;">
<div class="container">
<span class="text-muted">
<span class="footer-links">
<a href="https://gensokyo.social">GenSoc</a>
<a target="_blank" href="https://code.gensokyo.social/Gensokyo.social/status">Source Code</a>
</span>
<span class="footer-links">
<a target="_blank" href="https://www.notion.so/GenSoc-4ea8d54e1d494d02a6c952492380a87f">Knowledge Hub</a>
<a target="_blank" href="https://www.notion.so/720ca25bfb5c44eba9610bbe9351acb1?v=72300b507b114fea9be2cd07e383a228">Task Log</a>
<a target="_blank" href="https://www.notion.so/deiru/Rules-and-Code-of-Conduct-aa95638c4aa148c1b6139f297ff0318b">Rules</a>
<a target="_blank" href="https://www.notion.so/Terms-of-Service-5a5782fe41ea4fff86ff85bb074f2046">Terms of Service</a>
</span>
</span>
</div>
</footer>
</body>
</html>

+ 1
- 1
static/landing/styles/style.css View File

@@ -232,7 +232,7 @@ ul.bottom-links > li {
--Test: #000000;
--Success: #32c900;
--Fail: #c90000;
--Warning: #e8eb31;
--Warning: #D9DB40;
--YuyukoBackground: #FF6FB7;
--YuyukoText: white;
--YoumuBackground: #30AA2A;


+ 2
- 0
tsconfig.json View File

@@ -4,6 +4,8 @@
"outDir": "tsDist",
"moduleResolution": "node",
"module": "commonjs",
"jsx": "react",
"esModuleInterop": true,
"target": "es6",
"resolveJsonModule": true,
"typeRoots": [ "node_modules/@types", "./src/typings.d.ts" ],


+ 387
- 3
yarn.lock View File

@@ -2,6 +2,127 @@
# yarn lockfile v1


"@babel/code-frame@^7.0.0":
version "7.10.4"
resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.10.4.tgz#168da1a36e90da68ae8d49c0f1b48c7c6249213a"
integrity sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==
dependencies:
"@babel/highlight" "^7.10.4"

"@babel/helper-module-imports@^7.0.0":
version "7.10.4"
resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.10.4.tgz#4c5c54be04bd31670a7382797d75b9fa2e5b5620"
integrity sha512-nEQJHqYavI217oD9+s5MUBzk6x1IlvoS9WTPfgG43CbMEeStE0v+r+TucWdx8KFGowPGvyOkDT9+7DHedIDnVw==
dependencies:
"@babel/types" "^7.10.4"

"@babel/helper-validator-identifier@^7.10.4":
version "7.10.4"
resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz#a78c7a7251e01f616512d31b10adcf52ada5e0d2"
integrity sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==

"@babel/highlight@^7.10.4":
version "7.10.4"
resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.10.4.tgz#7d1bdfd65753538fabe6c38596cdb76d9ac60143"
integrity sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==
dependencies:
"@babel/helper-validator-identifier" "^7.10.4"
chalk "^2.0.0"
js-tokens "^4.0.0"

"@babel/runtime@^7.5.5", "@babel/runtime@^7.7.2":
version "7.11.2"
resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.11.2.tgz#f549c13c754cc40b87644b9fa9f09a6a95fe0736"
integrity sha512-TeWkU52so0mPtDcaCTxNBI/IHiz0pZgr8VEFqXFtZWpYD08ZB6FaSwVAS8MKRQAP3bYKiVjwysOJgMFY28o6Tw==
dependencies:
regenerator-runtime "^0.13.4"

"@babel/types@^7.10.4":
version "7.11.5"
resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.11.5.tgz#d9de577d01252d77c6800cee039ee64faf75662d"
integrity sha512-bvM7Qz6eKnJVFIn+1LPtjlBFPVN5jNDc1XmN15vWe7Q3DPBufWWsLiIvUu7xW87uTG6QoggpIDnUgLQvPheU+Q==
dependencies:
"@babel/helper-validator-identifier" "^7.10.4"
lodash "^4.17.19"
to-fast-properties "^2.0.0"

"@emotion/cache@^10.0.27":
version "10.0.29"
resolved "https://registry.yarnpkg.com/@emotion/cache/-/cache-10.0.29.tgz#87e7e64f412c060102d589fe7c6dc042e6f9d1e0"
integrity sha512-fU2VtSVlHiF27empSbxi1O2JFdNWZO+2NFHfwO0pxgTep6Xa3uGb+3pVKfLww2l/IBGLNEZl5Xf/++A4wAYDYQ==
dependencies:
"@emotion/sheet" "0.9.4"
"@emotion/stylis" "0.8.5"
"@emotion/utils" "0.11.3"
"@emotion/weak-memoize" "0.2.5"

"@emotion/core@^10.0.35":
version "10.0.35"
resolved "https://registry.yarnpkg.com/@emotion/core/-/core-10.0.35.tgz#513fcf2e22cd4dfe9d3894ed138c9d7a859af9b3"
integrity sha512-sH++vJCdk025fBlRZSAhkRlSUoqSqgCzYf5fMOmqqi3bM6how+sQpg3hkgJonj8GxXM4WbD7dRO+4tegDB9fUw==
dependencies:
"@babel/runtime" "^7.5.5"
"@emotion/cache" "^10.0.27"
"@emotion/css" "^10.0.27"
"@emotion/serialize" "^0.11.15"
"@emotion/sheet" "0.9.4"
"@emotion/utils" "0.11.3"

"@emotion/css@^10.0.27":
version "10.0.27"
resolved "https://registry.yarnpkg.com/@emotion/css/-/css-10.0.27.tgz#3a7458198fbbebb53b01b2b87f64e5e21241e14c"
integrity sha512-6wZjsvYeBhyZQYNrGoR5yPMYbMBNEnanDrqmsqS1mzDm1cOTu12shvl2j4QHNS36UaTE0USIJawCH9C8oW34Zw==
dependencies:
"@emotion/serialize" "^0.11.15"
"@emotion/utils" "0.11.3"
babel-plugin-emotion "^10.0.27"

"@emotion/hash@0.8.0":
version "0.8.0"
resolved "https://registry.yarnpkg.com/@emotion/hash/-/hash-0.8.0.tgz#bbbff68978fefdbe68ccb533bc8cbe1d1afb5413"
integrity sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow==

"@emotion/memoize@0.7.4":
version "0.7.4"
resolved "https://registry.yarnpkg.com/@emotion/memoize/-/memoize-0.7.4.tgz#19bf0f5af19149111c40d98bb0cf82119f5d9eeb"
integrity sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw==

"@emotion/serialize@^0.11.15", "@emotion/serialize@^0.11.16":
version "0.11.16"
resolved "https://registry.yarnpkg.com/@emotion/serialize/-/serialize-0.11.16.tgz#dee05f9e96ad2fb25a5206b6d759b2d1ed3379ad"
integrity sha512-G3J4o8by0VRrO+PFeSc3js2myYNOXVJ3Ya+RGVxnshRYgsvErfAOglKAiy1Eo1vhzxqtUvjCyS5gtewzkmvSSg==
dependencies:
"@emotion/hash" "0.8.0"
"@emotion/memoize" "0.7.4"
"@emotion/unitless" "0.7.5"
"@emotion/utils" "0.11.3"
csstype "^2.5.7"

"@emotion/sheet@0.9.4":
version "0.9.4"
resolved "https://registry.yarnpkg.com/@emotion/sheet/-/sheet-0.9.4.tgz#894374bea39ec30f489bbfc3438192b9774d32e5"
integrity sha512-zM9PFmgVSqBw4zL101Q0HrBVTGmpAxFZH/pYx/cjJT5advXguvcgjHFTCaIO3enL/xr89vK2bh0Mfyj9aa0ANA==

"@emotion/stylis@0.8.5":
version "0.8.5"
resolved "https://registry.yarnpkg.com/@emotion/stylis/-/stylis-0.8.5.tgz#deacb389bd6ee77d1e7fcaccce9e16c5c7e78e04"
integrity sha512-h6KtPihKFn3T9fuIrwvXXUOwlx3rfUvfZIcP5a6rh8Y7zjE3O06hT5Ss4S/YI1AYhuZ1kjaE/5EaOOI2NqSylQ==

"@emotion/unitless@0.7.5":
version "0.7.5"
resolved "https://registry.yarnpkg.com/@emotion/unitless/-/unitless-0.7.5.tgz#77211291c1900a700b8a78cfafda3160d76949ed"
integrity sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg==

"@emotion/utils@0.11.3":
version "0.11.3"
resolved "https://registry.yarnpkg.com/@emotion/utils/-/utils-0.11.3.tgz#a759863867befa7e583400d322652a3f44820924"
integrity sha512-0o4l6pZC+hI88+bzuaX/6BgOvQVhbt2PfmxauVaYOGgbsAw14wdKyvMCZXnsnsHys94iadcF+RG/wZyx6+ZZBw==

"@emotion/weak-memoize@0.2.5":
version "0.2.5"
resolved "https://registry.yarnpkg.com/@emotion/weak-memoize/-/weak-memoize-0.2.5.tgz#8eed982e2ee6f7f4e44c253e12962980791efd46"
integrity sha512-6U71C2Wp7r5XtFtQzYrW5iKFT67OixrSxjI4MptCHzdSVlgabczzqLe0ZSgnub/5Kp4hSbpDB1tMytZY9pwxxA==

"@nrk/nodecache-as-promised@^1.3.4":
version "1.3.4"
resolved "https://registry.yarnpkg.com/@nrk/nodecache-as-promised/-/nodecache-as-promised-1.3.4.tgz#0254a4b95cf094ca976a1fe96ef2a5e61ad32ba9"
@@ -19,6 +140,11 @@
"@types/connect" "*"
"@types/node" "*"

"@types/classnames@^2.2.10":
version "2.2.10"
resolved "https://registry.yarnpkg.com/@types/classnames/-/classnames-2.2.10.tgz#cc658ca319b6355399efc1f5b9e818f1a24bf999"
integrity sha512-1UzDldn9GfYYEsWWnn/P4wkTlkZDH7lDb0wBMGbtIQc9zXEQq7FlKBdZUn6OBqD8sKZZ2RQO2mAjGpXiDGoRmQ==

"@types/connect@*":
version "3.4.32"
resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.32.tgz#aa0e9616b9435ccad02bc52b5b454ffc2c70ba28"
@@ -87,11 +213,26 @@
resolved "https://registry.yarnpkg.com/@types/node-xmpp-client/-/node-xmpp-client-3.1.4.tgz#166aa0764098dd07b7fb1d7a7fb50ab424340ede"
integrity sha512-lp29WO+F2VOfEO2l8YJvffWdeTtzmfOMuD7f97oJxPJ03ZJt10ZJ/0FZ7UpluAwk70XfpcSs3mPruscuKf7mHQ==

"@types/node@*", "@types/node@^12.0.4":
"@types/node@*":
version "12.0.4"
resolved "https://registry.yarnpkg.com/@types/node/-/node-12.0.4.tgz#46832183115c904410c275e34cf9403992999c32"
integrity sha512-j8YL2C0fXq7IONwl/Ud5Kt0PeXw22zGERt+HSSnwbKOJVsAGkEz3sFCYwaF9IOuoG1HOtE0vKCj6sXF7Q0+Vaw==

"@types/node@^14.11.5":
version "14.11.5"
resolved "https://registry.yarnpkg.com/@types/node/-/node-14.11.5.tgz#fecad41c041cae7f2404ad4b2d0742fdb628b305"
integrity sha512-jVFzDV6NTbrLMxm4xDSIW/gKnk8rQLF9wAzLWIOg+5nU6ACrIMndeBdXci0FGtqJbP9tQvm6V39eshc96TO2wQ==

"@types/parse-json@^4.0.0":
version "4.0.0"
resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0"
integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==

"@types/prop-types@*":
version "15.7.3"
resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.3.tgz#2ab0d5da2e5815f94b0b9d4b95d1e5f243ab2ca7"
integrity sha512-KfRL3PuHmqQLOG+2tGpRO26Ctg+Cq1E01D2DMriKEATHgWLfeNDmq9e29Q9WIky0dQ3NPkd1mzYH8Lm936Z9qw==

"@types/ramda@^0.26.9":
version "0.26.9"
resolved "https://registry.yarnpkg.com/@types/ramda/-/ramda-0.26.9.tgz#f0bbba59c04de9d29aaa1d1c0daedefc7244bb68"
@@ -102,6 +243,21 @@
resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.3.tgz#7ee330ba7caafb98090bece86a5ee44115904c2c"
integrity sha512-ewFXqrQHlFsgc09MK5jP5iR7vumV/BYayNC6PgJO2LPe8vrnNFyjQjSppfEngITi0qvfKtzFvgKymGheFM9UOA==

"@types/react-dom@^16.9.8":
version "16.9.8"
resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-16.9.8.tgz#fe4c1e11dfc67155733dfa6aa65108b4971cb423"
integrity sha512-ykkPQ+5nFknnlU6lDd947WbQ6TE3NNzbQAkInC2EKY1qeYdTKp7onFusmYZb+ityzx2YviqT6BXSu+LyWWJwcA==
dependencies:
"@types/react" "*"

"@types/react@*", "@types/react@^16.9.51":
version "16.9.51"
resolved "https://registry.yarnpkg.com/@types/react/-/react-16.9.51.tgz#f8aa51ffa9996f1387f63686696d9b59713d2b60"
integrity sha512-lQa12IyO+DMlnSZ3+AGHRUiUcpK47aakMMoBG8f7HGxJT8Yfe+WE128HIXaHOHVPReAW0oDS3KAI0JI2DDe1PQ==
dependencies:
"@types/prop-types" "*"
csstype "^3.0.2"

"@types/serve-static@*":
version "1.13.2"
resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.13.2.tgz#f5ac4d7a6420a99a6a45af4719f4dcd8cd907a48"
@@ -718,6 +874,36 @@ axios@^0.19.0:
follow-redirects "1.5.10"
is-buffer "^2.0.2"

babel-plugin-emotion@^10.0.27:
version "10.0.33"
resolved "https://registry.yarnpkg.com/babel-plugin-emotion/-/babel-plugin-emotion-10.0.33.tgz#ce1155dcd1783bbb9286051efee53f4e2be63e03"
integrity sha512-bxZbTTGz0AJQDHm8k6Rf3RQJ8tX2scsfsRyKVgAbiUPUNIRtlK+7JxP+TAd1kRLABFxe0CFm2VdK4ePkoA9FxQ==
dependencies:
"@babel/helper-module-imports" "^7.0.0"
"@emotion/hash" "0.8.0"
"@emotion/memoize" "0.7.4"
"@emotion/serialize" "^0.11.16"
babel-plugin-macros "^2.0.0"
babel-plugin-syntax-jsx "^6.18.0"
convert-source-map "^1.5.0"
escape-string-regexp "^1.0.5"
find-root "^1.1.0"
source-map "^0.5.7"

babel-plugin-macros@^2.0.0:
version "2.8.0"
resolved "https://registry.yarnpkg.com/babel-plugin-macros/-/babel-plugin-macros-2.8.0.tgz#0f958a7cc6556b1e65344465d99111a1e5e10138"
integrity sha512-SEP5kJpfGYqYKpBrj5XU3ahw5p5GOHJ0U5ssOSQ/WBVdwkD2Dzlce95exQTs3jOVWPPKLBN2rlEWkCK7dSmLvg==
dependencies:
"@babel/runtime" "^7.7.2"
cosmiconfig "^6.0.0"
resolve "^1.12.0"

babel-plugin-syntax-jsx@^6.18.0:
version "6.18.0"
resolved "https://registry.yarnpkg.com/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz#0af32a9a6e13ca7a3fd5069e62d7b0f58d0d8946"
integrity sha1-CvMqmm4Tyno/1QaeYtew9Y0NiUY=

balanced-match@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767"
@@ -973,6 +1159,11 @@ cache-base@^1.0.1:
union-value "^1.0.0"
unset-value "^1.0.0"

callsites@^3.0.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73"
integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==

camelcase@^4.0.0:
version "4.1.0"
resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd"
@@ -993,7 +1184,7 @@ caseless@~0.12.0:
resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc"
integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=

chalk@^2.0.1, chalk@^2.3.0, chalk@^2.4.1:
chalk@^2.0.0, chalk@^2.0.1, chalk@^2.3.0, chalk@^2.4.1:
version "2.4.2"
resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424"
integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==
@@ -1068,6 +1259,11 @@ class-utils@^0.3.5:
isobject "^3.0.0"
static-extend "^0.1.1"

classnames@^2.2.6:
version "2.2.6"
resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.2.6.tgz#43935bffdd291f326dad0a205309b38d00f650ce"
integrity sha512-JR/iSQOSt+LQIWwrwEzJ9uk0xfN3mTVYMwt1Ir5mUcSN6pU+V4zQFFaJsclJbPuAUQH+yfWef6tm7l1quW3C8Q==

cli-boxes@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-1.0.0.tgz#4fa917c3e59c94a004cd61f8ee509da651687143"
@@ -1200,6 +1396,13 @@ content-type@~1.0.4:
resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b"
integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==

convert-source-map@^1.5.0:
version "1.7.0"
resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.7.0.tgz#17a2cb882d7f77d3490585e2ce6c524424a3a442"
integrity sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==
dependencies:
safe-buffer "~5.1.1"

cookie-signature@1.0.6:
version "1.0.6"
resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c"
@@ -1258,6 +1461,17 @@ cors@^2.8.5:
object-assign "^4"
vary "^1"

cosmiconfig@^6.0.0:
version "6.0.0"
resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-6.0.0.tgz#da4fee853c52f6b1e6935f41c1a2fc50bd4a9982"
integrity sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==
dependencies:
"@types/parse-json" "^4.0.0"
import-fresh "^3.1.0"
parse-json "^5.0.0"
path-type "^4.0.0"
yaml "^1.7.2"

create-ecdh@^4.0.0:
version "4.0.3"
resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.3.tgz#c9111b6f33045c4697f144787f9254cdc77c45ff"
@@ -1266,6 +1480,16 @@ create-ecdh@^4.0.0:
bn.js "^4.1.0"
elliptic "^6.0.0"

create-emotion@^10.0.27:
version "10.0.27"
resolved "https://registry.yarnpkg.com/create-emotion/-/create-emotion-10.0.27.tgz#cb4fa2db750f6ca6f9a001a33fbf1f6c46789503"
integrity sha512-fIK73w82HPPn/RsAij7+Zt8eCE8SptcJ3WoRMfxMtjteYxud8GDTKKld7MYwAX2TVhrw29uR1N/bVGxeStHILg==
dependencies:
"@emotion/cache" "^10.0.27"
"@emotion/serialize" "^0.11.15"
"@emotion/sheet" "0.9.4"
"@emotion/utils" "0.11.3"

create-error-class@^3.0.0:
version "3.0.2"
resolved "https://registry.yarnpkg.com/create-error-class/-/create-error-class-3.0.2.tgz#06be7abef947a3f14a30fd610671d401bca8b7b6"
@@ -1353,6 +1577,16 @@ css-what@2.1:
resolved "https://registry.yarnpkg.com/css-what/-/css-what-2.1.3.tgz#a6d7604573365fe74686c3f311c56513d88285f2"
integrity sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg==

csstype@^2.5.7:
version "2.6.13"
resolved "https://registry.yarnpkg.com/csstype/-/csstype-2.6.13.tgz#a6893015b90e84dd6e85d0e3b442a1e84f2dbe0f"
integrity sha512-ul26pfSQTZW8dcOnD2iiJssfXw0gdNVX9IJDH/X3K5DGPfj+fUYe3kB+swUY6BF3oZDxaID3AJt+9/ojSAE05A==

csstype@^3.0.2:
version "3.0.3"
resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.0.3.tgz#2b410bbeba38ba9633353aff34b05d9755d065f8"
integrity sha512-jPl+wbWPOWJ7SXsWyqGRk3lGecbar0Cb0OvZF/r/ZU011R4YqiRehgkQ9p4eQfo9DSDLqLL3wHwfxeJiuIsNag==

cyclist@~0.2.2:
version "0.2.2"
resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-0.2.2.tgz#1b33792e11e914a2fd6d6ed6447464444e5fa640"
@@ -1581,6 +1815,14 @@ emojis-list@^2.0.0:
resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389"
integrity sha1-TapNnbAPmBmIDHn6RXrlsJof04k=

emotion@^10.0.27:
version "10.0.27"
resolved "https://registry.yarnpkg.com/emotion/-/emotion-10.0.27.tgz#f9ca5df98630980a23c819a56262560562e5d75e"
integrity sha512-2xdDzdWWzue8R8lu4G76uWX5WhyQuzATon9LmNeCy/2BHVC6dsEpfhN1a0qhELgtDVdjyEA6J8Y/VlI5ZnaH0g==
dependencies:
babel-plugin-emotion "^10.0.27"
create-emotion "^10.0.27"

encodeurl@~1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59"
@@ -1614,6 +1856,13 @@ errno@^0.1.3, errno@~0.1.7:
dependencies:
prr "~1.0.1"

error-ex@^1.3.1:
version "1.3.2"
resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf"
integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==
dependencies:
is-arrayish "^0.2.1"

escape-html@~1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988"
@@ -1842,6 +2091,11 @@ find-cache-dir@^2.0.0, find-cache-dir@^2.1.0:
make-dir "^2.0.0"
pkg-dir "^3.0.0"

find-root@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/find-root/-/find-root-1.1.0.tgz#abcfc8ba76f708c42a97b3d685b7e9450bfb9ce4"
integrity sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==

find-up@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73"
@@ -2260,6 +2514,14 @@ ignore@^3.3.5:
resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.10.tgz#0a97fb876986e8081c631160f8f9f389157f0043"
integrity sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==

import-fresh@^3.1.0:
version "3.2.1"
resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.2.1.tgz#633ff618506e793af5ac91bf48b72677e15cbe66"
integrity sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ==
dependencies:
parent-module "^1.0.0"
resolve-from "^4.0.0"

import-lazy@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-2.1.0.tgz#05698e3d45c88e8d7e9d92cb0584e77f096f3e43"
@@ -2335,6 +2597,11 @@ is-accessor-descriptor@^1.0.0:
dependencies:
kind-of "^6.0.0"

is-arrayish@^0.2.1:
version "0.2.1"
resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d"
integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=

is-binary-path@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898"
@@ -2545,6 +2812,11 @@ js-base64@^2.5.1:
resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-2.5.1.tgz#1efa39ef2c5f7980bb1784ade4a8af2de3291121"
integrity sha512-M7kLczedRMYX4L8Mdh4MzyAMM9O5osx+4FcOQuTvr3A9F2D9S5JXheN0ewNbrvK2UatkTRhL5ejGmGSjNMiZuw==

"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499"
integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==

jsbn@~0.1.0:
version "0.1.1"
resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513"
@@ -2555,6 +2827,11 @@ json-parse-better-errors@^1.0.2:
resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9"
integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==

json-parse-even-better-errors@^2.3.0:
version "2.3.1"
resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d"
integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==

json-schema-traverse@^0.4.1:
version "0.4.1"
resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660"
@@ -2630,6 +2907,11 @@ lcid@^2.0.0:
dependencies:
invert-kv "^2.0.0"

lines-and-columns@^1.1.6:
version "1.1.6"
resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.1.6.tgz#1c00c743b433cd0a4e80758f7b64a57440d9ff00"
integrity sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=

loader-runner@^2.3.0:
version "2.4.0"
resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.4.0.tgz#ed47066bfe534d7e84c4c7b9998c2a75607d9357"
@@ -2662,11 +2944,23 @@ lodash@^4.17.15:
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548"
integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==

lodash@^4.17.19:
version "4.17.20"
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.20.tgz#b44a9b6297bcb698f1c51a3545a2b3b368d59c52"
integrity sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==

long@^2.4.0:
version "2.4.0"
resolved "https://registry.yarnpkg.com/long/-/long-2.4.0.tgz#9fa180bb1d9500cdc29c4156766a1995e1f4524f"
integrity sha1-n6GAux2VAM3CnEFWdmoZleH0Uk8=

loose-envify@^1.1.0, loose-envify@^1.4.0:
version "1.4.0"
resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf"
integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==
dependencies:
js-tokens "^3.0.0 || ^4.0.0"

lowercase-keys@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz#6f9e30b47084d971a7c820ff15a6c5167b74c26f"
@@ -3262,6 +3556,13 @@ parallel-transform@^1.1.0:
inherits "^2.0.3"
readable-stream "^2.1.5"

parent-module@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2"
integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==
dependencies:
callsites "^3.0.0"

parse-asn1@^5.0.0:
version "5.1.4"
resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.4.tgz#37f6628f823fbdeb2273b4d540434a22f3ef1fcc"
@@ -3274,6 +3575,16 @@ parse-asn1@^5.0.0:
pbkdf2 "^3.0.3"
safe-buffer "^5.1.1"

parse-json@^5.0.0:
version "5.1.0"
resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.1.0.tgz#f96088cdf24a8faa9aea9a009f2d9d942c999646"
integrity sha512-+mi/lmVVNKFNVyLXV31ERiy2CY5E1/F6QtJFEzoChPRwwngMNXRDQ9GJ5WdE2Z2P4AujsOi0/+2qHID68KwfIQ==
dependencies:
"@babel/code-frame" "^7.0.0"
error-ex "^1.3.1"
json-parse-even-better-errors "^2.3.0"
lines-and-columns "^1.1.6"

parse-passwd@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6"
@@ -3343,6 +3654,11 @@ path-type@^3.0.0:
dependencies:
pify "^3.0.0"

path-type@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b"
integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==

pbkdf2@^3.0.3:
version "3.0.17"
resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.17.tgz#976c206530617b14ebb32114239f7b09336e93a6"
@@ -3406,6 +3722,15 @@ promise-inflight@^1.0.1:
resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3"
integrity sha1-mEcocL8igTL8vdhoEputEsPAKeM=

prop-types@^15.6.2:
version "15.7.2"
resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.7.2.tgz#52c41e75b8c87e72b9d9360e0206b99dcbffa6c5"
integrity sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==
dependencies:
loose-envify "^1.4.0"
object-assign "^4.1.1"
react-is "^16.8.1"

proxy-addr@~2.0.5:
version "2.0.5"
resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.5.tgz#34cbd64a2d81f4b1fd21e76f9f06c8a45299ee34"
@@ -3551,6 +3876,30 @@ rc@^1.0.1, rc@^1.1.6, rc@^1.2.7:
minimist "^1.2.0"
strip-json-comments "~2.0.1"

react-dom@^16.13.1:
version "16.13.1"
resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.13.1.tgz#c1bd37331a0486c078ee54c4740720993b2e0e7f"
integrity sha512-81PIMmVLnCNLO/fFOQxdQkvEq/+Hfpv24XNJfpyZhTRfO0QcmQIF/PgCa1zCOj2w1hrn12MFLyaJ/G0+Mxtfag==
dependencies:
loose-envify "^1.1.0"
object-assign "^4.1.1"
prop-types "^15.6.2"
scheduler "^0.19.1"

react-is@^16.8.1:
version "16.13.1"
resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4"
integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==

react@^16.13.1:
version "16.13.1"
resolved "https://registry.yarnpkg.com/react/-/react-16.13.1.tgz#2e818822f1a9743122c063d6410d85c1e3afe48e"
integrity sha512-YMZQQq32xHLX0bz5Mnibv1/LHb3Sqzngu7xstSM+vrkE5Kzr9xE0yMByK5kMoTK30YVJE61WfbxIFFvfeDKT1w==
dependencies:
loose-envify "^1.1.0"
object-assign "^4.1.1"
prop-types "^15.6.2"

"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.6, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.6, readable-stream@~2.3.6:
version "2.3.6"
resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf"
@@ -3599,6 +3948,11 @@ rechoir@^0.6.2:
dependencies:
resolve "^1.1.6"

regenerator-runtime@^0.13.4:
version "0.13.7"
resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz#cac2dacc8a1ea675feaabaeb8ae833898ae46f55"
integrity sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==

regex-not@^1.0.0, regex-not@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c"
@@ -3710,6 +4064,11 @@ resolve-from@^3.0.0:
resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748"
integrity sha1-six699nWiBvItuZTM17rywoYh0g=

resolve-from@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6"
integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==

resolve-url@^0.2.1:
version "0.2.1"
resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a"
@@ -3722,6 +4081,13 @@ resolve@^1.1.6:
dependencies:
path-parse "^1.0.6"

resolve@^1.12.0:
version "1.17.0"
resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.17.0.tgz#b25941b54968231cc2d1bb76a79cb7f2c0bf8444"
integrity sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==
dependencies:
path-parse "^1.0.6"

ret@~0.1.10:
version "0.1.15"
resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc"
@@ -3808,6 +4174,14 @@ sax@^1.2.4:
resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9"
integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==

scheduler@^0.19.1:
version "0.19.1"
resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.19.1.tgz#4f3e2ed2c1a7d65681f4c854fa8c5a1ccb40f196"
integrity sha512-n/zwRWRYSUj0/3g/otKDRPMh6qv2SYMWNq85IEa8iZyAv8od9zDYpGSnpBEjNgcMNq6Scbu5KfIPxNF72R/2EA==
dependencies:
loose-envify "^1.1.0"
object-assign "^4.1.1"

schema-utils@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-1.0.0.tgz#0b79a93204d7b600d4b2850d1f66c2a34951c770"
@@ -4001,7 +4375,7 @@ source-map-url@^0.4.0:
resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3"
integrity sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=

source-map@^0.5.6:
source-map@^0.5.6, source-map@^0.5.7:
version "0.5.7"
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc"
integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=
@@ -4232,6 +4606,11 @@ to-arraybuffer@^1.0.0:
resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43"
integrity sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=

to-fast-properties@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e"
integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=

to-object-path@^0.3.0:
version "0.3.0"
resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af"
@@ -4681,6 +5060,11 @@ yallist@^3.0.0, yallist@^3.0.2, yallist@^3.0.3:
resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.0.3.tgz#b4b049e314be545e3ce802236d6cd22cd91c3de9"
integrity sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A==

yaml@^1.7.2:
version "1.10.0"
resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.0.tgz#3b593add944876077d4d683fee01081bd9fff31e"
integrity sha512-yr2icI4glYaNG+KWONODapy2/jDdMSDnrONSjblABjD9B4Z5LgiircSt8m8sRZFNi08kG9Sm0uSHtEmP3zaEGg==

yargs-parser@^11.1.1:
version "11.1.1"
resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-11.1.1.tgz#879a0865973bca9f6bab5cbdf3b1c67ec7d3bcf4"


Loading…
Cancel
Save