From d3619499fd0a9e9e772b0f2bfa2cf80910e0b0b6 Mon Sep 17 00:00:00 2001 From: chriselly Date: Wed, 29 Nov 2023 17:49:35 -0600 Subject: [PATCH] Fix spanish language detection not working --- package.json | 2 - src/forms/schemas/addressSchema.js | 6 +- src/forms/schemas/destinationSchema.js | 8 +- src/forms/schemas/signingKeysSchema.js | 10 +- src/hooks/useErrors.js | 4 +- src/hooks/useTranslation.js | 8 +- src/lib/i18n/dayjs.js | 40 ----- src/lib/i18n/fromNowFormatted.js | 106 ----------- src/lib/i18n/i18n.js | 76 ++++++-- src/lib/i18n/provider.js | 112 ------------ src/lib/vault/index.js | 8 +- test/cypress/translations.js | 7 +- yarn.lock | 232 ++++++++++++------------- 13 files changed, 203 insertions(+), 416 deletions(-) delete mode 100644 src/lib/i18n/dayjs.js delete mode 100644 src/lib/i18n/fromNowFormatted.js delete mode 100644 src/lib/i18n/provider.js diff --git a/package.json b/package.json index daaea63..d240abc 100644 --- a/package.json +++ b/package.json @@ -36,8 +36,6 @@ "copy-webpack-plugin": "11.0.0", "create-file-plugin-webpack": "1.0.1", "cypress-real-events": "1.10.3", - "dayjs": "1.10.7", - "dayjs-business-days": "1.0.4", "history": "4.10.1", "html-webpack-plugin": "5.5.0", "lodash": "4.17.21", diff --git a/src/forms/schemas/addressSchema.js b/src/forms/schemas/addressSchema.js index f5f41a4..176cff7 100644 --- a/src/forms/schemas/addressSchema.js +++ b/src/forms/schemas/addressSchema.js @@ -1,16 +1,16 @@ -import { I18n } from '../../lib/i18n/provider'; import { getCurrency } from '../../lib/vault'; import { isValidAddress } from '../validations/isValidAddress'; +import { translate } from '../../lib/i18n'; import { yup } from '../index'; export const addressSchema = selectedNetwork => yup.object().shape({ address: yup .string() - .required(I18n.t('access.fields.address.errors.required', { currency: getCurrency(selectedNetwork) })) + .required(translate('access.fields.address.errors.required', { currency: getCurrency(selectedNetwork) })) .test( 'validation', - I18n.t('access.fields.address.errors.invalid', { currency: getCurrency(selectedNetwork) }), + translate('access.fields.address.errors.invalid', { currency: getCurrency(selectedNetwork) }), val => isValidAddress(selectedNetwork, val) ) }); diff --git a/src/forms/schemas/destinationSchema.js b/src/forms/schemas/destinationSchema.js index 7378a75..6cf0585 100644 --- a/src/forms/schemas/destinationSchema.js +++ b/src/forms/schemas/destinationSchema.js @@ -1,23 +1,23 @@ import { Blockchain } from '../../lib/vault'; -import { I18n } from '../../lib/i18n/provider'; import { isValidAddress } from '../validations/isValidAddress'; +import { translate } from '../../lib/i18n'; import { yup } from '../index'; export const destinationSchema = sourceAddress => yup.object().shape({ address: yup .string() - .required(I18n.t('withdraw.xrp.destination.fields.address.errors.required')) + .required(translate('withdraw.xrp.destination.fields.address.errors.required')) .test( 'validation', - I18n.t('withdraw.xrp.destination.fields.address.errors.invalid.xrp'), + translate('withdraw.xrp.destination.fields.address.errors.invalid.xrp'), val => isValidAddress(Blockchain.XRPL, val) && val !== sourceAddress ), destinationTag: yup .string() .test( 'validation', - I18n.t('withdraw.xrp.destination.fields.destination.tag.errors.invalid'), + translate('withdraw.xrp.destination.fields.destination.tag.errors.invalid'), val => !val.includes('-') && !val.includes('.') && !isNaN(Number(val)) ) }); diff --git a/src/forms/schemas/signingKeysSchema.js b/src/forms/schemas/signingKeysSchema.js index 9492702..b4dabc2 100644 --- a/src/forms/schemas/signingKeysSchema.js +++ b/src/forms/schemas/signingKeysSchema.js @@ -1,24 +1,24 @@ -import { I18n } from '../../lib/i18n/provider'; import { isKeySigner } from '../../lib/vault'; import { isValidMnemonic } from '../validations/isValidMnemonic'; +import { translate } from '../../lib/i18n'; import { yup } from '../index'; export const signingKeysSchema = (network, signers) => yup.object().shape({ backupKey: yup .string() - .required(I18n.t('withdraw.xrp.confirm.fields.backup.key.errors.required')) + .required(translate('withdraw.xrp.confirm.fields.backup.key.errors.required')) .test( 'validation', - I18n.t('withdraw.xrp.confirm.fields.backup.key.errors.invalid'), + translate('withdraw.xrp.confirm.fields.backup.key.errors.invalid'), val => isValidMnemonic(val) && isKeySigner(network, val, signers) ), vaultKey: yup .string() - .required(I18n.t('withdraw.xrp.confirm.fields.vault.key.errors.required')) + .required(translate('withdraw.xrp.confirm.fields.vault.key.errors.required')) .test( 'validation', - I18n.t('withdraw.xrp.confirm.fields.vault.key.errors.invalid'), + translate('withdraw.xrp.confirm.fields.vault.key.errors.invalid'), val => isValidMnemonic(val) && isKeySigner(network, val, signers) ) }); diff --git a/src/hooks/useErrors.js b/src/hooks/useErrors.js index df052f8..aca130a 100644 --- a/src/hooks/useErrors.js +++ b/src/hooks/useErrors.js @@ -1,5 +1,5 @@ -import { I18n } from '../lib/i18n/provider'; import { Toaster } from '../components/Toaster'; +import { translate } from '../lib/i18n'; import { useEffect, useRef } from 'react'; import { useWatch } from 'react-hook-form'; import get from 'lodash/get'; @@ -57,7 +57,7 @@ export const useErrors = ( } if (!Object.keys(errorsRef.current).some(field => field in previousRef.current) && showGenericError) { - Toaster.showError(I18n.t('messages.error.default')); + Toaster.showError(translate('messages.error.default')); return; } diff --git a/src/hooks/useTranslation.js b/src/hooks/useTranslation.js index 01f9cc2..1734f11 100644 --- a/src/hooks/useTranslation.js +++ b/src/hooks/useTranslation.js @@ -1,8 +1,6 @@ -import { I18n } from '../lib/i18n/provider'; +import { translate } from '../lib/i18n'; +import i18next from 'react-i18next'; export const useTranslation = () => { - const exists = I18n.exists.bind(I18n); - const translate = I18n.t.bind(I18n); - - return { exists, t: translate }; + return { I18n: i18next, t: translate }; }; diff --git a/src/lib/i18n/dayjs.js b/src/lib/i18n/dayjs.js deleted file mode 100644 index dbe93fc..0000000 --- a/src/lib/i18n/dayjs.js +++ /dev/null @@ -1,40 +0,0 @@ -import 'dayjs/locale/en'; -import 'dayjs/locale/es'; -import advancedFormat from 'dayjs/plugin/advancedFormat'; -import businessDays from 'dayjs-business-days'; -import calendar from 'dayjs/plugin/calendar'; -import customParseFormat from 'dayjs/plugin/customParseFormat'; -import dayjs from 'dayjs'; -import duration from 'dayjs/plugin/duration'; -import fromNowFormatted from './fromNowFormatted'; -import isSameOrAfter from 'dayjs/plugin/isSameOrAfter'; -import isSameOrBefore from 'dayjs/plugin/isSameOrBefore'; -import localeData from 'dayjs/plugin/localeData'; -import localizedFormat from 'dayjs/plugin/localizedFormat'; -import minMax from 'dayjs/plugin/minMax'; -import objectSupport from 'dayjs/plugin/objectSupport'; -import relativeTime from 'dayjs/plugin/relativeTime'; -import timezone from 'dayjs/plugin/timezone'; -import utc from 'dayjs/plugin/utc'; - -export const FORMATS = Object.freeze({ - DATE: 'll' -}); - -dayjs.extend(advancedFormat); -dayjs.extend(businessDays); -dayjs.extend(calendar); -dayjs.extend(customParseFormat); -dayjs.extend(duration); -dayjs.extend(isSameOrAfter); -dayjs.extend(isSameOrBefore); -dayjs.extend(localeData); -dayjs.extend(localizedFormat); -dayjs.extend(minMax); -dayjs.extend(objectSupport); -dayjs.extend(relativeTime); -dayjs.extend(timezone); -dayjs.extend(utc); -dayjs.extend(fromNowFormatted); - -export default dayjs; diff --git a/src/lib/i18n/fromNowFormatted.js b/src/lib/i18n/fromNowFormatted.js deleted file mode 100644 index 3bef0db..0000000 --- a/src/lib/i18n/fromNowFormatted.js +++ /dev/null @@ -1,106 +0,0 @@ -/* eslint-disable id-length */ -const extensions = { - en: { - d: 'yesterday', - dd: '%dd', - h: '%dh', - hh: '%dh', - m: '%dm', - mm: '%dm', - s: 'just now', - w: '%dw', - ww: '%dw', - yy: '%dy' - }, - es: { - d: 'ayer', - dd: '%dd', - h: '%dh', - hh: '%dh', - localeDate: 'D MMM', - m: '%dm', - mm: '%dm', - s: 'ahora mismo', - w: '%ds', - ww: '%ds', - yy: '%da' - } -}; - -const baseThresholds = [ - { d: 'second', ignorePastAndFuture: true, l: 's', r: 59 }, - { l: 'm', r: 1 }, - { d: 'minute', l: 'mm', r: 59 }, - { l: 'h', r: 1 }, - { d: 'hour', l: 'hh', r: 23 }, - { ignorePastAndFuture: true, l: 'd', r: 1 }, - { d: 'day', l: 'dd', r: 6 }, - { l: 'w', r: 1 }, - { d: 'week', l: 'ww', r: 3 } -]; - -// This is based from dayjs's base relativeTime plugin implementation -// https://github.com/iamkun/dayjs/blob/master/src/plugin/relativeTime/index.js -export default (option, dayjsClass, dayjsFactory) => { - dayjsClass.prototype.fromNowFormatted = function ({ extension: customExtension, thresholds: customThresholds } = {}) { - const now = dayjsFactory(); - const { name: localeName, relativeTime } = now.$locale(); - - const extension = customExtension || extensions[localeName]; - const thresholds = customThresholds || baseThresholds; - - if (!extension) { - return this.fromNow(); - } - - const localeData = { ...relativeTime, ...extension }; - - let formattedResult; - let isFuture; - let result; - let threshold; - - for (let index = 0; index < thresholds.length; index += 1) { - threshold = thresholds[index]; - - if (threshold.d) { - result = this.diff(now, threshold.d, true); - } - - const abs = Math.round(Math.abs(result)); - - isFuture = result > 0; - - if (abs <= threshold.r || !threshold.r) { - // 1 minutes -> a minute, 0 seconds -> 0 second - if (abs <= 1 && index > 0) { - threshold = thresholds[index - 1]; - } - - const format = localeData[threshold.l]; - - formattedResult = format.replace('%d', abs); - - break; - } - } - - if (!formattedResult) { - const isSameYear = this.year() === now.year(); - - return this.format(isSameYear ? localeData.localeDate || 'MMM D' : 'll'); - } - - if (threshold?.ignorePastAndFuture) { - return formattedResult; - } - - const pastOrFuture = isFuture ? localeData.future : localeData.past; - - if (typeof pastOrFuture === 'function') { - return pastOrFuture(formattedResult); - } - - return pastOrFuture.replace('%s', formattedResult); - }; -}; diff --git a/src/lib/i18n/i18n.js b/src/lib/i18n/i18n.js index c5a5977..1fa3308 100644 --- a/src/lib/i18n/i18n.js +++ b/src/lib/i18n/i18n.js @@ -1,17 +1,73 @@ import * as locales from '../../assets/locales'; -import { I18n } from './provider'; import { initReactI18next } from 'react-i18next'; import LanguageDetector from 'i18next-browser-languagedetector'; -import dayjs from './dayjs'; +import React, { Fragment } from 'react'; +import i18next from 'i18next'; -const languageDetector = new LanguageDetector(null, { - order: ['navigator', 'querystring', 'cookie', 'sessionStorage', 'localStorage'] +export const languageCodes = Object.freeze({ + EN: 'en', + ES: 'es' }); -languageDetector.addDetector({ - cacheUserLanguage: language => dayjs.locale(language), - name: 'dayjs' -}); -languageDetector.options.caches.push('dayjs'); +const interpolationMatch = /({{[^}]*}})/gm; + +const hasComponent = options => { + try { + return Object.values(options).some(React.isValidElement); + } catch (error) { + return false; + } +}; + +const renderNestedComponents = (key, options) => { + const rawValue = i18next.t(key, { skipInterpolation: true }); + + return ( + + {rawValue.split(interpolationMatch).map((value, index) => { + if (!interpolationMatch.test(value)) { + return value; + } + + const interpolationKey = value.replace(/{|}/g, ''); + const optionValue = options?.[interpolationKey]; + + if (optionValue) { + return {optionValue}; + } + })} + + ); +}; + +export const setLocales = (locales = {}) => { + Object.entries(locales).forEach(([lang, locale = {}]) => + Object.entries(locale).forEach(([ns, values]) => i18next.addResourceBundle(lang, ns, values, true, true)) + ); +}; + +export const translate = (key, options) => { + if (hasComponent(options)) { + return renderNestedComponents(key, options); + } + + return i18next.t(key, options); +}; -I18n.init([languageDetector, initReactI18next], locales); +i18next + .use(LanguageDetector) + .use(initReactI18next) + .init({ + compatibilityJSON: 'v3', + detection: { + order: ['querystring', 'cookie', 'localStorage', 'sessionStorage', 'navigator', 'htmlTag', 'path', 'subdomain'] + }, + fallbackLng: languageCodes.EN, + interpolation: { + escapeValue: false, + skipOnVariables: false + }, + keySeparator: ' ', + resources: Object.fromEntries(Object.entries(locales).map(([lang, locale = {}]) => [lang, locale])), + supportedLngs: Object.values(languageCodes) + }); diff --git a/src/lib/i18n/provider.js b/src/lib/i18n/provider.js deleted file mode 100644 index d24b86a..0000000 --- a/src/lib/i18n/provider.js +++ /dev/null @@ -1,112 +0,0 @@ -import React, { Fragment } from 'react'; -import i18next from 'i18next'; - -export const languageCodes = Object.freeze({ - EN: 'en' -}); - -const defaultOptions = { - compatibilityJSON: 'v3', - fallbackLng: languageCodes.EN, - interpolation: { - escapeValue: false, - skipOnVariables: false - }, - keySeparator: ' ', - resource: {}, - supportedLngs: Object.values(languageCodes) -}; - -const interpolationMatch = /({{[^}]*}})/gm; - -class I18nComponent { - constructor() { - this.init(); - } - - get activeLanguagePrefix() { - return this.parseLanguagePrefix(this.instance?.language); - } - - exists(key, options) { - return this.instance.exists(key, options); - } - - hasComponent(options) { - try { - return Object.values(options).some(React.isValidElement); - } catch (error) { - return false; - } - } - - init(plugins, locales, options = {}) { - this.setProvider(i18next.createInstance()); - this.setPlugins(plugins); - - this.instance.init({ ...defaultOptions, ...options }); - this.setLocales(locales); - this.instance.changeLanguage(this.activeLanguagePrefix); - } - - get instance() { - if (!this.provider) { - throw new Error('I18n provider needs to be defined first.'); - } - - return this.provider; - } - - parseLanguagePrefix(language) { - return (language || languageCodes.EN).substring(0, 2); - } - - renderNestedComponents(key, options) { - const rawValue = this.instance.t(key, { skipInterpolation: true }); - - return ( - - {rawValue.split(interpolationMatch).map((value, index) => { - if (!interpolationMatch.test(value)) { - return value; - } - - const interpolationKey = value.replace(/{|}/g, ''); - const optionValue = options?.[interpolationKey]; - - if (optionValue) { - return {optionValue}; - } - })} - - ); - } - - setLocales(locales = {}) { - Object.entries(locales).forEach(([lang, locale = {}]) => - Object.entries(locale).forEach(([ns, values]) => this.instance.addResourceBundle(lang, ns, values, true, true)) - ); - } - - setPlugins(plugins) { - plugins?.forEach(plugin => { - if (plugin) { - this.instance.use(plugin); - } - }); - } - - setProvider(provider) { - this.provider = provider; - } - - t(key, options) { - if (this.hasComponent(options)) { - return this.renderNestedComponents(key, options); - } - - return this.instance.t(key, options); - } -} - -export const I18n = new I18nComponent(); diff --git a/src/lib/vault/index.js b/src/lib/vault/index.js index 14e4b7a..70fd082 100644 --- a/src/lib/vault/index.js +++ b/src/lib/vault/index.js @@ -1,5 +1,4 @@ import './constants'; -import { I18n } from '../i18n/provider'; import { TransactionService, ValidationUtils, @@ -16,6 +15,7 @@ import { sendTransaction as sendXrplTransaction, multisigner as xrplMultiSigner } from './xrpl-provider'; +import { translate } from '../../lib/i18n'; export const Blockchain = VaultBlockchain; export const { validateAddress, validateMnemonic } = ValidationUtils; @@ -72,7 +72,7 @@ export const multiSignTransaction = (blockchain, transaction, keys) => { return xrplMultiSigner(transaction, keys); default: - throw new Error(I18n.t('messages.error.unsupported.blockchain')); + throw new Error(translate('messages.error.unsupported.blockchain')); } }; @@ -82,7 +82,7 @@ export const getSigners = async (blockchain, address) => { return await getXrpSigners(address); default: - throw new Error(I18n.t('messages.error.unsupported.blockchain')); + throw new Error(translate('messages.error.unsupported.blockchain')); } }; @@ -101,6 +101,6 @@ export const getBalance = async (blockchain, address) => { return await getXrpBalance(address); default: - throw new Error(I18n.t('messages.error.unsupported.blockchain')); + throw new Error(translate('messages.error.unsupported.blockchain')); } }; diff --git a/test/cypress/translations.js b/test/cypress/translations.js index 9b124be..76c92e0 100644 --- a/test/cypress/translations.js +++ b/test/cypress/translations.js @@ -1,6 +1,9 @@ import * as webLocales from '../../src/assets/locales'; -import { I18n } from '../../src/lib/i18n/provider'; +import { setLocales } from '../../src/lib/i18n'; +import i18next from 'i18next'; -I18n.setLocales(webLocales); +const I18n = i18next; + +setLocales(webLocales); export default I18n; diff --git a/yarn.lock b/yarn.lock index d460bbd..078e412 100644 --- a/yarn.lock +++ b/yarn.lock @@ -20,18 +20,18 @@ "@jridgewell/gen-mapping" "^0.3.0" "@jridgewell/trace-mapping" "^0.3.9" -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.18.6", "@babel/code-frame@^7.22.13", "@babel/code-frame@^7.23.4": - version "7.23.4" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.23.4.tgz#03ae5af150be94392cb5c7ccd97db5a19a5da6aa" - integrity sha512-r1IONyb6Ia+jYR2vvIDhdWdlTGhqbBoFqLTQidzZ4kepUFH15ejXvFHxCVbtl7BOXIudsIubf4E81xeA3h3IXA== +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.18.6", "@babel/code-frame@^7.22.13", "@babel/code-frame@^7.23.5": + version "7.23.5" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.23.5.tgz#9009b69a8c602293476ad598ff53e4562e15c244" + integrity sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA== dependencies: "@babel/highlight" "^7.23.4" chalk "^2.4.2" -"@babel/compat-data@^7.17.7", "@babel/compat-data@^7.19.4", "@babel/compat-data@^7.20.5", "@babel/compat-data@^7.22.6", "@babel/compat-data@^7.22.9", "@babel/compat-data@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.23.3.tgz#3febd552541e62b5e883a25eb3effd7c7379db11" - integrity sha512-BmR4bWbDIoFJmJ9z2cZ8Gmm2MXgEDgjdWgpKmKWUt54UGFJdlj31ECtbaDvCG/qVdG3AQ1SfpZEs01lUFbzLOQ== +"@babel/compat-data@^7.17.7", "@babel/compat-data@^7.19.4", "@babel/compat-data@^7.20.5", "@babel/compat-data@^7.22.6", "@babel/compat-data@^7.22.9", "@babel/compat-data@^7.23.3", "@babel/compat-data@^7.23.5": + version "7.23.5" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.23.5.tgz#ffb878728bb6bdcb6f4510aa51b1be9afb8cfd98" + integrity sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw== "@babel/core@7.20.5": version "7.20.5" @@ -55,20 +55,20 @@ semver "^6.3.0" "@babel/core@^7.12.3", "@babel/core@^7.13.16", "@babel/core@^7.16.12", "@babel/core@^7.18.5", "@babel/core@^7.19.6", "@babel/core@^7.20.0": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.23.3.tgz#5ec09c8803b91f51cc887dedc2654a35852849c9" - integrity sha512-Jg+msLuNuCJDyBvFv5+OKOUjWMZgd85bKjbICd3zWrKAo+bJ49HJufi7CQE0q0uR8NGyO6xkCACScNqyjHSZew== + version "7.23.5" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.23.5.tgz#6e23f2acbcb77ad283c5ed141f824fd9f70101c7" + integrity sha512-Cwc2XjUrG4ilcfOw4wBAK+enbdgwAcAJCfGUItPBKR7Mjw4aEfAFYrLxeRp4jWgtNIKn3n2AlBOfwwafl+42/g== dependencies: "@ampproject/remapping" "^2.2.0" - "@babel/code-frame" "^7.22.13" - "@babel/generator" "^7.23.3" + "@babel/code-frame" "^7.23.5" + "@babel/generator" "^7.23.5" "@babel/helper-compilation-targets" "^7.22.15" "@babel/helper-module-transforms" "^7.23.3" - "@babel/helpers" "^7.23.2" - "@babel/parser" "^7.23.3" + "@babel/helpers" "^7.23.5" + "@babel/parser" "^7.23.5" "@babel/template" "^7.22.15" - "@babel/traverse" "^7.23.3" - "@babel/types" "^7.23.3" + "@babel/traverse" "^7.23.5" + "@babel/types" "^7.23.5" convert-source-map "^2.0.0" debug "^4.1.0" gensync "^1.0.0-beta.2" @@ -93,12 +93,12 @@ eslint-visitor-keys "^2.1.0" semver "^6.3.1" -"@babel/generator@^7.20.0", "@babel/generator@^7.20.5", "@babel/generator@^7.23.3", "@babel/generator@^7.23.4": - version "7.23.4" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.23.4.tgz#4a41377d8566ec18f807f42962a7f3551de83d1c" - integrity sha512-esuS49Cga3HcThFNebGhlgsrVLkvhqvYDTzgjfFFlHJcIfLe5jFmRRfCQ1KuBfc4Jrtn3ndLgKWAKjBE+IraYQ== +"@babel/generator@^7.20.0", "@babel/generator@^7.20.5", "@babel/generator@^7.23.5": + version "7.23.5" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.23.5.tgz#17d0a1ea6b62f351d281350a5f80b87a810c4755" + integrity sha512-BPssCHrBD+0YrxviOa3QzpqwhNIXKEtOa2jQrm4FlmkC2apYgRnQcmPWiGZDlGxiNtltnUFolMe8497Esry+jA== dependencies: - "@babel/types" "^7.23.4" + "@babel/types" "^7.23.5" "@jridgewell/gen-mapping" "^0.3.2" "@jridgewell/trace-mapping" "^0.3.17" jsesc "^2.5.1" @@ -128,17 +128,17 @@ lru-cache "^5.1.1" semver "^6.3.1" -"@babel/helper-create-class-features-plugin@^7.18.6", "@babel/helper-create-class-features-plugin@^7.21.0", "@babel/helper-create-class-features-plugin@^7.22.15": - version "7.22.15" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.15.tgz#97a61b385e57fe458496fad19f8e63b63c867de4" - integrity sha512-jKkwA59IXcvSaiK2UN45kKwSC9o+KuoXsBDvHvU/7BecYIp8GQ2UwrVvFgJASUT+hBnwJx6MhvMCuMzwZZ7jlg== +"@babel/helper-create-class-features-plugin@^7.18.6", "@babel/helper-create-class-features-plugin@^7.21.0", "@babel/helper-create-class-features-plugin@^7.22.15", "@babel/helper-create-class-features-plugin@^7.23.5": + version "7.23.5" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.23.5.tgz#2a8792357008ae9ce8c0f2b78b9f646ac96b314b" + integrity sha512-QELlRWxSpgdwdJzSJn4WAhKC+hvw/AtHbbrIoncKHkhKKR/luAlKkgBDcri1EzWAo8f8VvYVryEHN4tax/V67A== dependencies: "@babel/helper-annotate-as-pure" "^7.22.5" - "@babel/helper-environment-visitor" "^7.22.5" - "@babel/helper-function-name" "^7.22.5" - "@babel/helper-member-expression-to-functions" "^7.22.15" + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-function-name" "^7.23.0" + "@babel/helper-member-expression-to-functions" "^7.23.0" "@babel/helper-optimise-call-expression" "^7.22.5" - "@babel/helper-replace-supers" "^7.22.9" + "@babel/helper-replace-supers" "^7.22.20" "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" "@babel/helper-split-export-declaration" "^7.22.6" semver "^6.3.1" @@ -175,7 +175,7 @@ lodash.debounce "^4.0.8" resolve "^1.14.2" -"@babel/helper-environment-visitor@^7.18.9", "@babel/helper-environment-visitor@^7.22.20", "@babel/helper-environment-visitor@^7.22.5": +"@babel/helper-environment-visitor@^7.18.9", "@babel/helper-environment-visitor@^7.22.20": version "7.22.20" resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz#96159db61d34a29dba454c959f5ae4a649ba9167" integrity sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA== @@ -195,7 +195,7 @@ dependencies: "@babel/types" "^7.22.5" -"@babel/helper-member-expression-to-functions@^7.22.15": +"@babel/helper-member-expression-to-functions@^7.22.15", "@babel/helper-member-expression-to-functions@^7.23.0": version "7.23.0" resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.23.0.tgz#9263e88cc5e41d39ec18c9a3e0eced59a3e7d366" integrity sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA== @@ -241,7 +241,7 @@ "@babel/helper-environment-visitor" "^7.22.20" "@babel/helper-wrap-function" "^7.22.20" -"@babel/helper-replace-supers@^7.22.20", "@babel/helper-replace-supers@^7.22.9": +"@babel/helper-replace-supers@^7.22.20": version "7.22.20" resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.22.20.tgz#e37d367123ca98fe455a9887734ed2e16eb7a793" integrity sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw== @@ -281,10 +281,10 @@ resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz#c4ae002c61d2879e724581d96665583dbc1dc0e0" integrity sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A== -"@babel/helper-validator-option@^7.18.6", "@babel/helper-validator-option@^7.22.15": - version "7.22.15" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.22.15.tgz#694c30dfa1d09a6534cdfcafbe56789d36aba040" - integrity sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA== +"@babel/helper-validator-option@^7.18.6", "@babel/helper-validator-option@^7.22.15", "@babel/helper-validator-option@^7.23.5": + version "7.23.5" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz#907a3fbd4523426285365d1206c423c4c5520307" + integrity sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw== "@babel/helper-wrap-function@^7.22.20": version "7.22.20" @@ -295,14 +295,14 @@ "@babel/template" "^7.22.15" "@babel/types" "^7.22.19" -"@babel/helpers@^7.20.5", "@babel/helpers@^7.23.2": - version "7.23.4" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.23.4.tgz#7d2cfb969aa43222032193accd7329851facf3c1" - integrity sha512-HfcMizYz10cr3h29VqyfGL6ZWIjTwWfvYBMsBVGwpcbhNGe3wQ1ZXZRPzZoAHhd9OqHadHqjQ89iVKINXnbzuw== +"@babel/helpers@^7.20.5", "@babel/helpers@^7.23.5": + version "7.23.5" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.23.5.tgz#52f522840df8f1a848d06ea6a79b79eefa72401e" + integrity sha512-oO7us8FzTEsG3U6ag9MfdF1iA/7Z6dz+MtFhifZk8C8o453rGJFFWUP1t+ULM9TUIAzC9uxXEiXjOiVMyd7QPg== dependencies: "@babel/template" "^7.22.15" - "@babel/traverse" "^7.23.4" - "@babel/types" "^7.23.4" + "@babel/traverse" "^7.23.5" + "@babel/types" "^7.23.5" "@babel/highlight@^7.23.4": version "7.23.4" @@ -313,10 +313,10 @@ chalk "^2.4.2" js-tokens "^4.0.0" -"@babel/parser@^7.13.16", "@babel/parser@^7.14.7", "@babel/parser@^7.20.0", "@babel/parser@^7.20.5", "@babel/parser@^7.22.15", "@babel/parser@^7.23.0", "@babel/parser@^7.23.3", "@babel/parser@^7.23.4": - version "7.23.4" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.23.4.tgz#409fbe690c333bb70187e2de4021e1e47a026661" - integrity sha512-vf3Xna6UEprW+7t6EtOmFpHNAuxw3xqPZghy+brsnusscJRW5BMUzzHZc5ICjULee81WeUV2jjakG09MDglJXQ== +"@babel/parser@^7.13.16", "@babel/parser@^7.14.7", "@babel/parser@^7.20.0", "@babel/parser@^7.20.5", "@babel/parser@^7.22.15", "@babel/parser@^7.23.0", "@babel/parser@^7.23.5": + version "7.23.5" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.23.5.tgz#37dee97c4752af148e1d38c34b856b2507660563" + integrity sha512-hOOqoiNXrmGdFbhgCzu6GiURxUgM27Xwd/aPuu8RfHEZPBzL1Z54okAHAQjXfcQNwvrlkAmAp4SlRTZ45vlthQ== "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.18.6", "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.23.3": version "7.23.3" @@ -654,7 +654,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-async-generator-functions@^7.23.3": +"@babel/plugin-transform-async-generator-functions@^7.23.4": version "7.23.4" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.23.4.tgz#93ac8e3531f347fba519b4703f9ff2a75c6ae27a" integrity sha512-efdkfPhHYTtn0G6n2ddrESE91fgXxjlqLsnUtPWnJs4a4mZIbUaK7ffqKIIUKXSHwcDvaCVX6GXkaJJFqtX7jw== @@ -680,7 +680,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-block-scoping@^7.0.0", "@babel/plugin-transform-block-scoping@^7.19.4", "@babel/plugin-transform-block-scoping@^7.23.3": +"@babel/plugin-transform-block-scoping@^7.0.0", "@babel/plugin-transform-block-scoping@^7.19.4", "@babel/plugin-transform-block-scoping@^7.23.4": version "7.23.4" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.23.4.tgz#b2d38589531c6c80fbe25e6b58e763622d2d3cf5" integrity sha512-0QqbP6B6HOh7/8iNR4CQU2Th/bbRtBp4KS9vcaZd1fZ0wSh5Fyssg0UCIHwxh+ka+pNDREbVLQnHCMHKZfPwfw== @@ -695,7 +695,7 @@ "@babel/helper-create-class-features-plugin" "^7.22.15" "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-class-static-block@^7.23.3": +"@babel/plugin-transform-class-static-block@^7.23.4": version "7.23.4" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.23.4.tgz#2a202c8787a8964dd11dfcedf994d36bfc844ab5" integrity sha512-nsWu/1M+ggti1SOALj3hfx5FXzAY06fwPJsUZD4/A5e1bWi46VUIWtD+kOX6/IdhXGsXBWllLFDSnqSCdUNydQ== @@ -704,10 +704,10 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-class-static-block" "^7.14.5" -"@babel/plugin-transform-classes@^7.0.0", "@babel/plugin-transform-classes@^7.19.0", "@babel/plugin-transform-classes@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.23.3.tgz#73380c632c095b03e8503c24fd38f95ad41ffacb" - integrity sha512-FGEQmugvAEu2QtgtU0uTASXevfLMFfBeVCIIdcQhn/uBQsMTjBajdnAtanQlOcuihWh10PZ7+HWvc7NtBwP74w== +"@babel/plugin-transform-classes@^7.0.0", "@babel/plugin-transform-classes@^7.19.0", "@babel/plugin-transform-classes@^7.23.5": + version "7.23.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.23.5.tgz#e7a75f815e0c534cc4c9a39c56636c84fc0d64f2" + integrity sha512-jvOTR4nicqYC9yzOHIhXG5emiFEOpappSJAl73SDSEDcybD+Puuze8Tnpb9p9qEyYup24tq891gkaygIFvWDqg== dependencies: "@babel/helper-annotate-as-pure" "^7.22.5" "@babel/helper-compilation-targets" "^7.22.15" @@ -749,7 +749,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-dynamic-import@^7.23.3": +"@babel/plugin-transform-dynamic-import@^7.23.4": version "7.23.4" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.23.4.tgz#c7629e7254011ac3630d47d7f34ddd40ca535143" integrity sha512-V6jIbLhdJK86MaLh4Jpghi8ho5fGzt3imHOBu/x0jlBaPYqDoWz4RDXjmMOfnh+JWNaQleEAByZLV0QzBT4YQQ== @@ -765,7 +765,7 @@ "@babel/helper-builder-binary-assignment-operator-visitor" "^7.22.15" "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-export-namespace-from@^7.23.3": +"@babel/plugin-transform-export-namespace-from@^7.23.4": version "7.23.4" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.23.4.tgz#084c7b25e9a5c8271e987a08cf85807b80283191" integrity sha512-GzuSBcKkx62dGzZI1WVgTWvkkz84FZO5TC5T8dl/Tht/rAla6Dg/Mz9Yhypg+ezVACf/rgDuQt3kbWEv7LdUDQ== @@ -797,7 +797,7 @@ "@babel/helper-function-name" "^7.23.0" "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-json-strings@^7.23.3": +"@babel/plugin-transform-json-strings@^7.23.4": version "7.23.4" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.23.4.tgz#a871d9b6bd171976efad2e43e694c961ffa3714d" integrity sha512-81nTOqM1dMwZ/aRXQ59zVubN9wHGqk6UtqRK+/q+ciXmRy8fSolhGVvG09HHRGo4l6fr/c4ZhXUQH0uFW7PZbg== @@ -812,7 +812,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-logical-assignment-operators@^7.23.3": +"@babel/plugin-transform-logical-assignment-operators@^7.23.4": version "7.23.4" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.23.4.tgz#e599f82c51d55fac725f62ce55d3a0886279ecb5" integrity sha512-Mc/ALf1rmZTP4JKKEhUwiORU+vcfarFVLfcFiolKUo6sewoxSEgl36ak5t+4WamRsNr6nzjZXQjM35WsU+9vbg== @@ -877,7 +877,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-nullish-coalescing-operator@^7.23.3": +"@babel/plugin-transform-nullish-coalescing-operator@^7.23.4": version "7.23.4" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.23.4.tgz#45556aad123fc6e52189ea749e33ce090637346e" integrity sha512-jHE9EVVqHKAQx+VePv5LLGHjmHSJR76vawFPTdlxR/LVJPfOEGxREQwQfjuZEOPTwG92X3LINSh3M40Rv4zpVA== @@ -885,7 +885,7 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" -"@babel/plugin-transform-numeric-separator@^7.23.3": +"@babel/plugin-transform-numeric-separator@^7.23.4": version "7.23.4" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.23.4.tgz#03d08e3691e405804ecdd19dd278a40cca531f29" integrity sha512-mps6auzgwjRrwKEZA05cOwuDc9FAzoyFS4ZsG/8F43bTLf/TgkJg7QXOrPO1JO599iA3qgK9MXdMGOEC8O1h6Q== @@ -900,7 +900,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-object-rest-spread@^7.23.3": +"@babel/plugin-transform-object-rest-spread@^7.23.4": version "7.23.4" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.23.4.tgz#2b9c2d26bf62710460bdc0d1730d4f1048361b83" integrity sha512-9x9K1YyeQVw0iOXJlIzwm8ltobIIv7j2iLyP2jIhEbqPRQ7ScNgwQufU2I0Gq11VjyG4gI4yMXt2VFags+1N3g== @@ -919,7 +919,7 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/helper-replace-supers" "^7.22.20" -"@babel/plugin-transform-optional-catch-binding@^7.23.3": +"@babel/plugin-transform-optional-catch-binding@^7.23.4": version "7.23.4" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.23.4.tgz#318066de6dacce7d92fa244ae475aa8d91778017" integrity sha512-XIq8t0rJPHf6Wvmbn9nFxU6ao4c7WhghTR5WyV8SrJfUFzyxhCm4nhC+iAp3HFhbAKLfYpgzhJ6t4XCtVwqO5A== @@ -927,7 +927,7 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" -"@babel/plugin-transform-optional-chaining@^7.23.3": +"@babel/plugin-transform-optional-chaining@^7.23.3", "@babel/plugin-transform-optional-chaining@^7.23.4": version "7.23.4" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.23.4.tgz#6acf61203bdfc4de9d4e52e64490aeb3e52bd017" integrity sha512-ZU8y5zWOfjM5vZ+asjgAPwDaBjJzgufjES89Rs4Lpq63O300R/kOz30WCLo6BxxX6QVEilwSlpClnG5cZaikTA== @@ -951,7 +951,7 @@ "@babel/helper-create-class-features-plugin" "^7.22.15" "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-private-property-in-object@^7.23.3": +"@babel/plugin-transform-private-property-in-object@^7.23.4": version "7.23.4" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.23.4.tgz#3ec711d05d6608fd173d9b8de39872d8dbf68bf5" integrity sha512-9G3K1YqTq3F4Vt88Djx1UZ79PDyj+yKRnUy7cZGSMe+a7jkwD259uKKuUzQlPkGam7R+8RJwh5z4xO27fA1o2A== @@ -1086,12 +1086,12 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-transform-typescript@^7.23.3", "@babel/plugin-transform-typescript@^7.5.0": - version "7.23.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.23.4.tgz#da12914d17b3c4b307f32c5fd91fbfdf17d56f86" - integrity sha512-39hCCOl+YUAyMOu6B9SmUTiHUU0t/CxJNUmY3qRdJujbqi+lrQcL11ysYUsAvFWPBdhihrv1z0oRG84Yr3dODQ== + version "7.23.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.23.5.tgz#83da13ef62a1ebddf2872487527094b31c9adb84" + integrity sha512-2fMkXEJkrmwgu2Bsv1Saxgj30IXZdJ+84lQcKKI7sm719oXs0BBw2ZENKdJdR1PjWndgLCEBNXJOri0fk7RYQA== dependencies: "@babel/helper-annotate-as-pure" "^7.22.5" - "@babel/helper-create-class-features-plugin" "^7.22.15" + "@babel/helper-create-class-features-plugin" "^7.23.5" "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-typescript" "^7.23.3" @@ -1208,14 +1208,14 @@ semver "^6.3.0" "@babel/preset-env@^7.18.2": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.23.3.tgz#d299e0140a7650684b95c62be2db0ef8c975143e" - integrity sha512-ovzGc2uuyNfNAs/jyjIGxS8arOHS5FENZaNn4rtE7UdKMMkqHCvboHfcuhWLZNX5cB44QfcGNWjaevxMzzMf+Q== + version "7.23.5" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.23.5.tgz#350a3aedfa9f119ad045b068886457e895ba0ca1" + integrity sha512-0d/uxVD6tFGWXGDSfyMD1p2otoaKmu6+GD+NfAx0tMaH+dxORnp7T9TaVQ6mKyya7iBtCIVxHjWT7MuzzM9z+A== dependencies: - "@babel/compat-data" "^7.23.3" + "@babel/compat-data" "^7.23.5" "@babel/helper-compilation-targets" "^7.22.15" "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-validator-option" "^7.22.15" + "@babel/helper-validator-option" "^7.23.5" "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.23.3" "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.23.3" "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly" "^7.23.3" @@ -1239,25 +1239,25 @@ "@babel/plugin-syntax-top-level-await" "^7.14.5" "@babel/plugin-syntax-unicode-sets-regex" "^7.18.6" "@babel/plugin-transform-arrow-functions" "^7.23.3" - "@babel/plugin-transform-async-generator-functions" "^7.23.3" + "@babel/plugin-transform-async-generator-functions" "^7.23.4" "@babel/plugin-transform-async-to-generator" "^7.23.3" "@babel/plugin-transform-block-scoped-functions" "^7.23.3" - "@babel/plugin-transform-block-scoping" "^7.23.3" + "@babel/plugin-transform-block-scoping" "^7.23.4" "@babel/plugin-transform-class-properties" "^7.23.3" - "@babel/plugin-transform-class-static-block" "^7.23.3" - "@babel/plugin-transform-classes" "^7.23.3" + "@babel/plugin-transform-class-static-block" "^7.23.4" + "@babel/plugin-transform-classes" "^7.23.5" "@babel/plugin-transform-computed-properties" "^7.23.3" "@babel/plugin-transform-destructuring" "^7.23.3" "@babel/plugin-transform-dotall-regex" "^7.23.3" "@babel/plugin-transform-duplicate-keys" "^7.23.3" - "@babel/plugin-transform-dynamic-import" "^7.23.3" + "@babel/plugin-transform-dynamic-import" "^7.23.4" "@babel/plugin-transform-exponentiation-operator" "^7.23.3" - "@babel/plugin-transform-export-namespace-from" "^7.23.3" + "@babel/plugin-transform-export-namespace-from" "^7.23.4" "@babel/plugin-transform-for-of" "^7.23.3" "@babel/plugin-transform-function-name" "^7.23.3" - "@babel/plugin-transform-json-strings" "^7.23.3" + "@babel/plugin-transform-json-strings" "^7.23.4" "@babel/plugin-transform-literals" "^7.23.3" - "@babel/plugin-transform-logical-assignment-operators" "^7.23.3" + "@babel/plugin-transform-logical-assignment-operators" "^7.23.4" "@babel/plugin-transform-member-expression-literals" "^7.23.3" "@babel/plugin-transform-modules-amd" "^7.23.3" "@babel/plugin-transform-modules-commonjs" "^7.23.3" @@ -1265,15 +1265,15 @@ "@babel/plugin-transform-modules-umd" "^7.23.3" "@babel/plugin-transform-named-capturing-groups-regex" "^7.22.5" "@babel/plugin-transform-new-target" "^7.23.3" - "@babel/plugin-transform-nullish-coalescing-operator" "^7.23.3" - "@babel/plugin-transform-numeric-separator" "^7.23.3" - "@babel/plugin-transform-object-rest-spread" "^7.23.3" + "@babel/plugin-transform-nullish-coalescing-operator" "^7.23.4" + "@babel/plugin-transform-numeric-separator" "^7.23.4" + "@babel/plugin-transform-object-rest-spread" "^7.23.4" "@babel/plugin-transform-object-super" "^7.23.3" - "@babel/plugin-transform-optional-catch-binding" "^7.23.3" - "@babel/plugin-transform-optional-chaining" "^7.23.3" + "@babel/plugin-transform-optional-catch-binding" "^7.23.4" + "@babel/plugin-transform-optional-chaining" "^7.23.4" "@babel/plugin-transform-parameters" "^7.23.3" "@babel/plugin-transform-private-methods" "^7.23.3" - "@babel/plugin-transform-private-property-in-object" "^7.23.3" + "@babel/plugin-transform-private-property-in-object" "^7.23.4" "@babel/plugin-transform-property-literals" "^7.23.3" "@babel/plugin-transform-regenerator" "^7.23.3" "@babel/plugin-transform-reserved-words" "^7.23.3" @@ -1385,9 +1385,9 @@ integrity sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA== "@babel/runtime@^7.0.0", "@babel/runtime@^7.1.2", "@babel/runtime@^7.12.1", "@babel/runtime@^7.12.5", "@babel/runtime@^7.14.6", "@babel/runtime@^7.18.6", "@babel/runtime@^7.19.4", "@babel/runtime@^7.22.5", "@babel/runtime@^7.8.4", "@babel/runtime@^7.9.6": - version "7.23.4" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.23.4.tgz#36fa1d2b36db873d25ec631dcc4923fdc1cf2e2e" - integrity sha512-2Yv65nlWnWlSpe3fXEyX5i7fx5kIKo4Qbcj+hMO0odwaneFjfXw5fdum+4yL20O0QiaHpia0cYQ9xpNMqrBwHg== + version "7.23.5" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.23.5.tgz#11edb98f8aeec529b82b211028177679144242db" + integrity sha512-NdUTHcPe4C99WxPub+K9l9tK5/lV4UXIoaHSYgzco9BCyjKAAwzdBI+wWtYqHt7LJdbo74ZjRPJgzVweq1sz0w== dependencies: regenerator-runtime "^0.14.0" @@ -1400,26 +1400,26 @@ "@babel/parser" "^7.22.15" "@babel/types" "^7.22.15" -"@babel/traverse@^7.20.0", "@babel/traverse@^7.20.5", "@babel/traverse@^7.23.3", "@babel/traverse@^7.23.4", "@babel/traverse@^7.4.5": - version "7.23.4" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.23.4.tgz#c2790f7edf106d059a0098770fe70801417f3f85" - integrity sha512-IYM8wSUwunWTB6tFC2dkKZhxbIjHoWemdK+3f8/wq8aKhbUscxD5MX72ubd90fxvFknaLPeGw5ycU84V1obHJg== +"@babel/traverse@^7.20.0", "@babel/traverse@^7.20.5", "@babel/traverse@^7.23.5", "@babel/traverse@^7.4.5": + version "7.23.5" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.23.5.tgz#f546bf9aba9ef2b042c0e00d245990c15508e7ec" + integrity sha512-czx7Xy5a6sapWWRx61m1Ke1Ra4vczu1mCTtJam5zRTBOonfdJ+S/B6HYmGYu3fJtr8GGET3si6IhgWVBhJ/m8w== dependencies: - "@babel/code-frame" "^7.23.4" - "@babel/generator" "^7.23.4" + "@babel/code-frame" "^7.23.5" + "@babel/generator" "^7.23.5" "@babel/helper-environment-visitor" "^7.22.20" "@babel/helper-function-name" "^7.23.0" "@babel/helper-hoist-variables" "^7.22.5" "@babel/helper-split-export-declaration" "^7.22.6" - "@babel/parser" "^7.23.4" - "@babel/types" "^7.23.4" + "@babel/parser" "^7.23.5" + "@babel/types" "^7.23.5" debug "^4.1.0" globals "^11.1.0" -"@babel/types@^7.19.4", "@babel/types@^7.20.0", "@babel/types@^7.20.5", "@babel/types@^7.22.15", "@babel/types@^7.22.19", "@babel/types@^7.22.5", "@babel/types@^7.23.0", "@babel/types@^7.23.3", "@babel/types@^7.23.4", "@babel/types@^7.4.4": - version "7.23.4" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.23.4.tgz#7206a1810fc512a7f7f7d4dace4cb4c1c9dbfb8e" - integrity sha512-7uIFwVYpoplT5jp/kVv6EF93VaJ8H+Yn5IczYiaAi98ajzjfoZfslet/e0sLh+wVBjb2qqIut1b0S26VSafsSQ== +"@babel/types@^7.19.4", "@babel/types@^7.20.0", "@babel/types@^7.20.5", "@babel/types@^7.22.15", "@babel/types@^7.22.19", "@babel/types@^7.22.5", "@babel/types@^7.23.0", "@babel/types@^7.23.4", "@babel/types@^7.23.5", "@babel/types@^7.4.4": + version "7.23.5" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.23.5.tgz#48d730a00c95109fa4393352705954d74fb5b602" + integrity sha512-ON5kSOJwVO6xXVRTvOI0eOnWe7VdUcIpsovGo9U/Br4Ie4UVFQTboO2cYnDhAGU6Fp+UxSiT+pMft0SMHfuq6w== dependencies: "@babel/helper-string-parser" "^7.23.4" "@babel/helper-validator-identifier" "^7.22.20" @@ -2303,9 +2303,9 @@ "@types/node" "*" "@types/node@*": - version "20.10.0" - resolved "https://registry.yarnpkg.com/@types/node/-/node-20.10.0.tgz#16ddf9c0a72b832ec4fcce35b8249cf149214617" - integrity sha512-D0WfRmU9TQ8I9PFx9Yc+EBHw+vSpIub4IDvQivcp26PtPrdMGAq5SDcpXEo/epqa/DXotVpekHiLNTg3iaKXBQ== + version "20.10.1" + resolved "https://registry.yarnpkg.com/@types/node/-/node-20.10.1.tgz#d2c96f356c3125fedc983d74c424910c3767141c" + integrity sha512-T2qwhjWwGH81vUEx4EXmBKsTJRXFXNZTL4v0gi01+zyBmCwzE6TyHszqX01m+QHTEq+EZNo13NeJIdEqf+Myrg== dependencies: undici-types "~5.26.4" @@ -4234,16 +4234,6 @@ dashdash@^1.12.0: dependencies: assert-plus "^1.0.0" -dayjs-business-days@1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/dayjs-business-days/-/dayjs-business-days-1.0.4.tgz#36e93e7566149e175c1541d92ce16e12145412bf" - integrity sha512-kmb8Hvlhmv7INc2YXWew4SaEBJprqJ9C48CdlO1NTsqQa31ZEcO48ziFa3YFr5W9rdwB1nUmd5iIkLwgCkJ8nA== - -dayjs@1.10.7: - version "1.10.7" - resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.10.7.tgz#2cf5f91add28116748440866a0a1d26f3a6ce468" - integrity sha512-P6twpd70BcPK34K26uJ1KT3wlhpuOAPoMwJzpsIWUxHZ7wpmbdZL/hQqBDfz7hGurYSa5PhzdhDHtt319hL3ig== - dayjs@^1.10.4, dayjs@^1.8.15: version "1.11.10" resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.11.10.tgz#68acea85317a6e164457d6d6947564029a6a16a0" @@ -4554,9 +4544,9 @@ ee-first@1.1.1: integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== electron-to-chromium@^1.4.535: - version "1.4.595" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.595.tgz#fa33309eb9aabb7426915f8e166ec60f664e9ad4" - integrity sha512-+ozvXuamBhDOKvMNUQvecxfbyICmIAwS4GpLmR0bsiSBlGnLaOcs2Cj7J8XSbW+YEaN3Xl3ffgpm+srTUWFwFQ== + version "1.4.597" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.597.tgz#9848b9aa52749bf35be88013bab52be232889d94" + integrity sha512-0XOQNqHhg2YgRVRUrS4M4vWjFCFIP2ETXcXe/0KIQBjXE9Cpy+tgzzYfuq6HGai3hWq0YywtG+5XK8fyG08EjA== elliptic@^6.4.0, elliptic@^6.5.3, elliptic@^6.5.4: version "6.5.4" @@ -5487,9 +5477,9 @@ flow-enums-runtime@^0.0.5: integrity sha512-PSZF9ZuaZD03sT9YaIs0FrGJ7lSUw7rHZIex+73UYVXg46eL/wxN5PaVcPJFudE2cJu5f0fezitV5aBkLHPUOQ== flow-parser@0.*: - version "0.222.0" - resolved "https://registry.yarnpkg.com/flow-parser/-/flow-parser-0.222.0.tgz#88decc0e35bc11c011af66dbc2f669589d69a6b2" - integrity sha512-Fq5OkFlFRSMV2EOZW+4qUYMTE0uj8pcLsYJMxXYriSBDpHAF7Ofx3PibCTy3cs5P6vbsry7eYj7Z7xFD49GIOQ== + version "0.223.0" + resolved "https://registry.yarnpkg.com/flow-parser/-/flow-parser-0.223.0.tgz#11cf53ff95e40aa5679e1da84831ec65812c50ef" + integrity sha512-POG49J/UuvwI43iP7XzW1EBQzJtkAVT1/HUwbMVtEhNK+AvymSQwBRX6khUhgzbFgfyrWgVYHhheqe1xTruBLg== flow-parser@^0.206.0: version "0.206.0"