add test case for i18n, fix react i18n bug

This commit is contained in:
Florian Dold 2020-04-07 20:17:15 +05:30
parent 322359e553
commit e404f5e6d3
No known key found for this signature in database
GPG Key ID: D2E4F00F29D02A4B
6 changed files with 872 additions and 429 deletions

View File

@ -36,7 +36,7 @@ if (!m) {
}
const lang = m[1];
const pojson = po2json.parseFileSync(filename);
const pojson = po2json.parseFileSync(filename, { format: "jed1.x", fuzzy: true });
const s =
"strings['" + lang + "'] = " + JSON.stringify(pojson, null, " ") + ";\n";
console.log(s);

View File

@ -34,11 +34,15 @@
"@rollup/plugin-json": "^4.0.2",
"@rollup/plugin-replace": "^2.3.1",
"@types/chrome": "^0.0.103",
"@types/enzyme": "^3.10.5",
"@types/enzyme-adapter-react-16": "^1.0.6",
"@types/react": "^16.9.6",
"@types/react-dom": "^16.9.6",
"@typescript-eslint/eslint-plugin": "^2.27.0",
"@typescript-eslint/parser": "^2.27.0",
"ava": "^3.6.0",
"enzyme": "^3.11.0",
"enzyme-adapter-react-16": "^1.15.2",
"eslint": "^6.8.0",
"eslint-config-airbnb-typescript": "^7.2.0",
"eslint-plugin-import": "^2.20.2",
@ -73,9 +77,14 @@
},
"ava": {
"files": [
"src/**/*-test.{js,ts}"
"src/**/*-test.*"
],
"typescript": {
"extensions": [
"js",
"ts",
"tsx"
],
"rewritePaths": {
"src/": "dist/node/"
}

View File

@ -16,353 +16,358 @@
export const strings: { [s: string]: any } = {};
strings["de"] = {
"Invalid Wire": [null, ""],
"Invalid Test Wire Detail": [null, ""],
"Test Wire Acct #%1$s on %2$s": [null, ""],
"Unknown Wire Detail": [null, ""],
Operation: [null, ""],
"time (ms/op)": [null, ""],
"The total price is %1$s (plus %2$s fees).": [null, ""],
"The total price is %1$s.": [null, ""],
Retry: [null, ""],
Balance: [null, "Saldo"],
History: [null, "Verlauf"],
Debug: [null, "Debug"],
"%1$s incoming": [null, ""],
"%1$s being spent": [null, ""],
"Error: could not retrieve balance information.": [null, ""],
"Invalid ": [null, ""],
"Fees ": [null, ""],
"Refresh sessions has completed": [null, ""],
"Order Refused": [null, ""],
"Order redirected": [null, ""],
"Payment aborted": [null, ""],
"Payment Sent": [null, ""],
"Order accepted": [null, ""],
"Reserve balance updated": [null, ""],
"Payment refund": [null, ""],
"Tip Accepted": [null, ""],
"Tip Declined": [null, ""],
"%1$s": [null, ""],
"Your wallet has no events recorded.": [
null,
"Ihre Geldbörse verzeichnet keine Vorkommnisse.",
],
"Wire to bank account": [null, ""],
"Could not get details for withdraw operation:": [null, ""],
"Chose different exchange provider": [null, ""],
"Please select an exchange. You can review the details before after your selection.": [
null,
"",
],
"Select %1$s": [null, ""],
"Select custom exchange": [null, ""],
"You are about to withdraw %1$s from your bank account into your wallet.": [
null,
"",
],
"Accept fees and withdraw": [null, ""],
"Cancel withdraw operation": [null, ""],
"Rounding loss:": [null, ""],
"Earliest expiration (for deposit): %1$s": [null, ""],
"# Coins": [null, ""],
Value: [null, ""],
"Refresh Fee": [null, ""],
"Deposit Fee": [null, ""],
"": {
"project-id-version": "Taler Wallet",
"report-msgid-bugs-to": "",
"pot-creation-date": "2016-11-23 00:00+0100",
"po-revision-date": "YEAR-MO-DA HO:MI+ZONE",
"last-translator": "FULL NAME <EMAIL@ADDRESS>",
"language-team": "LANGUAGE <LL@li.org>",
language: "",
"mime-version": "1.0",
"content-type": "text/plain; charset=UTF-8",
"content-transfer-encoding": "8bit",
"plural-forms": "nplurals=2; plural=(n != 1);",
domain: "messages",
locale_data: {
messages: {
"": {
domain: "messages",
plural_forms: "nplurals=2; plural=(n != 1);",
lang: "",
},
"Invalid Wire": [""],
"Invalid Test Wire Detail": [""],
"Test Wire Acct #%1$s on %2$s": [""],
"Unknown Wire Detail": [""],
Operation: [""],
"time (ms/op)": [""],
"The merchant %1$s offers you to purchase:": [
"Der Händler %1$s möchte einen Vertrag über %2$s mit Ihnen abschließen.",
],
"The total price is %1$s (plus %2$s fees).": [""],
"The total price is %1$s.": [""],
Retry: [""],
"Confirm payment": ["Bezahlung bestätigen"],
Balance: ["Saldo"],
History: ["Verlauf"],
Debug: ["Debug"],
"You have no balance to show. Need some %1$s getting started?": [
"Sie haben kein Digitalgeld. Wollen Sie %1$s? abheben?",
],
"%1$s incoming": [""],
"%1$s being spent": [""],
"Error: could not retrieve balance information.": [""],
"Invalid ": [""],
"Fees ": [""],
"Refresh sessions has completed": [""],
"Order Refused": [""],
"Order redirected": [""],
"Payment aborted": [""],
"Payment Sent": [""],
"Order accepted": [""],
"Reserve balance updated": [""],
"Payment refund": [""],
Withdrawn: ["Abheben bei %1$s"],
"Tip Accepted": [""],
"Tip Declined": [""],
"%1$s": [""],
"Your wallet has no events recorded.": [
"Ihre Geldbörse verzeichnet keine Vorkommnisse.",
],
"Wire to bank account": [""],
Confirm: ["Bezahlung bestätigen"],
Cancel: ["Saldo"],
"Could not get details for withdraw operation:": [""],
"Chose different exchange provider": [""],
"Please select an exchange. You can review the details before after your selection.": [
"",
],
"Select %1$s": [""],
"Select custom exchange": [""],
"You are about to withdraw %1$s from your bank account into your wallet.": [
"",
],
"Accept fees and withdraw": [""],
"Cancel withdraw operation": [""],
"Withdrawal fees:": ["Abheben bei"],
"Rounding loss:": [""],
"Earliest expiration (for deposit): %1$s": [""],
"# Coins": [""],
Value: [""],
"Withdraw Fee": ["Abheben bei %1$s"],
"Refresh Fee": [""],
"Deposit Fee": [""],
},
},
};
strings["en-US"] = {
"Invalid Wire": [null, ""],
"Invalid Test Wire Detail": [null, ""],
"Test Wire Acct #%1$s on %2$s": [null, ""],
"Unknown Wire Detail": [null, ""],
Operation: [null, ""],
"time (ms/op)": [null, ""],
"The merchant %1$s offers you to purchase:": [null, ""],
"The total price is %1$s (plus %2$s fees).": [null, ""],
"The total price is %1$s.": [null, ""],
Retry: [null, ""],
"Confirm payment": [null, ""],
Balance: [null, ""],
History: [null, ""],
Debug: [null, ""],
"You have no balance to show. Need some %1$s getting started?": [null, ""],
"%1$s incoming": [null, ""],
"%1$s being spent": [null, ""],
"Error: could not retrieve balance information.": [null, ""],
"Invalid ": [null, ""],
"Fees ": [null, ""],
"Refresh sessions has completed": [null, ""],
"Order Refused": [null, ""],
"Order redirected": [null, ""],
"Payment aborted": [null, ""],
"Payment Sent": [null, ""],
"Order accepted": [null, ""],
"Reserve balance updated": [null, ""],
"Payment refund": [null, ""],
Withdrawn: [null, ""],
"Tip Accepted": [null, ""],
"Tip Declined": [null, ""],
"%1$s": [null, ""],
"Your wallet has no events recorded.": [null, ""],
"Wire to bank account": [null, ""],
Confirm: [null, ""],
Cancel: [null, ""],
"Could not get details for withdraw operation:": [null, ""],
"Chose different exchange provider": [null, ""],
"Please select an exchange. You can review the details before after your selection.": [
null,
"",
],
"Select %1$s": [null, ""],
"Select custom exchange": [null, ""],
"You are about to withdraw %1$s from your bank account into your wallet.": [
null,
"",
],
"Accept fees and withdraw": [null, ""],
"Cancel withdraw operation": [null, ""],
"Withdrawal fees:": [null, ""],
"Rounding loss:": [null, ""],
"Earliest expiration (for deposit): %1$s": [null, ""],
"# Coins": [null, ""],
Value: [null, ""],
"Withdraw Fee": [null, ""],
"Refresh Fee": [null, ""],
"Deposit Fee": [null, ""],
"": {
"project-id-version": "Taler Wallet",
"report-msgid-bugs-to": "",
"pot-creation-date": "2016-11-23 00:00+0100",
"po-revision-date": "YEAR-MO-DA HO:MI+ZONE",
"last-translator": "FULL NAME <EMAIL@ADDRESS>",
"language-team": "LANGUAGE <LL@li.org>",
language: "",
"mime-version": "1.0",
"content-type": "text/plain; charset=UTF-8",
"content-transfer-encoding": "8bit",
"plural-forms": "nplurals=2; plural=(n != 1);",
domain: "messages",
locale_data: {
messages: {
"": {
domain: "messages",
plural_forms: "nplurals=2; plural=(n != 1);",
lang: "",
},
"Invalid Wire": [""],
"Invalid Test Wire Detail": [""],
"Test Wire Acct #%1$s on %2$s": [""],
"Unknown Wire Detail": [""],
Operation: [""],
"time (ms/op)": [""],
"The merchant %1$s offers you to purchase:": [""],
"The total price is %1$s (plus %2$s fees).": [""],
"The total price is %1$s.": [""],
Retry: [""],
"Confirm payment": [""],
Balance: [""],
History: [""],
Debug: [""],
"You have no balance to show. Need some %1$s getting started?": [""],
"%1$s incoming": [""],
"%1$s being spent": [""],
"Error: could not retrieve balance information.": [""],
"Invalid ": [""],
"Fees ": [""],
"Refresh sessions has completed": [""],
"Order Refused": [""],
"Order redirected": [""],
"Payment aborted": [""],
"Payment Sent": [""],
"Order accepted": [""],
"Reserve balance updated": [""],
"Payment refund": [""],
Withdrawn: [""],
"Tip Accepted": [""],
"Tip Declined": [""],
"%1$s": [""],
"Your wallet has no events recorded.": [""],
"Wire to bank account": [""],
Confirm: [""],
Cancel: [""],
"Could not get details for withdraw operation:": [""],
"Chose different exchange provider": [""],
"Please select an exchange. You can review the details before after your selection.": [
"",
],
"Select %1$s": [""],
"Select custom exchange": [""],
"You are about to withdraw %1$s from your bank account into your wallet.": [
"",
],
"Accept fees and withdraw": [""],
"Cancel withdraw operation": [""],
"Withdrawal fees:": [""],
"Rounding loss:": [""],
"Earliest expiration (for deposit): %1$s": [""],
"# Coins": [""],
Value: [""],
"Withdraw Fee": [""],
"Refresh Fee": [""],
"Deposit Fee": [""],
},
},
};
strings["fr"] = {
"Invalid Wire": [null, ""],
"Invalid Test Wire Detail": [null, ""],
"Test Wire Acct #%1$s on %2$s": [null, ""],
"Unknown Wire Detail": [null, ""],
Operation: [null, ""],
"time (ms/op)": [null, ""],
"The merchant %1$s offers you to purchase:": [null, ""],
"The total price is %1$s (plus %2$s fees).": [null, ""],
"The total price is %1$s.": [null, ""],
Retry: [null, ""],
"Confirm payment": [null, ""],
Balance: [null, ""],
History: [null, ""],
Debug: [null, ""],
"You have no balance to show. Need some %1$s getting started?": [null, ""],
"%1$s incoming": [null, ""],
"%1$s being spent": [null, ""],
"Error: could not retrieve balance information.": [null, ""],
"Invalid ": [null, ""],
"Fees ": [null, ""],
"Refresh sessions has completed": [null, ""],
"Order Refused": [null, ""],
"Order redirected": [null, ""],
"Payment aborted": [null, ""],
"Payment Sent": [null, ""],
"Order accepted": [null, ""],
"Reserve balance updated": [null, ""],
"Payment refund": [null, ""],
Withdrawn: [null, ""],
"Tip Accepted": [null, ""],
"Tip Declined": [null, ""],
"%1$s": [null, ""],
"Your wallet has no events recorded.": [null, ""],
"Wire to bank account": [null, ""],
Confirm: [null, ""],
Cancel: [null, ""],
"Could not get details for withdraw operation:": [null, ""],
"Chose different exchange provider": [null, ""],
"Please select an exchange. You can review the details before after your selection.": [
null,
"",
],
"Select %1$s": [null, ""],
"Select custom exchange": [null, ""],
"You are about to withdraw %1$s from your bank account into your wallet.": [
null,
"",
],
"Accept fees and withdraw": [null, ""],
"Cancel withdraw operation": [null, ""],
"Withdrawal fees:": [null, ""],
"Rounding loss:": [null, ""],
"Earliest expiration (for deposit): %1$s": [null, ""],
"# Coins": [null, ""],
Value: [null, ""],
"Withdraw Fee": [null, ""],
"Refresh Fee": [null, ""],
"Deposit Fee": [null, ""],
"": {
"project-id-version": "Taler Wallet",
"report-msgid-bugs-to": "",
"pot-creation-date": "2016-11-23 00:00+0100",
"po-revision-date": "YEAR-MO-DA HO:MI+ZONE",
"last-translator": "FULL NAME <EMAIL@ADDRESS>",
"language-team": "LANGUAGE <LL@li.org>",
language: "",
"mime-version": "1.0",
"content-type": "text/plain; charset=UTF-8",
"content-transfer-encoding": "8bit",
"plural-forms": "nplurals=2; plural=(n != 1);",
domain: "messages",
locale_data: {
messages: {
"": {
domain: "messages",
plural_forms: "nplurals=2; plural=(n != 1);",
lang: "",
},
"Invalid Wire": [""],
"Invalid Test Wire Detail": [""],
"Test Wire Acct #%1$s on %2$s": [""],
"Unknown Wire Detail": [""],
Operation: [""],
"time (ms/op)": [""],
"The merchant %1$s offers you to purchase:": [""],
"The total price is %1$s (plus %2$s fees).": [""],
"The total price is %1$s.": [""],
Retry: [""],
"Confirm payment": [""],
Balance: [""],
History: [""],
Debug: [""],
"You have no balance to show. Need some %1$s getting started?": [""],
"%1$s incoming": [""],
"%1$s being spent": [""],
"Error: could not retrieve balance information.": [""],
"Invalid ": [""],
"Fees ": [""],
"Refresh sessions has completed": [""],
"Order Refused": [""],
"Order redirected": [""],
"Payment aborted": [""],
"Payment Sent": [""],
"Order accepted": [""],
"Reserve balance updated": [""],
"Payment refund": [""],
Withdrawn: [""],
"Tip Accepted": [""],
"Tip Declined": [""],
"%1$s": [""],
"Your wallet has no events recorded.": [""],
"Wire to bank account": [""],
Confirm: [""],
Cancel: [""],
"Could not get details for withdraw operation:": [""],
"Chose different exchange provider": [""],
"Please select an exchange. You can review the details before after your selection.": [
"",
],
"Select %1$s": [""],
"Select custom exchange": [""],
"You are about to withdraw %1$s from your bank account into your wallet.": [
"",
],
"Accept fees and withdraw": [""],
"Cancel withdraw operation": [""],
"Withdrawal fees:": [""],
"Rounding loss:": [""],
"Earliest expiration (for deposit): %1$s": [""],
"# Coins": [""],
Value: [""],
"Withdraw Fee": [""],
"Refresh Fee": [""],
"Deposit Fee": [""],
},
},
};
strings["it"] = {
"Invalid Wire": [null, ""],
"Invalid Test Wire Detail": [null, ""],
"Test Wire Acct #%1$s on %2$s": [null, ""],
"Unknown Wire Detail": [null, ""],
Operation: [null, ""],
"time (ms/op)": [null, ""],
"The merchant %1$s offers you to purchase:": [null, ""],
"The total price is %1$s (plus %2$s fees).": [null, ""],
"The total price is %1$s.": [null, ""],
Retry: [null, ""],
"Confirm payment": [null, ""],
Balance: [null, ""],
History: [null, ""],
Debug: [null, ""],
"You have no balance to show. Need some %1$s getting started?": [null, ""],
"%1$s incoming": [null, ""],
"%1$s being spent": [null, ""],
"Error: could not retrieve balance information.": [null, ""],
"Invalid ": [null, ""],
"Fees ": [null, ""],
"Refresh sessions has completed": [null, ""],
"Order Refused": [null, ""],
"Order redirected": [null, ""],
"Payment aborted": [null, ""],
"Payment Sent": [null, ""],
"Order accepted": [null, ""],
"Reserve balance updated": [null, ""],
"Payment refund": [null, ""],
Withdrawn: [null, ""],
"Tip Accepted": [null, ""],
"Tip Declined": [null, ""],
"%1$s": [null, ""],
"Your wallet has no events recorded.": [null, ""],
"Wire to bank account": [null, ""],
Confirm: [null, ""],
Cancel: [null, ""],
"Could not get details for withdraw operation:": [null, ""],
"Chose different exchange provider": [null, ""],
"Please select an exchange. You can review the details before after your selection.": [
null,
"",
],
"Select %1$s": [null, ""],
"Select custom exchange": [null, ""],
"You are about to withdraw %1$s from your bank account into your wallet.": [
null,
"",
],
"Accept fees and withdraw": [null, ""],
"Cancel withdraw operation": [null, ""],
"Withdrawal fees:": [null, ""],
"Rounding loss:": [null, ""],
"Earliest expiration (for deposit): %1$s": [null, ""],
"# Coins": [null, ""],
Value: [null, ""],
"Withdraw Fee": [null, ""],
"Refresh Fee": [null, ""],
"Deposit Fee": [null, ""],
"": {
"project-id-version": "Taler Wallet",
"report-msgid-bugs-to": "",
"pot-creation-date": "2016-11-23 00:00+0100",
"po-revision-date": "YEAR-MO-DA HO:MI+ZONE",
"last-translator": "FULL NAME <EMAIL@ADDRESS>",
"language-team": "LANGUAGE <LL@li.org>",
language: "",
"mime-version": "1.0",
"content-type": "text/plain; charset=UTF-8",
"content-transfer-encoding": "8bit",
"plural-forms": "nplurals=2; plural=(n != 1);",
domain: "messages",
locale_data: {
messages: {
"": {
domain: "messages",
plural_forms: "nplurals=2; plural=(n != 1);",
lang: "",
},
"Invalid Wire": [""],
"Invalid Test Wire Detail": [""],
"Test Wire Acct #%1$s on %2$s": [""],
"Unknown Wire Detail": [""],
Operation: [""],
"time (ms/op)": [""],
"The merchant %1$s offers you to purchase:": [""],
"The total price is %1$s (plus %2$s fees).": [""],
"The total price is %1$s.": [""],
Retry: [""],
"Confirm payment": [""],
Balance: [""],
History: [""],
Debug: [""],
"You have no balance to show. Need some %1$s getting started?": [""],
"%1$s incoming": [""],
"%1$s being spent": [""],
"Error: could not retrieve balance information.": [""],
"Invalid ": [""],
"Fees ": [""],
"Refresh sessions has completed": [""],
"Order Refused": [""],
"Order redirected": [""],
"Payment aborted": [""],
"Payment Sent": [""],
"Order accepted": [""],
"Reserve balance updated": [""],
"Payment refund": [""],
Withdrawn: [""],
"Tip Accepted": [""],
"Tip Declined": [""],
"%1$s": [""],
"Your wallet has no events recorded.": [""],
"Wire to bank account": [""],
Confirm: [""],
Cancel: [""],
"Could not get details for withdraw operation:": [""],
"Chose different exchange provider": [""],
"Please select an exchange. You can review the details before after your selection.": [
"",
],
"Select %1$s": [""],
"Select custom exchange": [""],
"You are about to withdraw %1$s from your bank account into your wallet.": [
"",
],
"Accept fees and withdraw": [""],
"Cancel withdraw operation": [""],
"Withdrawal fees:": [""],
"Rounding loss:": [""],
"Earliest expiration (for deposit): %1$s": [""],
"# Coins": [""],
Value: [""],
"Withdraw Fee": [""],
"Refresh Fee": [""],
"Deposit Fee": [""],
},
},
};
strings["sv"] = {
"Invalid Wire": [null, ""],
"Invalid Test Wire Detail": [null, ""],
"Test Wire Acct #%1$s on %2$s": [null, ""],
Operation: [null, ""],
"time (ms/op)": [null, ""],
Retry: [null, ""],
"Confirm payment": [null, "Godkän betalning"],
Balance: [null, "Balans"],
History: [null, "Historia"],
Debug: [null, ""],
"%1$s being spent": [null, ""],
"Error: could not retrieve balance information.": [null, ""],
"Invalid ": [null, ""],
"Fees ": [null, ""],
"Refresh sessions has completed": [null, ""],
"Order Refused": [null, ""],
"Order redirected": [null, ""],
"Payment aborted": [null, ""],
"Payment Sent": [null, ""],
"Order accepted": [null, ""],
"Reserve balance updated": [null, ""],
"Payment refund": [null, ""],
"Tip Accepted": [null, ""],
"Tip Declined": [null, ""],
"%1$s": [null, ""],
"Your wallet has no events recorded.": [null, "plånboken"],
"Wire to bank account": [null, "Övervisa till bank konto"],
Confirm: [null, "Bekräfta"],
Cancel: [null, "Avbryt"],
"Could not get details for withdraw operation:": [null, ""],
"Please select an exchange. You can review the details before after your selection.": [
null,
"",
],
"Select custom exchange": [null, ""],
"Accept fees and withdraw": [null, "Acceptera avgifter och utbetala"],
"Cancel withdraw operation": [null, ""],
"Withdrawal fees:": [null, "Utbetalnings avgifter:"],
"Rounding loss:": [null, ""],
"Earliest expiration (for deposit): %1$s": [null, ""],
"# Coins": [null, "# Mynt"],
Value: [null, "Värde"],
"Withdraw Fee": [null, "Utbetalnings avgift"],
"Refresh Fee": [null, "Återhämtnings avgift"],
"Deposit Fee": [null, "Depostitions avgift"],
"": {
"project-id-version": "Taler Wallet",
"report-msgid-bugs-to": "",
"pot-creation-date": "2016-11-23 00:00+0100",
"po-revision-date": "YEAR-MO-DA HO:MI+ZONE",
"last-translator": "Flo Reitz <EMAIL@ADDRESS>",
"language-team": "LANGUAGE <LL@li.org>",
language: "",
"mime-version": "1.0",
"content-type": "text/plain; charset=UTF-8",
"content-transfer-encoding": "8bit",
"plural-forms": "nplurals=2; plural=(n != 1);",
domain: "messages",
locale_data: {
messages: {
"": {
domain: "messages",
plural_forms: "nplurals=2; plural=(n != 1);",
lang: "",
},
"Invalid Wire": [""],
"Invalid Test Wire Detail": [""],
"Test Wire Acct #%1$s on %2$s": [""],
"Unknown Wire Detail": ["visa mer"],
Operation: [""],
"time (ms/op)": [""],
"The merchant %1$s offers you to purchase:": [
"Säljaren %1$s erbjuder följande:",
],
"The total price is %1$s (plus %2$s fees).": [
"Det totala priset är %1$s (plus %2$s avgifter).\n",
],
"The total price is %1$s.": ["Det totala priset är %1$s."],
Retry: [""],
"Confirm payment": ["Godkän betalning"],
Balance: ["Balans"],
History: ["Historia"],
Debug: [""],
"You have no balance to show. Need some %1$s getting started?": [
"Du har ingen balans att visa. Behöver du\n %1$s att börja?\n",
],
"%1$s incoming": ["%1$s inkommande"],
"%1$s being spent": [""],
"Error: could not retrieve balance information.": [""],
"Invalid ": [""],
"Fees ": [""],
"Refresh sessions has completed": [""],
"Order Refused": [""],
"Order redirected": [""],
"Payment aborted": [""],
"Payment Sent": [""],
"Order accepted": [""],
"Reserve balance updated": [""],
"Payment refund": [""],
Withdrawn: ["Utbetalnings avgift"],
"Tip Accepted": [""],
"Tip Declined": [""],
"%1$s": [""],
"Your wallet has no events recorded.": ["plånboken"],
"Wire to bank account": ["Övervisa till bank konto"],
Confirm: ["Bekräfta"],
Cancel: ["Avbryt"],
"Could not get details for withdraw operation:": [""],
"Chose different exchange provider": ["Ändra tjänsteleverantörer"],
"Please select an exchange. You can review the details before after your selection.": [
"",
],
"Select %1$s": ["Välj %1$s"],
"Select custom exchange": [""],
"You are about to withdraw %1$s from your bank account into your wallet.": [
"Du är på väg att ta ut\n %1$s från ditt bankkonto till din plånbok.\n",
],
"Accept fees and withdraw": ["Acceptera avgifter och utbetala"],
"Cancel withdraw operation": [""],
"Withdrawal fees:": ["Utbetalnings avgifter:"],
"Rounding loss:": [""],
"Earliest expiration (for deposit): %1$s": [""],
"# Coins": ["# Mynt"],
Value: ["Värde"],
"Withdraw Fee": ["Utbetalnings avgift"],
"Refresh Fee": ["Återhämtnings avgift"],
"Deposit Fee": ["Depostitions avgift"],
},
},
};

69
src/webex/i18n-test.tsx Normal file
View File

@ -0,0 +1,69 @@
/*
This file is part of GNU Taler
(C) 2020 Taler Systems SA
GNU 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.
GNU 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
GNU Taler; see the file COPYING. If not, see <http://www.gnu.org/licenses/>
*/
import test from "ava";
import { internalSetStrings, str, Translate } from "./i18n";
import { strings } from "../i18n/strings";
import React from "react";
import { render } from "enzyme";
import { configure } from "enzyme";
import Adapter from "enzyme-adapter-react-16";
configure({ adapter: new Adapter() });
const testStrings = {
domain: "messages",
locale_data: {
messages: {
str1: ["foo1"],
str2: [""],
"str3 %1$s / %2$s": ["foo3 %2$s ; %1$s"],
"": {
domain: "messages",
plural_forms: "nplurals=2; plural=(n != 1);",
lang: "",
},
},
},
};
test("str translation", (t) => {
// Alias, so we nly use the function for lookups, not for string extranction.
const strAlias = str;
const TranslateAlias = Translate;
internalSetStrings(testStrings);
t.is(strAlias`str1`, "foo1");
t.is(strAlias`str2`, "str2");
const a = "a";
const b = "b";
t.is(strAlias`str3 ${a} / ${b}`, "foo3 b ; a");
const r = render(<TranslateAlias>str1</TranslateAlias>);
t.is(r.text(), "foo1");
const r2 = render(
<TranslateAlias>
str3 <span>{a}</span> / <span>{b}</span>
</TranslateAlias>,
);
t.is(r2.text(), "foo3 b ; a");
t.pass();
});
test("existing str translation", (t) => {
internalSetStrings(strings);
t.pass();
});

View File

@ -28,7 +28,7 @@ import * as jedLib from "jed";
import * as React from "react";
const jed = setupJed();
let jed = setupJed();
const enableTracing = false;
@ -54,6 +54,14 @@ function setupJed(): any {
return new jedLib.Jed(strings[lang]);
}
/**
* Use different translations for testing. Should not be used outside
* of test cases.
*/
export function internalSetStrings(langStrings: any): void {
jed = new jedLib.Jed(langStrings);
}
/**
* Convert template strings to a msgid
*/
@ -110,6 +118,37 @@ interface TranslateProps {
wrapProps?: any;
}
function getTranslatedChildren(
translation: string,
children: React.ReactNode,
): React.ReactNode[] {
const tr = translation.split(/%(\d+)\$s/);
const childArray = React.Children.toArray(children);
// Merge consecutive string children.
const placeholderChildren = [];
for (let i = 0; i < childArray.length; i++) {
const x = childArray[i];
if (x === undefined) {
continue;
} else if (typeof x === "string") {
continue;
} else {
placeholderChildren.push(x);
}
}
const result = [];
for (let i = 0; i < tr.length; i++) {
if (i % 2 == 0) {
// Text
result.push(tr[i]);
} else {
const childIdx = Number.parseInt(tr[i]) - 1;
result.push(placeholderChildren[childIdx]);
}
}
return result;
}
/**
* Translate text node children of this component.
* If a child component might produce a text node, it must be wrapped
@ -125,35 +164,8 @@ interface TranslateProps {
export class Translate extends React.Component<TranslateProps, {}> {
render(): JSX.Element {
const s = stringifyChildren(this.props.children);
const tr = jed
.ngettext(s, s, 1)
.split(/%(\d+)\$s/)
.filter((e: any, i: number) => i % 2 === 0);
const childArray = React.Children.toArray(this.props.children);
for (let i = 0; i < childArray.length - 1; ++i) {
if (
typeof childArray[i] === "string" &&
typeof childArray[i + 1] === "string"
) {
childArray[i + 1] = (childArray[i] as string).concat(
childArray[i + 1] as string,
);
childArray.splice(i, 1);
}
}
const result = [];
while (childArray.length > 0) {
const x = childArray.shift();
if (x === undefined) {
continue;
}
if (typeof x === "string") {
const t = tr.shift();
result.push(t);
} else {
result.push(x);
}
}
const translation: string = jed.ngettext(s, s, 1);
const result = getTranslatedChildren(translation, this.props.children);
if (!this.props.wrap) {
return <div>{result}</div>;
}
@ -216,34 +228,8 @@ export class TranslatePlural extends React.Component<
> {
render(): JSX.Element {
const s = stringifyChildren(this.props.children);
const tr = jed
.ngettext(s, s, 1)
.split(/%(\d+)\$s/)
.filter((e: any, i: number) => i % 2 === 0);
const childArray = React.Children.toArray(this.props.children);
for (let i = 0; i < childArray.length - 1; ++i) {
if (
typeof childArray[i] === "string" &&
typeof childArray[i + 1] === "string"
) {
childArray[i + i] = ((childArray[i] as string) +
childArray[i + 1]) as string;
childArray.splice(i, 1);
}
}
const result = [];
while (childArray.length > 0) {
const x = childArray.shift();
if (x === undefined) {
continue;
}
if (typeof x === "string") {
const t = tr.shift();
result.push(t);
} else {
result.push(x);
}
}
const translation = jed.ngettext(s, s, 1);
const result = getTranslatedChildren(translation, this.props.children);
return <div>{result}</div>;
}
}
@ -257,34 +243,8 @@ export class TranslateSingular extends React.Component<
> {
render(): JSX.Element {
const s = stringifyChildren(this.props.children);
const tr = jed
.ngettext(s, s, 1)
.split(/%(\d+)\$s/)
.filter((e: any, i: number) => i % 2 === 0);
const childArray = React.Children.toArray(this.props.children);
for (let i = 0; i < childArray.length - 1; ++i) {
if (
typeof childArray[i] === "string" &&
typeof childArray[i + 1] === "string"
) {
childArray[i + i] = ((childArray[i] as string) +
childArray[i + 1]) as string;
childArray.splice(i, 1);
}
}
const result = [];
while (childArray.length > 0) {
const x = childArray.shift();
if (x === undefined) {
continue;
}
if (typeof x === "string") {
const t = tr.shift();
result.push(t);
} else {
result.push(x);
}
}
const translation = jed.ngettext(s, s, this.props.target);
const result = getTranslatedChildren(translation, this.props.children);
return <div>{result}</div>;
}
}

418
yarn.lock
View File

@ -292,6 +292,13 @@
dependencies:
defer-to-connect "^1.0.1"
"@types/cheerio@*":
version "0.22.17"
resolved "https://registry.yarnpkg.com/@types/cheerio/-/cheerio-0.22.17.tgz#e54f71c3135f71ebc16c8dc62edad533872c9e72"
integrity sha512-izlm+hbqWN9csuB9GSMfCnAyd3/57XZi3rfz1B0C4QBGVMp+9xQ7+9KYnep+ySfUrCWql4lGzkLf0XmprXcz9g==
dependencies:
"@types/node" "*"
"@types/chrome@^0.0.103":
version "0.0.103"
resolved "https://registry.yarnpkg.com/@types/chrome/-/chrome-0.0.103.tgz#604f3d94ab4465cc8cde302c4916f4955eb7e8b6"
@ -305,6 +312,21 @@
resolved "https://registry.yarnpkg.com/@types/color-name/-/color-name-1.1.1.tgz#1c1261bbeaa10a8055bbc5d8ab84b7b2afc846a0"
integrity sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==
"@types/enzyme-adapter-react-16@^1.0.6":
version "1.0.6"
resolved "https://registry.yarnpkg.com/@types/enzyme-adapter-react-16/-/enzyme-adapter-react-16-1.0.6.tgz#8aca7ae2fd6c7137d869b6616e696d21bb8b0cec"
integrity sha512-VonDkZ15jzqDWL8mPFIQnnLtjwebuL9YnDkqeCDYnB4IVgwUm0mwKkqhrxLL6mb05xm7qqa3IE95m8CZE9imCg==
dependencies:
"@types/enzyme" "*"
"@types/enzyme@*", "@types/enzyme@^3.10.5":
version "3.10.5"
resolved "https://registry.yarnpkg.com/@types/enzyme/-/enzyme-3.10.5.tgz#fe7eeba3550369eed20e7fb565bfb74eec44f1f0"
integrity sha512-R+phe509UuUYy9Tk0YlSbipRpfVtIzb/9BHn5pTEtjJTF5LXvUjrIQcZvNyANNEyFrd2YGs196PniNT1fgvOQA==
dependencies:
"@types/cheerio" "*"
"@types/react" "*"
"@types/eslint-visitor-keys@^1.0.0":
version "1.0.0"
resolved "https://registry.yarnpkg.com/@types/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz#1ee30d79544ca84d68d4b3cdb0af4f205663dd2d"
@ -459,6 +481,22 @@ aggregate-error@^3.0.0:
clean-stack "^2.0.0"
indent-string "^4.0.0"
airbnb-prop-types@^2.15.0:
version "2.15.0"
resolved "https://registry.yarnpkg.com/airbnb-prop-types/-/airbnb-prop-types-2.15.0.tgz#5287820043af1eb469f5b0af0d6f70da6c52aaef"
integrity sha512-jUh2/hfKsRjNFC4XONQrxo/n/3GG4Tn6Hl0WlFQN5PY9OMC9loSCoAYKnZsWaP8wEfd5xcrPloK0Zg6iS1xwVA==
dependencies:
array.prototype.find "^2.1.0"
function.prototype.name "^1.1.1"
has "^1.0.3"
is-regex "^1.0.4"
object-is "^1.0.1"
object.assign "^4.1.0"
object.entries "^1.1.0"
prop-types "^15.7.2"
prop-types-exact "^1.2.0"
react-is "^16.9.0"
ajv@^6.10.0, ajv@^6.10.2:
version "6.12.0"
resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.0.tgz#06d60b96d87b8454a5adaba86e7854da629db4b7"
@ -561,6 +599,11 @@ aria-query@^3.0.0:
ast-types-flow "0.0.7"
commander "^2.11.0"
array-filter@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/array-filter/-/array-filter-1.0.0.tgz#baf79e62e6ef4c2a4c0b831232daffec251f9d83"
integrity sha1-uveeYubvTCpMC4MSMtr/7CUfnYM=
array-find-index@^1.0.1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/array-find-index/-/array-find-index-1.0.2.tgz#df010aa1287e164bbda6f9723b0a96a1ec4187a1"
@ -580,7 +623,15 @@ array-union@^2.1.0:
resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d"
integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==
array.prototype.flat@^1.2.1:
array.prototype.find@^2.1.0:
version "2.1.1"
resolved "https://registry.yarnpkg.com/array.prototype.find/-/array.prototype.find-2.1.1.tgz#3baca26108ca7affb08db06bf0be6cb3115a969c"
integrity sha512-mi+MYNJYLTx2eNYy+Yh6raoQacCsNeeMUaspFPh9Y141lFSsWxxB8V9mM2ye+eqiRs917J6/pJ4M9ZPzenWckA==
dependencies:
define-properties "^1.1.3"
es-abstract "^1.17.4"
array.prototype.flat@^1.2.1, array.prototype.flat@^1.2.3:
version "1.2.3"
resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.2.3.tgz#0de82b426b0318dbfdb940089e38b043d37f6c7b"
integrity sha512-gBlRZV0VSmfPIeWfuuy56XZMvbVfbEUnOXUvt3F/eUUUSyzlgLxhEX4YAEpxNAogRGehPSnfXyPtYyKAhkzQhQ==
@ -713,6 +764,11 @@ blueimp-md5@^2.10.0:
resolved "https://registry.yarnpkg.com/blueimp-md5/-/blueimp-md5-2.12.0.tgz#be7367938a889dec3ffbb71138617c117e9c130a"
integrity sha512-zo+HIdIhzojv6F1siQPqPFROyVy7C50KzHv/k/Iz+BtvtVzSHXiMXOpq2wCfNkeBqdCv+V8XOV96tsEt2W/3rQ==
boolbase@~1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e"
integrity sha1-aN/1++YMUes3cl6p4+0xDcwed24=
boxen@^4.2.0:
version "4.2.0"
resolved "https://registry.yarnpkg.com/boxen/-/boxen-4.2.0.tgz#e411b62357d6d6d36587c8ac3d5d974daa070e64"
@ -824,6 +880,18 @@ chardet@^0.7.0:
resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e"
integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==
cheerio@^1.0.0-rc.3:
version "1.0.0-rc.3"
resolved "https://registry.yarnpkg.com/cheerio/-/cheerio-1.0.0-rc.3.tgz#094636d425b2e9c0f4eb91a46c05630c9a1a8bf6"
integrity sha512-0td5ijfUPuubwLUu0OBoe98gZj8C/AA+RW3v67GPlGOrvxWjZmBXiBCRU+I8VEiNyJzjth40POfHiz2RB3gImA==
dependencies:
css-select "~1.2.0"
dom-serializer "~0.1.1"
entities "~1.1.1"
htmlparser2 "^3.9.1"
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"
@ -946,7 +1014,7 @@ color-name@~1.1.4:
resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2"
integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
commander@^2.11.0, commander@^2.20.0, commander@~2.20.3:
commander@^2.11.0, commander@^2.19.0, commander@^2.20.0, commander@~2.20.3:
version "2.20.3"
resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33"
integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==
@ -1047,6 +1115,21 @@ crypto-random-string@^2.0.0:
resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-2.0.0.tgz#ef2a7a966ec11083388369baa02ebead229b30d5"
integrity sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==
css-select@~1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/css-select/-/css-select-1.2.0.tgz#2b3a110539c5355f1cd8d314623e870b121ec858"
integrity sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg=
dependencies:
boolbase "~1.0.0"
css-what "2.1"
domutils "1.5.1"
nth-check "~1.0.1"
css-what@2.1:
version "2.1.3"
resolved "https://registry.yarnpkg.com/css-what/-/css-what-2.1.3.tgz#a6d7604573365fe74686c3f311c56513d88285f2"
integrity sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg==
csstype@^2.2.0:
version "2.6.7"
resolved "https://registry.yarnpkg.com/csstype/-/csstype-2.6.7.tgz#20b0024c20b6718f4eda3853a1f5a1cce7f5e4a5"
@ -1166,6 +1249,11 @@ dir-glob@^3.0.1:
dependencies:
path-type "^4.0.0"
discontinuous-range@1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/discontinuous-range/-/discontinuous-range-1.0.0.tgz#e38331f0844bba49b9a9cb71c771585aab1bc65a"
integrity sha1-44Mx8IRLukm5qctxx3FYWqsbxlo=
doctrine@1.5.0:
version "1.5.0"
resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-1.5.0.tgz#379dce730f6166f76cefa4e6707a159b02c5a6fa"
@ -1188,6 +1276,55 @@ doctrine@^3.0.0:
dependencies:
esutils "^2.0.2"
dom-serializer@0:
version "0.2.2"
resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.2.2.tgz#1afb81f533717175d478655debc5e332d9f9bb51"
integrity sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==
dependencies:
domelementtype "^2.0.1"
entities "^2.0.0"
dom-serializer@~0.1.1:
version "0.1.1"
resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.1.1.tgz#1ec4059e284babed36eec2941d4a970a189ce7c0"
integrity sha512-l0IU0pPzLWSHBcieZbpOKgkIn3ts3vAh7ZuFyXNwJxJXk/c4Gwj9xaTJwIDVQCXawWD0qb3IzMGH5rglQaO0XA==
dependencies:
domelementtype "^1.3.0"
entities "^1.1.1"
domelementtype@1, domelementtype@^1.3.0, domelementtype@^1.3.1:
version "1.3.1"
resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.1.tgz#d048c44b37b0d10a7f2a3d5fee3f4333d790481f"
integrity sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==
domelementtype@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.0.1.tgz#1f8bdfe91f5a78063274e803b4bdcedf6e94f94d"
integrity sha512-5HOHUDsYZWV8FGWN0Njbr/Rn7f/eWSQi1v7+HsUVwXgn8nWWlL64zKDkS0n8ZmQ3mlWOMuXOnR+7Nx/5tMO5AQ==
domhandler@^2.3.0:
version "2.4.2"
resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-2.4.2.tgz#8805097e933d65e85546f726d60f5eb88b44f803"
integrity sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==
dependencies:
domelementtype "1"
domutils@1.5.1:
version "1.5.1"
resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.5.1.tgz#dcd8488a26f563d61079e48c9f7b7e32373682cf"
integrity sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=
dependencies:
dom-serializer "0"
domelementtype "1"
domutils@^1.5.1:
version "1.7.0"
resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.7.0.tgz#56ea341e834e06e6748af7a1cb25da67ea9f8c2a"
integrity sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==
dependencies:
dom-serializer "0"
domelementtype "1"
dot-prop@^5.2.0:
version "5.2.0"
resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-5.2.0.tgz#c34ecc29556dc45f1f4c22697b6f4904e0cc4fcb"
@ -1229,6 +1366,79 @@ end-of-stream@^1.1.0:
dependencies:
once "^1.4.0"
entities@^1.1.1, entities@~1.1.1:
version "1.1.2"
resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.2.tgz#bdfa735299664dfafd34529ed4f8522a275fea56"
integrity sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==
entities@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/entities/-/entities-2.0.0.tgz#68d6084cab1b079767540d80e56a39b423e4abf4"
integrity sha512-D9f7V0JSRwIxlRI2mjMqufDrRDnx8p+eEOz7aUM9SuvF8gsBzra0/6tbjl1m8eQHrZlYj6PxqE00hZ1SAIKPLw==
enzyme-adapter-react-16@^1.15.2:
version "1.15.2"
resolved "https://registry.yarnpkg.com/enzyme-adapter-react-16/-/enzyme-adapter-react-16-1.15.2.tgz#b16db2f0ea424d58a808f9df86ab6212895a4501"
integrity sha512-SkvDrb8xU3lSxID8Qic9rB8pvevDbLybxPK6D/vW7PrT0s2Cl/zJYuXvsd1EBTz0q4o3iqG3FJhpYz3nUNpM2Q==
dependencies:
enzyme-adapter-utils "^1.13.0"
enzyme-shallow-equal "^1.0.1"
has "^1.0.3"
object.assign "^4.1.0"
object.values "^1.1.1"
prop-types "^15.7.2"
react-is "^16.12.0"
react-test-renderer "^16.0.0-0"
semver "^5.7.0"
enzyme-adapter-utils@^1.13.0:
version "1.13.0"
resolved "https://registry.yarnpkg.com/enzyme-adapter-utils/-/enzyme-adapter-utils-1.13.0.tgz#01c885dde2114b4690bf741f8dc94cee3060eb78"
integrity sha512-YuEtfQp76Lj5TG1NvtP2eGJnFKogk/zT70fyYHXK2j3v6CtuHqc8YmgH/vaiBfL8K1SgVVbQXtTcgQZFwzTVyQ==
dependencies:
airbnb-prop-types "^2.15.0"
function.prototype.name "^1.1.2"
object.assign "^4.1.0"
object.fromentries "^2.0.2"
prop-types "^15.7.2"
semver "^5.7.1"
enzyme-shallow-equal@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/enzyme-shallow-equal/-/enzyme-shallow-equal-1.0.1.tgz#7afe03db3801c9b76de8440694096412a8d9d49e"
integrity sha512-hGA3i1so8OrYOZSM9whlkNmVHOicJpsjgTzC+wn2JMJXhq1oO4kA4bJ5MsfzSIcC71aLDKzJ6gZpIxrqt3QTAQ==
dependencies:
has "^1.0.3"
object-is "^1.0.2"
enzyme@^3.11.0:
version "3.11.0"
resolved "https://registry.yarnpkg.com/enzyme/-/enzyme-3.11.0.tgz#71d680c580fe9349f6f5ac6c775bc3e6b7a79c28"
integrity sha512-Dw8/Gs4vRjxY6/6i9wU0V+utmQO9kvh9XLnz3LIudviOnVYDEe2ec+0k+NQoMamn1VrjKgCUOWj5jG/5M5M0Qw==
dependencies:
array.prototype.flat "^1.2.3"
cheerio "^1.0.0-rc.3"
enzyme-shallow-equal "^1.0.1"
function.prototype.name "^1.1.2"
has "^1.0.3"
html-element-map "^1.2.0"
is-boolean-object "^1.0.1"
is-callable "^1.1.5"
is-number-object "^1.0.4"
is-regex "^1.0.5"
is-string "^1.0.5"
is-subset "^0.1.1"
lodash.escape "^4.0.1"
lodash.isequal "^4.5.0"
object-inspect "^1.7.0"
object-is "^1.0.2"
object.assign "^4.1.0"
object.entries "^1.1.1"
object.values "^1.1.1"
raf "^3.4.1"
rst-selector-parser "^2.2.3"
string.prototype.trim "^1.2.1"
equal-length@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/equal-length/-/equal-length-1.0.1.tgz#21ca112d48ab24b4e1e7ffc0e5339d31fdfc274c"
@ -1241,7 +1451,7 @@ error-ex@^1.2.0, error-ex@^1.3.1:
dependencies:
is-arrayish "^0.2.1"
es-abstract@^1.17.0, es-abstract@^1.17.0-next.1, es-abstract@^1.17.5:
es-abstract@^1.17.0, es-abstract@^1.17.0-next.1, es-abstract@^1.17.4, es-abstract@^1.17.5:
version "1.17.5"
resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.17.5.tgz#d8c9d1d66c8981fb9200e2251d799eee92774ae9"
integrity sha512-BR9auzDbySxOcfog0tLECW8l28eRGpDpU3Dm3Hp4q/N+VtLTmyj4EUN088XZWQDW/hzj6sYRDXeOFsaAODKvpg==
@ -1678,11 +1888,25 @@ function-bind@^1.1.1:
resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d"
integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==
function.prototype.name@^1.1.1, function.prototype.name@^1.1.2:
version "1.1.2"
resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.2.tgz#5cdf79d7c05db401591dfde83e3b70c5123e9a45"
integrity sha512-C8A+LlHBJjB2AdcRPorc5JvJ5VUoWlXdEHLOJdCI7kjHEtGTpHQUiqMvCIKUwIsGwZX2jZJy761AXsn356bJQg==
dependencies:
define-properties "^1.1.3"
es-abstract "^1.17.0-next.1"
functions-have-names "^1.2.0"
functional-red-black-tree@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327"
integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=
functions-have-names@^1.2.0:
version "1.2.1"
resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.1.tgz#a981ac397fa0c9964551402cdc5533d7a4d52f91"
integrity sha512-j48B/ZI7VKs3sgeI2cZp7WXWmZXu7Iq5pl5/vptV5N2mq+DGFuS/ulaDjtaoLpYzuD6u8UgrUKHfgo7fDTSiBA==
gensync@^1.0.0-beta.1:
version "1.0.0-beta.1"
resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.1.tgz#58f4361ff987e5ff6e1e7a210827aa371eaac269"
@ -1869,11 +2093,30 @@ hosted-git-info@^2.1.4:
resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.5.tgz#759cfcf2c4d156ade59b0b2dfabddc42a6b9c70c"
integrity sha512-kssjab8CvdXfcXMXVcvsXum4Hwdq9XGtRD3TteMEvEbq0LXyiNQr6AprqKqfeaDXze7SxWvRxdpwE6ku7ikLkg==
html-element-map@^1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/html-element-map/-/html-element-map-1.2.0.tgz#dfbb09efe882806af63d990cf6db37993f099f22"
integrity sha512-0uXq8HsuG1v2TmQ8QkIhzbrqeskE4kn52Q18QJ9iAA/SnHoEKXWiUxHQtclRsCFWEUD2So34X+0+pZZu862nnw==
dependencies:
array-filter "^1.0.0"
html-escaper@^2.0.0:
version "2.0.2"
resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453"
integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==
htmlparser2@^3.9.1:
version "3.10.1"
resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.10.1.tgz#bd679dc3f59897b6a34bb10749c855bb53a9392f"
integrity sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==
dependencies:
domelementtype "^1.3.1"
domhandler "^2.3.0"
domutils "^1.5.1"
entities "^1.1.1"
inherits "^2.0.1"
readable-stream "^3.1.1"
http-cache-semantics@^4.0.0:
version "4.0.3"
resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.0.3.tgz#495704773277eeef6e43f9ab2c2c7d259dda25c5"
@ -1950,7 +2193,7 @@ inflight@^1.0.4:
once "^1.3.0"
wrappy "1"
inherits@2:
inherits@2, 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==
@ -2010,6 +2253,11 @@ is-binary-path@~2.1.0:
dependencies:
binary-extensions "^2.0.0"
is-boolean-object@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.0.1.tgz#10edc0900dd127697a92f6f9807c7617d68ac48e"
integrity sha512-TqZuVwa/sppcrhUCAYkGBk7w0yxfQQnxq28fjkO53tnK9FQXmdwz2JS5+GjsWQ6RByES1K40nI+yDic5c9/aAQ==
is-callable@^1.1.4, is-callable@^1.1.5:
version "1.1.5"
resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.5.tgz#f7e46b596890456db74e7f6e976cb3273d06faab"
@ -2077,6 +2325,11 @@ is-npm@^4.0.0:
resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-4.0.0.tgz#c90dd8380696df87a7a6d823c20d0b12bbe3c84d"
integrity sha512-96ECIfh9xtDDlPylNPXhzjsykHsMJZ18ASpaWzQyBr4YRTcVjUvzaHayDAES2oU/3KpljhHUjtSRNiDwi0F0ig==
is-number-object@^1.0.4:
version "1.0.4"
resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.4.tgz#36ac95e741cf18b283fc1ddf5e83da798e3ec197"
integrity sha512-zohwelOAur+5uXtk8O3GPQ1eAcu4ZX3UwxQhUlfFFMNpUd83gXgjbhJh6HmB6LUNV/ieOLQuDwJO3dWJosUeMw==
is-number@^7.0.0:
version "7.0.0"
resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b"
@ -2116,7 +2369,7 @@ is-reference@^1.1.2:
dependencies:
"@types/estree" "0.0.39"
is-regex@^1.0.5:
is-regex@^1.0.4, is-regex@^1.0.5:
version "1.0.5"
resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.5.tgz#39d589a358bf18967f726967120b8fc1aed74eae"
integrity sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==
@ -2133,6 +2386,11 @@ is-string@^1.0.5:
resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.5.tgz#40493ed198ef3ff477b8c7f92f644ec82a5cd3a6"
integrity sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ==
is-subset@^0.1.1:
version "0.1.1"
resolved "https://registry.yarnpkg.com/is-subset/-/is-subset-0.1.1.tgz#8a59117d932de1de00f245fcdd39ce43f1e939a6"
integrity sha1-ilkRfZMt4d4A8kX83TnOQ/HpOaY=
is-symbol@^1.0.2:
version "1.0.3"
resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.3.tgz#38e1014b9e6329be0de9d24a414fd7441ec61937"
@ -2388,11 +2646,21 @@ lodash.clonedeep@^4.5.0:
resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef"
integrity sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=
lodash.escape@^4.0.1:
version "4.0.1"
resolved "https://registry.yarnpkg.com/lodash.escape/-/lodash.escape-4.0.1.tgz#c9044690c21e04294beaa517712fded1fa88de98"
integrity sha1-yQRGkMIeBClL6qUXcS/e0fqI3pg=
lodash.flattendeep@^4.4.0:
version "4.4.0"
resolved "https://registry.yarnpkg.com/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz#fb030917f86a3134e5bc9bec0d69e0013ddfedb2"
integrity sha1-+wMJF/hqMTTlvJvsDWngAT3f7bI=
lodash.isequal@^4.5.0:
version "4.5.0"
resolved "https://registry.yarnpkg.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz#415c4478f2bcc30120c22ce10ed3226f7d3e18e0"
integrity sha1-QVxEePK8wwEgwizhDtMib30+GOA=
lodash.islength@^4.0.1:
version "4.0.1"
resolved "https://registry.yarnpkg.com/lodash.islength/-/lodash.islength-4.0.1.tgz#4e9868d452575d750affd358c979543dc20ed577"
@ -2403,7 +2671,7 @@ lodash.merge@^4.6.1:
resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a"
integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==
lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.15:
lodash@^4.15.0, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.15:
version "4.17.15"
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548"
integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==
@ -2553,6 +2821,11 @@ moment@^2.18.1:
resolved "https://registry.yarnpkg.com/moment/-/moment-2.24.0.tgz#0d055d53f5052aa653c9f6eb68bb5d12bf5c2b5b"
integrity sha512-bV7f+6l2QigeBBZSM/6yTNq4P2fNpSWj/0e7jQcy87A8e7o2nAfP/34/2ky5Vw4B9S446EtIhodAzkFCcR4dQg==
moo@^0.5.0:
version "0.5.1"
resolved "https://registry.yarnpkg.com/moo/-/moo-0.5.1.tgz#7aae7f384b9b09f620b6abf6f74ebbcd1b65dbc4"
integrity sha512-I1mnb5xn4fO80BH9BLcF0yLypy2UKl+Cb01Fu0hJRkJjlCRtxZMWkTdAtDd5ZqCOxtCkhmRwyI57vWT+1iZ67w==
ms@2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"
@ -2573,6 +2846,17 @@ natural-compare@^1.4.0:
resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7"
integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=
nearley@^2.7.10:
version "2.19.1"
resolved "https://registry.yarnpkg.com/nearley/-/nearley-2.19.1.tgz#4af4006e16645ff800e9f993c3af039857d9dbdc"
integrity sha512-xq47GIUGXxU9vQg7g/y1o1xuKnkO7ev4nRWqftmQrLkfnE/FjRqDaGOUakM8XHPn/6pW3bGjU2wgoJyId90rqg==
dependencies:
commander "^2.19.0"
moo "^0.5.0"
railroad-diagrams "^1.0.0"
randexp "0.4.6"
semver "^5.4.1"
neo-async@^2.6.0:
version "2.6.1"
resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.1.tgz#ac27ada66167fa8849a6addd837f6b189ad2081c"
@ -2618,6 +2902,13 @@ normalize-url@^4.1.0:
resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.5.0.tgz#453354087e6ca96957bd8f5baf753f5982142129"
integrity sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ==
nth-check@~1.0.1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.2.tgz#b2bd295c37e3dd58a3bf0700376663ba4d9cf05c"
integrity sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==
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"
@ -2660,6 +2951,11 @@ object-inspect@^1.7.0:
resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.7.0.tgz#f4f6bd181ad77f006b5ece60bd0b6f398ff74a67"
integrity sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw==
object-is@^1.0.1, object-is@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.0.2.tgz#6b80eb84fe451498f65007982f035a5b445edec4"
integrity sha512-Epah+btZd5wrrfjkJZq1AOB9O6OxUQto45hzFd7lXGrpHPGE0W1k+426yrZV+k6NJOzLNNW/nVsmZdIWsAqoOQ==
object-keys@^1.0.11, object-keys@^1.0.12, object-keys@^1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e"
@ -2675,7 +2971,7 @@ object.assign@^4.1.0:
has-symbols "^1.0.0"
object-keys "^1.0.11"
object.entries@^1.1.1:
object.entries@^1.1.0, object.entries@^1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.1.tgz#ee1cf04153de02bb093fec33683900f57ce5399b"
integrity sha512-ilqR7BgdyZetJutmDPfXCDffGa0/Yzl2ivVNpbx/g4UeWrCdRnFDUBrKJGLhGieRHDATnyZXWBeCb29k9CJysQ==
@ -2871,6 +3167,13 @@ parse-ms@^2.1.0:
resolved "https://registry.yarnpkg.com/parse-ms/-/parse-ms-2.1.0.tgz#348565a753d4391fa524029956b172cb7753097d"
integrity sha512-kHt7kzLoS9VBZfUsiKjv43mr91ea+U05EyKkEtqp7vNbHxmaVuEqN7XxeEVnGrMtYOAxGrDElSi96K7EgO1zCA==
parse5@^3.0.1:
version "3.0.3"
resolved "https://registry.yarnpkg.com/parse5/-/parse5-3.0.3.tgz#042f792ffdd36851551cf4e9e066b3874ab45b5c"
integrity sha512-rgO9Zg5LLLkfJF9E6CCmXlSE4UVceloys8JrFqCcHloC3usd/kJCyPDwH2SOlzix2j3xaP9sUX3e8+kvkuleAA==
dependencies:
"@types/node" "*"
path-exists@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515"
@ -2913,6 +3216,11 @@ path-type@^4.0.0:
resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b"
integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==
performance-now@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b"
integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=
picomatch@^2.0.4, picomatch@^2.0.5:
version "2.1.1"
resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.1.1.tgz#ecdfbea7704adb5fe6fb47f9866c4c0e15e905c5"
@ -3011,6 +3319,15 @@ progress@^2.0.0, progress@^2.0.3:
resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8"
integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==
prop-types-exact@^1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/prop-types-exact/-/prop-types-exact-1.2.0.tgz#825d6be46094663848237e3925a98c6e944e9869"
integrity sha512-K+Tk3Kd9V0odiXFP9fwDHUYRyvK3Nun3GVyPapSIs5OBkITAm15W0CPFD/YKTkMUAbc0b9CUwRQp2ybiBIq+eA==
dependencies:
has "^1.0.3"
object.assign "^4.1.0"
reflect.ownkeys "^0.2.0"
prop-types@^15.6.2, prop-types@^15.7.2:
version "15.7.2"
resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.7.2.tgz#52c41e75b8c87e72b9d9360e0206b99dcbffa6c5"
@ -3045,6 +3362,26 @@ qrcode-generator@^1.4.3:
resolved "https://registry.yarnpkg.com/qrcode-generator/-/qrcode-generator-1.4.4.tgz#63f771224854759329a99048806a53ed278740e7"
integrity sha512-HM7yY8O2ilqhmULxGMpcHSF1EhJJ9yBj8gvDEuZ6M+KGJ0YY2hKpnXvRD+hZPLrDVck3ExIGhmPtSdcjC+guuw==
raf@^3.4.1:
version "3.4.1"
resolved "https://registry.yarnpkg.com/raf/-/raf-3.4.1.tgz#0742e99a4a6552f445d73e3ee0328af0ff1ede39"
integrity sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA==
dependencies:
performance-now "^2.1.0"
railroad-diagrams@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/railroad-diagrams/-/railroad-diagrams-1.0.0.tgz#eb7e6267548ddedfb899c1b90e57374559cddb7e"
integrity sha1-635iZ1SN3t+4mcG5Dlc3RVnN234=
randexp@0.4.6:
version "0.4.6"
resolved "https://registry.yarnpkg.com/randexp/-/randexp-0.4.6.tgz#e986ad5e5e31dae13ddd6f7b3019aa7c87f60ca3"
integrity sha512-80WNmd9DA0tmZrw9qQa62GPPWfuXJknrmVmLcxvq4uZBdYqb1wYoKTmnlGUchvVWe0XiLupYkBoXVOxz3C8DYQ==
dependencies:
discontinuous-range "1.0.0"
ret "~0.1.10"
rc@^1.2.8:
version "1.2.8"
resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed"
@ -3065,11 +3402,26 @@ react-dom@^16.13.1:
prop-types "^15.6.2"
scheduler "^0.19.1"
react-is@^16.12.0, react-is@^16.8.6, react-is@^16.9.0:
version "16.13.1"
resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4"
integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==
react-is@^16.8.1:
version "16.12.0"
resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.12.0.tgz#2cc0fe0fba742d97fd527c42a13bec4eeb06241c"
integrity sha512-rPCkf/mWBtKc97aLL9/txD8DZdemK0vkA3JMLShjlJB3Pj3s+lpf1KaBzMfQrAmhMQB0n1cU/SUGgKKBCe837Q==
react-test-renderer@^16.0.0-0:
version "16.13.1"
resolved "https://registry.yarnpkg.com/react-test-renderer/-/react-test-renderer-16.13.1.tgz#de25ea358d9012606de51e012d9742e7f0deabc1"
integrity sha512-Sn2VRyOK2YJJldOqoh8Tn/lWQ+ZiKhyZTPtaO0Q6yNj+QDbmRkVFap6pZPy3YQk8DScRDfyqm/KxKYP9gCMRiQ==
dependencies:
object-assign "^4.1.1"
prop-types "^15.6.2"
react-is "^16.8.6"
scheduler "^0.19.1"
react@^16.13.1:
version "16.13.1"
resolved "https://registry.yarnpkg.com/react/-/react-16.13.1.tgz#2e818822f1a9743122c063d6410d85c1e3afe48e"
@ -3106,6 +3458,15 @@ read-pkg@^5.2.0:
parse-json "^5.0.0"
type-fest "^0.6.0"
readable-stream@^3.1.1:
version "3.6.0"
resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198"
integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==
dependencies:
inherits "^2.0.3"
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"
@ -3120,6 +3481,11 @@ rechoir@^0.6.2:
dependencies:
resolve "^1.1.6"
reflect.ownkeys@^0.2.0:
version "0.2.0"
resolved "https://registry.yarnpkg.com/reflect.ownkeys/-/reflect.ownkeys-0.2.0.tgz#749aceec7f3fdf8b63f927a04809e90c5c0b3460"
integrity sha1-dJrO7H8/34tj+SegSAnpDFwLNGA=
regenerator-runtime@^0.13.4:
version "0.13.5"
resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz#d878a1d094b4306d10b9096484b33ebd55e26697"
@ -3233,6 +3599,11 @@ restore-cursor@^3.1.0:
onetime "^5.1.0"
signal-exit "^3.0.2"
ret@~0.1.10:
version "0.1.15"
resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc"
integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==
reusify@^1.0.0:
version "1.0.4"
resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76"
@ -3307,6 +3678,14 @@ rollup@^2.3.3:
optionalDependencies:
fsevents "~2.1.2"
rst-selector-parser@^2.2.3:
version "2.2.3"
resolved "https://registry.yarnpkg.com/rst-selector-parser/-/rst-selector-parser-2.2.3.tgz#81b230ea2fcc6066c89e3472de794285d9b03d91"
integrity sha1-gbIw6i/MYGbInjRy3nlChdmwPZE=
dependencies:
lodash.flattendeep "^4.4.0"
nearley "^2.7.10"
run-async@^2.4.0:
version "2.4.0"
resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.4.0.tgz#e59054a5b86876cfae07f431d18cbaddc594f1e8"
@ -3326,7 +3705,7 @@ rxjs@^6.5.3:
dependencies:
tslib "^1.9.0"
safe-buffer@^5.0.1:
safe-buffer@^5.0.1, safe-buffer@~5.2.0:
version "5.2.0"
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.0.tgz#b74daec49b1148f88c64b68d49b1e815c1f2f519"
integrity sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==
@ -3356,7 +3735,7 @@ semver-diff@^3.1.1:
dependencies:
semver "^6.3.0"
"semver@2 || 3 || 4 || 5", semver@^5.4.1, semver@^5.5.0, semver@^5.5.1:
"semver@2 || 3 || 4 || 5", semver@^5.4.1, semver@^5.5.0, semver@^5.5.1, semver@^5.7.0, semver@^5.7.1:
version "5.7.1"
resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7"
integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==
@ -3577,6 +3956,15 @@ string.prototype.matchall@^4.0.2:
regexp.prototype.flags "^1.3.0"
side-channel "^1.0.2"
string.prototype.trim@^1.2.1:
version "1.2.1"
resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.1.tgz#141233dff32c82bfad80684d7e5f0869ee0fb782"
integrity sha512-MjGFEeqixw47dAMFMtgUro/I0+wNqZB5GKXGt1fFr24u3TzDXCPu7J9Buppzoe3r/LqkSDLDDJzE15RGWDGAVw==
dependencies:
define-properties "^1.1.3"
es-abstract "^1.17.0-next.1"
function-bind "^1.1.1"
string.prototype.trimend@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.0.tgz#ee497fd29768646d84be2c9b819e292439614373"
@ -3611,6 +3999,13 @@ string.prototype.trimstart@^1.0.0:
define-properties "^1.1.3"
es-abstract "^1.17.5"
string_decoder@^1.1.1:
version "1.3.0"
resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e"
integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==
dependencies:
safe-buffer "~5.2.0"
strip-ansi@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f"
@ -3913,6 +4308,11 @@ url-parse-lax@^3.0.0:
dependencies:
prepend-http "^2.0.0"
util-deprecate@^1.0.1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=
uuid@^3.3.3:
version "3.4.0"
resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee"