From e921b3cf9a397080a2d681463cb44c3f1bfe2ab9 Mon Sep 17 00:00:00 2001 From: John Cowen Date: Tue, 15 Dec 2020 18:29:32 +0000 Subject: [PATCH] ui: Install ember-intl (#9399) * ui: Install ember-intl Also: 1. Removes our own format-number in order to use ember-intl's instead 2. Moves format-time to format-short-time so as to not clash with ember-intls own format-time --- ui/packages/consul-ui/.template-lintrc.js | 2 + .../consul/lock-session/list/index.hbs | 2 +- ui/packages/consul-ui/app/formats.js | 31 ++++ .../consul-ui/app/helpers/format-number.js | 10 -- .../{format-time.js => format-short-time.js} | 0 ui/packages/consul-ui/config/ember-intl.js | 95 ++++++++++++ ui/packages/consul-ui/package.json | 1 + .../acceptance/dc/services/index.feature | 2 +- .../integration/helpers/format-number-test.js | 16 -- ...time-test.js => format-short-time-test.js} | 4 +- ui/packages/consul-ui/translations/en-us.yaml | 1 + ui/yarn.lock | 144 +++++++++++++++++- 12 files changed, 272 insertions(+), 36 deletions(-) create mode 100644 ui/packages/consul-ui/app/formats.js delete mode 100644 ui/packages/consul-ui/app/helpers/format-number.js rename ui/packages/consul-ui/app/helpers/{format-time.js => format-short-time.js} (100%) create mode 100644 ui/packages/consul-ui/config/ember-intl.js delete mode 100644 ui/packages/consul-ui/tests/integration/helpers/format-number-test.js rename ui/packages/consul-ui/tests/integration/helpers/{format-time-test.js => format-short-time-test.js} (76%) create mode 100644 ui/packages/consul-ui/translations/en-us.yaml diff --git a/ui/packages/consul-ui/.template-lintrc.js b/ui/packages/consul-ui/.template-lintrc.js index e1b3f082f3..c654b15cab 100644 --- a/ui/packages/consul-ui/.template-lintrc.js +++ b/ui/packages/consul-ui/.template-lintrc.js @@ -31,5 +31,7 @@ module.exports = { 'no-unnecessary-component-helper': false, 'link-href-attributes': false, + + 'no-bare-strings': false, }, }; diff --git a/ui/packages/consul-ui/app/components/consul/lock-session/list/index.hbs b/ui/packages/consul-ui/app/components/consul/lock-session/list/index.hbs index 0076c5c321..28f1df7127 100644 --- a/ui/packages/consul-ui/app/components/consul/lock-session/list/index.hbs +++ b/ui/packages/consul-ui/app/components/consul/lock-session/list/index.hbs @@ -19,7 +19,7 @@ Delay -
{{format-time item.LockDelay}}
+
{{format-short-time item.LockDelay}}
diff --git a/ui/packages/consul-ui/app/formats.js b/ui/packages/consul-ui/app/formats.js new file mode 100644 index 0000000000..f5d1f15024 --- /dev/null +++ b/ui/packages/consul-ui/app/formats.js @@ -0,0 +1,31 @@ +export default { + time: { + hhmmss: { + hour: 'numeric', + minute: 'numeric', + second: 'numeric', + }, + }, + date: { + hhmmss: { + hour: 'numeric', + minute: 'numeric', + second: 'numeric', + }, + }, + number: { + compact: { notation: 'compact' }, + EUR: { + style: 'currency', + currency: 'EUR', + minimumFractionDigits: 2, + maximumFractionDigits: 2, + }, + USD: { + style: 'currency', + currency: 'USD', + minimumFractionDigits: 2, + maximumFractionDigits: 2, + }, + }, +}; diff --git a/ui/packages/consul-ui/app/helpers/format-number.js b/ui/packages/consul-ui/app/helpers/format-number.js deleted file mode 100644 index 218cb7daca..0000000000 --- a/ui/packages/consul-ui/app/helpers/format-number.js +++ /dev/null @@ -1,10 +0,0 @@ -import { helper } from '@ember/component/helper'; -import callIfType from 'consul-ui/utils/helpers/call-if-type'; - -// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/toLocaleString -export function toLocaleString(num, options) { - // TODO: If I make locale configurable use an option - // not mutiple arguments - return num.toLocaleString(undefined, options); -} -export default helper(callIfType('number')(toLocaleString)); diff --git a/ui/packages/consul-ui/app/helpers/format-time.js b/ui/packages/consul-ui/app/helpers/format-short-time.js similarity index 100% rename from ui/packages/consul-ui/app/helpers/format-time.js rename to ui/packages/consul-ui/app/helpers/format-short-time.js diff --git a/ui/packages/consul-ui/config/ember-intl.js b/ui/packages/consul-ui/config/ember-intl.js new file mode 100644 index 0000000000..f3b621f8a8 --- /dev/null +++ b/ui/packages/consul-ui/config/ember-intl.js @@ -0,0 +1,95 @@ +/* jshint node:true */ + +module.exports = function(/* environment */) { + return { + /** + * Merges the fallback locale's translations into all other locales as a + * build-time fallback strategy. + * + * This will **not** prevent missing translation warnings or errors from occurring. + * It's meant as safety net when warnings are enabled. + * When enabled along with `errorOnMissingTranslations` any fallback attempts will result in an error. + * + * @property fallbackLocale + * @type {String?} + * @default "null" + */ + fallbackLocale: null, + + /** + * Path where translations are stored. This is relative to the project root. + * For example, if your translations are an npm dependency, set this to: + *`'./node_modules/path/to/translations'` + * + * @property inputPath + * @type {String} + * @default "'translations'" + */ + inputPath: 'translations', + + /** + * Prevents the translations from being bundled with the application code. + * This enables asynchronously loading the translations for the active locale + * by fetching them from the asset folder of the build. + * + * See: https://ember-intl.github.io/ember-intl/docs/guide/asynchronously-loading-translations + * + * @property publicOnly + * @type {Boolean} + * @default "false" + */ + publicOnly: false, + + /** + * Add the subdirectories of the translations as a namespace for all keys. + * + * @property wrapTranslationsWithNamespace + * @type {Boolean} + * @default "false" + */ + wrapTranslationsWithNamespace: false, + + /** + * Cause a build error if ICU argument mismatches are detected between translations + * with the same key across all locales. + * + * @property errorOnNamedArgumentMismatch + * @type {Boolean} + * @default "false" + */ + errorOnNamedArgumentMismatch: false, + + /** + * Cause a build error if missing translations are detected. + * + * See https://ember-intl.github.io/ember-intl/docs/guide/missing-translations#throwing-a-build-error-on-missing-required-translation + * + * @property errorOnMissingTranslations + * @type {Boolean} + * @default "false" + */ + errorOnMissingTranslations: false, + + /** + * removes empty translations from the build output. + * + * @property stripEmptyTranslations + * @type {Boolean} + * @default "false" + */ + stripEmptyTranslations: false, + + /** + * A function that is called whenever any translation key, from any locale, is missing at build time. + * + * See https://ember-intl.github.io/ember-intl/docs/guide/missing-translations#requiring-translations + * + * @property requiresTranslation + * @type {Function} + * @default "function(key,locale) { return true }" + */ + requiresTranslation(/* key, locale */) { + return true; + }, + }; +}; diff --git a/ui/packages/consul-ui/package.json b/ui/packages/consul-ui/package.json index ad8925a942..b8376fa9e4 100644 --- a/ui/packages/consul-ui/package.json +++ b/ui/packages/consul-ui/package.json @@ -115,6 +115,7 @@ "ember-export-application-global": "^2.0.1", "ember-href-to": "^3.1.0", "ember-inflector": "^3.0.0", + "ember-intl": "^5.5.1", "ember-load-initializers": "^2.1.1", "ember-math-helpers": "^2.4.0", "ember-maybe-import-regenerator": "^0.1.6", diff --git a/ui/packages/consul-ui/tests/acceptance/dc/services/index.feature b/ui/packages/consul-ui/tests/acceptance/dc/services/index.feature index 5b460d5f46..0007127d64 100644 --- a/ui/packages/consul-ui/tests/acceptance/dc/services/index.feature +++ b/ui/packages/consul-ui/tests/acceptance/dc/services/index.feature @@ -153,7 +153,7 @@ Feature: dc / services / index: List Services ChecksWarning: 0 ChecksCritical: 1 GatewayConfig: - - AssociatedServiceCount: 345 + AssociatedServiceCount: 345 --- When I visit the services page for yaml diff --git a/ui/packages/consul-ui/tests/integration/helpers/format-number-test.js b/ui/packages/consul-ui/tests/integration/helpers/format-number-test.js deleted file mode 100644 index ccae8a614a..0000000000 --- a/ui/packages/consul-ui/tests/integration/helpers/format-number-test.js +++ /dev/null @@ -1,16 +0,0 @@ -import { module, test } from 'qunit'; -import { setupRenderingTest } from 'ember-qunit'; -import { render } from '@ember/test-helpers'; -import hbs from 'htmlbars-inline-precompile'; - -module('Integration | Helper | format-number', function(hooks) { - setupRenderingTest(hooks); - - test('it renders a formatted number when passed a number', async function(assert) { - this.set('inputValue', 1234); - - await render(hbs`{{format-number inputValue}}`); - - assert.equal(this.element.textContent.trim(), '1,234'); - }); -}); diff --git a/ui/packages/consul-ui/tests/integration/helpers/format-time-test.js b/ui/packages/consul-ui/tests/integration/helpers/format-short-time-test.js similarity index 76% rename from ui/packages/consul-ui/tests/integration/helpers/format-time-test.js rename to ui/packages/consul-ui/tests/integration/helpers/format-short-time-test.js index 127d89f21a..779d911b21 100644 --- a/ui/packages/consul-ui/tests/integration/helpers/format-time-test.js +++ b/ui/packages/consul-ui/tests/integration/helpers/format-short-time-test.js @@ -3,14 +3,14 @@ import { setupRenderingTest } from 'ember-qunit'; import { render } from '@ember/test-helpers'; import { hbs } from 'ember-cli-htmlbars'; -module('Integration | Helper | format-time', function(hooks) { +module('Integration | Helper | format-short-time', function(hooks) { setupRenderingTest(hooks); // Replace this with your real tests. test('it renders', async function(assert) { this.set('inputValue', '7200000'); - await render(hbs`{{format-time inputValue}}`); + await render(hbs`{{format-short-time inputValue}}`); assert.equal(this.element.textContent.trim(), '2h'); }); diff --git a/ui/packages/consul-ui/translations/en-us.yaml b/ui/packages/consul-ui/translations/en-us.yaml new file mode 100644 index 0000000000..84e4adae4b --- /dev/null +++ b/ui/packages/consul-ui/translations/en-us.yaml @@ -0,0 +1 @@ +common: diff --git a/ui/yarn.lock b/ui/yarn.lock index d6b4d7c023..ffe879b9da 100644 --- a/ui/yarn.lock +++ b/ui/yarn.lock @@ -1446,6 +1446,13 @@ minimatch "^3.0.4" strip-json-comments "^3.1.1" +"@formatjs/ecma402-abstract@1.5.0": + version "1.5.0" + resolved "https://registry.yarnpkg.com/@formatjs/ecma402-abstract/-/ecma402-abstract-1.5.0.tgz#759c8f11ff45e96f8fb58741e7fbdb41096d5ddd" + integrity sha512-wXv36yo+mfWllweN0Fq7sUs7PUiNopn7I0JpLTe3hGu6ZMR4CV7LqK1llhB18pndwpKoafQKb1et2DCJAOW20Q== + dependencies: + tslib "^2.0.1" + "@glimmer/component@^1.0.0", "@glimmer/component@^1.0.1": version "1.0.2" resolved "https://registry.yarnpkg.com/@glimmer/component/-/component-1.0.2.tgz#679307972d29a849225c13062ab11c779956ff60" @@ -5179,6 +5186,16 @@ broccoli-kitchen-sink-helpers@^0.3.1: glob "^5.0.10" mkdirp "^0.5.1" +broccoli-merge-files@^0.8.0: + version "0.8.0" + resolved "https://registry.yarnpkg.com/broccoli-merge-files/-/broccoli-merge-files-0.8.0.tgz#65ed9d6888548d44bf95208bc7759ac1d10bd382" + integrity sha512-S6dXHECbDkr7YMuCitAAQT8EZeW/kXom0Y8+QmQfiSkWspkKDGrr4vXgEZJjWqfa/FSx/Y18NEEOuMmbIW+XNQ== + dependencies: + broccoli-plugin "^1.3.0" + fast-glob "^2.2.6" + lodash.defaults "^4.2.0" + p-event "^2.3.1" + broccoli-merge-trees@^1.0.0, broccoli-merge-trees@^1.1.1: version "1.2.4" resolved "https://registry.yarnpkg.com/broccoli-merge-trees/-/broccoli-merge-trees-1.2.4.tgz#a001519bb5067f06589d91afa2942445a2d0fdb5" @@ -6004,6 +6021,11 @@ classnames@^2.2.5: resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.2.6.tgz#43935bffdd291f326dad0a205309b38d00f650ce" integrity sha512-JR/iSQOSt+LQIWwrwEzJ9uk0xfN3mTVYMwt1Ir5mUcSN6pU+V4zQFFaJsclJbPuAUQH+yfWef6tm7l1quW3C8Q== +cldr-core@^36.0.0: + version "36.0.0" + resolved "https://registry.yarnpkg.com/cldr-core/-/cldr-core-36.0.0.tgz#1d2148ed6802411845baeeb21432d7bbfde7d4f7" + integrity sha512-QLnAjt20rZe38c8h8OJ9jPND+O4o5O8Nw0TK/P3KpNn1cmOhMu0rk6Kc3ap96c5OStQ9gAngs9+Be2sum26NOw== + clean-base-url@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/clean-base-url/-/clean-base-url-1.0.0.tgz#c901cf0a20b972435b0eccd52d056824a4351b7b" @@ -7406,7 +7428,7 @@ ember-cli-babel-plugin-helpers@^1.0.0, ember-cli-babel-plugin-helpers@^1.1.0, em resolved "https://registry.yarnpkg.com/ember-cli-babel-plugin-helpers/-/ember-cli-babel-plugin-helpers-1.1.1.tgz#5016b80cdef37036c4282eef2d863e1d73576879" integrity sha512-sKvOiPNHr5F/60NLd7SFzMpYPte/nnGkq/tMIfXejfKHIhaiIkYFqX8Z9UFTKWLLn+V7NOaby6niNPZUdvKCRw== -ember-cli-babel@7, ember-cli-babel@^7.1.2, ember-cli-babel@^7.1.3, ember-cli-babel@^7.10.0, ember-cli-babel@^7.11.0, ember-cli-babel@^7.11.1, ember-cli-babel@^7.12.0, ember-cli-babel@^7.13.0, ember-cli-babel@^7.17.2, ember-cli-babel@^7.18.0, ember-cli-babel@^7.19.0, ember-cli-babel@^7.20.0, ember-cli-babel@^7.20.5, ember-cli-babel@^7.21.0, ember-cli-babel@^7.22.1, ember-cli-babel@^7.7.3, ember-cli-babel@^7.8.0: +ember-cli-babel@7, ember-cli-babel@^7.1.2, ember-cli-babel@^7.1.3, ember-cli-babel@^7.10.0, ember-cli-babel@^7.11.0, ember-cli-babel@^7.11.1, ember-cli-babel@^7.12.0, ember-cli-babel@^7.13.0, ember-cli-babel@^7.17.2, ember-cli-babel@^7.18.0, ember-cli-babel@^7.19.0, ember-cli-babel@^7.20.0, ember-cli-babel@^7.20.5, ember-cli-babel@^7.21.0, ember-cli-babel@^7.22.1, ember-cli-babel@^7.23.0, ember-cli-babel@^7.7.3, ember-cli-babel@^7.8.0: version "7.23.0" resolved "https://registry.yarnpkg.com/ember-cli-babel/-/ember-cli-babel-7.23.0.tgz#ec580aa2c115d0810e454dd5c2fffce238284b92" integrity sha512-ix58DlRDAbGITtdJoRUPcAoQwKLYr/x/kIXjU9u1ATyhmuUjqb+0FDXghOWbkNihGiNOqBBR49+LBgK9AeBcNw== @@ -7759,6 +7781,22 @@ ember-cli-typescript@^3.1.1, ember-cli-typescript@^3.1.2, ember-cli-typescript@^ stagehand "^1.0.0" walk-sync "^2.0.0" +ember-cli-typescript@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/ember-cli-typescript/-/ember-cli-typescript-4.0.0.tgz#690f0cd3d15f4a69ae6d89f25b70b5997ae59161" + integrity sha512-ZwnBbBJ0yAIKq4FVgNFkxfMwqJhw6PyT45Enp2RvWIgzgaYCId8brrSgg3tvVWWjA7N5hiT4Ilyz5jrQwrnU1Q== + dependencies: + ansi-to-html "^0.6.6" + broccoli-stew "^3.0.0" + debug "^4.0.0" + execa "^4.0.0" + fs-extra "^9.0.1" + resolve "^1.5.0" + rsvp "^4.8.1" + semver "^7.3.2" + stagehand "^1.0.0" + walk-sync "^2.2.0" + ember-cli-uglify@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/ember-cli-uglify/-/ember-cli-uglify-3.0.0.tgz#8819665b2cc5fe70e3ba9fe7a94645209bc42fd6" @@ -8089,6 +8127,36 @@ ember-inflector@^3.0.0, ember-inflector@^3.0.1: dependencies: ember-cli-babel "^6.6.0" +ember-intl@^5.5.1: + version "5.5.1" + resolved "https://registry.yarnpkg.com/ember-intl/-/ember-intl-5.5.1.tgz#a6c951ae1a87791bca9f0028d20521d2cb583ccf" + integrity sha512-RK8HuJmwZFMduZB2kSYqwB41NBgNJP8bwtiEVVXI0YyWLZ33R+jpHtjwP1YJZ6fTXtJaEcOptXoEGt5IjKfJvg== + dependencies: + broccoli-caching-writer "^3.0.3" + broccoli-funnel "^3.0.3" + broccoli-merge-files "^0.8.0" + broccoli-merge-trees "^4.2.0" + broccoli-source "^3.0.0" + broccoli-stew "^3.0.0" + calculate-cache-key-for-tree "^2.0.0" + cldr-core "^36.0.0" + ember-auto-import "^1.5.3" + ember-cli-babel "^7.23.0" + ember-cli-typescript "^4.0.0" + extend "^3.0.2" + fast-memoize "^2.5.2" + has-unicode "^2.0.1" + intl-messageformat "^9.3.6" + intl-messageformat-parser "^6.0.5" + js-yaml "^3.13.1" + json-stable-stringify "^1.0.1" + locale-emoji "^0.3.0" + lodash.castarray "^4.4.0" + lodash.last "^3.0.0" + lodash.omit "^4.5.0" + mkdirp "^1.0.4" + silent-error "^1.1.1" + ember-load-initializers@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/ember-load-initializers/-/ember-load-initializers-2.1.1.tgz#d1a8bead00bc44222b0ab181840869992beb30f5" @@ -8956,6 +9024,21 @@ execa@^3.0.0, execa@^3.4.0: signal-exit "^3.0.2" strip-final-newline "^2.0.0" +execa@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-4.1.0.tgz#4e5491ad1572f2f17a77d388c6c857135b22847a" + integrity sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA== + dependencies: + cross-spawn "^7.0.0" + get-stream "^5.0.0" + human-signals "^1.1.1" + is-stream "^2.0.0" + merge-stream "^2.0.0" + npm-run-path "^4.0.0" + onetime "^5.1.0" + signal-exit "^3.0.2" + strip-final-newline "^2.0.0" + execa@^4.0.3: version "4.0.3" resolved "https://registry.yarnpkg.com/execa/-/execa-4.0.3.tgz#0a34dabbad6d66100bd6f2c576c8669403f317f2" @@ -9052,7 +9135,7 @@ extend-shallow@^3.0.0, extend-shallow@^3.0.2: assign-symbols "^1.0.0" is-extendable "^1.0.1" -extend@^3.0.0, extend@~3.0.2: +extend@^3.0.0, extend@^3.0.2, extend@~3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== @@ -9105,7 +9188,7 @@ fast-deep-equal@^3.1.1: resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== -fast-glob@^2.0.2: +fast-glob@^2.0.2, fast-glob@^2.2.6: version "2.2.7" resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-2.2.7.tgz#6953857c3afa475fff92ee6015d52da70a4cd39d" integrity sha512-g1KuQwHOZAmOZMuBtHdxDtju+T2RT8jgCC9aANsbpdiDDTSnjgfuVsIBNKbUeJI3oKMRExcfNDtJl4OhbffMsw== @@ -9139,6 +9222,11 @@ fast-levenshtein@^2.0.6, fast-levenshtein@~2.0.6: resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= +fast-memoize@^2.5.2: + version "2.5.2" + resolved "https://registry.yarnpkg.com/fast-memoize/-/fast-memoize-2.5.2.tgz#79e3bb6a4ec867ea40ba0e7146816f6cdce9b57e" + integrity sha512-Ue0LwpDYErFbmNnZSF0UH6eImUwDmogUO1jyE+JbN2gsQz/jICm1Ve7t9QT0rNSsfJt+Hs4/S3GnsDVjL4HVrw== + fast-ordered-set@^1.0.0, fast-ordered-set@^1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/fast-ordered-set/-/fast-ordered-set-1.0.3.tgz#3fbb36634f7be79e4f7edbdb4a357dee25d184eb" @@ -9653,7 +9741,7 @@ fs-extra@^8.0.0, fs-extra@^8.0.1, fs-extra@^8.1.0: jsonfile "^4.0.0" universalify "^0.1.0" -fs-extra@^9.0.0: +fs-extra@^9.0.0, fs-extra@^9.0.1: version "9.0.1" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.0.1.tgz#910da0062437ba4c39fedd863f1675ccfefcb9fc" integrity sha512-h2iAoN838FqAFJY2/qVpzFXy+EBxfVE220PalAqQLDVsFOHLJrZvut5puAbCdNv6WJk+B8ihI+k0c7JK5erwqQ== @@ -10208,7 +10296,7 @@ has-to-string-tag-x@^1.2.0: dependencies: has-symbol-support-x "^1.4.1" -has-unicode@^2.0.0: +has-unicode@^2.0.0, has-unicode@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" integrity sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk= @@ -10863,6 +10951,23 @@ interpret@^2.0.0: resolved "https://registry.yarnpkg.com/interpret/-/interpret-2.2.0.tgz#1a78a0b5965c40a5416d007ad6f50ad27c417df9" integrity sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw== +intl-messageformat-parser@6.0.18, intl-messageformat-parser@^6.0.5: + version "6.0.18" + resolved "https://registry.yarnpkg.com/intl-messageformat-parser/-/intl-messageformat-parser-6.0.18.tgz#bf2855b82b0749e1f34e452f0a15d08d3277c8c7" + integrity sha512-vLjACEunfi5uSUCWFLOR4PXQ9DGLpED3tM7o9zsYsOvjl0VIheoxyG0WZXnsnhn+S+Zu158M6CkuHXeNZfKRRg== + dependencies: + "@formatjs/ecma402-abstract" "1.5.0" + tslib "^2.0.1" + +intl-messageformat@^9.3.6: + version "9.3.20" + resolved "https://registry.yarnpkg.com/intl-messageformat/-/intl-messageformat-9.3.20.tgz#87ec7e5f7a0f5d13157dc8bed88fe37b4c57b2a1" + integrity sha512-jmpjYHE076J/0CIofrPhtUC4LfmsAhuv4JMQxytl2KJd2bim+3+gQJh+Z1vyHUzcj4fIHdt388ZGchb8f0NwOA== + dependencies: + fast-memoize "^2.5.2" + intl-messageformat-parser "6.0.18" + tslib "^2.0.1" + into-stream@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/into-stream/-/into-stream-3.1.0.tgz#96fb0a936c12babd6ff1752a17d05616abd094c6" @@ -11927,6 +12032,11 @@ loader.js@^4.7.0: resolved "https://registry.yarnpkg.com/loader.js/-/loader.js-4.7.0.tgz#a1a52902001c83631efde9688b8ab3799325ef1f" integrity sha512-9M2KvGT6duzGMgkOcTkWb+PR/Q2Oe54df/tLgHGVmFpAmtqJ553xJh6N63iFYI2yjo2PeJXbS5skHi/QpJq4vA== +locale-emoji@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/locale-emoji/-/locale-emoji-0.3.0.tgz#7f38262f7c877bd27659725570335b263f88742a" + integrity sha512-JGm8+naU49CBDnH1jksS3LecPdfWQLxFgkLN6ZhYONKa850pJ0Xt8DPGJnYK0ZuJI8jTuiDDPCDtSL3nyacXwg== + locate-path@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" @@ -12038,6 +12148,11 @@ lodash.debounce@^3.1.1: dependencies: lodash._getnative "^3.0.0" +lodash.defaults@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/lodash.defaults/-/lodash.defaults-4.2.0.tgz#d09178716ffea4dde9e5fb7b37f6f0802274580c" + integrity sha1-0JF4cW/+pN3p5ft7N/bwgCJ0WAw= + lodash.defaultsdeep@^4.6.0, lodash.defaultsdeep@^4.6.1: version "4.6.1" resolved "https://registry.yarnpkg.com/lodash.defaultsdeep/-/lodash.defaultsdeep-4.6.1.tgz#512e9bd721d272d94e3d3a63653fa17516741ca6" @@ -12085,12 +12200,17 @@ lodash.keys@^3.0.0: lodash.isarguments "^3.0.0" lodash.isarray "^3.0.0" +lodash.last@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/lodash.last/-/lodash.last-3.0.0.tgz#242f663112dd4c6e63728c60a3c909d1bdadbd4c" + integrity sha1-JC9mMRLdTG5jcoxgo8kJ0b2tvUw= + lodash.merge@^4.6.0, lodash.merge@^4.6.2: version "4.6.2" resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== -lodash.omit@^4.1.0: +lodash.omit@^4.1.0, lodash.omit@^4.5.0: version "4.5.0" resolved "https://registry.yarnpkg.com/lodash.omit/-/lodash.omit-4.5.0.tgz#6eb19ae5a1ee1dd9df0b969e66ce0b7fa30b5e60" integrity sha1-brGa5aHuHdnfC5aeZs4Lf6MLXmA= @@ -13300,6 +13420,13 @@ p-defer@^3.0.0: resolved "https://registry.yarnpkg.com/p-defer/-/p-defer-3.0.0.tgz#d1dceb4ee9b2b604b1d94ffec83760175d4e6f83" integrity sha512-ugZxsxmtTln604yeYd29EGrNhazN2lywetzpKhfmQjW/VJmhpDmWbiX+h0zL8V91R0UXkhb3KtPmyq9PZw3aYw== +p-event@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/p-event/-/p-event-2.3.1.tgz#596279ef169ab2c3e0cae88c1cfbb08079993ef6" + integrity sha512-NQCqOFhbpVTMX4qMe8PF8lbGtzZ+LCiN7pcNrb/413Na7+TRoe1xkKUzuWa/YEJdGQ0FvKtj35EEbDoVPO2kbA== + dependencies: + p-timeout "^2.0.1" + p-finally@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" @@ -16474,6 +16601,11 @@ tslib@^1.10.0, tslib@^1.9.0: resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== +tslib@^2.0.1: + version "2.0.3" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.0.3.tgz#8e0741ac45fc0c226e58a17bfc3e64b9bc6ca61c" + integrity sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ== + tty-browserify@0.0.0: version "0.0.0" resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6"