gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[taler-wallet-core] branch master updated (27c22c28 -> 83af702f)


From: gnunet
Subject: [taler-wallet-core] branch master updated (27c22c28 -> 83af702f)
Date: Wed, 03 Jun 2020 13:16:32 +0200

This is an automated email from the git hooks/post-receive script.

dold pushed a change to branch master
in repository wallet-core.

    from 27c22c28 bump version
     new 2c35db77 fix zip, get rid of content script remains
     new 156f69a1 upgrade dependencies
     new 77c61e73 fix test case
     new 83af702f re-indent with latest version of prettier

The 4 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 package.json                               |  28 +-
 rollup.config.js                           |  33 ---
 src/android/index.ts                       |   7 +-
 src/crypto/workers/cryptoImplementation.ts |  16 +-
 src/headless/integrationtest.ts            |   8 +-
 src/headless/taler-wallet-cli.ts           |   5 +-
 src/operations/history.ts                  |  10 +-
 src/operations/pay.ts                      |   5 +-
 src/operations/pending.ts                  |  14 +-
 src/operations/reserves.ts                 |   6 +-
 src/operations/tip.ts                      |   5 +-
 src/operations/withdraw.ts                 |  14 +-
 src/types/talerTypes.ts                    |   8 +-
 src/types/transactions.ts                  |   2 +-
 src/types/types-test.ts                    |   1 +
 src/types/walletTypes.ts                   |   3 +-
 src/util/amounts.ts                        |   2 +-
 src/util/time.ts                           |   1 -
 src/webex/notify.ts                        | 218 ---------------
 src/webex/pages/popup.tsx                  |  10 +-
 src/webex/pages/welcome.tsx                |  23 +-
 src/webex/pages/withdraw.tsx               |  23 +-
 src/webex/permissions.ts                   |   2 +-
 webextension/pack.sh                       |   4 +-
 yarn.lock                                  | 424 +++++++++++++++++------------
 25 files changed, 369 insertions(+), 503 deletions(-)
 delete mode 100644 src/webex/notify.ts

diff --git a/package.json b/package.json
index 92a797bb..1ef1c132 100644
--- a/package.json
+++ b/package.json
@@ -40,40 +40,40 @@
     "@types/react-dom": "^16.9.6",
     "@typescript-eslint/eslint-plugin": "^2.27.0",
     "@typescript-eslint/parser": "^2.27.0",
-    "ava": "^3.6.0",
+    "ava": "^3.8.2",
     "enzyme": "^3.11.0",
     "enzyme-adapter-react-16": "^1.15.2",
     "eslint": "^6.8.0",
-    "eslint-config-airbnb-typescript": "^7.2.0",
+    "eslint-config-airbnb-typescript": "^8.0.0",
     "eslint-plugin-import": "^2.20.2",
     "eslint-plugin-jsx-a11y": "^6.2.3",
-    "eslint-plugin-react": "^7.19.0",
-    "eslint-plugin-react-hooks": "^3.0.0",
+    "eslint-plugin-react": "^7.20.0",
+    "eslint-plugin-react-hooks": "^4.0.4",
     "jed": "^1.1.1",
-    "moment": "^2.18.1",
-    "nyc": "^15.0.1",
+    "moment": "^2.26.0",
+    "nyc": "^15.1.0",
     "po2json": "^0.4.5",
     "pogen": "^0.0.5",
-    "prettier": "^2.0.4",
+    "prettier": "^2.0.5",
     "react": "^16.13.1",
     "react-dom": "^16.13.1",
-    "rollup": "^2.3.3",
+    "rollup": "^2.12.1",
     "rollup-plugin-commonjs": "^10.1.0",
     "rollup-plugin-node-resolve": "^5.2.0",
-    "rollup-plugin-sourcemaps": "^0.5.0",
-    "rollup-plugin-terser": "^5.3.0",
+    "rollup-plugin-sourcemaps": "^0.6.2",
+    "rollup-plugin-terser": "^6.1.0",
     "source-map-resolve": "^0.6.0",
     "structured-clone": "^0.2.2",
-    "typedoc": "^0.17.4",
-    "typescript": "^3.8.3"
+    "typedoc": "^0.17.7",
+    "typescript": "^3.9.3"
   },
   "dependencies": {
     "axios": "^0.19.2",
     "big-integer": "^1.6.48",
     "idb-bridge": "^0.0.15",
     "qrcode-generator": "^1.4.3",
-    "source-map-support": "^0.5.12",
-    "tslib": "^1.11.1"
+    "source-map-support": "^0.5.19",
+    "tslib": "^2.0.0"
   },
   "ava": {
     "files": [
diff --git a/rollup.config.js b/rollup.config.js
index 4e3666ea..71748a86 100644
--- a/rollup.config.js
+++ b/rollup.config.js
@@ -150,43 +150,10 @@ const webExtensionCryptoWorker = {
   ],
 };
 
-const webExtensionContentScript = {
-  input: "dist/node/webex/notify.js",
-  output: {
-    file: "dist/webextension/contentScript.js",
-    format: "iife",
-    exports: "default",
-    name: "webExtensionContentScript",
-  },
-  external: builtins,
-  plugins: [
-    json(),
-
-    nodeResolve({
-      preferBuiltins: true,
-    }),
-
-    terser(),
-
-    replace({
-      "process.env.NODE_ENV": JSON.stringify("production"),
-    }),
-
-    commonjs({
-      include: ["node_modules/**", "dist/node/**"],
-      extensions: [".js"],
-      ignoreGlobal: false, // Default: false
-      sourceMap: false,
-      ignore: ["taler-wallet"],
-    }),
-  ],
-};
-
 export default [
   walletCli,
   walletAndroid,
   webExtensionPageEntryPoint,
   webExtensionBackgroundPageScript,
   webExtensionCryptoWorker,
-  webExtensionContentScript,
 ];
diff --git a/src/android/index.ts b/src/android/index.ts
index 0e8efd84..a10236ce 100644
--- a/src/android/index.ts
+++ b/src/android/index.ts
@@ -33,7 +33,10 @@ import {
 } from "../util/http";
 import { NodeHttpLib } from "../headless/NodeHttpLib";
 import { WalletNotification } from "../types/notifications";
-import { WALLET_EXCHANGE_PROTOCOL_VERSION, WALLET_MERCHANT_PROTOCOL_VERSION } 
from "../operations/versions";
+import {
+  WALLET_EXCHANGE_PROTOCOL_VERSION,
+  WALLET_MERCHANT_PROTOCOL_VERSION,
+} from "../operations/versions";
 
 // @ts-ignore: special built-in module
 //import akono = require("akono");
@@ -159,7 +162,7 @@ class AndroidWalletMessageHandler {
           supported_protocol_versions: {
             exchange: WALLET_EXCHANGE_PROTOCOL_VERSION,
             merchant: WALLET_MERCHANT_PROTOCOL_VERSION,
-          }
+          },
         };
       }
       case "getTransactions": {
diff --git a/src/crypto/workers/cryptoImplementation.ts 
b/src/crypto/workers/cryptoImplementation.ts
index dc0452dc..e0ba24e4 100644
--- a/src/crypto/workers/cryptoImplementation.ts
+++ b/src/crypto/workers/cryptoImplementation.ts
@@ -65,7 +65,11 @@ import {
 } from "../talerCrypto";
 import { randomBytes } from "../primitives/nacl-fast";
 import { kdf } from "../primitives/kdf";
-import { Timestamp, getTimestampNow, timestampTruncateToSecond } from 
"../../util/time";
+import {
+  Timestamp,
+  getTimestampNow,
+  timestampTruncateToSecond,
+} from "../../util/time";
 
 enum SignaturePurpose {
   RESERVE_WITHDRAW = 1200,
@@ -368,7 +372,10 @@ export class CryptoImplementation {
 
     for (const ncd of newCoinDenoms.selectedDenoms) {
       const t = Amounts.add(ncd.denom.value, ncd.denom.feeWithdraw).amount;
-      valueWithFee = Amounts.add(valueWithFee, Amounts.mult(t, 
ncd.count).amount).amount;
+      valueWithFee = Amounts.add(
+        valueWithFee,
+        Amounts.mult(t, ncd.count).amount,
+      ).amount;
     }
 
     // melt fee
@@ -406,7 +413,10 @@ export class CryptoImplementation {
           const coinNumber = planchets.length;
           const transferPriv = decodeCrock(transferPrivs[i]);
           const oldCoinPub = decodeCrock(meltCoin.coinPub);
-          const transferSecret = keyExchangeEcdheEddsa(transferPriv, 
oldCoinPub);
+          const transferSecret = keyExchangeEcdheEddsa(
+            transferPriv,
+            oldCoinPub,
+          );
           const fresh = setupRefreshPlanchet(transferSecret, coinNumber);
           const coinPriv = fresh.coinPriv;
           const coinPub = fresh.coinPub;
diff --git a/src/headless/integrationtest.ts b/src/headless/integrationtest.ts
index 5beb7b79..db96d57c 100644
--- a/src/headless/integrationtest.ts
+++ b/src/headless/integrationtest.ts
@@ -87,7 +87,9 @@ async function makePayment(
   };
 }
 
-export async function runIntegrationTest(args: IntegrationTestArgs): 
Promise<void> {
+export async function runIntegrationTest(
+  args: IntegrationTestArgs,
+): Promise<void> {
   logger.info("running test with arguments", args);
 
   const parsedSpendAmount = Amounts.parseOrThrow(args.amountToSpend);
@@ -191,7 +193,9 @@ export async function runIntegrationTest(args: 
IntegrationTestArgs): Promise<voi
   );
 }
 
-export async function runIntegrationTestBasic(cfg: Configuration): 
Promise<void> {
+export async function runIntegrationTestBasic(
+  cfg: Configuration,
+): Promise<void> {
   const walletDbPath = cfg.getString("integrationtest", "walletdb").required();
 
   const bankBaseUrl = cfg
diff --git a/src/headless/taler-wallet-cli.ts b/src/headless/taler-wallet-cli.ts
index 72d00a06..5a792ee0 100644
--- a/src/headless/taler-wallet-cli.ts
+++ b/src/headless/taler-wallet-cli.ts
@@ -649,7 +649,10 @@ testCli
       args.genTipUri.merchant ?? "https://backend.test.taler.net/";,
       args.genTipUri.merchantApiKey ?? "sandbox",
     );
-    const tipUri = await merchantBackend.authorizeTip(args.genTipUri.amount, 
"test");
+    const tipUri = await merchantBackend.authorizeTip(
+      args.genTipUri.amount,
+      "test",
+    );
     console.log(tipUri);
   });
 
diff --git a/src/operations/history.ts b/src/operations/history.ts
index 4e43596f..f04dad11 100644
--- a/src/operations/history.ts
+++ b/src/operations/history.ts
@@ -18,11 +18,7 @@
  * Imports.
  */
 import { InternalWalletState } from "./state";
-import {
-  Stores,
-  ProposalStatus,
-  ProposalRecord,
-} from "../types/dbTypes";
+import { Stores, ProposalStatus, ProposalRecord } from "../types/dbTypes";
 import { Amounts } from "../util/amounts";
 import { AmountJson } from "../util/amounts";
 import {
@@ -216,7 +212,9 @@ export async function getHistory(
               HistoryEventType.Withdrawn,
               wsr.withdrawalGroupId,
             ),
-            amountWithdrawnEffective: 
Amounts.stringify(wsr.denomsSel.totalCoinValue),
+            amountWithdrawnEffective: Amounts.stringify(
+              wsr.denomsSel.totalCoinValue,
+            ),
             amountWithdrawnRaw: Amounts.stringify(wsr.rawWithdrawalAmount),
             exchangeBaseUrl: wsr.exchangeBaseUrl,
             timestamp: wsr.timestampFinish,
diff --git a/src/operations/pay.ts b/src/operations/pay.ts
index b2627f74..7faace46 100644
--- a/src/operations/pay.ts
+++ b/src/operations/pay.ts
@@ -165,7 +165,7 @@ export async function getTotalPaymentCost(
     costs.push(refreshCost);
   }
   return {
-    totalCost: Amounts.sum(costs).amount
+    totalCost: Amounts.sum(costs).amount,
   };
 }
 
@@ -195,7 +195,8 @@ export function selectPayCoins(
       Amounts.cmp(o1.feeDeposit, o2.feeDeposit) ||
       strcmp(o1.denomPub, o2.denomPub),
   );
-  const paymentAmount = Amounts.add(contractTermsAmount, 
customerWireFees).amount;
+  const paymentAmount = Amounts.add(contractTermsAmount, customerWireFees)
+    .amount;
   const currency = paymentAmount.currency;
   let amountPayRemaining = paymentAmount;
   let amountDepositFeeLimitRemaining = depositFeeLimit;
diff --git a/src/operations/pending.ts b/src/operations/pending.ts
index c793f5f0..cf9b306d 100644
--- a/src/operations/pending.ts
+++ b/src/operations/pending.ts
@@ -260,12 +260,14 @@ async function gatherWithdrawalPending(
     }
     let numCoinsWithdrawn = 0;
     let numCoinsTotal = 0;
-    await tx.iterIndexed(Stores.planchets.byGroup, 
wsr.withdrawalGroupId).forEach((x) => {
-      numCoinsTotal++;
-      if (x.withdrawalDone) {
-        numCoinsWithdrawn++;
-      }
-    });
+    await tx
+      .iterIndexed(Stores.planchets.byGroup, wsr.withdrawalGroupId)
+      .forEach((x) => {
+        numCoinsTotal++;
+        if (x.withdrawalDone) {
+          numCoinsWithdrawn++;
+        }
+      });
     resp.pendingOperations.push({
       type: PendingOperationType.Withdraw,
       givesLifeness: true,
diff --git a/src/operations/reserves.ts b/src/operations/reserves.ts
index 3d45d8d5..2761dfaf 100644
--- a/src/operations/reserves.ts
+++ b/src/operations/reserves.ts
@@ -106,7 +106,11 @@ export async function createReserve(
   let bankInfo: ReserveBankInfo | undefined;
 
   if (req.bankWithdrawStatusUrl) {
-    const denomSelInfo = await selectWithdrawalDenoms(ws, canonExchange, 
req.amount);
+    const denomSelInfo = await selectWithdrawalDenoms(
+      ws,
+      canonExchange,
+      req.amount,
+    );
     const denomSel = denomSelectionInfoToState(denomSelInfo);
     bankInfo = {
       statusUrl: req.bankWithdrawStatusUrl,
diff --git a/src/operations/tip.ts b/src/operations/tip.ts
index 15d2339b..1ae7700a 100644
--- a/src/operations/tip.ts
+++ b/src/operations/tip.ts
@@ -200,7 +200,10 @@ async function processTipImpl(
     const planchets: TipPlanchet[] = [];
 
     for (const sd of denomsForWithdraw.selectedDenoms) {
-      const denom = await 
ws.db.getIndexed(Stores.denominations.denomPubHashIndex, sd.denomPubHash);
+      const denom = await ws.db.getIndexed(
+        Stores.denominations.denomPubHashIndex,
+        sd.denomPubHash,
+      );
       if (!denom) {
         throw Error("denom does not exist anymore");
       }
diff --git a/src/operations/withdraw.ts b/src/operations/withdraw.ts
index 14071be7..28474341 100644
--- a/src/operations/withdraw.ts
+++ b/src/operations/withdraw.ts
@@ -420,17 +420,19 @@ async function processPlanchet(
   }
 }
 
-export function denomSelectionInfoToState(dsi: DenominationSelectionInfo): 
DenomSelectionState {
+export function denomSelectionInfoToState(
+  dsi: DenominationSelectionInfo,
+): DenomSelectionState {
   return {
     selectedDenoms: dsi.selectedDenoms.map((x) => {
       return {
         count: x.count,
-        denomPubHash: x.denom.denomPubHash
+        denomPubHash: x.denom.denomPubHash,
       };
     }),
     totalCoinValue: dsi.totalCoinValue,
     totalWithdrawCost: dsi.totalWithdrawCost,
-  }
+  };
 }
 
 /**
@@ -617,11 +619,7 @@ export async function getExchangeWithdrawalInfo(
     throw Error(`exchange ${exchangeInfo.baseUrl} wire details not available`);
   }
 
-  const selectedDenoms = await selectWithdrawalDenoms(
-    ws,
-    baseUrl,
-    amount,
-  );
+  const selectedDenoms = await selectWithdrawalDenoms(ws, baseUrl, amount);
   const exchangeWireAccounts: string[] = [];
   for (const account of exchangeWireInfo.accounts) {
     exchangeWireAccounts.push(account.payto_uri);
diff --git a/src/types/talerTypes.ts b/src/types/talerTypes.ts
index eb10d6e1..0221d26b 100644
--- a/src/types/talerTypes.ts
+++ b/src/types/talerTypes.ts
@@ -869,9 +869,8 @@ export const codecForTax = (): Codec<Tax> =>
     .property("tax", codecForString)
     .build("Tax");
 
-
 export const codecForI18n = (): Codec<{ [lang_tag: string]: string }> =>
-  makeCodecForMap(codecForString)
+  makeCodecForMap(codecForString);
 
 export const codecForProduct = (): Codec<Product> =>
   makeCodecForObject<Product>()
@@ -908,7 +907,10 @@ export const codecForContractTerms = (): 
Codec<ContractTerms> =>
     .property("merchant", codecForMerchantInfo())
     .property("merchant_pub", codecForString)
     .property("exchanges", makeCodecForList(codecForExchangeHandle()))
-    .property("products", 
makeCodecOptional(makeCodecForList(codecForProduct())))
+    .property(
+      "products",
+      makeCodecOptional(makeCodecForList(codecForProduct())),
+    )
     .property("extra", codecForAny)
     .build("ContractTerms");
 
diff --git a/src/types/transactions.ts b/src/types/transactions.ts
index b1d033c0..6ed9a52d 100644
--- a/src/types/transactions.ts
+++ b/src/types/transactions.ts
@@ -16,7 +16,7 @@
 
 /**
  * Type and schema definitions for the wallet's transaction list.
- * 
+ *
  * @author Florian Dold
  * @author Torsten Grote
  */
diff --git a/src/types/types-test.ts b/src/types/types-test.ts
index ce309249..ba56582c 100644
--- a/src/types/types-test.ts
+++ b/src/types/types-test.ts
@@ -138,6 +138,7 @@ test("contract terms validation", (t) => {
     fulfillment_url: "foo",
     max_fee: "EUR:1.5",
     merchant_pub: "12345",
+    merchant: { name: "Foo" },
     order_id: "test_order",
     pay_deadline: { t_ms: 42 },
     wire_transfer_deadline: { t_ms: 42 },
diff --git a/src/types/walletTypes.ts b/src/types/walletTypes.ts
index da87b1c1..dbfd12b5 100644
--- a/src/types/walletTypes.ts
+++ b/src/types/walletTypes.ts
@@ -476,7 +476,6 @@ export interface DepositInfo {
   denomSig: string;
 }
 
-
 export interface ExtendedPermissionsResponse {
   newValue: boolean;
-}
\ No newline at end of file
+}
diff --git a/src/util/amounts.ts b/src/util/amounts.ts
index cdb98b0f..c0bb0361 100644
--- a/src/util/amounts.ts
+++ b/src/util/amounts.ts
@@ -342,7 +342,7 @@ function mult(a: AmountJson, n: number): Result {
   if (n == 0) {
     return { amount: getZero(a.currency), saturated: false };
   }
-  let acc = {... a};
+  let acc = { ...a };
   while (n > 1) {
     let r: Result;
     if (n % 2 == 0) {
diff --git a/src/util/time.ts b/src/util/time.ts
index f296aba1..5c2f49d1 100644
--- a/src/util/time.ts
+++ b/src/util/time.ts
@@ -49,7 +49,6 @@ export function getTimestampNow(): Timestamp {
 export function getDurationRemaining(
   deadline: Timestamp,
   now = getTimestampNow(),
-
 ): Duration {
   if (deadline.t_ms === "never") {
     return { d_ms: "forever" };
diff --git a/src/webex/notify.ts b/src/webex/notify.ts
deleted file mode 100644
index 9fb0529d..00000000
--- a/src/webex/notify.ts
+++ /dev/null
@@ -1,218 +0,0 @@
-/*
- This file is part of TALER
- (C) 2015 GNUnet e.V.
-
- TALER is free software; you can redistribute it and/or modify it under the
- terms of the GNU General Public License as published by the Free Software
- Foundation; either version 3, or (at your option) any later version.
-
- TALER is distributed in the hope that it will be useful, but WITHOUT ANY
- WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
- A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License along with
- TALER; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
- */
-
-// tslint:disable:no-unused-expression
-
-/**
- * Module that is injected into (all!) pages to allow them
- * to interact with the GNU Taler wallet via DOM Events.
- */
-
-/**
- * Imports.
- */
-import * as wxApi from "./wxApi";
-
-declare let cloneInto: any;
-
-let logVerbose = false;
-try {
-  logVerbose = !!localStorage.getItem("taler-log-verbose");
-} catch (e) {
-  // can't read from local storage
-}
-
-if (document.documentElement.getAttribute("data-taler-nojs")) {
-  document.dispatchEvent(new Event("taler-probe-result"));
-}
-
-interface Handler {
-  type: string;
-  listener: (e: Event) => void | Promise<void>;
-}
-const handlers: Handler[] = [];
-
-let sheet: CSSStyleSheet | null;
-
-function initStyle(): void {
-  logVerbose && console.log("taking over styles");
-  const name = "taler-presence-stylesheet";
-  const content = "/* Taler stylesheet controlled by JS */";
-  let style = document.getElementById(name) as HTMLStyleElement | null;
-  if (!style) {
-    style = document.createElement("style");
-    // Needed by WebKit
-    style.appendChild(document.createTextNode(content));
-    style.id = name;
-    document.head.appendChild(style);
-    sheet = style.sheet as CSSStyleSheet;
-  } else {
-    // We've taken over the stylesheet now,
-    // make it clear by clearing all the rules in it
-    // and making it obvious in the DOM.
-    if (style.tagName.toLowerCase() === "style") {
-      style.innerText = content;
-    }
-    if (!style.sheet) {
-      throw Error(
-        "taler-presence-stylesheet should be a style sheet (<link> or 
<style>)",
-      );
-    }
-    sheet = style.sheet as CSSStyleSheet;
-    while (sheet.cssRules.length > 0) {
-      sheet.deleteRule(0);
-    }
-  }
-}
-
-function setStyles(installed: boolean): void {
-  if (!sheet || !sheet.cssRules) {
-    return;
-  }
-  while (sheet.cssRules.length > 0) {
-    sheet.deleteRule(0);
-  }
-  if (installed) {
-    sheet.insertRule(".taler-installed-hide { display: none; }", 0);
-    sheet.insertRule(".taler-probed-hide { display: none; }", 0);
-  } else {
-    sheet.insertRule(".taler-installed-show { display: none; }", 0);
-  }
-}
-
-function onceOnComplete(cb: () => void): void {
-  if (document.readyState === "complete") {
-    cb();
-  } else {
-    document.addEventListener("readystatechange", () => {
-      if (document.readyState === "complete") {
-        cb();
-      }
-    });
-  }
-}
-
-function init(): void {
-  onceOnComplete(() => {
-    if (document.documentElement.getAttribute("data-taler-nojs")) {
-      initStyle();
-      setStyles(true);
-    }
-  });
-  registerHandlers();
-  // Hack to know when the extension is unloaded
-  const port = chrome.runtime.connect();
-
-  port.onDisconnect.addListener(() => {
-    logVerbose && console.log("chrome runtime disconnected, removing 
handlers");
-    if (document.documentElement.getAttribute("data-taler-nojs")) {
-      setStyles(false);
-    }
-    for (const handler of handlers) {
-      document.removeEventListener(handler.type, handler.listener);
-    }
-  });
-}
-
-type HandlerFn = (detail: any, sendResponse: (msg: any) => void) => void;
-
-function registerHandlers(): void {
-  /**
-   * Add a handler for a DOM event, which automatically
-   * handles adding sequence numbers to responses.
-   */
-  function addHandler(type: string, handler: HandlerFn): void {
-    const handlerWrap = (e: Event): void => {
-      if (!(e instanceof Event)) {
-        console.log("unexpected event", e);
-        throw Error(`invariant violated`);
-      }
-      if (e.type !== type) {
-        console.log("unexpected event type", e);
-        throw Error(`invariant violated`);
-      }
-      let callId: number | undefined;
-      let detail;
-      if (
-        e instanceof CustomEvent &&
-        e.detail &&
-        e.detail.callId !== undefined
-      ) {
-        callId = e.detail.callId;
-        detail = e.detail;
-      }
-      const responder = (msg?: any): void => {
-        const fullMsg = Object.assign({}, msg, { callId });
-        let opts = { detail: fullMsg };
-        if ("function" === typeof cloneInto) {
-          opts = cloneInto(opts, document.defaultView);
-        }
-        const evt = new CustomEvent(type + "-result", opts);
-        document.dispatchEvent(evt);
-      };
-      handler(detail, responder);
-    };
-    document.addEventListener(type, handlerWrap);
-    handlers.push({ type, listener: handlerWrap });
-  }
-
-  addHandler("taler-query-id", (msg: any, sendResponse: any) => {
-    // FIXME: maybe include this info in taler-probe?
-    sendResponse({ id: chrome.runtime.id });
-  });
-
-  addHandler("taler-probe", (msg: any, sendResponse: any) => {
-    sendResponse();
-  });
-
-  addHandler("taler-create-reserve", (msg: any) => {
-    const uri = new URL(
-      chrome.extension.getURL("/src/webex/pages/confirm-create-reserve.html"),
-    );
-    uri.searchParams.set("amount", JSON.stringify(msg.amount));
-    uri.searchParams.set("bank_url", document.location.href);
-    uri.searchParams.set(
-      "callback_url",
-      new URL(msg.callback_url, document.location.href).href,
-    );
-    uri.searchParams.set("suggested_exchange_url", msg.suggested_exchange_url);
-    uri.searchParams.set("wt_types", JSON.stringify(msg.wt_types));
-    window.location.href = uri.href;
-  });
-
-  addHandler("taler-add-auditor", (msg: any) => {
-    const uri = new URL(
-      chrome.extension.getURL("/src/webex/pages/add-auditor.html"),
-    );
-    uri.searchParams.set("req", JSON.stringify(msg));
-    window.location.href = uri.href;
-  });
-
-  addHandler("taler-confirm-reserve", async (msg: any, sendResponse: any) => {
-    const reservePub = msg.reserve_pub;
-    if (typeof reservePub !== "string") {
-      console.error(
-        "taler-confirm-reserve expects parameter reserve_pub of type 'string'",
-      );
-      return;
-    }
-    await wxApi.confirmReserve(msg.reserve_pub);
-    sendResponse();
-  });
-}
-
-logVerbose && console.log("loading Taler content script");
-init();
diff --git a/src/webex/pages/popup.tsx b/src/webex/pages/popup.tsx
index 4d3c65b2..875bbcb5 100644
--- a/src/webex/pages/popup.tsx
+++ b/src/webex/pages/popup.tsx
@@ -624,10 +624,12 @@ const HistoryComponent = (props: any): JSX.Element => {
 
 class WalletSettings extends React.Component<any, any> {
   render(): JSX.Element {
-    return <div>
-    <h2>Permissions</h2>
-    <PermissionsCheckbox />
-  </div>;
+    return (
+      <div>
+        <h2>Permissions</h2>
+        <PermissionsCheckbox />
+      </div>
+    );
   }
 }
 
diff --git a/src/webex/pages/welcome.tsx b/src/webex/pages/welcome.tsx
index 8d4920ca..a7c24d65 100644
--- a/src/webex/pages/welcome.tsx
+++ b/src/webex/pages/welcome.tsx
@@ -108,19 +108,16 @@ export function PermissionsCheckbox(): JSX.Element {
       const granted = await new Promise<boolean>((resolve, reject) => {
         // We set permissions here, since apparently FF wants this to be done
         // as the result of an input event ...
-        getPermissionsApi().request(
-          extendedPermissions,
-          (granted: boolean) => {
-            if (chrome.runtime.lastError) {
-              console.error("error requesting permissions");
-              console.error(chrome.runtime.lastError);
-              reject(chrome.runtime.lastError);
-              return;
-            }
-            console.log("permissions granted:", granted);
-            resolve(granted);
-          },
-        );
+        getPermissionsApi().request(extendedPermissions, (granted: boolean) => 
{
+          if (chrome.runtime.lastError) {
+            console.error("error requesting permissions");
+            console.error(chrome.runtime.lastError);
+            reject(chrome.runtime.lastError);
+            return;
+          }
+          console.log("permissions granted:", granted);
+          resolve(granted);
+        });
       });
       const res = await wxApi.setExtendedPermissions(granted);
       console.log(res);
diff --git a/src/webex/pages/withdraw.tsx b/src/webex/pages/withdraw.tsx
index 5ef4376f..d8ac3c45 100644
--- a/src/webex/pages/withdraw.tsx
+++ b/src/webex/pages/withdraw.tsx
@@ -28,11 +28,13 @@ import { WithdrawDetails } from "../../types/walletTypes";
 import { WithdrawDetailView, renderAmount } from "../renderHtml";
 
 import React, { useState, useEffect } from "react";
-import { getWithdrawDetails, acceptWithdrawal, onUpdateNotification } from 
"../wxApi";
+import {
+  getWithdrawDetails,
+  acceptWithdrawal,
+  onUpdateNotification,
+} from "../wxApi";
 
-function WithdrawalDialog(props: {
-  talerWithdrawUri: string;
-}): JSX.Element {
+function WithdrawalDialog(props: { talerWithdrawUri: string }): JSX.Element {
   const [details, setDetails] = useState<WithdrawDetails | undefined>();
   const [selectedExchange, setSelectedExchange] = useState<
     string | undefined
@@ -48,8 +50,8 @@ function WithdrawalDialog(props: {
     return onUpdateNotification(() => {
       setUpdateCounter(updateCounter + 1);
     });
-  // eslint-disable-next-line react-hooks/exhaustive-deps
-  }, [])
+    // eslint-disable-next-line react-hooks/exhaustive-deps
+  }, []);
 
   useEffect(() => {
     const fetchData = async (): Promise<void> => {
@@ -174,11 +176,12 @@ function WithdrawalDialog(props: {
         <strong>{renderAmount(details.bankWithdrawDetails.amount)}</strong> 
from
         your bank account into your wallet.
       </i18n.Translate>
-      { selectedExchange ?
+      {selectedExchange ? (
         <p>
-          The exchange <strong>{selectedExchange}</strong> will be used as the 
Taler payment service provider.
-        </p> : null
-      }
+          The exchange <strong>{selectedExchange}</strong> will be used as the
+          Taler payment service provider.
+        </p>
+      ) : null}
 
       <div>
         <button
diff --git a/src/webex/permissions.ts b/src/webex/permissions.ts
index 57ca6dc6..bcd357fd 100644
--- a/src/webex/permissions.ts
+++ b/src/webex/permissions.ts
@@ -17,4 +17,4 @@
 export const extendedPermissions = {
   permissions: ["webRequest", "webRequestBlocking"],
   origins: ["http://*/*";, "https://*/*";],
-};
\ No newline at end of file
+};
diff --git a/webextension/pack.sh b/webextension/pack.sh
index 01abb01b..6e734b08 100755
--- a/webextension/pack.sh
+++ b/webextension/pack.sh
@@ -15,6 +15,6 @@ cp webextension/manifest.json dist/wx/
 cp -r webextension/static/* dist/wx/
 cp -r dist/webextension/* dist/wx/
 
-cd dist
+cd dist/wx
 
-zip -r "taler-wallet-${vers_manifest}.zip" wx
+zip -r "../taler-wallet-${vers_manifest}.zip" ./*
diff --git a/yarn.lock b/yarn.lock
index c6b1061a..f7e1b3ef 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -9,7 +9,7 @@
   dependencies:
     escape-string-regexp "^2.0.0"
 
-"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.5.5":
+"@babel/code-frame@^7.0.0":
   version "7.5.5"
   resolved 
"https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.5.5.tgz#bc0782f6d69f7b7d49531219699b988f669a8f9d";
   integrity 
sha512-27d4lZoomVyo51VegxI20xZPuSHusqbQag/ztrBC7wegWoQ1nLREPVSKSW8byhTlzTKyNE4ifaTA6lCp7JjpFw==
@@ -273,13 +273,22 @@
     "@rollup/pluginutils" "^3.0.4"
     magic-string "^0.25.5"
 
-"@rollup/pluginutils@^3.0.1", "@rollup/pluginutils@^3.0.4":
+"@rollup/pluginutils@^3.0.4":
   version "3.0.8"
   resolved 
"https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-3.0.8.tgz#4e94d128d94b90699e517ef045422960d18c8fde";
   integrity 
sha512-rYGeAc4sxcZ+kPG/Tw4/fwJODC3IXHYDH4qusdN/b6aLw5LPUbzpecYbEJh4sVQGPFJxd2dBU4kc1H3oy9/bnw==
   dependencies:
     estree-walker "^1.0.1"
 
+"@rollup/pluginutils@^3.0.9":
+  version "3.0.10"
+  resolved 
"https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-3.0.10.tgz#a659b9025920378494cd8f8c59fbf9b3a50d5f12";
+  integrity 
sha512-d44M7t+PjmMrASHbhgpSbVgtL6EFyX7J4mYxwQ/c5eoaE6N2VgCgEcWVzNnwycIloti+/MpwFr8qfw+nRw00sw==
+  dependencies:
+    "@types/estree" "0.0.39"
+    estree-walker "^1.0.1"
+    picomatch "^2.2.2"
+
 "@sindresorhus/is@^0.14.0":
   version "0.14.0"
   resolved 
"https://registry.yarnpkg.com/@sindresorhus/is/-/is-0.14.0.tgz#9fb3a3cf3132328151f353de4632e01e52102bea";
@@ -440,7 +449,17 @@
     eslint-scope "^5.0.0"
     eslint-utils "^2.0.0"
 
-"@typescript-eslint/parser@^2.24.0", "@typescript-eslint/parser@^2.27.0":
+"@typescript-eslint/experimental-utils@3.1.0":
+  version "3.1.0"
+  resolved 
"https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-3.1.0.tgz#2d5dba7c2ac2a3da3bfa3f461ff64de38587a872";
+  integrity 
sha512-Zf8JVC2K1svqPIk1CB/ehCiWPaERJBBokbMfNTNRczCbQSlQXaXtO/7OfYz9wZaecNvdSvVADt6/XQuIxhC79w==
+  dependencies:
+    "@types/json-schema" "^7.0.3"
+    "@typescript-eslint/typescript-estree" "3.1.0"
+    eslint-scope "^5.0.0"
+    eslint-utils "^2.0.0"
+
+"@typescript-eslint/parser@^2.27.0":
   version "2.27.0"
   resolved 
"https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-2.27.0.tgz#d91664335b2c46584294e42eb4ff35838c427287";
   integrity 
sha512-HFUXZY+EdwrJXZo31DW4IS1ujQW3krzlRjBrFRrJcMDh0zCu107/nRfhk/uBasO8m0NVDbBF5WZKcIUMRO7vPg==
@@ -450,6 +469,16 @@
     "@typescript-eslint/typescript-estree" "2.27.0"
     eslint-visitor-keys "^1.1.0"
 
+"@typescript-eslint/parser@^3.1.0":
+  version "3.1.0"
+  resolved 
"https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-3.1.0.tgz#9c02ba5d88ad2355672f39e6cd4176f172dd47f8";
+  integrity 
sha512-NcDSJK8qTA2tPfyGiPes9HtVKLbksmuYjlgGAUs7Ld2K0swdWibnCq9IJx9kJN8JJdgUJSorFiGaPHBgH81F/Q==
+  dependencies:
+    "@types/eslint-visitor-keys" "^1.0.0"
+    "@typescript-eslint/experimental-utils" "3.1.0"
+    "@typescript-eslint/typescript-estree" "3.1.0"
+    eslint-visitor-keys "^1.1.0"
+
 "@typescript-eslint/typescript-estree@2.27.0":
   version "2.27.0"
   resolved 
"https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-2.27.0.tgz#a288e54605412da8b81f1660b56c8b2e42966ce8";
@@ -463,11 +492,29 @@
     semver "^6.3.0"
     tsutils "^3.17.1"
 
+"@typescript-eslint/typescript-estree@3.1.0":
+  version "3.1.0"
+  resolved 
"https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-3.1.0.tgz#eaff52d31e615e05b894f8b9d2c3d8af152a5dd2";
+  integrity 
sha512-+4nfYauqeQvK55PgFrmBWFVYb6IskLyOosYEmhH3mSVhfBp9AIJnjExdgDmKWoOBHRcPM8Ihfm2BFpZf0euUZQ==
+  dependencies:
+    debug "^4.1.1"
+    eslint-visitor-keys "^1.1.0"
+    glob "^7.1.6"
+    is-glob "^4.0.1"
+    lodash "^4.17.15"
+    semver "^7.3.2"
+    tsutils "^3.17.1"
+
 acorn-jsx@^5.2.0:
   version "5.2.0"
   resolved 
"https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.2.0.tgz#4c66069173d6fdd68ed85239fc256226182b2ebe";
   integrity 
sha512-HiUX/+K2YpkpJ+SzBffkM/AQ2YE03S0U1kjTLVpoJdhZMOWy8qvXVN9JdLqv2QsaQ6MPYQIuNmwD8zOiYUofLQ==
 
+acorn-walk@^7.1.1:
+  version "7.1.1"
+  resolved 
"https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-7.1.1.tgz#345f0dffad5c735e7373d2fec9a1023e6a44b83e";
+  integrity 
sha512-wdlPY2tm/9XBr7QkKlq0WQVgiuGTX6YWPyRyBviSoScBuLfTVQhvwg6wJ369GJ/1nPfTLMfnrFIfjqVg6d+jQQ==
+
 acorn@^7.1.1:
   version "7.1.1"
   resolved 
"https://registry.yarnpkg.com/acorn/-/acorn-7.1.1.tgz#e35668de0b402f359de515c5482a1ab9f89a69bf";
@@ -674,21 +721,23 @@ atob@^2.1.2:
   resolved 
"https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9";
   integrity 
sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==
 
-ava@^3.6.0:
-  version "3.6.0"
-  resolved 
"https://registry.yarnpkg.com/ava/-/ava-3.6.0.tgz#1fa57f8601a81d11b4771ba701428d9972659dfd";
-  integrity 
sha512-cp+oK06JTFK9m4EhLq0APPSi6aTpwUOK0aKH5pCzIhU8AHFLXis0HNarfIr/EeBe9GzQKouuIsnlVedY7Lg0Cw==
+ava@^3.8.2:
+  version "3.8.2"
+  resolved 
"https://registry.yarnpkg.com/ava/-/ava-3.8.2.tgz#877c9eb861763a185bbabd54f359e1fbe57d1754";
+  integrity 
sha512-sph3oUsVTGsq4qbgeWys03QKCmXjkZUO3oPnFWXEW6g1SReCY9vuONGghMgw1G6VOzkg1k+niqJsOzwfO8h9Ng==
   dependencies:
     "@concordance/react" "^2.0.0"
+    acorn "^7.1.1"
+    acorn-walk "^7.1.1"
     ansi-styles "^4.2.1"
     arrgv "^1.0.2"
     arrify "^2.0.1"
+    callsites "^3.1.0"
     chalk "^4.0.0"
-    chokidar "^3.3.1"
+    chokidar "^3.4.0"
     chunkd "^2.0.1"
     ci-info "^2.0.0"
     ci-parallel-vars "^1.0.0"
-    clean-stack "^2.2.0"
     clean-yaml-object "^0.1.0"
     cli-cursor "^3.1.0"
     cli-truncate "^2.1.0"
@@ -708,22 +757,23 @@ ava@^3.6.0:
     indent-string "^4.0.0"
     is-error "^2.2.2"
     is-plain-object "^3.0.0"
-    is-promise "^2.1.0"
+    is-promise "^4.0.0"
     lodash "^4.17.15"
-    matcher "^2.1.0"
+    matcher "^3.0.0"
     md5-hex "^3.0.1"
+    mem "^6.1.0"
     ms "^2.1.2"
-    ora "^4.0.3"
+    ora "^4.0.4"
     p-map "^4.0.0"
     picomatch "^2.2.2"
     pkg-conf "^3.1.0"
     plur "^4.0.0"
-    pretty-ms "^6.0.1"
+    pretty-ms "^7.0.0"
     read-pkg "^5.2.0"
     resolve-cwd "^3.0.0"
     slash "^3.0.0"
-    source-map-support "^0.5.16"
-    stack-utils "^2.0.1"
+    source-map-support "^0.5.19"
+    stack-utils "^2.0.2"
     strip-ansi "^6.0.0"
     supertap "^1.0.0"
     temp-dir "^2.0.0"
@@ -831,7 +881,7 @@ caching-transform@^4.0.0:
     package-hash "^4.0.0"
     write-file-atomic "^3.0.0"
 
-callsites@^3.0.0:
+callsites@^3.0.0, callsites@^3.1.0:
   version "3.1.0"
   resolved 
"https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73";
   integrity 
sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==
@@ -892,10 +942,10 @@ cheerio@^1.0.0-rc.3:
     lodash "^4.15.0"
     parse5 "^3.0.1"
 
-chokidar@^3.3.1:
-  version "3.3.1"
-  resolved 
"https://registry.yarnpkg.com/chokidar/-/chokidar-3.3.1.tgz#c84e5b3d18d9a4d77558fef466b1bf16bbeb3450";
-  integrity 
sha512-4QYCEWOcK3OJrxwvyyAOxFuhpvOVCYkr33LPfFNBjAD/w3sEzWsp2BUOkI4l9bHvWioAd0rc6NlHUOEaWkTeqg==
+chokidar@^3.4.0:
+  version "3.4.0"
+  resolved 
"https://registry.yarnpkg.com/chokidar/-/chokidar-3.4.0.tgz#b30611423ce376357c765b9b8f904b9fba3c0be8";
+  integrity 
sha512-aXAaho2VJtisB/1fg1+3nlLJqGOuewTzQpd/Tz0yTg2R0e4IGtshYvtjowyEumcBv2z+y4+kc75Mz7j5xJskcQ==
   dependencies:
     anymatch "~3.1.1"
     braces "~3.0.2"
@@ -903,7 +953,7 @@ chokidar@^3.3.1:
     is-binary-path "~2.1.0"
     is-glob "~4.0.1"
     normalize-path "~3.0.0"
-    readdirp "~3.3.0"
+    readdirp "~3.4.0"
   optionalDependencies:
     fsevents "~2.1.2"
 
@@ -922,7 +972,7 @@ ci-parallel-vars@^1.0.0:
   resolved 
"https://registry.yarnpkg.com/ci-parallel-vars/-/ci-parallel-vars-1.0.0.tgz#af97729ed1c7381911ca37bcea263d62638701b3";
   integrity 
sha512-u6dx20FBXm+apMi+5x7UVm6EH7BL1gc4XrcnQewjcB7HWRcor/V5qWc3RG2HwpgDJ26gIi2DSEu3B7sXynAw/g==
 
-clean-stack@^2.0.0, clean-stack@^2.2.0:
+clean-stack@^2.0.0:
   version "2.2.0"
   resolved 
"https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b";
   integrity 
sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==
@@ -1497,6 +1547,11 @@ escape-string-regexp@^2.0.0:
   resolved 
"https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344";
   integrity 
sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==
 
+escape-string-regexp@^4.0.0:
+  version "4.0.0"
+  resolved 
"https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34";
+  integrity 
sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==
+
 eslint-config-airbnb-base@^14.1.0:
   version "14.1.0"
   resolved 
"https://registry.yarnpkg.com/eslint-config-airbnb-base/-/eslint-config-airbnb-base-14.1.0.tgz#2ba4592dd6843258221d9bff2b6831bd77c874e4";
@@ -1506,12 +1561,12 @@ eslint-config-airbnb-base@^14.1.0:
     object.assign "^4.1.0"
     object.entries "^1.1.1"
 
-eslint-config-airbnb-typescript@^7.2.0:
-  version "7.2.0"
-  resolved 
"https://registry.yarnpkg.com/eslint-config-airbnb-typescript/-/eslint-config-airbnb-typescript-7.2.0.tgz#afa7cea5657c9f70c0b96d52bf7d470e9827b66a";
-  integrity 
sha512-W7IZUIJpBZIzU3p65KoyJPl2vGSy6FS3R+K91Cp3NLK/0m1oyvCFeBHI2QlWdqxkJ4FvwnLvsoRTutwpKNIT+A==
+eslint-config-airbnb-typescript@^8.0.0:
+  version "8.0.0"
+  resolved 
"https://registry.yarnpkg.com/eslint-config-airbnb-typescript/-/eslint-config-airbnb-typescript-8.0.0.tgz#7ed3ba7b9bb54fb89db9e50bd8d0d5a548e3da4a";
+  integrity 
sha512-usgAFLk9PeJ41RTww57C7OPN1gDVkQ8JLIKEcL7VtrrsznoRGY0faGYElbgPFDrx/V7f2KFNxNU7RH/mAm3fcg==
   dependencies:
-    "@typescript-eslint/parser" "^2.24.0"
+    "@typescript-eslint/parser" "^3.1.0"
     eslint-config-airbnb "^18.1.0"
     eslint-config-airbnb-base "^14.1.0"
 
@@ -1573,15 +1628,15 @@ eslint-plugin-jsx-a11y@^6.2.3:
     has "^1.0.3"
     jsx-ast-utils "^2.2.1"
 
-eslint-plugin-react-hooks@^3.0.0:
-  version "3.0.0"
-  resolved 
"https://registry.yarnpkg.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-3.0.0.tgz#9e80c71846eb68dd29c3b21d832728aa66e5bd35";
-  integrity 
sha512-EjxTHxjLKIBWFgDJdhKKzLh5q+vjTFrqNZX36uIxWS4OfyXe5DawqPj3U5qeJ1ngLwatjzQnmR0Lz0J0YH3kxw==
+eslint-plugin-react-hooks@^4.0.4:
+  version "4.0.4"
+  resolved 
"https://registry.yarnpkg.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.0.4.tgz#aed33b4254a41b045818cacb047b81e6df27fa58";
+  integrity 
sha512-equAdEIsUETLFNCmmCkiCGq6rkSK5MoJhXFPFYeUebcjKgBmWWcgVOqZyQC8Bv1BwVCnTq9tBxgJFgAJTWoJtA==
 
-eslint-plugin-react@^7.19.0:
-  version "7.19.0"
-  resolved 
"https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.19.0.tgz#6d08f9673628aa69c5559d33489e855d83551666";
-  integrity 
sha512-SPT8j72CGuAP+JFbT0sJHOB80TX/pu44gQ4vXH/cq+hQTiY2PuZ6IHkqXJV6x1b28GDdo1lbInjKUrrdUf0LOQ==
+eslint-plugin-react@^7.20.0:
+  version "7.20.0"
+  resolved 
"https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.20.0.tgz#f98712f0a5e57dfd3e5542ef0604b8739cd47be3";
+  integrity 
sha512-rqe1abd0vxMjmbPngo4NaYxTcR3Y4Hrmc/jg4T+sYz63yqlmJRknpEQfmWY+eDWPuMmix6iUIK+mv0zExjeLgA==
   dependencies:
     array-includes "^3.1.1"
     doctrine "^2.1.0"
@@ -1592,7 +1647,6 @@ eslint-plugin-react@^7.19.0:
     object.values "^1.1.1"
     prop-types "^15.7.2"
     resolve "^1.15.1"
-    semver "^6.3.0"
     string.prototype.matchall "^4.0.2"
     xregexp "^4.3.0"
 
@@ -1917,6 +1971,11 @@ get-caller-file@^2.0.1:
   resolved 
"https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e";
   integrity 
sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==
 
+get-package-type@^0.1.0:
+  version "0.1.0"
+  resolved 
"https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a";
+  integrity 
sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==
+
 get-stream@^4.1.0:
   version "4.1.0"
   resolved 
"https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5";
@@ -2083,10 +2142,10 @@ hasha@^5.0.0:
     is-stream "^2.0.0"
     type-fest "^0.8.0"
 
-highlight.js@^9.18.1:
-  version "9.18.1"
-  resolved 
"https://registry.yarnpkg.com/highlight.js/-/highlight.js-9.18.1.tgz#ed21aa001fe6252bb10a3d76d47573c6539fe13c";
-  integrity 
sha512-OrVKYz70LHsnCgmbXctv/bfuvntIKDz177h0Co37DQ5jamGZLVmoCVMtjMtNZY3X9DrCcKfklHPNeA0uPZhSJg==
+highlight.js@^10.0.0:
+  version "10.0.3"
+  resolved 
"https://registry.yarnpkg.com/highlight.js/-/highlight.js-10.0.3.tgz#5effcc58420f113f279a0badb8ac50c4be06e63b";
+  integrity 
sha512-9FG7SSzv9yOY5CGGxfI6NDm7xLYtMOjKtPBxw7Zff3t5UcRcUNTGEeS8lNjhceL34KeetLMoGMFTGoaa83HwyQ==
 
 hosted-git-info@^2.1.4:
   version "2.8.5"
@@ -2362,6 +2421,11 @@ is-promise@^2.1.0:
   resolved 
"https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa";
   integrity sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=
 
+is-promise@^4.0.0:
+  version "4.0.0"
+  resolved 
"https://registry.yarnpkg.com/is-promise/-/is-promise-4.0.0.tgz#42ff9f84206c1991d26debf520dd5c01042dd2f3";
+  integrity 
sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==
+
 is-reference@^1.1.2:
   version "1.1.4"
   resolved 
"https://registry.yarnpkg.com/is-reference/-/is-reference-1.1.4.tgz#3f95849886ddb70256a3e6d062b1a68c13c51427";
@@ -2497,13 +2561,13 @@ jed@^1.1.1:
   resolved 
"https://registry.yarnpkg.com/jed/-/jed-1.1.1.tgz#7a549bbd9ffe1585b0cd0a191e203055bee574b4";
   integrity sha1-elSbvZ/+FYWwzQoZHiAwVb7ldLQ=
 
-jest-worker@^24.9.0:
-  version "24.9.0"
-  resolved 
"https://registry.yarnpkg.com/jest-worker/-/jest-worker-24.9.0.tgz#5dbfdb5b2d322e98567898238a9697bcce67b3e5";
-  integrity 
sha512-51PE4haMSXcHohnSMdM42anbvZANYTqMrr52tVKPqqsPJMzoP6FYYDVqahX/HrAoKEKz3uUPzSvKs9A3qR4iVw==
+jest-worker@^26.0.0:
+  version "26.0.0"
+  resolved 
"https://registry.yarnpkg.com/jest-worker/-/jest-worker-26.0.0.tgz#4920c7714f0a96c6412464718d0c58a3df3fb066";
+  integrity 
sha512-pPaYa2+JnwmiZjK9x7p9BoZht+47ecFCDFA/CJxspHzeDvQcfVBLWzCiWyo+EGrSiQMWZtCFo9iSvMZnAAo8vw==
   dependencies:
     merge-stream "^2.0.0"
-    supports-color "^6.1.0"
+    supports-color "^7.0.0"
 
 js-string-escape@^1.0.1:
   version "1.0.1"
@@ -2733,17 +2797,24 @@ make-dir@^3.0.2:
   dependencies:
     semver "^6.0.0"
 
-marked@0.8.2:
-  version "0.8.2"
-  resolved 
"https://registry.yarnpkg.com/marked/-/marked-0.8.2.tgz#4faad28d26ede351a7a1aaa5fec67915c869e355";
-  integrity 
sha512-EGwzEeCcLniFX51DhTpmTom+dSA/MG/OBUDjnWtHbEnjAH180VzUeAw+oE4+Zv+CoYBWyRlYOTR0N8SO9R1PVw==
+map-age-cleaner@^0.1.3:
+  version "0.1.3"
+  resolved 
"https://registry.yarnpkg.com/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz#7d583a7306434c055fe474b0f45078e6e1b4b92a";
+  integrity 
sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==
+  dependencies:
+    p-defer "^1.0.0"
+
+marked@1.0.0:
+  version "1.0.0"
+  resolved 
"https://registry.yarnpkg.com/marked/-/marked-1.0.0.tgz#d35784245a04871e5988a491e28867362e941693";
+  integrity 
sha512-Wo+L1pWTVibfrSr+TTtMuiMfNzmZWiOPeO7rZsQUY5bgsxpHesBEcIWJloWVTFnrMXnf/TL30eTFSGJddmQAng==
 
-matcher@^2.1.0:
-  version "2.1.0"
-  resolved 
"https://registry.yarnpkg.com/matcher/-/matcher-2.1.0.tgz#64e1041c15b993e23b786f93320a7474bf833c28";
-  integrity 
sha512-o+nZr+vtJtgPNklyeUKkkH42OsK8WAfdgaJE2FNxcjLPg+5QbeEoT6vRj8Xq/iv18JlQ9cmKsEu0b94ixWf1YQ==
+matcher@^3.0.0:
+  version "3.0.0"
+  resolved 
"https://registry.yarnpkg.com/matcher/-/matcher-3.0.0.tgz#bd9060f4c5b70aa8041ccc6f80368760994f30ca";
+  integrity 
sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng==
   dependencies:
-    escape-string-regexp "^2.0.0"
+    escape-string-regexp "^4.0.0"
 
 md5-hex@^2.0.0:
   version "2.0.0"
@@ -2764,6 +2835,14 @@ md5-o-matic@^0.1.1:
   resolved 
"https://registry.yarnpkg.com/md5-o-matic/-/md5-o-matic-0.1.1.tgz#822bccd65e117c514fab176b25945d54100a03c3";
   integrity sha1-givM1l4RfFFPqxdrJZRdVBAKA8M=
 
+mem@^6.1.0:
+  version "6.1.0"
+  resolved 
"https://registry.yarnpkg.com/mem/-/mem-6.1.0.tgz#846eca0bd4708a8f04b9c3f3cd769e194ae63c5c";
+  integrity 
sha512-RlbnLQgRHk5lwqTtpEkBTQ2ll/CG/iB+J4Hy2Wh97PjgZgXgWJWrFF+XXujh3UUVLvR4OOTgZzcWMMwnehlEUg==
+  dependencies:
+    map-age-cleaner "^0.1.3"
+    mimic-fn "^3.0.0"
+
 merge-stream@^2.0.0:
   version "2.0.0"
   resolved 
"https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60";
@@ -2787,6 +2866,11 @@ mimic-fn@^2.1.0:
   resolved 
"https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b";
   integrity 
sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==
 
+mimic-fn@^3.0.0:
+  version "3.0.0"
+  resolved 
"https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-3.0.0.tgz#76044cfa8818bbf6999c5c9acadf2d3649b14b4b";
+  integrity 
sha512-PiVO95TKvhiwgSwg1IdLYlCTdul38yZxZMIcnDSFIBUm4BNZha2qpQ4GpJ++15bHoKDtrW2D69lMfFwdFYtNZQ==
+
 mimic-response@^1.0.0, mimic-response@^1.0.1:
   version "1.0.1"
   resolved 
"https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b";
@@ -2816,10 +2900,10 @@ mkdirp@^0.5.1:
   dependencies:
     minimist "^1.2.5"
 
-moment@^2.18.1:
-  version "2.24.0"
-  resolved 
"https://registry.yarnpkg.com/moment/-/moment-2.24.0.tgz#0d055d53f5052aa653c9f6eb68bb5d12bf5c2b5b";
-  integrity 
sha512-bV7f+6l2QigeBBZSM/6yTNq4P2fNpSWj/0e7jQcy87A8e7o2nAfP/34/2ky5Vw4B9S446EtIhodAzkFCcR4dQg==
+moment@^2.26.0:
+  version "2.26.0"
+  resolved 
"https://registry.yarnpkg.com/moment/-/moment-2.26.0.tgz#5e1f82c6bafca6e83e808b30c8705eed0dcbd39a";
+  integrity 
sha512-oIixUO+OamkUkwjhAVE18rAMfRJNsNe/Stid/gwHSOfHrOtw9EhAY2AHvdKZ/k/MggcYELFCJz/Sn2pL8b8JMw==
 
 moo@^0.5.0:
   version "0.5.1"
@@ -2909,10 +2993,10 @@ nth-check@~1.0.1:
   dependencies:
     boolbase "~1.0.0"
 
-nyc@^15.0.1:
-  version "15.0.1"
-  resolved 
"https://registry.yarnpkg.com/nyc/-/nyc-15.0.1.tgz#bd4d5c2b17f2ec04370365a5ca1fc0ed26f9f93d";
-  integrity 
sha512-n0MBXYBYRqa67IVt62qW1r/d9UH/Qtr7SF1w/nQLJ9KxvWF6b2xCHImRAixHN9tnMMYHC2P14uo6KddNGwMgGg==
+nyc@^15.1.0:
+  version "15.1.0"
+  resolved 
"https://registry.yarnpkg.com/nyc/-/nyc-15.1.0.tgz#1335dae12ddc87b6e249d5a1994ca4bdaea75f02";
+  integrity 
sha512-jMW04n9SxKdKi1ZMGhvUTHBN0EICCRkHemEoE5jm6mTYcqcdas0ATzgUgejlQUHMvpnOZqGB5Xxsv9KxJW1j8A==
   dependencies:
     "@istanbuljs/load-nyc-config" "^1.0.0"
     "@istanbuljs/schema" "^0.1.2"
@@ -2922,6 +3006,7 @@ nyc@^15.0.1:
     find-cache-dir "^3.2.0"
     find-up "^4.1.0"
     foreground-child "^2.0.0"
+    get-package-type "^0.1.0"
     glob "^7.1.6"
     istanbul-lib-coverage "^3.0.0"
     istanbul-lib-hook "^3.0.0"
@@ -3027,10 +3112,10 @@ optionator@^0.8.3:
     type-check "~0.3.2"
     word-wrap "~1.2.3"
 
-ora@^4.0.3:
-  version "4.0.3"
-  resolved 
"https://registry.yarnpkg.com/ora/-/ora-4.0.3.tgz#752a1b7b4be4825546a7a3d59256fa523b6b6d05";
-  integrity 
sha512-fnDebVFyz309A73cqCipVL1fBZewq4vwgSHfxh43vVy31mbyoQ8sCH3Oeaog/owYOs/lLlGVPCISQonTneg6Pg==
+ora@^4.0.4:
+  version "4.0.4"
+  resolved 
"https://registry.yarnpkg.com/ora/-/ora-4.0.4.tgz#e8da697cc5b6a47266655bf68e0fb588d29a545d";
+  integrity 
sha512-77iGeVU1cIdRhgFzCK8aw1fbtT1B/iZAvWjS+l/o1x0RShMgxHUZaD2yDpWsNCPwXg9z1ZA78Kbdvr8kBmG/Ww==
   dependencies:
     chalk "^3.0.0"
     cli-cursor "^3.1.0"
@@ -3051,6 +3136,11 @@ p-cancelable@^1.0.0:
   resolved 
"https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-1.1.0.tgz#d078d15a3af409220c886f1d9a0ca2e441ab26cc";
   integrity 
sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==
 
+p-defer@^1.0.0:
+  version "1.0.0"
+  resolved 
"https://registry.yarnpkg.com/p-defer/-/p-defer-1.0.0.tgz#9f6eb182f6c9aa8cd743004a7d4f96b196b0fb0c";
+  integrity sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=
+
 p-limit@^1.1.0:
   version "1.3.0"
   resolved 
"https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8";
@@ -3226,7 +3316,7 @@ picomatch@^2.0.4, picomatch@^2.0.5:
   resolved 
"https://registry.yarnpkg.com/picomatch/-/picomatch-2.1.1.tgz#ecdfbea7704adb5fe6fb47f9866c4c0e15e905c5";
   integrity 
sha512-OYMyqkKzK7blWO/+XZYP6w8hH0LDvkBvdvKukti+7kqYFCiEAk+gI3DWnryapc0Dau05ugGTy0foQ6mqn4AHYA==
 
-picomatch@^2.0.7, picomatch@^2.2.1, picomatch@^2.2.2:
+picomatch@^2.2.1, picomatch@^2.2.2:
   version "2.2.2"
   resolved 
"https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.2.tgz#21f333e9b6b8eaff02468f5146ea406d345f4dad";
   integrity 
sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==
@@ -3295,15 +3385,15 @@ prepend-http@^2.0.0:
   resolved 
"https://registry.yarnpkg.com/prepend-http/-/prepend-http-2.0.0.tgz#e92434bfa5ea8c19f41cdfd401d741a3c819d897";
   integrity sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=
 
-prettier@^2.0.4:
-  version "2.0.4"
-  resolved 
"https://registry.yarnpkg.com/prettier/-/prettier-2.0.4.tgz#2d1bae173e355996ee355ec9830a7a1ee05457ef";
-  integrity 
sha512-SVJIQ51spzFDvh4fIbCLvciiDMCrRhlN3mbZvv/+ycjvmF5E73bKdGfU8QDLNmjYJf+lsGnDBC4UUnvTe5OO0w==
+prettier@^2.0.5:
+  version "2.0.5"
+  resolved 
"https://registry.yarnpkg.com/prettier/-/prettier-2.0.5.tgz#d6d56282455243f2f92cc1716692c08aa31522d4";
+  integrity 
sha512-7PtVymN48hGcO4fGjybyBSIWDsLU4H4XlvOHfq91pz9kkGlonzwTfYkaIEwiRg/dAJF9YlbsduBAgtYLi+8cFg==
 
-pretty-ms@^6.0.1:
-  version "6.0.1"
-  resolved 
"https://registry.yarnpkg.com/pretty-ms/-/pretty-ms-6.0.1.tgz#03ec6cfee20329f142645e63efad96bb775d3da4";
-  integrity 
sha512-ke4njoVmlotekHlHyCZ3wI/c5AMT8peuHs8rKJqekj/oR5G8lND2dVpicFlUz5cbZgE290vvkMuDwfj/OcW1kw==
+pretty-ms@^7.0.0:
+  version "7.0.0"
+  resolved 
"https://registry.yarnpkg.com/pretty-ms/-/pretty-ms-7.0.0.tgz#45781273110caf35f55cab21a8a9bd403a233dc0";
+  integrity 
sha512-J3aPWiC5e9ZeZFuSeBraGxSkGMOvulSWsxDByOcbD1Pr75YL3LSNIKIb52WXbCLE1sS5s4inBBbryjF4Y05Ceg==
   dependencies:
     parse-ms "^2.1.0"
 
@@ -3382,6 +3472,13 @@ randexp@0.4.6:
     discontinuous-range "1.0.0"
     ret "~0.1.10"
 
+randombytes@^2.1.0:
+  version "2.1.0"
+  resolved 
"https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a";
+  integrity 
sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==
+  dependencies:
+    safe-buffer "^5.1.0"
+
 rc@^1.2.8:
   version "1.2.8"
   resolved 
"https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed";
@@ -3467,12 +3564,12 @@ readable-stream@^3.1.1:
     string_decoder "^1.1.1"
     util-deprecate "^1.0.1"
 
-readdirp@~3.3.0:
-  version "3.3.0"
-  resolved 
"https://registry.yarnpkg.com/readdirp/-/readdirp-3.3.0.tgz#984458d13a1e42e2e9f5841b129e162f369aff17";
-  integrity 
sha512-zz0pAkSPOXXm1viEwygWIPSPkcBYjW1xU5j/JBh5t9bGCJwa6f9+BJa6VaB2g+b55yVrmXzqkyLf4xaWYM0IkQ==
+readdirp@~3.4.0:
+  version "3.4.0"
+  resolved 
"https://registry.yarnpkg.com/readdirp/-/readdirp-3.4.0.tgz#9fdccdf9e9155805449221ac645e8303ab5b9ada";
+  integrity 
sha512-0xe001vZBnJEK+uKcj8qOhyAKPzIT+gStxWr3LCB0DwcXR5NZJ3IaC+yGnHCYzB/S7ov3m3EEbZI2zeNvX+hGQ==
   dependencies:
-    picomatch "^2.0.7"
+    picomatch "^2.2.1"
 
 rechoir@^0.6.2:
   version "0.6.2"
@@ -3558,11 +3655,6 @@ resolve-from@^5.0.0:
   resolved 
"https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69";
   integrity 
sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==
 
-resolve-url@^0.2.1:
-  version "0.2.1"
-  resolved 
"https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a";
-  integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=
-
 resolve@^1.1.6, resolve@^1.10.0:
   version "1.12.0"
   resolved 
"https://registry.yarnpkg.com/resolve/-/resolve-1.12.0.tgz#3fc644a35c84a48554609ff26ec52b66fa577df6";
@@ -3645,36 +3737,35 @@ rollup-plugin-node-resolve@^5.2.0:
     resolve "^1.11.1"
     rollup-pluginutils "^2.8.1"
 
-rollup-plugin-sourcemaps@^0.5.0:
-  version "0.5.0"
-  resolved 
"https://registry.yarnpkg.com/rollup-plugin-sourcemaps/-/rollup-plugin-sourcemaps-0.5.0.tgz#898e8411c9b5b7b524b4d96c3b41d5c43f9da77e";
-  integrity 
sha512-xp2vvRvgnYiXydgf/JFFFgYxrqMaQaOrK/g6yZvgwT9R1TSYjD3HKku1pD7iQNjQHkl5yGpokvJLp7cP/lR+aQ==
+rollup-plugin-sourcemaps@^0.6.2:
+  version "0.6.2"
+  resolved 
"https://registry.yarnpkg.com/rollup-plugin-sourcemaps/-/rollup-plugin-sourcemaps-0.6.2.tgz#1eed5a3e07b833dc14c4cdb1e63b300d340f4a74";
+  integrity 
sha512-9AwTKg3yRykwzemfLt71ySe0LvrAci+bpsOL1LaTYFk5BX4HF6X7DQfpHa74ANfSja3hyjiQkXCR8goSOnW//Q==
   dependencies:
-    "@rollup/pluginutils" "^3.0.1"
-    source-map-resolve "^0.5.3"
+    "@rollup/pluginutils" "^3.0.9"
+    source-map-resolve "^0.6.0"
 
-rollup-plugin-terser@^5.3.0:
-  version "5.3.0"
-  resolved 
"https://registry.yarnpkg.com/rollup-plugin-terser/-/rollup-plugin-terser-5.3.0.tgz#9c0dd33d5771df9630cd027d6a2559187f65885e";
-  integrity 
sha512-XGMJihTIO3eIBsVGq7jiNYOdDMb3pVxuzY0uhOE/FM4x/u9nQgr3+McsjzqBn3QfHIpNSZmFnpoKAwHBEcsT7g==
+rollup-plugin-terser@^6.1.0:
+  version "6.1.0"
+  resolved 
"https://registry.yarnpkg.com/rollup-plugin-terser/-/rollup-plugin-terser-6.1.0.tgz#071866585aea104bfbb9dd1019ac523e63c81e45";
+  integrity 
sha512-4fB3M9nuoWxrwm39habpd4hvrbrde2W2GG4zEGPQg1YITNkM3Tqur5jSuXlWNzbv/2aMLJ+dZJaySc3GCD8oDw==
   dependencies:
-    "@babel/code-frame" "^7.5.5"
-    jest-worker "^24.9.0"
-    rollup-pluginutils "^2.8.2"
-    serialize-javascript "^2.1.2"
-    terser "^4.6.2"
+    "@babel/code-frame" "^7.8.3"
+    jest-worker "^26.0.0"
+    serialize-javascript "^3.0.0"
+    terser "^4.7.0"
 
-rollup-pluginutils@^2.8.1, rollup-pluginutils@^2.8.2:
+rollup-pluginutils@^2.8.1:
   version "2.8.2"
   resolved 
"https://registry.yarnpkg.com/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz#72f2af0748b592364dbd3389e600e5a9444a351e";
   integrity 
sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==
   dependencies:
     estree-walker "^0.6.1"
 
-rollup@^2.3.3:
-  version "2.3.3"
-  resolved 
"https://registry.yarnpkg.com/rollup/-/rollup-2.3.3.tgz#5982df700d7aae8907075ba68122bb57d98e9cd0";
-  integrity 
sha512-uJ9VNWk80mb4wDCSfd1AyHoSc9TrWbkZtnO6wbsMTp9muSWkT26Dvc99MX1yGCOTvUN1Skw/KpFzKdUDuZKTXA==
+rollup@^2.12.1:
+  version "2.12.1"
+  resolved 
"https://registry.yarnpkg.com/rollup/-/rollup-2.12.1.tgz#f4e248552d0055ecbd6d0e888b7e316e172d5f96";
+  integrity 
sha512-qNl9jiVC4/jqTaGUTP0sUnKKCdnebAKYY/8hTy/NnNaeVfjHOW9aIwRT8XHV/zrcpRgJn1g/mjAorMcD38Dlhg==
   optionalDependencies:
     fsevents "~2.1.2"
 
@@ -3710,6 +3801,11 @@ safe-buffer@^5.0.1, safe-buffer@~5.2.0:
   resolved 
"https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.0.tgz#b74daec49b1148f88c64b68d49b1e815c1f2f519";
   integrity 
sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==
 
+safe-buffer@^5.1.0:
+  version "5.2.1"
+  resolved 
"https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6";
+  integrity 
sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==
+
 safe-buffer@~5.1.1:
   version "5.1.2"
   resolved 
"https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d";
@@ -3745,15 +3841,22 @@ semver@^6.0.0, semver@^6.1.2, semver@^6.2.0, 
semver@^6.3.0:
   resolved 
"https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d";
   integrity 
sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==
 
+semver@^7.3.2:
+  version "7.3.2"
+  resolved 
"https://registry.yarnpkg.com/semver/-/semver-7.3.2.tgz#604962b052b81ed0786aae84389ffba70ffd3938";
+  integrity 
sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==
+
 serialize-error@^2.1.0:
   version "2.1.0"
   resolved 
"https://registry.yarnpkg.com/serialize-error/-/serialize-error-2.1.0.tgz#50b679d5635cdf84667bdc8e59af4e5b81d5f60a";
   integrity sha1-ULZ51WNc34Rme9yOWa9OW4HV9go=
 
-serialize-javascript@^2.1.2:
-  version "2.1.2"
-  resolved 
"https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-2.1.2.tgz#ecec53b0e0317bdc95ef76ab7074b7384785fa61";
-  integrity 
sha512-rs9OggEUF0V4jUSecXazOYsLfu7OGK2qIn3c7IPBiffz32XniEp/TX9Xmc9LQfK2nQ2QKHvZ2oygKUGU0lG4jQ==
+serialize-javascript@^3.0.0:
+  version "3.1.0"
+  resolved 
"https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-3.1.0.tgz#8bf3a9170712664ef2561b44b691eafe399214ea";
+  integrity 
sha512-JIJT1DGiWmIKhzRsG91aS6Ze4sFUrYbltlkg2onR5OrnNM02Kl/hnY/T4FN2omvyeBbQmMJv+K4cPOpGzOTFBg==
+  dependencies:
+    randombytes "^2.1.0"
 
 set-blocking@^2.0.0:
   version "2.0.0"
@@ -3784,10 +3887,10 @@ shebang-regex@^3.0.0:
   resolved 
"https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172";
   integrity 
sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==
 
-shelljs@^0.8.3:
-  version "0.8.3"
-  resolved 
"https://registry.yarnpkg.com/shelljs/-/shelljs-0.8.3.tgz#a7f3319520ebf09ee81275b2368adb286659b097";
-  integrity 
sha512-fc0BKlAWiLpwZljmOvAOTE/gXawtCoNrP5oaY7KIaQbbyHeQVg01pSEuEGvGh3HEdBU4baCD7wQBwADmM/7f7A==
+shelljs@^0.8.4:
+  version "0.8.4"
+  resolved 
"https://registry.yarnpkg.com/shelljs/-/shelljs-0.8.4.tgz#de7684feeb767f8716b326078a8a00875890e3c2";
+  integrity 
sha512-7gk3UZ9kOfPLIAbslLzyWeGiEqx9e3rxwZM0KE6EL8GlGwjym9Mrlx5/p33bWTu9YG6vcS4MBxYZDHYr5lr8BQ==
   dependencies:
     glob "^7.0.0"
     interpret "^1.0.0"
@@ -3829,17 +3932,6 @@ slice-ansi@^3.0.0:
     astral-regex "^2.0.0"
     is-fullwidth-code-point "^3.0.0"
 
-source-map-resolve@^0.5.3:
-  version "0.5.3"
-  resolved 
"https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz#190866bece7553e1f8f267a2ee82c606b5509a1a";
-  integrity 
sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==
-  dependencies:
-    atob "^2.1.2"
-    decode-uri-component "^0.2.0"
-    resolve-url "^0.2.1"
-    source-map-url "^0.4.0"
-    urix "^0.1.0"
-
 source-map-resolve@^0.6.0:
   version "0.6.0"
   resolved 
"https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.6.0.tgz#3d9df87e236b53f16d01e58150fc7711138e5ed2";
@@ -3848,7 +3940,15 @@ source-map-resolve@^0.6.0:
     atob "^2.1.2"
     decode-uri-component "^0.2.0"
 
-source-map-support@^0.5.12, source-map-support@^0.5.16, 
source-map-support@~0.5.12:
+source-map-support@^0.5.19:
+  version "0.5.19"
+  resolved 
"https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.19.tgz#a98b62f86dcaf4f67399648c085291ab9e8fed61";
+  integrity 
sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==
+  dependencies:
+    buffer-from "^1.0.0"
+    source-map "^0.6.0"
+
+source-map-support@~0.5.12:
   version "0.5.16"
   resolved 
"https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.16.tgz#0ae069e7fe3ba7538c64c98515e35339eac5a042";
   integrity 
sha512-efyLRJDr68D9hBBNIPWFjhpFzURh+KJykQwvMyW5UiZzYwoF6l4YMMDIJJEyFWxWCqfyxLzz6tSfUFR+kXXsVQ==
@@ -3856,11 +3956,6 @@ source-map-support@^0.5.12, source-map-support@^0.5.16, 
source-map-support@~0.5.
     buffer-from "^1.0.0"
     source-map "^0.6.0"
 
-source-map-url@^0.4.0:
-  version "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.0:
   version "0.5.7"
   resolved 
"https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc";
@@ -3919,10 +4014,10 @@ sprintf-js@~1.0.2:
   resolved 
"https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c";
   integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=
 
-stack-utils@^2.0.1:
-  version "2.0.1"
-  resolved 
"https://registry.yarnpkg.com/stack-utils/-/stack-utils-2.0.1.tgz#3df48345a3b92adc06038f0e95782df61beff742";
-  integrity 
sha512-BvBTnHGm8boe+HiJFqP19ywEsGlfQAKqW78pbfvUuzCbUuxPPUyLrH5dYFY+Xn9IpLY3b5ZmMcl8jAqXB4wddg==
+stack-utils@^2.0.2:
+  version "2.0.2"
+  resolved 
"https://registry.yarnpkg.com/stack-utils/-/stack-utils-2.0.2.tgz#5cf48b4557becb4638d0bc4f21d23f5d19586593";
+  integrity 
sha512-0H7QK2ECz3fyZMzQ8rH0j2ykpfbnd20BFtfg/SqVC2+sCTtcw0aDTGB7dk+de4U4uUeuz6nOtJcrkFFLG1B0Rg==
   dependencies:
     escape-string-regexp "^2.0.0"
 
@@ -4075,14 +4170,7 @@ supports-color@^5.3.0:
   dependencies:
     has-flag "^3.0.0"
 
-supports-color@^6.1.0:
-  version "6.1.0"
-  resolved 
"https://registry.yarnpkg.com/supports-color/-/supports-color-6.1.0.tgz#0764abc69c63d5ac842dd4867e8d025e880df8f3";
-  integrity 
sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==
-  dependencies:
-    has-flag "^3.0.0"
-
-supports-color@^7.1.0:
+supports-color@^7.0.0, supports-color@^7.1.0:
   version "7.1.0"
   resolved 
"https://registry.yarnpkg.com/supports-color/-/supports-color-7.1.0.tgz#68e32591df73e25ad1c4b49108a2ec507962bfd1";
   integrity 
sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==
@@ -4109,10 +4197,10 @@ term-size@^2.1.0:
   resolved 
"https://registry.yarnpkg.com/term-size/-/term-size-2.2.0.tgz#1f16adedfe9bdc18800e1776821734086fcc6753";
   integrity 
sha512-a6sumDlzyHVJWb8+YofY4TW112G6p2FCPEAFk+59gIYHv3XHRhm9ltVQ9kli4hNWeQBwSpe8cRN25x0ROunMOw==
 
-terser@^4.6.2:
-  version "4.6.10"
-  resolved 
"https://registry.yarnpkg.com/terser/-/terser-4.6.10.tgz#90f5bd069ff456ddbc9503b18e52f9c493d3b7c2";
-  integrity 
sha512-qbF/3UOo11Hggsbsqm2hPa6+L4w7bkr+09FNseEe8xrcVD3APGLFqE+Oz1ZKAxjYnFsj80rLOfgAtJ0LNJjtTA==
+terser@^4.7.0:
+  version "4.7.0"
+  resolved 
"https://registry.yarnpkg.com/terser/-/terser-4.7.0.tgz#15852cf1a08e3256a80428e865a2fa893ffba006";
+  integrity 
sha512-Lfb0RiZcjRDXCC3OSHJpEkxJ9Qeqs6mp2v4jf2MHfy8vGERmVDuvjXdd/EnP5Deme5F2yBRBymKmKHCBg2echw==
   dependencies:
     commander "^2.20.0"
     source-map "~0.6.1"
@@ -4171,11 +4259,16 @@ trim-off-newlines@^1.0.1:
   resolved 
"https://registry.yarnpkg.com/trim-off-newlines/-/trim-off-newlines-1.0.1.tgz#9f9ba9d9efa8764c387698bcbfeb2c848f11adb3";
   integrity sha1-n5up2e+odkw4dpi8v+sshI8RrbM=
 
-tslib@^1.11.1, tslib@^1.8.1, tslib@^1.9.0:
+tslib@^1.8.1, tslib@^1.9.0:
   version "1.11.1"
   resolved 
"https://registry.yarnpkg.com/tslib/-/tslib-1.11.1.tgz#eb15d128827fbee2841549e171f45ed338ac7e35";
   integrity 
sha512-aZW88SY8kQbU7gpV19lN24LtXh/yD4ZZg6qieAJDDg+YBsJcSmLGK9QpnUjAKVG/xefmvJGd1WUmfpT/g6AJGA==
 
+tslib@^2.0.0:
+  version "2.0.0"
+  resolved 
"https://registry.yarnpkg.com/tslib/-/tslib-2.0.0.tgz#18d13fc2dce04051e20f074cc8387fd8089ce4f3";
+  integrity 
sha512-lTqkx847PI7xEDYJntxZH89L2/aXInsyF2luSafe/+0fHOMjlBNXdH6th7f70qxLDhul7KZK0zC8V5ZIyHl0/g==
+
 tsutils@^3.17.1:
   version "3.17.1"
   resolved 
"https://registry.yarnpkg.com/tsutils/-/tsutils-3.17.1.tgz#ed719917f11ca0dee586272b2ac49e015a2dd759";
@@ -4217,33 +4310,33 @@ typedarray-to-buffer@^3.1.5:
   dependencies:
     is-typedarray "^1.0.0"
 
-typedoc-default-themes@^0.10.0:
-  version "0.10.0"
-  resolved 
"https://registry.yarnpkg.com/typedoc-default-themes/-/typedoc-default-themes-0.10.0.tgz#f1a13a24c136967ebd0f127614c2955f9ebd5b26";
-  integrity 
sha512-FV3Fct86EXTuW8f6E7F4ntM/BrBD5u7E+b96MIfiDWh3S14V+b+nNO+XzL0pQTBzF7PT63qHuwhrEBUk8XuqKA==
+typedoc-default-themes@^0.10.1:
+  version "0.10.1"
+  resolved 
"https://registry.yarnpkg.com/typedoc-default-themes/-/typedoc-default-themes-0.10.1.tgz#eb27b7d689457c7ec843e47ec0d3e500581296a7";
+  integrity 
sha512-SuqAQI0CkwhqSJ2kaVTgl37cWs733uy9UGUqwtcds8pkFK8oRF4rZmCq+FXTGIb9hIUOu40rf5Kojg0Ha6akeg==
   dependencies:
     lunr "^2.3.8"
 
-typedoc@^0.17.4:
-  version "0.17.4"
-  resolved 
"https://registry.yarnpkg.com/typedoc/-/typedoc-0.17.4.tgz#1de11e2e5e741af20bcdd73b9525f8ad04b59863";
-  integrity 
sha512-4Lotef1l6lNU5Fulpux809WPlF9CkmcXfv5QFyanrjYlxMFxSdARRdsy8Jv1OU3z0vjR4JsvUQT0YpiPqztcOA==
+typedoc@^0.17.7:
+  version "0.17.7"
+  resolved 
"https://registry.yarnpkg.com/typedoc/-/typedoc-0.17.7.tgz#70797401140403a5f91589ed3f4f24c03841bf7a";
+  integrity 
sha512-PEnzjwQAGjb0O8a6VDE0lxyLAadqNujN5LltsTUhZETolRMiIJv6Ox+Toa8h0XhKHqAOh8MOmB0eBVcWz6nuAw==
   dependencies:
     fs-extra "^8.1.0"
     handlebars "^4.7.6"
-    highlight.js "^9.18.1"
+    highlight.js "^10.0.0"
     lodash "^4.17.15"
     lunr "^2.3.8"
-    marked "0.8.2"
+    marked "1.0.0"
     minimatch "^3.0.0"
     progress "^2.0.3"
-    shelljs "^0.8.3"
-    typedoc-default-themes "^0.10.0"
+    shelljs "^0.8.4"
+    typedoc-default-themes "^0.10.1"
 
-typescript@^3.8.3:
-  version "3.8.3"
-  resolved 
"https://registry.yarnpkg.com/typescript/-/typescript-3.8.3.tgz#409eb8544ea0335711205869ec458ab109ee1061";
-  integrity 
sha512-MYlEfn5VrLNsgudQTVJeNaQFUAI7DkhnOjdpAp4T+ku1TfQClewlbSuTVHiA+8skNBgaf02TL/kLOvig4y3G8w==
+typescript@^3.9.3:
+  version "3.9.3"
+  resolved 
"https://registry.yarnpkg.com/typescript/-/typescript-3.9.3.tgz#d3ac8883a97c26139e42df5e93eeece33d610b8a";
+  integrity 
sha512-D/wqnB2xzNFIcoBG9FG8cXRDjiqSTbG2wd8DMZeQyJlP1vfTkIxH4GKveWaEBYySKIg+USu+E+EDIR47SqnaMQ==
 
 uglify-js@^3.1.4:
   version "3.6.9"
@@ -4296,11 +4389,6 @@ uri-js@^4.2.2:
   dependencies:
     punycode "^2.1.0"
 
-urix@^0.1.0:
-  version "0.1.0"
-  resolved 
"https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72";
-  integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=
-
 url-parse-lax@^3.0.0:
   version "3.0.0"
   resolved 
"https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-3.0.0.tgz#16b5cafc07dbe3676c1b1999177823d6503acb0c";

-- 
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]