From 5a0e067b2dc86fa0c1e58edd2f756c4767124fed Mon Sep 17 00:00:00 2001 From: Michael Koppen Date: Thu, 24 Sep 2020 15:55:01 +0200 Subject: [PATCH] chore: Use @formatjs/cli instead of babel-plugin-react-intl (#9695) Co-authored-by: Florian Imdahl --- ...translations.yml => sync_translations.yml} | 4 +- babel.config.js | 6 - bin/translations_extract_formatter.js | 30 ++++ bin/translations_normalize.ts | 42 ----- crowdin.yaml | 5 +- package.json | 4 +- src/i18n/en-US.json | 2 +- src/script/strings.ts | 2 +- yarn.lock | 170 +++++++++--------- 9 files changed, 118 insertions(+), 147 deletions(-) rename .github/workflows/{download_translations.yml => sync_translations.yml} (96%) create mode 100644 bin/translations_extract_formatter.js delete mode 100644 bin/translations_normalize.ts diff --git a/.github/workflows/download_translations.yml b/.github/workflows/sync_translations.yml similarity index 96% rename from .github/workflows/download_translations.yml rename to .github/workflows/sync_translations.yml index eb1664d1f62..e53f72f73ab 100644 --- a/.github/workflows/download_translations.yml +++ b/.github/workflows/sync_translations.yml @@ -1,4 +1,4 @@ -name: Download translations +name: Sync translations on: push: @@ -7,7 +7,7 @@ on: - cron: '0 8 * * *' jobs: - download_translations: + sync_translations: runs-on: ubuntu-latest steps: diff --git a/babel.config.js b/babel.config.js index fbcf1974ce4..48d24bc1a23 100644 --- a/babel.config.js +++ b/babel.config.js @@ -30,12 +30,6 @@ module.exports = { '@babel/plugin-proposal-nullish-coalescing-operator', '@babel/plugin-proposal-optional-chaining', '@babel/plugin-syntax-dynamic-import', - [ - 'babel-plugin-react-intl', - { - messagesDir: './temp/i18n', - }, - ], ], presets: [ '@babel/preset-react', diff --git a/bin/translations_extract_formatter.js b/bin/translations_extract_formatter.js new file mode 100644 index 00000000000..fad4af818bd --- /dev/null +++ b/bin/translations_extract_formatter.js @@ -0,0 +1,30 @@ +/* + * Wire + * Copyright (C) 2020 Wire Swiss GmbH + * + * This program 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 of the License, or + * (at your option) any later version. + * + * This program 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 this program. If not, see http://www.gnu.org/licenses/. + * + */ + +const webappTranslations = require('../src/i18n/en-US.json'); + +exports.format = function (messages) { + return Object.entries(messages).reduce( + (accumulator, [key, value]) => ({ + ...accumulator, + [key]: value.defaultMessage, + }), + {...webappTranslations}, + ); +}; diff --git a/bin/translations_normalize.ts b/bin/translations_normalize.ts deleted file mode 100644 index 733c420c95a..00000000000 --- a/bin/translations_normalize.ts +++ /dev/null @@ -1,42 +0,0 @@ -/* - * Wire - * Copyright (C) 2019 Wire Swiss GmbH - * - * This program 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 of the License, or - * (at your option) any later version. - * - * This program 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 this program. If not, see http://www.gnu.org/licenses/. - * - */ - -import fs from 'fs-extra'; -// @ts-ignore -import authTranslations from '../temp/i18n/src/script/strings.json'; -import webappTranslations from '../src/i18n/en-US.json'; - -interface Translation { - defaultMessage: string; - id: string; -} - -type Translations = Record; - -const normalizedAuthTranslations = authTranslations.reduce( - (accumulator: Translations, object: Translation): Translations => { - accumulator[object.id] = object.defaultMessage; - return accumulator; - }, - {}, -); - -const mergedTranslations = {...webappTranslations, ...normalizedAuthTranslations}; - -fs.outputJson('src/i18n/en-US.json', mergedTranslations, {spaces: 2}).catch(err => console.error(err)); diff --git a/crowdin.yaml b/crowdin.yaml index 229d0653f50..01f3c8a1b0b 100644 --- a/crowdin.yaml +++ b/crowdin.yaml @@ -2,7 +2,6 @@ project_id: 342359 base_path: . files: - - - source: 'src/i18n/en-US.json' - translation: '%locale%.json' + - source: '/src/i18n/en-US.json' + translation: '/src/i18n/%locale%.json' update_option: 'update_as_unapproved' diff --git a/package.json b/package.json index 54e91e024af..2f317acca4c 100644 --- a/package.json +++ b/package.json @@ -58,6 +58,7 @@ "@babel/preset-react": "7.10.4", "@babel/preset-typescript": "7.10.4", "@emotion/babel-preset-css-prop": "10.0.27", + "@formatjs/cli": "2.11.3", "@hot-loader/react-dom": "16.13.0", "@types/adm-zip": "0.4.33", "@types/dexie-batch": "0.4.1", @@ -95,7 +96,6 @@ "autoprefixer": "9.8.6", "babel-eslint": "10.1.0", "babel-loader": "8.1.0", - "babel-plugin-react-intl": "7.9.4", "concurrently": "5.3.0", "cross-env": "7.0.2", "cspell": "4.1.0", @@ -229,7 +229,7 @@ "test:server": "cd server && yarn test", "test:types": "tsc --noEmit && cd server && tsc --noEmit", "translate:extract": "i18next-scanner 'src/{page,script}/**/*.{js,html,htm}'", - "translate:merge": "yarn bundle:prod && ts-node ./bin/translations_normalize.ts", + "translate:merge": "formatjs extract --format './bin/translations_extract_formatter.js' --out-file './src/i18n/en-US.json' './src/script/strings.ts'", "translate:upload": "yarn translate:merge && ts-node ./bin/translations_upload.ts", "translate:download": "ts-node ./bin/translations_download.ts" }, diff --git a/src/i18n/en-US.json b/src/i18n/en-US.json index d33f170af1c..c88abf96a12 100644 --- a/src/i18n/en-US.json +++ b/src/i18n/en-US.json @@ -136,7 +136,7 @@ "authVerifyAccountHeadline": "Add email address and password.", "authVerifyAccountLogout": "Log out", "authVerifyCodeChangePhone": "Change phone number", - "authVerifyCodeDescription": "Enter the verification code\nwe sent to {number}.", + "authVerifyCodeDescription": "Enter the verification code we sent to {number}.", "authVerifyCodeResend": "No code showing up?", "authVerifyCodeResendDetail": "Resend", "authVerifyCodeResendTimer": "You can request a new code {{expiration}}.", diff --git a/src/script/strings.ts b/src/script/strings.ts index 6aa8ab0e1ec..073f5d5ccec 100644 --- a/src/script/strings.ts +++ b/src/script/strings.ts @@ -743,7 +743,7 @@ export const phoneLoginStrings = defineMessages({ id: 'authVerifyCodeChangePhone', }, verifyCodeDescription: { - defaultMessage: 'Enter the verification code\nwe sent to {number}.', + defaultMessage: 'Enter the verification code we sent to {number}.', id: 'authVerifyCodeDescription', }, verifyCodeResend: { diff --git a/yarn.lock b/yarn.lock index 6959b4e10ad..f685f88d14c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -18,7 +18,7 @@ invariant "^2.2.4" semver "^5.5.0" -"@babel/core@7.11.6", "@babel/core@>=7.9.0", "@babel/core@^7.7.5", "@babel/core@^7.8.4", "@babel/core@^7.9.0": +"@babel/core@7.11.6", "@babel/core@>=7.9.0", "@babel/core@^7.7.5", "@babel/core@^7.8.4": version "7.11.6" resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.11.6.tgz#3a9455dc7387ff1bac45770650bc13ba04a15651" integrity sha512-Wpcv03AGnmkgm6uS6k8iwhIwTrcP0m17TL1n1sy7qD0qelDu4XNeW0dN0mHfa+Gei211yDaLoEe/VlbXQzM4Bg== @@ -311,7 +311,7 @@ chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/parser@^7.1.0", "@babel/parser@^7.10.4", "@babel/parser@^7.11.5", "@babel/parser@^7.7.0", "@babel/parser@^7.7.5", "@babel/parser@^7.9.0": +"@babel/parser@^7.10.4", "@babel/parser@^7.11.5", "@babel/parser@^7.7.0", "@babel/parser@^7.7.5", "@babel/parser@^7.9.0": version "7.11.5" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.11.5.tgz#c7ff6303df71080ec7a4f5b8c003c58f1cf51037" integrity sha512-X9rD8qqm695vgmeaQ4fvz/o3+Wk4ZzQvSHkDBgpYKxpD4qTAUm88ZKtHkVqIOsYFFbIQ6wQYhC6q7pjqVK0E0Q== @@ -1000,7 +1000,7 @@ globals "^11.1.0" lodash "^4.17.19" -"@babel/types@^7.0.0", "@babel/types@^7.10.4", "@babel/types@^7.10.5", "@babel/types@^7.11.0", "@babel/types@^7.11.5", "@babel/types@^7.3.0", "@babel/types@^7.4.4", "@babel/types@^7.7.0", "@babel/types@^7.9.0", "@babel/types@^7.9.5": +"@babel/types@^7.10.4", "@babel/types@^7.10.5", "@babel/types@^7.11.0", "@babel/types@^7.11.5", "@babel/types@^7.4.4", "@babel/types@^7.7.0", "@babel/types@^7.9.0": version "7.11.5" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.11.5.tgz#d9de577d01252d77c6800cee039ee64faf75662d" integrity sha512-bvM7Qz6eKnJVFIn+1LPtjlBFPVN5jNDc1XmN15vWe7Q3DPBufWWsLiIvUu7xW87uTG6QoggpIDnUgLQvPheU+Q== @@ -1119,6 +1119,26 @@ minimatch "^3.0.4" strip-json-comments "^3.1.1" +"@formatjs/cli@2.11.3": + version "2.11.3" + resolved "https://registry.yarnpkg.com/@formatjs/cli/-/cli-2.11.3.tgz#b06a740520aa0d5345adb2330d13447b4292840c" + integrity sha512-7aV3B/16GkHX5Stna9GoKU2o6/At0zxW7PYATRZujf6gbSsIUMHpUZWnMNk0qaJtXeU+3HLsSquRflCaQruoJw== + dependencies: + "@formatjs/ts-transformer" "^2.10.1" + "@types/json-stable-stringify" "^1.0.32" + "@types/lodash" "^4.14.150" + "@types/loud-rejection" "^2.0.0" + "@types/node" "14" + chalk "^4.0.0" + commander "^6.1.0" + fast-glob "^3.2.4" + fs-extra "^9.0.0" + intl-messageformat-parser "^6.0.7" + json-stable-stringify "^1.0.1" + lodash "^4.17.15" + loud-rejection "^2.2.0" + typescript "^4.0" + "@formatjs/ecma402-abstract@^1.2.2": version "1.2.2" resolved "https://registry.yarnpkg.com/@formatjs/ecma402-abstract/-/ecma402-abstract-1.2.2.tgz#4810bdbd696d3805c535fd0620b7c8f45ab3164f" @@ -1138,13 +1158,6 @@ dependencies: "@formatjs/ecma402-abstract" "^1.2.2" -"@formatjs/intl-numberformat@^5.5.2": - version "5.6.2" - resolved "https://registry.yarnpkg.com/@formatjs/intl-numberformat/-/intl-numberformat-5.6.2.tgz#2e96c0bf944f3b70fa30d3c21c2b76f57a101899" - integrity sha512-+0dXoe8D/7Ci+8/NI4VF0JxDz4GaK5bCNYMEBOYFM+VFAGGWrwyOuEycR+b1so3MNqePou4cb7lLVr+vQfAOcg== - dependencies: - "@formatjs/ecma402-abstract" "^1.2.2" - "@formatjs/intl-relativetimeformat@^7.2.7": version "7.2.7" resolved "https://registry.yarnpkg.com/@formatjs/intl-relativetimeformat/-/intl-relativetimeformat-7.2.7.tgz#dce72ebafb1ca0bf14673fab3b1aad145e1abac6" @@ -1165,7 +1178,7 @@ intl-messageformat "^9.3.8" intl-messageformat-parser "^6.0.7" -"@formatjs/ts-transformer@^2.6.0": +"@formatjs/ts-transformer@^2.10.1": version "2.10.1" resolved "https://registry.yarnpkg.com/@formatjs/ts-transformer/-/ts-transformer-2.10.1.tgz#883d77c37a6752e3491be3ffdd705beb85cfd6f8" integrity sha512-d5zpKWnk52bgA7Xf3KteiJ4r5RnDnIGUoUXD32yFiJVZRpPyUeEcuuyBS/1mxb7UDRpFB2gDqimYlqhjeURozA== @@ -1407,39 +1420,6 @@ dependencies: "@types/node" "*" -"@types/babel__core@^7.1.7": - version "7.1.7" - resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.7.tgz#1dacad8840364a57c98d0dd4855c6dd3752c6b89" - integrity sha512-RL62NqSFPCDK2FM1pSDH0scHpJvsXtZNiYlMB73DgPBaG1E38ZYVL+ei5EkWRbr+KC4YNiAUNBnRj+bgwpgjMw== - dependencies: - "@babel/parser" "^7.1.0" - "@babel/types" "^7.0.0" - "@types/babel__generator" "*" - "@types/babel__template" "*" - "@types/babel__traverse" "*" - -"@types/babel__generator@*": - version "7.6.0" - resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.6.0.tgz#f1ec1c104d1bb463556ecb724018ab788d0c172a" - integrity sha512-c1mZUu4up5cp9KROs/QAw0gTeHrw/x7m52LcnvMxxOZ03DmLwPV0MlGmlgzV3cnSdjhJOZsj7E7FHeioai+egw== - dependencies: - "@babel/types" "^7.0.0" - -"@types/babel__template@*": - version "7.0.2" - resolved "https://registry.yarnpkg.com/@types/babel__template/-/babel__template-7.0.2.tgz#4ff63d6b52eddac1de7b975a5223ed32ecea9307" - integrity sha512-/K6zCpeW7Imzgab2bLkLEbz0+1JlFSrUMdw7KoIIu+IUdu51GWaBZpd3y1VXGVXzynvGa4DaIaxNZHiON3GXUg== - dependencies: - "@babel/parser" "^7.1.0" - "@babel/types" "^7.0.0" - -"@types/babel__traverse@*": - version "7.0.7" - resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.0.7.tgz#2496e9ff56196cc1429c72034e07eab6121b6f3f" - integrity sha512-CeBpmX1J8kWLcDEnI3Cl2Eo6RfbGvzUctA+CjZUhOKDFbLfcr7fc4usEqLNWetrlJd7RhAkyYe2czXop4fICpw== - dependencies: - "@babel/types" "^7.3.0" - "@types/chai@4.2.11": version "4.2.11" resolved "https://registry.yarnpkg.com/@types/chai/-/chai-4.2.11.tgz#d3614d6c5f500142358e6ed24e1bf16657536c50" @@ -1520,13 +1500,6 @@ dependencies: "@types/node" "*" -"@types/fs-extra@^9.0.1": - version "9.0.1" - resolved "https://registry.yarnpkg.com/@types/fs-extra/-/fs-extra-9.0.1.tgz#91c8fc4c51f6d5dbe44c2ca9ab09310bd00c7918" - integrity sha512-B42Sxuaz09MhC3DDeW5kubRcQ5by4iuVQ0cRRWM2lggLzAa/KVom0Aft/208NgMvNQQZ86s5rVcqDdn/SH0/mg== - dependencies: - "@types/node" "*" - "@types/generate-changelog@1.8.0": version "1.8.0" resolved "https://registry.yarnpkg.com/@types/generate-changelog/-/generate-changelog-1.8.0.tgz#ed9d3f0b3255ab64c3ab022ec65792d7a5bf8c6f" @@ -1577,6 +1550,11 @@ resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.6.tgz#f4c7ec43e81b319a9815115031709f26987891f0" integrity sha512-3c+yGKvVP5Y9TYBEibGNR+kLtijnj7mYrXRg+WpFb2X9xm04g/DXYkfg4hmzJQosc9snFNUPkbYIhu+KAm6jJw== +"@types/json-stable-stringify@^1.0.32": + version "1.0.32" + resolved "https://registry.yarnpkg.com/@types/json-stable-stringify/-/json-stable-stringify-1.0.32.tgz#121f6917c4389db3923640b2e68de5fa64dda88e" + integrity sha512-q9Q6+eUEGwQkv4Sbst3J4PNgDOvpuVuKj79Hl/qnmBMEIPzB5QoFRUtjcgcg2xNUZyYUGXBk5wYIBKHt0A+Mxw== + "@types/json5@^0.0.29": version "0.0.29" resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" @@ -1611,11 +1589,23 @@ resolved "https://registry.yarnpkg.com/@types/linkify-it/-/linkify-it-2.1.0.tgz#ea3dd64c4805597311790b61e872cbd1ed2cd806" integrity sha512-Q7DYAOi9O/+cLLhdaSvKdaumWyHbm7HAk/bFwwyTuU0arR5yyCeW5GOoqt4tJTpDRxhpx9Q8kQL6vMpuw9hDSw== +"@types/lodash@^4.14.150": + version "4.14.161" + resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.161.tgz#a21ca0777dabc6e4f44f3d07f37b765f54188b18" + integrity sha512-EP6O3Jkr7bXvZZSZYlsgt5DIjiGr0dXP1/jVEwVLTFgg0d+3lWVQkRavYVQszV7dYUwvg0B8R0MBDpcmXg7XIA== + "@types/long@4.0.1", "@types/long@^4.0.0", "@types/long@^4.0.1": version "4.0.1" resolved "https://registry.yarnpkg.com/@types/long/-/long-4.0.1.tgz#459c65fa1867dafe6a8f322c4c51695663cc55e9" integrity sha512-5tXH6Bx/kNGd3MgffdmP4dy2Z+G4eaXw0SE81Tq3BNadtnMR5/ySMzX4SLEzHJzSmPNn4HIdpQsBvXMUykr58w== +"@types/loud-rejection@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@types/loud-rejection/-/loud-rejection-2.0.0.tgz#271bb21c63f51776e1156604cda3b21a2d3f60f3" + integrity sha512-oTHISsIybJGoh3b3Ay/10csbAd2k0su7G7DGrE1QWciC+IdydPm0WMw1+Gr9YMYjPiJ5poB3g5Ev73IlLoavLw== + dependencies: + loud-rejection "*" + "@types/markdown-it@10.0.2": version "10.0.2" resolved "https://registry.yarnpkg.com/@types/markdown-it/-/markdown-it-10.0.2.tgz#f93334b9c7821ddb19865dfd91ecf688094c2626" @@ -1649,6 +1639,11 @@ resolved "https://registry.yarnpkg.com/@types/node/-/node-13.13.4.tgz#1581d6c16e3d4803eb079c87d4ac893ee7501c2c" integrity sha512-x26ur3dSXgv5AwKS0lNfbjpCakGIduWU1DU91Zz58ONRWrIKGunmZBNv4P7N+e27sJkiGDsw/3fT4AtsqQBrBA== +"@types/node@14": + version "14.11.2" + resolved "https://registry.yarnpkg.com/@types/node/-/node-14.11.2.tgz#2de1ed6670439387da1c9f549a2ade2b0a799256" + integrity sha512-jiE3QIxJ8JLNcb1Ps6rDbysDhN4xa8DJJvuC9prr6w+1tIh+QAbYyNF3tyiZNLDBIuBCf4KEcV2UvQm/V60xfA== + "@types/node@^10.1.0": version "10.14.22" resolved "https://registry.yarnpkg.com/@types/node/-/node-10.14.22.tgz#34bcdf6b6cb5fc0db33d24816ad9d3ece22feea4" @@ -1752,13 +1747,6 @@ dependencies: "@types/node" "*" -"@types/schema-utils@^2.4.0": - version "2.4.0" - resolved "https://registry.yarnpkg.com/@types/schema-utils/-/schema-utils-2.4.0.tgz#9983012045d541dcee053e685a27c9c87c840fcd" - integrity sha512-454hrj5gz/FXcUE20ygfEiN4DxZ1sprUo0V1gqIqkNZ/CzoEzAZEll2uxMsuyz6BYjiQan4Aa65xbTemfzW9hQ== - dependencies: - schema-utils "*" - "@types/sdp-transform@2.4.4": version "2.4.4" resolved "https://registry.yarnpkg.com/@types/sdp-transform/-/sdp-transform-2.4.4.tgz#e7d3b4323d1ae9fab8199508effa1620279bbf1a" @@ -2922,22 +2910,6 @@ babel-plugin-macros@^2.0.0: cosmiconfig "^5.2.0" resolve "^1.10.0" -babel-plugin-react-intl@7.9.4: - version "7.9.4" - resolved "https://registry.yarnpkg.com/babel-plugin-react-intl/-/babel-plugin-react-intl-7.9.4.tgz#1fc9ab50470d41b934df50d8f436578ee1732cb0" - integrity sha512-cMKrHEXrw43yT4M89Wbgq8A8N8lffSquj1Piwov/HVukR7jwOw8gf9btXNsQhT27ccyqEwy+M286JQYy0jby2g== - dependencies: - "@babel/core" "^7.9.0" - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/types" "^7.9.5" - "@formatjs/ts-transformer" "^2.6.0" - "@types/babel__core" "^7.1.7" - "@types/fs-extra" "^9.0.1" - "@types/schema-utils" "^2.4.0" - fs-extra "^9.0.0" - intl-messageformat-parser "^5.3.7" - schema-utils "^2.6.6" - babel-plugin-syntax-jsx@^6.18.0: version "6.18.0" resolved "https://registry.yarnpkg.com/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz#0af32a9a6e13ca7a3fd5069e62d7b0f58d0d8946" @@ -3885,6 +3857,11 @@ commander@^6.0.0: resolved "https://registry.yarnpkg.com/commander/-/commander-6.0.0.tgz#2b270da94f8fb9014455312f829a1129dbf8887e" integrity sha512-s7EA+hDtTYNhuXkTlhqew4txMZVdszBmKWSPEMxGr8ru8JXR7bLUFIAtPhcSuFdJQ0ILMxnJi8GkQL0yvDy/YA== +commander@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-6.1.0.tgz#f8d722b78103141006b66f4c7ba1e97315ba75bc" + integrity sha512-wl7PNrYWd2y5mp1OK/LhTlv8Ff4kQJQRXXAvF+uU/TPNiVJUxZLRYGj/B0y/lPGAVcSbJqH2Za/cvHmrPMC8mA== + comment-json@^3.0.3: version "3.0.3" resolved "https://registry.yarnpkg.com/comment-json/-/comment-json-3.0.3.tgz#0cadacd6278602b57b8c51b1814dc5d311d228c4" @@ -7281,13 +7258,6 @@ interpret@~1.1.0: resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.1.0.tgz#7ed1b1410c6a0e0f78cf95d3b8440c63f78b8614" integrity sha1-ftGxQQxqDg94z5XTuEQMY/eLhhQ= -intl-messageformat-parser@^5.3.7: - version "5.5.1" - resolved "https://registry.yarnpkg.com/intl-messageformat-parser/-/intl-messageformat-parser-5.5.1.tgz#f09a692755813e6220081e3374df3fb1698bd0c6" - integrity sha512-TvB3LqF2VtP6yI6HXlRT5TxX98HKha6hCcrg9dwlPwNaedVNuQA9KgBdtWKgiyakyCTYHQ+KJeFEstNKfZr64w== - dependencies: - "@formatjs/intl-numberformat" "^5.5.2" - intl-messageformat-parser@^6.0.7: version "6.0.7" resolved "https://registry.yarnpkg.com/intl-messageformat-parser/-/intl-messageformat-parser-6.0.7.tgz#de57a03466e1441b7cbfd99a02ace108745ef133" @@ -7996,6 +7966,13 @@ json-stable-stringify-without-jsonify@^1.0.1: resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= +json-stable-stringify@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz#9a759d39c5f2ff503fd5300646ed445f88c4f9af" + integrity sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8= + dependencies: + jsonify "~0.0.0" + json-stringify-safe@~5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" @@ -8031,6 +8008,11 @@ jsonfile@^6.0.1: optionalDependencies: graceful-fs "^4.1.6" +jsonify@~0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73" + integrity sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM= + jsprim@^1.2.2: version "1.4.1" resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" @@ -8559,6 +8541,14 @@ loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.2.0, loose-envify@^1.3 dependencies: js-tokens "^3.0.0 || ^4.0.0" +loud-rejection@*, loud-rejection@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/loud-rejection/-/loud-rejection-2.2.0.tgz#4255eb6e9c74045b0edc021fa7397ab655a8517c" + integrity sha512-S0FayMXku80toa5sZ6Ro4C+s+EtFDCsyJNG/AzFMfX3AxD5Si4dZsgzm/kKnbOxHl5Cv8jBlno8+3XYIh2pNjQ== + dependencies: + currently-unhandled "^0.4.1" + signal-exit "^3.0.2" + loud-rejection@^1.0.0: version "1.6.0" resolved "https://registry.yarnpkg.com/loud-rejection/-/loud-rejection-1.6.0.tgz#5b46f80147edee578870f086d04821cf998e551f" @@ -11840,15 +11830,6 @@ scheduler@^0.19.0, scheduler@^0.19.1: loose-envify "^1.1.0" object-assign "^4.1.1" -schema-utils@*, schema-utils@^2.6.5, schema-utils@^2.6.6, schema-utils@^2.7.1: - version "2.7.1" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.7.1.tgz#1ca4f32d1b24c590c203b8e7a50bf0ea4cd394d7" - integrity sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg== - dependencies: - "@types/json-schema" "^7.0.5" - ajv "^6.12.4" - ajv-keywords "^3.5.2" - schema-utils@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-0.3.0.tgz#f5877222ce3e931edae039f17eb3716e7137f8cf" @@ -11865,6 +11846,15 @@ schema-utils@^1.0.0: ajv-errors "^1.0.0" ajv-keywords "^3.1.0" +schema-utils@^2.6.5, schema-utils@^2.7.1: + version "2.7.1" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.7.1.tgz#1ca4f32d1b24c590c203b8e7a50bf0ea4cd394d7" + integrity sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg== + dependencies: + "@types/json-schema" "^7.0.5" + ajv "^6.12.4" + ajv-keywords "^3.5.2" + scss-tokenizer@^0.2.3: version "0.2.3" resolved "https://registry.yarnpkg.com/scss-tokenizer/-/scss-tokenizer-0.2.3.tgz#8eb06db9a9723333824d3f5530641149847ce5d1"