]> Untitled Git - lemmy.git/commitdiff
Adding emoji support.
authorDessalines <tyhou13@gmx.com>
Thu, 29 Aug 2019 23:14:28 +0000 (16:14 -0700)
committerDessalines <tyhou13@gmx.com>
Thu, 29 Aug 2019 23:14:28 +0000 (16:14 -0700)
1  2 
ui/fuse.js
ui/package.json
ui/src/index.html
ui/src/utils.ts
ui/yarn.lock

diff --combined ui/fuse.js
index f77effbde4fd2633c2d43b0a8666d3f9654db400,4755d9f5abf69016649ead5aca545e2e091833a3..85eb75e2abf29752f6472664cd0383425ba8ead4
@@@ -24,9 -24,6 +24,9 @@@ Sparky.task('config', _ => 
      transformers: {
        before: [transformClasscat(), transformInferno()],
      },
 +    alias: {
 +      'locale': 'moment/locale'
 +              },
      plugins: [
        EnvPlugin({ NODE_ENV: isProduction ? 'production' : 'development' }),
        CSSPlugin(),
@@@ -48,7 -45,7 +48,7 @@@
  // Sparky.task('version', _ => setVersion());
  Sparky.task('clean', _ => Sparky.src('dist/').clean('dist/'));
  Sparky.task('env', _ => (isProduction = true));
--Sparky.task('copy-assets', () => Sparky.src('assets/**/**.*').dest('dist/'));
++Sparky.task('copy-assets', () => Sparky.src('assets/**/**.*').dest(isProduction ? 'dist/' : 'dist/static'));
  Sparky.task('dev', ['clean', 'config', 'copy-assets'], _ => {
    fuse.dev();
    app.hmr().watch();
diff --combined ui/package.json
index 523700a23b8113c26db66aef83fe5f7dcdce2275,7f99e62fa44d02b4bf4c7b24d1670c0c69e1d9f6..797e45bc8c1915fce17e59c2fdb912118ea8a5d9
      "autosize": "^4.0.2",
      "classcat": "^1.1.3",
      "dotenv": "^6.1.0",
 +    "i18next": "^17.0.9",
      "inferno": "^7.0.1",
 +    "inferno-i18next": "nimbusec-oss/inferno-i18next",
      "inferno-router": "^7.0.1",
      "js-cookie": "^2.2.0",
      "jwt-decode": "^2.2.0",
      "markdown-it": "^8.4.2",
      "markdown-it-container": "^2.0.0",
+     "markdown-it-emoji": "^1.4.0",
      "moment": "^2.24.0",
      "rxjs": "^6.4.0",
 -    "terser": "^3.17.0"
 +    "terser": "^3.17.0",
 +    "ws": "^7.0.0"
    },
    "devDependencies": {
 +    "@types/i18next": "^12.1.0",
      "fuse-box": "^3.1.3",
      "ts-transform-classcat": "^0.0.2",
      "ts-transform-inferno": "^4.0.2",
 -    "typescript": "^3.3.3333"
 +    "typescript": "^3.5.3"
    }
  }
diff --combined ui/src/index.html
index b06b2df74f6210b7cd794ae87b2b8f298d5755f0,9e091211d0fdda8fe35bbff8b308b40f5fd19dcb..4dbde8b0788e0c5dbed345afd4ed151b9925ecb4
@@@ -1,14 -1,15 +1,15 @@@
 +<!DOCTYPE html>
  <html lang="en">
  
  <head>
        <!-- Required meta tags -->
 +  <meta name="Description" content="Lemmy">
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
        <link rel="shortcut icon" type="image/svg+xml" href="/static/assets/favicon.svg" />
        <link rel="apple-touch-icon" href="/static/assets/apple-touch-icon.png" />
 -      <title>Lemmy</title>
 -      <link rel="stylesheet" href="/static/assets/libs/balloon-css/balloon.min.css" type="text/css">
 -    <script src="/static/assets/libs/sortable/sortable.min.js" type="text/javascript"></script>
 -    <script src="/static/assets/libs/markdown-it-emoji/markdown-it-emoji.min.js" type="text/javascript"></script>
 +  <script async src="/static/assets/libs/sortable/sortable.min.js"></script>
++  <script src="/static/assets/libs/markdown-it-emoji/markdown-it-emoji.min.js" type="text/javascript"></script>
  </head>
  
  <body>
diff --combined ui/src/utils.ts
index d69bf421c69f25fd74f45cd406ef1588d8a750ab,53d630ce8bc057ad8b980a822555a0a9aace53e8..89be9e2bfb781c828a2f74a7e820c1815975906b
@@@ -1,14 -1,6 +1,15 @@@
 +import 'moment/locale/es';
 +import 'moment/locale/eo';
 +import 'moment/locale/de';
 +import 'moment/locale/zh-cn';
 +import 'moment/locale/fr';
 +import 'moment/locale/sv';
 +import 'moment/locale/ru';
 +import 'moment/locale/nl';
 +
  import { UserOperation, Comment, User, SortType, ListingType } from './interfaces';
  import * as markdown_it from 'markdown-it';
+ declare var markdownitEmoji: any;
  import * as markdown_it_container from 'markdown-it-container';
  
  export let repoUrl = 'https://github.com/dessalines/lemmy';
@@@ -19,7 -11,7 +20,7 @@@ export function msgOp(msg: any): UserOp
  }
  
  var md = new markdown_it({
 -  html: true,
 +  html: false,
    linkify: true,
    typographer: true
  }).use(markdown_it_container, 'spoiler', {
@@@ -39,7 -31,7 +40,7 @@@
        return '</details>\n';
      }
    }
- });
+ }).use(markdownitEmoji);
  
  export function hotRank(comment: Comment): number {
    // Rank = ScaleFactor * sign(Score) * log(1 + abs(Score)) / (Time + 2)^Gravity
@@@ -93,16 -85,6 +94,16 @@@ export function isImage(url: string) 
    return imageRegex.test(url);
  }
  
 +export function validURL(str: string) {
 +  var pattern = new RegExp('^(https?:\\/\\/)?'+ // protocol
 +    '((([a-z\\d]([a-z\\d-]*[a-z\\d])*)\\.)+[a-z]{2,}|'+ // domain name
 +    '((\\d{1,3}\\.){3}\\d{1,3}))'+ // OR ip (v4) address
 +    '(\\:\\d+)?(\\/[-a-z\\d%_.~+]*)*'+ // port and path
 +    '(\\?[;&a-z\\d%_.~+=-]*)?'+ // query string
 +    '(\\#[-a-z\\d_]*)?$','i'); // fragment locator
 +  return !!pattern.test(str);
 +}
 +
  export let fetchLimit: number = 20;
  
  export function capitalizeFirstLetter(str: string): string {
@@@ -136,73 -118,3 +137,73 @@@ export async function getPageTitle(url
    return data;
  }
  
 +export function debounce(func: any, wait: number = 500, immediate: boolean = false) {
 +  // 'private' variable for instance
 +  // The returned function will be able to reference this due to closure.
 +  // Each call to the returned function will share this common timer.
 +  let timeout: number;
 +
 +  // Calling debounce returns a new anonymous function
 +  return function() {
 +    // reference the context and args for the setTimeout function
 +    var context = this,
 +    args = arguments;
 +
 +  // Should the function be called now? If immediate is true
 +  //   and not already in a timeout then the answer is: Yes
 +  var callNow = immediate && !timeout;
 +
 +  // This is the basic debounce behaviour where you can call this 
 +  //   function several times, but it will only execute once 
 +  //   [before or after imposing a delay]. 
 +  //   Each time the returned function is called, the timer starts over.
 +  clearTimeout(timeout);
 +
 +  // Set the new timeout
 +  timeout = setTimeout(function() {
 +
 +    // Inside the timeout function, clear the timeout variable
 +    // which will let the next execution run when in 'immediate' mode
 +    timeout = null;
 +
 +    // Check if the function already ran with the immediate flag
 +    if (!immediate) {
 +      // Call the original function with apply
 +      // apply lets you define the 'this' object as well as the arguments 
 +      //    (both captured before setTimeout)
 +      func.apply(context, args);
 +    }
 +  }, wait);
 +
 +  // Immediate mode and no wait timer? Execute the function..
 +  if (callNow) func.apply(context, args);
 +  }
 +}
 +
 +export function getLanguage(): string {
 +  return (navigator.language || navigator.userLanguage);
 +}
 +
 +export function getMomentLanguage(): string {
 +  let lang = getLanguage();
 +  if (lang.startsWith('zh')) {
 +    lang = 'zh-cn';
 +  } else if (lang.startsWith('sv')) {
 +    lang = 'sv';
 +  } else if (lang.startsWith('fr')) {
 +    lang = 'fr';
 +  } else if (lang.startsWith('de')) {
 +    lang = 'de';
 +  } else if (lang.startsWith('ru')) {
 +    lang = 'ru';
 +  } else if (lang.startsWith('es')) {
 +    lang = 'es';
 +  } else if (lang.startsWith('eo')) {
 +    lang = 'eo';
 +  } else if (lang.startsWith('nl')) {
 +    lang = 'nl';
 +  } else {
 +    lang = 'en';
 +  }
 +  return lang;
 +}
diff --combined ui/yarn.lock
index f31f45ae5a80d124b8ddaca2f7cf5206748e5c8b,5c22b16f1ddc44b7d377b71403f76d3345b2ee80..79fe71665d4c835ac4bf2c092be696ffdac9e258
@@@ -2,10 -2,10 +2,10 @@@
  # yarn lockfile v1
  
  
 -"@babel/runtime@^7.1.2":
 -  version "7.4.5"
 -  resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.4.5.tgz#582bb531f5f9dc67d2fcb682979894f75e253f12"
 -  integrity sha512-TuI4qpWZP6lGOGIuGWtp9sPluqYICmbk8T/1vpSysqJxRPkudh/ofFWyqdcMsDf2s7KvDL4/YHgKyvcS3g9CJQ==
 +"@babel/runtime@^7.1.2", "@babel/runtime@^7.3.1":
 +  version "7.5.5"
 +  resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.5.5.tgz#74fba56d35efbeca444091c7850ccd494fd2f132"
 +  integrity sha512-28QvEGyQyNkB0/m2B4FU7IEZGK2NUrcMtT6BZEFALTguLk+AUT6ofsHtPk5QyjAdUkpMJ+/Em+quwz4HOt30AQ==
    dependencies:
      regenerator-runtime "^0.13.2"
  
    dependencies:
      "@types/jquery" "*"
  
 +"@types/i18next@^12.1.0":
 +  version "12.1.0"
 +  resolved "https://registry.yarnpkg.com/@types/i18next/-/i18next-12.1.0.tgz#7c3fd3dbe03f9531147033773bbd0ca4f474a180"
 +  integrity sha512-qLyqTkp3ZKHsSoX8CNVYcTyTkxlm0aRCUpaUVetgkSlSpiNCdWryOgaYwgbO04tJIfLgBXPcy0tJ3Nl/RagllA==
 +
  "@types/jquery@*":
-   version "3.3.30"
-   resolved "https://registry.yarnpkg.com/@types/jquery/-/jquery-3.3.30.tgz#af4ad612d86d954d74664b2b0ec337a251fddb5b"
-   integrity sha512-chB+QbLulamShZAFcTJtl8opZwHFBpDOP6nRLrPGkhC6N1aKWrDXg2Nc71tEg6ny6E8SQpRwbWSi9GdstH5VJA==
 -  version "3.3.29"
 -  resolved "https://registry.yarnpkg.com/@types/jquery/-/jquery-3.3.29.tgz#680a2219ce3c9250483722fccf5570d1e2d08abd"
 -  integrity sha512-FhJvBninYD36v3k6c+bVk1DSZwh7B5Dpb/Pyk3HKVsiohn0nhbefZZ+3JXbWQhFyt0MxSl2jRDdGQPHeOHFXrQ==
++  version "3.3.31"
++  resolved "https://registry.yarnpkg.com/@types/jquery/-/jquery-3.3.31.tgz#27c706e4bf488474e1cb54a71d8303f37c93451b"
++  integrity sha512-Lz4BAJihoFw5nRzKvg4nawXPzutkv7wmfQ5121avptaSIXlDNJCUuxZxX/G+9EVidZGuO0UBlk+YjKbwRKJigg==
    dependencies:
      "@types/sizzle" "*"
  
    dependencies:
      "@types/markdown-it" "*"
  
 -"@types/markdown-it@*", "@types/markdown-it@^0.0.7":
 +"@types/markdown-it@*":
 +  version "0.0.8"
 +  resolved "https://registry.yarnpkg.com/@types/markdown-it/-/markdown-it-0.0.8.tgz#9af8704acde87fec70475369ba0413d50717bd8d"
 +  integrity sha512-ouaTOi5kAdkTPl97u6uDkth9od4pQffPF9STcjYVZKFrEwLYf15s7Z772WxWE3IOcYBJglaT0XqdyNEiEfGgYg==
 +  dependencies:
 +    "@types/linkify-it" "*"
 +
 +"@types/markdown-it@^0.0.7":
    version "0.0.7"
    resolved "https://registry.yarnpkg.com/@types/markdown-it/-/markdown-it-0.0.7.tgz#75070485a3d8ad11e7deb8287f4430be15bf4d39"
    integrity sha512-WyL6pa76ollQFQNEaLVa41ZUUvDvPY+qAUmlsphnrpL6I9p1m868b26FyeoOmo7X3/Ta/S9WKXcEYXUSHnxoVQ==
@@@ -103,9 -91,9 +103,9 @@@ ajax-request@^1.2.0
      utils-extend "^1.0.7"
  
  ajv@^6.5.5:
 -  version "6.10.0"
 -  resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.10.0.tgz#90d0d54439da587cd7e843bfb7045f50bd22bdf1"
 -  integrity sha512-nffhOpkymDECQyR0mnsUtoCE8RlX38G0rYP+wgLWFyZuUyuuojSSvi/+euOiQBIn63whYwYVIIH1TvE3tu4OEg==
 +  version "6.10.2"
 +  resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.10.2.tgz#d3cea04d6b017b2894ad69040fec8b623eb4bd52"
 +  integrity sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==
    dependencies:
      fast-deep-equal "^2.0.1"
      fast-json-stable-stringify "^2.0.0"
@@@ -236,11 -224,6 +236,11 @@@ async-each@^1.0.0
    resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.3.tgz#b727dbf87d7651602f06f4d4ac387f47d91b0cbf"
    integrity sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==
  
-   version "1.0.0"
-   resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.0.tgz#78faed8c3d074ab81f22b4e985d79e8738f720f8"
-   integrity sha512-jp/uFnooOiO+L211eZOoSyzpOITMXx1rBITauYykG3BRYPu8h0UcxsPNB04RR5vo4Tyz3+ay17tR6JVf9qzYWg==
 +async-limiter@^1.0.0:
++  version "1.0.1"
++  resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd"
++  integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==
 +
  asynckit@^0.4.0:
    version "0.4.0"
    resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"
@@@ -280,9 -263,9 +280,9 @@@ base64-img@^1.0.3
      file-system "^2.1.0"
  
  base64-js@^1.2.0:
--  version "1.3.0"
--  resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.0.tgz#cab1e6118f051095e58b5281aea8c1cd22bfc0e3"
--  integrity sha512-ccav/yGvoa80BQDljCxsmmQ3Xvx60/UpBIij5QN21W3wBi/hhIC9OoO+KLpu9IJTS9j4DRVJ3aDDF9cMSoa2lw==
++  version "1.3.1"
++  resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.1.tgz#58ece8cb75dd07e71ed08c736abc5fac4dbf8df1"
++  integrity sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==
  
  base@^0.11.1:
    version "0.11.2"
@@@ -326,9 -309,9 +326,9 @@@ body-parser@1.19.0
      type-is "~1.6.17"
  
  bowser@^2.0.0-beta.3:
-   version "2.5.2"
-   resolved "https://registry.yarnpkg.com/bowser/-/bowser-2.5.2.tgz#5eac42a9ad4a4c95182b122fab8dd03d5941c891"
-   integrity sha512-82oFIAwiSzvw7wwMjg7fXOBq0ZXHXcH+vo9Ul6xleXmBvdlCvctrcFGJXCmckWXj2Qsspkhr1lIrRwK30oibRA==
 -  version "2.4.0"
 -  resolved "https://registry.yarnpkg.com/bowser/-/bowser-2.4.0.tgz#fcfbca3d7659ba88afabbb8a45b33d2e4876a90c"
 -  integrity sha512-DA9Opnb8S8TBLPPszrHDtCCATbAMkrxF+AxPs/d95r99frBioGpNwL1cbG3AHeV3FnoZW655vEvEryBHFeGrMg==
++  version "2.5.3"
++  resolved "https://registry.yarnpkg.com/bowser/-/bowser-2.5.3.tgz#811b0a24219c566c9a6ab3402bc8a13f35a18a96"
++  integrity sha512-aWCA+CKfKNL/WGzNgjmK+Whp57JMzboZMwJ5gy2jDj2bEIjbMCb3ImGX+V++5wsJftyFiDIbOjRXl60ycniVqg==
  
  brace-expansion@^1.1.7:
    version "1.1.11"
@@@ -434,9 -417,9 +434,9 @@@ chokidar@^1.6.1
      fsevents "^1.0.0"
  
  chownr@^1.1.1:
 -  version "1.1.1"
 -  resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.1.tgz#54726b8b8fff4df053c42187e801fb4412df1494"
 -  integrity sha512-j38EvO5+LHX84jlo6h4UzmOwi0UgW61WRyPtJz4qaadK5eY3BTS5TY/S1Stc3Uk2lIM6TPevAlULiEJwie860g==
 +  version "1.1.2"
 +  resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.2.tgz#a18f1e0b269c8a6a5d3c86eb298beb14c3dd7bf6"
 +  integrity sha512-GkfeAQh+QNy3wquu9oIZr6SS5x7wGdSgNQvD10X3r+AZr1Oys22HW8kAmDMvNg2+Dm0TeGaEuO8gFwdBXxwO8A==
  
  class-utils@^0.3.5:
    version "0.3.6"
@@@ -678,9 -661,9 +678,9 @@@ escape-string-regexp@^1.0.5
    integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=
  
  escodegen@^1.8.1:
--  version "1.11.1"
--  resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.11.1.tgz#c485ff8d6b4cdb89e27f4a856e91f118401ca510"
--  integrity sha512-JwiqFD9KdGVVpeuRa68yU3zZnBEOcPs0nKW7wZzXky8Z7tffdYUHbe11bPCV5jYlK6DVdKLWLm0f5I/QlL0Kmw==
++  version "1.12.0"
++  resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.12.0.tgz#f763daf840af172bb3a2b6dd7219c0e17f7ff541"
++  integrity sha512-TuA+EhsanGcme5T3R0L80u4t8CpbXQjegRmf7+FPTJrtCTErXFeelblRgHQa1FofEzqYYJmJ/OqjTwREp9qgmg==
    dependencies:
      esprima "^3.1.3"
      estraverse "^4.2.0"
@@@ -695,14 -678,14 +695,14 @@@ esprima@^3.1.3
    integrity sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=
  
  estraverse@^4.2.0:
--  version "4.2.0"
--  resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13"
--  integrity sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=
++  version "4.3.0"
++  resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d"
++  integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==
  
  esutils@^2.0.2:
--  version "2.0.2"
--  resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b"
--  integrity sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=
++  version "2.0.3"
++  resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64"
++  integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==
  
  etag@~1.8.1:
    version "1.8.1"
@@@ -1060,9 -1043,9 +1060,9 @@@ get-value@^2.0.3, get-value@^2.0.6
    integrity sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=
  
  getopts@^2.1.1:
 -  version "2.2.4"
 -  resolved "https://registry.yarnpkg.com/getopts/-/getopts-2.2.4.tgz#3137fe8a5fddf304904059a851bdc1c22f0f54fb"
 -  integrity sha512-Rz7DGyomZjrenu9Jx4qmzdlvJgvrEFHXHvjK0FcZtcTC1U5FmES7OdZHUwMuSnEE6QvBvwse1JODKj7TgbSEjQ==
 +  version "2.2.5"
 +  resolved "https://registry.yarnpkg.com/getopts/-/getopts-2.2.5.tgz#67a0fe471cacb9c687d817cab6450b96dde8313b"
 +  integrity sha512-9jb7AW5p3in+IiJWhQiZmmwkpLaR/ccTWdWQCtZM66HJcHHLegowh4q4tSD7gouUyeNvFWRavfK9GXosQHDpFA==
  
  getpass@^0.1.1:
    version "0.1.7"
@@@ -1099,9 -1082,9 +1099,9 @@@ glob@^7.1.1, glob@^7.1.3
      path-is-absolute "^1.0.0"
  
  graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.6:
-   version "4.2.0"
-   resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.0.tgz#8d8fdc73977cb04104721cb53666c1ca64cd328b"
-   integrity sha512-jpSvDPV4Cq/bgtpndIWbI5hmYxhQGHPC4d4cqBPb4DLniCfhJokdXhwhaDuLBGLQdvvRum/UiX6ECVIPvDXqdg==
 -  version "4.1.15"
 -  resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.15.tgz#ffb703e1066e8a0eeaa4c8b80ba9253eeefbfb00"
 -  integrity sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA==
++  version "4.2.2"
++  resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.2.tgz#6f0952605d0140c1cfdb138ed005775b92d67b02"
++  integrity sha512-IItsdsea19BoLC7ELy13q1iJFNmd7ofZH5+X/pJr90/nRoPEX0DJo1dHDbgtYWOhJhcCgMDTOw84RZ72q6lB+Q==
  
  har-schema@^2.0.0:
    version "2.0.0"
@@@ -1174,14 -1157,7 +1174,14 @@@ hoist-non-inferno-statics@^1.1.3
    resolved "https://registry.yarnpkg.com/hoist-non-inferno-statics/-/hoist-non-inferno-statics-1.1.3.tgz#7d870f4160bfb6a59269b45c343c027f0e30ab35"
    integrity sha1-fYcPQWC/tqWSabRcNDwCfw4wqzU=
  
 -http-errors@1.7.2, http-errors@~1.7.2:
 +html-parse-stringify2@^2.0.1:
 +  version "2.0.1"
 +  resolved "https://registry.yarnpkg.com/html-parse-stringify2/-/html-parse-stringify2-2.0.1.tgz#dc5670b7292ca158b7bc916c9a6735ac8872834a"
 +  integrity sha1-3FZwtyksoVi3vJFsmmc1rIhyg0o=
 +  dependencies:
 +    void-elements "^2.0.1"
 +
 +http-errors@1.7.2:
    version "1.7.2"
    resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.2.tgz#4f5029cf13239f31036e5b2e55292bcfbcc85c8f"
    integrity sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==
      statuses ">= 1.5.0 < 2"
      toidentifier "1.0.0"
  
 +http-errors@~1.7.2:
 +  version "1.7.3"
 +  resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.3.tgz#6c619e4f9c60308c38519498c14fbb10aacebb06"
 +  integrity sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==
 +  dependencies:
 +    depd "~1.1.2"
 +    inherits "2.0.4"
 +    setprototypeof "1.1.1"
 +    statuses ">= 1.5.0 < 2"
 +    toidentifier "1.0.0"
 +
  http-signature@~1.2.0:
    version "1.2.0"
    resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1"
      jsprim "^1.2.2"
      sshpk "^1.7.0"
  
-   version "17.0.9"
-   resolved "https://registry.yarnpkg.com/i18next/-/i18next-17.0.9.tgz#5f835e91a34fa5e7da1e5ae4c4586c81d7c4b17f"
-   integrity sha512-fCYpm3TDzcfPIPN3hmgvC/QJx17QHI+Ul88qbixwIrifN9nBmk2c2oVxVYSDxnV5FgBXZJJ0O4yBYiZ8v1bX2A==
 +i18next@^17.0.9:
++  version "17.0.13"
++  resolved "https://registry.yarnpkg.com/i18next/-/i18next-17.0.13.tgz#3c639e15de86e0523f8f286f6cf07db355ee0a4f"
++  integrity sha512-tCBpekVs95IsN3kdi/6HhnfzHDlpXerOmOsf2ZMWtct9YbMYKI54HVdQ6XxsHGXBxY+UgjbQJwqghKCd2sYQWw==
 +  dependencies:
 +    "@babel/runtime" "^7.3.1"
 +
  iconv-lite@0.4.24, iconv-lite@^0.4.17, iconv-lite@^0.4.4:
    version "0.4.24"
    resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b"
@@@ -1238,58 -1196,33 +1238,58 @@@ ignore-walk@^3.0.1
    dependencies:
      minimatch "^3.0.4"
  
-   version "7.2.1"
-   resolved "https://registry.yarnpkg.com/inferno-clone-vnode/-/inferno-clone-vnode-7.2.1.tgz#ae978e6d1cfa07a1616a7b4ecf5ca2f4fe070d5d"
-   integrity sha512-52ksls/sKFfLLXQW8v7My5QqX2i/CedlQM2JzCtkKMo18FovDt52jHNhfmWAbY9svcyxEzPjZMofHL/LFd7aIA==
 +inferno-clone-vnode@^7.1.12:
-     inferno "7.2.1"
++  version "7.3.1"
++  resolved "https://registry.yarnpkg.com/inferno-clone-vnode/-/inferno-clone-vnode-7.3.1.tgz#7dc75d58ce818188beb77acb49f672568cd817a8"
++  integrity sha512-Nu+jrwOVXlaMsxtxRbPiB51SySgI9FrGKt0wR9NNWSOoaW9fXbQewcPdI5Jn9MYin/oQrpJ8+BI9pZ9Bu7Z6bQ==
 +  dependencies:
-   version "7.2.1"
-   resolved "https://registry.yarnpkg.com/inferno-create-element/-/inferno-create-element-7.2.1.tgz#6327b7a2195e0b08fab43df702889504845271c0"
-   integrity sha512-FGnIre6jRfr34bUgPMYWzj5/WA3htX3TQUYGhTVtiaREVxTj952eGcAMvOp4W4V6n2iK1Zl/qcTjrUdD2G3WiQ==
++    inferno "7.3.1"
 +
 +inferno-create-element@^7.1.12:
-     inferno "7.2.1"
++  version "7.3.1"
++  resolved "https://registry.yarnpkg.com/inferno-create-element/-/inferno-create-element-7.3.1.tgz#b85f8ede233b19653662d6ac3bd88892319b09e4"
++  integrity sha512-HyC4UTmSB+3+erVp/0Y5BYioBxKLZpKrIBYEHTzeDXfsJv9wEsJ5KbZ5vsmQDh+jj6NRd72cCPMBXmN9pyyMCA==
 +  dependencies:
++    inferno "7.3.1"
 +
 +inferno-i18next@nimbusec-oss/inferno-i18next:
 +  version "7.1.12"
 +  resolved "https://codeload.github.com/nimbusec-oss/inferno-i18next/tar.gz/f8c1403e60be70141c558e36f12f22c106cb7463"
 +  dependencies:
 +    html-parse-stringify2 "^2.0.1"
 +    inferno "^7.1.12"
 +    inferno-clone-vnode "^7.1.12"
 +    inferno-create-element "^7.1.12"
 +    inferno-shared "^7.1.12"
 +    inferno-vnode-flags "^7.1.12"
 +
  inferno-router@^7.0.1:
-   version "7.2.1"
-   resolved "https://registry.yarnpkg.com/inferno-router/-/inferno-router-7.2.1.tgz#ebea346a31422ed141df7177fb0b5aeb06cf8fe3"
-   integrity sha512-8DMIhAvMVfvFSax+uNsTYCWOktqMIM952EsYRn5V0LMYvnJtUczJH77vSCe1DF4o1jK+/kf9KLNfa1QPQC/CQg==
 -  version "7.1.13"
 -  resolved "https://registry.yarnpkg.com/inferno-router/-/inferno-router-7.1.13.tgz#7f72ca8deaa5bf8c2f49bcb3db253e294c134f77"
 -  integrity sha512-y97fF0IG70+nAlHRtxaH/8QsMUsSWeS375MC416NomP5tohSxmBLB0WQGTYFHvnMpqb/QSq2ojsifBAWqSHnuw==
++  version "7.3.1"
++  resolved "https://registry.yarnpkg.com/inferno-router/-/inferno-router-7.3.1.tgz#cdb81349dd1b51fa03c65bdd938e6b050006e44b"
++  integrity sha512-Hav1iCti9u6oc8ZIGmUhDHQOBRK/uJpDdbk0naEmMZ4zfu/6hbk7q7mObRVtO5QVBL2Y343SKb43LAJWv3C/rw==
    dependencies:
      history "^4.9.0"
      hoist-non-inferno-statics "^1.1.3"
-     inferno "7.2.1"
 -    inferno "7.1.13"
++    inferno "7.3.1"
      path-to-regexp-es6 "1.7.0"
  
- inferno-shared@7.2.1, inferno-shared@^7.1.12:
-   version "7.2.1"
-   resolved "https://registry.yarnpkg.com/inferno-shared/-/inferno-shared-7.2.1.tgz#7512d626e252a4e0e3ea28f0396a815651226ed6"
-   integrity sha512-QSzHVcjAy38bQWmk1nrfNsrjdrWtxleojYYg00RyuF4K6s4KCPMEch5MD7C4fCydzeBMGcZUliSoUZXpm3DVwQ==
 -inferno-shared@7.1.13:
 -  version "7.1.13"
 -  resolved "https://registry.yarnpkg.com/inferno-shared/-/inferno-shared-7.1.13.tgz#2c70af637873b58fbfc3897813076dec4850a6b0"
 -  integrity sha512-HNWpvCFO9vw5I9XNvsZamhe7UcSMBN62AOCyyGHlBGPB996/f3xwwgBWi0uHQ2rBtiM4Hp3rn65PQ5wSVd6/hg==
++inferno-shared@7.3.1, inferno-shared@^7.1.12:
++  version "7.3.1"
++  resolved "https://registry.yarnpkg.com/inferno-shared/-/inferno-shared-7.3.1.tgz#93e269cb46838780b68fa5113c9a29b6109882de"
++  integrity sha512-7I1ZJG+MFcGtlXjuyvkwFSGcT46Vs9NTzA0Sr1EkF9EMqVskVflP1r5f+quASMhby2OY7AGXnAaSsM7AbxsOlA==
  
- inferno-vnode-flags@7.2.1, inferno-vnode-flags@^7.1.12:
-   version "7.2.1"
-   resolved "https://registry.yarnpkg.com/inferno-vnode-flags/-/inferno-vnode-flags-7.2.1.tgz#833c39a16116dce86430c0bb7fedbd054ee32790"
-   integrity sha512-xYK45KNhlsKZtW60b9ahF9eICK45NtUJDGZxwxBegW98/hdL7/TyUP0gARKd4vmrwxdgwbupU6VAXPVbv7Wwgw==
 -inferno-vnode-flags@7.1.13:
 -  version "7.1.13"
 -  resolved "https://registry.yarnpkg.com/inferno-vnode-flags/-/inferno-vnode-flags-7.1.13.tgz#8c98e69079fe85feffe0ded79e6d7c05ae0d59b1"
 -  integrity sha512-RELi78Y2bs81hSxgVOY2oZ+E6mHqtXFFdsuslWYwmaYbEDYV2qZQp4ayu5MyHQU+Ip8dkjKvIkN/yrYoBAvJgw==
++inferno-vnode-flags@7.3.1, inferno-vnode-flags@^7.1.12:
++  version "7.3.1"
++  resolved "https://registry.yarnpkg.com/inferno-vnode-flags/-/inferno-vnode-flags-7.3.1.tgz#27f767a03d8f0775f8bc5ad03c9ea07ec66aa2c7"
++  integrity sha512-7LKuUGfFVSiFdRH6NVLTetrDbft4BxUePUIjXm4f+g9hginYuBwPbFJbbHK700Ysy4rapTqYnFxSk0k5JBZr+A==
  
- inferno@7.2.1, inferno@^7.0.1, inferno@^7.1.12:
-   version "7.2.1"
-   resolved "https://registry.yarnpkg.com/inferno/-/inferno-7.2.1.tgz#d82c14a237a004335ed03dd44395a4e0fe0d3729"
-   integrity sha512-+HGUvismTfy1MDRkfOxbD8nriu+lmajo/Z1JQckuisJPMJpspzxBaR9sxaWpVytjexi0Pcrh194COso4t3gAIQ==
 -inferno@7.1.13, inferno@^7.0.1:
 -  version "7.1.13"
 -  resolved "https://registry.yarnpkg.com/inferno/-/inferno-7.1.13.tgz#d8ce8384a07de5138897f9f79c25d04141228b93"
 -  integrity sha512-CrdzQRHMRkhrRTAB2tYBxnqe1umYkuKparHOHd7R37okd1TGp/Q8bQa58002Qh4pY+BU272mz3FuQC5LDQOLRg==
++inferno@7.3.1, inferno@^7.0.1, inferno@^7.1.12:
++  version "7.3.1"
++  resolved "https://registry.yarnpkg.com/inferno/-/inferno-7.3.1.tgz#5e356d9a5a218809eb4da49c333d324126515683"
++  integrity sha512-9t4G/YjhbiC65d8GHxzfn41qALVf2fvykMdH92ySUiSLr3EQak8gs6rno52KuW7puDZcmJgmMHVA0vTVegtfsQ==
    dependencies:
-     inferno-shared "7.2.1"
-     inferno-vnode-flags "7.2.1"
 -    inferno-shared "7.1.13"
 -    inferno-vnode-flags "7.1.13"
++    inferno-shared "7.3.1"
++    inferno-vnode-flags "7.3.1"
      opencollective-postinstall "^2.0.2"
  
  inflight@^1.0.4:
      once "^1.3.0"
      wrappy "1"
  
 -inherits@2, inherits@2.0.3, inherits@^2.0.1, inherits@~2.0.1, inherits@~2.0.3:
 +inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@~2.0.1, inherits@~2.0.3:
 +  version "2.0.4"
 +  resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
 +  integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
 +
 +inherits@2.0.3:
    version "2.0.3"
    resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de"
    integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=
@@@ -1465,7 -1393,7 +1465,7 @@@ is-number@^4.0.0
    resolved "https://registry.yarnpkg.com/is-number/-/is-number-4.0.0.tgz#0026e37f5454d73e356dfe6564699867c6a7f0ff"
    integrity sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==
  
 -is-plain-object@^2.0.1, 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"
    resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677"
    integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==
@@@ -1525,9 -1453,9 +1525,9 @@@ isstream@~0.1.2
    integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=
  
  js-cookie@^2.2.0:
--  version "2.2.0"
--  resolved "https://registry.yarnpkg.com/js-cookie/-/js-cookie-2.2.0.tgz#1b2c279a6eece380a12168b92485265b35b1effb"
--  integrity sha1-Gywnmm7s44ChIWi5JIUmWzWx7/s=
++  version "2.2.1"
++  resolved "https://registry.yarnpkg.com/js-cookie/-/js-cookie-2.2.1.tgz#69e106dc5d5806894562902aa5baec3744e9b2b8"
++  integrity sha512-HvdH2LzI/EAZcUwA8+0nKNtWHqS+ZmijLA30RwZA0bo7ToCckjK5MkGhjED9KoRcXO6BaGI3I9UIzSA1FKFPOQ==
  
  "js-tokens@^3.0.0 || ^4.0.0":
    version "4.0.0"
@@@ -1621,16 -1549,16 +1621,16 @@@ levn@~0.3.0
      type-check "~0.3.2"
  
  linkify-it@^2.0.0:
 -  version "2.1.0"
 -  resolved "https://registry.yarnpkg.com/linkify-it/-/linkify-it-2.1.0.tgz#c4caf38a6cd7ac2212ef3c7d2bde30a91561f9db"
 -  integrity sha512-4REs8/062kV2DSHxNfq5183zrqXMl7WP0WzABH9IeJI+NLm429FgE1PDecltYfnOoFDFlZGh2T8PfZn0r+GTRg==
 +  version "2.2.0"
 +  resolved "https://registry.yarnpkg.com/linkify-it/-/linkify-it-2.2.0.tgz#e3b54697e78bf915c70a38acd78fd09e0058b1cf"
 +  integrity sha512-GnAl/knGn+i1U/wjBz3akz2stz+HrHLsxMwHQGofCDfPvlf+gDKN58UtfmUquTY4/MXeE2x7k19KQmeoZi94Iw==
    dependencies:
      uc.micro "^1.0.1"
  
  lodash@^4.3.0:
 -  version "4.17.11"
 -  resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.11.tgz#b39ea6229ef607ecd89e2c8df12536891cac9b8d"
 -  integrity sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==
 +  version "4.17.15"
 +  resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548"
 +  integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==
  
  loose-envify@^1.2.0:
    version "1.4.0"
@@@ -1656,6 -1584,11 +1656,11 @@@ markdown-it-container@^2.0.0
    resolved "https://registry.yarnpkg.com/markdown-it-container/-/markdown-it-container-2.0.0.tgz#0019b43fd02eefece2f1960a2895fba81a404695"
    integrity sha1-ABm0P9Au7+zi8ZYKKJX7qBpARpU=
  
+ markdown-it-emoji@^1.4.0:
+   version "1.4.0"
+   resolved "https://registry.yarnpkg.com/markdown-it-emoji/-/markdown-it-emoji-1.4.0.tgz#9bee0e9a990a963ba96df6980c4fddb05dfb4dcc"
+   integrity sha1-m+4OmpkKljupbfaYDE/dsF37Tcw=
  markdown-it@^8.4.2:
    version "8.4.2"
    resolved "https://registry.yarnpkg.com/markdown-it/-/markdown-it-8.4.2.tgz#386f98998dc15a37722aa7722084f4020bdd9b54"
@@@ -1775,9 -1708,9 +1780,9 @@@ minimist@^1.2.0
    integrity sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=
  
  minipass@^2.2.1, minipass@^2.3.5:
--  version "2.3.5"
--  resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.3.5.tgz#cacebe492022497f656b0f0f51e2682a9ed2d848"
--  integrity sha512-Gi1W4k059gyRbyVUZQ4mEqLm0YIUiGYfvxhF6SIlk3ui1WVxMTGfGdQ2SInh3PDrRTVvPKgULkpJtT4RH10+VA==
++  version "2.5.0"
++  resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.5.0.tgz#dddb1d001976978158a05badfcbef4a771612857"
++  integrity sha512-9FwMVYhn6ERvMR8XFdOavRz4QK/VJV8elU1x50vYexf9lslDcWe/f4HBRxCPd185ekRSjU6CfYyJCECa/CQy7Q==
    dependencies:
      safe-buffer "^5.1.2"
      yallist "^3.0.0"
@@@ -1790,9 -1723,9 +1795,9 @@@ minizlib@^1.2.1
      minipass "^2.2.1"
  
  mixin-deep@^1.2.0:
 -  version "1.3.1"
 -  resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.1.tgz#a49e7268dce1a0d9698e45326c5626df3543d0fe"
 -  integrity sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==
 +  version "1.3.2"
 +  resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.2.tgz#1120b43dc359a785dce65b55b82e257ccf479566"
 +  integrity sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==
    dependencies:
      for-in "^1.0.2"
      is-extendable "^1.0.1"
@@@ -1814,16 -1747,11 +1819,16 @@@ ms@2.0.0
    resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"
    integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=
  
 -ms@2.1.1, ms@^2.1.1:
 +ms@2.1.1:
    version "2.1.1"
    resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a"
    integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==
  
 +ms@^2.1.1:
 +  version "2.1.2"
 +  resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009"
 +  integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==
 +
  mustache@^2.3.0:
    version "2.3.2"
    resolved "https://registry.yarnpkg.com/mustache/-/mustache-2.3.2.tgz#a6d4d9c3f91d13359ab889a812954f9230a3d0c5"
@@@ -1912,9 -1840,9 +1917,9 @@@ npm-bundled@^1.0.1
    integrity sha512-8/JCaftHwbd//k6y2rEWp6k1wxVfpFzB6t1p825+cUb7Ym2XQfhwIC5KwhrvzZRJu+LtDE585zVaS32+CGtf0g==
  
  npm-packlist@^1.1.6:
 -  version "1.4.1"
 -  resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.4.1.tgz#19064cdf988da80ea3cee45533879d90192bbfbc"
 -  integrity sha512-+TcdO7HJJ8peiiYhvPxsEDhF3PJFGUGRcFsGve3vxvxdcpO2Z4Z7rkosRM0kWj6LfbK/P0gu3dzk5RU1ffvFcw==
 +  version "1.4.4"
 +  resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.4.4.tgz#866224233850ac534b63d1a6e76050092b5d2f44"
 +  integrity sha512-zTLo8UcVYtDU3gdeaFu2Xu0n0EvelfHDGuqtNIn5RO7yQj4H1TqNdBc/yZjxnWA0PVB8D3Woyp0i5B43JwQ6Vw==
    dependencies:
      ignore-walk "^3.0.1"
      npm-bundled "^1.0.1"
@@@ -2123,9 -2051,9 +2128,9 @@@ prettysize@0.0.3
    integrity sha1-FK//amReWRpN3xxykZwjtBRhgaE=
  
  process-nextick-args@~2.0.0:
 -  version "2.0.0"
 -  resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.0.tgz#a37d732f4271b4ab1ad070d35508e8290788ffaa"
 -  integrity sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==
 +  version "2.0.1"
 +  resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2"
 +  integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==
  
  proxy-addr@~2.0.5:
    version "2.0.5"
      ipaddr.js "1.9.0"
  
  psl@^1.1.24:
-   version "1.2.0"
-   resolved "https://registry.yarnpkg.com/psl/-/psl-1.2.0.tgz#df12b5b1b3a30f51c329eacbdef98f3a6e136dc6"
-   integrity sha512-GEn74ZffufCmkDDLNcl3uuyF/aSD6exEyh1v/ZSdAomB82t6G9hzJVRx0jBmLDW+VfZqks3aScmMw9DszwUalA==
 -  version "1.1.32"
 -  resolved "https://registry.yarnpkg.com/psl/-/psl-1.1.32.tgz#3f132717cf2f9c169724b2b6caf373cf694198db"
 -  integrity sha512-MHACAkHpihU/REGGPLj4sEfc/XKW2bheigvHO1dUqjaKigMp1C8+WLQYRGgeKFMsw5PMfegZcaN8IDXK/cD0+g==
++  version "1.3.0"
++  resolved "https://registry.yarnpkg.com/psl/-/psl-1.3.0.tgz#e1ebf6a3b5564fa8376f3da2275da76d875ca1bd"
++  integrity sha512-avHdspHO+9rQTLbv1RO+MPYeP/SzsCoxofjVnHanETfQhTJrmB0HlDoW+EiN/R+C0BZ+gERab9NY0lPN2TxNag==
  
  punycode@^1.4.1:
    version "1.4.1"
@@@ -2224,7 -2152,7 +2229,7 @@@ realm-utils@^1.0.9
      app-root-path "^1.3.0"
      mkdirp "^0.5.1"
  
--regenerate-unicode-properties@^8.0.2:
++regenerate-unicode-properties@^8.1.0:
    version "8.1.0"
    resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-8.1.0.tgz#ef51e0f0ea4ad424b77bf7cb41f3e015c70a3f0e"
    integrity sha512-LGZzkgtLY79GeXLm8Dp0BVLdQlWICzBnJz/ipWUgo59qBaZ+BHtq51P2q1uVZlppMuUAT37SDk39qUbjTWB7bA==
@@@ -2237,9 -2165,9 +2242,9 @@@ regenerate@^1.4.0
    integrity sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg==
  
  regenerator-runtime@^0.13.2:
 -  version "0.13.2"
 -  resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.2.tgz#32e59c9a6fb9b1a4aff09b4930ca2d4477343447"
 -  integrity sha512-S/TQAZJO+D3m9xeN1WTI8dLKBBiRgXBlTJvbWjCThHWZj9EvHK70Ff50/tYj2J/fvBY6JtFVwRuazHN2E7M9BA==
 +  version "0.13.3"
 +  resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.3.tgz#7cf6a77d8f5c6f60eb73c5fc1955b2ceb01e6bf5"
 +  integrity sha512-naKIZz2GQ8JWh///G7L3X6LaQUAMp2lvb1rvwwsURe/VXwD6VMfr+/1NuNw3ag8v2kY1aQ/go5SNn79O9JU7yw==
  
  regex-cache@^0.4.2:
    version "0.4.4"
@@@ -2257,12 -2185,12 +2262,12 @@@ regex-not@^1.0.0, regex-not@^1.0.2
      safe-regex "^1.1.0"
  
  regexpu-core@^4.1.3:
--  version "4.5.4"
--  resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.5.4.tgz#080d9d02289aa87fe1667a4f5136bc98a6aebaae"
--  integrity sha512-BtizvGtFQKGPUcTy56o3nk1bGRp4SZOTYrDtGNlqCQufptV5IkkLN6Emw+yunAJjzf+C9FQFtvq7IoA3+oMYHQ==
++  version "4.5.5"
++  resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.5.5.tgz#aaffe61c2af58269b3e516b61a73790376326411"
++  integrity sha512-FpI67+ky9J+cDizQUJlIlNZFKual/lUkFr1AG6zOCpwZ9cLrg8UUVakyUQJD7fCDIe9Z2nwTQJNPyonatNmDFQ==
    dependencies:
      regenerate "^1.4.0"
--    regenerate-unicode-properties "^8.0.2"
++    regenerate-unicode-properties "^8.1.0"
      regjsgen "^0.5.0"
      regjsparser "^0.6.0"
      unicode-match-property-ecmascript "^1.0.4"
@@@ -2345,9 -2273,9 +2350,9 @@@ ret@~0.1.10
    integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==
  
  rimraf@^2.6.1:
--  version "2.6.3"
--  resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab"
--  integrity sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==
++  version "2.7.1"
++  resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec"
++  integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==
    dependencies:
      glob "^7.1.3"
  
@@@ -2377,16 -2305,11 +2382,16 @@@ rxjs@^6.4.0
    dependencies:
      tslib "^1.9.0"
  
 -safe-buffer@5.1.2, safe-buffer@^5.0.1, safe-buffer@^5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1:
 +safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1:
    version "5.1.2"
    resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d"
    integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==
  
 +safe-buffer@^5.0.1, safe-buffer@^5.1.2:
 +  version "5.2.0"
 +  resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.0.tgz#b74daec49b1148f88c64b68d49b1e815c1f2f519"
 +  integrity sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==
 +
  safe-regex@^1.1.0:
    version "1.1.0"
    resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e"
@@@ -2405,9 -2328,9 +2410,9 @@@ sax@^1.2.4
    integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==
  
  semver@^5.3.0:
--  version "5.7.0"
--  resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.0.tgz#790a7cf6fea5459bac96110b29b60412dc8ff96b"
--  integrity sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==
++  version "5.7.1"
++  resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7"
++  integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==
  
  send@0.17.1:
    version "0.17.1"
@@@ -2443,10 -2366,20 +2448,10 @@@ set-blocking@~2.0.0
    resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7"
    integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc=
  
 -set-value@^0.4.3:
 -  version "0.4.3"
 -  resolved "https://registry.yarnpkg.com/set-value/-/set-value-0.4.3.tgz#7db08f9d3d22dc7f78e53af3c3bf4666ecdfccf1"
 -  integrity sha1-fbCPnT0i3H945Trzw79GZuzfzPE=
 -  dependencies:
 -    extend-shallow "^2.0.1"
 -    is-extendable "^0.1.1"
 -    is-plain-object "^2.0.1"
 -    to-object-path "^0.3.0"
 -
 -set-value@^2.0.0:
 -  version "2.0.0"
 -  resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.0.tgz#71ae4a88f0feefbbf52d1ea604f3fb315ebb6274"
 -  integrity sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg==
 +set-value@^2.0.0, set-value@^2.0.1:
 +  version "2.0.1"
 +  resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.1.tgz#a18d40530e6f07de4228c7defe4227af8cad005b"
 +  integrity sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==
    dependencies:
      extend-shallow "^2.0.1"
      is-extendable "^0.1.1"
@@@ -2510,9 -2443,9 +2515,9 @@@ source-map-resolve@^0.5.0
      urix "^0.1.0"
  
  source-map-support@~0.5.10:
--  version "0.5.12"
--  resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.12.tgz#b4f3b10d51857a5af0138d3ce8003b201613d599"
--  integrity sha512-4h2Pbvyy15EE02G+JOZpUCmqWJuqrs+sEkzewTm++BPi7Hvn/HwcqLAcNxYAyI0x13CpPPn+kMjl+hplXMHITQ==
++  version "0.5.13"
++  resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.13.tgz#31b24a9c2e73c2de85066c0feb7d44767ed52932"
++  integrity sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==
    dependencies:
      buffer-from "^1.0.0"
      source-map "^0.6.0"
@@@ -2643,9 -2576,9 +2648,9 @@@ supports-color@^5.3.0, supports-color@^
      has-flag "^3.0.0"
  
  tar@^4:
 -  version "4.4.9"
 -  resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.9.tgz#058fbb152f6fc45733e84585a40c39e59302e1b3"
 -  integrity sha512-xisFa7Q2i3HOgfn+nmnWLGHD6Tm23hxjkx6wwGmgxkJFr6wxwXnJOdJYcZjL453PSdF0+bemO03+flAzkIdLBQ==
 +  version "4.4.10"
 +  resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.10.tgz#946b2810b9a5e0b26140cf78bea6b0b0d689eba1"
 +  integrity sha512-g2SVs5QIxvo6OLp0GudTqEf05maawKUxXru104iaayWA09551tFCTI8f1Asb4lPfkBr91k07iL4c11XO3/b0tA==
    dependencies:
      chownr "^1.1.1"
      fs-minipass "^1.2.5"
@@@ -2670,14 -2603,14 +2675,14 @@@ through@^2.3.6
    integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=
  
  tiny-invariant@^1.0.2:
 -  version "1.0.4"
 -  resolved "https://registry.yarnpkg.com/tiny-invariant/-/tiny-invariant-1.0.4.tgz#346b5415fd93cb696b0c4e8a96697ff590f92463"
 -  integrity sha512-lMhRd/djQJ3MoaHEBrw8e2/uM4rs9YMNk0iOr8rHQ0QdbM7D4l0gFl3szKdeixrlyfm9Zqi4dxHCM2qVG8ND5g==
 +  version "1.0.6"
 +  resolved "https://registry.yarnpkg.com/tiny-invariant/-/tiny-invariant-1.0.6.tgz#b3f9b38835e36a41c843a3b0907a5a7b3755de73"
 +  integrity sha512-FOyLWWVjG+aC0UqG76V53yAWdXfH8bO6FNmyZOuUrzDzK8DI3/JRY25UD7+g49JWM1LXwymsKERB+DzI0dTEQA==
  
  tiny-warning@^1.0.0:
 -  version "1.0.2"
 -  resolved "https://registry.yarnpkg.com/tiny-warning/-/tiny-warning-1.0.2.tgz#1dfae771ee1a04396bdfde27a3adcebc6b648b28"
 -  integrity sha512-rru86D9CpQRLvsFG5XFdy0KdLAvjdQDyZCsRcuu60WtzFylDM3eAWSxEVz5kzL2Gp544XiUvPbVKtOA/txLi9Q==
 +  version "1.0.3"
 +  resolved "https://registry.yarnpkg.com/tiny-warning/-/tiny-warning-1.0.3.tgz#94a30db453df4c643d0fd566060d60a875d84754"
 +  integrity sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==
  
  tmp@^0.0.33:
    version "0.0.33"
@@@ -2737,9 -2670,9 +2742,9 @@@ ts-transform-inferno@^4.0.2
    integrity sha512-CZb4+w/2l2zikPZ/c51fi3n+qnR2HCEfAS73oGQB80aqRLffkZqm25kYYTMmqUW2+oVfs4M5AZa0z14cvxlQ5w==
  
  tslib@^1.8.0, tslib@^1.9.0:
 -  version "1.9.3"
 -  resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.9.3.tgz#d7e4dd79245d85428c4d7e4822a79917954ca286"
 -  integrity sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ==
 +  version "1.10.0"
 +  resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.10.0.tgz#c3c19f95973fb0a62973fb09d90d961ee43e5c8a"
 +  integrity sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==
  
  tunnel-agent@^0.6.0:
    version "0.6.0"
@@@ -2773,10 -2706,10 +2778,10 @@@ typescript@^2.6.2
    resolved "https://registry.yarnpkg.com/typescript/-/typescript-2.9.2.tgz#1cbf61d05d6b96269244eb6a3bce4bd914e0f00c"
    integrity sha512-Gr4p6nFNaoufRIY4NMdpQRNmgxVIGMs4Fcu/ujdYk3nAZqk7supzBE9idmvfZIlH/Cuj//dvi+019qEue9lV0w==
  
 -typescript@^3.3.3333:
 -  version "3.5.1"
 -  resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.5.1.tgz#ba72a6a600b2158139c5dd8850f700e231464202"
 -  integrity sha512-64HkdiRv1yYZsSe4xC1WVgamNigVYjlssIoaH2HcZF0+ijsk5YK2g0G34w9wJkze8+5ow4STd22AynfO6ZYYLw==
 +typescript@^3.5.3:
-   version "3.5.3"
-   resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.5.3.tgz#c830f657f93f1ea846819e929092f5fe5983e977"
-   integrity sha512-ACzBtm/PhXBDId6a6sDJfroT2pOWt/oOnk4/dElG5G33ZL776N3Y6/6bKZJBFpd+b05F3Ct9qDjMeJmRWtE2/g==
++  version "3.6.2"
++  resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.6.2.tgz#105b0f1934119dde543ac8eb71af3a91009efe54"
++  integrity sha512-lmQ4L+J6mnu3xweP8+rOrUwzmN+MRAj7TgtJtDaXE5PMyX2kCrklhg3rvOsOIfNeAWMQWO2F1GPc1kMD2vLAfw==
  
  uc.micro@^1.0.1, uc.micro@^1.0.5:
    version "1.0.6"
@@@ -2812,14 -2745,14 +2817,14 @@@ unicode-property-aliases-ecmascript@^1.
    integrity sha512-L5RAqCfXqAwR3RriF8pM0lU0w4Ryf/GgzONwi6KnL1taJQa7x1TCxdJnILX59WIGOwR57IVxn7Nej0fz1Ny6fw==
  
  union-value@^1.0.0:
 -  version "1.0.0"
 -  resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.0.tgz#5c71c34cb5bad5dcebe3ea0cd08207ba5aa1aea4"
 -  integrity sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=
 +  version "1.0.1"
 +  resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.1.tgz#0b6fe7b835aecda61c6ea4d4f02c14221e109847"
 +  integrity sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==
    dependencies:
      arr-union "^3.1.0"
      get-value "^2.0.6"
      is-extendable "^0.1.1"
 -    set-value "^0.4.3"
 +    set-value "^2.0.1"
  
  universalify@^0.1.0:
    version "0.1.2"
@@@ -2872,9 -2805,9 +2877,9 @@@ utils-merge@1.0.1
    integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=
  
  uuid@^3.3.2:
--  version "3.3.2"
--  resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.3.2.tgz#1b4af4955eb3077c501c23872fc6513811587131"
--  integrity sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==
++  version "3.3.3"
++  resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.3.3.tgz#4568f0216e78760ee1dbf3a4d2cf53e224112866"
++  integrity sha512-pW0No1RGHgzlpHJO1nsVrHKpOEIxkGg1xB+v0ZmdNH5OAeAwzAVrCnI2/6Mtx+Uys6iaylxa+D3g4j63IKKjSQ==
  
  value-equal@^0.4.0:
    version "0.4.0"
@@@ -2895,11 -2828,6 +2900,11 @@@ verror@1.10.0
      core-util-is "1.0.2"
      extsprintf "^1.2.0"
  
 +void-elements@^2.0.1:
 +  version "2.0.1"
 +  resolved "https://registry.yarnpkg.com/void-elements/-/void-elements-2.0.1.tgz#c066afb582bb1cb4128d60ea92392e94d5e9dbec"
 +  integrity sha1-wGavtYK7HLQSjWDqkjkulNXp2+w=
 +
  watch@^1.0.1:
    version "1.0.2"
    resolved "https://registry.yarnpkg.com/watch/-/watch-1.0.2.tgz#340a717bde765726fa0aa07d721e0147a551df0c"
@@@ -2933,13 -2861,6 +2938,13 @@@ ws@^1.1.1
      options ">=0.0.5"
      ultron "1.0.x"
  
-   version "7.1.1"
-   resolved "https://registry.yarnpkg.com/ws/-/ws-7.1.1.tgz#f9942dc868b6dffb72c14fd8f2ba05f77a4d5983"
-   integrity sha512-o41D/WmDeca0BqYhsr3nJzQyg9NF5X8l/UdnFNux9cS3lwB+swm8qGWX5rn+aD6xfBU3rGmtHij7g7x6LxFU3A==
 +ws@^7.0.0:
++  version "7.1.2"
++  resolved "https://registry.yarnpkg.com/ws/-/ws-7.1.2.tgz#c672d1629de8bb27a9699eb599be47aeeedd8f73"
++  integrity sha512-gftXq3XI81cJCgkUiAVixA0raD9IVmXqsylCrjRygw4+UOOGzPoxnQ6r/CnVL9i+mDncJo94tSkyrtuuQVBmrg==
 +  dependencies:
 +    async-limiter "^1.0.0"
 +
  yallist@^3.0.0, yallist@^3.0.3:
    version "3.0.3"
    resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.0.3.tgz#b4b049e314be545e3ce802236d6cd22cd91c3de9"