From df52740752079d9afc3b279441ebb7ac1cd92055 Mon Sep 17 00:00:00 2001 From: Elias Nahum Date: Tue, 12 Sep 2023 07:26:05 -0300 Subject: [PATCH 01/47] Add alert when deeplink is invalid (#7538) --- app/init/launch.ts | 2 +- app/managers/global_event_handler.ts | 10 +++-- app/screens/home/index.tsx | 13 +++++- app/utils/deep_link/index.ts | 61 ++++++++++++++++++---------- app/utils/general/index.ts | 10 +++++ app/utils/server/server.test.ts | 2 +- assets/base/i18n/en.json | 1 + test/intl-test-helper.tsx | 9 +--- 8 files changed, 71 insertions(+), 37 deletions(-) diff --git a/app/init/launch.ts b/app/init/launch.ts index ca46ede8b..f03c6426c 100644 --- a/app/init/launch.ts +++ b/app/init/launch.ts @@ -74,7 +74,7 @@ const launchApp = async (props: LaunchProps) => { let serverUrl: string | undefined; switch (props?.launchType) { case Launch.DeepLink: - if (props.extra?.type !== DeepLink.Invalid) { + if (props.extra && props.extra.type !== DeepLink.Invalid) { const extra = props.extra as DeepLinkWithData; const existingServer = DatabaseManager.searchUrl(extra.data!.serverUrl); serverUrl = existingServer; diff --git a/app/managers/global_event_handler.ts b/app/managers/global_event_handler.ts index 377e03c8e..cc9b5c9dd 100644 --- a/app/managers/global_event_handler.ts +++ b/app/managers/global_event_handler.ts @@ -17,7 +17,8 @@ import {queryTeamDefaultChannel} from '@queries/servers/channel'; import {getCommonSystemValues} from '@queries/servers/system'; import {getTeamChannelHistory} from '@queries/servers/team'; import {setScreensOrientation} from '@screens/navigation'; -import {handleDeepLink} from '@utils/deep_link'; +import {alertInvalidDeepLink, handleDeepLink} from '@utils/deep_link'; +import {getIntlShape} from '@utils/general'; type LinkingCallbackArg = {url: string}; @@ -50,13 +51,16 @@ class GlobalEventHandler { } }; - onDeepLink = (event: LinkingCallbackArg) => { + onDeepLink = async (event: LinkingCallbackArg) => { if (event.url?.startsWith(Sso.REDIRECT_URL_SCHEME) || event.url?.startsWith(Sso.REDIRECT_URL_SCHEME_DEV)) { return; } if (event.url) { - handleDeepLink(event.url); + const {error} = await handleDeepLink(event.url); + if (error) { + alertInvalidDeepLink(getIntlShape(DEFAULT_LOCALE)); + } } }; diff --git a/app/screens/home/index.tsx b/app/screens/home/index.tsx index 1304f89d3..828cca8a1 100644 --- a/app/screens/home/index.tsx +++ b/app/screens/home/index.tsx @@ -17,7 +17,7 @@ import {useAppState} from '@hooks/device'; import {getAllServers} from '@queries/app/servers'; import {findChannels, popToRoot} from '@screens/navigation'; import NavigationStore from '@store/navigation_store'; -import {handleDeepLink} from '@utils/deep_link'; +import {alertInvalidDeepLink, handleDeepLink} from '@utils/deep_link'; import {logError} from '@utils/log'; import {alertChannelArchived, alertChannelRemove, alertTeamRemove} from '@utils/navigation'; import {notificationError} from '@utils/notification'; @@ -121,9 +121,18 @@ export default function HomeScreen(props: HomeProps) { useEffect(() => { if (props.launchType === 'deeplink') { + if (props.launchError) { + alertInvalidDeepLink(intl); + return; + } + const deepLink = props.extra as DeepLinkWithData; if (deepLink?.url) { - handleDeepLink(deepLink.url); + handleDeepLink(deepLink.url).then((result) => { + if (result.error) { + alertInvalidDeepLink(intl); + } + }); } } }, []); diff --git a/app/utils/deep_link/index.ts b/app/utils/deep_link/index.ts index 24031fc23..7b2bb982d 100644 --- a/app/utils/deep_link/index.ts +++ b/app/utils/deep_link/index.ts @@ -10,14 +10,14 @@ import {fetchUsersByUsernames} from '@actions/remote/user'; import {DeepLink, Launch, Screens} from '@constants'; import {getDefaultThemeByAppearance} from '@context/theme'; import DatabaseManager from '@database/manager'; -import {DEFAULT_LOCALE, getTranslations} from '@i18n'; +import {DEFAULT_LOCALE, getTranslations, t} from '@i18n'; import WebsocketManager from '@managers/websocket_manager'; import {getActiveServerUrl} from '@queries/app/servers'; import {getCurrentUser, queryUsersByUsername} from '@queries/servers/user'; import {dismissAllModalsAndPopToRoot} from '@screens/navigation'; import EphemeralStore from '@store/ephemeral_store'; import NavigationStore from '@store/navigation_store'; -import {errorBadChannel, errorUnkownUser} from '@utils/draft'; +import {alertErrorWithFallback, errorBadChannel, errorUnkownUser} from '@utils/draft'; import {logError} from '@utils/log'; import {escapeRegex} from '@utils/markdown'; import {addNewServer} from '@utils/server'; @@ -115,31 +115,39 @@ export async function handleDeepLink(deepLinkUrl: string, intlShape?: IntlShape, } export function parseDeepLink(deepLinkUrl: string): DeepLinkWithData { - const url = removeProtocol(deepLinkUrl); + try { + const url = removeProtocol(decodeURIComponent(deepLinkUrl)); - let match = new RegExp('(.*)\\/([^\\/]+)\\/channels\\/(\\S+)').exec(url); - if (match) { - return {type: DeepLink.Channel, url: deepLinkUrl, data: {serverUrl: match[1], teamName: match[2], channelName: match[3]}}; - } + if (url.includes('../') || url.includes('/..')) { + return {type: DeepLink.Invalid, url: deepLinkUrl}; + } - match = new RegExp('(.*)\\/([^\\/]+)\\/pl\\/(\\w+)').exec(url); - if (match) { - return {type: DeepLink.Permalink, url: deepLinkUrl, data: {serverUrl: match[1], teamName: match[2], postId: match[3]}}; - } + let match = new RegExp('(.*)\\/([^\\/]+)\\/channels\\/(\\S+)').exec(url); + if (match) { + return {type: DeepLink.Channel, url: deepLinkUrl, data: {serverUrl: match[1], teamName: match[2], channelName: match[3]}}; + } - match = new RegExp('(.*)\\/([^\\/]+)\\/messages\\/@(\\S+)').exec(url); - if (match) { - return {type: DeepLink.DirectMessage, url: deepLinkUrl, data: {serverUrl: match[1], teamName: match[2], userName: match[3]}}; - } + match = new RegExp('(.*)\\/([^\\/]+)\\/pl\\/(\\w+)').exec(url); + if (match) { + return {type: DeepLink.Permalink, url: deepLinkUrl, data: {serverUrl: match[1], teamName: match[2], postId: match[3]}}; + } - match = new RegExp('(.*)\\/([^\\/]+)\\/messages\\/(\\S+)').exec(url); - if (match) { - return {type: DeepLink.GroupMessage, url: deepLinkUrl, data: {serverUrl: match[1], teamName: match[2], channelId: match[3]}}; - } + match = new RegExp('(.*)\\/([^\\/]+)\\/messages\\/@(\\S+)').exec(url); + if (match) { + return {type: DeepLink.DirectMessage, url: deepLinkUrl, data: {serverUrl: match[1], teamName: match[2], userName: match[3]}}; + } - match = new RegExp('(.*)\\/plugins\\/([^\\/]+)\\/(\\S+)').exec(url); - if (match) { - return {type: DeepLink.Plugin, url: deepLinkUrl, data: {serverUrl: match[1], id: match[2], teamName: ''}}; + match = new RegExp('(.*)\\/([^\\/]+)\\/messages\\/(\\S+)').exec(url); + if (match) { + return {type: DeepLink.GroupMessage, url: deepLinkUrl, data: {serverUrl: match[1], teamName: match[2], channelId: match[3]}}; + } + + match = new RegExp('(.*)\\/plugins\\/([^\\/]+)\\/(\\S+)').exec(url); + if (match) { + return {type: DeepLink.Plugin, url: deepLinkUrl, data: {serverUrl: match[1], id: match[2], teamName: ''}}; + } + } catch { + // do nothing just return invalid deeplink } return {type: DeepLink.Invalid, url: deepLinkUrl}; @@ -201,3 +209,12 @@ export const getLaunchPropsFromDeepLink = (deepLinkUrl: string, coldStart = fals return launchProps; }; + +export function alertInvalidDeepLink(intl: IntlShape) { + const message = { + id: t('mobile.deep_link.invalid'), + defaultMessage: 'This link you are trying to open is invalid.', + }; + + return alertErrorWithFallback(intl, {}, message); +} diff --git a/app/utils/general/index.ts b/app/utils/general/index.ts index 5db186d06..fb5a40d59 100644 --- a/app/utils/general/index.ts +++ b/app/utils/general/index.ts @@ -1,13 +1,23 @@ // Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. // See LICENSE.txt for license information. +import {createIntl} from 'react-intl'; import DeviceInfo from 'react-native-device-info'; import ReactNativeHapticFeedback, {HapticFeedbackTypes} from 'react-native-haptic-feedback'; +import {getTranslations} from '@i18n'; + type SortByCreatAt = (Session | Channel | Team | Post) & { create_at: number; } +export function getIntlShape(locale = 'en') { + return createIntl({ + locale, + messages: getTranslations(locale), + }); +} + // eslint-disable-next-line @typescript-eslint/no-unused-vars export function emptyFunction(..._args: any[]) { // do nothing diff --git a/app/utils/server/server.test.ts b/app/utils/server/server.test.ts index b7e0ab691..62eac99c9 100644 --- a/app/utils/server/server.test.ts +++ b/app/utils/server/server.test.ts @@ -3,7 +3,7 @@ import {Alert} from 'react-native'; -import {getIntlShape} from '@test/intl-test-helper'; +import {getIntlShape} from '@utils/general'; import {unsupportedServer} from '.'; diff --git a/assets/base/i18n/en.json b/assets/base/i18n/en.json index 4ff97515b..15707f980 100644 --- a/assets/base/i18n/en.json +++ b/assets/base/i18n/en.json @@ -521,6 +521,7 @@ "mobile.custom_status.clear_after": "Clear After", "mobile.custom_status.clear_after.title": "Clear Custom Status After", "mobile.custom_status.modal_confirm": "Done", + "mobile.deep_link.invalid": "This link you are trying to open is invalid.", "mobile.diagnostic_id.empty": "A DiagnosticId value is missing for this server. Contact your system admin to review this value and restart the server.", "mobile.direct_message.error": "We couldn't open a DM with {displayName}.", "mobile.display_settings.clockDisplay": "Clock Display", diff --git a/test/intl-test-helper.tsx b/test/intl-test-helper.tsx index 576ca514e..fc1cb9aef 100644 --- a/test/intl-test-helper.tsx +++ b/test/intl-test-helper.tsx @@ -4,7 +4,7 @@ import DatabaseProvider from '@nozbe/watermelondb/DatabaseProvider'; import {render} from '@testing-library/react-native'; import React, {type ReactElement} from 'react'; -import {createIntl, IntlProvider} from 'react-intl'; +import {IntlProvider} from 'react-intl'; import {SafeAreaProvider} from 'react-native-safe-area-context'; import {ThemeContext, getDefaultThemeByAppearance} from '@context/theme'; @@ -12,13 +12,6 @@ import {getTranslations} from '@i18n'; import type Database from '@nozbe/watermelondb/Database'; -export function getIntlShape(locale = 'en') { - return createIntl({ - locale, - messages: getTranslations(locale), - }); -} - export function renderWithIntl(ui: ReactElement, {locale = 'en', ...renderOptions} = {}) { function Wrapper({children}: {children: ReactElement}) { return ( From 1d0eefab782866e45e36c978cfae72f81ff3fecb Mon Sep 17 00:00:00 2001 From: Elias Nahum Date: Fri, 15 Sep 2023 09:47:38 -0300 Subject: [PATCH 02/47] fix: MFA error display (#7544) --- app/screens/mfa/index.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/screens/mfa/index.tsx b/app/screens/mfa/index.tsx index a508f1fe9..adbc42413 100644 --- a/app/screens/mfa/index.tsx +++ b/app/screens/mfa/index.tsx @@ -143,7 +143,7 @@ const MFA = ({componentId, config, goToHome, license, loginId, password, serverD const result: LoginActionResponse = await login(serverUrl, {loginId, password, mfaToken: token, config, license, serverDisplayName}); setIsLoading(false); if (result?.error && result.failed) { - setError(getErrorMessage(error, intl)); + setError(getErrorMessage(result.error, intl)); return; } goToHome(result.error); @@ -191,7 +191,7 @@ const MFA = ({componentId, config, goToHome, license, loginId, password, serverD bounces={false} contentContainerStyle={styles.innerContainer} enableAutomaticScroll={Platform.OS === 'android'} - enableOnAndroid={true} + enableOnAndroid={false} enableResetScrollToCoords={true} extraScrollHeight={0} keyboardDismissMode='on-drag' From f24642989b89d9a1c83ec13aff7d4801715c7131 Mon Sep 17 00:00:00 2001 From: Alex Yetto Date: Fri, 15 Sep 2023 17:20:20 +0300 Subject: [PATCH 03/47] fix husky by adding npm prepare script (#7543) Co-authored-by: Fokin Aleksandr Konstantinovich --- package.json | 1 + 1 file changed, 1 insertion(+) diff --git a/package.json b/package.json index 043fe7323..fa464345b 100644 --- a/package.json +++ b/package.json @@ -198,6 +198,7 @@ "pod-install": "react-native setup-ios-permissions && cd ios && pod install", "pod-install-m1": "react-native setup-ios-permissions && cd ios && arch -x86_64 pod install", "postinstall": "patch-package && ./scripts/postinstall.sh", + "prepare": "husky install", "preinstall": "./scripts/preinstall.sh && npx solidarity", "start": "react-native start", "test": "jest --forceExit --runInBand", From 0ec2b09fd5f2d8e553ec15f85cd6b7c802b57a02 Mon Sep 17 00:00:00 2001 From: Christopher Poile Date: Mon, 25 Sep 2023 08:45:14 -0400 Subject: [PATCH 04/47] MM-54117 - Calls: Support wiredHeadsets; generalize panel_item (#7545) * generalize panel_item; support wiredHeadsets * i18n --- .../copy_channel_link_option.tsx | 2 +- .../channel_actions/info_box/index.tsx | 2 +- .../leave_channel_label.tsx | 2 +- .../markdown/at_mention/at_mention.tsx | 4 +- .../markdown/markdown_code_block/index.tsx | 4 +- .../markdown/markdown_image/index.tsx | 4 +- .../markdown/markdown_latex_block/index.tsx | 4 +- .../markdown/markdown_link/markdown_link.tsx | 4 +- .../camera_quick_action/camera_type.tsx | 4 +- .../post_list/post/body/failed/index.tsx | 4 +- app/components/slide_up_panel_item/index.tsx | 77 ++++++++++++------- .../calls/components/audio_device_button.tsx | 52 +++++++++---- app/products/calls/connection/connection.ts | 65 +++++++++++----- .../calls/screens/call_screen/call_screen.tsx | 7 +- .../browse_channels/dropdown_slideup.tsx | 17 ++-- .../edit_profile/components/panel_item.tsx | 2 +- .../options/user_presence/index.tsx | 16 ++-- assets/base/i18n/en.json | 1 + package-lock.json | 14 ++-- package.json | 2 +- 20 files changed, 178 insertions(+), 109 deletions(-) diff --git a/app/components/channel_actions/copy_channel_link_option/copy_channel_link_option.tsx b/app/components/channel_actions/copy_channel_link_option/copy_channel_link_option.tsx index 2331b143c..997f7bb44 100644 --- a/app/components/channel_actions/copy_channel_link_option/copy_channel_link_option.tsx +++ b/app/components/channel_actions/copy_channel_link_option/copy_channel_link_option.tsx @@ -35,7 +35,7 @@ const CopyChannelLinkOption = ({channelName, teamName, showAsLabel, testID}: Pro ); diff --git a/app/components/channel_actions/info_box/index.tsx b/app/components/channel_actions/info_box/index.tsx index 036e4a2b6..f55fbd320 100644 --- a/app/components/channel_actions/info_box/index.tsx +++ b/app/components/channel_actions/info_box/index.tsx @@ -45,7 +45,7 @@ const InfoBox = ({channelId, containerStyle, showAsLabel = false, testID}: Props if (showAsLabel) { return ( { dismissBottomSheet(); let username = mentionName; @@ -182,7 +182,7 @@ const AtMention = ({ /> { dismissBottomSheet(); }} diff --git a/app/components/markdown/markdown_code_block/index.tsx b/app/components/markdown/markdown_code_block/index.tsx index 903504d44..a9d799b96 100644 --- a/app/components/markdown/markdown_code_block/index.tsx +++ b/app/components/markdown/markdown_code_block/index.tsx @@ -123,7 +123,7 @@ const MarkdownCodeBlock = ({language = '', content, textStyle}: MarkdownCodeBloc style={style.bottomSheet} > { dismissBottomSheet(); Clipboard.setString(content); @@ -133,7 +133,7 @@ const MarkdownCodeBlock = ({language = '', content, textStyle}: MarkdownCodeBloc /> { dismissBottomSheet(); }} diff --git a/app/components/markdown/markdown_image/index.tsx b/app/components/markdown/markdown_image/index.tsx index 5cc5a62ef..5cb5f6a8a 100644 --- a/app/components/markdown/markdown_image/index.tsx +++ b/app/components/markdown/markdown_image/index.tsx @@ -157,7 +157,7 @@ const MarkdownImage = ({ style={style.bottomSheet} > { dismissBottomSheet(); Clipboard.setString(linkDestination || source); @@ -167,7 +167,7 @@ const MarkdownImage = ({ /> { dismissBottomSheet(); }} diff --git a/app/components/markdown/markdown_latex_block/index.tsx b/app/components/markdown/markdown_latex_block/index.tsx index 3b7dd644c..65437cb9e 100644 --- a/app/components/markdown/markdown_latex_block/index.tsx +++ b/app/components/markdown/markdown_latex_block/index.tsx @@ -139,7 +139,7 @@ const LatexCodeBlock = ({content, theme}: Props) => { style={styles.bottomSheet} > { dismissBottomSheet(); Clipboard.setString(content); @@ -149,7 +149,7 @@ const LatexCodeBlock = ({content, theme}: Props) => { /> { dismissBottomSheet(); Clipboard.setString(href); @@ -126,7 +126,7 @@ const MarkdownLink = ({children, experimentalNormalizeMarkdownLinks, href, siteU /> { dismissBottomSheet(); }} diff --git a/app/components/post_draft/quick_actions/camera_quick_action/camera_type.tsx b/app/components/post_draft/quick_actions/camera_quick_action/camera_type.tsx index e681c7a56..c5198299a 100644 --- a/app/components/post_draft/quick_actions/camera_quick_action/camera_type.tsx +++ b/app/components/post_draft/quick_actions/camera_quick_action/camera_type.tsx @@ -66,13 +66,13 @@ const CameraType = ({onPress}: Props) => { /> } { style={styles.bottomSheet} > { dismissBottomSheet(); retryFailedPost(serverUrl, post); @@ -54,7 +54,7 @@ const Failed = ({post, theme}: FailedProps) => { /> { dismissBottomSheet(); removePost(serverUrl, post); diff --git a/app/components/slide_up_panel_item/index.tsx b/app/components/slide_up_panel_item/index.tsx index ce02022c5..37a4c4adf 100644 --- a/app/components/slide_up_panel_item/index.tsx +++ b/app/components/slide_up_panel_item/index.tsx @@ -14,10 +14,12 @@ import {isValidUrl} from '@utils/url'; type SlideUpPanelProps = { destructive?: boolean; - icon?: string | Source; - rightIcon?: boolean; - imageStyles?: StyleProp; - iconStyles?: StyleProp; + leftIcon?: string | Source; + leftImageStyles?: StyleProp; + leftIconStyles?: StyleProp; + rightIcon?: string | Source; + rightImageStyles?: StyleProp; + rightIconStyles?: StyleProp; onPress: () => void; textStyles?: TextStyle; testID?: string; @@ -65,13 +67,55 @@ const getStyleSheet = makeStyleSheetFromTheme((theme: Theme) => { }; }); -const SlideUpPanelItem = ({destructive, icon, imageStyles, onPress, testID, text, textStyles, iconStyles, rightIcon = false}: SlideUpPanelProps) => { +const SlideUpPanelItem = ({ + destructive = false, + leftIcon, + leftImageStyles, + leftIconStyles, + rightIcon, + rightImageStyles, + rightIconStyles, + onPress, + testID, + text, + textStyles, +}: SlideUpPanelProps) => { const theme = useTheme(); + const style = getStyleSheet(theme); + + const {image: leftImage, iconStyle: leftIconStyle} = useImageAndStyle(leftIcon, leftImageStyles, leftIconStyles, destructive); + const {image: rightImage, iconStyle: rightIconStyle} = useImageAndStyle(rightIcon, rightImageStyles, rightIconStyles, destructive); + const handleOnPress = useCallback(preventDoubleTap(onPress, 500), []); + + return ( + + + {Boolean(leftImage) && + {leftImage} + } + + {text} + + {Boolean(rightImage) && + {rightImage} + } + + + ); +}; + +const useImageAndStyle = (icon: string | Source | undefined, imageStyles: StyleProp, iconStyles: StyleProp, destructive: boolean) => { + const theme = useTheme(); const style = getStyleSheet(theme); let image; - let iconStyle: StyleProp = [style.iconContainer]; + let iconStyle: Array> = [style.iconContainer]; if (icon) { if (typeof icon === 'object') { if (icon.uri && isValidUrl(icon.uri)) { @@ -101,26 +145,7 @@ const SlideUpPanelItem = ({destructive, icon, imageStyles, onPress, testID, text } } - return ( - - - {Boolean(image) && !rightIcon && - {image} - } - - {text} - - {Boolean(image) && rightIcon && - {image} - } - - - ); + return {image, iconStyle}; }; export default SlideUpPanelItem; diff --git a/app/products/calls/components/audio_device_button.tsx b/app/products/calls/components/audio_device_button.tsx index 47c339bec..a62fdbaf6 100644 --- a/app/products/calls/components/audio_device_button.tsx +++ b/app/products/calls/components/audio_device_button.tsx @@ -14,7 +14,7 @@ import {Device} from '@constants'; import {useTheme} from '@context/theme'; import {bottomSheet, dismissBottomSheet} from '@screens/navigation'; import {bottomSheetSnapPoint} from '@utils/helpers'; -import {typography} from '@utils/typography'; +import {makeStyleSheetFromTheme} from '@utils/theme'; type Props = { pressableStyle: StyleProp; @@ -23,13 +23,16 @@ type Props = { currentCall: CurrentCall; } -const style = { - bold: typography('Body', 200, 'SemiBold'), -}; +const getStyleFromTheme = makeStyleSheetFromTheme((theme: Theme) => ({ + checkIcon: { + color: theme.buttonBg, + }, +})); export const AudioDeviceButton = ({pressableStyle, iconStyle, buttonTextStyle, currentCall}: Props) => { const intl = useIntl(); const theme = useTheme(); + const style = getStyleFromTheme(theme); const {bottom} = useSafeAreaInsets(); const isTablet = Device.IS_TABLET; // not `useIsTablet` because even if we're in splitView, we're still using a tablet. const color = theme.awayIndicator; @@ -38,10 +41,14 @@ export const AudioDeviceButton = ({pressableStyle, iconStyle, buttonTextStyle, c const tabletLabel = intl.formatMessage({id: 'mobile.calls_tablet', defaultMessage: 'Tablet'}); const speakerLabel = intl.formatMessage({id: 'mobile.calls_speaker', defaultMessage: 'SpeakerPhone'}); const bluetoothLabel = intl.formatMessage({id: 'mobile.calls_bluetooth', defaultMessage: 'Bluetooth'}); + const headsetLabel = intl.formatMessage({id: 'mobile.calls_headset', defaultMessage: 'Headset'}); const deviceSelector = useCallback(async () => { const currentDevice = audioDeviceInfo.selectedAudioDevice; - const available = audioDeviceInfo.availableAudioDeviceList; + let available = audioDeviceInfo.availableAudioDeviceList; + if (available.includes(AudioDevice.WiredHeadset)) { + available = available.filter((d) => d !== AudioDevice.Earpiece); + } const selectDevice = (device: AudioDevice) => { setPreferredAudioRoute(device); dismissBottomSheet(); @@ -52,34 +59,47 @@ export const AudioDeviceButton = ({pressableStyle, iconStyle, buttonTextStyle, c {available.includes(AudioDevice.Earpiece) && isTablet && selectDevice(AudioDevice.Earpiece)} text={tabletLabel} - textStyles={currentDevice === AudioDevice.Earpiece ? {...style.bold, color} : {}} + rightIcon={currentDevice === AudioDevice.Earpiece ? 'check' : undefined} + rightIconStyles={currentDevice === AudioDevice.Earpiece ? style.checkIcon : {}} /> } {available.includes(AudioDevice.Earpiece) && !isTablet && selectDevice(AudioDevice.Earpiece)} text={phoneLabel} - textStyles={currentDevice === AudioDevice.Earpiece ? {...style.bold, color} : {}} + rightIcon={currentDevice === AudioDevice.Earpiece ? 'check' : undefined} + rightIconStyles={currentDevice === AudioDevice.Earpiece ? style.checkIcon : {}} /> } {available.includes(AudioDevice.Speakerphone) && selectDevice(AudioDevice.Speakerphone)} text={speakerLabel} - textStyles={currentDevice === AudioDevice.Speakerphone ? {...style.bold, color} : {}} + rightIcon={currentDevice === AudioDevice.Speakerphone ? 'check' : undefined} + rightIconStyles={currentDevice === AudioDevice.Speakerphone ? style.checkIcon : {}} /> } {available.includes(AudioDevice.Bluetooth) && selectDevice(AudioDevice.Bluetooth)} text={bluetoothLabel} - textStyles={currentDevice === AudioDevice.Bluetooth ? {...style.bold, color} : {}} + rightIcon={currentDevice === AudioDevice.Bluetooth ? 'check' : undefined} + rightIconStyles={currentDevice === AudioDevice.Bluetooth ? style.checkIcon : {}} + /> + } + {available.includes(AudioDevice.WiredHeadset) && + selectDevice(AudioDevice.WiredHeadset)} + text={headsetLabel} + rightIcon={currentDevice === AudioDevice.WiredHeadset ? 'check' : undefined} + rightIconStyles={currentDevice === AudioDevice.WiredHeadset ? style.checkIcon : {}} /> } @@ -89,7 +109,7 @@ export const AudioDeviceButton = ({pressableStyle, iconStyle, buttonTextStyle, c await bottomSheet({ closeButtonId: 'close-other-actions', renderContent, - snapPoints: [1, bottomSheetSnapPoint(audioDeviceInfo.availableAudioDeviceList.length + 1, ITEM_HEIGHT, bottom)], + snapPoints: [1, bottomSheetSnapPoint(available.length + 1, ITEM_HEIGHT, bottom)], title: intl.formatMessage({id: 'mobile.calls_audio_device', defaultMessage: 'Select audio device'}), theme, }); @@ -106,6 +126,10 @@ export const AudioDeviceButton = ({pressableStyle, iconStyle, buttonTextStyle, c icon = 'bluetooth'; label = bluetoothLabel; break; + case AudioDevice.WiredHeadset: + icon = 'headphones'; + label = headsetLabel; + break; } return ( diff --git a/app/products/calls/connection/connection.ts b/app/products/calls/connection/connection.ts index 0dd69a3d2..6d736e3ff 100644 --- a/app/products/calls/connection/connection.ts +++ b/app/products/calls/connection/connection.ts @@ -3,7 +3,7 @@ import {RTCMonitor, RTCPeer} from '@mattermost/calls/lib'; import {deflate} from 'pako'; -import {DeviceEventEmitter, type EmitterSubscription, Platform} from 'react-native'; +import {DeviceEventEmitter, type EmitterSubscription, NativeEventEmitter, NativeModules, Platform} from 'react-native'; import InCallManager from 'react-native-incall-manager'; import {mediaDevices, MediaStream, MediaStreamTrack, RTCPeerConnection} from 'react-native-webrtc'; @@ -24,6 +24,8 @@ import type {EmojiData} from '@mattermost/calls/lib/types'; const peerConnectTimeout = 5000; const rtcMonitorInterval = 4000; +const InCallManagerEmitter = new NativeEventEmitter(NativeModules.InCallManager); + export async function newConnection( serverUrl: string, channelID: string, @@ -40,6 +42,7 @@ export async function newConnection( let isClosed = false; let onCallEnd: EmitterSubscription | null = null; let audioDeviceChanged: EmitterSubscription | null = null; + let wiredHeadsetEvent: EmitterSubscription | null = null; const streams: MediaStream[] = []; let rtcMonitor: RTCMonitor | null = null; const logger = { @@ -106,6 +109,7 @@ export async function newConnection( peer = null; InCallManager.stop(); audioDeviceChanged?.remove(); + wiredHeadsetEvent?.remove(); if (closeCb) { closeCb(); @@ -224,29 +228,50 @@ export async function newConnection( let btInitialized = false; let speakerInitialized = false; - audioDeviceChanged = DeviceEventEmitter.addListener('onAudioDeviceChanged', (data: AudioDeviceInfoRaw) => { - const info: AudioDeviceInfo = { - availableAudioDeviceList: JSON.parse(data.availableAudioDeviceList), - selectedAudioDevice: data.selectedAudioDevice, - }; - setAudioDeviceInfo(info); + if (Platform.OS === 'android') { + audioDeviceChanged = DeviceEventEmitter.addListener('onAudioDeviceChanged', (data: AudioDeviceInfoRaw) => { + const info: AudioDeviceInfo = { + availableAudioDeviceList: JSON.parse(data.availableAudioDeviceList), + selectedAudioDevice: data.selectedAudioDevice, + }; + setAudioDeviceInfo(info); + logDebug('AudioDeviceChanged. info:', info); - // Auto switch to bluetooth the first time we connect to bluetooth, but not after. - if (!btInitialized) { - if (info.availableAudioDeviceList.includes(AudioDevice.Bluetooth)) { - setPreferredAudioRoute(AudioDevice.Bluetooth); - btInitialized = true; - } else if (!speakerInitialized) { - // If we don't have bluetooth available, default to speakerphone on. - setPreferredAudioRoute(AudioDevice.Speakerphone); - speakerInitialized = true; + // Auto switch to bluetooth the first time we connect to bluetooth, but not after. + if (!btInitialized) { + if (info.availableAudioDeviceList.includes(AudioDevice.Bluetooth)) { + setPreferredAudioRoute(AudioDevice.Bluetooth); + btInitialized = true; + } else if (!speakerInitialized) { + // If we don't have bluetooth available, default to speakerphone on. + setPreferredAudioRoute(AudioDevice.Speakerphone); + speakerInitialized = true; + } } - } - }); + }); + } - // We default to speakerphone (Android is handled above in the onAudioDeviceChanged handler above). + // We default to speakerphone, but not if the WiredHeadset is plugged in. if (Platform.OS === 'ios') { - setSpeakerphoneOn(true); + wiredHeadsetEvent = InCallManagerEmitter.addListener('WiredHeadset', (data) => { + // Log for customer debugging. For the moment we're not changing output labels because of incall-manager iOS + // limitations with how it reports Bluetooth -- namely that it doesn't, so we don't know when Bluetooth is + // overriding the earpiece and/or headset. + logDebug('WiredHeadset plugged in. Data:', data); + + // iOS switches to the headset when we connect it, so turn off speakerphone to keep UI in sync. + if (data.isPlugged) { + setSpeakerphoneOn(false); + } + }); + + // If headset is plugged in when the call starts, use it. + const report = await InCallManager.getIsWiredHeadsetPluggedIn(); + if (report.isWiredHeadsetPluggedIn) { + setSpeakerphoneOn(false); + } else { + setSpeakerphoneOn(true); + } } peer = new RTCPeer({ diff --git a/app/products/calls/screens/call_screen/call_screen.tsx b/app/products/calls/screens/call_screen/call_screen.tsx index 8deaad047..103ced171 100644 --- a/app/products/calls/screens/call_screen/call_screen.tsx +++ b/app/products/calls/screens/call_screen/call_screen.tsx @@ -477,7 +477,7 @@ const CallScreen = ({ { showStartRecording && @@ -485,14 +485,14 @@ const CallScreen = ({ { showStopRecording && } @@ -764,7 +764,6 @@ const CallScreen = ({ iconStyle={[ style.buttonIcon, isLandscape && style.buttonIconLandscape, - style.speakerphoneIcon, currentCall.speakerphoneOn && style.buttonOn, ]} buttonTextStyle={style.buttonText} diff --git a/app/screens/browse_channels/dropdown_slideup.tsx b/app/screens/browse_channels/dropdown_slideup.tsx index f9f8e51c1..c1ae0b44a 100644 --- a/app/screens/browse_channels/dropdown_slideup.tsx +++ b/app/screens/browse_channels/dropdown_slideup.tsx @@ -42,11 +42,6 @@ export default function DropdownSlideup({ const style = getStyleFromTheme(theme); const isTablet = useIsTablet(); - const commonProps = { - rightIcon: true, - iconStyles: style.checkIcon, - }; - const handlePublicPress = useCallback(() => { dismissBottomSheet(); onPress(PUBLIC); @@ -73,16 +68,16 @@ export default function DropdownSlideup({ onPress={handlePublicPress} testID='browse_channels.dropdown_slideup_item.public_channels' text={intl.formatMessage({id: 'browse_channels.publicChannels', defaultMessage: 'Public Channels'})} - icon={selected === PUBLIC ? 'check' : undefined} - {...commonProps} + rightIcon={selected === PUBLIC ? 'check' : undefined} + rightIconStyles={style.checkIcon} /> {canShowArchivedChannels && ( )} {sharedChannelsEnabled && ( @@ -90,8 +85,8 @@ export default function DropdownSlideup({ onPress={handleSharedPress} testID='browse_channels.dropdown_slideup_item.shared_channels' text={intl.formatMessage({id: 'browse_channels.sharedChannels', defaultMessage: 'Shared Channels'})} - icon={selected === SHARED ? 'check' : undefined} - {...commonProps} + rightIcon={selected === SHARED ? 'check' : undefined} + rightIconStyles={style.checkIcon} /> )} diff --git a/app/screens/edit_profile/components/panel_item.tsx b/app/screens/edit_profile/components/panel_item.tsx index 9bd3025a1..5cb414e9a 100644 --- a/app/screens/edit_profile/components/panel_item.tsx +++ b/app/screens/edit_profile/components/panel_item.tsx @@ -71,7 +71,7 @@ const PanelItem = ({pickerAction, pictureUtils, onRemoveProfileImage}: PanelItem return ( { )} setUserStatus(ONLINE)} testID='user_status.online.option' text={intl.formatMessage({ @@ -89,8 +89,8 @@ const UserStatus = ({currentUser}: Props) => { textStyles={styles.label} /> setUserStatus(AWAY)} testID='user_status.away.option' text={intl.formatMessage({ @@ -100,8 +100,8 @@ const UserStatus = ({currentUser}: Props) => { textStyles={styles.label} /> setUserStatus(DND)} testID='user_status.dnd.option' text={intl.formatMessage({ @@ -111,8 +111,8 @@ const UserStatus = ({currentUser}: Props) => { textStyles={styles.label} /> setUserStatus(OFFLINE)} testID='user_status.offline.option' text={intl.formatMessage({ diff --git a/assets/base/i18n/en.json b/assets/base/i18n/en.json index 15707f980..4b8a02ce2 100644 --- a/assets/base/i18n/en.json +++ b/assets/base/i18n/en.json @@ -435,6 +435,7 @@ "mobile.calls_ended_at": "Ended at", "mobile.calls_error_message": "Error: {error}", "mobile.calls_error_title": "Error", + "mobile.calls_headset": "Headset", "mobile.calls_host": "host", "mobile.calls_host_rec": "You are recording this meeting. Consider letting everyone know that this meeting is being recorded.", "mobile.calls_host_rec_error": "Please try to record again. You can also contact your system admin for troubleshooting help.", diff --git a/package-lock.json b/package-lock.json index 057f7c33e..7f7928ca5 100644 --- a/package-lock.json +++ b/package-lock.json @@ -18,7 +18,7 @@ "@formatjs/intl-relativetimeformat": "11.2.4", "@gorhom/bottom-sheet": "4.4.7", "@mattermost/calls": "github:mattermost/calls-common#v0.17.0", - "@mattermost/compass-icons": "0.1.37", + "@mattermost/compass-icons": "0.1.38", "@mattermost/react-native-emm": "1.3.5", "@mattermost/react-native-network-client": "1.4.1", "@mattermost/react-native-paste-input": "0.6.4", @@ -3436,9 +3436,9 @@ } }, "node_modules/@mattermost/compass-icons": { - "version": "0.1.37", - "resolved": "https://registry.npmjs.org/@mattermost/compass-icons/-/compass-icons-0.1.37.tgz", - "integrity": "sha512-4me1W0hj1nu8A1gpdQA6cij/hyb2P7uIYMJQ+xrNvn5ImTRfQ67LEdyNOa/LY+oT1NO2ui6kKOs8oLUehIaneg==" + "version": "0.1.38", + "resolved": "https://registry.npmjs.org/@mattermost/compass-icons/-/compass-icons-0.1.38.tgz", + "integrity": "sha512-JfLQJtvxD++7lw+jiLWs55+SOhF8wPQgfTCOEi/uyl9bRxfY736a9fPzRcRJwF80se7lPMxvAx8itwvTz0o7CQ==" }, "node_modules/@mattermost/react-native-emm": { "version": "1.3.5", @@ -25415,9 +25415,9 @@ } }, "@mattermost/compass-icons": { - "version": "0.1.37", - "resolved": "https://registry.npmjs.org/@mattermost/compass-icons/-/compass-icons-0.1.37.tgz", - "integrity": "sha512-4me1W0hj1nu8A1gpdQA6cij/hyb2P7uIYMJQ+xrNvn5ImTRfQ67LEdyNOa/LY+oT1NO2ui6kKOs8oLUehIaneg==" + "version": "0.1.38", + "resolved": "https://registry.npmjs.org/@mattermost/compass-icons/-/compass-icons-0.1.38.tgz", + "integrity": "sha512-JfLQJtvxD++7lw+jiLWs55+SOhF8wPQgfTCOEi/uyl9bRxfY736a9fPzRcRJwF80se7lPMxvAx8itwvTz0o7CQ==" }, "@mattermost/react-native-emm": { "version": "1.3.5", diff --git a/package.json b/package.json index fa464345b..5f5ea59c9 100644 --- a/package.json +++ b/package.json @@ -15,7 +15,7 @@ "@formatjs/intl-relativetimeformat": "11.2.4", "@gorhom/bottom-sheet": "4.4.7", "@mattermost/calls": "github:mattermost/calls-common#v0.17.0", - "@mattermost/compass-icons": "0.1.37", + "@mattermost/compass-icons": "0.1.38", "@mattermost/react-native-emm": "1.3.5", "@mattermost/react-native-network-client": "1.4.1", "@mattermost/react-native-paste-input": "0.6.4", From ba52acb26faf896851e42ec6a9bed85753bdd5c0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Espino=20Garc=C3=ADa?= Date: Tue, 26 Sep 2023 18:35:40 +0200 Subject: [PATCH 05/47] Add GM as DM feature support (#7515) * Add GM as DM feature support * Minor fix * Address feedback * Fix case for non set channel notify prop * Fix strings --- app/actions/app/global.ts | 2 +- app/constants/notification_level.ts | 8 +-- app/constants/preferences.ts | 10 ++- app/constants/versions.ts | 4 ++ app/queries/servers/features.ts | 18 +++++ app/screens/channel/channel.tsx | 11 ++++ .../intro/direct_channel/direct_channel.tsx | 27 +++++++- .../intro/direct_channel/index.ts | 3 + app/screens/channel/index.tsx | 15 ++++- app/screens/channel/use_gm_as_dm_notice.tsx | 65 +++++++++++++++++++ .../options/notification_preference/index.ts | 11 +++- .../notification_preference.tsx | 28 ++++++-- .../channel_notification_preferences.tsx | 40 +++++++++--- .../channel_notification_preferences/index.ts | 27 +++++++- .../notify_about.tsx | 17 ++++- .../thread_replies.tsx | 3 +- .../notification_push/notification_push.tsx | 25 ++++--- .../settings/notification_push/push_send.tsx | 2 +- app/store/ephemeral_store.ts | 2 + app/utils/helpers.ts | 2 +- assets/base/i18n/en.json | 9 ++- 21 files changed, 282 insertions(+), 47 deletions(-) create mode 100644 app/constants/versions.ts create mode 100644 app/queries/servers/features.ts create mode 100644 app/screens/channel/use_gm_as_dm_notice.tsx diff --git a/app/actions/app/global.ts b/app/actions/app/global.ts index bb98cd5db..3de806fb8 100644 --- a/app/actions/app/global.ts +++ b/app/actions/app/global.ts @@ -1,10 +1,10 @@ // Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. // See LICENSE.txt for license information. -import {getActiveServerUrl} from '@app/init/credentials'; import {Tutorial} from '@constants'; import {GLOBAL_IDENTIFIERS} from '@constants/database'; import DatabaseManager from '@database/manager'; +import {getActiveServerUrl} from '@init/credentials'; import {logError} from '@utils/log'; export const storeGlobal = async (id: string, value: unknown, prepareRecordsOnly = false) => { diff --git a/app/constants/notification_level.ts b/app/constants/notification_level.ts index e5d771115..e989a0bac 100644 --- a/app/constants/notification_level.ts +++ b/app/constants/notification_level.ts @@ -1,10 +1,10 @@ // Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. // See LICENSE.txt for license information. -export const ALL = 'all'; -export const DEFAULT = 'default'; -export const MENTION = 'mention'; -export const NONE = 'none'; +export const ALL = 'all' as const; +export const DEFAULT = 'default' as const; +export const MENTION = 'mention' as const; +export const NONE = 'none' as const; export default { ALL, diff --git a/app/constants/preferences.ts b/app/constants/preferences.ts index e9fc7a231..1755530d0 100644 --- a/app/constants/preferences.ts +++ b/app/constants/preferences.ts @@ -1,7 +1,7 @@ // Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. // See LICENSE.txt for license information. -export const CATEGORIES_TO_KEEP: Record = { +export const CATEGORIES_TO_KEEP = { ADVANCED_SETTINGS: 'advanced_settings', CHANNEL_APPROXIMATE_VIEW_TIME: 'channel_approximate_view_time', CHANNEL_OPEN_TIME: 'channel_open_time', @@ -14,15 +14,21 @@ export const CATEGORIES_TO_KEEP: Record = { SIDEBAR_SETTINGS: 'sidebar_settings', TEAMS_ORDER: 'teams_order', THEME: 'theme', + SYSTEM_NOTICE: 'system_notice', }; -const CATEGORIES: Record = { +const CATEGORIES = { ...CATEGORIES_TO_KEEP, FAVORITE_CHANNEL: 'favorite_channel', }; +const NOTICES = { + GM_AS_DM: 'GMasDM', +}; + const Preferences = { CATEGORIES, + NOTICES, COLLAPSED_REPLY_THREADS: 'collapsed_reply_threads', COLLAPSED_REPLY_THREADS_OFF: 'off', COLLAPSED_REPLY_THREADS_ON: 'on', diff --git a/app/constants/versions.ts b/app/constants/versions.ts new file mode 100644 index 000000000..bb1a55ab8 --- /dev/null +++ b/app/constants/versions.ts @@ -0,0 +1,4 @@ +// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. +// See LICENSE.txt for license information. + +export const GM_AS_DM_VERSION = [9, 1, 0]; diff --git a/app/queries/servers/features.ts b/app/queries/servers/features.ts new file mode 100644 index 000000000..b1359a0db --- /dev/null +++ b/app/queries/servers/features.ts @@ -0,0 +1,18 @@ +// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. +// See LICENSE.txt for license information. + +import {of as of$} from 'rxjs'; +import {switchMap} from 'rxjs/operators'; + +import {GM_AS_DM_VERSION} from '@constants/versions'; +import {isMinimumServerVersion} from '@utils/helpers'; + +import {observeConfigValue} from './system'; + +import type {Database} from '@nozbe/watermelondb'; + +export const observeHasGMasDMFeature = (database: Database) => { + return observeConfigValue(database, 'Version').pipe( + switchMap((v) => of$(isMinimumServerVersion(v, ...GM_AS_DM_VERSION))), + ); +}; diff --git a/app/screens/channel/channel.tsx b/app/screens/channel/channel.tsx index e61495e80..3df1bdbc4 100644 --- a/app/screens/channel/channel.tsx +++ b/app/screens/channel/channel.tsx @@ -24,7 +24,9 @@ import EphemeralStore from '@store/ephemeral_store'; import ChannelPostList from './channel_post_list'; import ChannelHeader from './header'; +import useGMasDMNotice from './use_gm_as_dm_notice'; +import type PreferenceModel from '@typings/database/models/servers/preference'; import type {AvailableScreens} from '@typings/screens/navigation'; import type {KeyboardTrackingViewRef} from 'react-native-keyboard-tracking-view'; @@ -36,6 +38,10 @@ type ChannelProps = { isCallsEnabledInChannel: boolean; showIncomingCalls: boolean; isTabletView?: boolean; + dismissedGMasDMNotice: PreferenceModel[]; + currentUserId: string; + channelType: ChannelType; + hasGMasDMFeature: boolean; }; const edges: Edge[] = ['left', 'right']; @@ -55,7 +61,12 @@ const Channel = ({ isCallsEnabledInChannel, showIncomingCalls, isTabletView, + dismissedGMasDMNotice, + channelType, + currentUserId, + hasGMasDMFeature, }: ChannelProps) => { + useGMasDMNotice(currentUserId, channelType, dismissedGMasDMNotice, hasGMasDMFeature); const isTablet = useIsTablet(); const insets = useSafeAreaInsets(); const [shouldRenderPosts, setShouldRenderPosts] = useState(false); diff --git a/app/screens/channel/channel_post_list/intro/direct_channel/direct_channel.tsx b/app/screens/channel/channel_post_list/intro/direct_channel/direct_channel.tsx index aec9e5604..6c5dfe246 100644 --- a/app/screens/channel/channel_post_list/intro/direct_channel/direct_channel.tsx +++ b/app/screens/channel/channel_post_list/intro/direct_channel/direct_channel.tsx @@ -27,6 +27,7 @@ type Props = { isBot: boolean; members?: ChannelMembershipModel[]; theme: Theme; + hasGMasDMFeature: boolean; } const getStyleSheet = makeStyleSheetFromTheme((theme: Theme) => ({ @@ -52,6 +53,9 @@ const getStyleSheet = makeStyleSheetFromTheme((theme: Theme) => ({ textAlign: 'center', ...typography('Body', 200, 'Regular'), }, + boldText: { + ...typography('Body', 200, 'SemiBold'), + }, profilesContainer: { justifyContent: 'center', alignItems: 'center', @@ -67,7 +71,14 @@ const getStyleSheet = makeStyleSheetFromTheme((theme: Theme) => ({ }, })); -const DirectChannel = ({channel, currentUserId, isBot, members, theme}: Props) => { +const DirectChannel = ({ + channel, + currentUserId, + isBot, + members, + theme, + hasGMasDMFeature, +}: Props) => { const serverUrl = useServerUrl(); const styles = getStyleSheet(theme); @@ -89,11 +100,23 @@ const DirectChannel = ({channel, currentUserId, isBot, members, theme}: Props) = /> ); } + if (!hasGMasDMFeature) { + return ( + + ); + } return ( all activity in this group message.'} id='intro.group_message' style={styles.message} + values={{ + b: (chunk: string) => {chunk}, + }} /> ); }, [channel.displayName, theme]); diff --git a/app/screens/channel/channel_post_list/intro/direct_channel/index.ts b/app/screens/channel/channel_post_list/intro/direct_channel/index.ts index 23a561cfb..e598cfb2e 100644 --- a/app/screens/channel/channel_post_list/intro/direct_channel/index.ts +++ b/app/screens/channel/channel_post_list/intro/direct_channel/index.ts @@ -8,6 +8,7 @@ import {switchMap} from 'rxjs/operators'; import {General} from '@constants'; import {observeChannelMembers} from '@queries/servers/channel'; +import {observeHasGMasDMFeature} from '@queries/servers/features'; import {observeCurrentUserId} from '@queries/servers/system'; import {observeUser} from '@queries/servers/user'; import {getUserIdFromChannelName} from '@utils/user'; @@ -23,6 +24,7 @@ const observeIsBot = (user: UserModel | undefined) => of$(Boolean(user?.isBot)); const enhanced = withObservables([], ({channel, database}: {channel: ChannelModel} & WithDatabaseArgs) => { const currentUserId = observeCurrentUserId(database); const members = observeChannelMembers(database, channel.id); + const hasGMasDMFeature = observeHasGMasDMFeature(database); let isBot = of$(false); if (channel.type === General.DM_CHANNEL) { @@ -40,6 +42,7 @@ const enhanced = withObservables([], ({channel, database}: {channel: ChannelMode currentUserId, isBot, members, + hasGMasDMFeature, }; }); diff --git a/app/screens/channel/index.tsx b/app/screens/channel/index.tsx index 116c1d73b..8c7c20419 100644 --- a/app/screens/channel/index.tsx +++ b/app/screens/channel/index.tsx @@ -12,8 +12,12 @@ import { observeCurrentCall, observeIncomingCalls, } from '@calls/state'; +import {Preferences} from '@constants'; import {withServerUrl} from '@context/server'; -import {observeCurrentChannelId} from '@queries/servers/system'; +import {observeCurrentChannel} from '@queries/servers/channel'; +import {observeHasGMasDMFeature} from '@queries/servers/features'; +import {queryPreferencesByCategoryAndName} from '@queries/servers/preference'; +import {observeCurrentChannelId, observeCurrentUserId} from '@queries/servers/system'; import Channel from './channel'; @@ -56,12 +60,21 @@ const enhanced = withObservables([], ({database, serverUrl}: EnhanceProps) => { distinctUntilChanged(), ); + const dismissedGMasDMNotice = queryPreferencesByCategoryAndName(database, Preferences.CATEGORIES.SYSTEM_NOTICE, Preferences.NOTICES.GM_AS_DM).observe(); + const channelType = observeCurrentChannel(database).pipe(switchMap((c) => of$(c?.type))); + const currentUserId = observeCurrentUserId(database); + const hasGMasDMFeature = observeHasGMasDMFeature(database); + return { channelId, showJoinCallBanner, isInACall, showIncomingCalls, isCallsEnabledInChannel: observeIsCallsEnabledInChannel(database, serverUrl, channelId), + dismissedGMasDMNotice, + channelType, + currentUserId, + hasGMasDMFeature, }; }); diff --git a/app/screens/channel/use_gm_as_dm_notice.tsx b/app/screens/channel/use_gm_as_dm_notice.tsx new file mode 100644 index 000000000..5b32ec861 --- /dev/null +++ b/app/screens/channel/use_gm_as_dm_notice.tsx @@ -0,0 +1,65 @@ +// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. +// See LICENSE.txt for license information. + +import {useEffect} from 'react'; +import {useIntl} from 'react-intl'; +import {Alert} from 'react-native'; + +import {savePreference} from '@actions/remote/preference'; +import {Preferences} from '@constants'; +import {useServerUrl} from '@context/server'; +import {getPreferenceAsBool} from '@helpers/api/preference'; +import EphemeralStore from '@store/ephemeral_store'; + +import type PreferenceModel from '@typings/database/models/servers/preference'; + +const useGMasDMNotice = (userId: string, channelType: ChannelType, dismissedGMasDMNotice: PreferenceModel[], hasGMasDMFeature: boolean) => { + const intl = useIntl(); + const serverUrl = useServerUrl(); + + useEffect(() => { + if (!hasGMasDMFeature) { + return; + } + + const preferenceValue = getPreferenceAsBool(dismissedGMasDMNotice, Preferences.CATEGORIES.SYSTEM_NOTICE, Preferences.NOTICES.GM_AS_DM); + if (preferenceValue) { + return; + } + + if (channelType !== 'G') { + return; + } + + if (EphemeralStore.noticeShown.has(Preferences.NOTICES.GM_AS_DM)) { + return; + } + + const onRemindMeLaterPress = () => { + EphemeralStore.noticeShown.add(Preferences.NOTICES.GM_AS_DM); + }; + + const onHideAndForget = () => { + EphemeralStore.noticeShown.add(Preferences.NOTICES.GM_AS_DM); + savePreference(serverUrl, [{category: Preferences.CATEGORIES.SYSTEM_NOTICE, name: Preferences.NOTICES.GM_AS_DM, value: 'true', user_id: userId}]); + }; + + // Show the GM as DM notice if needed + Alert.alert( + intl.formatMessage({id: 'system_notice.title.gm_as_dm', defaultMessage: 'Updates to Group Messages'}), + intl.formatMessage({id: 'system_noticy.body.gm_as_dm', defaultMessage: 'You will now be notified for all activity in your group messages along with a notification badge for every new message.\n\nYou can configure this in notification preferences for each group message.'}), + [ + { + text: intl.formatMessage({id: 'system_notice.remind_me', defaultMessage: 'Remind Me Later'}), + onPress: onRemindMeLaterPress, + }, + { + text: intl.formatMessage({id: 'system_notice.dont_show', defaultMessage: 'Don\'t Show Again'}), + onPress: onHideAndForget, + }, + ], + ); + }, []); +}; + +export default useGMasDMNotice; diff --git a/app/screens/channel_info/options/notification_preference/index.ts b/app/screens/channel_info/options/notification_preference/index.ts index 48bd52b3f..2e63f35bc 100644 --- a/app/screens/channel_info/options/notification_preference/index.ts +++ b/app/screens/channel_info/options/notification_preference/index.ts @@ -6,7 +6,9 @@ import withObservables from '@nozbe/with-observables'; import {of as of$} from 'rxjs'; import {switchMap} from 'rxjs/operators'; +import {NotificationLevel} from '@constants'; import {observeChannel, observeChannelSettings} from '@queries/servers/channel'; +import {observeHasGMasDMFeature} from '@queries/servers/features'; import {observeCurrentUser} from '@queries/servers/user'; import {getNotificationProps} from '@utils/user'; @@ -19,17 +21,22 @@ type Props = WithDatabaseArgs & { } const enhanced = withObservables(['channelId'], ({channelId, database}: Props) => { - const displayName = observeChannel(database, channelId).pipe(switchMap((c) => of$(c?.displayName))); + const channel = observeChannel(database, channelId); + const channelType = channel.pipe(switchMap((c) => of$(c?.type))); + const displayName = channel.pipe(switchMap((c) => of$(c?.displayName))); const settings = observeChannelSettings(database, channelId); const userNotifyLevel = observeCurrentUser(database).pipe(switchMap((u) => of$(getNotificationProps(u).push))); const notifyLevel = settings.pipe( - switchMap((s) => of$(s?.notifyProps.push)), + switchMap((s) => of$(s?.notifyProps.push || NotificationLevel.DEFAULT)), ); + const hasGMasDMFeature = observeHasGMasDMFeature(database); return { displayName, notifyLevel, userNotifyLevel, + channelType, + hasGMasDMFeature, }; }); diff --git a/app/screens/channel_info/options/notification_preference/notification_preference.tsx b/app/screens/channel_info/options/notification_preference/notification_preference.tsx index 83fdf7c42..253284d48 100644 --- a/app/screens/channel_info/options/notification_preference/notification_preference.tsx +++ b/app/screens/channel_info/options/notification_preference/notification_preference.tsx @@ -10,6 +10,7 @@ import {NotificationLevel, Screens} from '@constants'; import {useTheme} from '@context/theme'; import {t} from '@i18n'; import {goToScreen} from '@screens/navigation'; +import {isTypeDMorGM} from '@utils/channel'; import {preventDoubleTap} from '@utils/tap'; import {changeOpacity} from '@utils/theme'; @@ -20,6 +21,8 @@ type Props = { displayName: string; notifyLevel: NotificationLevel; userNotifyLevel: NotificationLevel; + channelType: ChannelType; + hasGMasDMFeature: boolean; } const notificationLevel = (notifyLevel: NotificationLevel) => { @@ -50,7 +53,14 @@ const notificationLevel = (notifyLevel: NotificationLevel) => { return {id, defaultMessage}; }; -const NotificationPreference = ({channelId, displayName, notifyLevel, userNotifyLevel}: Props) => { +const NotificationPreference = ({ + channelId, + displayName, + notifyLevel, + userNotifyLevel, + channelType, + hasGMasDMFeature, +}: Props) => { const {formatMessage} = useIntl(); const theme = useTheme(); const title = formatMessage({id: 'channel_info.mobile_notifications', defaultMessage: 'Mobile Notifications'}); @@ -74,13 +84,19 @@ const NotificationPreference = ({channelId, displayName, notifyLevel, userNotify }); const notificationLevelToText = () => { - if (notifyLevel === NotificationLevel.DEFAULT) { - const userLevel = notificationLevel(userNotifyLevel); - return formatMessage(userLevel); + let notifyLevelToUse = notifyLevel; + if (notifyLevelToUse === NotificationLevel.DEFAULT) { + notifyLevelToUse = userNotifyLevel; } - const channelLevel = notificationLevel(notifyLevel); - return formatMessage(channelLevel); + if (hasGMasDMFeature) { + if (notifyLevel === NotificationLevel.DEFAULT && notifyLevelToUse === NotificationLevel.MENTION && isTypeDMorGM(channelType)) { + notifyLevelToUse = NotificationLevel.ALL; + } + } + + const messageDescriptor = notificationLevel(notifyLevelToUse); + return formatMessage(messageDescriptor); }; return ( diff --git a/app/screens/channel_notification_preferences/channel_notification_preferences.tsx b/app/screens/channel_notification_preferences/channel_notification_preferences.tsx index 5b8c3611e..17636520b 100644 --- a/app/screens/channel_notification_preferences/channel_notification_preferences.tsx +++ b/app/screens/channel_notification_preferences/channel_notification_preferences.tsx @@ -7,10 +7,12 @@ import {useSharedValue} from 'react-native-reanimated'; import {updateChannelNotifyProps} from '@actions/remote/channel'; import SettingsContainer from '@components/settings/container'; +import {NotificationLevel} from '@constants'; import {useServerUrl} from '@context/server'; import useAndroidHardwareBackHandler from '@hooks/android_back_handler'; import useDidUpdate from '@hooks/did_update'; import useBackNavigation from '@hooks/navigate_back'; +import {isTypeDMorGM} from '@utils/channel'; import {popTopScreen} from '../navigation'; @@ -28,16 +30,29 @@ type Props = { defaultThreadReplies: 'all' | 'mention'; isCRTEnabled: boolean; isMuted: boolean; - notifyLevel?: NotificationLevel; + notifyLevel: NotificationLevel; notifyThreadReplies?: 'all' | 'mention'; + channelType: ChannelType; + hasGMasDMFeature: boolean; } -const ChannelNotificationPreferences = ({channelId, componentId, defaultLevel, defaultThreadReplies, isCRTEnabled, isMuted, notifyLevel, notifyThreadReplies}: Props) => { +const ChannelNotificationPreferences = ({ + channelId, + componentId, + defaultLevel, + defaultThreadReplies, + isCRTEnabled, + isMuted, + notifyLevel, + notifyThreadReplies, + channelType, + hasGMasDMFeature, +}: Props) => { const serverUrl = useServerUrl(); const defaultNotificationReplies = defaultThreadReplies === 'all'; - const diffNotificationLevel = notifyLevel !== 'default' && notifyLevel !== defaultLevel; + const diffNotificationLevel = notifyLevel !== NotificationLevel.DEFAULT && notifyLevel !== defaultLevel; const notifyTitleTop = useSharedValue((isMuted ? MUTED_BANNER_HEIGHT : 0) + BLOCK_TITLE_HEIGHT); - const [notifyAbout, setNotifyAbout] = useState((notifyLevel === undefined || notifyLevel === 'default') ? defaultLevel : notifyLevel); + const [notifyAbout, setNotifyAbout] = useState(notifyLevel === NotificationLevel.DEFAULT ? defaultLevel : notifyLevel); const [threadReplies, setThreadReplies] = useState((notifyThreadReplies || defaultThreadReplies) === 'all'); const [resetDefaultVisible, setResetDefaultVisible] = useState(diffNotificationLevel || defaultNotificationReplies !== threadReplies); @@ -64,8 +79,13 @@ const ChannelNotificationPreferences = ({channelId, componentId, defaultLevel, d const save = useCallback(() => { const pushThreads = threadReplies ? 'all' : 'mention'; - if (notifyLevel !== notifyAbout || (isCRTEnabled && pushThreads !== notifyThreadReplies)) { - const props: Partial = {push: notifyAbout}; + let notifyAboutToUse = notifyAbout; + if (notifyAbout === defaultLevel) { + notifyAboutToUse = NotificationLevel.DEFAULT; + } + + if (notifyLevel !== notifyAboutToUse || (isCRTEnabled && pushThreads !== notifyThreadReplies)) { + const props: Partial = {push: notifyAboutToUse}; if (isCRTEnabled) { props.push_threads = pushThreads; } @@ -73,11 +93,15 @@ const ChannelNotificationPreferences = ({channelId, componentId, defaultLevel, d updateChannelNotifyProps(serverUrl, channelId, props); } popTopScreen(componentId); - }, [channelId, componentId, isCRTEnabled, notifyAbout, notifyLevel, notifyThreadReplies, serverUrl, threadReplies]); + }, [defaultLevel, channelId, componentId, isCRTEnabled, notifyAbout, notifyLevel, notifyThreadReplies, serverUrl, threadReplies]); useBackNavigation(save); useAndroidHardwareBackHandler(componentId, save); + const showThreadReplies = isCRTEnabled && ( + !hasGMasDMFeature || + !isTypeDMorGM(channelType) + ); return ( {isMuted && } @@ -94,7 +118,7 @@ const ChannelNotificationPreferences = ({channelId, componentId, defaultLevel, d notifyTitleTop={notifyTitleTop} onPress={onNotificationLevel} /> - {isCRTEnabled && + {showThreadReplies && { const isCRTEnabled = observeIsCRTEnabled(database); const isMuted = observeIsMutedSetting(database, channelId); const notifyProps = observeCurrentUser(database).pipe(switchMap((u) => of$(getNotificationProps(u)))); + const channelType = observeChannel(database, channelId).pipe(switchMap((c) => of$(c?.type))); + const hasGMasDMFeature = observeHasGMasDMFeature(database); const notifyLevel = settings.pipe( - switchMap((s) => of$(s?.notifyProps.push)), + switchMap((s) => of$(s?.notifyProps.push || NotificationLevel.DEFAULT)), ); const notifyThreadReplies = settings.pipe( @@ -35,7 +40,21 @@ const enhanced = withObservables([], ({channelId, database}: EnhancedProps) => { const defaultLevel = notifyProps.pipe( switchMap((n) => of$(n?.push)), + combineLatestWith(hasGMasDMFeature, channelType), + switchMap(([v, hasFeature, cType]) => { + const shouldShowwithGMasDMBehavior = hasFeature && isTypeDMorGM(cType); + + let defaultLevelToUse = v; + if (shouldShowwithGMasDMBehavior) { + if (v === NotificationLevel.MENTION) { + defaultLevelToUse = NotificationLevel.ALL; + } + } + + return of$(defaultLevelToUse); + }), ); + const defaultThreadReplies = notifyProps.pipe( switchMap((n) => of$(n?.push_threads)), ); @@ -47,6 +66,8 @@ const enhanced = withObservables([], ({channelId, database}: EnhancedProps) => { notifyThreadReplies, defaultLevel, defaultThreadReplies, + channelType, + hasGMasDMFeature, }; }); diff --git a/app/screens/channel_notification_preferences/notify_about.tsx b/app/screens/channel_notification_preferences/notify_about.tsx index b7f52b77d..a53d85439 100644 --- a/app/screens/channel_notification_preferences/notify_about.tsx +++ b/app/screens/channel_notification_preferences/notify_about.tsx @@ -40,7 +40,7 @@ const NOTIFY_OPTIONS: Record = { value: NotificationLevel.ALL, }, [NotificationLevel.MENTION]: { - defaultMessage: 'Mentions, direct messages only', + defaultMessage: 'Mentions only', id: t('channel_notification_preferences.notification.mention'), testID: 'channel_notification_preferences.notification.mention', value: NotificationLevel.MENTION, @@ -53,7 +53,13 @@ const NOTIFY_OPTIONS: Record = { }, }; -const NotifyAbout = ({defaultLevel, isMuted, notifyLevel, notifyTitleTop, onPress}: Props) => { +const NotifyAbout = ({ + defaultLevel, + isMuted, + notifyLevel, + notifyTitleTop, + onPress, +}: Props) => { const {formatMessage} = useIntl(); const onLayout = useCallback((e: LayoutChangeEvent) => { const {y} = e.nativeEvent.layout; @@ -61,6 +67,11 @@ const NotifyAbout = ({defaultLevel, isMuted, notifyLevel, notifyTitleTop, onPres notifyTitleTop.value = y > 0 ? y + 10 : BLOCK_TITLE_HEIGHT; }, []); + let notifyLevelToUse = notifyLevel; + if (notifyLevel === NotificationLevel.DEFAULT) { + notifyLevelToUse = defaultLevel; + } + return ( = { const NotifyAbout = ({isSelected, notifyLevel, onPress}: Props) => { const {formatMessage} = useIntl(); - if ([NotificationLevel.NONE, NotificationLevel.ALL].includes(notifyLevel)) { + const hiddenStates: NotificationLevel[] = [NotificationLevel.NONE, NotificationLevel.ALL]; + if (hiddenStates.includes(notifyLevel)) { return null; } diff --git a/app/screens/settings/notification_push/notification_push.tsx b/app/screens/settings/notification_push/notification_push.tsx index beeae314d..b196a6096 100644 --- a/app/screens/settings/notification_push/notification_push.tsx +++ b/app/screens/settings/notification_push/notification_push.tsx @@ -73,19 +73,24 @@ const NotificationPush = ({componentId, currentUser, isCRTEnabled, sendPushNotif sendPushNotifications={sendPushNotifications} setMobilePushPref={setPushSend} /> - {Platform.OS === 'android' && ()} + {isCRTEnabled && pushSend === 'mention' && ( - + <> + {Platform.OS === 'android' && ()} + + )} - {Platform.OS === 'android' && ()} {sendPushNotifications && pushSend !== 'none' && ( - + <> + {Platform.OS === 'android' && ()} + + )} ); diff --git a/app/screens/settings/notification_push/push_send.tsx b/app/screens/settings/notification_push/push_send.tsx index 8131bc761..84db5310b 100644 --- a/app/screens/settings/notification_push/push_send.tsx +++ b/app/screens/settings/notification_push/push_send.tsx @@ -55,7 +55,7 @@ const MobileSendPush = ({sendPushNotifications, pushStatus, setMobilePushPref}: (); + private pushProxyVerification: {[serverUrl: string]: string | undefined} = {}; private canJoinOtherTeams: {[serverUrl: string]: BehaviorSubject} = {}; diff --git a/app/utils/helpers.ts b/app/utils/helpers.ts index cb1915c0c..4f996fffc 100644 --- a/app/utils/helpers.ts +++ b/app/utils/helpers.ts @@ -17,7 +17,7 @@ const ShareModule: NativeShareExtension|undefined = Platform.select({android: Na // versions, and a non-equal minor version will ignore dot version. // currentVersion is a string, e.g '4.6.0' // minMajorVersion, minMinorVersion, minDotVersion are integers -export const isMinimumServerVersion = (currentVersion: string, minMajorVersion = 0, minMinorVersion = 0, minDotVersion = 0): boolean => { +export const isMinimumServerVersion = (currentVersion = '', minMajorVersion = 0, minMinorVersion = 0, minDotVersion = 0): boolean => { if (!currentVersion || typeof currentVersion !== 'string') { return false; } diff --git a/assets/base/i18n/en.json b/assets/base/i18n/en.json index 4b8a02ce2..ed13d1cdb 100644 --- a/assets/base/i18n/en.json +++ b/assets/base/i18n/en.json @@ -179,7 +179,7 @@ "channel_notification_preferences.muted_content": "You can change the notification settings, but you will not receive notifications until the channel is unmuted.", "channel_notification_preferences.muted_title": "This channel is muted", "channel_notification_preferences.notification.all": "All new messages", - "channel_notification_preferences.notification.mention": "Mentions, direct messages only", + "channel_notification_preferences.notification.mention": "Mentions only", "channel_notification_preferences.notification.none": "Nothing", "channel_notification_preferences.notification.thread_replies": "Notify me about replies to threads I’m following in this channel", "channel_notification_preferences.notify_about": "Notify me about...", @@ -341,6 +341,7 @@ "intro.created_by": "created by {creator} on {date}.", "intro.direct_message": "This is the start of your conversation with {teammate}. Messages and files shared here are not shown to anyone else.", "intro.group_message": "This is the start of your conversation with this group. Messages and files shared here are not shown to anyone else outside of the group.", + "intro.group_message.after_gm_as_dm": "This is the start of your conversation with this group. Messages and files shared here are not shown to anyone else outside of the group.", "intro.private_channel": "Private Channel", "intro.public_channel": "Public Channel", "intro.townsquare": "Welcome to {name}. Everyone automatically becomes a member of this channel when they join the team.", @@ -765,7 +766,7 @@ "notification_settings.push_threads.replies": "Thread replies", "notification_settings.pushNotification.all_new_messages": "All new messages", "notification_settings.pushNotification.disabled_long": "Push notifications for mobile devices have been disabled by your System Administrator.", - "notification_settings.pushNotification.mentions_only": "Mentions, direct messages only (default)", + "notification_settings.pushNotification.mentions_only": "Only for mentions, direct messages and group messages (default)", "notification_settings.pushNotification.nothing": "Nothing", "notification_settings.send_notification.about": "Notify me about...", "notification_settings.threads_mentions": "Mentions in threads", @@ -1016,6 +1017,10 @@ "suggestion.search.direct": "Direct Messages", "suggestion.search.private": "Private Channels", "suggestion.search.public": "Public Channels", + "system_notice.dont_show": "Don't Show Again", + "system_notice.remind_me": "Remind Me Later", + "system_notice.title.gm_as_dm": "Updates to Group Messages", + "system_noticy.body.gm_as_dm": "You will now be notified for all activity in your group messages along with a notification badge for every new message.\n\nYou can configure this in notification preferences for each group message.", "team_list.no_other_teams.description": "To join another team, ask a Team Admin for an invitation, or create your own team.", "team_list.no_other_teams.title": "No additional teams to join", "terms_of_service.acceptButton": "Accept", From 38d04afc1fd58ddcc21fb901f03fc437adf590e5 Mon Sep 17 00:00:00 2001 From: Deivison Lincoln Date: Fri, 25 Aug 2023 13:24:29 +0000 Subject: [PATCH 06/47] Translated using Weblate (Portuguese (Brazil)) Currently translated at 44.9% (481 of 1069 strings) Translation: mattermost-languages-shipped/mattermost-mobile-v2 Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-mobile-v2/pt_BR/ --- assets/base/i18n/pt-BR.json | 43 ++++++++++++++++++++----------------- 1 file changed, 23 insertions(+), 20 deletions(-) diff --git a/assets/base/i18n/pt-BR.json b/assets/base/i18n/pt-BR.json index 14abcea2b..40f4b33b5 100644 --- a/assets/base/i18n/pt-BR.json +++ b/assets/base/i18n/pt-BR.json @@ -13,54 +13,54 @@ "api.channel.add_member.added": "{addedUsername} foi adicionado ao canal por {username}.", "api.channel.guest_join_channel.post_and_forget": "{username} entrou no canal como convidado.", "apps.error": "Erro: {error}", - "apps.error.command.field_missing": "Campos obrigatórios ausentes: `{fieldName}`.", + "apps.error.command.field_missing": "Faltam campos obrigatórios: `{fieldName}`.", "apps.error.command.same_channel": "Canal repetido para o campo `{fieldName}`: `{option}`.", "apps.error.command.same_option": "Opção repetida para o campo `{fieldName}`: `{option}`.", "apps.error.command.same_user": "Usuário repetido para o campo `{fieldName}`: `{option}`.", "apps.error.command.unknown_channel": "Canal desconhecido para o campo `{fieldName}`: `{option}`.", "apps.error.command.unknown_option": "Opção desconhecida para o campo `{fieldName}`: `{option}`.", - "apps.error.command.unknown_user": "Usuário desconhecido para o campo `{fieldName}`: `{opção}`.", + "apps.error.command.unknown_user": "Usuário desconhecido para o campo `{fieldName}`: `{option}`.", "apps.error.form.no_form": "`form` não está definido.", "apps.error.form.no_lookup": "`procurar` não está definido.", "apps.error.form.no_source": "`fonte` não está definida.", "apps.error.form.no_submit": "`enviar ` não está definido", "apps.error.form.refresh": "Ocorreu um erro ao buscar os campos selecionados. Entre em contato com o desenvolvedor do aplicativo. Detalhes: {details}", - "apps.error.form.refresh_no_refresh": "Atualização chamada no campo sem atualização.", + "apps.error.form.refresh_no_refresh": "Chamada de atualização em nenhum campo de atualização.", "apps.error.form.submit.pretext": "Ocorreu um erro ao enviar o modal. Entre em contato com o desenvolvedor do aplicativo. Detalhes: {details}", - "apps.error.lookup.error_preparing_request": "Erro ao preparar solicitação de pesquisa: {errorMessage}", + "apps.error.lookup.error_preparing_request": "Erro ao preparar a solicitação de pesquisa: {errorMessage}", "apps.error.malformed_binding": "Esta ligação não está formada corretamente. Entre em contato com o desenvolvedor do aplicativo.", "apps.error.parser": "Erro de análise: {error}", "apps.error.parser.execute_non_leaf": "Você deve selecionar um subcomando.", "apps.error.parser.missing_binding": "Ligações de comando ausentes.", - "apps.error.parser.missing_field_value": "Falta o valor do campo.", + "apps.error.parser.missing_field_value": "O valor do campo está ausente.", "apps.error.parser.missing_list_end": "Token de fechamento de lista esperado.", - "apps.error.parser.missing_quote": "Aspas duplas correspondentes são esperadas antes do final da entrada.", + "apps.error.parser.missing_quote": "Aspas duplas é esperada antes do final da entrada.", "apps.error.parser.missing_source": "O formulário não tem envio nem fonte.", "apps.error.parser.missing_submit": "Nenhuma chamada de envio em forma ou vinculação.", - "apps.error.parser.missing_tick": "Crase correspondente é esperada antes do final de entrada.", + "apps.error.parser.missing_tick": "Citação de marcação esperada antes do final da entrada.", "apps.error.parser.multiple_equal": "Vários sinais `=` não são permitidos.", - "apps.error.parser.no_argument_pos_x": "Incapaz de identificar o argumento.", - "apps.error.parser.no_bindings": "Sem ligações de comando.", + "apps.error.parser.no_argument_pos_x": "Não foi possível identificar o argumento.", + "apps.error.parser.no_bindings": "Sem vinculações de comando.", "apps.error.parser.no_form": "Nenhum formulário encontrado.", "apps.error.parser.no_match": "`{command}`: Nenhum comando correspondente encontrado neste espaço de trabalho.", - "apps.error.parser.no_slash_start": "O comando deve começar com `/`.", + "apps.error.parser.no_slash_start": "O comando deve começar com um `/`.", "apps.error.parser.unexpected_character": "Caracter inesperado.", "apps.error.parser.unexpected_comma": "Vírgula inesperada.", "apps.error.parser.unexpected_error": "Erro inesperado.", - "apps.error.parser.unexpected_flag": "O comando não aceita o sinalizador `{flagName}`.", + "apps.error.parser.unexpected_flag": "Comando não aceita sinalizador `{flagName}`.", "apps.error.parser.unexpected_squared_bracket": "Abertura de lista inesperada.", - "apps.error.parser.unexpected_state": "Inacessível: Estado inesperado em matchBinding: `{state}`.", + "apps.error.parser.unexpected_state": "Inacessível: estado inesperado em matchBinding: `{state}`.", "apps.error.parser.unexpected_whitespace": "Inacessível: espaço em branco inesperado.", - "apps.error.responses.navigate.no_url": "O tipo de resposta é `navigate`, mas nenhuma url foi incluído na resposta.", - "apps.error.responses.unexpected_error": "Recebeu um erro inesperado.", + "apps.error.responses.navigate.no_url": "O tipo de resposta é `navigate`, mas nenhuma URL foi incluída na resposta.", + "apps.error.responses.unexpected_error": "Recebido um erro inesperado.", "apps.error.responses.unknown_field_error": "Recebeu um erro para um campo desconhecido. Nome do campo: `{field}`. Erro: `{error}`.", "apps.error.responses.unknown_type": "O tipo de resposta do aplicativo não é compatível. Tipo de resposta: {type}.", "apps.error.unknown": "Ocorreu um erro desconhecido.", "apps.suggestion.dynamic.error": "Erro de seleção dinâmica", "apps.suggestion.errors.parser_error": "Erro de análise", "apps.suggestion.no_dynamic": "Nenhum dado foi retornado para sugestões dinâmicas", - "apps.suggestion.no_static": "Sem opções correspondentes.", - "apps.suggestion.no_suggestion": "Sem sugestões correspondentes.", + "apps.suggestion.no_static": "Nenhuma opção correspondente.", + "apps.suggestion.no_suggestion": "Nenhuma sugestão correspondente.", "archivedChannelMessage": "Você está vendo um **canal arquivado**. Novas mensagens não podem ser publicadas.", "camera_type.photo.option": "Capturar foto", "camera_type.video.option": "Gravar Vídeo", @@ -398,7 +398,7 @@ "account.logout_from": "Desconectar de {serverName}", "alert.channel_deleted.description": "O canal {displayName} foi arquivado.", "screen.mentions.subtitle": "", - "login.forgot": "", + "login.forgot": "Esqueceu sua senha?", "mobile.create_post.read_only": "", "channel_info.error_close": "Fechar", "notification_settings.pushNotification.disabled_long": "", @@ -462,7 +462,7 @@ "invite_people_to_team.message": "", "find_channels.open_dm": "", "post_info.bot": "", - "permalink.show_dialog_warn.description": "", + "permalink.show_dialog_warn.description": "Você está prestes a ingressar em {channel} sem ser explicitamente adicionado pelo administrador do canal. Tem certeza que deseja entrar neste canal privado?", "mobile.request.invalid_request_method": "", "saved_messages.empty.paragraph": "", "unreads.empty.paragraph": "", @@ -928,7 +928,7 @@ "browse_channels.dropdownTitle": "Mostrar", "browse_channels.archivedChannels": "Canais Arquivados", "autocomplete_selector.unknown_channel": "Canal desconhecido", - "apps.error.responses.unexpected_type": "O tipo de resposta da aplicação não foi esperado. Tipo de resposta: {type}", + "apps.error.responses.unexpected_type": "O tipo de resposta do aplicativo não era esperado. Tipo de resposta: {type}", "apps.error.responses.form.no_form": "O tipo de resposta é `form`, mas não foi incluído nenhum formulário na resposta.", "apps.error.parser.empty_value": "Não são permitidos valores em branco.", "mobile.oauth.switch_to_browser.title": "", @@ -1002,5 +1002,8 @@ "channel_notification_preferences.notify_about": "Avise-me sobre...", "channel_files.noFiles.title": "Nenhum arquivo encontrado", "channel_notification_preferences.muted_title": "Este canal está mudo", - "channel_notification_preferences.notification.mention": "Menções, apenas mensagens diretas" + "channel_notification_preferences.notification.mention": "Menções, apenas mensagens diretas", + "post_priority.picker.cancel": "Cancelar", + "post_priority.button.acknowledge": "Confirmação", + "post_priority.picker.apply": "Aplicar" } From d2abafedf42226c7ea0c2cd569199ded9b2d324c Mon Sep 17 00:00:00 2001 From: maruTA-bis5 Date: Fri, 25 Aug 2023 13:39:12 +0000 Subject: [PATCH 07/47] Translated using Weblate (Japanese) Currently translated at 100.0% (1069 of 1069 strings) Translation: mattermost-languages-shipped/mattermost-mobile-v2 Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-mobile-v2/ja/ --- assets/base/i18n/ja.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/assets/base/i18n/ja.json b/assets/base/i18n/ja.json index 896c69277..07ced0abc 100644 --- a/assets/base/i18n/ja.json +++ b/assets/base/i18n/ja.json @@ -151,7 +151,7 @@ "friendly_date.hoursAgo": "{count} {count, plural, one {時間} other {時間}} 前", "friendly_date.minsAgo": "{count} {count, plural, one {分} other {分}} 前", "friendly_date.monthsAgo": "{count} {count, plural, one {ヶ月} other {ヶ月}} 前", - "friendly_date.now": "今すぐ", + "friendly_date.now": "今", "friendly_date.yearsAgo": "{count} {count, plural, one {年} other {年}} 前", "friendly_date.yesterday": "昨日", "gallery.footer.channel_name": "{channelName}に共有されました", From a1bb11d41bf7d25ea8f0de48e9ac74e4e1834944 Mon Sep 17 00:00:00 2001 From: Matthew Williams Date: Sun, 27 Aug 2023 08:44:33 +0000 Subject: [PATCH 08/47] Translated using Weblate (English (Australia)) Currently translated at 100.0% (1069 of 1069 strings) Translation: mattermost-languages-shipped/mattermost-mobile-v2 Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-mobile-v2/en_AU/ --- assets/base/i18n/en_AU.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/assets/base/i18n/en_AU.json b/assets/base/i18n/en_AU.json index 169dbe7bd..9e2c7dbc8 100644 --- a/assets/base/i18n/en_AU.json +++ b/assets/base/i18n/en_AU.json @@ -1066,5 +1066,6 @@ "settings.about.database.title": "Database:", "settings.about.server.version": "Server Version: {version} (Build {buildNumber}", "settings.about.server.version.noBuild": "Server Version: {version}", - "settings.about.server.version.title": "Server Version:" + "settings.about.server.version.title": "Server Version:", + "snack.bar.info.copied": "Info copied to clipboard" } From 336a43ee6eac91813b818c75945e10e90414351c Mon Sep 17 00:00:00 2001 From: master7 Date: Thu, 31 Aug 2023 06:21:22 +0000 Subject: [PATCH 09/47] Translated using Weblate (Polish) Currently translated at 100.0% (1072 of 1072 strings) Translation: mattermost-languages-shipped/mattermost-mobile-v2 Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-mobile-v2/pl/ --- assets/base/i18n/pl.json | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/assets/base/i18n/pl.json b/assets/base/i18n/pl.json index 00320b279..f7072d5e8 100644 --- a/assets/base/i18n/pl.json +++ b/assets/base/i18n/pl.json @@ -1067,5 +1067,8 @@ "settings.about.server.version.title": "Wersja serwera:", "settings.about.app.version": "Wersja Aplikacji: {version} (Build {number})", "settings.about.server.version": "Wersja serwera: {version} (kompilacja {buildNumber}", - "snack.bar.info.copied": "Informacje skopiowane do schowka" + "snack.bar.info.copied": "Informacje skopiowane do schowka", + "mobile.calls_incoming_dm": "{name} zaprasza do rozmowy", + "mobile.calls_incoming_gm": "{name} zaprasza do rozmowy z {num, plural, one {# innym} other {# innymi}} ", + "mobile.calls_join_button": "Dołącz" } From 7757327804acf86ff1a2f1027f233ca7598403cf Mon Sep 17 00:00:00 2001 From: timmycheng Date: Thu, 31 Aug 2023 06:39:01 +0000 Subject: [PATCH 10/47] Translated using Weblate (Chinese (Simplified)) Currently translated at 100.0% (1072 of 1072 strings) Translation: mattermost-languages-shipped/mattermost-mobile-v2 Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-mobile-v2/zh_Hans/ --- assets/base/i18n/zh-CN.json | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/assets/base/i18n/zh-CN.json b/assets/base/i18n/zh-CN.json index c1f88d8fd..e66143719 100644 --- a/assets/base/i18n/zh-CN.json +++ b/assets/base/i18n/zh-CN.json @@ -1066,5 +1066,9 @@ "settings.about.server.version": "服务器版本:{version}(构建版本{buildNumber})", "settings.about.server.version.title": "服务器版本:", "settings.about.app.version": "应用程序版本:{version}(构建号{number})", - "settings.about.server.version.noBuild": "服务器版本:{version}" + "settings.about.server.version.noBuild": "服务器版本:{version}", + "snack.bar.info.copied": "信息已复制到剪贴板", + "mobile.calls_join_button": "加入", + "mobile.calls_incoming_dm": "{name}邀请您加入通话", + "mobile.calls_incoming_gm": "{name} 现邀请您与其他 {num, plural, one {# 位} other {# 位}} 进行通话" } From b573669bed43f096057963749d39880aa68456b1 Mon Sep 17 00:00:00 2001 From: Konstantin Date: Thu, 31 Aug 2023 07:48:45 +0000 Subject: [PATCH 11/47] Translated using Weblate (Russian) Currently translated at 100.0% (1072 of 1072 strings) Translation: mattermost-languages-shipped/mattermost-mobile-v2 Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-mobile-v2/ru/ --- assets/base/i18n/ru.json | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/assets/base/i18n/ru.json b/assets/base/i18n/ru.json index c87b1a803..b57f85c61 100644 --- a/assets/base/i18n/ru.json +++ b/assets/base/i18n/ru.json @@ -1067,5 +1067,8 @@ "settings.about.server.version": "Версия сервера: {version} (Build {buildNumber}", "settings.about.server.version.noBuild": "Версия сервера: {version}", "settings.about.server.version.title": "Версия сервера:", - "snack.bar.info.copied": "Информация скопирована в буфер обмена" + "snack.bar.info.copied": "Информация скопирована в буфер обмена", + "mobile.calls_incoming_dm": "{name} приглашает вас на звонок", + "mobile.calls_join_button": "Присоединиться", + "mobile.calls_incoming_gm": "{name} приглашает Вас на разговор с {num, plural, one {# одним участником} few {# несколькими участниками} other {# несколькими участниками}}" } From 68f29c6af2856419652a3ab5f9e8fcb395a88d9f Mon Sep 17 00:00:00 2001 From: Yaniv Date: Wed, 30 Aug 2023 21:02:58 +0000 Subject: [PATCH 12/47] Translated using Weblate (French) Currently translated at 87.3% (936 of 1072 strings) Translation: mattermost-languages-shipped/mattermost-mobile-v2 Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-mobile-v2/fr/ --- assets/base/i18n/fr.json | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/assets/base/i18n/fr.json b/assets/base/i18n/fr.json index e3eb9d260..a8fb13832 100644 --- a/assets/base/i18n/fr.json +++ b/assets/base/i18n/fr.json @@ -5,7 +5,7 @@ "about.enterpriseEditionSt": "Communication moderne derrière votre pare-feu.", "about.hash": "Hash de version :", "about.hashee": "Hash de version EE :", - "about.teamEditionLearn": "Rejoignez la communauté Mattermost sur ", + "about.teamEditionLearn": "Rejoignez la communauté Mattermost sur", "about.teamEditionSt": "Toute la communication de votre équipe en un seul endroit, consultable instantanément et accessible de partout.", "about.teamEditiont0": "Édition Team", "about.teamEditiont1": "Édition Entreprise", @@ -990,5 +990,10 @@ "channel_notification_preferences.notification.all": "Tous les nouveaux messages", "channel_notification_preferences.muted_title": "Ce canal est en sourdine", "channel_notification_preferences.muted_content": "Vous pouvez modifier les paramètres de notification, mais vous ne recevrez pas de notifications tant que le canal n'aura pas été désactivé.", - "post_priority.picker.cancel": "Annuler" + "post_priority.picker.cancel": "Annuler", + "channel_files.empty.paragraph": "Les fichiers publiés sur cette chaîne s'afficheront ici.", + "channel_files.empty.title": "Aucun fichier ici", + "channel_files.noFiles.paragraph": "Ce canal ne contient aucun fichier avec les filtres appliqués", + "channel_files.noFiles.title": "Aucun fichier trouver", + "channel_add_members.add_members.button": "Ajouter des membres" } From b61a8252225dfa65922be3bc43cfd14405d8a27d Mon Sep 17 00:00:00 2001 From: jprusch Date: Thu, 31 Aug 2023 06:45:03 +0000 Subject: [PATCH 13/47] Translated using Weblate (German) Currently translated at 100.0% (1072 of 1072 strings) Translation: mattermost-languages-shipped/mattermost-mobile-v2 Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-mobile-v2/de/ --- assets/base/i18n/de.json | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/assets/base/i18n/de.json b/assets/base/i18n/de.json index 24f6184b8..853b8ceb7 100644 --- a/assets/base/i18n/de.json +++ b/assets/base/i18n/de.json @@ -1067,5 +1067,8 @@ "settings.about.server.version": "Server Version: {version} (Build {buildNumber}", "settings.about.server.version.title": "Server-Version:", "settings.about.server.version.noBuild": "Server Version: {version}", - "snack.bar.info.copied": "Info in die Zwischenablage kopiert" + "snack.bar.info.copied": "Info in die Zwischenablage kopiert", + "mobile.calls_join_button": "Teilnehmen", + "mobile.calls_incoming_dm": "{name} lädt dich zu einem Anruf ein", + "mobile.calls_incoming_gm": "{name} lädt dich zu einem Anruf mit {num, plural, one {einem anderen} other {# anderen}} ein" } From 6d5bba477666d6e83bdfb61bddfc65036936140a Mon Sep 17 00:00:00 2001 From: kaakaa Date: Sun, 3 Sep 2023 05:02:17 +0000 Subject: [PATCH 14/47] Translated using Weblate (Japanese) Currently translated at 100.0% (1072 of 1072 strings) Translation: mattermost-languages-shipped/mattermost-mobile-v2 Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-mobile-v2/ja/ --- assets/base/i18n/ja.json | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/assets/base/i18n/ja.json b/assets/base/i18n/ja.json index 07ced0abc..5d15a477e 100644 --- a/assets/base/i18n/ja.json +++ b/assets/base/i18n/ja.json @@ -1067,5 +1067,8 @@ "settings.about.database.title": "データベース:", "settings.about.server.version": "サーバーのバージョン: {version} (Build {buildNumber})", "settings.about.server.version.noBuild": "サーバーのバージョン: {version}", - "settings.about.server.version.title": "サーバーのバージョン:" + "settings.about.server.version.title": "サーバーのバージョン:", + "mobile.calls_incoming_dm": "{name}があなたを通話に招待しています", + "mobile.calls_incoming_gm": "{name}があなたを{num, plural, one {# 人} other {# 人}}との通話に招待しています", + "mobile.calls_join_button": "参加" } From 2e1ce459915081ebfcfcc3f6d7e6936d09224feb Mon Sep 17 00:00:00 2001 From: intdev32 Date: Sun, 3 Sep 2023 04:31:36 +0000 Subject: [PATCH 15/47] Translated using Weblate (Korean) Currently translated at 55.6% (597 of 1072 strings) Translation: mattermost-languages-shipped/mattermost-mobile-v2 Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-mobile-v2/ko/ --- assets/base/i18n/ko.json | 142 +++++++++++++++++++++------------------ 1 file changed, 77 insertions(+), 65 deletions(-) diff --git a/assets/base/i18n/ko.json b/assets/base/i18n/ko.json index 41fa08838..21b4b55f0 100644 --- a/assets/base/i18n/ko.json +++ b/assets/base/i18n/ko.json @@ -454,7 +454,7 @@ "display_settings.tz.auto": "자동", "display_settings.timezone": "표준시간대", "display_settings.theme": "테마", - "display_settings.clockDisplay": "시계 표시", + "display_settings.clockDisplay": "시간 표시", "display_settings.clock.standard": "12시간제", "display_settings.clock.military": "24시간제", "custom_status.suggestions.title": "제안", @@ -574,54 +574,54 @@ "server.tutorial.swipe": "", "mobile.calls_end_permission_title": "", "mobile.open_dm.error": "", - "notification_settings.push_threads.following": "", + "notification_settings.push_threads.following": "이 채널에서 팔로우 중인 스레드에 대해 답글 알림 받기", "mobile.calls_rec": "", "settings.about": "", "snack.bar.link.copied": "", "invite.searchPlaceholder": "", - "smobile.search.recent_title": "", - "notification_settings.pushNotification.all_new_messages": "", + "smobile.search.recent_title": "{teamName} 의 최근 검색", + "notification_settings.pushNotification.all_new_messages": "모든 새 메시지", "team_list.no_other_teams.description": "", "post_info.auto_responder": "", - "notification_settings.pushNotification.mentions_only": "", + "notification_settings.pushNotification.mentions_only": "멘션, 쪽지만", "server_list.push_proxy_unknown": "", "unreads.empty.title": "", "thread.repliesCount": "", - "settings_display.clock.standard": "", + "settings_display.clock.standard": "12시간제로 표시", "notification.message_not_found": "", "mobile.calls_see_logs": "", "invite.members.already_member": "", "mobile.calls_lasted": "", "mobile.calls_lower_hand": "", "post.reactions.title": "", - "notification_settings.threads_start_participate": "", + "notification_settings.threads_start_participate": "내가 시작하였거나 참여했던 글타래의 댓글을 알림", "notification_settings.auto_responder.to.enable": "", "mobile.calls_leave_call": "", "settings.about.copyright": "", "mobile.calls_end_msg_channel": "", "unsupported_server.message": "", "mobile.login_options.select_option": "", - "saved_messages.empty.paragraph": "", + "saved_messages.empty.paragraph": "나중을 위해 저장하려는 메시지가 있으면, 메시지를 길게 누른 후 메뉴에서 저장을 선택하십시오. 저장된 메시지는 본인만 볼 수 있습니다.", "mobile.calls_host_rec_title": "", "mobile.calls_end_msg_channel_default": "", "mobile.calls_recording_stop_no_permissions": "", - "notification_settings.mobile": "", + "notification_settings.mobile": "푸시 알림", "mobile.calls_react": "", - "notification_settings.pushNotification.disabled_long": "", + "notification_settings.pushNotification.disabled_long": "시스템 관리자가 모바일 장치에 대한 푸시 알림을 비활성화했습니다.", "mobile.no_results_with_term.messages": "", - "notification_settings.send_notification.about": "", + "notification_settings.send_notification.about": "푸시 알림을 받을 대상:", "threads.end_of_list.subtitle": "", - "notification_settings.mentions.keywords_mention": "", + "notification_settings.mentions.keywords_mention": "멘션 알림 키워드", "settings.display": "", "user_profile.custom_status": "", - "notification_settings.mentions.keywords": "", + "notification_settings.mentions.keywords": "키워드", "mobile.login_options.none": "", "mobile.components.select_server_view.msg_description": "", "settings.link.error.text": "", "mobile.login_options.saml": "", "public_link_copied": "", "select_team.title": "", - "notification_settings.mobile.away": "", + "notification_settings.mobile.away": "오프라인이거나 자리비움", "mobile.create_channel.title": "", "server.remove.alert_description": "", "settings.link.error.title": "", @@ -630,12 +630,12 @@ "mobile.login_options.separator_text": "", "notification_settings.auto_responder.footer.message": "", "snack.bar.remove.user": "", - "settings_display.crt.label": "", - "settings_display.crt.desc": "", + "settings_display.crt.label": "축소된 응답 글타래", + "settings_display.crt.desc": "사용으로 설정하면 댓글 메시지는 채널에 표시되지 않으며 팔로우 중인 스레드에 대한 알림은 \"스레드\" 보기에서 확인할 수 있습니다.", "onboaring.welcome_description": "", "onboarding.calls_description": "", "onboarding.calls": "", - "notification_settings.email.emailInfo": "", + "notification_settings.email.emailInfo": "오프라인 상태이거나 5분 이상 자리를 비우면 멘션 및 개인 메시지에 대한 전자우편 알림이 전송됩니다.", "mobile.manage_members.section_title_members": "", "mobile.manage_members.section_title_admins": "", "mobile.manage_members.remove_member": "", @@ -668,10 +668,10 @@ "invite.summary.try_again": "", "invite.summary.some_not_sent": "", "channel_info.archive_description.cannot_view_archived": "", - "channel_info.archive_description.can_view_archived": "", + "channel_info.archive_description.can_view_archived": "이렇게 하면 팀에서 채널을 보관합니다. 채널 구성원은 채널에 계속 접근할 수 있습니다.\n\n{term} {name} 채널을 보관하시겠어요?", "mobile.server_identifier.exists": "", "mobile.managed.jailbreak_no_reason": "", - "mobile.display_settings.crt": "", + "mobile.display_settings.crt": "축소된 응답 글타래", "mobile.calls_participant_rec_title": "", "invite.title.summary": "", "invite.title": "", @@ -694,18 +694,18 @@ "terms_of_service.alert_retry": "", "share_feedback.button.no": "", "settings.notice_mobile_link": "", - "notification_settings.pushNotification.nothing": "", + "notification_settings.pushNotification.nothing": "알림을 받지 않음", "notification_settings.email.send": "", "notification_settings.email.immediately": "", - "mobile.screen.your_profile": "", + "mobile.screen.your_profile": "내 프로필", "mobile.calls_start_call_exists": "", "mobile.calls_not_connected": "", "notification_settings.email.everyHour": "", "video.download_description": "", - "user.edit_profile.profile_photo.change_photo": "", + "user.edit_profile.profile_photo.change_photo": "프로필 사진 변경", "user_status.title": "", "user_status.online": "", - "user_status.offline": "", + "user_status.offline": "오프라인", "user_status.dnd": "", "user_status.away": "", "share_extension.server_label": "", @@ -713,7 +713,7 @@ "mobile.camera_type.title": "", "video.failed_description": "", "thread.loadingReplies": "", - "settings_display.timezone.automatically": "", + "settings_display.timezone.automatically": "자동으로 설정", "mobile.login_options.openid": "", "mobile.login_options.office365": "", "mobile.calls_open_channel": "", @@ -732,7 +732,7 @@ "post_info.bot": "", "mobile.calls_viewing_screen": "", "settings.advanced.delete_message.confirmation": "", - "settings.advanced.delete_data": "", + "settings.advanced.delete_data": "로컬 파일 삭제", "server.remove.alert_title": "", "team_list.no_other_teams.title": "", "skintone_selector.tooltip.title": "", @@ -741,15 +741,15 @@ "server.logout.alert_description": "", "mobile.create_post.read_only": "", "mobile.calls_ended_at": "", - "notification_settings.threads_start": "", + "notification_settings.threads_start": "내가 시작한 글타래의 댓글을 알림", "server.websocket.unreachable": "", "notification_settings.auto_responder.message": "", "mobile.channel_list.unreads": "", "settings.about.powered_by": "", "screens.channel_info": "", - "user.settings.general.field_handled_externally": "", + "user.settings.general.field_handled_externally": "아래의 필드중 일부는 로그인 서비스 제공업체를 통해 처리됩니다. 해당 필드를 변경하려면 로그인 공급업체를 통해 변경해야 합니다.", "mobile.oauth.something_wrong.okButton": "", - "notification_settings.mentions.keywordsLabel": "", + "notification_settings.mentions.keywordsLabel": "키워드는 대소문자를 구분하지 않습니다. 쉼표로 키워드를 구분합니다.", "mobile.login_options.google": "", "pinned_messages.empty.paragraph": "", "server_list.push_proxy_error": "", @@ -778,27 +778,27 @@ "terms_of_service.acceptButton": "", "share_feedback.subtitle": "", "share_feedback.button.yes": "", - "settings.advanced_settings": "", + "settings.advanced_settings": "고급 설정", "settings.about.database.schema": "", - "settings_display.timezone.select": "", - "settings_display.timezone.off": "", - "settings_display.timezone.manual": "", + "settings_display.timezone.select": "표준시간대 선택", + "settings_display.timezone.off": "사용 안함", + "settings_display.timezone.manual": "표준시간대 변경", "settings_display.custom_theme": "", - "settings_display.clock.normal.desc": "", + "settings_display.clock.normal.desc": "예: 4:00 PM", "servers.edit": "", "servers.default": "", "server_upgrade.learn_more": "", "server_upgrade.dismiss": "", "server_upgrade.alert_description": "", "plus_menu.open_direct_message.title": "", - "plus_menu.invite_people_to_team.title": "", + "plus_menu.invite_people_to_team.title": "팀에 구성원 초대하기", "pinned_messages.empty.title": "", "permalink.show_dialog_warn.description": "채널 관리자가 명시적으로 추가하지 않고 {channel}에 가입하려고 합니다. 이 비공개 채널에 참여하시겠습니까?", "password_send.generic_error": "", "notification.not_team_member": "", "notification.not_channel_member": "", - "notification_settings.mentions.sensitiveUsername": "", - "notification_settings.mentions.channelWide": "", + "notification_settings.mentions.sensitiveUsername": "대소문자를 구분하지 않는 사용자 명", + "notification_settings.mentions.channelWide": "채널 전체 멘션", "notification_settings.email.crt.send": "", "notification_settings.email": "", "notification_settings.auto_responder.default_message": "", @@ -806,10 +806,10 @@ "mobile.request.invalid_request_method": "", "mobile.post_info.save": "", "mobile.participants.header": "", - "mobile.display_settings.timezone": "", + "mobile.display_settings.timezone": "표준시간대", "mobile.components.select_server_view.msg_welcome": "", "video.download": "", - "user.edit_profile.email.web_client": "", + "user.edit_profile.email.web_client": "이메일은 웹 클라이언트 혹은 데스크톱 애플리케이션을 사용하여 변경해야 합니다.", "terms_of_service.title": "", "terms_of_service.error.title": "", "terms_of_service.error.retry": "", @@ -838,9 +838,9 @@ "select_team.no_team.title": "", "select_team.no_team.description": "", "screen.search.results.file_options.download": "", - "screen.saved_messages.title": "", - "screen.saved_messages.subtitle": "", - "screen.mentions.title": "", + "screen.saved_messages.title": "저장된 메시지", + "screen.saved_messages.subtitle": "팔로우 업을 위해 저장한 모든 메시지", + "screen.mentions.title": "최근 멘션", "rate.subtitle": "", "rate.error.title": "", "rate.error.text": "", @@ -848,8 +848,8 @@ "rate.button.yes": "", "rate.button.needs_work": "", "settings.about.licensed": "", - "screen.mentions.subtitle": "", - "saved_messages.empty.title": "", + "screen.mentions.subtitle": "내가 멘션된 메시지", + "saved_messages.empty.title": "저장된 메시지가 없습니다", "post_priority.picker.title": "", "post_priority.picker.label.urgent": "", "post_priority.picker.label.standard": "", @@ -863,9 +863,9 @@ "screen.search.results.filter.images": "", "permalink.error.access.text": "", "password_send.return": "", - "notification_settings.mobile.offline": "", + "notification_settings.mobile.offline": "오프라인", "mobile.post_info.unsave": "", - "mobile.display_settings.clockDisplay": "", + "mobile.display_settings.clockDisplay": "시간 표시", "mobile.direct_message.error": "", "mobile.custom_status.clear_after.title": "", "mobile.calls_unmute": "", @@ -884,7 +884,7 @@ "mobile.post_pre_header.pinned_saved": "", "mobile.oauth.switch_to_browser.error_title": "", "mobile.oauth.switch_to_browser": "", - "user.settings.notifications.email_threads.description": "", + "user.settings.notifications.email_threads.description": "팔로우 중인 스레드에 대한 모든 회신에 대해 알림을 받음", "mobile.oauth.failed_to_open_link_no_browser": "", "mobile.no_results.spelling": "", "mobile.no_results_with_term": "", @@ -897,7 +897,7 @@ "mobile.edit_post.delete_title": "", "mobile.edit_post.delete_question": "", "mobile.components.select_server_view.msg_connect": "", - "mobile.channel_list.recent": "", + "mobile.channel_list.recent": "최근", "mobile.camera_photo_permission_denied_description": "", "mobile.calls_you": "", "mobile.calls_speaker": "", @@ -918,14 +918,14 @@ "permalink.error.private_channel.text": "", "permalink.error.private_channel_and_team.button": "", "permalink.error.okay": "", - "notification_settings.push_notification": "", + "notification_settings.push_notification": "푸시 알림", "notification_settings.ooo_auto_responder": "", - "notification_settings.mentions..keywordsDescription": "", - "notification_settings.mentions_replies": "", + "notification_settings.mentions..keywordsDescription": "멘션 알림 키워드", + "notification_settings.mentions_replies": "멘션 및 응답", "notification_settings.email.fifteenMinutes": "", "notification_settings.email.emailHelp2": "", "notification_settings.auto_responder": "", - "your.servers": "", + "your.servers": "서버 선택", "screens.channel_edit_header": "", "screens.channel_edit": "", "screen.search.title": "", @@ -937,7 +937,7 @@ "screen.search.results.filter.all_file_types": "", "screen.search.results.file_options.open_in_channel": "", "screen.search.results.file_options.copy_link": "", - "screen.search.placeholder": "", + "screen.search.placeholder": "메시지 및 파일 검색", "screen.search.modifier.header": "", "screen.search.header.messages": "", "screen.search.header.files": "", @@ -945,15 +945,15 @@ "post_priority.label.urgent": "", "post_priority.label.important": "", "post_info.guest": "", - "plus_menu.create_new_channel.title": "", - "plus_menu.browse_channels.title": "", + "plus_menu.create_new_channel.title": "채널 만들기", + "plus_menu.browse_channels.title": "채널 탐색", "permalink.error.public_channel.text": "", "permalink.error.public_channel_and_team.text": "", "permalink.error.cancel": "", - "notification_settings.mobile.trigger_push": "", - "notification_settings.mobile.online": "", + "notification_settings.mobile.trigger_push": "아래의 상태일 때 푸시 알림 활성화:", + "notification_settings.mobile.online": "온라인, 오프라인, 자리비움", "notification_settings.mentions": "", - "notification_settings.mention.reply": "", + "notification_settings.mention.reply": "댓글에 대한 알림 설정", "notification_settings.email.never": "", "notification_settings.email.crt.emailInfo": "", "mobile.storage_permission_denied_description": "", @@ -962,10 +962,10 @@ "mobile.server_ping_failed": "", "mobile.server_name.exists": "", "mobile.search.show_less": "", - "mobile.search.modifier.phrases": "", - "mobile.search.modifier.in": "", - "mobile.search.modifier.from": "", - "mobile.search.modifier.exclude": "", + "mobile.search.modifier.phrases": "문구가 포함된 메시지", + "mobile.search.modifier.in": "특정 채널", + "mobile.search.modifier.from": "특정 사용자", + "mobile.search.modifier.exclude": "검색어 제외", "unreads.empty.paragraph": "", "threads.end_of_list.title": "", "thread.header.thread": "", @@ -977,15 +977,27 @@ "settings.notifications": "", "settings.notice_text": "", "settings.notice_platform_link": "", - "settings_display.clock.mz.desc": "", - "settings_display.clock.mz": "", + "settings_display.clock.mz.desc": "예: 16:00", + "settings_display.clock.mz": "24시간제로 표시", "servers.remove": "", "servers.logout": "", "servers.login": "", - "search_bar.search.placeholder": "", + "search_bar.search.placeholder": "표준시간대 검색", "screens.channel_info.gm": "", "screens.channel_info.dm": "", "post_priority.picker.cancel": "취소", "post_priority.picker.apply": "적용", - "post_priority.button.acknowledge": "수신확인" + "post_priority.button.acknowledge": "수신확인", + "channel_files.empty.title": "아직 파일이 없습니다", + "channel_files.noFiles.title": "파일이 존재하지 않습니다", + "screen.channel_files.header.recent_files": "최근 파일", + "channel_add_members.add_members.button": "멤버 추가", + "channel_info.add_members": "멤버 추가", + "channel_notification_preferences.notification.all": "모든 새 메시지", + "channel_notification_preferences.notify_about": "푸시 알림을 받을 대상:", + "channel_notification_preferences.notification.mention": "멘션, 쪽지만", + "channel_notification_preferences.notification.none": "알림을 받지 않음", + "channel_files.empty.paragraph": "이 채널에 게시된 파일은 여기에 표시됩니다.", + "channel_files.noFiles.paragraph": "이 채널에는 필터가 적용된 파일이 포함되어 있지 않습니다", + "channel_notification_preferences.notification.thread_replies": "이 채널에서 팔로우 중인 스레드에 대해 답글 알림 받기" } From 7dda163f419c0e0bbd986cf25eff458d555ef72b Mon Sep 17 00:00:00 2001 From: intdev32 Date: Sun, 3 Sep 2023 06:09:01 +0000 Subject: [PATCH 16/47] Translated using Weblate (Korean) Currently translated at 72.9% (782 of 1072 strings) Translation: mattermost-languages-shipped/mattermost-mobile-v2 Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-mobile-v2/ko/ --- assets/base/i18n/ko.json | 266 ++++++++++++++++++++++----------------- 1 file changed, 150 insertions(+), 116 deletions(-) diff --git a/assets/base/i18n/ko.json b/assets/base/i18n/ko.json index 21b4b55f0..23a10cf65 100644 --- a/assets/base/i18n/ko.json +++ b/assets/base/i18n/ko.json @@ -559,26 +559,26 @@ "password_send.reset": "", "permalink.error.private_channel_and_team.title": "", "unreads.empty.show_all": "", - "mobile.calls_request_message": "", + "mobile.calls_request_message": "통화는 현재 테스트 모드에서 실행 중이며 시스템 관리자만 시작할 수 있습니다. 시스템 관리자에게 직접 문의하여 도움을 받으세요", "notification_settings.mentions.sensitiveName": "", - "invite.members.user_is_guest": "", - "mobile.login_options.heading": "", - "mobile.ios.photos_permission_denied_description": "", - "mobile.calls_host_rec_error_title": "", + "invite.members.user_is_guest": "이 게스트를 정식 구성원으로 만들려면 관리자에게 문의하세요", + "mobile.login_options.heading": "계정에 로그인", + "mobile.ios.photos_permission_denied_description": "사진과 동영상을 서버에 업로드하거나 디바이스에 저장합니다. 설정을 열어 {applicationName} 에 사진 및 동영상 라이브러리에 대한 읽기 및 쓰기 액세스 권한을 부여합니다.", + "mobile.calls_host_rec_error_title": "녹화에 문제가 발생했습니다", "mobile.no_results_with_term.files": "", - "mobile.calls_recording_stop_none_in_progress": "", - "mobile.login_options.gitlab": "", + "mobile.calls_recording_stop_none_in_progress": "녹화가 진행 중이 아닙니다.", + "mobile.login_options.gitlab": "GitLab", "password_send.link.title": "", - "mobile.calls_start_call": "", + "mobile.calls_start_call": "통화 시작", "user.tutorial.long_press": "", "server.tutorial.swipe": "", - "mobile.calls_end_permission_title": "", + "mobile.calls_end_permission_title": "오류", "mobile.open_dm.error": "", "notification_settings.push_threads.following": "이 채널에서 팔로우 중인 스레드에 대해 답글 알림 받기", - "mobile.calls_rec": "", + "mobile.calls_rec": "녹화", "settings.about": "", "snack.bar.link.copied": "", - "invite.searchPlaceholder": "", + "invite.searchPlaceholder": "이름 또는 이메일 주소를 입력하세요…", "smobile.search.recent_title": "{teamName} 의 최근 검색", "notification_settings.pushNotification.all_new_messages": "모든 새 메시지", "team_list.no_other_teams.description": "", @@ -589,45 +589,45 @@ "thread.repliesCount": "", "settings_display.clock.standard": "12시간제로 표시", "notification.message_not_found": "", - "mobile.calls_see_logs": "", - "invite.members.already_member": "", - "mobile.calls_lasted": "", - "mobile.calls_lower_hand": "", + "mobile.calls_see_logs": "서버 로그 보기", + "invite.members.already_member": "이 사람은 이미 구성원입니다", + "mobile.calls_lasted": "{duration}동안 지속됨", + "mobile.calls_lower_hand": "손 내리기", "post.reactions.title": "", "notification_settings.threads_start_participate": "내가 시작하였거나 참여했던 글타래의 댓글을 알림", "notification_settings.auto_responder.to.enable": "", - "mobile.calls_leave_call": "", + "mobile.calls_leave_call": "통화 종료", "settings.about.copyright": "", - "mobile.calls_end_msg_channel": "", + "mobile.calls_end_msg_channel": "{numParticipants}명이 참가하고 있는 {displayName}의 통화를 종료 하시겠습니까?", "unsupported_server.message": "", - "mobile.login_options.select_option": "", + "mobile.login_options.select_option": "아래에서 로그인 옵션을 선택합니다.", "saved_messages.empty.paragraph": "나중을 위해 저장하려는 메시지가 있으면, 메시지를 길게 누른 후 메뉴에서 저장을 선택하십시오. 저장된 메시지는 본인만 볼 수 있습니다.", - "mobile.calls_host_rec_title": "", - "mobile.calls_end_msg_channel_default": "", - "mobile.calls_recording_stop_no_permissions": "", + "mobile.calls_host_rec_title": "녹화 중입니다", + "mobile.calls_end_msg_channel_default": "정말 통화를 종료하시겠습니까?", + "mobile.calls_recording_stop_no_permissions": "녹음을 중지할 수 있는 권한이 없습니다. 통화 호스트에게 녹음을 중지해 달라고 요청하세요.", "notification_settings.mobile": "푸시 알림", - "mobile.calls_react": "", + "mobile.calls_react": "반응하기", "notification_settings.pushNotification.disabled_long": "시스템 관리자가 모바일 장치에 대한 푸시 알림을 비활성화했습니다.", "mobile.no_results_with_term.messages": "", - "notification_settings.send_notification.about": "푸시 알림을 받을 대상:", + "notification_settings.send_notification.about": "푸시 알림을 받을 대상...", "threads.end_of_list.subtitle": "", "notification_settings.mentions.keywords_mention": "멘션 알림 키워드", "settings.display": "", "user_profile.custom_status": "", "notification_settings.mentions.keywords": "키워드", - "mobile.login_options.none": "", - "mobile.components.select_server_view.msg_description": "", + "mobile.login_options.none": "아직 계정에 로그인할 수 없습니다. 하나 이상의 로그인 옵션을 구성해야 합니다. 시스템 관리자에게 도움을 요청하세요.", + "mobile.components.select_server_view.msg_description": "서버는 고유 URL을 사용하여 액세스하는 팀의 커뮤니케이션 허브입니다", "settings.link.error.text": "", - "mobile.login_options.saml": "", + "mobile.login_options.saml": "SAML", "public_link_copied": "", "select_team.title": "", "notification_settings.mobile.away": "오프라인이거나 자리비움", - "mobile.create_channel.title": "", + "mobile.create_channel.title": "새 채널", "server.remove.alert_description": "", "settings.link.error.title": "", "notification_settings.push_threads.replies": "", "settings.about.server.version.value": "", - "mobile.login_options.separator_text": "", + "mobile.login_options.separator_text": "또는 다음으로 로그인", "notification_settings.auto_responder.footer.message": "", "snack.bar.remove.user": "", "settings_display.crt.label": "축소된 응답 글타래", @@ -644,53 +644,53 @@ "mobile.manage_members.member": "", "mobile.manage_members.manage_member": "", "mobile.manage_members.manage": "", - "mobile.custom_list.no_results": "", - "mobile.components.select_server_view.displayName": "", - "mobile.components.select_server_view.displayHelp": "", - "mobile.components.select_server_view.connecting": "", - "mobile.calls_recording_start_no_permissions": "", - "mobile.calls_recording_start_in_progress": "", - "mobile.calls_host_rec_error": "", + "mobile.custom_list.no_results": "결과가 없습니다", + "mobile.components.select_server_view.displayName": "표시명", + "mobile.components.select_server_view.displayHelp": "서버의 표시 이름을 선택하세요", + "mobile.components.select_server_view.connecting": "연결중", + "mobile.calls_recording_start_no_permissions": "녹음을 시작할 수 있는 권한이 없습니다. 통화 호스트에게 녹음을 시작하도록 요청하세요.", + "mobile.calls_recording_start_in_progress": "녹화가 이미 진행 중입니다.", + "mobile.calls_host_rec_error": "녹화를 다시 시도하십시오. 시스템 관리자에게 문의하여 문제 해결에 도움을 받을 수도 있습니다.", "mobile.manage_members.make_channel_member": "", "mobile.manage_members.make_channel_admin": "", "mobile.manage_members.done": "", "mobile.manage_members.change_role.error": "", "mobile.manage_members.cancel": "", - "mobile.manage_members.admin": "", + "mobile.manage_members.admin": "관리자", "share_extension.message": "", "share_extension.max_resolution": "", "share_extension.file_limit.single": "", "onboarding.realtime_collaboration": "", "onboarding.integrations_description": "", "onboarding.integrations": "", - "mobile.calls_stop_recording": "", - "mobile.calls_record": "", - "invite.summary.try_again": "", + "mobile.calls_stop_recording": "녹화 중지", + "mobile.calls_record": "녹화", + "invite.summary.try_again": "다시 시도", "invite.summary.some_not_sent": "", - "channel_info.archive_description.cannot_view_archived": "", + "channel_info.archive_description.cannot_view_archived": "이렇게 하면 팀에서 채널을 보관하고 사용자 인터페이스에서 제거합니다. 보관된 채널은 다시 필요할 경우 보관 해제할 수 있습니다. \n \n {term} {name}을 보관하시겠습니까?", "channel_info.archive_description.can_view_archived": "이렇게 하면 팀에서 채널을 보관합니다. 채널 구성원은 채널에 계속 접근할 수 있습니다.\n\n{term} {name} 채널을 보관하시겠어요?", "mobile.server_identifier.exists": "", "mobile.managed.jailbreak_no_reason": "", "mobile.display_settings.crt": "축소된 응답 글타래", - "mobile.calls_participant_rec_title": "", - "invite.title.summary": "", - "invite.title": "", - "invite.summary.smtp_failure": "", + "mobile.calls_participant_rec_title": "녹화가 진행 중입니다", + "invite.title.summary": "초대 요약", + "invite.title": "초대", + "invite.summary.smtp_failure": "시스템 콘솔에서 SMTP가 설정되지 않았습니다", "mobile.managed.jailbreak_no_debug_info": "", - "invite.summary.sent": "", - "invite.summary.report.sent": "", + "invite.summary.sent": "당신의 {sentCount, plural, one {invitation has} other {invitations have}}이(가) 전송되었습니다", + "invite.summary.report.sent": "{count}건 성공 {count, plural, one {invitation} other {invitations}}", "invite.summary.report.notSent": "", "invite.summary.not_sent": "", - "invite.summary.member_invite": "", + "invite.summary.member_invite": "{teamDisplayName}의 회원으로 초대되었습니다", "invite.summary.error": "", - "invite.summary.email_invite": "", - "invite.summary.done": "", - "invite.shareLink": "", - "invite.sendInvitationsTo": "", - "invite.send_invite": "", - "invite.send_error": "", - "invite.search.no_results": "", - "invite.search.email_invite": "", + "invite.summary.email_invite": "초대 이메일이 발신되었습니다", + "invite.summary.done": "완료", + "invite.shareLink": "공유 링크", + "invite.sendInvitationsTo": "다음 주소로 초대 보내기…", + "invite.send_invite": "보내기", + "invite.send_error": "초대를 보내는 동안 문제가 발생했습니다. 네트워크 연결을 확인한 후 다시 시도하세요.", + "invite.search.no_results": "일치하는 항목을 찾지 못했습니다", + "invite.search.email_invite": "초대", "terms_of_service.alert_retry": "", "share_feedback.button.no": "", "settings.notice_mobile_link": "", @@ -698,8 +698,8 @@ "notification_settings.email.send": "", "notification_settings.email.immediately": "", "mobile.screen.your_profile": "내 프로필", - "mobile.calls_start_call_exists": "", - "mobile.calls_not_connected": "", + "mobile.calls_start_call_exists": "채널에서 이미 통화가 진행 중입니다.", + "mobile.calls_not_connected": "현재 채널에서 통화에 연결되어 있지 않습니다.", "notification_settings.email.everyHour": "", "video.download_description": "", "user.edit_profile.profile_photo.change_photo": "프로필 사진 변경", @@ -710,18 +710,18 @@ "user_status.away": "", "share_extension.server_label": "", "share_extension.multiple_label": "", - "mobile.camera_type.title": "", + "mobile.camera_type.title": "카메라 옵션", "video.failed_description": "", "thread.loadingReplies": "", "settings_display.timezone.automatically": "자동으로 설정", - "mobile.login_options.openid": "", - "mobile.login_options.office365": "", - "mobile.calls_open_channel": "", - "mobile.create_direct_message.max_limit_reached": "", - "mobile.calls_request_title": "", - "mobile.calls_participant_limit_title_GA": "", - "mobile.calls_limit_msg_GA": "", - "mobile.create_direct_message.start": "", + "mobile.login_options.openid": "ID 열기", + "mobile.login_options.office365": "Office 365", + "mobile.calls_open_channel": "채널 열기", + "mobile.create_direct_message.max_limit_reached": "그룹 메시지는 {maxCount} 명의 구성원으로 제한됩니다", + "mobile.calls_request_title": "통화는 현재 사용하도록 설정되어 있지 않습니다", + "mobile.calls_participant_limit_title_GA": "이 통화의 용량이 초과되었습니다", + "mobile.calls_limit_msg_GA": "Cloud Professional 또는 Cloud Enterprise로 업그레이드하여 {maxParticipants} 이상의 참가자와 그룹 통화를 사용하세요.", + "mobile.create_direct_message.start": "대화 시작", "share_extension.servers_screen.title": "", "share_extension.upload_disabled": "", "share_extension.share_screen.title": "", @@ -730,38 +730,38 @@ "share_extension.channel_label": "", "share_extension.channel_error": "", "post_info.bot": "", - "mobile.calls_viewing_screen": "", + "mobile.calls_viewing_screen": "{name} 의 화면을 보고 있습니다", "settings.advanced.delete_message.confirmation": "", "settings.advanced.delete_data": "로컬 파일 삭제", "server.remove.alert_title": "", "team_list.no_other_teams.title": "", "skintone_selector.tooltip.title": "", - "mobile.login_options.enter_credentials": "", + "mobile.login_options.enter_credentials": "아래에 로그인 정보를 입력하세요.", "skintone_selector.tooltip.description": "", "server.logout.alert_description": "", - "mobile.create_post.read_only": "", - "mobile.calls_ended_at": "", + "mobile.create_post.read_only": "이 채널은 읽기 전용입니다.", + "mobile.calls_ended_at": "종료", "notification_settings.threads_start": "내가 시작한 글타래의 댓글을 알림", "server.websocket.unreachable": "", "notification_settings.auto_responder.message": "", - "mobile.channel_list.unreads": "", + "mobile.channel_list.unreads": "읽지않음", "settings.about.powered_by": "", "screens.channel_info": "", "user.settings.general.field_handled_externally": "아래의 필드중 일부는 로그인 서비스 제공업체를 통해 처리됩니다. 해당 필드를 변경하려면 로그인 공급업체를 통해 변경해야 합니다.", "mobile.oauth.something_wrong.okButton": "", "notification_settings.mentions.keywordsLabel": "키워드는 대소문자를 구분하지 않습니다. 쉼표로 키워드를 구분합니다.", - "mobile.login_options.google": "", + "mobile.login_options.google": "Google", "pinned_messages.empty.paragraph": "", "server_list.push_proxy_error": "", - "login_mfa.enterToken": "", + "login_mfa.enterToken": "인증을 완료하시려면 스마트폰 인증 앱에 표시된 토큰 정보를 입력해주세요.", "settings.advanced.delete": "", "settings.advanced.cancel": "", - "mobile.calls_host_rec_stopped_title": "", - "mobile.calls_host_rec_stopped": "", - "mobile.calls_host_rec": "", - "mobile.calls_dismiss": "", - "mobile.calls_participant_rec": "", - "mobile.calls_okay": "", + "mobile.calls_host_rec_stopped_title": "녹화가 중지되었습니다. 처리 중...", + "mobile.calls_host_rec_stopped": "처리가 완료되면 이 통화의 채팅 스레드에서 녹음 내용을 찾을 수 있습니다.", + "mobile.calls_host_rec": "이 회의를 녹음하는 중입니다. 모든 사람에게 이 회의가 녹음되고 있음을 알리는 것이 좋습니다.", + "mobile.calls_dismiss": "취소", + "mobile.calls_participant_rec": "호스트가 이 미팅을 녹화하기 시작했습니다. 미팅에 계속 참여하면 녹화되는 것에 동의하는 것입니다.", + "mobile.calls_okay": "확인", "terms_of_service.terms_declined.title": "", "terms_of_service.decline": "", "terms_of_service.api_error": "요청을 처리할 수 없습니다. 이 문제가 계속되면 시스템 관리자에게 연락하세요.", @@ -807,7 +807,7 @@ "mobile.post_info.save": "", "mobile.participants.header": "", "mobile.display_settings.timezone": "표준시간대", - "mobile.components.select_server_view.msg_welcome": "", + "mobile.components.select_server_view.msg_welcome": "환영합니다", "video.download": "", "user.edit_profile.email.web_client": "이메일은 웹 클라이언트 혹은 데스크톱 애플리케이션을 사용하여 변경해야 합니다.", "terms_of_service.title": "", @@ -825,7 +825,7 @@ "more_messages.text": "", "mobile.write_storage_permission_denied_description": "", "mobile.screen.settings": "", - "mobile.calls_end_permission_msg": "", + "mobile.calls_end_permission_msg": "통화를 종료할 수 있는 권한이 없습니다. 통화를 건 사람에게 통화를 종료하도록 요청하세요.", "thread.options.title": "", "thread.noReplies": "", "thread.header.thread_in": "", @@ -857,8 +857,8 @@ "post_priority.picker.beta": "", "permalink.error.public_channel.button": "", "mobile.oauth.switch_to_browser.title": "", - "mobile.integration_selector.loading_options": "", - "mobile.integration_selector.loading_channels": "", + "mobile.integration_selector.loading_options": "옵션 로딩중...", + "mobile.integration_selector.loading_channels": "채널을 불러오는 중...", "notification_settings.threads_mentions": "", "screen.search.results.filter.images": "", "permalink.error.access.text": "", @@ -866,20 +866,20 @@ "notification_settings.mobile.offline": "오프라인", "mobile.post_info.unsave": "", "mobile.display_settings.clockDisplay": "시간 표시", - "mobile.direct_message.error": "", - "mobile.custom_status.clear_after.title": "", - "mobile.calls_unmute": "", - "mobile.calls_not_available_msg": "", - "mobile.calls_mute": "", - "mobile.calls_mic_error": "", - "mobile.calls_limit_msg": "", + "mobile.direct_message.error": "{displayName}의 DM을 열 수 없습니다.", + "mobile.custom_status.clear_after.title": "사용자 지정 상태를 해제한 후", + "mobile.calls_unmute": "음소거 해제", + "mobile.calls_not_available_msg": "이 기능을 사용하려면 시스템 관리자에게 문의하세요.", + "mobile.calls_mute": "음소거", + "mobile.calls_mic_error": "이 통화에 참여하려면 설정을 열어서 마이크 접근 권한을 부여해주세요.", + "mobile.calls_limit_msg": "통화당 최대 참가자 수는 {maxParticipants} 입니다. 한도를 늘리려면 시스템 관리자에게 문의하세요.", "mobile.session_expired": "", "mobile.server_upgrade.description": "", "mobile.server_link.unreachable_user.error": "", "mobile.search.team.select": "", "mobile.search.show_more": "", "mobile.reset_status.alert_ok": "", - "mobile.calls_leave": "", + "mobile.calls_leave": "나가기", "mobile.post_pre_header.saved": "", "mobile.post_pre_header.pinned_saved": "", "mobile.oauth.switch_to_browser.error_title": "", @@ -888,29 +888,29 @@ "mobile.oauth.failed_to_open_link_no_browser": "", "mobile.no_results.spelling": "", "mobile.no_results_with_term": "", - "mobile.login_options.cant_heading": "", - "mobile.leave_and_join_title": "", - "mobile.leave_and_join_message": "", - "mobile.leave_and_join_confirmation": "", - "mobile.join_channel.error": "", - "mobile.edit_post.error": "", - "mobile.edit_post.delete_title": "", - "mobile.edit_post.delete_question": "", - "mobile.components.select_server_view.msg_connect": "", + "mobile.login_options.cant_heading": "로그인 할 수 없습니다", + "mobile.leave_and_join_title": "다른 통화로 전환하시겠습니까?", + "mobile.leave_and_join_message": "이미 {leaveChannelName}채널 통화를 진행 중입니다. 현재 통화를 종료하고 {joinChannelName}통화에 참여하시겠습니까?", + "mobile.leave_and_join_confirmation": "나가기 및 참여하기", + "mobile.join_channel.error": "{displayName} 채널에 가입할 수 없습니다.", + "mobile.edit_post.error": "이 메시지를 편집하는 동안 문제가 발생했습니다. 다시 시도해 주세요.", + "mobile.edit_post.delete_title": "게시물 삭제 확인", + "mobile.edit_post.delete_question": "정말 게시물을 삭제하시겠습니까?", + "mobile.components.select_server_view.msg_connect": "서버에 접속하기", "mobile.channel_list.recent": "최근", - "mobile.camera_photo_permission_denied_description": "", - "mobile.calls_you": "", - "mobile.calls_speaker": "", - "mobile.calls_raise_hand": "", - "mobile.calls_ok": "", - "mobile.calls_not_available_title": "", - "mobile.calls_not_available_option": "", - "mobile.calls_noone_talking": "", - "mobile.calls_name_started_call": "", - "mobile.calls_more": "", - "mobile.calls_limit_reached": "", - "mobile.calls_join_call": "", - "mobile.calls_end_msg_dm": "", + "mobile.camera_photo_permission_denied_description": "사진을 찍어 서버에 업로드하거나 디바이스에 저장합니다. 설정을 열어 {applicationName} 에 카메라에 대한 읽기 및 쓰기 액세스 권한을 부여합니다.", + "mobile.calls_you": "(당신)", + "mobile.calls_speaker": "스피커", + "mobile.calls_raise_hand": "손 들기", + "mobile.calls_ok": "확인", + "mobile.calls_not_available_title": "통화가 활성화되지 않았습니다", + "mobile.calls_not_available_option": "(사용 불가)", + "mobile.calls_noone_talking": "아무도 말하지 않음", + "mobile.calls_name_started_call": "{name}가 통화를 시작했습니다", + "mobile.calls_more": "더 보기", + "mobile.calls_limit_reached": "참가자 제한에 도달했습니다", + "mobile.calls_join_call": "통화 참가하기", + "mobile.calls_end_msg_dm": "{displayName}의 전화를 종료하겠습니까?", "screen.search.results.filter.documents": "", "screen.search.results.filter.code": "", "permalink.error.public_channel_and_team.button": "", @@ -950,7 +950,7 @@ "permalink.error.public_channel.text": "", "permalink.error.public_channel_and_team.text": "", "permalink.error.cancel": "", - "notification_settings.mobile.trigger_push": "아래의 상태일 때 푸시 알림 활성화:", + "notification_settings.mobile.trigger_push": "아래의 상태일 때 푸시 알림 활성화...", "notification_settings.mobile.online": "온라인, 오프라인, 자리비움", "notification_settings.mentions": "", "notification_settings.mention.reply": "댓글에 대한 알림 설정", @@ -994,10 +994,44 @@ "channel_add_members.add_members.button": "멤버 추가", "channel_info.add_members": "멤버 추가", "channel_notification_preferences.notification.all": "모든 새 메시지", - "channel_notification_preferences.notify_about": "푸시 알림을 받을 대상:", + "channel_notification_preferences.notify_about": "푸시 알림을 받을 대상...", "channel_notification_preferences.notification.mention": "멘션, 쪽지만", "channel_notification_preferences.notification.none": "알림을 받지 않음", "channel_files.empty.paragraph": "이 채널에 게시된 파일은 여기에 표시됩니다.", "channel_files.noFiles.paragraph": "이 채널에는 필터가 적용된 파일이 포함되어 있지 않습니다", - "channel_notification_preferences.notification.thread_replies": "이 채널에서 팔로우 중인 스레드에 대해 답글 알림 받기" + "channel_notification_preferences.notification.thread_replies": "이 채널에서 팔로우 중인 스레드에 대해 답글 알림 받기", + "channel_info.channel_files": "파일", + "channel_notification_preferences.reset_default": "기본값으로 되돌리기", + "mobile.ios.plist.NSAppleMusicUsageDescription": "미디어 라이브러리에 액세스할 수 있도록 설정하면 미디어 라이브러리에 있는 파일을 {applicationName}의 메시지에 첨부할 수 있습니다.", + "mobile.ios.plist.NSCameraUsageDescription": "디바이스 카메라에 대한 액세스를 활성화하면 사진이나 동영상을 촬영하여 {applicationName}에 업로드할 수 있습니다.", + "mobile.ios.plist.NSBluetoothAlwaysUsageDescription": "Bluetooth에 대한 액세스를 활성화하면 장치와 클라이언트 간에 콘텐츠를 동기화할 수 있습니다.", + "mobile.ios.plist.NSMicrophoneUsageDescription": "디바이스의 마이크에 액세스할 수 있도록 설정하면 {applicationName} 에서 공유할 통화 또는 동영상에 대한 오디오를 캡처할 수 있습니다.", + "mobile.acknowledgements.header": "확인", + "mobile.ios.plist.NSSpeechRecognitionUsageDescription": "기기에서 사용자 데이터를 Apple에 전송하도록 설정하면 {applicationName} 으로 음성 메시지를 보낼 수 있습니다.", + "mobile.calls_audio_device": "오디오 장치 선택", + "mobile.calls_bluetooth": "블루투스", + "mobile.calls_phone": "전화", + "mobile.ios.plist.NSFaceIDUsageDescription": "Face ID에 대한 액세스를 활성화하면 권한이 없는 사용자가 장치에서 {applicationName} 에 액세스하는 것을 제한할 수 있습니다.", + "mobile.calls_thread": "글타래", + "mobile.calls_you_2": "당신", + "mobile.calls_tablet": "태블릿", + "intro.add_members": "멤버 추가", + "channel_notification_preferences.default": "(기본값)", + "channel_notification_preferences.muted_title": "이 채널은 음소거되어 있습니다", + "channel_notification_preferences.muted_content": "알림 설정을 변경할 수 있지만 채널의 음소거를 해제할 때까지 알림을 받지 못합니다.", + "channel_notification_preferences.thread_replies": "스레드 댓글", + "channel_notification_preferences.unmute_content": "채널 음소거 해제", + "mobile.calls_quality_warning": "불안정한 네트워크 상태로 인해 통화 품질이 저하될 수 있습니다.", + "mobile.diagnostic_id.empty": "이 서버에 진단 ID 값이 없습니다. 시스템 관리자에게 문의하여 이 값을 검토하고 서버를 다시 시작하세요.", + "mobile.calls_incoming_dm": "{name} 이(가) 통화로 초대합니다", + "mobile.calls_join_button": "참가", + "mobile.calls_name_is_talking_postfix": "말하고 있습니다...", + "mobile.channel_add_members.error": "오류가 발생하여 해당 사용자를 채널에 추가할 수 없습니다.", + "mobile.ios.plist.NSBluetoothPeripheralUsageDescription": "Bluetooth 액세스를 활성화하면 통화를 위해 오디오 주변 장치에 연결하고 장치와 클라이언트 간에 콘텐츠를 동기화할 수 있습니다.", + "mobile.ios.plist.NSLocationAlwaysUsageDescription": "위치 데이터에 대한 액세스를 활성화하면 {applicationName} 에서 공유하는 사진 및 동영상에 위치 메타데이터를 추가할 수 있습니다.", + "mobile.ios.plist.NSPhotoLibraryAddUsageDescription": "사진 보관함에 대한 쓰기 액세스를 활성화하면 {applicationName} 에서 다운로드한 사진과 동영상을 내 장치에 저장할 수 있습니다.", + "mobile.calls_raised_hand": "{name} {num, plural, =0 {} other {+# more }}가 손을 들었습니다", + "mobile.ios.plist.NSLocationWhenInUseUsageDescription": "위치 데이터에 대한 액세스를 활성화하면 {applicationName} 에서 공유하는 사진 및 동영상에 위치 메타데이터를 추가할 수 있습니다.", + "mobile.ios.plist.NSPhotoLibraryUsageDescription": "사진 보관함에 대한 읽기 액세스를 활성화하면 내 장치에서 {applicationName} 으로 사진과 동영상을 업로드할 수 있습니다.", + "invite.summary.back": "뒤로 가기" } From 6a68ae6074f24edbf29fe474b50f2c7e913d38a3 Mon Sep 17 00:00:00 2001 From: intdev32 Date: Sun, 3 Sep 2023 07:05:03 +0000 Subject: [PATCH 17/47] Translated using Weblate (Korean) Currently translated at 100.0% (1072 of 1072 strings) Translation: mattermost-languages-shipped/mattermost-mobile-v2 Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-mobile-v2/ko/ --- assets/base/i18n/ko.json | 545 +++++++++++++++++++++------------------ 1 file changed, 291 insertions(+), 254 deletions(-) diff --git a/assets/base/i18n/ko.json b/assets/base/i18n/ko.json index 23a10cf65..b69cc660c 100644 --- a/assets/base/i18n/ko.json +++ b/assets/base/i18n/ko.json @@ -555,51 +555,51 @@ "display_settings.crt.off": "끄기", "display_settings.crt": "축소된 응답 글타래", "default_skin_tone": "기본 피부색", - "permalink.error.public_channel.title": "", - "password_send.reset": "", - "permalink.error.private_channel_and_team.title": "", - "unreads.empty.show_all": "", + "permalink.error.public_channel.title": "채널 가입", + "password_send.reset": "비밀번호 재설정", + "permalink.error.private_channel_and_team.title": "비공개 채널 및 팀 가입", + "unreads.empty.show_all": "모두 보기", "mobile.calls_request_message": "통화는 현재 테스트 모드에서 실행 중이며 시스템 관리자만 시작할 수 있습니다. 시스템 관리자에게 직접 문의하여 도움을 받으세요", - "notification_settings.mentions.sensitiveName": "", + "notification_settings.mentions.sensitiveName": "대소문자를 구분하는 이름", "invite.members.user_is_guest": "이 게스트를 정식 구성원으로 만들려면 관리자에게 문의하세요", "mobile.login_options.heading": "계정에 로그인", "mobile.ios.photos_permission_denied_description": "사진과 동영상을 서버에 업로드하거나 디바이스에 저장합니다. 설정을 열어 {applicationName} 에 사진 및 동영상 라이브러리에 대한 읽기 및 쓰기 액세스 권한을 부여합니다.", "mobile.calls_host_rec_error_title": "녹화에 문제가 발생했습니다", - "mobile.no_results_with_term.files": "", + "mobile.no_results_with_term.files": "일치하는 파일 없음 \"{term}\"", "mobile.calls_recording_stop_none_in_progress": "녹화가 진행 중이 아닙니다.", "mobile.login_options.gitlab": "GitLab", - "password_send.link.title": "", + "password_send.link.title": "재설정 링크 보내기", "mobile.calls_start_call": "통화 시작", - "user.tutorial.long_press": "", - "server.tutorial.swipe": "", + "user.tutorial.long_press": "항목을 길게 누르면 사용자 프로필을 볼 수 있습니다", + "server.tutorial.swipe": "서버에서 왼쪽으로 스와이프하면 더 많은 작업을 볼 수 있습니다", "mobile.calls_end_permission_title": "오류", - "mobile.open_dm.error": "", + "mobile.open_dm.error": "{displayName} (으)로 다이렉트 메시지를 열 수 없습니다. 연결을 확인하고 다시 시도하십시오.", "notification_settings.push_threads.following": "이 채널에서 팔로우 중인 스레드에 대해 답글 알림 받기", "mobile.calls_rec": "녹화", - "settings.about": "", - "snack.bar.link.copied": "", + "settings.about": "{appTitle} 정보", + "snack.bar.link.copied": "링크가 클립보드에 복사되었습니다", "invite.searchPlaceholder": "이름 또는 이메일 주소를 입력하세요…", "smobile.search.recent_title": "{teamName} 의 최근 검색", "notification_settings.pushNotification.all_new_messages": "모든 새 메시지", - "team_list.no_other_teams.description": "", - "post_info.auto_responder": "", + "team_list.no_other_teams.description": "다른 팀에 참여하려면 팀 관리자에게 초대를 요청하거나 직접 팀을 만드세요.", + "post_info.auto_responder": "자동 회신", "notification_settings.pushNotification.mentions_only": "멘션, 쪽지만", - "server_list.push_proxy_unknown": "", - "unreads.empty.title": "", - "thread.repliesCount": "", + "server_list.push_proxy_unknown": "이 서버의 구성으로 인해 이 서버에서 알림을 수신할 수 없습니다. 로그아웃했다가 다시 로그인하여 다시 시도하세요.", + "unreads.empty.title": "읽지 않은 메시지 없음", + "thread.repliesCount": "{repliesCount, number} {repliesCount, plural, one {reply} other {replies}}", "settings_display.clock.standard": "12시간제로 표시", - "notification.message_not_found": "", + "notification.message_not_found": "메시지를 찾을 수 없습니다", "mobile.calls_see_logs": "서버 로그 보기", "invite.members.already_member": "이 사람은 이미 구성원입니다", "mobile.calls_lasted": "{duration}동안 지속됨", "mobile.calls_lower_hand": "손 내리기", - "post.reactions.title": "", + "post.reactions.title": "반응", "notification_settings.threads_start_participate": "내가 시작하였거나 참여했던 글타래의 댓글을 알림", - "notification_settings.auto_responder.to.enable": "", + "notification_settings.auto_responder.to.enable": "자동 답글 사용 설정", "mobile.calls_leave_call": "통화 종료", - "settings.about.copyright": "", + "settings.about.copyright": "Copyright 2015-{currentYear} Mattermost, Inc. All rights reserved", "mobile.calls_end_msg_channel": "{numParticipants}명이 참가하고 있는 {displayName}의 통화를 종료 하시겠습니까?", - "unsupported_server.message": "", + "unsupported_server.message": "{serverDisplayName} 서버는 지원되지 않는 서버 버전으로 작동 중입니다. 호환성 문제로 인해 충돌이 발생하거나 앱의 핵심 기능이 중단되는 심각한 버그가 발생할 수 있습니다. 시스템 관리자에게 문의하여 Mattermost 서버를 업그레이드하세요.", "mobile.login_options.select_option": "아래에서 로그인 옵션을 선택합니다.", "saved_messages.empty.paragraph": "나중을 위해 저장하려는 메시지가 있으면, 메시지를 길게 누른 후 메뉴에서 저장을 선택하십시오. 저장된 메시지는 본인만 볼 수 있습니다.", "mobile.calls_host_rec_title": "녹화 중입니다", @@ -608,42 +608,42 @@ "notification_settings.mobile": "푸시 알림", "mobile.calls_react": "반응하기", "notification_settings.pushNotification.disabled_long": "시스템 관리자가 모바일 장치에 대한 푸시 알림을 비활성화했습니다.", - "mobile.no_results_with_term.messages": "", + "mobile.no_results_with_term.messages": "\"{term}\" 일치하는 항목이 없습니다", "notification_settings.send_notification.about": "푸시 알림을 받을 대상...", - "threads.end_of_list.subtitle": "", + "threads.end_of_list.subtitle": "이전 대화를 찾고 있다면, 검색을 활용해 보세요", "notification_settings.mentions.keywords_mention": "멘션 알림 키워드", - "settings.display": "", - "user_profile.custom_status": "", + "settings.display": "화면", + "user_profile.custom_status": "사용자 정의 상태", "notification_settings.mentions.keywords": "키워드", "mobile.login_options.none": "아직 계정에 로그인할 수 없습니다. 하나 이상의 로그인 옵션을 구성해야 합니다. 시스템 관리자에게 도움을 요청하세요.", "mobile.components.select_server_view.msg_description": "서버는 고유 URL을 사용하여 액세스하는 팀의 커뮤니케이션 허브입니다", - "settings.link.error.text": "", + "settings.link.error.text": "링크를 열 수 없습니다.", "mobile.login_options.saml": "SAML", - "public_link_copied": "", - "select_team.title": "", + "public_link_copied": "클립보드에 링크 복사", + "select_team.title": "팀 선택", "notification_settings.mobile.away": "오프라인이거나 자리비움", "mobile.create_channel.title": "새 채널", - "server.remove.alert_description": "", - "settings.link.error.title": "", - "notification_settings.push_threads.replies": "", - "settings.about.server.version.value": "", + "server.remove.alert_description": "이렇게 하면 서버 목록에서 해당 서버가 제거됩니다. 모든 관련 데이터가 제거됩니다", + "settings.link.error.title": "오류", + "notification_settings.push_threads.replies": "글타래 댓글", + "settings.about.server.version.value": "{version} (Build {number})", "mobile.login_options.separator_text": "또는 다음으로 로그인", - "notification_settings.auto_responder.footer.message": "", - "snack.bar.remove.user": "", + "notification_settings.auto_responder.footer.message": "부재중 또는 휴가 답장 등의 쪽지에 대한 응답으로 자동으로 전송되는 사용자 지정 메시지를 설정합니다. 이 설정을 사용 설정하면 상태가 부재중으로 변경되고 알림이 비활성화됩니다.", + "snack.bar.remove.user": "채널에서 멤버 1명이 삭제되었습니다", "settings_display.crt.label": "축소된 응답 글타래", "settings_display.crt.desc": "사용으로 설정하면 댓글 메시지는 채널에 표시되지 않으며 팔로우 중인 스레드에 대한 알림은 \"스레드\" 보기에서 확인할 수 있습니다.", - "onboaring.welcome_description": "", - "onboarding.calls_description": "", - "onboarding.calls": "", + "onboaring.welcome_description": "Mattermost는 개발자 협업을 위한 오픈 소스 플랫폼입니다. 안전하고 유연하며 도구와 통합되어 있습니다.", + "onboarding.calls_description": "타이핑 속도가 느리면 탭 한 번으로 채널 기반 채팅에서 보안 음성 통화로 전환하세요.", + "onboarding.calls": "즉시 보안 음성 통화 시작", "notification_settings.email.emailInfo": "오프라인 상태이거나 5분 이상 자리를 비우면 멘션 및 개인 메시지에 대한 전자우편 알림이 전송됩니다.", - "mobile.manage_members.section_title_members": "", - "mobile.manage_members.section_title_admins": "", - "mobile.manage_members.remove_member": "", - "mobile.manage_members.remove": "", - "mobile.manage_members.message": "", - "mobile.manage_members.member": "", - "mobile.manage_members.manage_member": "", - "mobile.manage_members.manage": "", + "mobile.manage_members.section_title_members": "멤버", + "mobile.manage_members.section_title_admins": "채널 관리자", + "mobile.manage_members.remove_member": "채널에서 제거", + "mobile.manage_members.remove": "제거", + "mobile.manage_members.message": "채널에서 선택한 멤버를 삭제하시겠습니까?", + "mobile.manage_members.member": "멤버", + "mobile.manage_members.manage_member": "회원 관리", + "mobile.manage_members.manage": "관리", "mobile.custom_list.no_results": "결과가 없습니다", "mobile.components.select_server_view.displayName": "표시명", "mobile.components.select_server_view.displayHelp": "서버의 표시 이름을 선택하세요", @@ -651,38 +651,38 @@ "mobile.calls_recording_start_no_permissions": "녹음을 시작할 수 있는 권한이 없습니다. 통화 호스트에게 녹음을 시작하도록 요청하세요.", "mobile.calls_recording_start_in_progress": "녹화가 이미 진행 중입니다.", "mobile.calls_host_rec_error": "녹화를 다시 시도하십시오. 시스템 관리자에게 문의하여 문제 해결에 도움을 받을 수도 있습니다.", - "mobile.manage_members.make_channel_member": "", - "mobile.manage_members.make_channel_admin": "", - "mobile.manage_members.done": "", - "mobile.manage_members.change_role.error": "", - "mobile.manage_members.cancel": "", + "mobile.manage_members.make_channel_member": "회원으로 만들기", + "mobile.manage_members.make_channel_admin": "채널 관리자로 만들기", + "mobile.manage_members.done": "완료", + "mobile.manage_members.change_role.error": "역할을 업데이트하는 동안 오류가 발생했습니다. 연결을 확인한 후 다시 시도하세요.", + "mobile.manage_members.cancel": "취소", "mobile.manage_members.admin": "관리자", - "share_extension.message": "", - "share_extension.max_resolution": "", - "share_extension.file_limit.single": "", - "onboarding.realtime_collaboration": "", - "onboarding.integrations_description": "", - "onboarding.integrations": "", + "share_extension.message": "메시지 입력(선택 사항)", + "share_extension.max_resolution": "이미지가 최대 크기인 7680 x 4320 픽셀을 초과합니다", + "share_extension.file_limit.single": "파일 크기는 다음보다 작아야 합니다. {size}", + "onboarding.realtime_collaboration": "실시간 협업", + "onboarding.integrations_description": "공통 개발 프로세스에 맞춰 긴밀하게 통합된 제품 솔루션으로 채팅을 뛰어넘을 수 있습니다.", + "onboarding.integrations": "즐겨 사용하는 도구와 통합", "mobile.calls_stop_recording": "녹화 중지", "mobile.calls_record": "녹화", "invite.summary.try_again": "다시 시도", - "invite.summary.some_not_sent": "", + "invite.summary.some_not_sent": "{notSentCount, plural, one {An invitation was} other {Some invitations were}} 전송되지 않음", "channel_info.archive_description.cannot_view_archived": "이렇게 하면 팀에서 채널을 보관하고 사용자 인터페이스에서 제거합니다. 보관된 채널은 다시 필요할 경우 보관 해제할 수 있습니다. \n \n {term} {name}을 보관하시겠습니까?", "channel_info.archive_description.can_view_archived": "이렇게 하면 팀에서 채널을 보관합니다. 채널 구성원은 채널에 계속 접근할 수 있습니다.\n\n{term} {name} 채널을 보관하시겠어요?", - "mobile.server_identifier.exists": "", - "mobile.managed.jailbreak_no_reason": "", + "mobile.server_identifier.exists": "이미 이 서버에 연결되어 있습니다.", + "mobile.managed.jailbreak_no_reason": "(사용 불가)", "mobile.display_settings.crt": "축소된 응답 글타래", "mobile.calls_participant_rec_title": "녹화가 진행 중입니다", "invite.title.summary": "초대 요약", "invite.title": "초대", "invite.summary.smtp_failure": "시스템 콘솔에서 SMTP가 설정되지 않았습니다", - "mobile.managed.jailbreak_no_debug_info": "", + "mobile.managed.jailbreak_no_debug_info": "(사용 불가)", "invite.summary.sent": "당신의 {sentCount, plural, one {invitation has} other {invitations have}}이(가) 전송되었습니다", "invite.summary.report.sent": "{count}건 성공 {count, plural, one {invitation} other {invitations}}", - "invite.summary.report.notSent": "", - "invite.summary.not_sent": "", + "invite.summary.report.notSent": "{count} {count, plural, one {invitation} other {invitations}} 전송되지 않음", + "invite.summary.not_sent": "{notSentCount, plural, one {Invitation wasn’t} other {Invitations weren’t}} 보냄", "invite.summary.member_invite": "{teamDisplayName}의 회원으로 초대되었습니다", - "invite.summary.error": "", + "invite.summary.error": "{invitationsCount, plural, one {Invitation} other {Invitations}} could not be sent successfully", "invite.summary.email_invite": "초대 이메일이 발신되었습니다", "invite.summary.done": "완료", "invite.shareLink": "공유 링크", @@ -691,28 +691,28 @@ "invite.send_error": "초대를 보내는 동안 문제가 발생했습니다. 네트워크 연결을 확인한 후 다시 시도하세요.", "invite.search.no_results": "일치하는 항목을 찾지 못했습니다", "invite.search.email_invite": "초대", - "terms_of_service.alert_retry": "", - "share_feedback.button.no": "", - "settings.notice_mobile_link": "", + "terms_of_service.alert_retry": "다시 시도", + "share_feedback.button.no": "아니요, 괜찮습니다", + "settings.notice_mobile_link": "모바일 앱", "notification_settings.pushNotification.nothing": "알림을 받지 않음", - "notification_settings.email.send": "", - "notification_settings.email.immediately": "", + "notification_settings.email.send": "이메일 알림 보내기", + "notification_settings.email.immediately": "즉시", "mobile.screen.your_profile": "내 프로필", "mobile.calls_start_call_exists": "채널에서 이미 통화가 진행 중입니다.", "mobile.calls_not_connected": "현재 채널에서 통화에 연결되어 있지 않습니다.", - "notification_settings.email.everyHour": "", - "video.download_description": "", + "notification_settings.email.everyHour": "매 시간마다", + "video.download_description": "이 영상을 재생하려면 다운로드해야 합니다.", "user.edit_profile.profile_photo.change_photo": "프로필 사진 변경", - "user_status.title": "", - "user_status.online": "", + "user_status.title": "상태", + "user_status.online": "온라인", "user_status.offline": "오프라인", - "user_status.dnd": "", - "user_status.away": "", - "share_extension.server_label": "", - "share_extension.multiple_label": "", + "user_status.dnd": "방해 금지", + "user_status.away": "자리비움", + "share_extension.server_label": "서버", + "share_extension.multiple_label": "{count, number} 첨부 파일", "mobile.camera_type.title": "카메라 옵션", - "video.failed_description": "", - "thread.loadingReplies": "", + "video.failed_description": "영상을 재생하는 동안 오류가 발생했습니다.", + "thread.loadingReplies": "댓글 불러오는 중...", "settings_display.timezone.automatically": "자동으로 설정", "mobile.login_options.openid": "ID 열기", "mobile.login_options.office365": "Office 365", @@ -722,149 +722,149 @@ "mobile.calls_participant_limit_title_GA": "이 통화의 용량이 초과되었습니다", "mobile.calls_limit_msg_GA": "Cloud Professional 또는 Cloud Enterprise로 업그레이드하여 {maxParticipants} 이상의 참가자와 그룹 통화를 사용하세요.", "mobile.create_direct_message.start": "대화 시작", - "share_extension.servers_screen.title": "", - "share_extension.upload_disabled": "", - "share_extension.share_screen.title": "", - "share_extension.file_limit.multiple": "", - "share_extension.count_limit": "", - "share_extension.channel_label": "", - "share_extension.channel_error": "", - "post_info.bot": "", + "share_extension.servers_screen.title": "서버 선택", + "share_extension.upload_disabled": "선택한 서버에 대해 파일 업로드가 비활성화됩니다", + "share_extension.share_screen.title": "공유 대상 {applicationName}", + "share_extension.file_limit.multiple": "각 파일은 다음보다 작아야 합니다. {size}", + "share_extension.count_limit": "이 서버에서는 {count, number} {count, plural, one {file} other {files}}만 공유할 수 있습니다", + "share_extension.channel_label": "채널", + "share_extension.channel_error": "선택한 서버의 팀원이 아닙니다. 다른 서버를 선택하거나 매터모스트를 열어 팀에 참여하세요.", + "post_info.bot": "봇", "mobile.calls_viewing_screen": "{name} 의 화면을 보고 있습니다", - "settings.advanced.delete_message.confirmation": "", + "settings.advanced.delete_message.confirmation": "\n이 서버에 대해 앱을 통해 다운로드한 모든 파일이 삭제됩니다. 계속하려면 확인해주세요.\n", "settings.advanced.delete_data": "로컬 파일 삭제", - "server.remove.alert_title": "", - "team_list.no_other_teams.title": "", - "skintone_selector.tooltip.title": "", + "server.remove.alert_title": "{displayName} 를 삭제하시겠습니까?", + "team_list.no_other_teams.title": "더 이상 참여할 팀이 없습니다", + "skintone_selector.tooltip.title": "기본 피부 톤 선택", "mobile.login_options.enter_credentials": "아래에 로그인 정보를 입력하세요.", - "skintone_selector.tooltip.description": "", - "server.logout.alert_description": "", + "skintone_selector.tooltip.description": "이제 이모티콘에 사용할 피부 톤을 선택할 수 있습니다.", + "server.logout.alert_description": "모든 관련 데이터가 제거됩니다", "mobile.create_post.read_only": "이 채널은 읽기 전용입니다.", "mobile.calls_ended_at": "종료", "notification_settings.threads_start": "내가 시작한 글타래의 댓글을 알림", - "server.websocket.unreachable": "", - "notification_settings.auto_responder.message": "", + "server.websocket.unreachable": "서버에 연결할 수 없습니다.", + "notification_settings.auto_responder.message": "메시지", "mobile.channel_list.unreads": "읽지않음", - "settings.about.powered_by": "", - "screens.channel_info": "", + "settings.about.powered_by": "{site} is powered by Mattermost", + "screens.channel_info": "채널 정보", "user.settings.general.field_handled_externally": "아래의 필드중 일부는 로그인 서비스 제공업체를 통해 처리됩니다. 해당 필드를 변경하려면 로그인 공급업체를 통해 변경해야 합니다.", - "mobile.oauth.something_wrong.okButton": "", + "mobile.oauth.something_wrong.okButton": "확인", "notification_settings.mentions.keywordsLabel": "키워드는 대소문자를 구분하지 않습니다. 쉼표로 키워드를 구분합니다.", "mobile.login_options.google": "Google", - "pinned_messages.empty.paragraph": "", - "server_list.push_proxy_error": "", + "pinned_messages.empty.paragraph": "중요한 쪽지를 고정하려면 쪽지를 길게 누르고 채널에 고정을 선택합니다. 고정된 메시지는 이 채널의 모든 사용자에게 표시됩니다.", + "server_list.push_proxy_error": "이 서버의 구성으로 인해 이 서버에서 알림을 수신할 수 없습니다. 시스템 관리자에게 문의하세요.", "login_mfa.enterToken": "인증을 완료하시려면 스마트폰 인증 앱에 표시된 토큰 정보를 입력해주세요.", - "settings.advanced.delete": "", - "settings.advanced.cancel": "", + "settings.advanced.delete": "삭제", + "settings.advanced.cancel": "취소", "mobile.calls_host_rec_stopped_title": "녹화가 중지되었습니다. 처리 중...", "mobile.calls_host_rec_stopped": "처리가 완료되면 이 통화의 채팅 스레드에서 녹음 내용을 찾을 수 있습니다.", "mobile.calls_host_rec": "이 회의를 녹음하는 중입니다. 모든 사람에게 이 회의가 녹음되고 있음을 알리는 것이 좋습니다.", "mobile.calls_dismiss": "취소", "mobile.calls_participant_rec": "호스트가 이 미팅을 녹화하기 시작했습니다. 미팅에 계속 참여하면 녹화되는 것에 동의하는 것입니다.", "mobile.calls_okay": "확인", - "terms_of_service.terms_declined.title": "", - "terms_of_service.decline": "", + "terms_of_service.terms_declined.title": "서비스 약관에 동의해야 합니다", + "terms_of_service.decline": "거절", "terms_of_service.api_error": "요청을 처리할 수 없습니다. 이 문제가 계속되면 시스템 관리자에게 연락하세요.", - "onboarding.welcome": "", - "onboarding.realtime_collaboration_description": "", - "mobile.onboarding.sign_in_to_get_started": "", - "mobile.onboarding.sign_in": "", - "mobile.onboarding.next": "", - "user.edit_profile.email.auth_service": "", - "unsupported_server.title": "", - "terms_of_service.terms_declined.text": "", - "terms_of_service.terms_declined.ok": "", - "terms_of_service.alert_cancel": "", - "terms_of_service.acceptButton": "", - "share_feedback.subtitle": "", - "share_feedback.button.yes": "", + "onboarding.welcome": "환영합니다", + "onboarding.realtime_collaboration_description": "영구 채널, 다이렉트 메시징 및 파일 공유가 원활하게 작동하므로 어디서나 연결 상태를 유지할 수 있습니다.", + "mobile.onboarding.sign_in_to_get_started": "로그인하여 시작하기", + "mobile.onboarding.sign_in": "로그인", + "mobile.onboarding.next": "다음", + "user.edit_profile.email.auth_service": "로그인은 {service} 을 통해 이루어집니다. 이메일을 업데이트할 수 없습니다. 알림에 사용되는 이메일 주소는 {email} 입니다.", + "unsupported_server.title": "지원되지 않는 서버 버전", + "terms_of_service.terms_declined.text": "이 서버에 액세스하려면 서비스 약관에 동의해야 합니다. 자세한 내용은 시스템 관리자에게 문의하세요. 이제 로그아웃됩니다. 다시 로그인하여 서비스 약관에 동의하세요.", + "terms_of_service.terms_declined.ok": "확인", + "terms_of_service.alert_cancel": "취소", + "terms_of_service.acceptButton": "수락", + "share_feedback.subtitle": "더 나은 경험을 제공할 수 있도록 당신의 의견에 귀 기울이겠습니다.", + "share_feedback.button.yes": "예", "settings.advanced_settings": "고급 설정", - "settings.about.database.schema": "", + "settings.about.database.schema": "Database Schema Version: {version}", "settings_display.timezone.select": "표준시간대 선택", "settings_display.timezone.off": "사용 안함", "settings_display.timezone.manual": "표준시간대 변경", - "settings_display.custom_theme": "", + "settings_display.custom_theme": "커스텀 테마", "settings_display.clock.normal.desc": "예: 4:00 PM", - "servers.edit": "", - "servers.default": "", - "server_upgrade.learn_more": "", - "server_upgrade.dismiss": "", - "server_upgrade.alert_description": "", - "plus_menu.open_direct_message.title": "", + "servers.edit": "편집", + "servers.default": "기본 서버", + "server_upgrade.learn_more": "더 알아보기", + "server_upgrade.dismiss": "취소", + "server_upgrade.alert_description": "서버( {serverDisplayName})에서 지원되지 않는 서버 버전을 실행 중입니다. 사용자는 앱의 핵심 기능을 손상시키는 충돌 또는 심각한 버그를 유발하는 호환성 문제에 노출됩니다. 서버 버전 {supportedServerVersion} 이상으로 업그레이드해야 합니다.", + "plus_menu.open_direct_message.title": "쪽지 열기", "plus_menu.invite_people_to_team.title": "팀에 구성원 초대하기", - "pinned_messages.empty.title": "", + "pinned_messages.empty.title": "아직 고정된 메시지가 없습니다", "permalink.show_dialog_warn.description": "채널 관리자가 명시적으로 추가하지 않고 {channel}에 가입하려고 합니다. 이 비공개 채널에 참여하시겠습니까?", - "password_send.generic_error": "", - "notification.not_team_member": "", - "notification.not_channel_member": "", + "password_send.generic_error": "비밀번호 재설정 링크를 보내드릴 수 없습니다. 시스템 관리자에게 문의하여 도움을 받으세요.", + "notification.not_team_member": "이 메시지는 귀하가 멤버가 아닌 팀에 속해 있습니다.", + "notification.not_channel_member": "이 메시지는 회원이 아닌 채널에서 보낸 메시지입니다.", "notification_settings.mentions.sensitiveUsername": "대소문자를 구분하지 않는 사용자 명", "notification_settings.mentions.channelWide": "채널 전체 멘션", - "notification_settings.email.crt.send": "", - "notification_settings.email": "", - "notification_settings.auto_responder.default_message": "", - "mobile.session_expired.title": "", - "mobile.request.invalid_request_method": "", - "mobile.post_info.save": "", - "mobile.participants.header": "", + "notification_settings.email.crt.send": "글타래 응답 알림", + "notification_settings.email": "이메일 알림", + "notification_settings.auto_responder.default_message": "안녕하세요. 저는 지금 부재중이라서 메시지에 응답할 수 없습니다.", + "mobile.session_expired.title": "세션 만료", + "mobile.request.invalid_request_method": "잘못된 요청 방법", + "mobile.post_info.save": "저장", + "mobile.participants.header": "글타래 참가자", "mobile.display_settings.timezone": "표준시간대", "mobile.components.select_server_view.msg_welcome": "환영합니다", - "video.download": "", + "video.download": "영상 다운로드", "user.edit_profile.email.web_client": "이메일은 웹 클라이언트 혹은 데스크톱 애플리케이션을 사용하여 변경해야 합니다.", - "terms_of_service.title": "", - "terms_of_service.error.title": "", - "terms_of_service.error.retry": "", - "terms_of_service.error.logout": "", - "terms_of_service.error.description": "", - "settings.about.database": "", - "select_team.description": "", - "rate.title": "", - "permalink.error.public_channel_and_team.title": "", - "permalink.error.private_channel.button": "", - "permalink.error.private_channel_and_team.text": "", - "permalink.error.access.title": "", - "more_messages.text": "", - "mobile.write_storage_permission_denied_description": "", - "mobile.screen.settings": "", + "terms_of_service.title": "서비스 약관", + "terms_of_service.error.title": "ToS를 받지 못했습니다.", + "terms_of_service.error.retry": "다시 시도", + "terms_of_service.error.logout": "로그아웃", + "terms_of_service.error.description": "서버에서 서비스 약관을 가져올 수 없습니다.", + "settings.about.database": "Database: {driverName}", + "select_team.description": "아직 팀에 가입하지 않으셨습니다. 아래에서 하나를 선택하여 시작하세요.", + "rate.title": "매터모스트를 즐기고 계신가요?", + "permalink.error.public_channel_and_team.title": "채널 및 팀 가입", + "permalink.error.private_channel.button": "채널 가입", + "permalink.error.private_channel_and_team.text": "보려는 메시지가 내가 소속되어 있지 않은 팀의 비공개 채널에 있습니다. 관리자로 액세스 권한이 있습니다. {channelName} ** 및 **{teamName}** 팀에 가입하여 해당 메시지를 보시겠습니까?", + "permalink.error.access.title": "메시지를 볼 수 없음", + "more_messages.text": "{count}건의 새 {count, plural, one {message} other {messages}}", + "mobile.write_storage_permission_denied_description": "장치에 파일을 저장합니다. 설정을 열어 이 장치의 파일에 {applicationName} 쓰기 권한을 부여합니다.", + "mobile.screen.settings": "설정", "mobile.calls_end_permission_msg": "통화를 종료할 수 있는 권한이 없습니다. 통화를 건 사람에게 통화를 종료하도록 요청하세요.", - "thread.options.title": "", - "thread.noReplies": "", - "thread.header.thread_in": "", - "status_dropdown.set_ooo": "", - "snack.bar.unmute.channel": "", - "snack.bar.unfavorite.channel": "", - "share_feedback.title": "", - "servers.create_button": "", - "server.logout.alert_title": "", - "select_team.no_team.title": "", - "select_team.no_team.description": "", - "screen.search.results.file_options.download": "", + "thread.options.title": "글타래 동작", + "thread.noReplies": "아직 댓글이 없습니다", + "thread.header.thread_in": "{channelName} 채널에 있음", + "status_dropdown.set_ooo": "부재 중", + "snack.bar.unmute.channel": "이 채널의 음소거가 해제되었습니다", + "snack.bar.unfavorite.channel": "이 채널이 즐겨찾기에서 제거 되었습니다", + "share_feedback.title": "피드백을 공유해 주시겠어요?", + "servers.create_button": "서버 추가", + "server.logout.alert_title": "{displayName} 에서 로그아웃하시겠습니까?", + "select_team.no_team.title": "가입할 수 있는 팀이 없습니다", + "select_team.no_team.description": "팀에 참여하려면 팀 관리자에게 초대를 요청하거나 직접 팀을 만드세요. 이메일 받은 편지함에서 초대장을 확인할 수도 있습니다.", + "screen.search.results.file_options.download": "다운로드", "screen.saved_messages.title": "저장된 메시지", "screen.saved_messages.subtitle": "팔로우 업을 위해 저장한 모든 메시지", "screen.mentions.title": "최근 멘션", - "rate.subtitle": "", - "rate.error.title": "", - "rate.error.text": "", - "rate.dont_ask_again": "", - "rate.button.yes": "", - "rate.button.needs_work": "", - "settings.about.licensed": "", + "rate.subtitle": "여러분의 의견을 알려주세요.", + "rate.error.title": "오류", + "rate.error.text": "검토 모달을 여는 동안 오류가 발생했습니다.", + "rate.dont_ask_again": "다시 묻지 않기", + "rate.button.yes": "마음에 들어요!", + "rate.button.needs_work": "작업 필요", + "settings.about.licensed": "Licensed to: {company}", "screen.mentions.subtitle": "내가 멘션된 메시지", "saved_messages.empty.title": "저장된 메시지가 없습니다", - "post_priority.picker.title": "", - "post_priority.picker.label.urgent": "", - "post_priority.picker.label.standard": "", - "post_priority.picker.label.important": "", - "post_priority.picker.beta": "", - "permalink.error.public_channel.button": "", - "mobile.oauth.switch_to_browser.title": "", + "post_priority.picker.title": "메시지 우선순위", + "post_priority.picker.label.urgent": "긴급", + "post_priority.picker.label.standard": "표준", + "post_priority.picker.label.important": "중요", + "post_priority.picker.beta": "베타", + "permalink.error.public_channel.button": "채널 가입", + "mobile.oauth.switch_to_browser.title": "리디렉션...", "mobile.integration_selector.loading_options": "옵션 로딩중...", "mobile.integration_selector.loading_channels": "채널을 불러오는 중...", - "notification_settings.threads_mentions": "", - "screen.search.results.filter.images": "", - "permalink.error.access.text": "", - "password_send.return": "", + "notification_settings.threads_mentions": "글타래 내의 멘션", + "screen.search.results.filter.images": "이미지", + "permalink.error.access.text": "보려는 메시지가 액세스 권한이 없거나 삭제된 채널에 있습니다.", + "password_send.return": "로그인으로 돌아가기", "notification_settings.mobile.offline": "오프라인", - "mobile.post_info.unsave": "", + "mobile.post_info.unsave": "저장 취소", "mobile.display_settings.clockDisplay": "시간 표시", "mobile.direct_message.error": "{displayName}의 DM을 열 수 없습니다.", "mobile.custom_status.clear_after.title": "사용자 지정 상태를 해제한 후", @@ -873,21 +873,21 @@ "mobile.calls_mute": "음소거", "mobile.calls_mic_error": "이 통화에 참여하려면 설정을 열어서 마이크 접근 권한을 부여해주세요.", "mobile.calls_limit_msg": "통화당 최대 참가자 수는 {maxParticipants} 입니다. 한도를 늘리려면 시스템 관리자에게 문의하세요.", - "mobile.session_expired": "", - "mobile.server_upgrade.description": "", - "mobile.server_link.unreachable_user.error": "", - "mobile.search.team.select": "", - "mobile.search.show_more": "", - "mobile.reset_status.alert_ok": "", + "mobile.session_expired": "알림을 계속 받으려면 로그인하세요. {siteName} 세션은 {daysCount, number} {daysCount, plural, one {day} other {days}}마다 만료되도록 구성되어 있습니다.", + "mobile.server_upgrade.description": "\n매터모스트 앱을 사용하려면 서버 업그레이드가 필요합니다. 자세한 내용은 시스템 관리자에게 문의하세요.\n", + "mobile.server_link.unreachable_user.error": "DM으로 리디렉션할 수 없습니다. 지정한 사용자를 알 수 없습니다.", + "mobile.search.team.select": "검색할 팀 선택", + "mobile.search.show_more": "더보기", + "mobile.reset_status.alert_ok": "확인", "mobile.calls_leave": "나가기", - "mobile.post_pre_header.saved": "", - "mobile.post_pre_header.pinned_saved": "", - "mobile.oauth.switch_to_browser.error_title": "", - "mobile.oauth.switch_to_browser": "", + "mobile.post_pre_header.saved": "저장됨", + "mobile.post_pre_header.pinned_saved": "고정 및 저장", + "mobile.oauth.switch_to_browser.error_title": "로그인 오류", + "mobile.oauth.switch_to_browser": "로그인 제공업체로 리디렉션됩니다", "user.settings.notifications.email_threads.description": "팔로우 중인 스레드에 대한 모든 회신에 대해 알림을 받음", - "mobile.oauth.failed_to_open_link_no_browser": "", - "mobile.no_results.spelling": "", - "mobile.no_results_with_term": "", + "mobile.oauth.failed_to_open_link_no_browser": "링크를 열지 못했습니다. 장치에 브라우저가 설치되어 있는지 확인하세요.", + "mobile.no_results.spelling": "오타를 확인하거나 또는 다른 단어로 검색해보세요.", + "mobile.no_results_with_term": "\"{term}\" 에 대한 검색 결과가 없습니다", "mobile.login_options.cant_heading": "로그인 할 수 없습니다", "mobile.leave_and_join_title": "다른 통화로 전환하시겠습니까?", "mobile.leave_and_join_message": "이미 {leaveChannelName}채널 통화를 진행 중입니다. 현재 통화를 종료하고 {joinChannelName}통화에 참여하시겠습니까?", @@ -911,80 +911,80 @@ "mobile.calls_limit_reached": "참가자 제한에 도달했습니다", "mobile.calls_join_call": "통화 참가하기", "mobile.calls_end_msg_dm": "{displayName}의 전화를 종료하겠습니까?", - "screen.search.results.filter.documents": "", - "screen.search.results.filter.code": "", - "permalink.error.public_channel_and_team.button": "", - "permalink.error.private_channel.title": "", - "permalink.error.private_channel.text": "", - "permalink.error.private_channel_and_team.button": "", - "permalink.error.okay": "", + "screen.search.results.filter.documents": "문서", + "screen.search.results.filter.code": "코드", + "permalink.error.public_channel_and_team.button": "채널 및 팀 가입", + "permalink.error.private_channel.title": "비공개 채널에 가입", + "permalink.error.private_channel.text": "보려는 메시지가 초대받지 않은 비공개 채널에 있지만 관리자 권한으로 액세스할 수 있습니다. {channelName} **에 가입하시겠습니까?", + "permalink.error.private_channel_and_team.button": "채널 및 팀 가입", + "permalink.error.okay": "확인", "notification_settings.push_notification": "푸시 알림", - "notification_settings.ooo_auto_responder": "", + "notification_settings.ooo_auto_responder": "자동 회신", "notification_settings.mentions..keywordsDescription": "멘션 알림 키워드", "notification_settings.mentions_replies": "멘션 및 응답", - "notification_settings.email.fifteenMinutes": "", - "notification_settings.email.emailHelp2": "", - "notification_settings.auto_responder": "", + "notification_settings.email.fifteenMinutes": "매 15분마다", + "notification_settings.email.emailHelp2": "시스템 관리자에 의해 이메일이 비활성화되었습니다. 활성화할 때까지 알림 이메일이 전송되지 않습니다.", + "notification_settings.auto_responder": "자동 회신", "your.servers": "서버 선택", - "screens.channel_edit_header": "", - "screens.channel_edit": "", - "screen.search.title": "", - "screen.search.results.filter.videos": "", - "screen.search.results.filter.title": "", - "screen.search.results.filter.spreadsheets": "", - "screen.search.results.filter.presentations": "", - "screen.search.results.filter.audio": "", - "screen.search.results.filter.all_file_types": "", - "screen.search.results.file_options.open_in_channel": "", - "screen.search.results.file_options.copy_link": "", + "screens.channel_edit_header": "채널 헤더 변경", + "screens.channel_edit": "채널 편집", + "screen.search.title": "검색", + "screen.search.results.filter.videos": "동영상", + "screen.search.results.filter.title": "파일 유형별 필터링", + "screen.search.results.filter.spreadsheets": "스프레드시트", + "screen.search.results.filter.presentations": "프레젠테이션", + "screen.search.results.filter.audio": "오디오", + "screen.search.results.filter.all_file_types": "모든 파일 형식", + "screen.search.results.file_options.open_in_channel": "채널에서 열기", + "screen.search.results.file_options.copy_link": "링크 복사", "screen.search.placeholder": "메시지 및 파일 검색", - "screen.search.modifier.header": "", - "screen.search.header.messages": "", - "screen.search.header.files": "", - "post.options.title": "", - "post_priority.label.urgent": "", - "post_priority.label.important": "", - "post_info.guest": "", + "screen.search.modifier.header": "검색 옵션", + "screen.search.header.messages": "메시지", + "screen.search.header.files": "파일", + "post.options.title": "옵션", + "post_priority.label.urgent": "긴급", + "post_priority.label.important": "중요", + "post_info.guest": "게스트", "plus_menu.create_new_channel.title": "채널 만들기", "plus_menu.browse_channels.title": "채널 탐색", - "permalink.error.public_channel.text": "", - "permalink.error.public_channel_and_team.text": "", - "permalink.error.cancel": "", + "permalink.error.public_channel.text": "보려는 메시지가 내가 속해 있지 않은 채널에 있습니다. {channelName} **에 가입하여 보시겠습니까?", + "permalink.error.public_channel_and_team.text": "보려는 메시지가 내가 속해 있지 않은 채널과 내가 소속되지 않은 팀에 있습니다. {channelName} ** 및 **{teamName}** 팀에 가입하여 메시지를 보시겠습니까?", + "permalink.error.cancel": "취소", "notification_settings.mobile.trigger_push": "아래의 상태일 때 푸시 알림 활성화...", "notification_settings.mobile.online": "온라인, 오프라인, 자리비움", - "notification_settings.mentions": "", + "notification_settings.mentions": "멘션", "notification_settings.mention.reply": "댓글에 대한 알림 설정", - "notification_settings.email.never": "", - "notification_settings.email.crt.emailInfo": "", - "mobile.storage_permission_denied_description": "", - "mobile.server_url.deeplink.emm.denied": "", - "mobile.server_requires_client_certificate": "", - "mobile.server_ping_failed": "", - "mobile.server_name.exists": "", - "mobile.search.show_less": "", + "notification_settings.email.never": "알리지 않음", + "notification_settings.email.crt.emailInfo": "활성화하면, 지켜보는 중인 글타래의 모든 응답에 대해 전자우편 알림을 보냅니다", + "mobile.storage_permission_denied_description": "서버에 파일을 업로드합니다. 설정을 열어 {applicationName} 에 이 장치의 파일에 대한 읽기 및 쓰기 액세스 권한을 부여합니다.", + "mobile.server_url.deeplink.emm.denied": "이 앱은 EMM에 의해 제어되며 딥링크 서버 URL이 EMM 허용 서버와 일치하지 않습니다", + "mobile.server_requires_client_certificate": "서버는 인증을 위해 클라이언트 인증서가 필요합니다.", + "mobile.server_ping_failed": "서버에 연결할 수 없습니다.", + "mobile.server_name.exists": "다른 서버에 이 이름을 사용하고 있습니다.", + "mobile.search.show_less": "감추기", "mobile.search.modifier.phrases": "문구가 포함된 메시지", "mobile.search.modifier.in": "특정 채널", "mobile.search.modifier.from": "특정 사용자", "mobile.search.modifier.exclude": "검색어 제외", - "unreads.empty.paragraph": "", - "threads.end_of_list.title": "", - "thread.header.thread": "", - "snack.bar.undo": "", - "snack.bar.mute.channel": "", - "snack.bar.message.copied": "", - "snack.bar.favorited.channel": "", - "settings.save": "", - "settings.notifications": "", - "settings.notice_text": "", - "settings.notice_platform_link": "", + "unreads.empty.paragraph": "모든 채널을 표시하려면 읽지 않음 필터를 해제하세요.", + "threads.end_of_list.title": "목록의 끝입니다!", + "thread.header.thread": "글타래", + "snack.bar.undo": "실행 취소", + "snack.bar.mute.channel": "이 채널이 음소거되었습니다", + "snack.bar.message.copied": "텍스트가 클립보드에 복사되었습니다", + "snack.bar.favorited.channel": "이 채널이 즐겨찾기에 추가되었습니다", + "settings.save": "저장", + "settings.notifications": "알림", + "settings.notice_text": "Mattermost is made possible by the open source software used in our {platform} and {mobile}.", + "settings.notice_platform_link": "서버", "settings_display.clock.mz.desc": "예: 16:00", "settings_display.clock.mz": "24시간제로 표시", - "servers.remove": "", - "servers.logout": "", - "servers.login": "", + "servers.remove": "제거", + "servers.logout": "로그아웃", + "servers.login": "로그인", "search_bar.search.placeholder": "표준시간대 검색", - "screens.channel_info.gm": "", - "screens.channel_info.dm": "", + "screens.channel_info.gm": "그룹 메시지 정보", + "screens.channel_info.dm": "쪽지 정보", "post_priority.picker.cancel": "취소", "post_priority.picker.apply": "적용", "post_priority.button.acknowledge": "수신확인", @@ -1033,5 +1033,42 @@ "mobile.calls_raised_hand": "{name} {num, plural, =0 {} other {+# more }}가 손을 들었습니다", "mobile.ios.plist.NSLocationWhenInUseUsageDescription": "위치 데이터에 대한 액세스를 활성화하면 {applicationName} 에서 공유하는 사진 및 동영상에 위치 메타데이터를 추가할 수 있습니다.", "mobile.ios.plist.NSPhotoLibraryUsageDescription": "사진 보관함에 대한 읽기 액세스를 활성화하면 내 장치에서 {applicationName} 으로 사진과 동영상을 업로드할 수 있습니다.", - "invite.summary.back": "뒤로 가기" + "invite.summary.back": "뒤로 가기", + "post_priority.picker.label.persistent_notifications.description": "수신자는 확인하거나 회신할 때까지 {interval, plural, one {1 분} other {{interval} 분}}마다 알림을 받습니다.", + "share_extension.channels_screen.title": "채널 선택", + "share_extension.error_screen.description": "{applicationName} 으로 콘텐츠를 공유하려고 할 때 오류가 발생했습니다.", + "share_extension.error_screen.label": "오류가 발생했습니다", + "share_extension.error_screen.reason": "이유: {reason}", + "persistent_notifications.confirm.send": "보내기", + "persistent_notifications.confirm.title": "지속적 알림 보내기", + "persistent_notifications.error.max_recipients.title": "수신자가 너무 많습니다", + "persistent_notifications.error.no_mentions.description": "메시지에 멘션한 받는 사람이 없습니다. 지속적인 알림을 보내려면 멘션을 추가해야 합니다.", + "post_priority.picker.label.persistent_notifications": "지속적 알림 보내기", + "post_priority.picker.label.request_ack": "수신확인 요청", + "requested_ack.title": "수신확인 요청", + "screen.channel_files.results.filter.title": "파일 유형별 필터링", + "persistent_notifications.error.special_mentions": "@channel, @all 또는 @here를 사용하여 영구 알림 수신자를 멘션할 수 없습니다.", + "notification.no_post": "메시지를 찾을 수 없습니다.", + "notification.no_connection": "서버에 연결할 수 없으며 알림에 대한 특정 메시지 정보를 검색할 수 없습니다.", + "snack.bar.info.copied": "정보가 클립보드에 복사되었습니다", + "persistent_notifications.confirm.cancel": "취소", + "persistent_notifications.confirm.description": "멘션된 수신자는 메시지를 확인하거나 답장할 때까지 매 {interval, plural, one {minute} other {{interval} minutes}}마다 알림을 받게 됩니다.", + "mobile.search.results": "{count}건의 검색 {count, plural, one {result} other {results}}", + "post_priority.picker.label.request_ack.description": "메시지와 함께 확인 버튼이 나타납니다", + "snack.bar.following.thread": "글타래 팔로우", + "snack.bar.unfollow.thread": "글타래 언팔로우", + "settings.about.app.version": "App Version: {version} (Build {number})", + "settings.about.app.version.title": "App Version:", + "settings.about.app.version.value": "{version} (Build {number})", + "settings.about.button.copyInfo": "정보 복사", + "settings.about.database.schema.title": "Database Schema Version:", + "settings.about.database.title": "Database:", + "settings.about.server.version": "Server Version: {version} (Build {buildNumber}", + "settings.about.server.version.noBuild": "Server Version: {version}", + "settings.about.server.version.title": "Server Version:", + "mobile.calls_incoming_gm": "{name} is inviting you to a call with {num, plural, one {# other} other {# others}}", + "persistent_notifications.error.max_recipients.description": "최대 {max} 수신자에게 영구 알림을 보낼 수 있습니다. 메시지에 언급된 {count} 수신자가 있습니다. 멘션한 사람을 변경해야만 보낼 수 있습니다.", + "persistent_notifications.error.no_mentions.title": "수신자는 @멘션되어야 합니다", + "persistent_notifications.error.okay": "확인", + "snack.bar.channel.members.added": "{numMembers, number} {numMembers, plural, one {member} other {members}} 추가됨" } From 31e9bc389b0ee35f70f870af54678564a5960d9f Mon Sep 17 00:00:00 2001 From: Tom De Moor Date: Mon, 4 Sep 2023 12:32:46 +0000 Subject: [PATCH 18/47] Translated using Weblate (Dutch) Currently translated at 100.0% (1072 of 1072 strings) Translation: mattermost-languages-shipped/mattermost-mobile-v2 Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-mobile-v2/nl/ --- assets/base/i18n/nl.json | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/assets/base/i18n/nl.json b/assets/base/i18n/nl.json index 4aa87efc3..bbcdb3156 100644 --- a/assets/base/i18n/nl.json +++ b/assets/base/i18n/nl.json @@ -1067,5 +1067,8 @@ "settings.about.server.version": "Serverversie: {version} (Build {buildNumber}", "settings.about.server.version.noBuild": "Serverversie: {version}", "settings.about.server.version.title": "Serverversie:", - "snack.bar.info.copied": "Info gekopieerd naar klembord" + "snack.bar.info.copied": "Info gekopieerd naar klembord", + "mobile.calls_incoming_dm": "{name} nodigt je uit voor een gesprek", + "mobile.calls_incoming_gm": "{name} nodigt je uit voor een gesprek met {num, plural, one {# other} other {# others}} ", + "mobile.calls_join_button": "Deelnemen" } From 610a5f3fc432855670af12d728ac3c22d3304787 Mon Sep 17 00:00:00 2001 From: vietnamese Date: Mon, 4 Sep 2023 13:53:14 +0000 Subject: [PATCH 19/47] Translated using Weblate (Vietnamese) Currently translated at 99.5% (1067 of 1072 strings) Translation: mattermost-languages-shipped/mattermost-mobile-v2 Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-mobile-v2/vi/ --- assets/base/i18n/vi.json | 68 ++++++++++++++++++++-------------------- 1 file changed, 34 insertions(+), 34 deletions(-) diff --git a/assets/base/i18n/vi.json b/assets/base/i18n/vi.json index 1d5d56c98..f5e05e5a4 100644 --- a/assets/base/i18n/vi.json +++ b/assets/base/i18n/vi.json @@ -1,10 +1,10 @@ { - "about.date": "Ngày Xây Dựng:", - "about.enterpriseEditione1": "Phiên bản doanh nghiệp", + "about.date": "Ngày xây dựng:", + "about.enterpriseEditione1": "Phiên bản Doanh nghiệp", "about.enterpriseEditionLearn": "Tìm hiểu thêm về phiên bản Doanh Nghiệp ở ", - "about.enterpriseEditionSt": "Hệ thống giao tiếp hiện đại được bảo vệ dưới tường lửa của bạn.", - "about.hash": "Mã băm của bản dựng:", - "about.teamEditiont0": "Phiên bản Nhóm", + "about.enterpriseEditionSt": "Giao tiếp hiện đại từ phía sau tường lửa của bạn.", + "about.hash": "Build Hash:", + "about.teamEditiont0": "Phiên bản Đội", "apps.error.parser.missing_field_value": "Giá trị của trường bị thiếu.", "apps.error.parser.missing_list_end": "Cần mã đóng danh sách.", "apps.error.parser.missing_quote": "Đối sánh báo giá kép dự kiến trước khi kết thúc đầu vào.", @@ -42,7 +42,7 @@ "emoji_picker.custom": "Tuỳ chỉnh", "emoji_picker.flags": "Cờ", "emoji_picker.food-drink": "Đồ ăn thức uống", - "edit_post.editPost": "Chỉnh sửa bài ...", + "edit_post.editPost": "Chỉnh sửa bài đăng ...", "friendly_date.yesterday": "Hôm qua", "gallery.footer.channel_name": "Chia sẻ trong {channelName}", "gallery.open_file": "Mở file", @@ -86,7 +86,7 @@ "post_body.check_for_out_of_channel_mentions.message.multiple": "đã được đề cập nhưng họ không có trong kênh. Bạn có muốn ", "post_body.check_for_out_of_channel_mentions.message.one": "đã được đề cập nhưng không có trong kênh. Bạn có muốn ", "post_body.commentedOn": "Đã nhận xét về tin nhắn {name}{apostrophe}: ", - "post_body.deleted": "(tin nhắn đã xóa)", + "post_body.deleted": "(tin nhắn đã bị xóa)", "post_info.auto_responder": "TRẢ LỜI TỰ ĐỘNG", "post_info.bot": "BOT", "post_info.guest": "KHÁCH", @@ -182,13 +182,13 @@ "last_users_message.added_to_team.type": "đã được {actor} **thêm vào nhóm**.", "last_users_message.first": "{firstUser} và ", "last_users_message.others": "{numOthers} khác ", - "last_users_message.joined_channel.type": "Bạn **joined the channel**.", - "last_users_message.joined_team.type": "Bạn **joined the channel**.", + "last_users_message.joined_channel.type": "** đã tham gia kênh **.", + "last_users_message.joined_team.type": "** đã tham gia nhóm **.", "login.email": "Email", "login.ldapUsername": "AD/LDAP Tên tài khoản", - "login.username": "Tên tài khoản", + "login.username": "Tên người dùng", "msg_typing.isTyping": "{user} đang gõ...", - "password_send.link": "Nếu tài khoản tồn tại, một email đặt lại mật khẩu sẽ được gửi đến:", + "password_send.link": "Nếu tài khoản tồn tại, một email đặt lại mật khẩu sẽ được gửi tới:", "password_send.description": "Để đặt lại mật khẩu của bạn, hãy nhập địa chỉ email bạn đã sử dụng để đăng ký", "password_send.error": "Vui lòng nhập một địa chỉ email hợp lệ.", "post_body.check_for_out_of_channel_mentions.link.and": " và ", @@ -212,18 +212,18 @@ "terms_of_service.api_error": "Không thể hoàn thành yêu cầu. Nếu sự cố này vẫn tiếp diễn, hãy liên hệ với Quản trị viên hệ thống của bạn.", "user.settings.general.lastName": "Họ", "user.settings.general.position": "Vị trí", - "user.settings.general.nickname": "Biệt danh", - "about.hashee": "Mã băm của bản dựng EE :", + "user.settings.general.nickname": "Biệt hiệu", + "about.hashee": "EE Build Hash:", "about.teamEditionLearn": "Tham gia Mattermost cộng đồng", - "about.teamEditionSt": "Tất cả các đội liên lạc ở một nơi, ngay lập tức tìm kiếm và có thể truy cập bất cứ nơi nào.", - "about.teamEditiont1": "Phiên bản doanh nghiệp", + "about.teamEditionSt": "Tất cả thông tin liên lạc trong đội của bạn ở một nơi, có thể tìm kiếm ngay lập tức và có thể truy cập ở mọi nơi.", + "about.teamEditiont1": "Phiên bản Doanh nghiệp", "apps.error.form.no_submit": "`submit` không được định nghĩa", "apps.error.form.refresh": "Đã xảy ra lỗi khi tìm nạp các trường đã chọn. Liên hệ với nhà phát triển ứng dụng. Thông tin chi tiết: {details}", "apps.error.parser.empty_value": "giá trị không được rỗng", "apps.error.responses.form.no_form": "Loại phản hồi là `form`, nhưng không có form nào được đưa vào phản hồi.", - "apps.error.responses.unexpected_type": "Loại phản hồi của ứng dụng không được mong đợi. Loại phản hồi: {type}.", + "apps.error.responses.unexpected_type": "Loại phản hồi của ứng dụng không được mong đợi. Loại phản hồi: {type}", "apps.error.responses.unknown_field_error": "Đã nhận được lỗi cho một trường không xác định. Tên trường: `{field}`. Lỗi: `{error}`.", - "channel_loader.someone": "Người nào", + "channel_loader.someone": "Ai đó", "channel_modal.descriptionHelp": "Mô tả cách sử dụng kênh này.", "channel_modal.header": "Tiêu đề", "channel_modal.headerEx": "Ví dụ: \"[Link Title](http://example.com)\"", @@ -238,7 +238,7 @@ "custom_status.suggestions.recent_title": "GẦN ĐÂY", "custom_status.suggestions.title": "ĐỀ XUẤT", "edit_post.save": "Lưu", - "emoji_picker.recent": "Gần đây", + "emoji_picker.recent": "Được sử dụng gần đây", "emoji_picker.travel-places": "Du lịch & Địa điểm", "emoji_skin.dark_skin_tone": "màu da tối", "emoji_skin.default": "tông màu da mặc định", @@ -262,14 +262,14 @@ "global_threads.options.mark_as_read": "Đánh đấu đã đọc", "global_threads.options.open_in_channel": "Mở trong kênh", "global_threads.options.title": "Thao tác trên chủ đề", - "last_users_message.left_channel.type": "Bạn **left the channel**.", - "last_users_message.left_team.type": "**left the team**.", - "last_users_message.removed_from_channel.type": "Bạn đã **removed from the channel**.", - "last_users_message.removed_from_team.type": "Bạn đã **removed from the channel**.", + "last_users_message.left_channel.type": "** đã rời khỏi kênh **.", + "last_users_message.left_team.type": "** đã rời khỏi nhóm **.", + "last_users_message.removed_from_channel.type": "đã ** bị xóa khỏi kênh **.", + "last_users_message.removed_from_team.type": "đã ** bị xóa khỏi nhóm **.", "login_mfa.enterToken": "Để hoàn tất quá trình đăng nhập, vui lòng nhập token xác nhận từ điện thoại của bạn", "login_mfa.token": "MFA Token", "login_mfa.tokenReq": "Vui lòng nhập mã thông báo MFA", - "login.forgot": "Tôi quên mật khẩu của tôi", + "login.forgot": "Tôi quên mật khẩu của mình.", "login.or": "hoặc", "login.password": "Mật khẩu", "login.signIn": "Đăng nhập", @@ -386,17 +386,17 @@ "mobile.system_message.update_channel_purpose_message.updated_to": "{username} đã cập nhật mục đích của kênh thành: {newPurpose}", "mobile.tos_link": "Điều khoản dịch vụ", "mobile.user_list.deactivated": "Vô hiệu hóa", - "modal.manual_status.auto_responder.message_": "Bạn có muốn chuyển trạng thái của mình thành \"{status}\" và tắt Trả lời tự động không?", - "modal.manual_status.auto_responder.message_away": "Bạn có muốn chuyển trạng thái của mình thành \"Trực tuyến\" và tắt Trả lời tự động không?", - "modal.manual_status.auto_responder.message_dnd": "Bạn có muốn chuyển trạng thái của mình thành \"Không làm phiền\" và tắt Trả lời tự động không?", - "modal.manual_status.auto_responder.message_offline": "Bạn có muốn chuyển trạng thái của mình thành \"Ngoại tuyến\" và tắt Trả lời tự động không?", - "modal.manual_status.auto_responder.message_online": "Bạn có muốn chuyển trạng thái của mình thành \"Trực tuyến\" và tắt Trả lời tự động không?", + "modal.manual_status.auto_responder.message_": "Bạn có muốn chuyển trạng thái của mình thành \"{status} \"và tắt Trả lời tự động không?", + "modal.manual_status.auto_responder.message_away": "Bạn có muốn chuyển trạng thái của mình thành \"Đi vắng \"và tắt Trả lời tự động không?", + "modal.manual_status.auto_responder.message_dnd": "Bạn có muốn chuyển trạng thái của mình thành \"Không làm phiền \"và tắt Trả lời tự động không?", + "modal.manual_status.auto_responder.message_offline": "Bạn có muốn chuyển trạng thái của mình thành \"Ngoại tuyến \"và tắt Trả lời Tự động không?", + "modal.manual_status.auto_responder.message_online": "Bạn có muốn chuyển trạng thái của mình thành \"Trực tuyến \"và tắt Trả lời Tự động không?", "password_send.reset": "Cài lại Mật khẩu", - "permalink.show_dialog_warn.description": "Bạn sắp tham gia \"{channel}\" mà không được quản trị viên kênh thêm vào một cách rõ ràng. Bạn có chắc chắn muốn tham gia kênh riêng tư này không?", + "permalink.show_dialog_warn.description": "Bạn sắp tham gia {channel} mà không được quản trị viên kênh thêm vào một cách rõ ràng. Bạn có chắc chắn muốn tham gia kênh riêng tư này không?", "post_body.check_for_out_of_channel_groups_mentions.message": "đã không nhận được thông báo bởi đề cập này bởi vì họ không có trong kênh. Họ cũng không phải là thành viên của các nhóm được liên kết với kênh này.", - "post_body.check_for_out_of_channel_mentions.link.private": "Mời những người khác vào kênh riêng này", - "post_body.check_for_out_of_channel_mentions.link.public": "thêm chúng vào kênh", - "status_dropdown.set_dnd": "Đừng làm phiền", + "post_body.check_for_out_of_channel_mentions.link.private": "thêm họ vào kênh riêng tư này", + "post_body.check_for_out_of_channel_mentions.link.public": "thêm họ vào kênh", + "status_dropdown.set_dnd": "Không làm phiền", "status_dropdown.set_ooo": "Ra khỏi văn phòng", "threads": "Chủ đề", "threads.deleted": "Tin nhắn gốc đã bị xóa", @@ -409,8 +409,8 @@ "threads.unfollowMessage": "Huỷ theo dõi tin nhắn", "threads.unfollowThread": "Huỷ theo dõi chủ đề", "user.settings.general.field_handled_externally": "Trường này được xử lý thông qua nhà cung cấp đăng nhập của bạn. Nếu bạn muốn thay đổi nó, bạn cần phải làm như vậy thông qua nhà cung cấp đăng nhập của bạn.", - "user.settings.general.firstName": "Tên đầu tiên", - "user.settings.general.username": "Tên tài khoản", + "user.settings.general.firstName": "Tên", + "user.settings.general.username": "Tên người dùng", "user.settings.notifications.email_threads.description": "Thông báo cho tôi về tất cả các câu trả lời cho chủ đề tôi đang theo dõi.", "account.logout_from": "Đăng xuất khỏi {serverName}", "account.settings": "Thiết lập", From c40d7a9137a79fae0fa4e80c83875cdd93ede311 Mon Sep 17 00:00:00 2001 From: jprusch Date: Thu, 7 Sep 2023 09:55:12 +0000 Subject: [PATCH 20/47] Translated using Weblate (German) Currently translated at 100.0% (1074 of 1074 strings) Translation: mattermost-languages-shipped/mattermost-mobile-v2 Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-mobile-v2/de/ --- assets/base/i18n/de.json | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/assets/base/i18n/de.json b/assets/base/i18n/de.json index 853b8ceb7..a7159d1f6 100644 --- a/assets/base/i18n/de.json +++ b/assets/base/i18n/de.json @@ -1070,5 +1070,7 @@ "snack.bar.info.copied": "Info in die Zwischenablage kopiert", "mobile.calls_join_button": "Teilnehmen", "mobile.calls_incoming_dm": "{name} lädt dich zu einem Anruf ein", - "mobile.calls_incoming_gm": "{name} lädt dich zu einem Anruf mit {num, plural, one {einem anderen} other {# anderen}} ein" + "mobile.calls_incoming_gm": "{name} lädt dich zu einem Anruf mit {num, plural, one {einem anderen} other {# anderen}} ein", + "server.invalid.certificate.title": "Ungültiges SSL-Zertifikat", + "server.invalid.certificate.description": "Das Zertifikat für diesen Server ist ungültig.\nMöglicherweise stellen Sie eine Verbindung zu einem Server her, der vorgibt, \"{hostname}\" zu sein, wodurch Ihre vertraulichen Daten gefährdet werden könnten." } From b740a566ffbf845c16c8dd7fefd55aad2a6de792 Mon Sep 17 00:00:00 2001 From: intdev32 Date: Thu, 7 Sep 2023 09:51:37 +0000 Subject: [PATCH 21/47] Translated using Weblate (Korean) Currently translated at 100.0% (1074 of 1074 strings) Translation: mattermost-languages-shipped/mattermost-mobile-v2 Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-mobile-v2/ko/ --- assets/base/i18n/ko.json | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/assets/base/i18n/ko.json b/assets/base/i18n/ko.json index b69cc660c..42c415207 100644 --- a/assets/base/i18n/ko.json +++ b/assets/base/i18n/ko.json @@ -1070,5 +1070,7 @@ "persistent_notifications.error.max_recipients.description": "최대 {max} 수신자에게 영구 알림을 보낼 수 있습니다. 메시지에 언급된 {count} 수신자가 있습니다. 멘션한 사람을 변경해야만 보낼 수 있습니다.", "persistent_notifications.error.no_mentions.title": "수신자는 @멘션되어야 합니다", "persistent_notifications.error.okay": "확인", - "snack.bar.channel.members.added": "{numMembers, number} {numMembers, plural, one {member} other {members}} 추가됨" + "snack.bar.channel.members.added": "{numMembers, number} {numMembers, plural, one {member} other {members}} 추가됨", + "server.invalid.certificate.title": "잘못된 SSL 인증서", + "server.invalid.certificate.description": "이 서버의 인증서가 유효하지 않습니다.\n\"{hostname}\"인 것처럼 속이고 있는 서버에 연결하려 하므로 기밀 정보가 위험에 노출될 수 있습니다." } From 007151447e2cd6b13026b08aa2df96a392cbd7e1 Mon Sep 17 00:00:00 2001 From: jprusch Date: Thu, 7 Sep 2023 13:37:31 +0000 Subject: [PATCH 22/47] Translated using Weblate (German) Currently translated at 100.0% (1075 of 1075 strings) Translation: mattermost-languages-shipped/mattermost-mobile-v2 Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-mobile-v2/de/ --- assets/base/i18n/de.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/assets/base/i18n/de.json b/assets/base/i18n/de.json index a7159d1f6..c0e46c99a 100644 --- a/assets/base/i18n/de.json +++ b/assets/base/i18n/de.json @@ -1072,5 +1072,6 @@ "mobile.calls_incoming_dm": "{name} lädt dich zu einem Anruf ein", "mobile.calls_incoming_gm": "{name} lädt dich zu einem Anruf mit {num, plural, one {einem anderen} other {# anderen}} ein", "server.invalid.certificate.title": "Ungültiges SSL-Zertifikat", - "server.invalid.certificate.description": "Das Zertifikat für diesen Server ist ungültig.\nMöglicherweise stellen Sie eine Verbindung zu einem Server her, der vorgibt, \"{hostname}\" zu sein, wodurch Ihre vertraulichen Daten gefährdet werden könnten." + "server.invalid.certificate.description": "Das Zertifikat für diesen Server ist ungültig.\nMöglicherweise stellen Sie eine Verbindung zu einem Server her, der vorgibt, \"{hostname}\" zu sein, wodurch Ihre vertraulichen Daten gefährdet werden könnten.", + "markdown.max_nodes.error": "Diese Nachricht ist zu lang, um auf einem mobilen Gerät vollständig angezeigt zu werden. Bitte sehen Sie sie sich auf dem Desktop an oder kontaktieren Sie einen Administrator, um dieses Limit zu erhöhen." } From 767a96a57d520dac311a61eefaa90334aa23f6ed Mon Sep 17 00:00:00 2001 From: intdev32 Date: Thu, 7 Sep 2023 17:38:19 +0000 Subject: [PATCH 23/47] Translated using Weblate (Korean) Currently translated at 100.0% (1075 of 1075 strings) Translation: mattermost-languages-shipped/mattermost-mobile-v2 Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-mobile-v2/ko/ --- assets/base/i18n/ko.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/assets/base/i18n/ko.json b/assets/base/i18n/ko.json index 42c415207..818d09860 100644 --- a/assets/base/i18n/ko.json +++ b/assets/base/i18n/ko.json @@ -1072,5 +1072,6 @@ "persistent_notifications.error.okay": "확인", "snack.bar.channel.members.added": "{numMembers, number} {numMembers, plural, one {member} other {members}} 추가됨", "server.invalid.certificate.title": "잘못된 SSL 인증서", - "server.invalid.certificate.description": "이 서버의 인증서가 유효하지 않습니다.\n\"{hostname}\"인 것처럼 속이고 있는 서버에 연결하려 하므로 기밀 정보가 위험에 노출될 수 있습니다." + "server.invalid.certificate.description": "이 서버의 인증서가 유효하지 않습니다.\n\"{hostname}\"인 것처럼 속이고 있는 서버에 연결하려 하므로 기밀 정보가 위험에 노출될 수 있습니다.", + "markdown.max_nodes.error": "이 메시지는 모바일 기기에서 표시하기에 너무 깁니다. 데스크톱에서 확인하거나 또는 이 한계를 늘리도록 관리자에게 연락하시기 바랍니다." } From 5b3f22cef2f43036032c3b62746da9765c388c7f Mon Sep 17 00:00:00 2001 From: Kaya Zeren Date: Fri, 8 Sep 2023 15:42:17 +0000 Subject: [PATCH 24/47] Translated using Weblate (Turkish) Currently translated at 100.0% (1075 of 1075 strings) Translation: mattermost-languages-shipped/mattermost-mobile-v2 Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-mobile-v2/tr/ --- assets/base/i18n/tr.json | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/assets/base/i18n/tr.json b/assets/base/i18n/tr.json index ea9d6e152..b5ae82238 100644 --- a/assets/base/i18n/tr.json +++ b/assets/base/i18n/tr.json @@ -1066,5 +1066,12 @@ "settings.about.database.title": "Veri tabanı:", "settings.about.server.version": "Sunucu sürümü: {version} (Yapım {buildNumber}", "settings.about.server.version.noBuild": "Sunucu sürümü: {version}", - "settings.about.server.version.title": "Sunucu sürümü:" + "settings.about.server.version.title": "Sunucu sürümü:", + "snack.bar.info.copied": "Bilgiler panoya kopyalandı", + "mobile.calls_incoming_dm": "{name} sizi bir görüşmeye çağırıyor", + "mobile.calls_incoming_gm": "{name} sizi {num, plural, one {kişinin} other {kişinin}} olduğu bir görüşmeye çağırıyor", + "mobile.calls_join_button": "Katıl", + "server.invalid.certificate.description": "Bu sunucunun sertifikası geçersiz.\n\"{hostname}\" gibi davranan bir sunucuya bağlanıyor olabilirsiniz. Bu durumda gizli bilgilerinizi tehlikeye atabilir.", + "server.invalid.certificate.title": "SSL sertifikası geçersiz", + "markdown.max_nodes.error": "Bu ileti bir mobil aygıtta tam olarak görüntülenemeyecek kadar uzun. Lütfen iletiyi masaüstü uygulamasından görüntüleyin ya da bu sınırı artırmak için bir yönetici ile görüşün." } From 2b44535e7a2edd0262a8d5d88ba9f3a6deeecb93 Mon Sep 17 00:00:00 2001 From: Matthew Williams Date: Sat, 9 Sep 2023 11:37:01 +0000 Subject: [PATCH 25/47] Translated using Weblate (English (Australia)) Currently translated at 100.0% (1075 of 1075 strings) Translation: mattermost-languages-shipped/mattermost-mobile-v2 Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-mobile-v2/en_AU/ --- assets/base/i18n/en_AU.json | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/assets/base/i18n/en_AU.json b/assets/base/i18n/en_AU.json index 9e2c7dbc8..96115552a 100644 --- a/assets/base/i18n/en_AU.json +++ b/assets/base/i18n/en_AU.json @@ -1067,5 +1067,11 @@ "settings.about.server.version": "Server Version: {version} (Build {buildNumber}", "settings.about.server.version.noBuild": "Server Version: {version}", "settings.about.server.version.title": "Server Version:", - "snack.bar.info.copied": "Info copied to clipboard" + "snack.bar.info.copied": "Info copied to clipboard", + "mobile.calls_incoming_dm": "{name} is inviting you to a call", + "mobile.calls_incoming_gm": "{name} is inviting you to a call with {num, plural, one {# other} other {# others}}", + "mobile.calls_join_button": "Join", + "server.invalid.certificate.description": "The certificate for this server is invalid.\nYou might be connecting to a server that is pretending to be '\\{hostname}'\\ which could put your confidential information at risk.", + "server.invalid.certificate.title": "Invalid SSL certificate", + "markdown.max_nodes.error": "This message is too long to by shown fully on a mobile device. Please view it on desktop or contact an admin to increase this limit." } From b76461767b5f392a4711fe02c30adb3509a56b26 Mon Sep 17 00:00:00 2001 From: timmycheng Date: Mon, 11 Sep 2023 03:19:36 +0000 Subject: [PATCH 26/47] Translated using Weblate (Chinese (Simplified)) Currently translated at 100.0% (1075 of 1075 strings) Translation: mattermost-languages-shipped/mattermost-mobile-v2 Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-mobile-v2/zh_Hans/ --- assets/base/i18n/zh-CN.json | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/assets/base/i18n/zh-CN.json b/assets/base/i18n/zh-CN.json index e66143719..c1d3a5c4d 100644 --- a/assets/base/i18n/zh-CN.json +++ b/assets/base/i18n/zh-CN.json @@ -1070,5 +1070,8 @@ "snack.bar.info.copied": "信息已复制到剪贴板", "mobile.calls_join_button": "加入", "mobile.calls_incoming_dm": "{name}邀请您加入通话", - "mobile.calls_incoming_gm": "{name} 现邀请您与其他 {num, plural, one {# 位} other {# 位}} 进行通话" + "mobile.calls_incoming_gm": "{name} 现邀请您与其他 {num, plural, one {# 位} other {# 位}} 进行通话", + "server.invalid.certificate.description": "此服务器的证书无效。\n您可能正在连接到一个假冒为 \"{hostname}\" 的服务器,这可能会危及您的机密信息。", + "server.invalid.certificate.title": "无效的SSL证书", + "markdown.max_nodes.error": "此信息过长,无法在移动客户端上完整显示。请在PC客户端上查看或联系管理员以增加消息限制长度。" } From f530007d778f8656b813906521aaf5113af035b0 Mon Sep 17 00:00:00 2001 From: jprusch Date: Thu, 14 Sep 2023 11:59:52 +0000 Subject: [PATCH 27/47] Translated using Weblate (German) Currently translated at 100.0% (1076 of 1076 strings) Translation: mattermost-languages-shipped/mattermost-mobile-v2 Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-mobile-v2/de/ --- assets/base/i18n/de.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/assets/base/i18n/de.json b/assets/base/i18n/de.json index c0e46c99a..9768a5fa1 100644 --- a/assets/base/i18n/de.json +++ b/assets/base/i18n/de.json @@ -1073,5 +1073,6 @@ "mobile.calls_incoming_gm": "{name} lädt dich zu einem Anruf mit {num, plural, one {einem anderen} other {# anderen}} ein", "server.invalid.certificate.title": "Ungültiges SSL-Zertifikat", "server.invalid.certificate.description": "Das Zertifikat für diesen Server ist ungültig.\nMöglicherweise stellen Sie eine Verbindung zu einem Server her, der vorgibt, \"{hostname}\" zu sein, wodurch Ihre vertraulichen Daten gefährdet werden könnten.", - "markdown.max_nodes.error": "Diese Nachricht ist zu lang, um auf einem mobilen Gerät vollständig angezeigt zu werden. Bitte sehen Sie sie sich auf dem Desktop an oder kontaktieren Sie einen Administrator, um dieses Limit zu erhöhen." + "markdown.max_nodes.error": "Diese Nachricht ist zu lang, um auf einem mobilen Gerät vollständig angezeigt zu werden. Bitte sehen Sie sie sich auf dem Desktop an oder kontaktieren Sie einen Administrator, um dieses Limit zu erhöhen.", + "mobile.deep_link.invalid": "Der Link, den du zu öffnen versuchst, ist ungültig." } From 6034012e09160743c1d7c490b4f541452f4a5ebd Mon Sep 17 00:00:00 2001 From: Tom De Moor Date: Wed, 13 Sep 2023 06:08:43 +0000 Subject: [PATCH 28/47] Translated using Weblate (Dutch) Currently translated at 100.0% (1076 of 1076 strings) Translation: mattermost-languages-shipped/mattermost-mobile-v2 Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-mobile-v2/nl/ --- assets/base/i18n/nl.json | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/assets/base/i18n/nl.json b/assets/base/i18n/nl.json index bbcdb3156..f5dcd597f 100644 --- a/assets/base/i18n/nl.json +++ b/assets/base/i18n/nl.json @@ -1070,5 +1070,9 @@ "snack.bar.info.copied": "Info gekopieerd naar klembord", "mobile.calls_incoming_dm": "{name} nodigt je uit voor een gesprek", "mobile.calls_incoming_gm": "{name} nodigt je uit voor een gesprek met {num, plural, one {# other} other {# others}} ", - "mobile.calls_join_button": "Deelnemen" + "mobile.calls_join_button": "Deelnemen", + "server.invalid.certificate.title": "Ongeldig SSL-certificaat", + "server.invalid.certificate.description": "Het certificaat voor deze server is ongeldig.\nMogelijks maak je verbinding met een server die zich voordoet als \"{hostname}\", waardoor je vertrouwelijke gegevens in gevaar kunnen komen.", + "mobile.deep_link.invalid": "De link die je probeert te openen is ongeldig.", + "markdown.max_nodes.error": "Dit bericht is te lang om volledig te worden weergegeven op een mobiel apparaat. Bekijk het op een desktop of neem contact op met een beheerder om deze limiet te verhogen." } From ae8903c726c18e8bde9f054ec887249dbaa2443d Mon Sep 17 00:00:00 2001 From: master7 Date: Wed, 13 Sep 2023 06:07:01 +0000 Subject: [PATCH 29/47] Translated using Weblate (Polish) Currently translated at 100.0% (1076 of 1076 strings) Translation: mattermost-languages-shipped/mattermost-mobile-v2 Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-mobile-v2/pl/ --- assets/base/i18n/pl.json | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/assets/base/i18n/pl.json b/assets/base/i18n/pl.json index f7072d5e8..0819b50a2 100644 --- a/assets/base/i18n/pl.json +++ b/assets/base/i18n/pl.json @@ -1070,5 +1070,9 @@ "snack.bar.info.copied": "Informacje skopiowane do schowka", "mobile.calls_incoming_dm": "{name} zaprasza do rozmowy", "mobile.calls_incoming_gm": "{name} zaprasza do rozmowy z {num, plural, one {# innym} other {# innymi}} ", - "mobile.calls_join_button": "Dołącz" + "mobile.calls_join_button": "Dołącz", + "server.invalid.certificate.title": "Nieprawidłowy certyfikat SSL", + "server.invalid.certificate.description": "Certyfikat tego serwera jest nieprawidłowy.\nMożliwe, że łączysz się z serwerem podszywającym się pod \"{hostname}\", co może narazić Twoje poufne informacje na ryzyko.", + "mobile.deep_link.invalid": "Link, który próbujesz otworzyć, jest nieprawidłowy.", + "markdown.max_nodes.error": "Ta wiadomość jest zbyt długa, aby wyświetlić ją w całości na urządzeniu mobilnym. Wyświetl ją na komputerze lub skontaktuj się z administratorem, aby zwiększyć limit." } From def2902e17075ad168734450f19617b8ec95dc12 Mon Sep 17 00:00:00 2001 From: intdev32 Date: Wed, 13 Sep 2023 02:06:10 +0000 Subject: [PATCH 30/47] Translated using Weblate (Korean) Currently translated at 100.0% (1076 of 1076 strings) Translation: mattermost-languages-shipped/mattermost-mobile-v2 Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-mobile-v2/ko/ --- assets/base/i18n/ko.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/assets/base/i18n/ko.json b/assets/base/i18n/ko.json index 818d09860..a8ed7f9c6 100644 --- a/assets/base/i18n/ko.json +++ b/assets/base/i18n/ko.json @@ -1073,5 +1073,6 @@ "snack.bar.channel.members.added": "{numMembers, number} {numMembers, plural, one {member} other {members}} 추가됨", "server.invalid.certificate.title": "잘못된 SSL 인증서", "server.invalid.certificate.description": "이 서버의 인증서가 유효하지 않습니다.\n\"{hostname}\"인 것처럼 속이고 있는 서버에 연결하려 하므로 기밀 정보가 위험에 노출될 수 있습니다.", - "markdown.max_nodes.error": "이 메시지는 모바일 기기에서 표시하기에 너무 깁니다. 데스크톱에서 확인하거나 또는 이 한계를 늘리도록 관리자에게 연락하시기 바랍니다." + "markdown.max_nodes.error": "이 메시지는 모바일 기기에서 표시하기에 너무 깁니다. 데스크톱에서 확인하거나 또는 이 한계를 늘리도록 관리자에게 연락하시기 바랍니다.", + "mobile.deep_link.invalid": "열려고 하는 링크가 잘못되었습니다." } From b51490e58f0135bb9fb2e682d468f6d7b365fee7 Mon Sep 17 00:00:00 2001 From: MArtin Johnson Date: Wed, 13 Sep 2023 20:06:55 +0000 Subject: [PATCH 31/47] Translated using Weblate (Swedish) Currently translated at 100.0% (1076 of 1076 strings) Translation: mattermost-languages-shipped/mattermost-mobile-v2 Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-mobile-v2/sv/ --- assets/base/i18n/sv.json | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/assets/base/i18n/sv.json b/assets/base/i18n/sv.json index 01c9c2fea..40e940d0f 100644 --- a/assets/base/i18n/sv.json +++ b/assets/base/i18n/sv.json @@ -1067,5 +1067,12 @@ "settings.about.server.version": "Serverversion: {version} (Build {buildNumber}", "settings.about.server.version.noBuild": "Serverversion: {version}", "settings.about.server.version.title": "Serverversion:", - "snack.bar.info.copied": "Kopierat till clipboard" + "snack.bar.info.copied": "Kopierat till clipboard", + "server.invalid.certificate.title": "Ogiltigt SSL-certifikat", + "server.invalid.certificate.description": "Servercertifikatet på servern är felaktigt.\nDet kan vara så att du ansluter till en server som låtsas vara \"{hostname}\" och din information skulle kunna riskera läcka till obehöriga.", + "mobile.calls_incoming_gm": "{name} bjuder in dig till ett samtal med {num, plural, one {# annan} other {# andra}}", + "mobile.calls_incoming_dm": "{name} bjuder in till ett samtal", + "mobile.deep_link.invalid": "Länken du försöker öppna är ogiltig.", + "markdown.max_nodes.error": "Meddelandet är för långt för att kunna visas på en mobil. Du kan se det i en dator eller kontakta en administratör för att utöka gränsen.", + "mobile.calls_join_button": "Anslut" } From 4a776495a3067be8678ddf6bbb73dcf3788c1cec Mon Sep 17 00:00:00 2001 From: Kaya Zeren Date: Sat, 16 Sep 2023 14:52:41 +0000 Subject: [PATCH 32/47] Translated using Weblate (Turkish) Currently translated at 100.0% (1076 of 1076 strings) Translation: mattermost-languages-shipped/mattermost-mobile-v2 Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-mobile-v2/tr/ --- assets/base/i18n/tr.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/assets/base/i18n/tr.json b/assets/base/i18n/tr.json index b5ae82238..94ea97d79 100644 --- a/assets/base/i18n/tr.json +++ b/assets/base/i18n/tr.json @@ -1073,5 +1073,6 @@ "mobile.calls_join_button": "Katıl", "server.invalid.certificate.description": "Bu sunucunun sertifikası geçersiz.\n\"{hostname}\" gibi davranan bir sunucuya bağlanıyor olabilirsiniz. Bu durumda gizli bilgilerinizi tehlikeye atabilir.", "server.invalid.certificate.title": "SSL sertifikası geçersiz", - "markdown.max_nodes.error": "Bu ileti bir mobil aygıtta tam olarak görüntülenemeyecek kadar uzun. Lütfen iletiyi masaüstü uygulamasından görüntüleyin ya da bu sınırı artırmak için bir yönetici ile görüşün." + "markdown.max_nodes.error": "Bu ileti bir mobil aygıtta tam olarak görüntülenemeyecek kadar uzun. Lütfen iletiyi masaüstü uygulamasından görüntüleyin ya da bu sınırı artırmak için bir yönetici ile görüşün.", + "mobile.deep_link.invalid": "Açmaya çalıştığınız bağlantı geçersiz." } From 2b8c47d39d7c728b945d4f09764e2a3380289b6d Mon Sep 17 00:00:00 2001 From: Konstantin Date: Mon, 18 Sep 2023 07:43:58 +0000 Subject: [PATCH 33/47] Translated using Weblate (Russian) Currently translated at 100.0% (1076 of 1076 strings) Translation: mattermost-languages-shipped/mattermost-mobile-v2 Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-mobile-v2/ru/ --- assets/base/i18n/ru.json | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/assets/base/i18n/ru.json b/assets/base/i18n/ru.json index b57f85c61..53f2b6da0 100644 --- a/assets/base/i18n/ru.json +++ b/assets/base/i18n/ru.json @@ -1070,5 +1070,9 @@ "snack.bar.info.copied": "Информация скопирована в буфер обмена", "mobile.calls_incoming_dm": "{name} приглашает вас на звонок", "mobile.calls_join_button": "Присоединиться", - "mobile.calls_incoming_gm": "{name} приглашает Вас на разговор с {num, plural, one {# одним участником} few {# несколькими участниками} other {# несколькими участниками}}" + "mobile.calls_incoming_gm": "{name} приглашает Вас на разговор с {num, plural, one {# одним участником} few {# несколькими участниками} other {# несколькими участниками}}", + "server.invalid.certificate.title": "Недействительный сертификат SSL", + "server.invalid.certificate.description": "Сертификат этого сервера недействителен.\nВозможно, вы подключаетесь к серверу, который выдает себя за \"{hostname}\", что может подвергнуть риску вашу конфиденциальную информацию.", + "mobile.deep_link.invalid": "Ссылка, которую вы пытаетесь открыть, недействительна.", + "markdown.max_nodes.error": "Это сообщение слишком длинное для полного отображения на мобильном устройстве. Пожалуйста, просмотрите его на настольном компьютере или свяжитесь с администратором, чтобы увеличить этот лимит." } From d166b57bb677aa0a609d435325971d625d46c7c4 Mon Sep 17 00:00:00 2001 From: kaakaa Date: Tue, 19 Sep 2023 11:52:44 +0000 Subject: [PATCH 34/47] Translated using Weblate (Japanese) Currently translated at 100.0% (1076 of 1076 strings) Translation: mattermost-languages-shipped/mattermost-mobile-v2 Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-mobile-v2/ja/ --- assets/base/i18n/ja.json | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/assets/base/i18n/ja.json b/assets/base/i18n/ja.json index 5d15a477e..e398db05b 100644 --- a/assets/base/i18n/ja.json +++ b/assets/base/i18n/ja.json @@ -1070,5 +1070,9 @@ "settings.about.server.version.title": "サーバーのバージョン:", "mobile.calls_incoming_dm": "{name}があなたを通話に招待しています", "mobile.calls_incoming_gm": "{name}があなたを{num, plural, one {# 人} other {# 人}}との通話に招待しています", - "mobile.calls_join_button": "参加" + "mobile.calls_join_button": "参加", + "server.invalid.certificate.title": "無効なSSL証明書", + "server.invalid.certificate.description": "このサーバーの証明書は無効です。\n\"{hostname}\" を装ったサーバーに接続しようとしている可能性があり、機密情報が危険にさらされる可能性があります。", + "mobile.deep_link.invalid": "あなたが開こうとしているこのリンクは無効です。", + "markdown.max_nodes.error": "このメッセージは長すぎるため、モバイルデバイスでは完全に表示されません。デスクトップで表示するか、管理者に連絡して制限を増やしてください。" } From dd9f35c13d044ce183d7d2d7b6227586a136bab9 Mon Sep 17 00:00:00 2001 From: Renaud Date: Wed, 20 Sep 2023 15:57:14 +0000 Subject: [PATCH 35/47] Translated using Weblate (French) Currently translated at 88.8% (956 of 1076 strings) Translation: mattermost-languages-shipped/mattermost-mobile-v2 Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-mobile-v2/fr/ --- assets/base/i18n/fr.json | 31 ++++++++++++++++++++----------- 1 file changed, 20 insertions(+), 11 deletions(-) diff --git a/assets/base/i18n/fr.json b/assets/base/i18n/fr.json index a8fb13832..e366eec2e 100644 --- a/assets/base/i18n/fr.json +++ b/assets/base/i18n/fr.json @@ -953,14 +953,14 @@ "mobile.manage_members.change_role.error": "", "mobile.manage_members.cancel": "", "mobile.manage_members.admin": "", - "channel_info.archive_description.cannot_view_archived": "", - "channel_info.archive_description.can_view_archived": "", + "channel_info.archive_description.cannot_view_archived": "Cela archivera le canal de l'équipe et le supprimera de l'interface utilisateur. Les canaux archivés peuvent être désarchivés en cas de besoin.\n\nÊtes-vous sûr de vouloir archiver le site {term} {name} ?", + "channel_info.archive_description.can_view_archived": "Cette opération permet d'archiver le canal de l'équipe. Le contenu du canal reste accessible aux membres du canal.\n\nÊtes-vous sûr de vouloir archiver le site {term} {name} ?", "mobile.display_settings.crt": "", "invite.summary.report.sent": "", "invite.summary.done": "", - "display_settings.crt.on": "", - "display_settings.crt.off": "", - "display_settings.crt": "", + "display_settings.crt.on": "Activé", + "display_settings.crt.off": "Désactivé", + "display_settings.crt": "Fils de discussion repliables", "mobile.managed.jailbreak_no_reason": "", "mobile.managed.jailbreak_no_debug_info": "", "invite.title.summary": "", @@ -978,11 +978,11 @@ "invite.sendInvitationsTo": "", "invite.send_invite": "", "invite.send_error": "", - "invite.searchPlaceholder": "", - "invite.search.no_results": "", - "invite.search.email_invite": "", - "invite.members.user_is_guest": "", - "invite.members.already_member": "", + "invite.searchPlaceholder": "Tapez un nom ou une adresse électronique…", + "invite.search.no_results": "Personne n'a trouvé de correspondance", + "invite.search.email_invite": "Inviter", + "invite.members.user_is_guest": "Contactez votre administrateur pour faire de cet utilisateur invité un membre à part entière", + "invite.members.already_member": "Cet utilisateur est déjà un membre d'équipe", "mobile.calls_start_call_exists": "", "mobile.calls_not_connected": "", "channel_notification_preferences.notification.thread_replies": "M'avertir des réponses aux fils de discussion que je suis sur cette chaîne", @@ -995,5 +995,14 @@ "channel_files.empty.title": "Aucun fichier ici", "channel_files.noFiles.paragraph": "Ce canal ne contient aucun fichier avec les filtres appliqués", "channel_files.noFiles.title": "Aucun fichier trouver", - "channel_add_members.add_members.button": "Ajouter des membres" + "channel_add_members.add_members.button": "Ajouter des membres", + "channel_notification_preferences.notification.none": "Rien", + "channel_notification_preferences.unmute_content": "Rétablir le son du canal", + "channel_notification_preferences.reset_default": "Rétablissement des valeurs par défaut", + "channel_notification_preferences.thread_replies": "Réponses aux fils de discussion", + "intro.add_members": "Ajouter Membres", + "channel_info.add_members": "Ajouter des membres", + "channel_notification_preferences.notify_about": "Notifiez moi à propos...", + "channel_notification_preferences.default": "(par défaut)", + "channel_info.channel_files": "Fichiers" } From ffc63bddbd84639b57ebb9e891191328c741b7b8 Mon Sep 17 00:00:00 2001 From: Sharuru Date: Mon, 25 Sep 2023 02:59:54 +0000 Subject: [PATCH 36/47] Translated using Weblate (Chinese (Simplified)) Currently translated at 100.0% (1076 of 1076 strings) Translation: mattermost-languages-shipped/mattermost-mobile-v2 Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-mobile-v2/zh_Hans/ --- assets/base/i18n/zh-CN.json | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/assets/base/i18n/zh-CN.json b/assets/base/i18n/zh-CN.json index c1d3a5c4d..e13fde678 100644 --- a/assets/base/i18n/zh-CN.json +++ b/assets/base/i18n/zh-CN.json @@ -21,21 +21,21 @@ "apps.error.command.unknown_option": "未知字段的选项 `{fieldName}`:`{option}`。", "apps.error.command.unknown_user": "未知字段的用户 `{fieldName}`:`{option}`。", "apps.error.form.no_form": "未定义`form`。", - "apps.error.form.no_lookup": "`lookup` 未定义。", - "apps.error.form.no_source": "`source` 未定义。", + "apps.error.form.no_lookup": "未定义“lookup”。", + "apps.error.form.no_source": "未定义“source”。", "apps.error.form.no_submit": "未定义`submit`", "apps.error.form.refresh": "提取选择的字段时出错。与应用程序开发者联系。详细信息:{details}", "apps.error.form.refresh_no_refresh": "在无刷新字段上调用刷新。", "apps.error.form.submit.pretext": "提交模态时出错。与应用程序开发人员联系。详细信息:{details}", "apps.error.lookup.error_preparing_request": "准备查询请求时出错:{errorMessage}", - "apps.error.malformed_binding": "此绑定格式不正确。请联系应用开发者。", + "apps.error.malformed_binding": "此绑定格式不正确。请联系应用开发人员。", "apps.error.parser": "解析错误:{error}", "apps.error.parser.execute_non_leaf": "您必须选择子命令。", "apps.error.parser.missing_binding": "缺少指令绑定。", "apps.error.parser.missing_field_value": "字段值丢失。", "apps.error.parser.missing_list_end": "预期列表结束令牌。", "apps.error.parser.missing_quote": "预期在输入结束之前有匹配的双引号。", - "apps.error.parser.missing_source": "表单既没有提交也没有来源。", + "apps.error.parser.missing_source": "表单既没有提交也没有源。", "apps.error.parser.missing_submit": "绑定或表单中没有提交调用。", "apps.error.parser.missing_tick": "预期在输入结束之前有匹配的勾号。", "apps.error.parser.multiple_equal": "不允许多个 `=` 符号。", @@ -1073,5 +1073,6 @@ "mobile.calls_incoming_gm": "{name} 现邀请您与其他 {num, plural, one {# 位} other {# 位}} 进行通话", "server.invalid.certificate.description": "此服务器的证书无效。\n您可能正在连接到一个假冒为 \"{hostname}\" 的服务器,这可能会危及您的机密信息。", "server.invalid.certificate.title": "无效的SSL证书", - "markdown.max_nodes.error": "此信息过长,无法在移动客户端上完整显示。请在PC客户端上查看或联系管理员以增加消息限制长度。" + "markdown.max_nodes.error": "此信息过长,无法在移动客户端上完整显示。请在PC客户端上查看或联系管理员以增加消息限制长度。", + "mobile.deep_link.invalid": "您尝试打开的链接无效。" } From 0e8ee7e0b96b30600e3855791e969cd1e43a93cd Mon Sep 17 00:00:00 2001 From: linkvn Date: Mon, 25 Sep 2023 03:53:53 +0000 Subject: [PATCH 37/47] Translated using Weblate (Vietnamese) Currently translated at 100.0% (1076 of 1076 strings) Translation: mattermost-languages-shipped/mattermost-mobile-v2 Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-mobile-v2/vi/ --- assets/base/i18n/vi.json | 33 +++++++++++++++++++++------------ 1 file changed, 21 insertions(+), 12 deletions(-) diff --git a/assets/base/i18n/vi.json b/assets/base/i18n/vi.json index f5e05e5a4..5bbb1280f 100644 --- a/assets/base/i18n/vi.json +++ b/assets/base/i18n/vi.json @@ -18,7 +18,7 @@ "camera_type.photo.option": "Chụp ảnh", "camera_type.video.option": "Quay video", "center_panel.archived.closeChannel": "Đóng kênh", - "channel_header.directchannel.you": "{displayname} (you)", + "channel_header.directchannel.you": "{displayName} (bạn)", "channel_info.header": "Tiêu đề:", "channel_modal.nameEx": "Ví dụ: \"Bugs\", \"Marketing\", \"客户支持\"", "channel_modal.optional": "(không bắt buộc)", @@ -68,7 +68,7 @@ "mobile.post_info.unpin": "Bỏ ghim khỏi Kênh", "mobile.post_pre_header.pinned": "Đã ghim", "mobile.post_textbox.entire_channel_here.message": "Bằng cách sử dụng @here, bạn sắp gửi thông báo tới tối đa {totalMembers, number} {totalMembers,plural, one {người} other {người}}. Bạn có chắc chắn muốn làm điều này?", - "mobile.post_textbox.entire_channel_here.message.with_timezones": "Bằng cách sử dụng @here, bạn sắp gửi thông báo tới {totalMembers, number} {totalMembers,plult, one {người} other {người}} trong {timezones, number} {timezones,plural, one {múi giờ} other {múi giờ} }. Bạn có chắc chắn muốn làm điều này?", + "mobile.post_textbox.entire_channel_here.message.with_timezones": "Bằng cách sử dụng @here, bạn sắp gửi thông báo tới {totalMembers, number} {totalMembers,plural, one {người} other {người}} trong {timezones, number} {timezones,plural, one {múi giờ} other {múi giờ}}. Bạn có chắc chắn muốn làm điều này?", "mobile.post_textbox.entire_channel.cancel": "Hủy", "mobile.post_textbox.entire_channel.confirm": "Xác nhận", "mobile.push_notification_reply.placeholder": "Viết câu trả lời...", @@ -214,12 +214,12 @@ "user.settings.general.position": "Vị trí", "user.settings.general.nickname": "Biệt hiệu", "about.hashee": "EE Build Hash:", - "about.teamEditionLearn": "Tham gia Mattermost cộng đồng", + "about.teamEditionLearn": "Tham gia cộng đồng Mattermost", "about.teamEditionSt": "Tất cả thông tin liên lạc trong đội của bạn ở một nơi, có thể tìm kiếm ngay lập tức và có thể truy cập ở mọi nơi.", "about.teamEditiont1": "Phiên bản Doanh nghiệp", "apps.error.form.no_submit": "`submit` không được định nghĩa", "apps.error.form.refresh": "Đã xảy ra lỗi khi tìm nạp các trường đã chọn. Liên hệ với nhà phát triển ứng dụng. Thông tin chi tiết: {details}", - "apps.error.parser.empty_value": "giá trị không được rỗng", + "apps.error.parser.empty_value": "Giá trị không được rỗng.", "apps.error.responses.form.no_form": "Loại phản hồi là `form`, nhưng không có form nào được đưa vào phản hồi.", "apps.error.responses.unexpected_type": "Loại phản hồi của ứng dụng không được mong đợi. Loại phản hồi: {type}", "apps.error.responses.unknown_field_error": "Đã nhận được lỗi cho một trường không xác định. Tên trường: `{field}`. Lỗi: `{error}`.", @@ -266,7 +266,7 @@ "last_users_message.left_team.type": "** đã rời khỏi nhóm **.", "last_users_message.removed_from_channel.type": "đã ** bị xóa khỏi kênh **.", "last_users_message.removed_from_team.type": "đã ** bị xóa khỏi nhóm **.", - "login_mfa.enterToken": "Để hoàn tất quá trình đăng nhập, vui lòng nhập token xác nhận từ điện thoại của bạn", + "login_mfa.enterToken": "Để hoàn tất quá trình đăng nhập, vui lòng nhập token xác nhận từ điện thoại của bạn.", "login_mfa.token": "MFA Token", "login_mfa.tokenReq": "Vui lòng nhập mã thông báo MFA", "login.forgot": "Tôi quên mật khẩu của mình.", @@ -287,11 +287,11 @@ "mobile.channel_list.unreads": "Chưa đọc", "mobile.commands.error_title": "Lỗi thực thi lệnh", "mobile.components.select_server_view.connect": "Đã kết nối", - "mobile.components.select_server_view.connecting": "Đang kết nối...", + "mobile.components.select_server_view.connecting": "Đang kết nối", "mobile.components.select_server_view.enterServerUrl": "Nhập URL máy chủ", "mobile.components.select_server_view.proceed": "Tiếp tục", "mobile.create_channel": "Tạo", - "mobile.create_post.read_only": "Kênh này chỉ có thể đọc", + "mobile.create_post.read_only": "Kênh này chỉ có thể đọc.", "mobile.custom_list.no_results": "Không có kết quả", "mobile.custom_status.choose_emoji": "Chọn một biểu tượng cảm xúc", "mobile.custom_status.clear_after": "Xoá sau", @@ -316,7 +316,7 @@ "mobile.ios.photos_permission_denied_description": "Tải ảnh và video lên phiên bản Mattermost của bạn hoặc lưu chúng vào thiết bị của bạn. Mở Cài đặt để cấp quyền truy cập Đọc và ghi vào thư viện ảnh và video của bạn cho Mattermost.", "mobile.ios.photos_permission_denied_title": "{applicationName} muốn truy cập ảnh của bạn", "mobile.managed.exit": "Chỉnh sửa", - "mobile.managed.jailbreak": "Các thiết bị bẻ khóa không được {vendor} tin cậy.\n \nLý do {reason}\n\n\nThông tin gỡ lỗi: {debug}\n\nVui lòng thoát khỏi ứng dụng.", + "mobile.managed.jailbreak": "Các thiết bị bẻ khóa không được {vendor} tin cậy.\n\nLý do {reason}\n\n\n\nThông tin gỡ lỗi: {debug}\n\nVui lòng thoát khỏi ứng dụng.", "mobile.managed.not_secured.android": "Thiết bị này phải được bảo mật bằng khóa màn hình để sử dụng Mattermost.", "mobile.managed.not_secured.ios": "Thiết bị này phải được bảo mật bằng mật mã để sử dụng Mattermost.\n\nChuyển đến Cài đặt > Face ID & Mật mã.", "mobile.managed.not_secured.ios.touchId": "Thiết bị này phải được bảo mật bằng mật mã để sử dụng Mattermost.\n\nChuyển đến Cài đặt > Face ID & Mật mã.", @@ -334,12 +334,12 @@ "mobile.oauth.failed_to_open_link": "Liên kết không mở được. Vui lòng thử lại.", "mobile.oauth.failed_to_open_link_no_browser": "Liên kết không mở được. Vui lòng xác minh xem trình duyệt có được cài đặt trong không gian hiện tại hay không.", "mobile.oauth.something_wrong": "Đã xảy ra sự cố", - "mobile.oauth.switch_to_browser": "Vui lòng sử dụng trình duyệt của bạn để hoàn tất quá trình đăng nhập.", + "mobile.oauth.switch_to_browser": "Vui lòng sử dụng trình duyệt của bạn để hoàn tất quá trình đăng nhập", "mobile.post_info.add_reaction": "Thêm phản ứng", "mobile.post_info.copy_text": "Sao chép văn bản", "mobile.post_info.mark_unread": "Đánh dấu chưa đọc", "mobile.post_textbox.entire_channel.message": "Bằng cách sử dụng @all hoặc @channel, bạn sắp gửi thông báo tới {totalMembers, number} {totalMembers,plural, one {người} other {người}}. Bạn có chắc chắn muốn làm điều này?", - "mobile.post_textbox.entire_channel.message.with_timezones": "Bằng cách sử dụng @all hoặc @channel, bạn sắp gửi thông báo tới {totalMembers, number} {totalMembers,plural, one {người} other {người}} trong {timezones, number} {timezones,plult, one {múi giờ} other {múi giờ}}. Bạn có chắc chắn muốn làm điều này?", + "mobile.post_textbox.entire_channel.message.with_timezones": "Bằng cách sử dụng @all hoặc @channel, bạn sắp gửi thông báo tới {totalMembers, number} {totalMembers,plural, one {người} other {người}} trong {timezones, number} {timezones,plural, one {múi giờ} other {múi giờ}}. Bạn có chắc chắn muốn làm điều này?", "mobile.post_textbox.entire_channel.title": "Xác nhận gửi thông báo tới toàn bộ kênh", "mobile.post_textbox.groups.title": "Xác nhận gửi thông báo cho các nhóm", "mobile.post_textbox.uploadFailedDesc": "Một số tệp đính kèm không thể tải lên máy chủ. Bạn có chắc chắn muốn gửi tin nhắn?", @@ -411,7 +411,7 @@ "user.settings.general.field_handled_externally": "Trường này được xử lý thông qua nhà cung cấp đăng nhập của bạn. Nếu bạn muốn thay đổi nó, bạn cần phải làm như vậy thông qua nhà cung cấp đăng nhập của bạn.", "user.settings.general.firstName": "Tên", "user.settings.general.username": "Tên người dùng", - "user.settings.notifications.email_threads.description": "Thông báo cho tôi về tất cả các câu trả lời cho chủ đề tôi đang theo dõi.", + "user.settings.notifications.email_threads.description": "Thông báo cho tôi về tất cả các câu trả lời cho chủ đề tôi đang theo dõi", "account.logout_from": "Đăng xuất khỏi {serverName}", "account.settings": "Thiết lập", "account.your_profile": "Hồ sơ của bạn", @@ -1065,5 +1065,14 @@ "settings.about.database.title": "Cơ sở dữ liệu:", "settings.about.server.version": "Phiên bản Máy chủ: {version} (Số bản tạo {buildNumber}", "settings.about.server.version.noBuild": "Phiên bản Máy chủ: {version}", - "settings.about.server.version.title": "Phiên bản Máy chủ:" + "settings.about.server.version.title": "Phiên bản Máy chủ:", + "server.invalid.certificate.title": "Chứng chỉ SSL không hợp lệ", + "server.invalid.certificate.description": "Chứng chỉ cho máy chủ này không hợp lệ. \nBạn có thể đang kết nối với một máy chủ giả danh “{hostname}”, điều này có thể khiến thông tin bí mật của bạn gặp rủi ro.", + "mobile.search.results": "{count} {count, plural, one {kết quả} other {kết quả}} tìm kiếm", + "mobile.calls_incoming_gm": "{name} đang mời bạn tham gia cuộc gọi với {num, plural, one {# người khác} other {# người khác}}", + "snack.bar.info.copied": "Đã sao chép thông tin vào bảng nhớ tạm", + "mobile.calls_incoming_dm": "{name} đang mời bạn tham gia cuộc gọi", + "mobile.deep_link.invalid": "Liên kết bạn đang cố mở này không hợp lệ.", + "markdown.max_nodes.error": "Thông báo này quá dài để hiển thị đầy đủ trên thiết bị di động. Vui lòng xem nó trên máy tính để bàn hoặc liên hệ với quản trị viên để tăng giới hạn này.", + "mobile.calls_join_button": "Tham gia" } From 11417dd6a46e3f4351dc6c7dd5cfa055a526275b Mon Sep 17 00:00:00 2001 From: master7 Date: Tue, 26 Sep 2023 05:42:38 +0000 Subject: [PATCH 38/47] Translated using Weblate (Polish) Currently translated at 100.0% (1077 of 1077 strings) Translation: mattermost-languages-shipped/mattermost-mobile-v2 Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-mobile-v2/pl/ --- assets/base/i18n/pl.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/assets/base/i18n/pl.json b/assets/base/i18n/pl.json index 0819b50a2..7da7942c0 100644 --- a/assets/base/i18n/pl.json +++ b/assets/base/i18n/pl.json @@ -1074,5 +1074,6 @@ "server.invalid.certificate.title": "Nieprawidłowy certyfikat SSL", "server.invalid.certificate.description": "Certyfikat tego serwera jest nieprawidłowy.\nMożliwe, że łączysz się z serwerem podszywającym się pod \"{hostname}\", co może narazić Twoje poufne informacje na ryzyko.", "mobile.deep_link.invalid": "Link, który próbujesz otworzyć, jest nieprawidłowy.", - "markdown.max_nodes.error": "Ta wiadomość jest zbyt długa, aby wyświetlić ją w całości na urządzeniu mobilnym. Wyświetl ją na komputerze lub skontaktuj się z administratorem, aby zwiększyć limit." + "markdown.max_nodes.error": "Ta wiadomość jest zbyt długa, aby wyświetlić ją w całości na urządzeniu mobilnym. Wyświetl ją na komputerze lub skontaktuj się z administratorem, aby zwiększyć limit.", + "mobile.calls_headset": "Zestaw słuchawkowy" } From ffccc860fb4485b07812c1ab3d5b9d75bc470edb Mon Sep 17 00:00:00 2001 From: jprusch Date: Mon, 25 Sep 2023 12:48:29 +0000 Subject: [PATCH 39/47] Translated using Weblate (German) Currently translated at 100.0% (1077 of 1077 strings) Translation: mattermost-languages-shipped/mattermost-mobile-v2 Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-mobile-v2/de/ --- assets/base/i18n/de.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/assets/base/i18n/de.json b/assets/base/i18n/de.json index 9768a5fa1..f9af79c87 100644 --- a/assets/base/i18n/de.json +++ b/assets/base/i18n/de.json @@ -1074,5 +1074,6 @@ "server.invalid.certificate.title": "Ungültiges SSL-Zertifikat", "server.invalid.certificate.description": "Das Zertifikat für diesen Server ist ungültig.\nMöglicherweise stellen Sie eine Verbindung zu einem Server her, der vorgibt, \"{hostname}\" zu sein, wodurch Ihre vertraulichen Daten gefährdet werden könnten.", "markdown.max_nodes.error": "Diese Nachricht ist zu lang, um auf einem mobilen Gerät vollständig angezeigt zu werden. Bitte sehen Sie sie sich auf dem Desktop an oder kontaktieren Sie einen Administrator, um dieses Limit zu erhöhen.", - "mobile.deep_link.invalid": "Der Link, den du zu öffnen versuchst, ist ungültig." + "mobile.deep_link.invalid": "Der Link, den du zu öffnen versuchst, ist ungültig.", + "mobile.calls_headset": "Kopfhörer" } From 5225aa3756021d9ec97321c674e15edf94110522 Mon Sep 17 00:00:00 2001 From: Tom De Moor Date: Tue, 26 Sep 2023 07:45:25 +0000 Subject: [PATCH 40/47] Translated using Weblate (English (Australia)) Currently translated at 99.8% (1075 of 1077 strings) Translation: mattermost-languages-shipped/mattermost-mobile-v2 Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-mobile-v2/en_AU/ --- assets/base/i18n/en_AU.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/assets/base/i18n/en_AU.json b/assets/base/i18n/en_AU.json index 96115552a..0a8a601d3 100644 --- a/assets/base/i18n/en_AU.json +++ b/assets/base/i18n/en_AU.json @@ -1071,7 +1071,7 @@ "mobile.calls_incoming_dm": "{name} is inviting you to a call", "mobile.calls_incoming_gm": "{name} is inviting you to a call with {num, plural, one {# other} other {# others}}", "mobile.calls_join_button": "Join", - "server.invalid.certificate.description": "The certificate for this server is invalid.\nYou might be connecting to a server that is pretending to be '\\{hostname}'\\ which could put your confidential information at risk.", + "server.invalid.certificate.description": "The certificate for this server is invalid.\nYou might be connecting to a server that is pretending to be \"{hostname}\" which could put your confidential information at risk.", "server.invalid.certificate.title": "Invalid SSL certificate", "markdown.max_nodes.error": "This message is too long to by shown fully on a mobile device. Please view it on desktop or contact an admin to increase this limit." } From 1121cca64918fb7520441af2ee13ad0800166a3a Mon Sep 17 00:00:00 2001 From: Saturnino Abril Date: Wed, 27 Sep 2023 15:56:34 +0800 Subject: [PATCH 41/47] CLD-5949 Upgrade Detox and E2E dependencies (#7553) * upgrade detox and e2e dependencies * update detox in main package.json * remove inadvertent addition of "react-devtools" * remove inadvertent addition of "react-devtools" --- detox/e2e/support/ui/component/alert.ts | 3 + detox/e2e/support/ui/screen/server.ts | 7 + .../server_login/connect_to_server.e2e.ts | 35 +- detox/package-lock.json | 3347 +++++++++-------- detox/package.json | 47 +- package-lock.json | 26 +- package.json | 2 +- 7 files changed, 1868 insertions(+), 1599 deletions(-) diff --git a/detox/e2e/support/ui/component/alert.ts b/detox/e2e/support/ui/component/alert.ts index 0718e6321..7cb2a9978 100644 --- a/detox/e2e/support/ui/component/alert.ts +++ b/detox/e2e/support/ui/component/alert.ts @@ -19,6 +19,7 @@ class Alert { return isAndroid() ? element(by.text(title)) : element(by.label(title)).atIndex(0); }; deletePostTitle = isAndroid() ? element(by.text('Delete Post')) : element(by.label('Delete Post')).atIndex(0); + invalidSslCertTitle = isAndroid() ? element(by.text('Invalid SSL certificate')) : element(by.label('Invalid SSL certificate')).atIndex(0); leaveChannelTitle = isAndroid() ? element(by.text('Leave channel')) : element(by.label('Leave channel')).atIndex(0); logoutTitle = (serverDisplayName: string) => { const title = `Are you sure you want to log out of ${serverDisplayName}?`; @@ -27,6 +28,7 @@ class Alert { }; markAllAsReadTitle = isAndroid() ? element(by.text('Are you sure you want to mark all threads as read?')) : element(by.label('Are you sure you want to mark all threads as read?')).atIndex(0); messageLengthTitle = isAndroid() ? element(by.text('Message Length')) : element(by.label('Message Length')).atIndex(0); + notificationsCannotBeReceivedTitle = isAndroid() ? element(by.text('Notifications cannot be received from this server')) : element(by.label('Notifications cannot be received from this server')).atIndex(0); removeServerTitle = (serverDisplayName: string) => { const title = `Are you sure you want to remove ${serverDisplayName}?`; @@ -47,6 +49,7 @@ class Alert { noButton = isAndroid() ? element(by.text('NO')) : element(by.label('No')).atIndex(0); noButton2 = isAndroid() ? element(by.text('NO')) : element(by.label('No')).atIndex(1); okButton = isAndroid() ? element(by.text('OK')) : element(by.label('OK')).atIndex(1); + okayButton = isAndroid() ? element(by.text('Okay')) : element(by.label('Okay')).atIndex(1); removeButton = isAndroid() ? element(by.text('REMOVE')) : element(by.label('Remove')).atIndex(0); removeButton1 = isAndroid() ? element(by.text('REMOVE')) : element(by.label('Remove')).atIndex(1); removeButton2 = isAndroid() ? element(by.text('REMOVE')) : element(by.label('Remove')).atIndex(2); diff --git a/detox/e2e/support/ui/screen/server.ts b/detox/e2e/support/ui/screen/server.ts index 527ecbaa6..4bb74c2ca 100644 --- a/detox/e2e/support/ui/screen/server.ts +++ b/detox/e2e/support/ui/screen/server.ts @@ -1,6 +1,7 @@ // Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. // See LICENSE.txt for license information. +import {Alert} from '@support/ui/component'; import {isAndroid, isIos, timeouts, wait} from '@support/utils'; import {expect} from 'detox'; @@ -52,6 +53,12 @@ class ServerScreen { } if (isIos()) { await this.tapConnectButton(); + + if (serverUrl.includes('127.0.0.1')) { + // # Tap alert okay button + await waitFor(Alert.okayButton).toExist().withTimeout(timeouts.TEN_SEC); + await Alert.okayButton.tap(); + } } }; diff --git a/detox/e2e/test/server_login/connect_to_server.e2e.ts b/detox/e2e/test/server_login/connect_to_server.e2e.ts index 9f2f42380..7809b84b4 100644 --- a/detox/e2e/test/server_login/connect_to_server.e2e.ts +++ b/detox/e2e/test/server_login/connect_to_server.e2e.ts @@ -8,11 +8,12 @@ // ******************************************************************* import {serverOneUrl} from '@support/test_config'; +import {Alert} from '@support/ui/component'; import { LoginScreen, ServerScreen, } from '@support/ui/screen'; -import {timeouts, wait} from '@support/utils'; +import {isIos, timeouts, wait} from '@support/utils'; import {expect} from 'detox'; describe('Server Login - Connect to Server', () => { @@ -33,6 +34,8 @@ describe('Server Login - Connect to Server', () => { await ServerScreen.toBeVisible(); // # Clear fields + await expect(serverUrlInput).toBeVisible(); + await expect(serverDisplayNameInput).toBeVisible(); await serverUrlInput.clearText(); await serverDisplayNameInput.clearText(); }); @@ -67,6 +70,7 @@ describe('Server Login - Connect to Server', () => { it('MM-T4676_3 - should show invalid url error on invalid server url', async () => { // # Connect with invalid server url and non-empty server display name const invalidServerUrl = 'invalid'; + await device.setURLBlacklist([invalidServerUrl]); await serverUrlInput.replaceText(invalidServerUrl); await serverDisplayNameInput.replaceText('Server 1'); await connectButton.tap(); @@ -78,27 +82,32 @@ describe('Server Login - Connect to Server', () => { }); it('MM-T4676_4 - should show connection error on invalid ssl or invalid host', async () => { + await device.reloadReactNative(); + // # Connect with invalid ssl and non-empty server display name - const connectionError = 'Cannot connect to the server.'; - await serverUrlInput.replaceText('expired.badssl.com'); + const expiredServerUrl = 'expired.badssl.com'; + const wrongHostServerUrl = 'wrong.host.badssl.com'; + await device.setURLBlacklist([expiredServerUrl, wrongHostServerUrl]); + + await serverUrlInput.replaceText(expiredServerUrl); await serverDisplayNameInput.replaceText('Server 1'); await connectButton.tap(); await wait(timeouts.ONE_SEC); - // * Verify connection error - await waitFor(serverUrlInputError).toExist().withTimeout(timeouts.TEN_SEC); - await expect(serverUrlInputError).toHaveText(connectionError); + // * Verify invalid SSL cert error + await waitFor(Alert.invalidSslCertTitle).toExist().withTimeout(timeouts.TEN_SEC); + await Alert.okButton.tap(); // # Connect with invalid host and valid server display name await device.reloadReactNative(); - await serverUrlInput.replaceText('wrong.host.badssl.com'); + await serverUrlInput.replaceText(wrongHostServerUrl); await serverDisplayNameInput.replaceText('Server 1'); await connectButton.tap(); await wait(timeouts.ONE_SEC); - // * Verify connection error - await waitFor(serverUrlInputError).toExist().withTimeout(timeouts.TEN_SEC); - await expect(serverUrlInputError).toHaveText(connectionError); + // * Verify invalid SSL cert error + await waitFor(Alert.invalidSslCertTitle).toExist().withTimeout(timeouts.TEN_SEC); + await Alert.okButton.tap(); }); it('MM-T4676_5 - should show login screen on successful connection to server', async () => { @@ -108,6 +117,12 @@ describe('Server Login - Connect to Server', () => { await connectButton.tap(); await wait(timeouts.ONE_SEC); + if (isIos()) { + // # Tap alert okay button + await waitFor(Alert.okayButton).toExist().withTimeout(timeouts.TEN_SEC); + await Alert.okayButton.tap(); + } + // * Verify on login screen await LoginScreen.toBeVisible(); }); diff --git a/detox/package-lock.json b/detox/package-lock.json index 6cccc80b0..b0697ff19 100644 --- a/detox/package-lock.json +++ b/detox/package-lock.json @@ -7,39 +7,39 @@ "name": "mattermost-mobile-e2e", "devDependencies": { "@babel/plugin-proposal-class-properties": "7.18.6", - "@babel/plugin-transform-modules-commonjs": "7.22.5", - "@babel/plugin-transform-runtime": "7.22.5", - "@babel/preset-env": "7.22.5", - "@jest/test-sequencer": "29.5.0", - "@types/jest": "29.5.2", - "@types/tough-cookie": "4.0.2", - "@types/uuid": "9.0.2", - "aws-sdk": "2.1398.0", - "axios": "1.4.0", - "axios-cookiejar-support": "4.0.6", - "babel-jest": "29.5.0", + "@babel/plugin-transform-modules-commonjs": "7.22.15", + "@babel/plugin-transform-runtime": "7.22.15", + "@babel/preset-env": "7.22.20", + "@jest/test-sequencer": "29.7.0", + "@types/jest": "29.5.5", + "@types/tough-cookie": "4.0.3", + "@types/uuid": "9.0.4", + "aws-sdk": "2.1462.0", + "axios": "1.5.0", + "axios-cookiejar-support": "4.0.7", + "babel-jest": "29.7.0", "babel-plugin-module-resolver": "5.0.0", "client-oauth2": "4.3.3", "deepmerge": "4.3.1", - "detox": "20.9.1", + "detox": "20.11.4", "form-data": "4.0.0", - "jest": "29.5.0", - "jest-circus": "29.5.0", - "jest-cli": "29.5.0", + "jest": "29.7.0", + "jest-circus": "29.7.0", + "jest-cli": "29.7.0", "jest-html-reporters": "3.1.4", "jest-junit": "16.0.0", - "jest-stare": "2.5.0", + "jest-stare": "2.5.1", "junit-report-merger": "6.0.2", "moment-timezone": "0.5.43", "recursive-readdir": "2.2.3", "sanitize-filename": "1.6.3", "shelljs": "0.8.5", "tough-cookie": "4.1.3", - "ts-jest": "29.1.0", - "tslib": "2.5.3", - "typescript": "5.1.3", - "uuid": "9.0.0", - "xml2js": "0.5.0" + "ts-jest": "29.1.1", + "tslib": "2.6.2", + "typescript": "5.2.2", + "uuid": "9.0.1", + "xml2js": "0.6.2" } }, "node_modules/@ampproject/remapping": { @@ -56,21 +56,22 @@ } }, "node_modules/@babel/code-frame": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.5.tgz", - "integrity": "sha512-Xmwn266vad+6DAqEB2A6V/CcZVp62BbwVmcOJc2RPuwih1kw02TjQvWVWlcKGbBPd+8/0V5DEkOcizRGYsspYQ==", + "version": "7.22.13", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.13.tgz", + "integrity": "sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==", "dev": true, "dependencies": { - "@babel/highlight": "^7.22.5" + "@babel/highlight": "^7.22.13", + "chalk": "^2.4.2" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/compat-data": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.22.5.tgz", - "integrity": "sha512-4Jc/YuIaYqKnDDz892kPIledykKg12Aw1PYX5i/TY28anJtacvM1Rrr8wbieB9GfEJwlzqT0hUEao0CxEebiDA==", + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.22.20.tgz", + "integrity": "sha512-BQYjKbpXjoXwFW5jGqiizJQQT/aC7pFm9Ok1OWssonuguICi264lbgMzRp2ZMmRSlfkX6DsWDDcsrctK8Rwfiw==", "dev": true, "engines": { "node": ">=6.9.0" @@ -160,16 +161,45 @@ } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.5.tgz", - "integrity": "sha512-Ji+ywpHeuqxB8WDxraCiqR0xfhYjiDE/e6k7FuIaANnoOFxAHskHChz4vA1mJC9Lbm01s1PVAGhQY4FUKSkGZw==", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.15.tgz", + "integrity": "sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw==", "dev": true, "dependencies": { - "@babel/compat-data": "^7.22.5", - "@babel/helper-validator-option": "^7.22.5", - "browserslist": "^4.21.3", + "@babel/compat-data": "^7.22.9", + "@babel/helper-validator-option": "^7.22.15", + "browserslist": "^4.21.9", "lru-cache": "^5.1.1", - "semver": "^6.3.0" + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-create-class-features-plugin": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.15.tgz", + "integrity": "sha512-jKkwA59IXcvSaiK2UN45kKwSC9o+KuoXsBDvHvU/7BecYIp8GQ2UwrVvFgJASUT+hBnwJx6MhvMCuMzwZZ7jlg==", + "dev": true, + "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-optimise-call-expression": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "semver": "^6.3.1" }, "engines": { "node": ">=6.9.0" @@ -178,27 +208,13 @@ "@babel/core": "^7.0.0" } }, - "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.5.tgz", - "integrity": "sha512-xkb58MyOYIslxu3gKmVXmjTtUPvBU4odYzbiIQbWwLKIHCsx6UGZGX6F1IznMFVnDdirseUZopzN+ZRt8Xb33Q==", + "node_modules/@babel/helper-create-class-features-plugin/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, - "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.5", - "@babel/helper-optimise-call-expression": "^7.22.5", - "@babel/helper-replace-supers": "^7.22.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.5", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" + "bin": { + "semver": "bin/semver.js" } }, "node_modules/@babel/helper-create-regexp-features-plugin": { @@ -219,26 +235,25 @@ } }, "node_modules/@babel/helper-define-polyfill-provider": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.0.tgz", - "integrity": "sha512-RnanLx5ETe6aybRi1cO/edaRH+bNYWaryCEmjDDYyNr4wnSzyOp8T0dWipmqVHKEY3AbVKUom50AKSlj1zmKbg==", + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.2.tgz", + "integrity": "sha512-k0qnnOqHn5dK9pZpfD5XXZ9SojAITdCKRn2Lp6rnDGzIbaP0rHyMPk/4wsSxVBVz4RfN0q6VpXWP2pDGIoQ7hw==", "dev": true, "dependencies": { - "@babel/helper-compilation-targets": "^7.17.7", - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-compilation-targets": "^7.22.6", + "@babel/helper-plugin-utils": "^7.22.5", "debug": "^4.1.1", "lodash.debounce": "^4.0.8", - "resolve": "^1.14.2", - "semver": "^6.1.2" + "resolve": "^1.14.2" }, "peerDependencies": { - "@babel/core": "^7.4.0-0" + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, "node_modules/@babel/helper-environment-visitor": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.5.tgz", - "integrity": "sha512-XGmhECfVA/5sAt+H+xpSg0mfrHq6FzNr9Oxh7PSEBBRUb/mL7Kz3NICXb194rCqAEdxkhPT1a88teizAFyvk8Q==", + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", + "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", "dev": true, "engines": { "node": ">=6.9.0" @@ -270,46 +285,46 @@ } }, "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.22.5.tgz", - "integrity": "sha512-aBiH1NKMG0H2cGZqspNvsaBe6wNGjbJjuLy29aU+eDZjSbbN53BaxlpB02xm9v34pLTZ1nIQPFYn2qMZoa5BQQ==", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.22.15.tgz", + "integrity": "sha512-qLNsZbgrNh0fDQBCPocSL8guki1hcPvltGDv/NxvUoABwFq7GkKSu1nRXeJkVZc+wJvne2E0RKQz+2SQrz6eAA==", "dev": true, "dependencies": { - "@babel/types": "^7.22.5" + "@babel/types": "^7.22.15" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-imports": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.5.tgz", - "integrity": "sha512-8Dl6+HD/cKifutF5qGd/8ZJi84QeAKh+CEe1sBzz8UayBBGg1dAIJrdHOcOM5b2MpzWL2yuotJTtGjETq0qjXg==", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz", + "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==", "dev": true, "dependencies": { - "@babel/types": "^7.22.5" + "@babel/types": "^7.22.15" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.22.5.tgz", - "integrity": "sha512-+hGKDt/Ze8GFExiVHno/2dvG5IdstpzCq0y4Qc9OJ25D4q3pKfiIP/4Vp3/JvhDkLKsDK2api3q3fpIgiIF5bw==", + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.22.20.tgz", + "integrity": "sha512-dLT7JVWIUUxKOs1UnJUBR3S70YK+pKX6AbJgB2vMIvEkZkrfJDbYDJesnPshtKV4LhDOR3Oc5YULeDizRek+5A==", "dev": true, "dependencies": { - "@babel/helper-environment-visitor": "^7.22.5", - "@babel/helper-module-imports": "^7.22.5", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-module-imports": "^7.22.15", "@babel/helper-simple-access": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.5", - "@babel/helper-validator-identifier": "^7.22.5", - "@babel/template": "^7.22.5", - "@babel/traverse": "^7.22.5", - "@babel/types": "^7.22.5" + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/helper-validator-identifier": "^7.22.20" }, "engines": { "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, "node_modules/@babel/helper-optimise-call-expression": { @@ -334,15 +349,14 @@ } }, "node_modules/@babel/helper-remap-async-to-generator": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.5.tgz", - "integrity": "sha512-cU0Sq1Rf4Z55fgz7haOakIyM7+x/uCFwXpLPaeRzfoUtAEAuUZjZvFPjL/rk5rW693dIgn2hng1W7xbT7lWT4g==", + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.20.tgz", + "integrity": "sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==", "dev": true, "dependencies": { "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-environment-visitor": "^7.22.5", - "@babel/helper-wrap-function": "^7.22.5", - "@babel/types": "^7.22.5" + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-wrap-function": "^7.22.20" }, "engines": { "node": ">=6.9.0" @@ -352,20 +366,20 @@ } }, "node_modules/@babel/helper-replace-supers": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.22.5.tgz", - "integrity": "sha512-aLdNM5I3kdI/V9xGNyKSF3X/gTyMUBohTZ+/3QdQKAA9vxIiy12E+8E2HoOP1/DjeqU+g6as35QHJNMDDYpuCg==", + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.22.20.tgz", + "integrity": "sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw==", "dev": true, "dependencies": { - "@babel/helper-environment-visitor": "^7.22.5", - "@babel/helper-member-expression-to-functions": "^7.22.5", - "@babel/helper-optimise-call-expression": "^7.22.5", - "@babel/template": "^7.22.5", - "@babel/traverse": "^7.22.5", - "@babel/types": "^7.22.5" + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-member-expression-to-functions": "^7.22.15", + "@babel/helper-optimise-call-expression": "^7.22.5" }, "engines": { "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, "node_modules/@babel/helper-simple-access": { @@ -393,9 +407,9 @@ } }, "node_modules/@babel/helper-split-export-declaration": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.5.tgz", - "integrity": "sha512-thqK5QFghPKWLhAV321lxF95yCg2K3Ob5yw+M3VHWfdia0IkPXUtoLH8x/6Fh486QUvzhb8YOWHChTVen2/PoQ==", + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", + "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", "dev": true, "dependencies": { "@babel/types": "^7.22.5" @@ -414,33 +428,32 @@ } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.5.tgz", - "integrity": "sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ==", + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", + "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-option": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.22.5.tgz", - "integrity": "sha512-R3oB6xlIVKUnxNUxbmgq7pKjxpru24zlimpE8WK47fACIlM0II/Hm1RS8IaOI7NgCr6LNS+jl5l75m20npAziw==", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.22.15.tgz", + "integrity": "sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-wrap-function": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.22.5.tgz", - "integrity": "sha512-bYqLIBSEshYcYQyfks8ewYA8S30yaGSeRslcvKMvoUk6HHPySbxHq9YRi6ghhzEU+yhQv9bP/jXnygkStOcqZw==", + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.22.20.tgz", + "integrity": "sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==", "dev": true, "dependencies": { "@babel/helper-function-name": "^7.22.5", - "@babel/template": "^7.22.5", - "@babel/traverse": "^7.22.5", - "@babel/types": "^7.22.5" + "@babel/template": "^7.22.15", + "@babel/types": "^7.22.19" }, "engines": { "node": ">=6.9.0" @@ -461,13 +474,13 @@ } }, "node_modules/@babel/highlight": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.5.tgz", - "integrity": "sha512-BSKlD1hgnedS5XRnGOljZawtag7H1yPfQp0tdNJCHoH6AZ+Pcm9VvkrK59/Yy593Ypg0zMxH2BxD1VPYUQ7UIw==", + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.20.tgz", + "integrity": "sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==", "dev": true, "dependencies": { - "@babel/helper-validator-identifier": "^7.22.5", - "chalk": "^2.0.0", + "@babel/helper-validator-identifier": "^7.22.20", + "chalk": "^2.4.2", "js-tokens": "^4.0.0" }, "engines": { @@ -475,9 +488,9 @@ } }, "node_modules/@babel/parser": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.22.5.tgz", - "integrity": "sha512-DFZMC9LJUG9PLOclRC32G63UXwzqS2koQC8dkx+PLdmt1xSePYpbT/NbsrJy8Q/muXz7o/h/d4A7Fuyixm559Q==", + "version": "7.22.16", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.22.16.tgz", + "integrity": "sha512-+gPfKv8UWeKKeJTUxe59+OobVcrYHETCsORl61EmSkmgymguYk/X5bp7GuUIXaFsc6y++v8ZxPsLSSuujqDphA==", "dev": true, "bin": { "parser": "bin/babel-parser.js" @@ -487,9 +500,9 @@ } }, "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.22.5.tgz", - "integrity": "sha512-NP1M5Rf+u2Gw9qfSO4ihjcTGW5zXTi36ITLd4/EoAcEhIZ0yjMqmftDNl3QC19CX7olhrjpyU454g/2W7X0jvQ==", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.22.15.tgz", + "integrity": "sha512-FB9iYlz7rURmRJyXRKEnalYPPdn87H5no108cyuQQyMwlpJ2SJtpIUBI27kdTin956pz+LPypkPVPUTlxOmrsg==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" @@ -502,14 +515,14 @@ } }, "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.22.5.tgz", - "integrity": "sha512-31Bb65aZaUwqCbWMnZPduIZxCBngHFlzyN6Dq6KAJjtx+lx6ohKHubc61OomYi7XwVD4Ol0XCVz4h+pYFR048g==", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.22.15.tgz", + "integrity": "sha512-Hyph9LseGvAeeXzikV88bczhsrLrIZqDPxO+sSmAunMPaGrBGhfMWzCPYTtiW9t+HzSE2wtV8e5cc5P6r1xMDQ==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", - "@babel/plugin-transform-optional-chaining": "^7.22.5" + "@babel/plugin-transform-optional-chaining": "^7.22.15" }, "engines": { "node": ">=6.9.0" @@ -546,22 +559,6 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-proposal-unicode-property-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz", - "integrity": "sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==", - "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, "node_modules/@babel/plugin-syntax-async-generators": { "version": "7.8.4", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", @@ -692,12 +689,12 @@ } }, "node_modules/@babel/plugin-syntax-jsx": { - "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.21.4.tgz", - "integrity": "sha512-5hewiLct5OKyh6PLKEYaFclcqtIgCb6bmELouxjF6up5q3Sov7rOayW4RwhbaBL0dit8rA80GNfY+UuDp2mBbQ==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.22.5.tgz", + "integrity": "sha512-gvyP4hZrgrs/wWMaocvxZ44Hw0b3W8Pe+cMxc8V1ULQ07oh8VNbIRaoD1LRZVTvD+0nieDKjfgKg89sD7rrKrg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -809,12 +806,12 @@ } }, "node_modules/@babel/plugin-syntax-typescript": { - "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.21.4.tgz", - "integrity": "sha512-xz0D39NvhQn4t4RNsHmDnnsaQizIlUkdtYvLs8La1BlfjQ6JEwxkJGeqJMW2tAXx+q6H+WFuUTXNdYVpEya0YA==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.22.5.tgz", + "integrity": "sha512-1mS2o03i7t1c6VzH6fdQ3OA8tcEIxwG18zIPRp+UY1Ihv6W+XZzBCVxExF9upussPXJ0xE9XRHwMoNs1ep/nRQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -855,14 +852,14 @@ } }, "node_modules/@babel/plugin-transform-async-generator-functions": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.22.5.tgz", - "integrity": "sha512-gGOEvFzm3fWoyD5uZq7vVTD57pPJ3PczPUD/xCFGjzBpUosnklmXyKnGQbbbGs1NPNPskFex0j93yKbHt0cHyg==", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.22.15.tgz", + "integrity": "sha512-jBm1Es25Y+tVoTi5rfd5t1KLmL8ogLKpXszboWOTTtGFGz2RKnQe2yn7HbZ+kb/B8N0FVSGQo874NSlOU1T4+w==", "dev": true, "dependencies": { "@babel/helper-environment-visitor": "^7.22.5", "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-remap-async-to-generator": "^7.22.5", + "@babel/helper-remap-async-to-generator": "^7.22.9", "@babel/plugin-syntax-async-generators": "^7.8.4" }, "engines": { @@ -905,9 +902,9 @@ } }, "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.22.5.tgz", - "integrity": "sha512-EcACl1i5fSQ6bt+YGuU/XGCeZKStLmyVGytWkpyhCLeQVA0eu6Wtiw92V+I1T/hnezUv7j74dA/Ro69gWcU+hg==", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.22.15.tgz", + "integrity": "sha512-G1czpdJBZCtngoK1sJgloLiOHUnkb/bLZwqVZD8kXmq0ZnVfTTWUcs9OWtp0mBtYJ+4LQY1fllqBkOIPhXmFmw==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" @@ -936,12 +933,12 @@ } }, "node_modules/@babel/plugin-transform-class-static-block": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.22.5.tgz", - "integrity": "sha512-SPToJ5eYZLxlnp1UzdARpOGeC2GbHvr9d/UV0EukuVx8atktg194oe+C5BqQ8jRTkgLRVOPYeXRSBg1IlMoVRA==", + "version": "7.22.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.22.11.tgz", + "integrity": "sha512-GMM8gGmqI7guS/llMFk1bJDkKfn3v3C4KHK9Yg1ey5qcHcOlKb0QvcMrgzvxo+T03/4szNh5lghY+fEC98Kq9g==", "dev": true, "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.22.5", + "@babel/helper-create-class-features-plugin": "^7.22.11", "@babel/helper-plugin-utils": "^7.22.5", "@babel/plugin-syntax-class-static-block": "^7.14.5" }, @@ -953,19 +950,19 @@ } }, "node_modules/@babel/plugin-transform-classes": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.22.5.tgz", - "integrity": "sha512-2edQhLfibpWpsVBx2n/GKOz6JdGQvLruZQfGr9l1qes2KQaWswjBzhQF7UDUZMNaMMQeYnQzxwOMPsbYF7wqPQ==", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.22.15.tgz", + "integrity": "sha512-VbbC3PGjBdE0wAWDdHM9G8Gm977pnYI0XpqMd6LrKISj8/DJXEsWqgRuTYaNE9Bv0JGhTZUzHDlMk18IpOuoqw==", "dev": true, "dependencies": { "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-compilation-targets": "^7.22.5", + "@babel/helper-compilation-targets": "^7.22.15", "@babel/helper-environment-visitor": "^7.22.5", "@babel/helper-function-name": "^7.22.5", "@babel/helper-optimise-call-expression": "^7.22.5", "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-replace-supers": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.9", + "@babel/helper-split-export-declaration": "^7.22.6", "globals": "^11.1.0" }, "engines": { @@ -992,9 +989,9 @@ } }, "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.22.5.tgz", - "integrity": "sha512-GfqcFuGW8vnEqTUBM7UtPd5A4q797LTvvwKxXTgRsFjoqaJiEg9deBG6kWeQYkVEL569NpnmpC0Pkr/8BLKGnQ==", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.22.15.tgz", + "integrity": "sha512-HzG8sFl1ZVGTme74Nw+X01XsUTqERVQ6/RLHo3XjGRzm7XD6QTtfS3NJotVgCGy8BzkDqRjRBD8dAyJn5TuvSQ==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" @@ -1038,9 +1035,9 @@ } }, "node_modules/@babel/plugin-transform-dynamic-import": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.22.5.tgz", - "integrity": "sha512-0MC3ppTB1AMxd8fXjSrbPa7LT9hrImt+/fcj+Pg5YMD7UQyWp/02+JWpdnCymmsXwIx5Z+sYn1bwCn4ZJNvhqQ==", + "version": "7.22.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.22.11.tgz", + "integrity": "sha512-g/21plo58sfteWjaO0ZNVb+uEOkJNjAaHhbejrnBmu011l/eNDScmkbjCC3l4FKb10ViaGU4aOkFznSu2zRHgA==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", @@ -1070,9 +1067,9 @@ } }, "node_modules/@babel/plugin-transform-export-namespace-from": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.22.5.tgz", - "integrity": "sha512-X4hhm7FRnPgd4nDA4b/5V280xCx6oL7Oob5+9qVS5C13Zq4bh1qq7LU0GgRU6b5dBWBvhGaXYVB4AcN6+ol6vg==", + "version": "7.22.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.22.11.tgz", + "integrity": "sha512-xa7aad7q7OiT8oNZ1mU7NrISjlSkVdMbNxn9IuLZyL9AJEhs1Apba3I+u5riX1dIkdptP5EKDG5XDPByWxtehw==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", @@ -1086,9 +1083,9 @@ } }, "node_modules/@babel/plugin-transform-for-of": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.22.5.tgz", - "integrity": "sha512-3kxQjX1dU9uudwSshyLeEipvrLjBCVthCgeTp6CzE/9JYrlAIaeekVxRpCWsDDfYTfRZRoCeZatCQvwo+wvK8A==", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.22.15.tgz", + "integrity": "sha512-me6VGeHsx30+xh9fbDLLPi0J1HzmeIIyenoOQHuw2D4m2SAU3NrspX5XxJLBpqn5yrLzrlw2Iy3RA//Bx27iOA==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" @@ -1118,9 +1115,9 @@ } }, "node_modules/@babel/plugin-transform-json-strings": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.22.5.tgz", - "integrity": "sha512-DuCRB7fu8MyTLbEQd1ew3R85nx/88yMoqo2uPSjevMj3yoN7CDM8jkgrY0wmVxfJZyJ/B9fE1iq7EQppWQmR5A==", + "version": "7.22.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.22.11.tgz", + "integrity": "sha512-CxT5tCqpA9/jXFlme9xIBCc5RPtdDq3JpkkhgHQqtDdiTnTI0jtZ0QzXhr5DILeYifDPp2wvY2ad+7+hLMW5Pw==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", @@ -1149,9 +1146,9 @@ } }, "node_modules/@babel/plugin-transform-logical-assignment-operators": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.22.5.tgz", - "integrity": "sha512-MQQOUW1KL8X0cDWfbwYP+TbVbZm16QmQXJQ+vndPtH/BoO0lOKpVoEDMI7+PskYxH+IiE0tS8xZye0qr1lGzSA==", + "version": "7.22.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.22.11.tgz", + "integrity": "sha512-qQwRTP4+6xFCDV5k7gZBF3C31K34ut0tbEcTKxlX/0KXxm9GLcO14p570aWxFvVzx6QAfPgq7gaeIHXJC8LswQ==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", @@ -1196,12 +1193,12 @@ } }, "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.22.5.tgz", - "integrity": "sha512-B4pzOXj+ONRmuaQTg05b3y/4DuFz3WcCNAXPLb2Q0GT0TrGKGxNKV4jwsXts+StaM0LQczZbOpj8o1DLPDJIiA==", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.22.15.tgz", + "integrity": "sha512-jWL4eh90w0HQOTKP2MoXXUpVxilxsB2Vl4ji69rSjS3EcZ/v4sBmn+A3NpepuJzBhOaEBbR7udonlHHn5DWidg==", "dev": true, "dependencies": { - "@babel/helper-module-transforms": "^7.22.5", + "@babel/helper-module-transforms": "^7.22.15", "@babel/helper-plugin-utils": "^7.22.5", "@babel/helper-simple-access": "^7.22.5" }, @@ -1213,13 +1210,13 @@ } }, "node_modules/@babel/plugin-transform-modules-systemjs": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.22.5.tgz", - "integrity": "sha512-emtEpoaTMsOs6Tzz+nbmcePl6AKVtS1yC4YNAeMun9U8YCsgadPNxnOPQ8GhHFB2qdx+LZu9LgoC0Lthuu05DQ==", + "version": "7.22.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.22.11.tgz", + "integrity": "sha512-rIqHmHoMEOhI3VkVf5jQ15l539KrwhzqcBO6wdCNWPWc/JWt9ILNYNUssbRpeq0qWns8svuw8LnMNCvWBIJ8wA==", "dev": true, "dependencies": { "@babel/helper-hoist-variables": "^7.22.5", - "@babel/helper-module-transforms": "^7.22.5", + "@babel/helper-module-transforms": "^7.22.9", "@babel/helper-plugin-utils": "^7.22.5", "@babel/helper-validator-identifier": "^7.22.5" }, @@ -1278,9 +1275,9 @@ } }, "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.22.5.tgz", - "integrity": "sha512-6CF8g6z1dNYZ/VXok5uYkkBBICHZPiGEl7oDnAx2Mt1hlHVHOSIKWJaXHjQJA5VB43KZnXZDIexMchY4y2PGdA==", + "version": "7.22.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.22.11.tgz", + "integrity": "sha512-YZWOw4HxXrotb5xsjMJUDlLgcDXSfO9eCmdl1bgW4+/lAGdkjaEvOnQ4p5WKKdUgSzO39dgPl0pTnfxm0OAXcg==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", @@ -1294,9 +1291,9 @@ } }, "node_modules/@babel/plugin-transform-numeric-separator": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.22.5.tgz", - "integrity": "sha512-NbslED1/6M+sXiwwtcAB/nieypGw02Ejf4KtDeMkCEpP6gWFMX1wI9WKYua+4oBneCCEmulOkRpwywypVZzs/g==", + "version": "7.22.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.22.11.tgz", + "integrity": "sha512-3dzU4QGPsILdJbASKhF/V2TVP+gJya1PsueQCxIPCEcerqF21oEcrob4mzjsp2Py/1nLfF5m+xYNMDpmA8vffg==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", @@ -1310,16 +1307,16 @@ } }, "node_modules/@babel/plugin-transform-object-rest-spread": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.22.5.tgz", - "integrity": "sha512-Kk3lyDmEslH9DnvCDA1s1kkd3YWQITiBOHngOtDL9Pt6BZjzqb6hiOlb8VfjiiQJ2unmegBqZu0rx5RxJb5vmQ==", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.22.15.tgz", + "integrity": "sha512-fEB+I1+gAmfAyxZcX1+ZUwLeAuuf8VIg67CTznZE0MqVFumWkh8xWtn58I4dxdVf080wn7gzWoF8vndOViJe9Q==", "dev": true, "dependencies": { - "@babel/compat-data": "^7.22.5", - "@babel/helper-compilation-targets": "^7.22.5", + "@babel/compat-data": "^7.22.9", + "@babel/helper-compilation-targets": "^7.22.15", "@babel/helper-plugin-utils": "^7.22.5", "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.22.5" + "@babel/plugin-transform-parameters": "^7.22.15" }, "engines": { "node": ">=6.9.0" @@ -1345,9 +1342,9 @@ } }, "node_modules/@babel/plugin-transform-optional-catch-binding": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.22.5.tgz", - "integrity": "sha512-pH8orJahy+hzZje5b8e2QIlBWQvGpelS76C63Z+jhZKsmzfNaPQ+LaW6dcJ9bxTpo1mtXbgHwy765Ro3jftmUg==", + "version": "7.22.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.22.11.tgz", + "integrity": "sha512-rli0WxesXUeCJnMYhzAglEjLWVDF6ahb45HuprcmQuLidBJFWjNnOzssk2kuc6e33FlLaiZhG/kUIzUMWdBKaQ==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", @@ -1361,9 +1358,9 @@ } }, "node_modules/@babel/plugin-transform-optional-chaining": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.22.5.tgz", - "integrity": "sha512-AconbMKOMkyG+xCng2JogMCDcqW8wedQAqpVIL4cOSescZ7+iW8utC6YDZLMCSUIReEA733gzRSaOSXMAt/4WQ==", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.22.15.tgz", + "integrity": "sha512-ngQ2tBhq5vvSJw2Q2Z9i7ealNkpDMU0rGWnHPKqRZO0tzZ5tlaoz4hDvhXioOoaE0X2vfNss1djwg0DXlfu30A==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", @@ -1378,9 +1375,9 @@ } }, "node_modules/@babel/plugin-transform-parameters": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.22.5.tgz", - "integrity": "sha512-AVkFUBurORBREOmHRKo06FjHYgjrabpdqRSwq6+C7R5iTCZOsM4QbcB27St0a4U6fffyAOqh3s/qEfybAhfivg==", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.22.15.tgz", + "integrity": "sha512-hjk7qKIqhyzhhUvRT683TYQOFa/4cQKwQy7ALvTpODswN40MljzNDa0YldevS6tGbxwaEKVn502JmY0dP7qEtQ==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" @@ -1409,13 +1406,13 @@ } }, "node_modules/@babel/plugin-transform-private-property-in-object": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.22.5.tgz", - "integrity": "sha512-/9xnaTTJcVoBtSSmrVyhtSvO3kbqS2ODoh2juEU72c3aYonNF0OMGiaz2gjukyKM2wBBYJP38S4JiE0Wfb5VMQ==", + "version": "7.22.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.22.11.tgz", + "integrity": "sha512-sSCbqZDBKHetvjSwpyWzhuHkmW5RummxJBVbYLkGkaiTOWGxml7SXt0iWa03bzxFIx7wOj3g/ILRd0RcJKBeSQ==", "dev": true, "dependencies": { "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-create-class-features-plugin": "^7.22.5", + "@babel/helper-create-class-features-plugin": "^7.22.11", "@babel/helper-plugin-utils": "^7.22.5", "@babel/plugin-syntax-private-property-in-object": "^7.14.5" }, @@ -1442,13 +1439,13 @@ } }, "node_modules/@babel/plugin-transform-regenerator": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.22.5.tgz", - "integrity": "sha512-rR7KePOE7gfEtNTh9Qw+iO3Q/e4DEsoQ+hdvM6QUDH7JRJ5qxq5AA52ZzBWbI5i9lfNuvySgOGP8ZN7LAmaiPw==", + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.22.10.tgz", + "integrity": "sha512-F28b1mDt8KcT5bUyJc/U9nwzw6cV+UmTeRlXYIl2TNqMMJif0Jeey9/RQ3C4NOd2zp0/TRsDns9ttj2L523rsw==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", - "regenerator-transform": "^0.15.1" + "regenerator-transform": "^0.15.2" }, "engines": { "node": ">=6.9.0" @@ -1473,17 +1470,17 @@ } }, "node_modules/@babel/plugin-transform-runtime": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.22.5.tgz", - "integrity": "sha512-bg4Wxd1FWeFx3daHFTWk1pkSWK/AyQuiyAoeZAOkAOUBjnZPH6KT7eMxouV47tQ6hl6ax2zyAWBdWZXbrvXlaw==", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.22.15.tgz", + "integrity": "sha512-tEVLhk8NRZSmwQ0DJtxxhTrCht1HVo8VaMzYT4w6lwyKBuHsgoioAUA7/6eT2fRfc5/23fuGdlwIxXhRVgWr4g==", "dev": true, "dependencies": { - "@babel/helper-module-imports": "^7.22.5", + "@babel/helper-module-imports": "^7.22.15", "@babel/helper-plugin-utils": "^7.22.5", - "babel-plugin-polyfill-corejs2": "^0.4.3", - "babel-plugin-polyfill-corejs3": "^0.8.1", - "babel-plugin-polyfill-regenerator": "^0.5.0", - "semver": "^6.3.0" + "babel-plugin-polyfill-corejs2": "^0.4.5", + "babel-plugin-polyfill-corejs3": "^0.8.3", + "babel-plugin-polyfill-regenerator": "^0.5.2", + "semver": "^6.3.1" }, "engines": { "node": ">=6.9.0" @@ -1492,6 +1489,15 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/plugin-transform-runtime/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, "node_modules/@babel/plugin-transform-shorthand-properties": { "version": "7.22.5", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.22.5.tgz", @@ -1569,9 +1575,9 @@ } }, "node_modules/@babel/plugin-transform-unicode-escapes": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.22.5.tgz", - "integrity": "sha512-biEmVg1IYB/raUO5wT1tgfacCef15Fbzhkx493D3urBI++6hpJ+RFG4SrWMn0NEZLfvilqKf3QDrRVZHo08FYg==", + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.22.10.tgz", + "integrity": "sha512-lRfaRKGZCBqDlRU3UIFovdp9c9mEvlylmpod0/OatICsSfuQ9YFthRo1tpTkGsklEefZdqlEFdY4A2dwTb6ohg==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" @@ -1632,17 +1638,17 @@ } }, "node_modules/@babel/preset-env": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.22.5.tgz", - "integrity": "sha512-fj06hw89dpiZzGZtxn+QybifF07nNiZjZ7sazs2aVDcysAZVGjW7+7iFYxg6GLNM47R/thYfLdrXc+2f11Vi9A==", + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.22.20.tgz", + "integrity": "sha512-11MY04gGC4kSzlPHRfvVkNAZhUxOvm7DCJ37hPDnUENwe06npjIRAfInEMTGSb4LZK5ZgDFkv5hw0lGebHeTyg==", "dev": true, "dependencies": { - "@babel/compat-data": "^7.22.5", - "@babel/helper-compilation-targets": "^7.22.5", + "@babel/compat-data": "^7.22.20", + "@babel/helper-compilation-targets": "^7.22.15", "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-validator-option": "^7.22.5", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.22.5", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.22.5", + "@babel/helper-validator-option": "^7.22.15", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.22.15", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.22.15", "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", "@babel/plugin-syntax-async-generators": "^7.8.4", "@babel/plugin-syntax-class-properties": "^7.12.13", @@ -1663,60 +1669,60 @@ "@babel/plugin-syntax-top-level-await": "^7.14.5", "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", "@babel/plugin-transform-arrow-functions": "^7.22.5", - "@babel/plugin-transform-async-generator-functions": "^7.22.5", + "@babel/plugin-transform-async-generator-functions": "^7.22.15", "@babel/plugin-transform-async-to-generator": "^7.22.5", "@babel/plugin-transform-block-scoped-functions": "^7.22.5", - "@babel/plugin-transform-block-scoping": "^7.22.5", + "@babel/plugin-transform-block-scoping": "^7.22.15", "@babel/plugin-transform-class-properties": "^7.22.5", - "@babel/plugin-transform-class-static-block": "^7.22.5", - "@babel/plugin-transform-classes": "^7.22.5", + "@babel/plugin-transform-class-static-block": "^7.22.11", + "@babel/plugin-transform-classes": "^7.22.15", "@babel/plugin-transform-computed-properties": "^7.22.5", - "@babel/plugin-transform-destructuring": "^7.22.5", + "@babel/plugin-transform-destructuring": "^7.22.15", "@babel/plugin-transform-dotall-regex": "^7.22.5", "@babel/plugin-transform-duplicate-keys": "^7.22.5", - "@babel/plugin-transform-dynamic-import": "^7.22.5", + "@babel/plugin-transform-dynamic-import": "^7.22.11", "@babel/plugin-transform-exponentiation-operator": "^7.22.5", - "@babel/plugin-transform-export-namespace-from": "^7.22.5", - "@babel/plugin-transform-for-of": "^7.22.5", + "@babel/plugin-transform-export-namespace-from": "^7.22.11", + "@babel/plugin-transform-for-of": "^7.22.15", "@babel/plugin-transform-function-name": "^7.22.5", - "@babel/plugin-transform-json-strings": "^7.22.5", + "@babel/plugin-transform-json-strings": "^7.22.11", "@babel/plugin-transform-literals": "^7.22.5", - "@babel/plugin-transform-logical-assignment-operators": "^7.22.5", + "@babel/plugin-transform-logical-assignment-operators": "^7.22.11", "@babel/plugin-transform-member-expression-literals": "^7.22.5", "@babel/plugin-transform-modules-amd": "^7.22.5", - "@babel/plugin-transform-modules-commonjs": "^7.22.5", - "@babel/plugin-transform-modules-systemjs": "^7.22.5", + "@babel/plugin-transform-modules-commonjs": "^7.22.15", + "@babel/plugin-transform-modules-systemjs": "^7.22.11", "@babel/plugin-transform-modules-umd": "^7.22.5", "@babel/plugin-transform-named-capturing-groups-regex": "^7.22.5", "@babel/plugin-transform-new-target": "^7.22.5", - "@babel/plugin-transform-nullish-coalescing-operator": "^7.22.5", - "@babel/plugin-transform-numeric-separator": "^7.22.5", - "@babel/plugin-transform-object-rest-spread": "^7.22.5", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.22.11", + "@babel/plugin-transform-numeric-separator": "^7.22.11", + "@babel/plugin-transform-object-rest-spread": "^7.22.15", "@babel/plugin-transform-object-super": "^7.22.5", - "@babel/plugin-transform-optional-catch-binding": "^7.22.5", - "@babel/plugin-transform-optional-chaining": "^7.22.5", - "@babel/plugin-transform-parameters": "^7.22.5", + "@babel/plugin-transform-optional-catch-binding": "^7.22.11", + "@babel/plugin-transform-optional-chaining": "^7.22.15", + "@babel/plugin-transform-parameters": "^7.22.15", "@babel/plugin-transform-private-methods": "^7.22.5", - "@babel/plugin-transform-private-property-in-object": "^7.22.5", + "@babel/plugin-transform-private-property-in-object": "^7.22.11", "@babel/plugin-transform-property-literals": "^7.22.5", - "@babel/plugin-transform-regenerator": "^7.22.5", + "@babel/plugin-transform-regenerator": "^7.22.10", "@babel/plugin-transform-reserved-words": "^7.22.5", "@babel/plugin-transform-shorthand-properties": "^7.22.5", "@babel/plugin-transform-spread": "^7.22.5", "@babel/plugin-transform-sticky-regex": "^7.22.5", "@babel/plugin-transform-template-literals": "^7.22.5", "@babel/plugin-transform-typeof-symbol": "^7.22.5", - "@babel/plugin-transform-unicode-escapes": "^7.22.5", + "@babel/plugin-transform-unicode-escapes": "^7.22.10", "@babel/plugin-transform-unicode-property-regex": "^7.22.5", "@babel/plugin-transform-unicode-regex": "^7.22.5", "@babel/plugin-transform-unicode-sets-regex": "^7.22.5", - "@babel/preset-modules": "^0.1.5", - "@babel/types": "^7.22.5", - "babel-plugin-polyfill-corejs2": "^0.4.3", - "babel-plugin-polyfill-corejs3": "^0.8.1", - "babel-plugin-polyfill-regenerator": "^0.5.0", - "core-js-compat": "^3.30.2", - "semver": "^6.3.0" + "@babel/preset-modules": "0.1.6-no-external-plugins", + "@babel/types": "^7.22.19", + "babel-plugin-polyfill-corejs2": "^0.4.5", + "babel-plugin-polyfill-corejs3": "^0.8.3", + "babel-plugin-polyfill-regenerator": "^0.5.2", + "core-js-compat": "^3.31.0", + "semver": "^6.3.1" }, "engines": { "node": ">=6.9.0" @@ -1725,20 +1731,27 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/preset-env/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, "node_modules/@babel/preset-modules": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz", - "integrity": "sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==", + "version": "0.1.6-no-external-plugins", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", + "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", - "@babel/plugin-transform-dotall-regex": "^7.4.4", "@babel/types": "^7.4.4", "esutils": "^2.0.2" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0" } }, "node_modules/@babel/regjsgen": { @@ -1748,26 +1761,26 @@ "dev": true }, "node_modules/@babel/runtime": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.22.5.tgz", - "integrity": "sha512-ecjvYlnAaZ/KVneE/OdKYBYfgXV3Ptu6zQWmgEF7vwKhQnvVS6bjMD2XYgj+SNvQ1GfK/pjgokfPkC/2CO8CuA==", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.22.15.tgz", + "integrity": "sha512-T0O+aa+4w0u06iNmapipJXMV4HoUir03hpx3/YqXXhu9xim3w+dVphjFWl1OH8NbZHw5Lbm9k45drDkgq2VNNA==", "dev": true, "dependencies": { - "regenerator-runtime": "^0.13.11" + "regenerator-runtime": "^0.14.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/template": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.5.tgz", - "integrity": "sha512-X7yV7eiwAxdj9k94NEylvbVHLiVG1nvzCV2EAowhxLTwODV1jl9UzZ48leOC0sH7OnuHrIkllaBgneUykIcZaw==", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz", + "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==", "dev": true, "dependencies": { - "@babel/code-frame": "^7.22.5", - "@babel/parser": "^7.22.5", - "@babel/types": "^7.22.5" + "@babel/code-frame": "^7.22.13", + "@babel/parser": "^7.22.15", + "@babel/types": "^7.22.15" }, "engines": { "node": ">=6.9.0" @@ -1795,13 +1808,13 @@ } }, "node_modules/@babel/types": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.22.5.tgz", - "integrity": "sha512-zo3MIHGOkPOfoRXitsgHLjEXmlDaD/5KU1Uzuc9GNiZPhSqVxVRtxuPaSBZDsYZ9qV88AjtMtWW7ww98loJ9KA==", + "version": "7.22.19", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.22.19.tgz", + "integrity": "sha512-P7LAw/LbojPzkgp5oznjE6tQEIWbp4PkkfrZDINTro9zgBRtI324/EYsiSI7lhPbpIQ+DCeR2NNmMWANGGfZsg==", "dev": true, "dependencies": { "@babel/helper-string-parser": "^7.22.5", - "@babel/helper-validator-identifier": "^7.22.5", + "@babel/helper-validator-identifier": "^7.22.19", "to-fast-properties": "^2.0.0" }, "engines": { @@ -1840,16 +1853,16 @@ } }, "node_modules/@jest/console": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.5.0.tgz", - "integrity": "sha512-NEpkObxPwyw/XxZVLPmAGKE89IQRp4puc6IQRPru6JKd1M3fW9v1xM1AnzIJE65hbCkzQAdnL8P47e9hzhiYLQ==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.7.0.tgz", + "integrity": "sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==", "dev": true, "dependencies": { - "@jest/types": "^29.5.0", + "@jest/types": "^29.6.3", "@types/node": "*", "chalk": "^4.0.0", - "jest-message-util": "^29.5.0", - "jest-util": "^29.5.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", "slash": "^3.0.0" }, "engines": { @@ -1927,37 +1940,37 @@ } }, "node_modules/@jest/core": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.5.0.tgz", - "integrity": "sha512-28UzQc7ulUrOQw1IsN/kv1QES3q2kkbl/wGslyhAclqZ/8cMdB5M68BffkIdSJgKBUt50d3hbwJ92XESlE7LiQ==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.7.0.tgz", + "integrity": "sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==", "dev": true, "dependencies": { - "@jest/console": "^29.5.0", - "@jest/reporters": "^29.5.0", - "@jest/test-result": "^29.5.0", - "@jest/transform": "^29.5.0", - "@jest/types": "^29.5.0", + "@jest/console": "^29.7.0", + "@jest/reporters": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", "@types/node": "*", "ansi-escapes": "^4.2.1", "chalk": "^4.0.0", "ci-info": "^3.2.0", "exit": "^0.1.2", "graceful-fs": "^4.2.9", - "jest-changed-files": "^29.5.0", - "jest-config": "^29.5.0", - "jest-haste-map": "^29.5.0", - "jest-message-util": "^29.5.0", - "jest-regex-util": "^29.4.3", - "jest-resolve": "^29.5.0", - "jest-resolve-dependencies": "^29.5.0", - "jest-runner": "^29.5.0", - "jest-runtime": "^29.5.0", - "jest-snapshot": "^29.5.0", - "jest-util": "^29.5.0", - "jest-validate": "^29.5.0", - "jest-watcher": "^29.5.0", + "jest-changed-files": "^29.7.0", + "jest-config": "^29.7.0", + "jest-haste-map": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-resolve-dependencies": "^29.7.0", + "jest-runner": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "jest-watcher": "^29.7.0", "micromatch": "^4.0.4", - "pretty-format": "^29.5.0", + "pretty-format": "^29.7.0", "slash": "^3.0.0", "strip-ansi": "^6.0.0" }, @@ -2044,89 +2057,89 @@ } }, "node_modules/@jest/environment": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.5.0.tgz", - "integrity": "sha512-5FXw2+wD29YU1d4I2htpRX7jYnAyTRjP2CsXQdo9SAM8g3ifxWPSV0HnClSn71xwctr0U3oZIIH+dtbfmnbXVQ==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.7.0.tgz", + "integrity": "sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==", "dev": true, "dependencies": { - "@jest/fake-timers": "^29.5.0", - "@jest/types": "^29.5.0", + "@jest/fake-timers": "^29.7.0", + "@jest/types": "^29.6.3", "@types/node": "*", - "jest-mock": "^29.5.0" + "jest-mock": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/@jest/expect": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.5.0.tgz", - "integrity": "sha512-PueDR2HGihN3ciUNGr4uelropW7rqUfTiOn+8u0leg/42UhblPxHkfoh0Ruu3I9Y1962P3u2DY4+h7GVTSVU6g==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.7.0.tgz", + "integrity": "sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==", "dev": true, "dependencies": { - "expect": "^29.5.0", - "jest-snapshot": "^29.5.0" + "expect": "^29.7.0", + "jest-snapshot": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/@jest/expect-utils": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.5.0.tgz", - "integrity": "sha512-fmKzsidoXQT2KwnrwE0SQq3uj8Z763vzR8LnLBwC2qYWEFpjX8daRsk6rHUM1QvNlEW/UJXNXm59ztmJJWs2Mg==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.7.0.tgz", + "integrity": "sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==", "dev": true, "dependencies": { - "jest-get-type": "^29.4.3" + "jest-get-type": "^29.6.3" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/@jest/fake-timers": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.5.0.tgz", - "integrity": "sha512-9ARvuAAQcBwDAqOnglWq2zwNIRUDtk/SCkp/ToGEhFv5r86K21l+VEs0qNTaXtyiY0lEePl3kylijSYJQqdbDg==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.7.0.tgz", + "integrity": "sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==", "dev": true, "dependencies": { - "@jest/types": "^29.5.0", + "@jest/types": "^29.6.3", "@sinonjs/fake-timers": "^10.0.2", "@types/node": "*", - "jest-message-util": "^29.5.0", - "jest-mock": "^29.5.0", - "jest-util": "^29.5.0" + "jest-message-util": "^29.7.0", + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/@jest/globals": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.5.0.tgz", - "integrity": "sha512-S02y0qMWGihdzNbUiqSAiKSpSozSuHX5UYc7QbnHP+D9Lyw8DgGGCinrN9uSuHPeKgSSzvPom2q1nAtBvUsvPQ==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.7.0.tgz", + "integrity": "sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==", "dev": true, "dependencies": { - "@jest/environment": "^29.5.0", - "@jest/expect": "^29.5.0", - "@jest/types": "^29.5.0", - "jest-mock": "^29.5.0" + "@jest/environment": "^29.7.0", + "@jest/expect": "^29.7.0", + "@jest/types": "^29.6.3", + "jest-mock": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/@jest/reporters": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.5.0.tgz", - "integrity": "sha512-D05STXqj/M8bP9hQNSICtPqz97u7ffGzZu+9XLucXhkOFBqKcXe04JLZOgIekOxdb73MAoBUFnqvf7MCpKk5OA==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.7.0.tgz", + "integrity": "sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==", "dev": true, "dependencies": { "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "^29.5.0", - "@jest/test-result": "^29.5.0", - "@jest/transform": "^29.5.0", - "@jest/types": "^29.5.0", - "@jridgewell/trace-mapping": "^0.3.15", + "@jest/console": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@jridgewell/trace-mapping": "^0.3.18", "@types/node": "*", "chalk": "^4.0.0", "collect-v8-coverage": "^1.0.0", @@ -2134,13 +2147,13 @@ "glob": "^7.1.3", "graceful-fs": "^4.2.9", "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-instrument": "^5.1.0", + "istanbul-lib-instrument": "^6.0.0", "istanbul-lib-report": "^3.0.0", "istanbul-lib-source-maps": "^4.0.0", "istanbul-reports": "^3.1.3", - "jest-message-util": "^29.5.0", - "jest-util": "^29.5.0", - "jest-worker": "^29.5.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "jest-worker": "^29.7.0", "slash": "^3.0.0", "string-length": "^4.0.1", "strip-ansi": "^6.0.0", @@ -2246,6 +2259,34 @@ "node": ">=8" } }, + "node_modules/@jest/reporters/node_modules/istanbul-lib-instrument": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.0.tgz", + "integrity": "sha512-x58orMzEVfzPUKqlbLd1hXCnySCxKdDKa6Rjg97CwuLLRI4g3FHTdnExu1OqffVFay6zeMW+T6/DowFLndWnIw==", + "dev": true, + "dependencies": { + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^7.5.4" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@jest/reporters/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/@jest/reporters/node_modules/minimatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", @@ -2258,6 +2299,21 @@ "node": "*" } }, + "node_modules/@jest/reporters/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/@jest/reporters/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -2270,25 +2326,31 @@ "node": ">=8" } }, + "node_modules/@jest/reporters/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, "node_modules/@jest/schemas": { - "version": "29.4.3", - "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.4.3.tgz", - "integrity": "sha512-VLYKXQmtmuEz6IxJsrZwzG9NvtkQsWNnWMsKxqWNu3+CnfzJQhp0WDDKWLVV9hLKr0l3SLLFRqcYHjhtyuDVxg==", + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", + "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", "dev": true, "dependencies": { - "@sinclair/typebox": "^0.25.16" + "@sinclair/typebox": "^0.27.8" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/@jest/source-map": { - "version": "29.4.3", - "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.4.3.tgz", - "integrity": "sha512-qyt/mb6rLyd9j1jUts4EQncvS6Yy3PM9HghnNv86QBlV+zdL2inCdK1tuVlL+J+lpiw2BI67qXOrX3UurBqQ1w==", + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.6.3.tgz", + "integrity": "sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==", "dev": true, "dependencies": { - "@jridgewell/trace-mapping": "^0.3.15", + "@jridgewell/trace-mapping": "^0.3.18", "callsites": "^3.0.0", "graceful-fs": "^4.2.9" }, @@ -2297,13 +2359,13 @@ } }, "node_modules/@jest/test-result": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.5.0.tgz", - "integrity": "sha512-fGl4rfitnbfLsrfx1uUpDEESS7zM8JdgZgOCQuxQvL1Sn/I6ijeAVQWGfXI9zb1i9Mzo495cIpVZhA0yr60PkQ==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.7.0.tgz", + "integrity": "sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==", "dev": true, "dependencies": { - "@jest/console": "^29.5.0", - "@jest/types": "^29.5.0", + "@jest/console": "^29.7.0", + "@jest/types": "^29.6.3", "@types/istanbul-lib-coverage": "^2.0.0", "collect-v8-coverage": "^1.0.0" }, @@ -2312,14 +2374,14 @@ } }, "node_modules/@jest/test-sequencer": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.5.0.tgz", - "integrity": "sha512-yPafQEcKjkSfDXyvtgiV4pevSeyuA6MQr6ZIdVkWJly9vkqjnFfcfhRQqpD5whjoU8EORki752xQmjaqoFjzMQ==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.7.0.tgz", + "integrity": "sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==", "dev": true, "dependencies": { - "@jest/test-result": "^29.5.0", + "@jest/test-result": "^29.7.0", "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.5.0", + "jest-haste-map": "^29.7.0", "slash": "^3.0.0" }, "engines": { @@ -2327,22 +2389,22 @@ } }, "node_modules/@jest/transform": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.5.0.tgz", - "integrity": "sha512-8vbeZWqLJOvHaDfeMuoHITGKSz5qWc9u04lnWrQE3VyuSw604PzQM824ZeX9XSjUCeDiE3GuxZe5UKa8J61NQw==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.7.0.tgz", + "integrity": "sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==", "dev": true, "dependencies": { "@babel/core": "^7.11.6", - "@jest/types": "^29.5.0", - "@jridgewell/trace-mapping": "^0.3.15", + "@jest/types": "^29.6.3", + "@jridgewell/trace-mapping": "^0.3.18", "babel-plugin-istanbul": "^6.1.1", "chalk": "^4.0.0", "convert-source-map": "^2.0.0", "fast-json-stable-stringify": "^2.1.0", "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.5.0", - "jest-regex-util": "^29.4.3", - "jest-util": "^29.5.0", + "jest-haste-map": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-util": "^29.7.0", "micromatch": "^4.0.4", "pirates": "^4.0.4", "slash": "^3.0.0", @@ -2429,12 +2491,12 @@ } }, "node_modules/@jest/types": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.5.0.tgz", - "integrity": "sha512-qbu7kN6czmVRc3xWFQcAN03RAUamgppVUdXrvl1Wr3jlNF93o9mJbGcDWrwGB6ht44u7efB1qCFgVQmca24Uog==", + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz", + "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==", "dev": true, "dependencies": { - "@jest/schemas": "^29.4.3", + "@jest/schemas": "^29.6.3", "@types/istanbul-lib-coverage": "^2.0.0", "@types/istanbul-reports": "^3.0.0", "@types/node": "*", @@ -2553,13 +2615,13 @@ "dev": true }, "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.17", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz", - "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==", + "version": "0.3.19", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.19.tgz", + "integrity": "sha512-kf37QtfW+Hwx/buWGMPcR60iF9ziHa6r/CZJIHbmcm4+0qrXiVdxegAH0F6yddEVQ7zdkjcGCgCzUu+BcbhQxw==", "dev": true, "dependencies": { - "@jridgewell/resolve-uri": "3.1.0", - "@jridgewell/sourcemap-codec": "1.4.14" + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" } }, "node_modules/@kurkle/color": { @@ -2669,33 +2731,33 @@ "dev": true }, "node_modules/@sinclair/typebox": { - "version": "0.25.21", - "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.25.21.tgz", - "integrity": "sha512-gFukHN4t8K4+wVC+ECqeqwzBDeFeTzBXroBTqE6vcWrQGbEUpHO7LYdG0f4xnvYq4VOEwITSlHlp0JBAIFMS/g==", + "version": "0.27.8", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", + "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", "dev": true }, "node_modules/@sinonjs/commons": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-2.0.0.tgz", - "integrity": "sha512-uLa0j859mMrg2slwQYdO/AkrOfmH+X6LTVmNTS9CqexuE2IvVORIkSpJLqePAbEnKJ77aMmCwr1NUZ57120Xcg==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.0.tgz", + "integrity": "sha512-jXBtWAF4vmdNmZgD5FoKsVLv3rPgDnLgPbU84LIJ3otV44vJlDRokVng5v8NFJdCf/da9legHcKaRuZs4L7faA==", "dev": true, "dependencies": { "type-detect": "4.0.8" } }, "node_modules/@sinonjs/fake-timers": { - "version": "10.0.2", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.0.2.tgz", - "integrity": "sha512-SwUDyjWnah1AaNl7kxsa7cfLhlTYoiyhDAIgyh+El30YvXs/o7OLXpYH88Zdhyx9JExKrmHDJ+10bwIcY80Jmw==", + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz", + "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==", "dev": true, "dependencies": { - "@sinonjs/commons": "^2.0.0" + "@sinonjs/commons": "^3.0.0" } }, "node_modules/@types/babel__core": { - "version": "7.20.0", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.0.tgz", - "integrity": "sha512-+n8dL/9GWblDO0iU6eZAwEIJVr5DWigtle+Q6HLOrh/pdbXOhOtqzq8VPPE2zvNJzSKY4vH/z3iT3tn0A3ypiQ==", + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.2.tgz", + "integrity": "sha512-pNpr1T1xLUc2l3xJKuPtsEky3ybxN3m4fJkknfIpTCTfIZCDW57oAg+EfCgIIp2rvCe0Wn++/FfodDS4YXxBwA==", "dev": true, "dependencies": { "@babel/parser": "^7.20.7", @@ -2706,18 +2768,18 @@ } }, "node_modules/@types/babel__generator": { - "version": "7.6.4", - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.4.tgz", - "integrity": "sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==", + "version": "7.6.5", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.5.tgz", + "integrity": "sha512-h9yIuWbJKdOPLJTbmSpPzkF67e659PbQDba7ifWm5BJ8xTv+sDmS7rFmywkWOvXedGTivCdeGSIIX8WLcRTz8w==", "dev": true, "dependencies": { "@babel/types": "^7.0.0" } }, "node_modules/@types/babel__template": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.1.tgz", - "integrity": "sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==", + "version": "7.4.2", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.2.tgz", + "integrity": "sha512-/AVzPICMhMOMYoSx9MoKpGDKdBRsIXMNByh1PXSZoa+v6ZoLa8xxtsT/uLQ/NJm0XVAWl/BvId4MlDeXJaeIZQ==", "dev": true, "dependencies": { "@babel/parser": "^7.1.0", @@ -2725,12 +2787,12 @@ } }, "node_modules/@types/babel__traverse": { - "version": "7.18.3", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.18.3.tgz", - "integrity": "sha512-1kbcJ40lLB7MHsj39U4Sh1uTd2E7rLEa79kmDpI6cy+XiXsteB3POdQomoq4FxszMrO3ZYchkhYJw7A2862b3w==", + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.2.tgz", + "integrity": "sha512-ojlGK1Hsfce93J0+kn3H5R73elidKUaZonirN33GSmgTUMpzI/MIFfSpF3haANe3G1bEBS9/9/QEqwTzwqFsKw==", "dev": true, "dependencies": { - "@babel/types": "^7.3.0" + "@babel/types": "^7.20.7" } }, "node_modules/@types/graceful-fs": { @@ -2767,9 +2829,9 @@ } }, "node_modules/@types/jest": { - "version": "29.5.2", - "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.5.2.tgz", - "integrity": "sha512-mSoZVJF5YzGVCk+FsDxzDuH7s+SCkzrgKZzf0Z0T2WudhBUPoF6ktoTPC4R0ZoCPCV5xUvuU6ias5NvxcBcMMg==", + "version": "29.5.5", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.5.5.tgz", + "integrity": "sha512-ebylz2hnsWR9mYvmBFbXJXr+33UPc4+ZdxyDXh5w0FlPBTfCVN3wPL+kuOiQt3xvrK419v7XWeAs+AeOksafXg==", "dev": true, "dependencies": { "expect": "^29.0.0", @@ -2782,12 +2844,6 @@ "integrity": "sha512-DHQpWGjyQKSHj3ebjFI/wRKcqQcdR+MoFBygntYOZytCqNfkd2ZC4ARDJ2DQqhjH5p85Nnd3jhUJIXrszFX/JA==", "dev": true }, - "node_modules/@types/prettier": { - "version": "2.7.2", - "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.2.tgz", - "integrity": "sha512-KufADq8uQqo1pYKVIYzfKbJfBAc0sOeXqGbFaSpv8MRmC/zXgowNZmFcbngndGk922QDmOASEXUZCaY48gs4cg==", - "dev": true - }, "node_modules/@types/stack-utils": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", @@ -2795,15 +2851,15 @@ "dev": true }, "node_modules/@types/tough-cookie": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-4.0.2.tgz", - "integrity": "sha512-Q5vtl1W5ue16D+nIaW8JWebSSraJVlK+EthKn7e7UcD4KWsaSJ8BqGPXNaPghgtcn/fhvrN17Tv8ksUsQpiplw==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-4.0.3.tgz", + "integrity": "sha512-THo502dA5PzG/sfQH+42Lw3fvmYkceefOspdCwpHRul8ik2Jv1K8I5OZz1AT3/rs46kwgMCe9bSBmDLYkkOMGg==", "dev": true }, "node_modules/@types/uuid": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-9.0.2.tgz", - "integrity": "sha512-kNnC1GFBLuhImSnV7w4njQkUiJi0ZXUycu1rUaouPqiKlXkh77JKgdRnTAp1x5eBwcIwbtI+3otwzuIDEuDoxQ==", + "version": "9.0.4", + "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-9.0.4.tgz", + "integrity": "sha512-zAuJWQflfx6dYJM62vna+Sn5aeSWhh3OB+wfUEACNcqUSc0AGc5JKl+ycL1vrH7frGTXhJchYjE1Hak8L819dA==", "dev": true }, "node_modules/@types/yargs": { @@ -2828,15 +2884,15 @@ "dev": true }, "node_modules/agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.0.tgz", + "integrity": "sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==", "dev": true, "dependencies": { - "debug": "4" + "debug": "^4.3.4" }, "engines": { - "node": ">= 6.0.0" + "node": ">= 14" } }, "node_modules/ajv": { @@ -2938,9 +2994,9 @@ } }, "node_modules/aws-sdk": { - "version": "2.1398.0", - "resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1398.0.tgz", - "integrity": "sha512-jiHAhKPPKDHZdwsbY9FD/WfX9RfQ7+7eKvXyXr7BYf0JIShok4TWan/iLdNWCtU0BhXYl+bfG9W0pG4rwJ9Ivg==", + "version": "2.1462.0", + "resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1462.0.tgz", + "integrity": "sha512-gEcp/YWUp0zrM/LujI3cTLbOTK6XLwGSHWQII57jjRvjsIMacLomnIcd7fGKSfREAIHr5saexISRsnXhfI+Vgw==", "dev": true, "dependencies": { "buffer": "4.9.2", @@ -2967,10 +3023,23 @@ "uuid": "dist/bin/uuid" } }, + "node_modules/aws-sdk/node_modules/xml2js": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.5.0.tgz", + "integrity": "sha512-drPFnkQJik/O+uPKpqSgr22mpuFHqKdbS835iAQrUC73L2F5WkboIRd63ai/2Yg6I1jzifPFKH2NTK+cfglkIA==", + "dev": true, + "dependencies": { + "sax": ">=0.6.0", + "xmlbuilder": "~11.0.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, "node_modules/axios": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.4.0.tgz", - "integrity": "sha512-S4XCWMEmzvo64T9GfvQDOXgYRDJ/wsSZc7Jvdgx5u1sd0JwsuPLqb3SYmusag+edF6ziyMensPVqLTSc1PiSEA==", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.5.0.tgz", + "integrity": "sha512-D4DdjDo5CY50Qms0qGQTTw6Q44jl7zRwY7bthds06pUGfChBCTcQs+N743eFWGEd6pRTMd6A+I87aWyFV5wiZQ==", "dev": true, "dependencies": { "follow-redirects": "^1.15.0", @@ -2979,12 +3048,12 @@ } }, "node_modules/axios-cookiejar-support": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/axios-cookiejar-support/-/axios-cookiejar-support-4.0.6.tgz", - "integrity": "sha512-lWDhgM6bc2xYAsHkXEhceLpTu9ytAeIz1VSuL5FoUgGx2lqcMNbNxTD9Hm4x5c8JF5Me0HfNrb06fhEGMC30mQ==", + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/axios-cookiejar-support/-/axios-cookiejar-support-4.0.7.tgz", + "integrity": "sha512-9vpE3y/a2l2Vs2XEJE4L2z0GWnlpJ4Xj+kDaoCtrpPfS1J3oikXBrxRJX6H62/ZcelOGe+519yW7mqXCIoPXuw==", "dev": true, "dependencies": { - "http-cookie-agent": "^5.0.2" + "http-cookie-agent": "^5.0.4" }, "engines": { "node": ">=14.18.0 <15.0.0 || >=16.0.0" @@ -2998,15 +3067,15 @@ } }, "node_modules/babel-jest": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.5.0.tgz", - "integrity": "sha512-mA4eCDh5mSo2EcA9xQjVTpmbbNk32Zb3Q3QFQsNhaK56Q+yoXowzFodLux30HRgyOho5rsQ6B0P9QpMkvvnJ0Q==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.7.0.tgz", + "integrity": "sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==", "dev": true, "dependencies": { - "@jest/transform": "^29.5.0", + "@jest/transform": "^29.7.0", "@types/babel__core": "^7.1.14", "babel-plugin-istanbul": "^6.1.1", - "babel-preset-jest": "^29.5.0", + "babel-preset-jest": "^29.6.3", "chalk": "^4.0.0", "graceful-fs": "^4.2.9", "slash": "^3.0.0" @@ -3105,9 +3174,9 @@ } }, "node_modules/babel-plugin-jest-hoist": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.5.0.tgz", - "integrity": "sha512-zSuuuAlTMT4mzLj2nPnUm6fsE6270vdOfnpbJ+RmruU75UhLFvL0N2NgI7xpeS7NaB6hGqmd5pVpGTDYvi4Q3w==", + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz", + "integrity": "sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==", "dev": true, "dependencies": { "@babel/template": "^7.3.3", @@ -3136,42 +3205,51 @@ } }, "node_modules/babel-plugin-polyfill-corejs2": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.3.tgz", - "integrity": "sha512-bM3gHc337Dta490gg+/AseNB9L4YLHxq1nGKZZSHbhXv4aTYU2MD2cjza1Ru4S6975YLTaL1K8uJf6ukJhhmtw==", + "version": "0.4.5", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.5.tgz", + "integrity": "sha512-19hwUH5FKl49JEsvyTcoHakh6BE0wgXLLptIyKZ3PijHc/Ci521wygORCUCCred+E/twuqRyAkE02BAWPmsHOg==", "dev": true, "dependencies": { - "@babel/compat-data": "^7.17.7", - "@babel/helper-define-polyfill-provider": "^0.4.0", - "semver": "^6.1.1" + "@babel/compat-data": "^7.22.6", + "@babel/helper-define-polyfill-provider": "^0.4.2", + "semver": "^6.3.1" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-polyfill-corejs2/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" } }, "node_modules/babel-plugin-polyfill-corejs3": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.1.tgz", - "integrity": "sha512-ikFrZITKg1xH6pLND8zT14UPgjKHiGLqex7rGEZCH2EvhsneJaJPemmpQaIZV5AL03II+lXylw3UmddDK8RU5Q==", + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.3.tgz", + "integrity": "sha512-z41XaniZL26WLrvjy7soabMXrfPWARN25PZoriDEiLMxAp50AUW3t35BGQUMg5xK3UrpVTtagIDklxYa+MhiNA==", "dev": true, "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.4.0", - "core-js-compat": "^3.30.1" + "@babel/helper-define-polyfill-provider": "^0.4.2", + "core-js-compat": "^3.31.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, "node_modules/babel-plugin-polyfill-regenerator": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.0.tgz", - "integrity": "sha512-hDJtKjMLVa7Z+LwnTCxoDLQj6wdc+B8dun7ayF2fYieI6OzfuvcLMB32ihJZ4UhCBwNYGl5bg/x/P9cMdnkc2g==", + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.2.tgz", + "integrity": "sha512-tAlOptU0Xj34V1Y2PNTL4Y0FOJMDB6bZmoW39FeCQIhigGLkqu3Fj6uiXpxIf6Ij274ENdYx64y6Au+ZKlb1IA==", "dev": true, "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.4.0" + "@babel/helper-define-polyfill-provider": "^0.4.2" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, "node_modules/babel-preset-current-node-syntax": { @@ -3198,12 +3276,12 @@ } }, "node_modules/babel-preset-jest": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.5.0.tgz", - "integrity": "sha512-JOMloxOqdiBSxMAzjRaH023/vvcaSaec49zvg+2LmNsktC7ei39LTJGw02J+9uUtTZUq6xbLyJ4dxe9sSmIuAg==", + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz", + "integrity": "sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==", "dev": true, "dependencies": { - "babel-plugin-jest-hoist": "^29.5.0", + "babel-plugin-jest-hoist": "^29.6.3", "babel-preset-current-node-syntax": "^1.0.0" }, "engines": { @@ -3292,9 +3370,9 @@ "dev": true }, "node_modules/browserslist": { - "version": "4.21.5", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.5.tgz", - "integrity": "sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==", + "version": "4.21.11", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.11.tgz", + "integrity": "sha512-xn1UXOKUz7DjdGlg9RrUr0GGiWzI97UQJnugHtH0OLDfJB7jMgoIkYvRIEO1l9EeEERVqeqLYOcFBW9ldjypbQ==", "dev": true, "funding": [ { @@ -3304,13 +3382,17 @@ { "type": "tidelift", "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" } ], "dependencies": { - "caniuse-lite": "^1.0.30001449", - "electron-to-chromium": "^1.4.284", - "node-releases": "^2.0.8", - "update-browserslist-db": "^1.0.10" + "caniuse-lite": "^1.0.30001538", + "electron-to-chromium": "^1.4.526", + "node-releases": "^2.0.13", + "update-browserslist-db": "^1.0.13" }, "bin": { "browserslist": "cli.js" @@ -3504,9 +3586,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001449", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001449.tgz", - "integrity": "sha512-CPB+UL9XMT/Av+pJxCKGhdx+yg1hzplvFJQlJ2n68PyQGMz9L/E2zCyLdOL8uasbouTUgnPl+y0tccI/se+BEw==", + "version": "1.0.30001538", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001538.tgz", + "integrity": "sha512-HWJnhnID+0YMtGlzcp3T9drmBJUVDchPJ08tpUGFLs9CYlwWPH2uLgpHn8fND5pCgXVtnGS3H4QR9XLMHVNkHw==", "dev": true, "funding": [ { @@ -3516,6 +3598,10 @@ { "type": "tidelift", "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" } ] }, @@ -3581,9 +3667,9 @@ } }, "node_modules/cjs-module-lexer": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz", - "integrity": "sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==", + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.3.tgz", + "integrity": "sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ==", "dev": true }, "node_modules/client-oauth2": { @@ -3678,12 +3764,12 @@ "dev": true }, "node_modules/core-js-compat": { - "version": "3.31.0", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.31.0.tgz", - "integrity": "sha512-hM7YCu1cU6Opx7MXNu0NuumM0ezNeAeRKadixyiQELWY3vT3De9S4J5ZBMraWV2vZnrE1Cirl0GtFtDtMUXzPw==", + "version": "3.32.2", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.32.2.tgz", + "integrity": "sha512-+GjlguTDINOijtVRUxrQOv3kfu9rl+qPNdX2LTbJ/ZyVTuxK+ksVSAGX1nHstu4hrv1En/uPTtWgq2gI5wt4AQ==", "dev": true, "dependencies": { - "browserslist": "^4.21.5" + "browserslist": "^4.21.10" }, "funding": { "type": "opencollective", @@ -3696,6 +3782,97 @@ "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", "dev": true }, + "node_modules/create-jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/create-jest/-/create-jest-29.7.0.tgz", + "integrity": "sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==", + "dev": true, + "dependencies": { + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-config": "^29.7.0", + "jest-util": "^29.7.0", + "prompts": "^2.0.1" + }, + "bin": { + "create-jest": "bin/create-jest.js" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/create-jest/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/create-jest/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/create-jest/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/create-jest/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/create-jest/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/create-jest/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/cross-spawn": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-4.0.2.tgz", @@ -3752,10 +3929,18 @@ } }, "node_modules/dedent": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", - "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==", - "dev": true + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.5.1.tgz", + "integrity": "sha512-+LxW+KLWxu3HW3M2w2ympwtqPrqYRzU8fqi6Fhd18fBALe15blJPI/I4+UHveMVG6lJqB4JNd4UG0S5cnVHwIg==", + "dev": true, + "peerDependencies": { + "babel-plugin-macros": "^3.1.0" + }, + "peerDependenciesMeta": { + "babel-plugin-macros": { + "optional": true + } + } }, "node_modules/deepmerge": { "version": "4.3.1", @@ -3794,9 +3979,9 @@ } }, "node_modules/detox": { - "version": "20.9.1", - "resolved": "https://registry.npmjs.org/detox/-/detox-20.9.1.tgz", - "integrity": "sha512-o7x9fHhOoVDZK1069RgefqIxY0B53eAnk7N5/3D8qEa8N0YmvylqzAqeYVtnzHYkveZb1pkcruzKC9jomWTEnw==", + "version": "20.11.4", + "resolved": "https://registry.npmjs.org/detox/-/detox-20.11.4.tgz", + "integrity": "sha512-P48KAtK8qIDOxJKUl4q/syPkuHz67kAeFlNodBZg5aO4hJiH+RsbEkQfJSYkTCeZV800EcmUQwZK2M5amLoYaw==", "dev": true, "hasInstallScript": true, "dependencies": { @@ -4009,18 +4194,18 @@ } }, "node_modules/diff-sequences": { - "version": "29.4.3", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.4.3.tgz", - "integrity": "sha512-ofrBgwpPhCD85kMKtE9RYFFq6OC1A89oW2vvgWZNCwxrUpRUILopY7lsYyMDSjc8g6U6aiO0Qubg6r4Wgt5ZnA==", + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", + "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", "dev": true, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/diff2html": { - "version": "3.4.31", - "resolved": "https://registry.npmjs.org/diff2html/-/diff2html-3.4.31.tgz", - "integrity": "sha512-bgL4kUUChpBqyFykgalwXRXbeW+zCkGmoH4Ftw6+WFP5JccBUJPNMapfX2WDEb+KOLflrE7eJwvb5r8+zutetw==", + "version": "3.4.43", + "resolved": "https://registry.npmjs.org/diff2html/-/diff2html-3.4.43.tgz", + "integrity": "sha512-cBiJKvyhY3bv+q9VHA7YyNdPk1PA+P9lArpp0MJlcpn1x4eiXYtK3ILNpcHXfgPTCdjjCilGvX9qBelGWtyMCg==", "dev": true, "dependencies": { "diff": "5.1.0", @@ -4030,7 +4215,7 @@ "node": ">=12" }, "optionalDependencies": { - "highlight.js": "11.6.0" + "highlight.js": "11.8.0" } }, "node_modules/dtrace-provider": { @@ -4066,9 +4251,9 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.4.284", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz", - "integrity": "sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==", + "version": "1.4.527", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.527.tgz", + "integrity": "sha512-EafxEiEDzk2aLrdbtVczylHflHdHkNrpGNHIgDyA63sUQLQVS2ayj2hPw3RsVB42qkwURH+T2OxV7kGPUuYszA==", "dev": true }, "node_modules/emittery": { @@ -4218,16 +4403,16 @@ } }, "node_modules/expect": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/expect/-/expect-29.5.0.tgz", - "integrity": "sha512-yM7xqUrCO2JdpFo4XpM82t+PJBFybdqoQuJLDGeDX2ij8NZzqRHyu3Hp188/JX7SWqud+7t4MUdvcgGBICMHZg==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/expect/-/expect-29.7.0.tgz", + "integrity": "sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==", "dev": true, "dependencies": { - "@jest/expect-utils": "^29.5.0", - "jest-get-type": "^29.4.3", - "jest-matcher-utils": "^29.5.0", - "jest-message-util": "^29.5.0", - "jest-util": "^29.5.0" + "@jest/expect-utils": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" @@ -4578,9 +4763,9 @@ } }, "node_modules/highlight.js": { - "version": "11.6.0", - "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-11.6.0.tgz", - "integrity": "sha512-ig1eqDzJaB0pqEvlPVIpSSyMaO92bH1N2rJpLMN/nX396wTpDA4Eq0uK+7I/2XG17pFaaKE0kjV/XPeGt7Evjw==", + "version": "11.8.0", + "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-11.8.0.tgz", + "integrity": "sha512-MedQhoqVdr0U6SSnWPzfiadUcDHfN/Wzq25AkXiQv9oiOO/sG0S7XkvpFIqWBl9Yq1UYyYOOVORs5UW2XlPyzg==", "dev": true, "optional": true, "engines": { @@ -4623,12 +4808,12 @@ "dev": true }, "node_modules/http-cookie-agent": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/http-cookie-agent/-/http-cookie-agent-5.0.2.tgz", - "integrity": "sha512-BiBmZyIMGl5mLKmY7KH2uCVlcNUl1jexjdtWXFCUF4DFOrNZg1c5iPPTzWDzU7Ngfb6fB03DPpJQ80KQWmycsg==", + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/http-cookie-agent/-/http-cookie-agent-5.0.4.tgz", + "integrity": "sha512-OtvikW69RvfyP6Lsequ0fN5R49S+8QcS9zwd58k6VSr6r57T8G29BkPdyrBcSwLq6ExLs9V+rBlfxu7gDstJag==", "dev": true, "dependencies": { - "agent-base": "^6.0.2" + "agent-base": "^7.1.0" }, "engines": { "node": ">=14.18.0 <15.0.0 || >=16.0.0" @@ -5009,15 +5194,15 @@ } }, "node_modules/jest": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest/-/jest-29.5.0.tgz", - "integrity": "sha512-juMg3he2uru1QoXX078zTa7pO85QyB9xajZc6bU+d9yEGwrKX6+vGmJQ3UdVZsvTEUARIdObzH68QItim6OSSQ==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest/-/jest-29.7.0.tgz", + "integrity": "sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==", "dev": true, "dependencies": { - "@jest/core": "^29.5.0", - "@jest/types": "^29.5.0", + "@jest/core": "^29.7.0", + "@jest/types": "^29.6.3", "import-local": "^3.0.2", - "jest-cli": "^29.5.0" + "jest-cli": "^29.7.0" }, "bin": { "jest": "bin/jest.js" @@ -5035,12 +5220,13 @@ } }, "node_modules/jest-changed-files": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.5.0.tgz", - "integrity": "sha512-IFG34IUMUaNBIxjQXF/iu7g6EcdMrGRRxaUSw92I/2g2YC6vCdTltl4nHvt7Ci5nSJwXIkCu8Ka1DKF+X7Z1Ag==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.7.0.tgz", + "integrity": "sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==", "dev": true, "dependencies": { "execa": "^5.0.0", + "jest-util": "^29.7.0", "p-limit": "^3.1.0" }, "engines": { @@ -5048,28 +5234,28 @@ } }, "node_modules/jest-circus": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.5.0.tgz", - "integrity": "sha512-gq/ongqeQKAplVxqJmbeUOJJKkW3dDNPY8PjhJ5G0lBRvu0e3EWGxGy5cI4LAGA7gV2UHCtWBI4EMXK8c9nQKA==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.7.0.tgz", + "integrity": "sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==", "dev": true, "dependencies": { - "@jest/environment": "^29.5.0", - "@jest/expect": "^29.5.0", - "@jest/test-result": "^29.5.0", - "@jest/types": "^29.5.0", + "@jest/environment": "^29.7.0", + "@jest/expect": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", "@types/node": "*", "chalk": "^4.0.0", "co": "^4.6.0", - "dedent": "^0.7.0", + "dedent": "^1.0.0", "is-generator-fn": "^2.0.0", - "jest-each": "^29.5.0", - "jest-matcher-utils": "^29.5.0", - "jest-message-util": "^29.5.0", - "jest-runtime": "^29.5.0", - "jest-snapshot": "^29.5.0", - "jest-util": "^29.5.0", + "jest-each": "^29.7.0", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", "p-limit": "^3.1.0", - "pretty-format": "^29.5.0", + "pretty-format": "^29.7.0", "pure-rand": "^6.0.0", "slash": "^3.0.0", "stack-utils": "^2.0.3" @@ -5149,22 +5335,21 @@ } }, "node_modules/jest-cli": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.5.0.tgz", - "integrity": "sha512-L1KcP1l4HtfwdxXNFCL5bmUbLQiKrakMUriBEcc1Vfz6gx31ORKdreuWvmQVBit+1ss9NNR3yxjwfwzZNdQXJw==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.7.0.tgz", + "integrity": "sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==", "dev": true, "dependencies": { - "@jest/core": "^29.5.0", - "@jest/test-result": "^29.5.0", - "@jest/types": "^29.5.0", + "@jest/core": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", "chalk": "^4.0.0", + "create-jest": "^29.7.0", "exit": "^0.1.2", - "graceful-fs": "^4.2.9", "import-local": "^3.0.2", - "jest-config": "^29.5.0", - "jest-util": "^29.5.0", - "jest-validate": "^29.5.0", - "prompts": "^2.0.1", + "jest-config": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", "yargs": "^17.3.1" }, "bin": { @@ -5252,50 +5437,32 @@ "node": ">=8" } }, - "node_modules/jest-cli/node_modules/yargs": { - "version": "17.7.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.1.tgz", - "integrity": "sha512-cwiTb08Xuv5fqF4AovYacTFNxk62th7LKJ6BL9IGUpTJrWoU7/7WdQGTP2SjKf1dUNBGzDd28p/Yfs/GI6JrLw==", - "dev": true, - "dependencies": { - "cliui": "^8.0.1", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.1.1" - }, - "engines": { - "node": ">=12" - } - }, "node_modules/jest-config": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.5.0.tgz", - "integrity": "sha512-kvDUKBnNJPNBmFFOhDbm59iu1Fii1Q6SxyhXfvylq3UTHbg6o7j/g8k2dZyXWLvfdKB1vAPxNZnMgtKJcmu3kA==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.7.0.tgz", + "integrity": "sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==", "dev": true, "dependencies": { "@babel/core": "^7.11.6", - "@jest/test-sequencer": "^29.5.0", - "@jest/types": "^29.5.0", - "babel-jest": "^29.5.0", + "@jest/test-sequencer": "^29.7.0", + "@jest/types": "^29.6.3", + "babel-jest": "^29.7.0", "chalk": "^4.0.0", "ci-info": "^3.2.0", "deepmerge": "^4.2.2", "glob": "^7.1.3", "graceful-fs": "^4.2.9", - "jest-circus": "^29.5.0", - "jest-environment-node": "^29.5.0", - "jest-get-type": "^29.4.3", - "jest-regex-util": "^29.4.3", - "jest-resolve": "^29.5.0", - "jest-runner": "^29.5.0", - "jest-util": "^29.5.0", - "jest-validate": "^29.5.0", + "jest-circus": "^29.7.0", + "jest-environment-node": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-runner": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", "micromatch": "^4.0.4", "parse-json": "^5.2.0", - "pretty-format": "^29.5.0", + "pretty-format": "^29.7.0", "slash": "^3.0.0", "strip-json-comments": "^3.1.1" }, @@ -5428,15 +5595,15 @@ } }, "node_modules/jest-diff": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.5.0.tgz", - "integrity": "sha512-LtxijLLZBduXnHSniy0WMdaHjmQnt3g5sa16W4p0HqukYTTsyTW3GD1q41TyGl5YFXj/5B2U6dlh5FM1LIMgxw==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz", + "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==", "dev": true, "dependencies": { "chalk": "^4.0.0", - "diff-sequences": "^29.4.3", - "jest-get-type": "^29.4.3", - "pretty-format": "^29.5.0" + "diff-sequences": "^29.6.3", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" @@ -5513,9 +5680,9 @@ } }, "node_modules/jest-docblock": { - "version": "29.4.3", - "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.4.3.tgz", - "integrity": "sha512-fzdTftThczeSD9nZ3fzA/4KkHtnmllawWrXO69vtI+L9WjEIuXWs4AmyME7lN5hU7dB0sHhuPfcKofRsUb/2Fg==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.7.0.tgz", + "integrity": "sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==", "dev": true, "dependencies": { "detect-newline": "^3.0.0" @@ -5525,16 +5692,16 @@ } }, "node_modules/jest-each": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.5.0.tgz", - "integrity": "sha512-HM5kIJ1BTnVt+DQZ2ALp3rzXEl+g726csObrW/jpEGl+CDSSQpOJJX2KE/vEg8cxcMXdyEPu6U4QX5eruQv5hA==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.7.0.tgz", + "integrity": "sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==", "dev": true, "dependencies": { - "@jest/types": "^29.5.0", + "@jest/types": "^29.6.3", "chalk": "^4.0.0", - "jest-get-type": "^29.4.3", - "jest-util": "^29.5.0", - "pretty-format": "^29.5.0" + "jest-get-type": "^29.6.3", + "jest-util": "^29.7.0", + "pretty-format": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" @@ -5611,46 +5778,46 @@ } }, "node_modules/jest-environment-node": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.5.0.tgz", - "integrity": "sha512-ExxuIK/+yQ+6PRGaHkKewYtg6hto2uGCgvKdb2nfJfKXgZ17DfXjvbZ+jA1Qt9A8EQSfPnt5FKIfnOO3u1h9qw==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.7.0.tgz", + "integrity": "sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==", "dev": true, "dependencies": { - "@jest/environment": "^29.5.0", - "@jest/fake-timers": "^29.5.0", - "@jest/types": "^29.5.0", + "@jest/environment": "^29.7.0", + "@jest/fake-timers": "^29.7.0", + "@jest/types": "^29.6.3", "@types/node": "*", - "jest-mock": "^29.5.0", - "jest-util": "^29.5.0" + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/jest-get-type": { - "version": "29.4.3", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.4.3.tgz", - "integrity": "sha512-J5Xez4nRRMjk8emnTpWrlkyb9pfRQQanDrvWHhsR1+VUfbwxi30eVcZFlcdGInRibU4G5LwHXpI7IRHU0CY+gg==", + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", + "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", "dev": true, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/jest-haste-map": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.5.0.tgz", - "integrity": "sha512-IspOPnnBro8YfVYSw6yDRKh/TiCdRngjxeacCps1cQ9cgVN6+10JUcuJ1EabrgYLOATsIAigxA0rLR9x/YlrSA==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.7.0.tgz", + "integrity": "sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==", "dev": true, "dependencies": { - "@jest/types": "^29.5.0", + "@jest/types": "^29.6.3", "@types/graceful-fs": "^4.1.3", "@types/node": "*", "anymatch": "^3.0.3", "fb-watchman": "^2.0.0", "graceful-fs": "^4.2.9", - "jest-regex-util": "^29.4.3", - "jest-util": "^29.5.0", - "jest-worker": "^29.5.0", + "jest-regex-util": "^29.6.3", + "jest-util": "^29.7.0", + "jest-worker": "^29.7.0", "micromatch": "^4.0.4", "walker": "^1.0.8" }, @@ -5710,28 +5877,28 @@ } }, "node_modules/jest-leak-detector": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.5.0.tgz", - "integrity": "sha512-u9YdeeVnghBUtpN5mVxjID7KbkKE1QU4f6uUwuxiY0vYRi9BUCLKlPEZfDGR67ofdFmDz9oPAy2G92Ujrntmow==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz", + "integrity": "sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==", "dev": true, "dependencies": { - "jest-get-type": "^29.4.3", - "pretty-format": "^29.5.0" + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/jest-matcher-utils": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.5.0.tgz", - "integrity": "sha512-lecRtgm/rjIK0CQ7LPQwzCs2VwW6WAahA55YBuI+xqmhm7LAaxokSB8C97yJeYyT+HvQkH741StzpU41wohhWw==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz", + "integrity": "sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==", "dev": true, "dependencies": { "chalk": "^4.0.0", - "jest-diff": "^29.5.0", - "jest-get-type": "^29.4.3", - "pretty-format": "^29.5.0" + "jest-diff": "^29.7.0", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" @@ -5808,18 +5975,18 @@ } }, "node_modules/jest-message-util": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.5.0.tgz", - "integrity": "sha512-Kijeg9Dag6CKtIDA7O21zNTACqD5MD/8HfIV8pdD94vFyFuer52SigdC3IQMhab3vACxXMiFk+yMHNdbqtyTGA==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.7.0.tgz", + "integrity": "sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==", "dev": true, "dependencies": { "@babel/code-frame": "^7.12.13", - "@jest/types": "^29.5.0", + "@jest/types": "^29.6.3", "@types/stack-utils": "^2.0.0", "chalk": "^4.0.0", "graceful-fs": "^4.2.9", "micromatch": "^4.0.4", - "pretty-format": "^29.5.0", + "pretty-format": "^29.7.0", "slash": "^3.0.0", "stack-utils": "^2.0.3" }, @@ -5898,14 +6065,14 @@ } }, "node_modules/jest-mock": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.5.0.tgz", - "integrity": "sha512-GqOzvdWDE4fAV2bWQLQCkujxYWL7RxjCnj71b5VhDAGOevB3qj3Ovg26A5NI84ZpODxyzaozXLOh2NCgkbvyaw==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.7.0.tgz", + "integrity": "sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==", "dev": true, "dependencies": { - "@jest/types": "^29.5.0", + "@jest/types": "^29.6.3", "@types/node": "*", - "jest-util": "^29.5.0" + "jest-util": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" @@ -5929,26 +6096,26 @@ } }, "node_modules/jest-regex-util": { - "version": "29.4.3", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.4.3.tgz", - "integrity": "sha512-O4FglZaMmWXbGHSQInfXewIsd1LMn9p3ZXB/6r4FOkyhX2/iP/soMG98jGvk/A3HAN78+5VWcBGO0BJAPRh4kg==", + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.6.3.tgz", + "integrity": "sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==", "dev": true, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/jest-resolve": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.5.0.tgz", - "integrity": "sha512-1TzxJ37FQq7J10jPtQjcc+MkCkE3GBpBecsSUWJ0qZNJpmg6m0D9/7II03yJulm3H/fvVjgqLh/k2eYg+ui52w==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.7.0.tgz", + "integrity": "sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==", "dev": true, "dependencies": { "chalk": "^4.0.0", "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.5.0", + "jest-haste-map": "^29.7.0", "jest-pnp-resolver": "^1.2.2", - "jest-util": "^29.5.0", - "jest-validate": "^29.5.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", "resolve": "^1.20.0", "resolve.exports": "^2.0.0", "slash": "^3.0.0" @@ -5958,13 +6125,13 @@ } }, "node_modules/jest-resolve-dependencies": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.5.0.tgz", - "integrity": "sha512-sjV3GFr0hDJMBpYeUuGduP+YeCRbd7S/ck6IvL3kQ9cpySYKqcqhdLLC2rFwrcL7tz5vYibomBrsFYWkIGGjOg==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.7.0.tgz", + "integrity": "sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==", "dev": true, "dependencies": { - "jest-regex-util": "^29.4.3", - "jest-snapshot": "^29.5.0" + "jest-regex-util": "^29.6.3", + "jest-snapshot": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" @@ -6041,30 +6208,30 @@ } }, "node_modules/jest-runner": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.5.0.tgz", - "integrity": "sha512-m7b6ypERhFghJsslMLhydaXBiLf7+jXy8FwGRHO3BGV1mcQpPbwiqiKUR2zU2NJuNeMenJmlFZCsIqzJCTeGLQ==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.7.0.tgz", + "integrity": "sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==", "dev": true, "dependencies": { - "@jest/console": "^29.5.0", - "@jest/environment": "^29.5.0", - "@jest/test-result": "^29.5.0", - "@jest/transform": "^29.5.0", - "@jest/types": "^29.5.0", + "@jest/console": "^29.7.0", + "@jest/environment": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", "@types/node": "*", "chalk": "^4.0.0", "emittery": "^0.13.1", "graceful-fs": "^4.2.9", - "jest-docblock": "^29.4.3", - "jest-environment-node": "^29.5.0", - "jest-haste-map": "^29.5.0", - "jest-leak-detector": "^29.5.0", - "jest-message-util": "^29.5.0", - "jest-resolve": "^29.5.0", - "jest-runtime": "^29.5.0", - "jest-util": "^29.5.0", - "jest-watcher": "^29.5.0", - "jest-worker": "^29.5.0", + "jest-docblock": "^29.7.0", + "jest-environment-node": "^29.7.0", + "jest-haste-map": "^29.7.0", + "jest-leak-detector": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-resolve": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-util": "^29.7.0", + "jest-watcher": "^29.7.0", + "jest-worker": "^29.7.0", "p-limit": "^3.1.0", "source-map-support": "0.5.13" }, @@ -6143,31 +6310,31 @@ } }, "node_modules/jest-runtime": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.5.0.tgz", - "integrity": "sha512-1Hr6Hh7bAgXQP+pln3homOiEZtCDZFqwmle7Ew2j8OlbkIu6uE3Y/etJQG8MLQs3Zy90xrp2C0BRrtPHG4zryw==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.7.0.tgz", + "integrity": "sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==", "dev": true, "dependencies": { - "@jest/environment": "^29.5.0", - "@jest/fake-timers": "^29.5.0", - "@jest/globals": "^29.5.0", - "@jest/source-map": "^29.4.3", - "@jest/test-result": "^29.5.0", - "@jest/transform": "^29.5.0", - "@jest/types": "^29.5.0", + "@jest/environment": "^29.7.0", + "@jest/fake-timers": "^29.7.0", + "@jest/globals": "^29.7.0", + "@jest/source-map": "^29.6.3", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", "@types/node": "*", "chalk": "^4.0.0", "cjs-module-lexer": "^1.0.0", "collect-v8-coverage": "^1.0.0", "glob": "^7.1.3", "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.5.0", - "jest-message-util": "^29.5.0", - "jest-mock": "^29.5.0", - "jest-regex-util": "^29.4.3", - "jest-resolve": "^29.5.0", - "jest-snapshot": "^29.5.0", - "jest-util": "^29.5.0", + "jest-haste-map": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-mock": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", "slash": "^3.0.0", "strip-bom": "^4.0.0" }, @@ -6288,34 +6455,31 @@ } }, "node_modules/jest-snapshot": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.5.0.tgz", - "integrity": "sha512-x7Wolra5V0tt3wRs3/ts3S6ciSQVypgGQlJpz2rsdQYoUKxMxPNaoHMGJN6qAuPJqS+2iQ1ZUn5kl7HCyls84g==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.7.0.tgz", + "integrity": "sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==", "dev": true, "dependencies": { "@babel/core": "^7.11.6", "@babel/generator": "^7.7.2", "@babel/plugin-syntax-jsx": "^7.7.2", "@babel/plugin-syntax-typescript": "^7.7.2", - "@babel/traverse": "^7.7.2", "@babel/types": "^7.3.3", - "@jest/expect-utils": "^29.5.0", - "@jest/transform": "^29.5.0", - "@jest/types": "^29.5.0", - "@types/babel__traverse": "^7.0.6", - "@types/prettier": "^2.1.5", + "@jest/expect-utils": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", "babel-preset-current-node-syntax": "^1.0.0", "chalk": "^4.0.0", - "expect": "^29.5.0", + "expect": "^29.7.0", "graceful-fs": "^4.2.9", - "jest-diff": "^29.5.0", - "jest-get-type": "^29.4.3", - "jest-matcher-utils": "^29.5.0", - "jest-message-util": "^29.5.0", - "jest-util": "^29.5.0", + "jest-diff": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", "natural-compare": "^1.4.0", - "pretty-format": "^29.5.0", - "semver": "^7.3.5" + "pretty-format": "^29.7.0", + "semver": "^7.5.3" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" @@ -6392,9 +6556,9 @@ } }, "node_modules/jest-snapshot/node_modules/semver": { - "version": "7.5.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.0.tgz", - "integrity": "sha512-+XC0AD/R7Q2mPSRuy2Id0+CGTZ98+8f+KvwirxOKIEyid+XSx6HbC63p+O4IndTHuX5Z+JxQ0TghCkO5Cg/2HA==", + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" @@ -6425,9 +6589,9 @@ "dev": true }, "node_modules/jest-stare": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/jest-stare/-/jest-stare-2.5.0.tgz", - "integrity": "sha512-2pYfbDHIC2Aae/hcFaYFXVQYCqBmlgShxuUSrwf7g1s+br+4W6T0+QUfO+khqFDYCDJFCtG8LIbRSzrKOCQmWw==", + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/jest-stare/-/jest-stare-2.5.1.tgz", + "integrity": "sha512-++3JWdY2zJNPFCN6ao1oeW0Qg8oKVYT9XaMUr8RaNDHDGKOQMNjmMrVz9E/4E43ZDU2mPTtk9U8pS+KjSuxPKg==", "dev": true, "dependencies": { "@jest/reporters": "^29.0.0", @@ -6438,7 +6602,7 @@ "bootstrap": "^5.0.0", "chalk": "^4.1.0", "chart.js": "^4.1.2", - "diff2html": "^3.1.18", + "diff2html": "^3.4.40", "holderjs": "^2.9.7", "jquery": "^3.5.1", "moment": "^2.27.0", @@ -6524,31 +6688,13 @@ "node": ">=8" } }, - "node_modules/jest-stare/node_modules/yargs": { - "version": "17.6.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.6.2.tgz", - "integrity": "sha512-1/9UrdHjDZc0eOU0HxOHoS78C69UD3JRMvzlJ7S79S2nTaWRA/whGCTV8o9e/N/1Va9YIV7Q4sOxD8VV4pCWOw==", - "dev": true, - "dependencies": { - "cliui": "^8.0.1", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.1.1" - }, - "engines": { - "node": ">=12" - } - }, "node_modules/jest-util": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.5.0.tgz", - "integrity": "sha512-RYMgG/MTadOr5t8KdhejfvUU82MxsCu5MF6KuDUHl+NuwzUt+Sm6jJWxTJVrDR1j5M/gJVCPKQEpWXY+yIQ6lQ==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz", + "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==", "dev": true, "dependencies": { - "@jest/types": "^29.5.0", + "@jest/types": "^29.6.3", "@types/node": "*", "chalk": "^4.0.0", "ci-info": "^3.2.0", @@ -6630,17 +6776,17 @@ } }, "node_modules/jest-validate": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.5.0.tgz", - "integrity": "sha512-pC26etNIi+y3HV8A+tUGr/lph9B18GnzSRAkPaaZJIE1eFdiYm6/CewuiJQ8/RlfHd1u/8Ioi8/sJ+CmbA+zAQ==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.7.0.tgz", + "integrity": "sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==", "dev": true, "dependencies": { - "@jest/types": "^29.5.0", + "@jest/types": "^29.6.3", "camelcase": "^6.2.0", "chalk": "^4.0.0", - "jest-get-type": "^29.4.3", + "jest-get-type": "^29.6.3", "leven": "^3.1.0", - "pretty-format": "^29.5.0" + "pretty-format": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" @@ -6729,18 +6875,18 @@ } }, "node_modules/jest-watcher": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.5.0.tgz", - "integrity": "sha512-KmTojKcapuqYrKDpRwfqcQ3zjMlwu27SYext9pt4GlF5FUgB+7XE1mcCnSm6a4uUpFyQIkb6ZhzZvHl+jiBCiA==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.7.0.tgz", + "integrity": "sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==", "dev": true, "dependencies": { - "@jest/test-result": "^29.5.0", - "@jest/types": "^29.5.0", + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", "@types/node": "*", "ansi-escapes": "^4.2.1", "chalk": "^4.0.0", "emittery": "^0.13.1", - "jest-util": "^29.5.0", + "jest-util": "^29.7.0", "string-length": "^4.0.1" }, "engines": { @@ -6818,13 +6964,13 @@ } }, "node_modules/jest-worker": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.5.0.tgz", - "integrity": "sha512-NcrQnevGoSp4b5kg+akIpthoAFHxPBcb5P6mYPY0fUNT+sSvmtu6jlkEle3anczUKIKEbMxFimk9oTP/tpIPgA==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz", + "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==", "dev": true, "dependencies": { "@types/node": "*", - "jest-util": "^29.5.0", + "jest-util": "^29.7.0", "merge-stream": "^2.0.0", "supports-color": "^8.0.0" }, @@ -7304,9 +7450,9 @@ } }, "node_modules/node-releases": { - "version": "2.0.9", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.9.tgz", - "integrity": "sha512-2xfmOrRkGogbTK9R6Leda0DGiXeY3p2NJpy4+gNCffdUvV6mdEJnaDEic1i3Ec2djAo8jWYoJMR5PB0MSMpxUA==", + "version": "2.0.13", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.13.tgz", + "integrity": "sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==", "dev": true }, "node_modules/node-version": { @@ -7727,12 +7873,12 @@ } }, "node_modules/pretty-format": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.5.0.tgz", - "integrity": "sha512-V2mGkI31qdttvTFX7Mt4efOqHXqJWMu4/r66Xh3Z3BwZaPfPJgp6/gbwoujRpPUtfEF6AUUWx3Jim3GCw5g/Qw==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", "dev": true, "dependencies": { - "@jest/schemas": "^29.4.3", + "@jest/schemas": "^29.6.3", "ansi-styles": "^5.0.0", "react-is": "^18.0.0" }, @@ -7816,9 +7962,9 @@ } }, "node_modules/pure-rand": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.0.1.tgz", - "integrity": "sha512-t+x1zEHDjBwkDGY5v5ApnZ/utcd4XYDiJsaQQoptTXgUXX95sDg1elCdJghzicm7n2mbCBJ3uYWr6M22SO19rg==", + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.0.3.tgz", + "integrity": "sha512-KddyFewCsO0j3+np81IQ+SweXLDnDQTs5s67BOnrYmYe/yNmUhttQyGsYzy8yUnoljGAQ9sl38YB4vH8ur7Y+w==", "dev": true, "funding": [ { @@ -7959,15 +8105,15 @@ } }, "node_modules/regenerator-runtime": { - "version": "0.13.11", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", - "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==", + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz", + "integrity": "sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==", "dev": true }, "node_modules/regenerator-transform": { - "version": "0.15.1", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.1.tgz", - "integrity": "sha512-knzmNAcuyxV+gQCufkYcvOqX/qIIfHLv0u5x79kRxuGojfYVky1f15TzZEu2Avte8QGepvUNTnLskf8E6X6Vyg==", + "version": "0.15.2", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz", + "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==", "dev": true, "dependencies": { "@babel/runtime": "^7.8.4" @@ -8739,9 +8885,9 @@ "dev": true }, "node_modules/ts-jest": { - "version": "29.1.0", - "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.1.0.tgz", - "integrity": "sha512-ZhNr7Z4PcYa+JjMl62ir+zPiNJfXJN6E8hSLnaUKhOgqcn8vb3e537cpkd0FuAfRK3sR1LSqM1MOhliXNgOFPA==", + "version": "29.1.1", + "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.1.1.tgz", + "integrity": "sha512-D6xjnnbP17cC85nliwGiL+tpoKN0StpgE0TeOjXQTU6MVCfsB4v7aW05CgQ/1OywGb0x/oy9hHFnN+sczTiRaA==", "dev": true, "dependencies": { "bs-logger": "0.x", @@ -8750,7 +8896,7 @@ "json5": "^2.2.3", "lodash.memoize": "4.x", "make-error": "1.x", - "semver": "7.x", + "semver": "^7.5.3", "yargs-parser": "^21.0.1" }, "bin": { @@ -8794,9 +8940,9 @@ } }, "node_modules/ts-jest/node_modules/semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" @@ -8815,9 +8961,9 @@ "dev": true }, "node_modules/tslib": { - "version": "2.5.3", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.3.tgz", - "integrity": "sha512-mSxlJJwl3BMEQCUNnxXBU9jP4JBktcEGhURcPR6VQVlnP0FdDEsIaz0C35dXNGLyRfrATNofF0F5p2KPxQgB+w==", + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", "dev": true }, "node_modules/type-detect": { @@ -8842,9 +8988,9 @@ } }, "node_modules/typescript": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.1.3.tgz", - "integrity": "sha512-XH627E9vkeqhlZFQuL+UsyAXEnibT0kWR2FWONlr4sTjvxyJYnyefgrkyECLzM5NenmKzRAy2rR/OlYLA1HkZw==", + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.2.2.tgz", + "integrity": "sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==", "dev": true, "bin": { "tsc": "bin/tsc", @@ -8904,9 +9050,9 @@ } }, "node_modules/update-browserslist-db": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz", - "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==", + "version": "1.0.13", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", + "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", "dev": true, "funding": [ { @@ -8916,6 +9062,10 @@ { "type": "tidelift", "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" } ], "dependencies": { @@ -8923,7 +9073,7 @@ "picocolors": "^1.0.0" }, "bin": { - "browserslist-lint": "cli.js" + "update-browserslist-db": "cli.js" }, "peerDependencies": { "browserslist": ">= 4.21.0" @@ -8990,10 +9140,14 @@ "dev": true }, "node_modules/uuid": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz", - "integrity": "sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==", + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", + "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", "dev": true, + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], "bin": { "uuid": "dist/bin/uuid" } @@ -9150,9 +9304,9 @@ "dev": true }, "node_modules/xml2js": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.5.0.tgz", - "integrity": "sha512-drPFnkQJik/O+uPKpqSgr22mpuFHqKdbS835iAQrUC73L2F5WkboIRd63ai/2Yg6I1jzifPFKH2NTK+cfglkIA==", + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.6.2.tgz", + "integrity": "sha512-T4rieHaC1EXcES0Kxxj4JWgaUQHDk+qwHcYOCFHfiwKz7tOVPLq7Hjq9dM1WCMhylqMEfP7hMcOIChvotiZegA==", "dev": true, "dependencies": { "sax": ">=0.6.0", @@ -9280,18 +9434,19 @@ } }, "@babel/code-frame": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.5.tgz", - "integrity": "sha512-Xmwn266vad+6DAqEB2A6V/CcZVp62BbwVmcOJc2RPuwih1kw02TjQvWVWlcKGbBPd+8/0V5DEkOcizRGYsspYQ==", + "version": "7.22.13", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.13.tgz", + "integrity": "sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==", "dev": true, "requires": { - "@babel/highlight": "^7.22.5" + "@babel/highlight": "^7.22.13", + "chalk": "^2.4.2" } }, "@babel/compat-data": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.22.5.tgz", - "integrity": "sha512-4Jc/YuIaYqKnDDz892kPIledykKg12Aw1PYX5i/TY28anJtacvM1Rrr8wbieB9GfEJwlzqT0hUEao0CxEebiDA==", + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.22.20.tgz", + "integrity": "sha512-BQYjKbpXjoXwFW5jGqiizJQQT/aC7pFm9Ok1OWssonuguICi264lbgMzRp2ZMmRSlfkX6DsWDDcsrctK8Rwfiw==", "dev": true }, "@babel/core": { @@ -9361,33 +9516,49 @@ } }, "@babel/helper-compilation-targets": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.5.tgz", - "integrity": "sha512-Ji+ywpHeuqxB8WDxraCiqR0xfhYjiDE/e6k7FuIaANnoOFxAHskHChz4vA1mJC9Lbm01s1PVAGhQY4FUKSkGZw==", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.15.tgz", + "integrity": "sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw==", "dev": true, "requires": { - "@babel/compat-data": "^7.22.5", - "@babel/helper-validator-option": "^7.22.5", - "browserslist": "^4.21.3", + "@babel/compat-data": "^7.22.9", + "@babel/helper-validator-option": "^7.22.15", + "browserslist": "^4.21.9", "lru-cache": "^5.1.1", - "semver": "^6.3.0" + "semver": "^6.3.1" + }, + "dependencies": { + "semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true + } } }, "@babel/helper-create-class-features-plugin": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.5.tgz", - "integrity": "sha512-xkb58MyOYIslxu3gKmVXmjTtUPvBU4odYzbiIQbWwLKIHCsx6UGZGX6F1IznMFVnDdirseUZopzN+ZRt8Xb33Q==", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.15.tgz", + "integrity": "sha512-jKkwA59IXcvSaiK2UN45kKwSC9o+KuoXsBDvHvU/7BecYIp8GQ2UwrVvFgJASUT+hBnwJx6MhvMCuMzwZZ7jlg==", "dev": true, "requires": { "@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.5", + "@babel/helper-member-expression-to-functions": "^7.22.15", "@babel/helper-optimise-call-expression": "^7.22.5", - "@babel/helper-replace-supers": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.9", "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.5", - "semver": "^6.3.0" + "@babel/helper-split-export-declaration": "^7.22.6", + "semver": "^6.3.1" + }, + "dependencies": { + "semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true + } } }, "@babel/helper-create-regexp-features-plugin": { @@ -9402,23 +9573,22 @@ } }, "@babel/helper-define-polyfill-provider": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.0.tgz", - "integrity": "sha512-RnanLx5ETe6aybRi1cO/edaRH+bNYWaryCEmjDDYyNr4wnSzyOp8T0dWipmqVHKEY3AbVKUom50AKSlj1zmKbg==", + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.2.tgz", + "integrity": "sha512-k0qnnOqHn5dK9pZpfD5XXZ9SojAITdCKRn2Lp6rnDGzIbaP0rHyMPk/4wsSxVBVz4RfN0q6VpXWP2pDGIoQ7hw==", "dev": true, "requires": { - "@babel/helper-compilation-targets": "^7.17.7", - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-compilation-targets": "^7.22.6", + "@babel/helper-plugin-utils": "^7.22.5", "debug": "^4.1.1", "lodash.debounce": "^4.0.8", - "resolve": "^1.14.2", - "semver": "^6.1.2" + "resolve": "^1.14.2" } }, "@babel/helper-environment-visitor": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.5.tgz", - "integrity": "sha512-XGmhECfVA/5sAt+H+xpSg0mfrHq6FzNr9Oxh7PSEBBRUb/mL7Kz3NICXb194rCqAEdxkhPT1a88teizAFyvk8Q==", + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", + "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", "dev": true }, "@babel/helper-function-name": { @@ -9441,37 +9611,34 @@ } }, "@babel/helper-member-expression-to-functions": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.22.5.tgz", - "integrity": "sha512-aBiH1NKMG0H2cGZqspNvsaBe6wNGjbJjuLy29aU+eDZjSbbN53BaxlpB02xm9v34pLTZ1nIQPFYn2qMZoa5BQQ==", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.22.15.tgz", + "integrity": "sha512-qLNsZbgrNh0fDQBCPocSL8guki1hcPvltGDv/NxvUoABwFq7GkKSu1nRXeJkVZc+wJvne2E0RKQz+2SQrz6eAA==", "dev": true, "requires": { - "@babel/types": "^7.22.5" + "@babel/types": "^7.22.15" } }, "@babel/helper-module-imports": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.5.tgz", - "integrity": "sha512-8Dl6+HD/cKifutF5qGd/8ZJi84QeAKh+CEe1sBzz8UayBBGg1dAIJrdHOcOM5b2MpzWL2yuotJTtGjETq0qjXg==", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz", + "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==", "dev": true, "requires": { - "@babel/types": "^7.22.5" + "@babel/types": "^7.22.15" } }, "@babel/helper-module-transforms": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.22.5.tgz", - "integrity": "sha512-+hGKDt/Ze8GFExiVHno/2dvG5IdstpzCq0y4Qc9OJ25D4q3pKfiIP/4Vp3/JvhDkLKsDK2api3q3fpIgiIF5bw==", + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.22.20.tgz", + "integrity": "sha512-dLT7JVWIUUxKOs1UnJUBR3S70YK+pKX6AbJgB2vMIvEkZkrfJDbYDJesnPshtKV4LhDOR3Oc5YULeDizRek+5A==", "dev": true, "requires": { - "@babel/helper-environment-visitor": "^7.22.5", - "@babel/helper-module-imports": "^7.22.5", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-module-imports": "^7.22.15", "@babel/helper-simple-access": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.5", - "@babel/helper-validator-identifier": "^7.22.5", - "@babel/template": "^7.22.5", - "@babel/traverse": "^7.22.5", - "@babel/types": "^7.22.5" + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/helper-validator-identifier": "^7.22.20" } }, "@babel/helper-optimise-call-expression": { @@ -9490,29 +9657,25 @@ "dev": true }, "@babel/helper-remap-async-to-generator": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.5.tgz", - "integrity": "sha512-cU0Sq1Rf4Z55fgz7haOakIyM7+x/uCFwXpLPaeRzfoUtAEAuUZjZvFPjL/rk5rW693dIgn2hng1W7xbT7lWT4g==", + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.20.tgz", + "integrity": "sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==", "dev": true, "requires": { "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-environment-visitor": "^7.22.5", - "@babel/helper-wrap-function": "^7.22.5", - "@babel/types": "^7.22.5" + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-wrap-function": "^7.22.20" } }, "@babel/helper-replace-supers": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.22.5.tgz", - "integrity": "sha512-aLdNM5I3kdI/V9xGNyKSF3X/gTyMUBohTZ+/3QdQKAA9vxIiy12E+8E2HoOP1/DjeqU+g6as35QHJNMDDYpuCg==", + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.22.20.tgz", + "integrity": "sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw==", "dev": true, "requires": { - "@babel/helper-environment-visitor": "^7.22.5", - "@babel/helper-member-expression-to-functions": "^7.22.5", - "@babel/helper-optimise-call-expression": "^7.22.5", - "@babel/template": "^7.22.5", - "@babel/traverse": "^7.22.5", - "@babel/types": "^7.22.5" + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-member-expression-to-functions": "^7.22.15", + "@babel/helper-optimise-call-expression": "^7.22.5" } }, "@babel/helper-simple-access": { @@ -9534,9 +9697,9 @@ } }, "@babel/helper-split-export-declaration": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.5.tgz", - "integrity": "sha512-thqK5QFghPKWLhAV321lxF95yCg2K3Ob5yw+M3VHWfdia0IkPXUtoLH8x/6Fh486QUvzhb8YOWHChTVen2/PoQ==", + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", + "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", "dev": true, "requires": { "@babel/types": "^7.22.5" @@ -9549,27 +9712,26 @@ "dev": true }, "@babel/helper-validator-identifier": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.5.tgz", - "integrity": "sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ==", + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", + "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", "dev": true }, "@babel/helper-validator-option": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.22.5.tgz", - "integrity": "sha512-R3oB6xlIVKUnxNUxbmgq7pKjxpru24zlimpE8WK47fACIlM0II/Hm1RS8IaOI7NgCr6LNS+jl5l75m20npAziw==", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.22.15.tgz", + "integrity": "sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA==", "dev": true }, "@babel/helper-wrap-function": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.22.5.tgz", - "integrity": "sha512-bYqLIBSEshYcYQyfks8ewYA8S30yaGSeRslcvKMvoUk6HHPySbxHq9YRi6ghhzEU+yhQv9bP/jXnygkStOcqZw==", + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.22.20.tgz", + "integrity": "sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==", "dev": true, "requires": { "@babel/helper-function-name": "^7.22.5", - "@babel/template": "^7.22.5", - "@babel/traverse": "^7.22.5", - "@babel/types": "^7.22.5" + "@babel/template": "^7.22.15", + "@babel/types": "^7.22.19" } }, "@babel/helpers": { @@ -9584,40 +9746,40 @@ } }, "@babel/highlight": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.5.tgz", - "integrity": "sha512-BSKlD1hgnedS5XRnGOljZawtag7H1yPfQp0tdNJCHoH6AZ+Pcm9VvkrK59/Yy593Ypg0zMxH2BxD1VPYUQ7UIw==", + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.20.tgz", + "integrity": "sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.22.5", - "chalk": "^2.0.0", + "@babel/helper-validator-identifier": "^7.22.20", + "chalk": "^2.4.2", "js-tokens": "^4.0.0" } }, "@babel/parser": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.22.5.tgz", - "integrity": "sha512-DFZMC9LJUG9PLOclRC32G63UXwzqS2koQC8dkx+PLdmt1xSePYpbT/NbsrJy8Q/muXz7o/h/d4A7Fuyixm559Q==", + "version": "7.22.16", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.22.16.tgz", + "integrity": "sha512-+gPfKv8UWeKKeJTUxe59+OobVcrYHETCsORl61EmSkmgymguYk/X5bp7GuUIXaFsc6y++v8ZxPsLSSuujqDphA==", "dev": true }, "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.22.5.tgz", - "integrity": "sha512-NP1M5Rf+u2Gw9qfSO4ihjcTGW5zXTi36ITLd4/EoAcEhIZ0yjMqmftDNl3QC19CX7olhrjpyU454g/2W7X0jvQ==", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.22.15.tgz", + "integrity": "sha512-FB9iYlz7rURmRJyXRKEnalYPPdn87H5no108cyuQQyMwlpJ2SJtpIUBI27kdTin956pz+LPypkPVPUTlxOmrsg==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.22.5" } }, "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.22.5.tgz", - "integrity": "sha512-31Bb65aZaUwqCbWMnZPduIZxCBngHFlzyN6Dq6KAJjtx+lx6ohKHubc61OomYi7XwVD4Ol0XCVz4h+pYFR048g==", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.22.15.tgz", + "integrity": "sha512-Hyph9LseGvAeeXzikV88bczhsrLrIZqDPxO+sSmAunMPaGrBGhfMWzCPYTtiW9t+HzSE2wtV8e5cc5P6r1xMDQ==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.22.5", "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", - "@babel/plugin-transform-optional-chaining": "^7.22.5" + "@babel/plugin-transform-optional-chaining": "^7.22.15" } }, "@babel/plugin-proposal-class-properties": { @@ -9637,16 +9799,6 @@ "dev": true, "requires": {} }, - "@babel/plugin-proposal-unicode-property-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz", - "integrity": "sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==", - "dev": true, - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - } - }, "@babel/plugin-syntax-async-generators": { "version": "7.8.4", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", @@ -9738,12 +9890,12 @@ } }, "@babel/plugin-syntax-jsx": { - "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.21.4.tgz", - "integrity": "sha512-5hewiLct5OKyh6PLKEYaFclcqtIgCb6bmELouxjF6up5q3Sov7rOayW4RwhbaBL0dit8rA80GNfY+UuDp2mBbQ==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.22.5.tgz", + "integrity": "sha512-gvyP4hZrgrs/wWMaocvxZ44Hw0b3W8Pe+cMxc8V1ULQ07oh8VNbIRaoD1LRZVTvD+0nieDKjfgKg89sD7rrKrg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.20.2" + "@babel/helper-plugin-utils": "^7.22.5" } }, "@babel/plugin-syntax-logical-assignment-operators": { @@ -9819,12 +9971,12 @@ } }, "@babel/plugin-syntax-typescript": { - "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.21.4.tgz", - "integrity": "sha512-xz0D39NvhQn4t4RNsHmDnnsaQizIlUkdtYvLs8La1BlfjQ6JEwxkJGeqJMW2tAXx+q6H+WFuUTXNdYVpEya0YA==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.22.5.tgz", + "integrity": "sha512-1mS2o03i7t1c6VzH6fdQ3OA8tcEIxwG18zIPRp+UY1Ihv6W+XZzBCVxExF9upussPXJ0xE9XRHwMoNs1ep/nRQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.20.2" + "@babel/helper-plugin-utils": "^7.22.5" } }, "@babel/plugin-syntax-unicode-sets-regex": { @@ -9847,14 +9999,14 @@ } }, "@babel/plugin-transform-async-generator-functions": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.22.5.tgz", - "integrity": "sha512-gGOEvFzm3fWoyD5uZq7vVTD57pPJ3PczPUD/xCFGjzBpUosnklmXyKnGQbbbGs1NPNPskFex0j93yKbHt0cHyg==", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.22.15.tgz", + "integrity": "sha512-jBm1Es25Y+tVoTi5rfd5t1KLmL8ogLKpXszboWOTTtGFGz2RKnQe2yn7HbZ+kb/B8N0FVSGQo874NSlOU1T4+w==", "dev": true, "requires": { "@babel/helper-environment-visitor": "^7.22.5", "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-remap-async-to-generator": "^7.22.5", + "@babel/helper-remap-async-to-generator": "^7.22.9", "@babel/plugin-syntax-async-generators": "^7.8.4" } }, @@ -9879,9 +10031,9 @@ } }, "@babel/plugin-transform-block-scoping": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.22.5.tgz", - "integrity": "sha512-EcACl1i5fSQ6bt+YGuU/XGCeZKStLmyVGytWkpyhCLeQVA0eu6Wtiw92V+I1T/hnezUv7j74dA/Ro69gWcU+hg==", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.22.15.tgz", + "integrity": "sha512-G1czpdJBZCtngoK1sJgloLiOHUnkb/bLZwqVZD8kXmq0ZnVfTTWUcs9OWtp0mBtYJ+4LQY1fllqBkOIPhXmFmw==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.22.5" @@ -9898,30 +10050,30 @@ } }, "@babel/plugin-transform-class-static-block": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.22.5.tgz", - "integrity": "sha512-SPToJ5eYZLxlnp1UzdARpOGeC2GbHvr9d/UV0EukuVx8atktg194oe+C5BqQ8jRTkgLRVOPYeXRSBg1IlMoVRA==", + "version": "7.22.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.22.11.tgz", + "integrity": "sha512-GMM8gGmqI7guS/llMFk1bJDkKfn3v3C4KHK9Yg1ey5qcHcOlKb0QvcMrgzvxo+T03/4szNh5lghY+fEC98Kq9g==", "dev": true, "requires": { - "@babel/helper-create-class-features-plugin": "^7.22.5", + "@babel/helper-create-class-features-plugin": "^7.22.11", "@babel/helper-plugin-utils": "^7.22.5", "@babel/plugin-syntax-class-static-block": "^7.14.5" } }, "@babel/plugin-transform-classes": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.22.5.tgz", - "integrity": "sha512-2edQhLfibpWpsVBx2n/GKOz6JdGQvLruZQfGr9l1qes2KQaWswjBzhQF7UDUZMNaMMQeYnQzxwOMPsbYF7wqPQ==", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.22.15.tgz", + "integrity": "sha512-VbbC3PGjBdE0wAWDdHM9G8Gm977pnYI0XpqMd6LrKISj8/DJXEsWqgRuTYaNE9Bv0JGhTZUzHDlMk18IpOuoqw==", "dev": true, "requires": { "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-compilation-targets": "^7.22.5", + "@babel/helper-compilation-targets": "^7.22.15", "@babel/helper-environment-visitor": "^7.22.5", "@babel/helper-function-name": "^7.22.5", "@babel/helper-optimise-call-expression": "^7.22.5", "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-replace-supers": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.9", + "@babel/helper-split-export-declaration": "^7.22.6", "globals": "^11.1.0" } }, @@ -9936,9 +10088,9 @@ } }, "@babel/plugin-transform-destructuring": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.22.5.tgz", - "integrity": "sha512-GfqcFuGW8vnEqTUBM7UtPd5A4q797LTvvwKxXTgRsFjoqaJiEg9deBG6kWeQYkVEL569NpnmpC0Pkr/8BLKGnQ==", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.22.15.tgz", + "integrity": "sha512-HzG8sFl1ZVGTme74Nw+X01XsUTqERVQ6/RLHo3XjGRzm7XD6QTtfS3NJotVgCGy8BzkDqRjRBD8dAyJn5TuvSQ==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.22.5" @@ -9964,9 +10116,9 @@ } }, "@babel/plugin-transform-dynamic-import": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.22.5.tgz", - "integrity": "sha512-0MC3ppTB1AMxd8fXjSrbPa7LT9hrImt+/fcj+Pg5YMD7UQyWp/02+JWpdnCymmsXwIx5Z+sYn1bwCn4ZJNvhqQ==", + "version": "7.22.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.22.11.tgz", + "integrity": "sha512-g/21plo58sfteWjaO0ZNVb+uEOkJNjAaHhbejrnBmu011l/eNDScmkbjCC3l4FKb10ViaGU4aOkFznSu2zRHgA==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.22.5", @@ -9984,9 +10136,9 @@ } }, "@babel/plugin-transform-export-namespace-from": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.22.5.tgz", - "integrity": "sha512-X4hhm7FRnPgd4nDA4b/5V280xCx6oL7Oob5+9qVS5C13Zq4bh1qq7LU0GgRU6b5dBWBvhGaXYVB4AcN6+ol6vg==", + "version": "7.22.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.22.11.tgz", + "integrity": "sha512-xa7aad7q7OiT8oNZ1mU7NrISjlSkVdMbNxn9IuLZyL9AJEhs1Apba3I+u5riX1dIkdptP5EKDG5XDPByWxtehw==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.22.5", @@ -9994,9 +10146,9 @@ } }, "@babel/plugin-transform-for-of": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.22.5.tgz", - "integrity": "sha512-3kxQjX1dU9uudwSshyLeEipvrLjBCVthCgeTp6CzE/9JYrlAIaeekVxRpCWsDDfYTfRZRoCeZatCQvwo+wvK8A==", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.22.15.tgz", + "integrity": "sha512-me6VGeHsx30+xh9fbDLLPi0J1HzmeIIyenoOQHuw2D4m2SAU3NrspX5XxJLBpqn5yrLzrlw2Iy3RA//Bx27iOA==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.22.5" @@ -10014,9 +10166,9 @@ } }, "@babel/plugin-transform-json-strings": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.22.5.tgz", - "integrity": "sha512-DuCRB7fu8MyTLbEQd1ew3R85nx/88yMoqo2uPSjevMj3yoN7CDM8jkgrY0wmVxfJZyJ/B9fE1iq7EQppWQmR5A==", + "version": "7.22.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.22.11.tgz", + "integrity": "sha512-CxT5tCqpA9/jXFlme9xIBCc5RPtdDq3JpkkhgHQqtDdiTnTI0jtZ0QzXhr5DILeYifDPp2wvY2ad+7+hLMW5Pw==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.22.5", @@ -10033,9 +10185,9 @@ } }, "@babel/plugin-transform-logical-assignment-operators": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.22.5.tgz", - "integrity": "sha512-MQQOUW1KL8X0cDWfbwYP+TbVbZm16QmQXJQ+vndPtH/BoO0lOKpVoEDMI7+PskYxH+IiE0tS8xZye0qr1lGzSA==", + "version": "7.22.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.22.11.tgz", + "integrity": "sha512-qQwRTP4+6xFCDV5k7gZBF3C31K34ut0tbEcTKxlX/0KXxm9GLcO14p570aWxFvVzx6QAfPgq7gaeIHXJC8LswQ==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.22.5", @@ -10062,24 +10214,24 @@ } }, "@babel/plugin-transform-modules-commonjs": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.22.5.tgz", - "integrity": "sha512-B4pzOXj+ONRmuaQTg05b3y/4DuFz3WcCNAXPLb2Q0GT0TrGKGxNKV4jwsXts+StaM0LQczZbOpj8o1DLPDJIiA==", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.22.15.tgz", + "integrity": "sha512-jWL4eh90w0HQOTKP2MoXXUpVxilxsB2Vl4ji69rSjS3EcZ/v4sBmn+A3NpepuJzBhOaEBbR7udonlHHn5DWidg==", "dev": true, "requires": { - "@babel/helper-module-transforms": "^7.22.5", + "@babel/helper-module-transforms": "^7.22.15", "@babel/helper-plugin-utils": "^7.22.5", "@babel/helper-simple-access": "^7.22.5" } }, "@babel/plugin-transform-modules-systemjs": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.22.5.tgz", - "integrity": "sha512-emtEpoaTMsOs6Tzz+nbmcePl6AKVtS1yC4YNAeMun9U8YCsgadPNxnOPQ8GhHFB2qdx+LZu9LgoC0Lthuu05DQ==", + "version": "7.22.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.22.11.tgz", + "integrity": "sha512-rIqHmHoMEOhI3VkVf5jQ15l539KrwhzqcBO6wdCNWPWc/JWt9ILNYNUssbRpeq0qWns8svuw8LnMNCvWBIJ8wA==", "dev": true, "requires": { "@babel/helper-hoist-variables": "^7.22.5", - "@babel/helper-module-transforms": "^7.22.5", + "@babel/helper-module-transforms": "^7.22.9", "@babel/helper-plugin-utils": "^7.22.5", "@babel/helper-validator-identifier": "^7.22.5" } @@ -10114,9 +10266,9 @@ } }, "@babel/plugin-transform-nullish-coalescing-operator": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.22.5.tgz", - "integrity": "sha512-6CF8g6z1dNYZ/VXok5uYkkBBICHZPiGEl7oDnAx2Mt1hlHVHOSIKWJaXHjQJA5VB43KZnXZDIexMchY4y2PGdA==", + "version": "7.22.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.22.11.tgz", + "integrity": "sha512-YZWOw4HxXrotb5xsjMJUDlLgcDXSfO9eCmdl1bgW4+/lAGdkjaEvOnQ4p5WKKdUgSzO39dgPl0pTnfxm0OAXcg==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.22.5", @@ -10124,9 +10276,9 @@ } }, "@babel/plugin-transform-numeric-separator": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.22.5.tgz", - "integrity": "sha512-NbslED1/6M+sXiwwtcAB/nieypGw02Ejf4KtDeMkCEpP6gWFMX1wI9WKYua+4oBneCCEmulOkRpwywypVZzs/g==", + "version": "7.22.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.22.11.tgz", + "integrity": "sha512-3dzU4QGPsILdJbASKhF/V2TVP+gJya1PsueQCxIPCEcerqF21oEcrob4mzjsp2Py/1nLfF5m+xYNMDpmA8vffg==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.22.5", @@ -10134,16 +10286,16 @@ } }, "@babel/plugin-transform-object-rest-spread": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.22.5.tgz", - "integrity": "sha512-Kk3lyDmEslH9DnvCDA1s1kkd3YWQITiBOHngOtDL9Pt6BZjzqb6hiOlb8VfjiiQJ2unmegBqZu0rx5RxJb5vmQ==", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.22.15.tgz", + "integrity": "sha512-fEB+I1+gAmfAyxZcX1+ZUwLeAuuf8VIg67CTznZE0MqVFumWkh8xWtn58I4dxdVf080wn7gzWoF8vndOViJe9Q==", "dev": true, "requires": { - "@babel/compat-data": "^7.22.5", - "@babel/helper-compilation-targets": "^7.22.5", + "@babel/compat-data": "^7.22.9", + "@babel/helper-compilation-targets": "^7.22.15", "@babel/helper-plugin-utils": "^7.22.5", "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.22.5" + "@babel/plugin-transform-parameters": "^7.22.15" } }, "@babel/plugin-transform-object-super": { @@ -10157,9 +10309,9 @@ } }, "@babel/plugin-transform-optional-catch-binding": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.22.5.tgz", - "integrity": "sha512-pH8orJahy+hzZje5b8e2QIlBWQvGpelS76C63Z+jhZKsmzfNaPQ+LaW6dcJ9bxTpo1mtXbgHwy765Ro3jftmUg==", + "version": "7.22.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.22.11.tgz", + "integrity": "sha512-rli0WxesXUeCJnMYhzAglEjLWVDF6ahb45HuprcmQuLidBJFWjNnOzssk2kuc6e33FlLaiZhG/kUIzUMWdBKaQ==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.22.5", @@ -10167,9 +10319,9 @@ } }, "@babel/plugin-transform-optional-chaining": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.22.5.tgz", - "integrity": "sha512-AconbMKOMkyG+xCng2JogMCDcqW8wedQAqpVIL4cOSescZ7+iW8utC6YDZLMCSUIReEA733gzRSaOSXMAt/4WQ==", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.22.15.tgz", + "integrity": "sha512-ngQ2tBhq5vvSJw2Q2Z9i7ealNkpDMU0rGWnHPKqRZO0tzZ5tlaoz4hDvhXioOoaE0X2vfNss1djwg0DXlfu30A==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.22.5", @@ -10178,9 +10330,9 @@ } }, "@babel/plugin-transform-parameters": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.22.5.tgz", - "integrity": "sha512-AVkFUBurORBREOmHRKo06FjHYgjrabpdqRSwq6+C7R5iTCZOsM4QbcB27St0a4U6fffyAOqh3s/qEfybAhfivg==", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.22.15.tgz", + "integrity": "sha512-hjk7qKIqhyzhhUvRT683TYQOFa/4cQKwQy7ALvTpODswN40MljzNDa0YldevS6tGbxwaEKVn502JmY0dP7qEtQ==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.22.5" @@ -10197,13 +10349,13 @@ } }, "@babel/plugin-transform-private-property-in-object": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.22.5.tgz", - "integrity": "sha512-/9xnaTTJcVoBtSSmrVyhtSvO3kbqS2ODoh2juEU72c3aYonNF0OMGiaz2gjukyKM2wBBYJP38S4JiE0Wfb5VMQ==", + "version": "7.22.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.22.11.tgz", + "integrity": "sha512-sSCbqZDBKHetvjSwpyWzhuHkmW5RummxJBVbYLkGkaiTOWGxml7SXt0iWa03bzxFIx7wOj3g/ILRd0RcJKBeSQ==", "dev": true, "requires": { "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-create-class-features-plugin": "^7.22.5", + "@babel/helper-create-class-features-plugin": "^7.22.11", "@babel/helper-plugin-utils": "^7.22.5", "@babel/plugin-syntax-private-property-in-object": "^7.14.5" } @@ -10218,13 +10370,13 @@ } }, "@babel/plugin-transform-regenerator": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.22.5.tgz", - "integrity": "sha512-rR7KePOE7gfEtNTh9Qw+iO3Q/e4DEsoQ+hdvM6QUDH7JRJ5qxq5AA52ZzBWbI5i9lfNuvySgOGP8ZN7LAmaiPw==", + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.22.10.tgz", + "integrity": "sha512-F28b1mDt8KcT5bUyJc/U9nwzw6cV+UmTeRlXYIl2TNqMMJif0Jeey9/RQ3C4NOd2zp0/TRsDns9ttj2L523rsw==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.22.5", - "regenerator-transform": "^0.15.1" + "regenerator-transform": "^0.15.2" } }, "@babel/plugin-transform-reserved-words": { @@ -10237,17 +10389,25 @@ } }, "@babel/plugin-transform-runtime": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.22.5.tgz", - "integrity": "sha512-bg4Wxd1FWeFx3daHFTWk1pkSWK/AyQuiyAoeZAOkAOUBjnZPH6KT7eMxouV47tQ6hl6ax2zyAWBdWZXbrvXlaw==", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.22.15.tgz", + "integrity": "sha512-tEVLhk8NRZSmwQ0DJtxxhTrCht1HVo8VaMzYT4w6lwyKBuHsgoioAUA7/6eT2fRfc5/23fuGdlwIxXhRVgWr4g==", "dev": true, "requires": { - "@babel/helper-module-imports": "^7.22.5", + "@babel/helper-module-imports": "^7.22.15", "@babel/helper-plugin-utils": "^7.22.5", - "babel-plugin-polyfill-corejs2": "^0.4.3", - "babel-plugin-polyfill-corejs3": "^0.8.1", - "babel-plugin-polyfill-regenerator": "^0.5.0", - "semver": "^6.3.0" + "babel-plugin-polyfill-corejs2": "^0.4.5", + "babel-plugin-polyfill-corejs3": "^0.8.3", + "babel-plugin-polyfill-regenerator": "^0.5.2", + "semver": "^6.3.1" + }, + "dependencies": { + "semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true + } } }, "@babel/plugin-transform-shorthand-properties": { @@ -10297,9 +10457,9 @@ } }, "@babel/plugin-transform-unicode-escapes": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.22.5.tgz", - "integrity": "sha512-biEmVg1IYB/raUO5wT1tgfacCef15Fbzhkx493D3urBI++6hpJ+RFG4SrWMn0NEZLfvilqKf3QDrRVZHo08FYg==", + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.22.10.tgz", + "integrity": "sha512-lRfaRKGZCBqDlRU3UIFovdp9c9mEvlylmpod0/OatICsSfuQ9YFthRo1tpTkGsklEefZdqlEFdY4A2dwTb6ohg==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.22.5" @@ -10336,17 +10496,17 @@ } }, "@babel/preset-env": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.22.5.tgz", - "integrity": "sha512-fj06hw89dpiZzGZtxn+QybifF07nNiZjZ7sazs2aVDcysAZVGjW7+7iFYxg6GLNM47R/thYfLdrXc+2f11Vi9A==", + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.22.20.tgz", + "integrity": "sha512-11MY04gGC4kSzlPHRfvVkNAZhUxOvm7DCJ37hPDnUENwe06npjIRAfInEMTGSb4LZK5ZgDFkv5hw0lGebHeTyg==", "dev": true, "requires": { - "@babel/compat-data": "^7.22.5", - "@babel/helper-compilation-targets": "^7.22.5", + "@babel/compat-data": "^7.22.20", + "@babel/helper-compilation-targets": "^7.22.15", "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-validator-option": "^7.22.5", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.22.5", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.22.5", + "@babel/helper-validator-option": "^7.22.15", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.22.15", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.22.15", "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", "@babel/plugin-syntax-async-generators": "^7.8.4", "@babel/plugin-syntax-class-properties": "^7.12.13", @@ -10367,71 +10527,77 @@ "@babel/plugin-syntax-top-level-await": "^7.14.5", "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", "@babel/plugin-transform-arrow-functions": "^7.22.5", - "@babel/plugin-transform-async-generator-functions": "^7.22.5", + "@babel/plugin-transform-async-generator-functions": "^7.22.15", "@babel/plugin-transform-async-to-generator": "^7.22.5", "@babel/plugin-transform-block-scoped-functions": "^7.22.5", - "@babel/plugin-transform-block-scoping": "^7.22.5", + "@babel/plugin-transform-block-scoping": "^7.22.15", "@babel/plugin-transform-class-properties": "^7.22.5", - "@babel/plugin-transform-class-static-block": "^7.22.5", - "@babel/plugin-transform-classes": "^7.22.5", + "@babel/plugin-transform-class-static-block": "^7.22.11", + "@babel/plugin-transform-classes": "^7.22.15", "@babel/plugin-transform-computed-properties": "^7.22.5", - "@babel/plugin-transform-destructuring": "^7.22.5", + "@babel/plugin-transform-destructuring": "^7.22.15", "@babel/plugin-transform-dotall-regex": "^7.22.5", "@babel/plugin-transform-duplicate-keys": "^7.22.5", - "@babel/plugin-transform-dynamic-import": "^7.22.5", + "@babel/plugin-transform-dynamic-import": "^7.22.11", "@babel/plugin-transform-exponentiation-operator": "^7.22.5", - "@babel/plugin-transform-export-namespace-from": "^7.22.5", - "@babel/plugin-transform-for-of": "^7.22.5", + "@babel/plugin-transform-export-namespace-from": "^7.22.11", + "@babel/plugin-transform-for-of": "^7.22.15", "@babel/plugin-transform-function-name": "^7.22.5", - "@babel/plugin-transform-json-strings": "^7.22.5", + "@babel/plugin-transform-json-strings": "^7.22.11", "@babel/plugin-transform-literals": "^7.22.5", - "@babel/plugin-transform-logical-assignment-operators": "^7.22.5", + "@babel/plugin-transform-logical-assignment-operators": "^7.22.11", "@babel/plugin-transform-member-expression-literals": "^7.22.5", "@babel/plugin-transform-modules-amd": "^7.22.5", - "@babel/plugin-transform-modules-commonjs": "^7.22.5", - "@babel/plugin-transform-modules-systemjs": "^7.22.5", + "@babel/plugin-transform-modules-commonjs": "^7.22.15", + "@babel/plugin-transform-modules-systemjs": "^7.22.11", "@babel/plugin-transform-modules-umd": "^7.22.5", "@babel/plugin-transform-named-capturing-groups-regex": "^7.22.5", "@babel/plugin-transform-new-target": "^7.22.5", - "@babel/plugin-transform-nullish-coalescing-operator": "^7.22.5", - "@babel/plugin-transform-numeric-separator": "^7.22.5", - "@babel/plugin-transform-object-rest-spread": "^7.22.5", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.22.11", + "@babel/plugin-transform-numeric-separator": "^7.22.11", + "@babel/plugin-transform-object-rest-spread": "^7.22.15", "@babel/plugin-transform-object-super": "^7.22.5", - "@babel/plugin-transform-optional-catch-binding": "^7.22.5", - "@babel/plugin-transform-optional-chaining": "^7.22.5", - "@babel/plugin-transform-parameters": "^7.22.5", + "@babel/plugin-transform-optional-catch-binding": "^7.22.11", + "@babel/plugin-transform-optional-chaining": "^7.22.15", + "@babel/plugin-transform-parameters": "^7.22.15", "@babel/plugin-transform-private-methods": "^7.22.5", - "@babel/plugin-transform-private-property-in-object": "^7.22.5", + "@babel/plugin-transform-private-property-in-object": "^7.22.11", "@babel/plugin-transform-property-literals": "^7.22.5", - "@babel/plugin-transform-regenerator": "^7.22.5", + "@babel/plugin-transform-regenerator": "^7.22.10", "@babel/plugin-transform-reserved-words": "^7.22.5", "@babel/plugin-transform-shorthand-properties": "^7.22.5", "@babel/plugin-transform-spread": "^7.22.5", "@babel/plugin-transform-sticky-regex": "^7.22.5", "@babel/plugin-transform-template-literals": "^7.22.5", "@babel/plugin-transform-typeof-symbol": "^7.22.5", - "@babel/plugin-transform-unicode-escapes": "^7.22.5", + "@babel/plugin-transform-unicode-escapes": "^7.22.10", "@babel/plugin-transform-unicode-property-regex": "^7.22.5", "@babel/plugin-transform-unicode-regex": "^7.22.5", "@babel/plugin-transform-unicode-sets-regex": "^7.22.5", - "@babel/preset-modules": "^0.1.5", - "@babel/types": "^7.22.5", - "babel-plugin-polyfill-corejs2": "^0.4.3", - "babel-plugin-polyfill-corejs3": "^0.8.1", - "babel-plugin-polyfill-regenerator": "^0.5.0", - "core-js-compat": "^3.30.2", - "semver": "^6.3.0" + "@babel/preset-modules": "0.1.6-no-external-plugins", + "@babel/types": "^7.22.19", + "babel-plugin-polyfill-corejs2": "^0.4.5", + "babel-plugin-polyfill-corejs3": "^0.8.3", + "babel-plugin-polyfill-regenerator": "^0.5.2", + "core-js-compat": "^3.31.0", + "semver": "^6.3.1" + }, + "dependencies": { + "semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true + } } }, "@babel/preset-modules": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz", - "integrity": "sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==", + "version": "0.1.6-no-external-plugins", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", + "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", - "@babel/plugin-transform-dotall-regex": "^7.4.4", "@babel/types": "^7.4.4", "esutils": "^2.0.2" } @@ -10443,23 +10609,23 @@ "dev": true }, "@babel/runtime": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.22.5.tgz", - "integrity": "sha512-ecjvYlnAaZ/KVneE/OdKYBYfgXV3Ptu6zQWmgEF7vwKhQnvVS6bjMD2XYgj+SNvQ1GfK/pjgokfPkC/2CO8CuA==", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.22.15.tgz", + "integrity": "sha512-T0O+aa+4w0u06iNmapipJXMV4HoUir03hpx3/YqXXhu9xim3w+dVphjFWl1OH8NbZHw5Lbm9k45drDkgq2VNNA==", "dev": true, "requires": { - "regenerator-runtime": "^0.13.11" + "regenerator-runtime": "^0.14.0" } }, "@babel/template": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.5.tgz", - "integrity": "sha512-X7yV7eiwAxdj9k94NEylvbVHLiVG1nvzCV2EAowhxLTwODV1jl9UzZ48leOC0sH7OnuHrIkllaBgneUykIcZaw==", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz", + "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==", "dev": true, "requires": { - "@babel/code-frame": "^7.22.5", - "@babel/parser": "^7.22.5", - "@babel/types": "^7.22.5" + "@babel/code-frame": "^7.22.13", + "@babel/parser": "^7.22.15", + "@babel/types": "^7.22.15" } }, "@babel/traverse": { @@ -10481,13 +10647,13 @@ } }, "@babel/types": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.22.5.tgz", - "integrity": "sha512-zo3MIHGOkPOfoRXitsgHLjEXmlDaD/5KU1Uzuc9GNiZPhSqVxVRtxuPaSBZDsYZ9qV88AjtMtWW7ww98loJ9KA==", + "version": "7.22.19", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.22.19.tgz", + "integrity": "sha512-P7LAw/LbojPzkgp5oznjE6tQEIWbp4PkkfrZDINTro9zgBRtI324/EYsiSI7lhPbpIQ+DCeR2NNmMWANGGfZsg==", "dev": true, "requires": { "@babel/helper-string-parser": "^7.22.5", - "@babel/helper-validator-identifier": "^7.22.5", + "@babel/helper-validator-identifier": "^7.22.19", "to-fast-properties": "^2.0.0" } }, @@ -10517,16 +10683,16 @@ "dev": true }, "@jest/console": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.5.0.tgz", - "integrity": "sha512-NEpkObxPwyw/XxZVLPmAGKE89IQRp4puc6IQRPru6JKd1M3fW9v1xM1AnzIJE65hbCkzQAdnL8P47e9hzhiYLQ==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.7.0.tgz", + "integrity": "sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==", "dev": true, "requires": { - "@jest/types": "^29.5.0", + "@jest/types": "^29.6.3", "@types/node": "*", "chalk": "^4.0.0", - "jest-message-util": "^29.5.0", - "jest-util": "^29.5.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", "slash": "^3.0.0" }, "dependencies": { @@ -10582,37 +10748,37 @@ } }, "@jest/core": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.5.0.tgz", - "integrity": "sha512-28UzQc7ulUrOQw1IsN/kv1QES3q2kkbl/wGslyhAclqZ/8cMdB5M68BffkIdSJgKBUt50d3hbwJ92XESlE7LiQ==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.7.0.tgz", + "integrity": "sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==", "dev": true, "requires": { - "@jest/console": "^29.5.0", - "@jest/reporters": "^29.5.0", - "@jest/test-result": "^29.5.0", - "@jest/transform": "^29.5.0", - "@jest/types": "^29.5.0", + "@jest/console": "^29.7.0", + "@jest/reporters": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", "@types/node": "*", "ansi-escapes": "^4.2.1", "chalk": "^4.0.0", "ci-info": "^3.2.0", "exit": "^0.1.2", "graceful-fs": "^4.2.9", - "jest-changed-files": "^29.5.0", - "jest-config": "^29.5.0", - "jest-haste-map": "^29.5.0", - "jest-message-util": "^29.5.0", - "jest-regex-util": "^29.4.3", - "jest-resolve": "^29.5.0", - "jest-resolve-dependencies": "^29.5.0", - "jest-runner": "^29.5.0", - "jest-runtime": "^29.5.0", - "jest-snapshot": "^29.5.0", - "jest-util": "^29.5.0", - "jest-validate": "^29.5.0", - "jest-watcher": "^29.5.0", + "jest-changed-files": "^29.7.0", + "jest-config": "^29.7.0", + "jest-haste-map": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-resolve-dependencies": "^29.7.0", + "jest-runner": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "jest-watcher": "^29.7.0", "micromatch": "^4.0.4", - "pretty-format": "^29.5.0", + "pretty-format": "^29.7.0", "slash": "^3.0.0", "strip-ansi": "^6.0.0" }, @@ -10669,74 +10835,74 @@ } }, "@jest/environment": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.5.0.tgz", - "integrity": "sha512-5FXw2+wD29YU1d4I2htpRX7jYnAyTRjP2CsXQdo9SAM8g3ifxWPSV0HnClSn71xwctr0U3oZIIH+dtbfmnbXVQ==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.7.0.tgz", + "integrity": "sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==", "dev": true, "requires": { - "@jest/fake-timers": "^29.5.0", - "@jest/types": "^29.5.0", + "@jest/fake-timers": "^29.7.0", + "@jest/types": "^29.6.3", "@types/node": "*", - "jest-mock": "^29.5.0" + "jest-mock": "^29.7.0" } }, "@jest/expect": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.5.0.tgz", - "integrity": "sha512-PueDR2HGihN3ciUNGr4uelropW7rqUfTiOn+8u0leg/42UhblPxHkfoh0Ruu3I9Y1962P3u2DY4+h7GVTSVU6g==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.7.0.tgz", + "integrity": "sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==", "dev": true, "requires": { - "expect": "^29.5.0", - "jest-snapshot": "^29.5.0" + "expect": "^29.7.0", + "jest-snapshot": "^29.7.0" } }, "@jest/expect-utils": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.5.0.tgz", - "integrity": "sha512-fmKzsidoXQT2KwnrwE0SQq3uj8Z763vzR8LnLBwC2qYWEFpjX8daRsk6rHUM1QvNlEW/UJXNXm59ztmJJWs2Mg==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.7.0.tgz", + "integrity": "sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==", "dev": true, "requires": { - "jest-get-type": "^29.4.3" + "jest-get-type": "^29.6.3" } }, "@jest/fake-timers": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.5.0.tgz", - "integrity": "sha512-9ARvuAAQcBwDAqOnglWq2zwNIRUDtk/SCkp/ToGEhFv5r86K21l+VEs0qNTaXtyiY0lEePl3kylijSYJQqdbDg==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.7.0.tgz", + "integrity": "sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==", "dev": true, "requires": { - "@jest/types": "^29.5.0", + "@jest/types": "^29.6.3", "@sinonjs/fake-timers": "^10.0.2", "@types/node": "*", - "jest-message-util": "^29.5.0", - "jest-mock": "^29.5.0", - "jest-util": "^29.5.0" + "jest-message-util": "^29.7.0", + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0" } }, "@jest/globals": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.5.0.tgz", - "integrity": "sha512-S02y0qMWGihdzNbUiqSAiKSpSozSuHX5UYc7QbnHP+D9Lyw8DgGGCinrN9uSuHPeKgSSzvPom2q1nAtBvUsvPQ==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.7.0.tgz", + "integrity": "sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==", "dev": true, "requires": { - "@jest/environment": "^29.5.0", - "@jest/expect": "^29.5.0", - "@jest/types": "^29.5.0", - "jest-mock": "^29.5.0" + "@jest/environment": "^29.7.0", + "@jest/expect": "^29.7.0", + "@jest/types": "^29.6.3", + "jest-mock": "^29.7.0" } }, "@jest/reporters": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.5.0.tgz", - "integrity": "sha512-D05STXqj/M8bP9hQNSICtPqz97u7ffGzZu+9XLucXhkOFBqKcXe04JLZOgIekOxdb73MAoBUFnqvf7MCpKk5OA==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.7.0.tgz", + "integrity": "sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==", "dev": true, "requires": { "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "^29.5.0", - "@jest/test-result": "^29.5.0", - "@jest/transform": "^29.5.0", - "@jest/types": "^29.5.0", - "@jridgewell/trace-mapping": "^0.3.15", + "@jest/console": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@jridgewell/trace-mapping": "^0.3.18", "@types/node": "*", "chalk": "^4.0.0", "collect-v8-coverage": "^1.0.0", @@ -10744,13 +10910,13 @@ "glob": "^7.1.3", "graceful-fs": "^4.2.9", "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-instrument": "^5.1.0", + "istanbul-lib-instrument": "^6.0.0", "istanbul-lib-report": "^3.0.0", "istanbul-lib-source-maps": "^4.0.0", "istanbul-reports": "^3.1.3", - "jest-message-util": "^29.5.0", - "jest-util": "^29.5.0", - "jest-worker": "^29.5.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "jest-worker": "^29.7.0", "slash": "^3.0.0", "string-length": "^4.0.1", "strip-ansi": "^6.0.0", @@ -10821,6 +10987,28 @@ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true }, + "istanbul-lib-instrument": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.0.tgz", + "integrity": "sha512-x58orMzEVfzPUKqlbLd1hXCnySCxKdDKa6Rjg97CwuLLRI4g3FHTdnExu1OqffVFay6zeMW+T6/DowFLndWnIw==", + "dev": true, + "requires": { + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^7.5.4" + } + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, "minimatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", @@ -10830,6 +11018,15 @@ "brace-expansion": "^1.1.7" } }, + "semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, "supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -10838,70 +11035,76 @@ "requires": { "has-flag": "^4.0.0" } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true } } }, "@jest/schemas": { - "version": "29.4.3", - "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.4.3.tgz", - "integrity": "sha512-VLYKXQmtmuEz6IxJsrZwzG9NvtkQsWNnWMsKxqWNu3+CnfzJQhp0WDDKWLVV9hLKr0l3SLLFRqcYHjhtyuDVxg==", + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", + "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", "dev": true, "requires": { - "@sinclair/typebox": "^0.25.16" + "@sinclair/typebox": "^0.27.8" } }, "@jest/source-map": { - "version": "29.4.3", - "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.4.3.tgz", - "integrity": "sha512-qyt/mb6rLyd9j1jUts4EQncvS6Yy3PM9HghnNv86QBlV+zdL2inCdK1tuVlL+J+lpiw2BI67qXOrX3UurBqQ1w==", + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.6.3.tgz", + "integrity": "sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==", "dev": true, "requires": { - "@jridgewell/trace-mapping": "^0.3.15", + "@jridgewell/trace-mapping": "^0.3.18", "callsites": "^3.0.0", "graceful-fs": "^4.2.9" } }, "@jest/test-result": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.5.0.tgz", - "integrity": "sha512-fGl4rfitnbfLsrfx1uUpDEESS7zM8JdgZgOCQuxQvL1Sn/I6ijeAVQWGfXI9zb1i9Mzo495cIpVZhA0yr60PkQ==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.7.0.tgz", + "integrity": "sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==", "dev": true, "requires": { - "@jest/console": "^29.5.0", - "@jest/types": "^29.5.0", + "@jest/console": "^29.7.0", + "@jest/types": "^29.6.3", "@types/istanbul-lib-coverage": "^2.0.0", "collect-v8-coverage": "^1.0.0" } }, "@jest/test-sequencer": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.5.0.tgz", - "integrity": "sha512-yPafQEcKjkSfDXyvtgiV4pevSeyuA6MQr6ZIdVkWJly9vkqjnFfcfhRQqpD5whjoU8EORki752xQmjaqoFjzMQ==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.7.0.tgz", + "integrity": "sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==", "dev": true, "requires": { - "@jest/test-result": "^29.5.0", + "@jest/test-result": "^29.7.0", "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.5.0", + "jest-haste-map": "^29.7.0", "slash": "^3.0.0" } }, "@jest/transform": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.5.0.tgz", - "integrity": "sha512-8vbeZWqLJOvHaDfeMuoHITGKSz5qWc9u04lnWrQE3VyuSw604PzQM824ZeX9XSjUCeDiE3GuxZe5UKa8J61NQw==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.7.0.tgz", + "integrity": "sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==", "dev": true, "requires": { "@babel/core": "^7.11.6", - "@jest/types": "^29.5.0", - "@jridgewell/trace-mapping": "^0.3.15", + "@jest/types": "^29.6.3", + "@jridgewell/trace-mapping": "^0.3.18", "babel-plugin-istanbul": "^6.1.1", "chalk": "^4.0.0", "convert-source-map": "^2.0.0", "fast-json-stable-stringify": "^2.1.0", "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.5.0", - "jest-regex-util": "^29.4.3", - "jest-util": "^29.5.0", + "jest-haste-map": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-util": "^29.7.0", "micromatch": "^4.0.4", "pirates": "^4.0.4", "slash": "^3.0.0", @@ -10966,12 +11169,12 @@ } }, "@jest/types": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.5.0.tgz", - "integrity": "sha512-qbu7kN6czmVRc3xWFQcAN03RAUamgppVUdXrvl1Wr3jlNF93o9mJbGcDWrwGB6ht44u7efB1qCFgVQmca24Uog==", + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz", + "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==", "dev": true, "requires": { - "@jest/schemas": "^29.4.3", + "@jest/schemas": "^29.6.3", "@types/istanbul-lib-coverage": "^2.0.0", "@types/istanbul-reports": "^3.0.0", "@types/node": "*", @@ -11059,13 +11262,13 @@ "dev": true }, "@jridgewell/trace-mapping": { - "version": "0.3.17", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz", - "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==", + "version": "0.3.19", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.19.tgz", + "integrity": "sha512-kf37QtfW+Hwx/buWGMPcR60iF9ziHa6r/CZJIHbmcm4+0qrXiVdxegAH0F6yddEVQ7zdkjcGCgCzUu+BcbhQxw==", "dev": true, "requires": { - "@jridgewell/resolve-uri": "3.1.0", - "@jridgewell/sourcemap-codec": "1.4.14" + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" } }, "@kurkle/color": { @@ -11150,33 +11353,33 @@ "dev": true }, "@sinclair/typebox": { - "version": "0.25.21", - "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.25.21.tgz", - "integrity": "sha512-gFukHN4t8K4+wVC+ECqeqwzBDeFeTzBXroBTqE6vcWrQGbEUpHO7LYdG0f4xnvYq4VOEwITSlHlp0JBAIFMS/g==", + "version": "0.27.8", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", + "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", "dev": true }, "@sinonjs/commons": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-2.0.0.tgz", - "integrity": "sha512-uLa0j859mMrg2slwQYdO/AkrOfmH+X6LTVmNTS9CqexuE2IvVORIkSpJLqePAbEnKJ77aMmCwr1NUZ57120Xcg==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.0.tgz", + "integrity": "sha512-jXBtWAF4vmdNmZgD5FoKsVLv3rPgDnLgPbU84LIJ3otV44vJlDRokVng5v8NFJdCf/da9legHcKaRuZs4L7faA==", "dev": true, "requires": { "type-detect": "4.0.8" } }, "@sinonjs/fake-timers": { - "version": "10.0.2", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.0.2.tgz", - "integrity": "sha512-SwUDyjWnah1AaNl7kxsa7cfLhlTYoiyhDAIgyh+El30YvXs/o7OLXpYH88Zdhyx9JExKrmHDJ+10bwIcY80Jmw==", + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz", + "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==", "dev": true, "requires": { - "@sinonjs/commons": "^2.0.0" + "@sinonjs/commons": "^3.0.0" } }, "@types/babel__core": { - "version": "7.20.0", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.0.tgz", - "integrity": "sha512-+n8dL/9GWblDO0iU6eZAwEIJVr5DWigtle+Q6HLOrh/pdbXOhOtqzq8VPPE2zvNJzSKY4vH/z3iT3tn0A3ypiQ==", + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.2.tgz", + "integrity": "sha512-pNpr1T1xLUc2l3xJKuPtsEky3ybxN3m4fJkknfIpTCTfIZCDW57oAg+EfCgIIp2rvCe0Wn++/FfodDS4YXxBwA==", "dev": true, "requires": { "@babel/parser": "^7.20.7", @@ -11187,18 +11390,18 @@ } }, "@types/babel__generator": { - "version": "7.6.4", - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.4.tgz", - "integrity": "sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==", + "version": "7.6.5", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.5.tgz", + "integrity": "sha512-h9yIuWbJKdOPLJTbmSpPzkF67e659PbQDba7ifWm5BJ8xTv+sDmS7rFmywkWOvXedGTivCdeGSIIX8WLcRTz8w==", "dev": true, "requires": { "@babel/types": "^7.0.0" } }, "@types/babel__template": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.1.tgz", - "integrity": "sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==", + "version": "7.4.2", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.2.tgz", + "integrity": "sha512-/AVzPICMhMOMYoSx9MoKpGDKdBRsIXMNByh1PXSZoa+v6ZoLa8xxtsT/uLQ/NJm0XVAWl/BvId4MlDeXJaeIZQ==", "dev": true, "requires": { "@babel/parser": "^7.1.0", @@ -11206,12 +11409,12 @@ } }, "@types/babel__traverse": { - "version": "7.18.3", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.18.3.tgz", - "integrity": "sha512-1kbcJ40lLB7MHsj39U4Sh1uTd2E7rLEa79kmDpI6cy+XiXsteB3POdQomoq4FxszMrO3ZYchkhYJw7A2862b3w==", + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.2.tgz", + "integrity": "sha512-ojlGK1Hsfce93J0+kn3H5R73elidKUaZonirN33GSmgTUMpzI/MIFfSpF3haANe3G1bEBS9/9/QEqwTzwqFsKw==", "dev": true, "requires": { - "@babel/types": "^7.3.0" + "@babel/types": "^7.20.7" } }, "@types/graceful-fs": { @@ -11248,9 +11451,9 @@ } }, "@types/jest": { - "version": "29.5.2", - "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.5.2.tgz", - "integrity": "sha512-mSoZVJF5YzGVCk+FsDxzDuH7s+SCkzrgKZzf0Z0T2WudhBUPoF6ktoTPC4R0ZoCPCV5xUvuU6ias5NvxcBcMMg==", + "version": "29.5.5", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.5.5.tgz", + "integrity": "sha512-ebylz2hnsWR9mYvmBFbXJXr+33UPc4+ZdxyDXh5w0FlPBTfCVN3wPL+kuOiQt3xvrK419v7XWeAs+AeOksafXg==", "dev": true, "requires": { "expect": "^29.0.0", @@ -11263,12 +11466,6 @@ "integrity": "sha512-DHQpWGjyQKSHj3ebjFI/wRKcqQcdR+MoFBygntYOZytCqNfkd2ZC4ARDJ2DQqhjH5p85Nnd3jhUJIXrszFX/JA==", "dev": true }, - "@types/prettier": { - "version": "2.7.2", - "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.2.tgz", - "integrity": "sha512-KufADq8uQqo1pYKVIYzfKbJfBAc0sOeXqGbFaSpv8MRmC/zXgowNZmFcbngndGk922QDmOASEXUZCaY48gs4cg==", - "dev": true - }, "@types/stack-utils": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", @@ -11276,15 +11473,15 @@ "dev": true }, "@types/tough-cookie": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-4.0.2.tgz", - "integrity": "sha512-Q5vtl1W5ue16D+nIaW8JWebSSraJVlK+EthKn7e7UcD4KWsaSJ8BqGPXNaPghgtcn/fhvrN17Tv8ksUsQpiplw==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-4.0.3.tgz", + "integrity": "sha512-THo502dA5PzG/sfQH+42Lw3fvmYkceefOspdCwpHRul8ik2Jv1K8I5OZz1AT3/rs46kwgMCe9bSBmDLYkkOMGg==", "dev": true }, "@types/uuid": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-9.0.2.tgz", - "integrity": "sha512-kNnC1GFBLuhImSnV7w4njQkUiJi0ZXUycu1rUaouPqiKlXkh77JKgdRnTAp1x5eBwcIwbtI+3otwzuIDEuDoxQ==", + "version": "9.0.4", + "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-9.0.4.tgz", + "integrity": "sha512-zAuJWQflfx6dYJM62vna+Sn5aeSWhh3OB+wfUEACNcqUSc0AGc5JKl+ycL1vrH7frGTXhJchYjE1Hak8L819dA==", "dev": true }, "@types/yargs": { @@ -11309,12 +11506,12 @@ "dev": true }, "agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.0.tgz", + "integrity": "sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==", "dev": true, "requires": { - "debug": "4" + "debug": "^4.3.4" } }, "ajv": { @@ -11391,9 +11588,9 @@ "dev": true }, "aws-sdk": { - "version": "2.1398.0", - "resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1398.0.tgz", - "integrity": "sha512-jiHAhKPPKDHZdwsbY9FD/WfX9RfQ7+7eKvXyXr7BYf0JIShok4TWan/iLdNWCtU0BhXYl+bfG9W0pG4rwJ9Ivg==", + "version": "2.1462.0", + "resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1462.0.tgz", + "integrity": "sha512-gEcp/YWUp0zrM/LujI3cTLbOTK6XLwGSHWQII57jjRvjsIMacLomnIcd7fGKSfREAIHr5saexISRsnXhfI+Vgw==", "dev": true, "requires": { "buffer": "4.9.2", @@ -11413,13 +11610,23 @@ "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.0.0.tgz", "integrity": "sha512-jOXGuXZAWdsTH7eZLtyXMqUb9EcWMGZNbL9YcGBJl4MH4nrxHmZJhEHvyLFrkxo+28uLb/NYRcStH48fnD0Vzw==", "dev": true + }, + "xml2js": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.5.0.tgz", + "integrity": "sha512-drPFnkQJik/O+uPKpqSgr22mpuFHqKdbS835iAQrUC73L2F5WkboIRd63ai/2Yg6I1jzifPFKH2NTK+cfglkIA==", + "dev": true, + "requires": { + "sax": ">=0.6.0", + "xmlbuilder": "~11.0.0" + } } } }, "axios": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.4.0.tgz", - "integrity": "sha512-S4XCWMEmzvo64T9GfvQDOXgYRDJ/wsSZc7Jvdgx5u1sd0JwsuPLqb3SYmusag+edF6ziyMensPVqLTSc1PiSEA==", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.5.0.tgz", + "integrity": "sha512-D4DdjDo5CY50Qms0qGQTTw6Q44jl7zRwY7bthds06pUGfChBCTcQs+N743eFWGEd6pRTMd6A+I87aWyFV5wiZQ==", "dev": true, "requires": { "follow-redirects": "^1.15.0", @@ -11428,24 +11635,24 @@ } }, "axios-cookiejar-support": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/axios-cookiejar-support/-/axios-cookiejar-support-4.0.6.tgz", - "integrity": "sha512-lWDhgM6bc2xYAsHkXEhceLpTu9ytAeIz1VSuL5FoUgGx2lqcMNbNxTD9Hm4x5c8JF5Me0HfNrb06fhEGMC30mQ==", + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/axios-cookiejar-support/-/axios-cookiejar-support-4.0.7.tgz", + "integrity": "sha512-9vpE3y/a2l2Vs2XEJE4L2z0GWnlpJ4Xj+kDaoCtrpPfS1J3oikXBrxRJX6H62/ZcelOGe+519yW7mqXCIoPXuw==", "dev": true, "requires": { - "http-cookie-agent": "^5.0.2" + "http-cookie-agent": "^5.0.4" } }, "babel-jest": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.5.0.tgz", - "integrity": "sha512-mA4eCDh5mSo2EcA9xQjVTpmbbNk32Zb3Q3QFQsNhaK56Q+yoXowzFodLux30HRgyOho5rsQ6B0P9QpMkvvnJ0Q==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.7.0.tgz", + "integrity": "sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==", "dev": true, "requires": { - "@jest/transform": "^29.5.0", + "@jest/transform": "^29.7.0", "@types/babel__core": "^7.1.14", "babel-plugin-istanbul": "^6.1.1", - "babel-preset-jest": "^29.5.0", + "babel-preset-jest": "^29.6.3", "chalk": "^4.0.0", "graceful-fs": "^4.2.9", "slash": "^3.0.0" @@ -11516,9 +11723,9 @@ } }, "babel-plugin-jest-hoist": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.5.0.tgz", - "integrity": "sha512-zSuuuAlTMT4mzLj2nPnUm6fsE6270vdOfnpbJ+RmruU75UhLFvL0N2NgI7xpeS7NaB6hGqmd5pVpGTDYvi4Q3w==", + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz", + "integrity": "sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==", "dev": true, "requires": { "@babel/template": "^7.3.3", @@ -11541,33 +11748,41 @@ } }, "babel-plugin-polyfill-corejs2": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.3.tgz", - "integrity": "sha512-bM3gHc337Dta490gg+/AseNB9L4YLHxq1nGKZZSHbhXv4aTYU2MD2cjza1Ru4S6975YLTaL1K8uJf6ukJhhmtw==", + "version": "0.4.5", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.5.tgz", + "integrity": "sha512-19hwUH5FKl49JEsvyTcoHakh6BE0wgXLLptIyKZ3PijHc/Ci521wygORCUCCred+E/twuqRyAkE02BAWPmsHOg==", "dev": true, "requires": { - "@babel/compat-data": "^7.17.7", - "@babel/helper-define-polyfill-provider": "^0.4.0", - "semver": "^6.1.1" + "@babel/compat-data": "^7.22.6", + "@babel/helper-define-polyfill-provider": "^0.4.2", + "semver": "^6.3.1" + }, + "dependencies": { + "semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true + } } }, "babel-plugin-polyfill-corejs3": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.1.tgz", - "integrity": "sha512-ikFrZITKg1xH6pLND8zT14UPgjKHiGLqex7rGEZCH2EvhsneJaJPemmpQaIZV5AL03II+lXylw3UmddDK8RU5Q==", + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.3.tgz", + "integrity": "sha512-z41XaniZL26WLrvjy7soabMXrfPWARN25PZoriDEiLMxAp50AUW3t35BGQUMg5xK3UrpVTtagIDklxYa+MhiNA==", "dev": true, "requires": { - "@babel/helper-define-polyfill-provider": "^0.4.0", - "core-js-compat": "^3.30.1" + "@babel/helper-define-polyfill-provider": "^0.4.2", + "core-js-compat": "^3.31.0" } }, "babel-plugin-polyfill-regenerator": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.0.tgz", - "integrity": "sha512-hDJtKjMLVa7Z+LwnTCxoDLQj6wdc+B8dun7ayF2fYieI6OzfuvcLMB32ihJZ4UhCBwNYGl5bg/x/P9cMdnkc2g==", + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.2.tgz", + "integrity": "sha512-tAlOptU0Xj34V1Y2PNTL4Y0FOJMDB6bZmoW39FeCQIhigGLkqu3Fj6uiXpxIf6Ij274ENdYx64y6Au+ZKlb1IA==", "dev": true, "requires": { - "@babel/helper-define-polyfill-provider": "^0.4.0" + "@babel/helper-define-polyfill-provider": "^0.4.2" } }, "babel-preset-current-node-syntax": { @@ -11591,12 +11806,12 @@ } }, "babel-preset-jest": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.5.0.tgz", - "integrity": "sha512-JOMloxOqdiBSxMAzjRaH023/vvcaSaec49zvg+2LmNsktC7ei39LTJGw02J+9uUtTZUq6xbLyJ4dxe9sSmIuAg==", + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz", + "integrity": "sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==", "dev": true, "requires": { - "babel-plugin-jest-hoist": "^29.5.0", + "babel-plugin-jest-hoist": "^29.6.3", "babel-preset-current-node-syntax": "^1.0.0" } }, @@ -11650,15 +11865,15 @@ "dev": true }, "browserslist": { - "version": "4.21.5", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.5.tgz", - "integrity": "sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==", + "version": "4.21.11", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.11.tgz", + "integrity": "sha512-xn1UXOKUz7DjdGlg9RrUr0GGiWzI97UQJnugHtH0OLDfJB7jMgoIkYvRIEO1l9EeEERVqeqLYOcFBW9ldjypbQ==", "dev": true, "requires": { - "caniuse-lite": "^1.0.30001449", - "electron-to-chromium": "^1.4.284", - "node-releases": "^2.0.8", - "update-browserslist-db": "^1.0.10" + "caniuse-lite": "^1.0.30001538", + "electron-to-chromium": "^1.4.526", + "node-releases": "^2.0.13", + "update-browserslist-db": "^1.0.13" } }, "bs-logger": { @@ -11803,9 +12018,9 @@ "dev": true }, "caniuse-lite": { - "version": "1.0.30001449", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001449.tgz", - "integrity": "sha512-CPB+UL9XMT/Av+pJxCKGhdx+yg1hzplvFJQlJ2n68PyQGMz9L/E2zCyLdOL8uasbouTUgnPl+y0tccI/se+BEw==", + "version": "1.0.30001538", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001538.tgz", + "integrity": "sha512-HWJnhnID+0YMtGlzcp3T9drmBJUVDchPJ08tpUGFLs9CYlwWPH2uLgpHn8fND5pCgXVtnGS3H4QR9XLMHVNkHw==", "dev": true }, "chalk": { @@ -11852,9 +12067,9 @@ "dev": true }, "cjs-module-lexer": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz", - "integrity": "sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==", + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.3.tgz", + "integrity": "sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ==", "dev": true }, "client-oauth2": { @@ -11933,12 +12148,12 @@ "dev": true }, "core-js-compat": { - "version": "3.31.0", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.31.0.tgz", - "integrity": "sha512-hM7YCu1cU6Opx7MXNu0NuumM0ezNeAeRKadixyiQELWY3vT3De9S4J5ZBMraWV2vZnrE1Cirl0GtFtDtMUXzPw==", + "version": "3.32.2", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.32.2.tgz", + "integrity": "sha512-+GjlguTDINOijtVRUxrQOv3kfu9rl+qPNdX2LTbJ/ZyVTuxK+ksVSAGX1nHstu4hrv1En/uPTtWgq2gI5wt4AQ==", "dev": true, "requires": { - "browserslist": "^4.21.5" + "browserslist": "^4.21.10" } }, "core-util-is": { @@ -11947,6 +12162,72 @@ "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", "dev": true }, + "create-jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/create-jest/-/create-jest-29.7.0.tgz", + "integrity": "sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==", + "dev": true, + "requires": { + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-config": "^29.7.0", + "jest-util": "^29.7.0", + "prompts": "^2.0.1" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, "cross-spawn": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-4.0.2.tgz", @@ -11991,10 +12272,11 @@ "dev": true }, "dedent": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", - "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==", - "dev": true + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.5.1.tgz", + "integrity": "sha512-+LxW+KLWxu3HW3M2w2ympwtqPrqYRzU8fqi6Fhd18fBALe15blJPI/I4+UHveMVG6lJqB4JNd4UG0S5cnVHwIg==", + "dev": true, + "requires": {} }, "deepmerge": { "version": "4.3.1", @@ -12021,9 +12303,9 @@ "dev": true }, "detox": { - "version": "20.9.1", - "resolved": "https://registry.npmjs.org/detox/-/detox-20.9.1.tgz", - "integrity": "sha512-o7x9fHhOoVDZK1069RgefqIxY0B53eAnk7N5/3D8qEa8N0YmvylqzAqeYVtnzHYkveZb1pkcruzKC9jomWTEnw==", + "version": "20.11.4", + "resolved": "https://registry.npmjs.org/detox/-/detox-20.11.4.tgz", + "integrity": "sha512-P48KAtK8qIDOxJKUl4q/syPkuHz67kAeFlNodBZg5aO4hJiH+RsbEkQfJSYkTCeZV800EcmUQwZK2M5amLoYaw==", "dev": true, "requires": { "ajv": "^8.6.3", @@ -12172,19 +12454,19 @@ "dev": true }, "diff-sequences": { - "version": "29.4.3", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.4.3.tgz", - "integrity": "sha512-ofrBgwpPhCD85kMKtE9RYFFq6OC1A89oW2vvgWZNCwxrUpRUILopY7lsYyMDSjc8g6U6aiO0Qubg6r4Wgt5ZnA==", + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", + "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", "dev": true }, "diff2html": { - "version": "3.4.31", - "resolved": "https://registry.npmjs.org/diff2html/-/diff2html-3.4.31.tgz", - "integrity": "sha512-bgL4kUUChpBqyFykgalwXRXbeW+zCkGmoH4Ftw6+WFP5JccBUJPNMapfX2WDEb+KOLflrE7eJwvb5r8+zutetw==", + "version": "3.4.43", + "resolved": "https://registry.npmjs.org/diff2html/-/diff2html-3.4.43.tgz", + "integrity": "sha512-cBiJKvyhY3bv+q9VHA7YyNdPk1PA+P9lArpp0MJlcpn1x4eiXYtK3ILNpcHXfgPTCdjjCilGvX9qBelGWtyMCg==", "dev": true, "requires": { "diff": "5.1.0", - "highlight.js": "11.6.0", + "highlight.js": "11.8.0", "hogan.js": "3.0.2" } }, @@ -12214,9 +12496,9 @@ "dev": true }, "electron-to-chromium": { - "version": "1.4.284", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz", - "integrity": "sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==", + "version": "1.4.527", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.527.tgz", + "integrity": "sha512-EafxEiEDzk2aLrdbtVczylHflHdHkNrpGNHIgDyA63sUQLQVS2ayj2hPw3RsVB42qkwURH+T2OxV7kGPUuYszA==", "dev": true }, "emittery": { @@ -12322,16 +12604,16 @@ "dev": true }, "expect": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/expect/-/expect-29.5.0.tgz", - "integrity": "sha512-yM7xqUrCO2JdpFo4XpM82t+PJBFybdqoQuJLDGeDX2ij8NZzqRHyu3Hp188/JX7SWqud+7t4MUdvcgGBICMHZg==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/expect/-/expect-29.7.0.tgz", + "integrity": "sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==", "dev": true, "requires": { - "@jest/expect-utils": "^29.5.0", - "jest-get-type": "^29.4.3", - "jest-matcher-utils": "^29.5.0", - "jest-message-util": "^29.5.0", - "jest-util": "^29.5.0" + "@jest/expect-utils": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0" } }, "fast-deep-equal": { @@ -12583,9 +12865,9 @@ } }, "highlight.js": { - "version": "11.6.0", - "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-11.6.0.tgz", - "integrity": "sha512-ig1eqDzJaB0pqEvlPVIpSSyMaO92bH1N2rJpLMN/nX396wTpDA4Eq0uK+7I/2XG17pFaaKE0kjV/XPeGt7Evjw==", + "version": "11.8.0", + "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-11.8.0.tgz", + "integrity": "sha512-MedQhoqVdr0U6SSnWPzfiadUcDHfN/Wzq25AkXiQv9oiOO/sG0S7XkvpFIqWBl9Yq1UYyYOOVORs5UW2XlPyzg==", "dev": true, "optional": true }, @@ -12620,12 +12902,12 @@ "dev": true }, "http-cookie-agent": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/http-cookie-agent/-/http-cookie-agent-5.0.2.tgz", - "integrity": "sha512-BiBmZyIMGl5mLKmY7KH2uCVlcNUl1jexjdtWXFCUF4DFOrNZg1c5iPPTzWDzU7Ngfb6fB03DPpJQ80KQWmycsg==", + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/http-cookie-agent/-/http-cookie-agent-5.0.4.tgz", + "integrity": "sha512-OtvikW69RvfyP6Lsequ0fN5R49S+8QcS9zwd58k6VSr6r57T8G29BkPdyrBcSwLq6ExLs9V+rBlfxu7gDstJag==", "dev": true, "requires": { - "agent-base": "^6.0.2" + "agent-base": "^7.1.0" } }, "human-signals": { @@ -12884,50 +13166,51 @@ } }, "jest": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest/-/jest-29.5.0.tgz", - "integrity": "sha512-juMg3he2uru1QoXX078zTa7pO85QyB9xajZc6bU+d9yEGwrKX6+vGmJQ3UdVZsvTEUARIdObzH68QItim6OSSQ==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest/-/jest-29.7.0.tgz", + "integrity": "sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==", "dev": true, "requires": { - "@jest/core": "^29.5.0", - "@jest/types": "^29.5.0", + "@jest/core": "^29.7.0", + "@jest/types": "^29.6.3", "import-local": "^3.0.2", - "jest-cli": "^29.5.0" + "jest-cli": "^29.7.0" } }, "jest-changed-files": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.5.0.tgz", - "integrity": "sha512-IFG34IUMUaNBIxjQXF/iu7g6EcdMrGRRxaUSw92I/2g2YC6vCdTltl4nHvt7Ci5nSJwXIkCu8Ka1DKF+X7Z1Ag==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.7.0.tgz", + "integrity": "sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==", "dev": true, "requires": { "execa": "^5.0.0", + "jest-util": "^29.7.0", "p-limit": "^3.1.0" } }, "jest-circus": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.5.0.tgz", - "integrity": "sha512-gq/ongqeQKAplVxqJmbeUOJJKkW3dDNPY8PjhJ5G0lBRvu0e3EWGxGy5cI4LAGA7gV2UHCtWBI4EMXK8c9nQKA==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.7.0.tgz", + "integrity": "sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==", "dev": true, "requires": { - "@jest/environment": "^29.5.0", - "@jest/expect": "^29.5.0", - "@jest/test-result": "^29.5.0", - "@jest/types": "^29.5.0", + "@jest/environment": "^29.7.0", + "@jest/expect": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", "@types/node": "*", "chalk": "^4.0.0", "co": "^4.6.0", - "dedent": "^0.7.0", + "dedent": "^1.0.0", "is-generator-fn": "^2.0.0", - "jest-each": "^29.5.0", - "jest-matcher-utils": "^29.5.0", - "jest-message-util": "^29.5.0", - "jest-runtime": "^29.5.0", - "jest-snapshot": "^29.5.0", - "jest-util": "^29.5.0", + "jest-each": "^29.7.0", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", "p-limit": "^3.1.0", - "pretty-format": "^29.5.0", + "pretty-format": "^29.7.0", "pure-rand": "^6.0.0", "slash": "^3.0.0", "stack-utils": "^2.0.3" @@ -12985,22 +13268,21 @@ } }, "jest-cli": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.5.0.tgz", - "integrity": "sha512-L1KcP1l4HtfwdxXNFCL5bmUbLQiKrakMUriBEcc1Vfz6gx31ORKdreuWvmQVBit+1ss9NNR3yxjwfwzZNdQXJw==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.7.0.tgz", + "integrity": "sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==", "dev": true, "requires": { - "@jest/core": "^29.5.0", - "@jest/test-result": "^29.5.0", - "@jest/types": "^29.5.0", + "@jest/core": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", "chalk": "^4.0.0", + "create-jest": "^29.7.0", "exit": "^0.1.2", - "graceful-fs": "^4.2.9", "import-local": "^3.0.2", - "jest-config": "^29.5.0", - "jest-util": "^29.5.0", - "jest-validate": "^29.5.0", - "prompts": "^2.0.1", + "jest-config": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", "yargs": "^17.3.1" }, "dependencies": { @@ -13052,50 +13334,35 @@ "requires": { "has-flag": "^4.0.0" } - }, - "yargs": { - "version": "17.7.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.1.tgz", - "integrity": "sha512-cwiTb08Xuv5fqF4AovYacTFNxk62th7LKJ6BL9IGUpTJrWoU7/7WdQGTP2SjKf1dUNBGzDd28p/Yfs/GI6JrLw==", - "dev": true, - "requires": { - "cliui": "^8.0.1", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.1.1" - } } } }, "jest-config": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.5.0.tgz", - "integrity": "sha512-kvDUKBnNJPNBmFFOhDbm59iu1Fii1Q6SxyhXfvylq3UTHbg6o7j/g8k2dZyXWLvfdKB1vAPxNZnMgtKJcmu3kA==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.7.0.tgz", + "integrity": "sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==", "dev": true, "requires": { "@babel/core": "^7.11.6", - "@jest/test-sequencer": "^29.5.0", - "@jest/types": "^29.5.0", - "babel-jest": "^29.5.0", + "@jest/test-sequencer": "^29.7.0", + "@jest/types": "^29.6.3", + "babel-jest": "^29.7.0", "chalk": "^4.0.0", "ci-info": "^3.2.0", "deepmerge": "^4.2.2", "glob": "^7.1.3", "graceful-fs": "^4.2.9", - "jest-circus": "^29.5.0", - "jest-environment-node": "^29.5.0", - "jest-get-type": "^29.4.3", - "jest-regex-util": "^29.4.3", - "jest-resolve": "^29.5.0", - "jest-runner": "^29.5.0", - "jest-util": "^29.5.0", - "jest-validate": "^29.5.0", + "jest-circus": "^29.7.0", + "jest-environment-node": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-runner": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", "micromatch": "^4.0.4", "parse-json": "^5.2.0", - "pretty-format": "^29.5.0", + "pretty-format": "^29.7.0", "slash": "^3.0.0", "strip-json-comments": "^3.1.1" }, @@ -13185,15 +13452,15 @@ } }, "jest-diff": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.5.0.tgz", - "integrity": "sha512-LtxijLLZBduXnHSniy0WMdaHjmQnt3g5sa16W4p0HqukYTTsyTW3GD1q41TyGl5YFXj/5B2U6dlh5FM1LIMgxw==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz", + "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==", "dev": true, "requires": { "chalk": "^4.0.0", - "diff-sequences": "^29.4.3", - "jest-get-type": "^29.4.3", - "pretty-format": "^29.5.0" + "diff-sequences": "^29.6.3", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" }, "dependencies": { "ansi-styles": { @@ -13248,25 +13515,25 @@ } }, "jest-docblock": { - "version": "29.4.3", - "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.4.3.tgz", - "integrity": "sha512-fzdTftThczeSD9nZ3fzA/4KkHtnmllawWrXO69vtI+L9WjEIuXWs4AmyME7lN5hU7dB0sHhuPfcKofRsUb/2Fg==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.7.0.tgz", + "integrity": "sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==", "dev": true, "requires": { "detect-newline": "^3.0.0" } }, "jest-each": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.5.0.tgz", - "integrity": "sha512-HM5kIJ1BTnVt+DQZ2ALp3rzXEl+g726csObrW/jpEGl+CDSSQpOJJX2KE/vEg8cxcMXdyEPu6U4QX5eruQv5hA==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.7.0.tgz", + "integrity": "sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==", "dev": true, "requires": { - "@jest/types": "^29.5.0", + "@jest/types": "^29.6.3", "chalk": "^4.0.0", - "jest-get-type": "^29.4.3", - "jest-util": "^29.5.0", - "pretty-format": "^29.5.0" + "jest-get-type": "^29.6.3", + "jest-util": "^29.7.0", + "pretty-format": "^29.7.0" }, "dependencies": { "ansi-styles": { @@ -13321,41 +13588,41 @@ } }, "jest-environment-node": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.5.0.tgz", - "integrity": "sha512-ExxuIK/+yQ+6PRGaHkKewYtg6hto2uGCgvKdb2nfJfKXgZ17DfXjvbZ+jA1Qt9A8EQSfPnt5FKIfnOO3u1h9qw==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.7.0.tgz", + "integrity": "sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==", "dev": true, "requires": { - "@jest/environment": "^29.5.0", - "@jest/fake-timers": "^29.5.0", - "@jest/types": "^29.5.0", + "@jest/environment": "^29.7.0", + "@jest/fake-timers": "^29.7.0", + "@jest/types": "^29.6.3", "@types/node": "*", - "jest-mock": "^29.5.0", - "jest-util": "^29.5.0" + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0" } }, "jest-get-type": { - "version": "29.4.3", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.4.3.tgz", - "integrity": "sha512-J5Xez4nRRMjk8emnTpWrlkyb9pfRQQanDrvWHhsR1+VUfbwxi30eVcZFlcdGInRibU4G5LwHXpI7IRHU0CY+gg==", + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", + "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", "dev": true }, "jest-haste-map": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.5.0.tgz", - "integrity": "sha512-IspOPnnBro8YfVYSw6yDRKh/TiCdRngjxeacCps1cQ9cgVN6+10JUcuJ1EabrgYLOATsIAigxA0rLR9x/YlrSA==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.7.0.tgz", + "integrity": "sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==", "dev": true, "requires": { - "@jest/types": "^29.5.0", + "@jest/types": "^29.6.3", "@types/graceful-fs": "^4.1.3", "@types/node": "*", "anymatch": "^3.0.3", "fb-watchman": "^2.0.0", "fsevents": "^2.3.2", "graceful-fs": "^4.2.9", - "jest-regex-util": "^29.4.3", - "jest-util": "^29.5.0", - "jest-worker": "^29.5.0", + "jest-regex-util": "^29.6.3", + "jest-util": "^29.7.0", + "jest-worker": "^29.7.0", "micromatch": "^4.0.4", "walker": "^1.0.8" } @@ -13404,25 +13671,25 @@ } }, "jest-leak-detector": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.5.0.tgz", - "integrity": "sha512-u9YdeeVnghBUtpN5mVxjID7KbkKE1QU4f6uUwuxiY0vYRi9BUCLKlPEZfDGR67ofdFmDz9oPAy2G92Ujrntmow==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz", + "integrity": "sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==", "dev": true, "requires": { - "jest-get-type": "^29.4.3", - "pretty-format": "^29.5.0" + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" } }, "jest-matcher-utils": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.5.0.tgz", - "integrity": "sha512-lecRtgm/rjIK0CQ7LPQwzCs2VwW6WAahA55YBuI+xqmhm7LAaxokSB8C97yJeYyT+HvQkH741StzpU41wohhWw==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz", + "integrity": "sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==", "dev": true, "requires": { "chalk": "^4.0.0", - "jest-diff": "^29.5.0", - "jest-get-type": "^29.4.3", - "pretty-format": "^29.5.0" + "jest-diff": "^29.7.0", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" }, "dependencies": { "ansi-styles": { @@ -13477,18 +13744,18 @@ } }, "jest-message-util": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.5.0.tgz", - "integrity": "sha512-Kijeg9Dag6CKtIDA7O21zNTACqD5MD/8HfIV8pdD94vFyFuer52SigdC3IQMhab3vACxXMiFk+yMHNdbqtyTGA==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.7.0.tgz", + "integrity": "sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==", "dev": true, "requires": { "@babel/code-frame": "^7.12.13", - "@jest/types": "^29.5.0", + "@jest/types": "^29.6.3", "@types/stack-utils": "^2.0.0", "chalk": "^4.0.0", "graceful-fs": "^4.2.9", "micromatch": "^4.0.4", - "pretty-format": "^29.5.0", + "pretty-format": "^29.7.0", "slash": "^3.0.0", "stack-utils": "^2.0.3" }, @@ -13545,14 +13812,14 @@ } }, "jest-mock": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.5.0.tgz", - "integrity": "sha512-GqOzvdWDE4fAV2bWQLQCkujxYWL7RxjCnj71b5VhDAGOevB3qj3Ovg26A5NI84ZpODxyzaozXLOh2NCgkbvyaw==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.7.0.tgz", + "integrity": "sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==", "dev": true, "requires": { - "@jest/types": "^29.5.0", + "@jest/types": "^29.6.3", "@types/node": "*", - "jest-util": "^29.5.0" + "jest-util": "^29.7.0" } }, "jest-pnp-resolver": { @@ -13563,23 +13830,23 @@ "requires": {} }, "jest-regex-util": { - "version": "29.4.3", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.4.3.tgz", - "integrity": "sha512-O4FglZaMmWXbGHSQInfXewIsd1LMn9p3ZXB/6r4FOkyhX2/iP/soMG98jGvk/A3HAN78+5VWcBGO0BJAPRh4kg==", + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.6.3.tgz", + "integrity": "sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==", "dev": true }, "jest-resolve": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.5.0.tgz", - "integrity": "sha512-1TzxJ37FQq7J10jPtQjcc+MkCkE3GBpBecsSUWJ0qZNJpmg6m0D9/7II03yJulm3H/fvVjgqLh/k2eYg+ui52w==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.7.0.tgz", + "integrity": "sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==", "dev": true, "requires": { "chalk": "^4.0.0", "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.5.0", + "jest-haste-map": "^29.7.0", "jest-pnp-resolver": "^1.2.2", - "jest-util": "^29.5.0", - "jest-validate": "^29.5.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", "resolve": "^1.20.0", "resolve.exports": "^2.0.0", "slash": "^3.0.0" @@ -13637,40 +13904,40 @@ } }, "jest-resolve-dependencies": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.5.0.tgz", - "integrity": "sha512-sjV3GFr0hDJMBpYeUuGduP+YeCRbd7S/ck6IvL3kQ9cpySYKqcqhdLLC2rFwrcL7tz5vYibomBrsFYWkIGGjOg==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.7.0.tgz", + "integrity": "sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==", "dev": true, "requires": { - "jest-regex-util": "^29.4.3", - "jest-snapshot": "^29.5.0" + "jest-regex-util": "^29.6.3", + "jest-snapshot": "^29.7.0" } }, "jest-runner": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.5.0.tgz", - "integrity": "sha512-m7b6ypERhFghJsslMLhydaXBiLf7+jXy8FwGRHO3BGV1mcQpPbwiqiKUR2zU2NJuNeMenJmlFZCsIqzJCTeGLQ==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.7.0.tgz", + "integrity": "sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==", "dev": true, "requires": { - "@jest/console": "^29.5.0", - "@jest/environment": "^29.5.0", - "@jest/test-result": "^29.5.0", - "@jest/transform": "^29.5.0", - "@jest/types": "^29.5.0", + "@jest/console": "^29.7.0", + "@jest/environment": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", "@types/node": "*", "chalk": "^4.0.0", "emittery": "^0.13.1", "graceful-fs": "^4.2.9", - "jest-docblock": "^29.4.3", - "jest-environment-node": "^29.5.0", - "jest-haste-map": "^29.5.0", - "jest-leak-detector": "^29.5.0", - "jest-message-util": "^29.5.0", - "jest-resolve": "^29.5.0", - "jest-runtime": "^29.5.0", - "jest-util": "^29.5.0", - "jest-watcher": "^29.5.0", - "jest-worker": "^29.5.0", + "jest-docblock": "^29.7.0", + "jest-environment-node": "^29.7.0", + "jest-haste-map": "^29.7.0", + "jest-leak-detector": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-resolve": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-util": "^29.7.0", + "jest-watcher": "^29.7.0", + "jest-worker": "^29.7.0", "p-limit": "^3.1.0", "source-map-support": "0.5.13" }, @@ -13727,31 +13994,31 @@ } }, "jest-runtime": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.5.0.tgz", - "integrity": "sha512-1Hr6Hh7bAgXQP+pln3homOiEZtCDZFqwmle7Ew2j8OlbkIu6uE3Y/etJQG8MLQs3Zy90xrp2C0BRrtPHG4zryw==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.7.0.tgz", + "integrity": "sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==", "dev": true, "requires": { - "@jest/environment": "^29.5.0", - "@jest/fake-timers": "^29.5.0", - "@jest/globals": "^29.5.0", - "@jest/source-map": "^29.4.3", - "@jest/test-result": "^29.5.0", - "@jest/transform": "^29.5.0", - "@jest/types": "^29.5.0", + "@jest/environment": "^29.7.0", + "@jest/fake-timers": "^29.7.0", + "@jest/globals": "^29.7.0", + "@jest/source-map": "^29.6.3", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", "@types/node": "*", "chalk": "^4.0.0", "cjs-module-lexer": "^1.0.0", "collect-v8-coverage": "^1.0.0", "glob": "^7.1.3", "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.5.0", - "jest-message-util": "^29.5.0", - "jest-mock": "^29.5.0", - "jest-regex-util": "^29.4.3", - "jest-resolve": "^29.5.0", - "jest-snapshot": "^29.5.0", - "jest-util": "^29.5.0", + "jest-haste-map": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-mock": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", "slash": "^3.0.0", "strip-bom": "^4.0.0" }, @@ -13841,34 +14108,31 @@ } }, "jest-snapshot": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.5.0.tgz", - "integrity": "sha512-x7Wolra5V0tt3wRs3/ts3S6ciSQVypgGQlJpz2rsdQYoUKxMxPNaoHMGJN6qAuPJqS+2iQ1ZUn5kl7HCyls84g==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.7.0.tgz", + "integrity": "sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==", "dev": true, "requires": { "@babel/core": "^7.11.6", "@babel/generator": "^7.7.2", "@babel/plugin-syntax-jsx": "^7.7.2", "@babel/plugin-syntax-typescript": "^7.7.2", - "@babel/traverse": "^7.7.2", "@babel/types": "^7.3.3", - "@jest/expect-utils": "^29.5.0", - "@jest/transform": "^29.5.0", - "@jest/types": "^29.5.0", - "@types/babel__traverse": "^7.0.6", - "@types/prettier": "^2.1.5", + "@jest/expect-utils": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", "babel-preset-current-node-syntax": "^1.0.0", "chalk": "^4.0.0", - "expect": "^29.5.0", + "expect": "^29.7.0", "graceful-fs": "^4.2.9", - "jest-diff": "^29.5.0", - "jest-get-type": "^29.4.3", - "jest-matcher-utils": "^29.5.0", - "jest-message-util": "^29.5.0", - "jest-util": "^29.5.0", + "jest-diff": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", "natural-compare": "^1.4.0", - "pretty-format": "^29.5.0", - "semver": "^7.3.5" + "pretty-format": "^29.7.0", + "semver": "^7.5.3" }, "dependencies": { "ansi-styles": { @@ -13921,9 +14185,9 @@ } }, "semver": { - "version": "7.5.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.0.tgz", - "integrity": "sha512-+XC0AD/R7Q2mPSRuy2Id0+CGTZ98+8f+KvwirxOKIEyid+XSx6HbC63p+O4IndTHuX5Z+JxQ0TghCkO5Cg/2HA==", + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "dev": true, "requires": { "lru-cache": "^6.0.0" @@ -13947,9 +14211,9 @@ } }, "jest-stare": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/jest-stare/-/jest-stare-2.5.0.tgz", - "integrity": "sha512-2pYfbDHIC2Aae/hcFaYFXVQYCqBmlgShxuUSrwf7g1s+br+4W6T0+QUfO+khqFDYCDJFCtG8LIbRSzrKOCQmWw==", + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/jest-stare/-/jest-stare-2.5.1.tgz", + "integrity": "sha512-++3JWdY2zJNPFCN6ao1oeW0Qg8oKVYT9XaMUr8RaNDHDGKOQMNjmMrVz9E/4E43ZDU2mPTtk9U8pS+KjSuxPKg==", "dev": true, "requires": { "@jest/reporters": "^29.0.0", @@ -13960,7 +14224,7 @@ "bootstrap": "^5.0.0", "chalk": "^4.1.0", "chart.js": "^4.1.2", - "diff2html": "^3.1.18", + "diff2html": "^3.4.40", "holderjs": "^2.9.7", "jquery": "^3.5.1", "moment": "^2.27.0", @@ -14018,31 +14282,16 @@ "requires": { "has-flag": "^4.0.0" } - }, - "yargs": { - "version": "17.6.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.6.2.tgz", - "integrity": "sha512-1/9UrdHjDZc0eOU0HxOHoS78C69UD3JRMvzlJ7S79S2nTaWRA/whGCTV8o9e/N/1Va9YIV7Q4sOxD8VV4pCWOw==", - "dev": true, - "requires": { - "cliui": "^8.0.1", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.1.1" - } } } }, "jest-util": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.5.0.tgz", - "integrity": "sha512-RYMgG/MTadOr5t8KdhejfvUU82MxsCu5MF6KuDUHl+NuwzUt+Sm6jJWxTJVrDR1j5M/gJVCPKQEpWXY+yIQ6lQ==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz", + "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==", "dev": true, "requires": { - "@jest/types": "^29.5.0", + "@jest/types": "^29.6.3", "@types/node": "*", "chalk": "^4.0.0", "ci-info": "^3.2.0", @@ -14102,17 +14351,17 @@ } }, "jest-validate": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.5.0.tgz", - "integrity": "sha512-pC26etNIi+y3HV8A+tUGr/lph9B18GnzSRAkPaaZJIE1eFdiYm6/CewuiJQ8/RlfHd1u/8Ioi8/sJ+CmbA+zAQ==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.7.0.tgz", + "integrity": "sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==", "dev": true, "requires": { - "@jest/types": "^29.5.0", + "@jest/types": "^29.6.3", "camelcase": "^6.2.0", "chalk": "^4.0.0", - "jest-get-type": "^29.4.3", + "jest-get-type": "^29.6.3", "leven": "^3.1.0", - "pretty-format": "^29.5.0" + "pretty-format": "^29.7.0" }, "dependencies": { "ansi-styles": { @@ -14173,18 +14422,18 @@ } }, "jest-watcher": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.5.0.tgz", - "integrity": "sha512-KmTojKcapuqYrKDpRwfqcQ3zjMlwu27SYext9pt4GlF5FUgB+7XE1mcCnSm6a4uUpFyQIkb6ZhzZvHl+jiBCiA==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.7.0.tgz", + "integrity": "sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==", "dev": true, "requires": { - "@jest/test-result": "^29.5.0", - "@jest/types": "^29.5.0", + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", "@types/node": "*", "ansi-escapes": "^4.2.1", "chalk": "^4.0.0", "emittery": "^0.13.1", - "jest-util": "^29.5.0", + "jest-util": "^29.7.0", "string-length": "^4.0.1" }, "dependencies": { @@ -14240,13 +14489,13 @@ } }, "jest-worker": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.5.0.tgz", - "integrity": "sha512-NcrQnevGoSp4b5kg+akIpthoAFHxPBcb5P6mYPY0fUNT+sSvmtu6jlkEle3anczUKIKEbMxFimk9oTP/tpIPgA==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz", + "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==", "dev": true, "requires": { "@types/node": "*", - "jest-util": "^29.5.0", + "jest-util": "^29.7.0", "merge-stream": "^2.0.0", "supports-color": "^8.0.0" }, @@ -14619,9 +14868,9 @@ } }, "node-releases": { - "version": "2.0.9", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.9.tgz", - "integrity": "sha512-2xfmOrRkGogbTK9R6Leda0DGiXeY3p2NJpy4+gNCffdUvV6mdEJnaDEic1i3Ec2djAo8jWYoJMR5PB0MSMpxUA==", + "version": "2.0.13", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.13.tgz", + "integrity": "sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==", "dev": true }, "node-version": { @@ -14930,12 +15179,12 @@ "requires": {} }, "pretty-format": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.5.0.tgz", - "integrity": "sha512-V2mGkI31qdttvTFX7Mt4efOqHXqJWMu4/r66Xh3Z3BwZaPfPJgp6/gbwoujRpPUtfEF6AUUWx3Jim3GCw5g/Qw==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", "dev": true, "requires": { - "@jest/schemas": "^29.4.3", + "@jest/schemas": "^29.6.3", "ansi-styles": "^5.0.0", "react-is": "^18.0.0" }, @@ -15006,9 +15255,9 @@ "dev": true }, "pure-rand": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.0.1.tgz", - "integrity": "sha512-t+x1zEHDjBwkDGY5v5ApnZ/utcd4XYDiJsaQQoptTXgUXX95sDg1elCdJghzicm7n2mbCBJ3uYWr6M22SO19rg==", + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.0.3.tgz", + "integrity": "sha512-KddyFewCsO0j3+np81IQ+SweXLDnDQTs5s67BOnrYmYe/yNmUhttQyGsYzy8yUnoljGAQ9sl38YB4vH8ur7Y+w==", "dev": true }, "querystring": { @@ -15113,15 +15362,15 @@ } }, "regenerator-runtime": { - "version": "0.13.11", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", - "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==", + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz", + "integrity": "sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==", "dev": true }, "regenerator-transform": { - "version": "0.15.1", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.1.tgz", - "integrity": "sha512-knzmNAcuyxV+gQCufkYcvOqX/qIIfHLv0u5x79kRxuGojfYVky1f15TzZEu2Avte8QGepvUNTnLskf8E6X6Vyg==", + "version": "0.15.2", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz", + "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==", "dev": true, "requires": { "@babel/runtime": "^7.8.4" @@ -15715,9 +15964,9 @@ "dev": true }, "ts-jest": { - "version": "29.1.0", - "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.1.0.tgz", - "integrity": "sha512-ZhNr7Z4PcYa+JjMl62ir+zPiNJfXJN6E8hSLnaUKhOgqcn8vb3e537cpkd0FuAfRK3sR1LSqM1MOhliXNgOFPA==", + "version": "29.1.1", + "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.1.1.tgz", + "integrity": "sha512-D6xjnnbP17cC85nliwGiL+tpoKN0StpgE0TeOjXQTU6MVCfsB4v7aW05CgQ/1OywGb0x/oy9hHFnN+sczTiRaA==", "dev": true, "requires": { "bs-logger": "0.x", @@ -15726,7 +15975,7 @@ "json5": "^2.2.3", "lodash.memoize": "4.x", "make-error": "1.x", - "semver": "7.x", + "semver": "^7.5.3", "yargs-parser": "^21.0.1" }, "dependencies": { @@ -15740,9 +15989,9 @@ } }, "semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "dev": true, "requires": { "lru-cache": "^6.0.0" @@ -15757,9 +16006,9 @@ } }, "tslib": { - "version": "2.5.3", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.3.tgz", - "integrity": "sha512-mSxlJJwl3BMEQCUNnxXBU9jP4JBktcEGhURcPR6VQVlnP0FdDEsIaz0C35dXNGLyRfrATNofF0F5p2KPxQgB+w==", + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", "dev": true }, "type-detect": { @@ -15775,9 +16024,9 @@ "dev": true }, "typescript": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.1.3.tgz", - "integrity": "sha512-XH627E9vkeqhlZFQuL+UsyAXEnibT0kWR2FWONlr4sTjvxyJYnyefgrkyECLzM5NenmKzRAy2rR/OlYLA1HkZw==", + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.2.2.tgz", + "integrity": "sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==", "dev": true }, "unicode-canonical-property-names-ecmascript": { @@ -15815,9 +16064,9 @@ "dev": true }, "update-browserslist-db": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz", - "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==", + "version": "1.0.13", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", + "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", "dev": true, "requires": { "escalade": "^3.1.1", @@ -15887,9 +16136,9 @@ "dev": true }, "uuid": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz", - "integrity": "sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==", + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", + "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", "dev": true }, "v8-to-istanbul": { @@ -16002,9 +16251,9 @@ "dev": true }, "xml2js": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.5.0.tgz", - "integrity": "sha512-drPFnkQJik/O+uPKpqSgr22mpuFHqKdbS835iAQrUC73L2F5WkboIRd63ai/2Yg6I1jzifPFKH2NTK+cfglkIA==", + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.6.2.tgz", + "integrity": "sha512-T4rieHaC1EXcES0Kxxj4JWgaUQHDk+qwHcYOCFHfiwKz7tOVPLq7Hjq9dM1WCMhylqMEfP7hMcOIChvotiZegA==", "dev": true, "requires": { "sax": ">=0.6.0", diff --git a/detox/package.json b/detox/package.json index c39bba13c..953de2906 100644 --- a/detox/package.json +++ b/detox/package.json @@ -5,44 +5,39 @@ "author": "Mattermost, Inc.", "devDependencies": { "@babel/plugin-proposal-class-properties": "7.18.6", - "@babel/plugin-transform-modules-commonjs": "7.22.5", - "@babel/plugin-transform-runtime": "7.22.5", - "@babel/preset-env": "7.22.5", - "@jest/test-sequencer": "29.5.0", - "@types/jest": "29.5.2", - "@types/tough-cookie": "4.0.2", - "@types/uuid": "9.0.2", - "aws-sdk": "2.1398.0", - "axios": "1.4.0", - "axios-cookiejar-support": "4.0.6", - "babel-jest": "29.5.0", + "@babel/plugin-transform-modules-commonjs": "7.22.15", + "@babel/plugin-transform-runtime": "7.22.15", + "@babel/preset-env": "7.22.20", + "@jest/test-sequencer": "29.7.0", + "@types/jest": "29.5.5", + "@types/tough-cookie": "4.0.3", + "@types/uuid": "9.0.4", + "aws-sdk": "2.1462.0", + "axios": "1.5.0", + "axios-cookiejar-support": "4.0.7", + "babel-jest": "29.7.0", "babel-plugin-module-resolver": "5.0.0", "client-oauth2": "4.3.3", "deepmerge": "4.3.1", - "detox": "20.9.1", + "detox": "20.11.4", "form-data": "4.0.0", - "jest": "29.5.0", - "jest-circus": "29.5.0", - "jest-cli": "29.5.0", + "jest": "29.7.0", + "jest-circus": "29.7.0", + "jest-cli": "29.7.0", "jest-html-reporters": "3.1.4", "jest-junit": "16.0.0", - "jest-stare": "2.5.0", + "jest-stare": "2.5.1", "junit-report-merger": "6.0.2", "moment-timezone": "0.5.43", "recursive-readdir": "2.2.3", "sanitize-filename": "1.6.3", "shelljs": "0.8.5", "tough-cookie": "4.1.3", - "ts-jest": "29.1.0", - "tslib": "2.5.3", - "typescript": "5.1.3", - "uuid": "9.0.0", - "xml2js": "0.5.0" - }, - "overrides": { - "detox": { - "jest": "^29.1.0" - } + "ts-jest": "29.1.1", + "tslib": "2.6.2", + "typescript": "5.2.2", + "uuid": "9.0.1", + "xml2js": "0.6.2" }, "scripts": { "e2e:android-create-emulator": "./create_android_emulator.sh", diff --git a/package-lock.json b/package-lock.json index 7f7928ca5..5358494f3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -151,7 +151,7 @@ "babel-loader": "9.1.3", "babel-plugin-module-resolver": "5.0.0", "deep-freeze": "0.0.1", - "detox": "20.11.3", + "detox": "20.11.4", "eslint": "8.47.0", "eslint-plugin-header": "3.1.1", "eslint-plugin-import": "2.28.0", @@ -6969,9 +6969,9 @@ "dev": true }, "node_modules/@types/node": { - "version": "16.11.1", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.1.tgz", - "integrity": "sha512-PYGcJHL9mwl1Ek3PLiYgyEKtwTMmkMw4vbiyz/ps3pfdRYLVv+SN7qHVAImrjdAXxgluDEw6Ph4lyv+m9UpRmA==" + "version": "16.18.53", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.53.tgz", + "integrity": "sha512-vVmHeo4tpF8zsknALU90Hh24VueYdu45ZlXzYWFbom61YR4avJqTFDC3QlWzjuTdAv6/3xHaxiO9NrtVZXrkmw==" }, "node_modules/@types/pako": { "version": "2.0.0", @@ -10167,9 +10167,9 @@ } }, "node_modules/detox": { - "version": "20.11.3", - "resolved": "https://registry.npmjs.org/detox/-/detox-20.11.3.tgz", - "integrity": "sha512-kdoRAtDLFxXpjt1QlniI+WryMtf7Y8mrZ33Ql8cTR9qoCS/CThi4pweYAQm8yUPqAv1ZtT3eIm3EzRwjEosgLA==", + "version": "20.11.4", + "resolved": "https://registry.npmjs.org/detox/-/detox-20.11.4.tgz", + "integrity": "sha512-P48KAtK8qIDOxJKUl4q/syPkuHz67kAeFlNodBZg5aO4hJiH+RsbEkQfJSYkTCeZV800EcmUQwZK2M5amLoYaw==", "dev": true, "hasInstallScript": true, "dependencies": { @@ -28052,9 +28052,9 @@ "dev": true }, "@types/node": { - "version": "16.11.1", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.1.tgz", - "integrity": "sha512-PYGcJHL9mwl1Ek3PLiYgyEKtwTMmkMw4vbiyz/ps3pfdRYLVv+SN7qHVAImrjdAXxgluDEw6Ph4lyv+m9UpRmA==" + "version": "16.18.53", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.53.tgz", + "integrity": "sha512-vVmHeo4tpF8zsknALU90Hh24VueYdu45ZlXzYWFbom61YR4avJqTFDC3QlWzjuTdAv6/3xHaxiO9NrtVZXrkmw==" }, "@types/pako": { "version": "2.0.0", @@ -30409,9 +30409,9 @@ "dev": true }, "detox": { - "version": "20.11.3", - "resolved": "https://registry.npmjs.org/detox/-/detox-20.11.3.tgz", - "integrity": "sha512-kdoRAtDLFxXpjt1QlniI+WryMtf7Y8mrZ33Ql8cTR9qoCS/CThi4pweYAQm8yUPqAv1ZtT3eIm3EzRwjEosgLA==", + "version": "20.11.4", + "resolved": "https://registry.npmjs.org/detox/-/detox-20.11.4.tgz", + "integrity": "sha512-P48KAtK8qIDOxJKUl4q/syPkuHz67kAeFlNodBZg5aO4hJiH+RsbEkQfJSYkTCeZV800EcmUQwZK2M5amLoYaw==", "dev": true, "requires": { "ajv": "^8.6.3", diff --git a/package.json b/package.json index 5f5ea59c9..f6b6aaae7 100644 --- a/package.json +++ b/package.json @@ -148,7 +148,7 @@ "babel-loader": "9.1.3", "babel-plugin-module-resolver": "5.0.0", "deep-freeze": "0.0.1", - "detox": "20.11.3", + "detox": "20.11.4", "eslint": "8.47.0", "eslint-plugin-header": "3.1.1", "eslint-plugin-import": "2.28.0", From 16ca5d3e974bbe1c80050d9f3496d428781f66ae Mon Sep 17 00:00:00 2001 From: Elias Nahum Date: Wed, 27 Sep 2023 18:54:33 +0300 Subject: [PATCH 42/47] MM-54535 Fixed hang when using the magic keyboard on iPadOS 17 (#7555) * MM-53989 Upgrade to Node 18 and NPM 9 and match platform versions * fix iPad OS 17 magic keyboard loop * add engine-strict=true to npmrc * use node version from nvmrc in action --- .github/actions/prepare-node-deps/action.yaml | 2 +- .node-version | 2 +- .npmrc | 1 + .nvmrc | 2 +- .solidarity | 14 ------- package-lock.json | 4 ++ package.json | 4 ++ ...-native-keyboard-tracking-view+5.7.0.patch | 37 +++++++++++++++++++ 8 files changed, 49 insertions(+), 17 deletions(-) diff --git a/.github/actions/prepare-node-deps/action.yaml b/.github/actions/prepare-node-deps/action.yaml index 22967d7d6..bb621a052 100644 --- a/.github/actions/prepare-node-deps/action.yaml +++ b/.github/actions/prepare-node-deps/action.yaml @@ -7,7 +7,7 @@ runs: - name: ci/setup-node uses: actions/setup-node@64ed1c7eab4cce3362f8c340dee64e5eaeef8f7c # v3.6.0 with: - node-version: "${{ env.NODE_VERSION }}" + node-version-file: ".nvmrc" cache: "npm" cache-dependency-path: package-lock.json diff --git a/.node-version b/.node-version index fb67e3d51..aacb51810 100644 --- a/.node-version +++ b/.node-version @@ -1 +1 @@ -18.7.0 +18.17 diff --git a/.npmrc b/.npmrc index cffe8cdef..145d3fa25 100644 --- a/.npmrc +++ b/.npmrc @@ -1 +1,2 @@ save-exact=true +engine-strict=true diff --git a/.nvmrc b/.nvmrc index fb67e3d51..aacb51810 100644 --- a/.nvmrc +++ b/.nvmrc @@ -1 +1 @@ -18.7.0 +18.17 diff --git a/.solidarity b/.solidarity index b713705ec..01799368b 100644 --- a/.solidarity +++ b/.solidarity @@ -4,20 +4,6 @@ "output" : "moderate" }, "requirements": { - "Node": [ - { - "rule": "cli", - "binary": "node", - "semver": ">=16.0.0", - "error": "install node using nvm https://github.com/nvm-sh/nvm#installing-and-updating" - }, - { - "rule": "cli", - "binary": "npm", - "semver": ">=7.24.0 <9.0.0", - "error": "install npm 8.5.5 `npm i -g npm@8.5.5" - } - ], "Android": [ { "rule": "cli", diff --git a/package-lock.json b/package-lock.json index 5358494f3..a7a611d00 100644 --- a/package-lock.json +++ b/package-lock.json @@ -177,6 +177,10 @@ "underscore": "1.13.6", "util": "0.12.5", "uuid": "9.0.0" + }, + "engines": { + "node": "^18.10.0", + "npm": "^9.0.0" } }, "node_modules/@aashutoshrathi/word-wrap": { diff --git a/package.json b/package.json index f6b6aaae7..95aa1c2ac 100644 --- a/package.json +++ b/package.json @@ -6,6 +6,10 @@ "author": "Mattermost, Inc.", "license": "Apache 2.0", "private": true, + "engines": { + "node": "^18.10.0", + "npm": "^9.0.0" + }, "dependencies": { "@formatjs/intl-datetimeformat": "6.10.0", "@formatjs/intl-getcanonicallocales": "2.2.1", diff --git a/patches/react-native-keyboard-tracking-view+5.7.0.patch b/patches/react-native-keyboard-tracking-view+5.7.0.patch index 26b55773d..c0b9edcc3 100644 --- a/patches/react-native-keyboard-tracking-view+5.7.0.patch +++ b/patches/react-native-keyboard-tracking-view+5.7.0.patch @@ -413,6 +413,43 @@ index 1333a10..b908006 100644 RCT_EXPORT_METHOD(getNativeProps:(nonnull NSNumber *)reactTag resolver:(RCTPromiseResolveBlock)resolve rejecter:(RCTPromiseRejectBlock)reject) { [self.bridge.uiManager addUIBlock: +diff --git a/node_modules/react-native-keyboard-tracking-view/lib/ObservingInputAccessoryView.m b/node_modules/react-native-keyboard-tracking-view/lib/ObservingInputAccessoryView.m +index e472679..4a2204b 100644 +--- a/node_modules/react-native-keyboard-tracking-view/lib/ObservingInputAccessoryView.m ++++ b/node_modules/react-native-keyboard-tracking-view/lib/ObservingInputAccessoryView.m +@@ -115,21 +115,25 @@ + + - (void)_keyboardWillShowNotification:(NSNotification*)notification + { +- _keyboardState = KeyboardStateWillShow; ++ if (_keyboardState != KeyboardStateShown) { ++ _keyboardState = KeyboardStateWillShow; + +- [self invalidateIntrinsicContentSize]; ++ [self invalidateIntrinsicContentSize]; + +- if([_delegate respondsToSelector:@selector(observingInputAccessoryViewKeyboardWillAppear:keyboardDelta:)]) +- { +- [_delegate observingInputAccessoryViewKeyboardWillAppear:self keyboardDelta:_keyboardHeight - _previousKeyboardHeight]; ++ if([_delegate respondsToSelector:@selector(observingInputAccessoryViewKeyboardWillAppear:keyboardDelta:)]) ++ { ++ [_delegate observingInputAccessoryViewKeyboardWillAppear:self keyboardDelta:_keyboardHeight - _previousKeyboardHeight]; ++ } + } + } + + - (void)_keyboardDidShowNotification:(NSNotification*)notification + { +- _keyboardState = KeyboardStateShown; ++ if (_keyboardState != KeyboardStateShown) { ++ _keyboardState = KeyboardStateShown; + +- [self invalidateIntrinsicContentSize]; ++ [self invalidateIntrinsicContentSize]; ++ } + } + + - (void)_keyboardWillHideNotification:(NSNotification*)notification diff --git a/node_modules/react-native-keyboard-tracking-view/src/KeyboardTrackingView.android.js b/node_modules/react-native-keyboard-tracking-view/src/KeyboardTrackingView.android.js index af15edf..20b6ab6 100644 --- a/node_modules/react-native-keyboard-tracking-view/src/KeyboardTrackingView.android.js From 6fd8465e6689ad430b25548bda24587c3347b470 Mon Sep 17 00:00:00 2001 From: Elias Nahum Date: Thu, 28 Sep 2023 08:43:25 +0300 Subject: [PATCH 43/47] Bump version to 2.9.0 and build 486 (#7560) * Bump app version number to 2.9.0 * Bump app build number to 486 * update fastlane --- android/app/build.gradle | 4 +- fastlane/Gemfile.lock | 41 +++---- ios/Mattermost.xcodeproj/project.pbxproj | 8 +- ios/Mattermost/Info.plist | 4 +- ios/MattermostShare/Info.plist | 4 +- ios/NotificationService/Info.plist | 4 +- package-lock.json | 149 +++++++++++++++-------- package.json | 2 +- 8 files changed, 132 insertions(+), 84 deletions(-) diff --git a/android/app/build.gradle b/android/app/build.gradle index 0b5452e54..26a7f88ed 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -110,8 +110,8 @@ android { applicationId "com.mattermost.rnbeta" minSdkVersion rootProject.ext.minSdkVersion targetSdkVersion rootProject.ext.targetSdkVersion - versionCode 485 - versionName "2.8.0" + versionCode 486 + versionName "2.9.0" testBuildType System.getProperty('testBuildType', 'debug') testInstrumentationRunner 'androidx.test.runner.AndroidJUnitRunner' } diff --git a/fastlane/Gemfile.lock b/fastlane/Gemfile.lock index db1716759..7d95ca4bc 100644 --- a/fastlane/Gemfile.lock +++ b/fastlane/Gemfile.lock @@ -3,22 +3,22 @@ GEM specs: CFPropertyList (3.0.6) rexml - addressable (2.8.4) + addressable (2.8.5) public_suffix (>= 2.0.2, < 6.0) artifactory (3.0.15) atomos (0.1.3) aws-eventstream (1.2.0) - aws-partitions (1.793.0) - aws-sdk-core (3.180.0) + aws-partitions (1.829.0) + aws-sdk-core (3.184.0) aws-eventstream (~> 1, >= 1.0.2) aws-partitions (~> 1, >= 1.651.0) aws-sigv4 (~> 1.5) jmespath (~> 1, >= 1.6.1) - aws-sdk-kms (1.71.0) - aws-sdk-core (~> 3, >= 3.177.0) + aws-sdk-kms (1.72.0) + aws-sdk-core (~> 3, >= 3.184.0) aws-sigv4 (~> 1.1) - aws-sdk-s3 (1.132.0) - aws-sdk-core (~> 3, >= 3.179.0) + aws-sdk-s3 (1.136.0) + aws-sdk-core (~> 3, >= 3.181.0) aws-sdk-kms (~> 1) aws-sigv4 (~> 1.6) aws-sigv4 (1.6.0) @@ -36,7 +36,7 @@ GEM unf (>= 0.0.5, < 1.0.0) dotenv (2.8.1) emoji_regex (3.2.3) - excon (0.100.0) + excon (0.103.0) faraday (1.10.3) faraday-em_http (~> 1.0) faraday-em_synchrony (~> 1.0) @@ -66,7 +66,7 @@ GEM faraday_middleware (1.2.0) faraday (~> 1.0) fastimage (2.2.7) - fastlane (2.214.0) + fastlane (2.216.0) CFPropertyList (>= 2.3, < 4.0.0) addressable (>= 2.8, < 3.0.0) artifactory (~> 3.0) @@ -87,6 +87,7 @@ GEM google-apis-playcustomapp_v1 (~> 0.1) google-cloud-storage (~> 1.31) highline (~> 2.0) + http-cookie (~> 1.0.5) json (< 3.0.0) jwt (>= 2.1.0, < 3) mini_magick (>= 4.9.4, < 5.0.0) @@ -98,7 +99,7 @@ GEM security (= 0.1.3) simctl (~> 1.6.3) terminal-notifier (>= 2.0.0, < 3.0.0) - terminal-table (>= 1.4.5, < 2.0.0) + terminal-table (~> 3) tty-screen (>= 0.6.3, < 1.0.0) tty-spinner (>= 0.8.0, < 1.0.0) word_wrap (~> 1.0.0) @@ -111,7 +112,7 @@ GEM fastlane-plugin-find_replace_string (0.1.0) fastlane-plugin-versioning_android (0.1.1) gh_inspector (1.1.3) - google-apis-androidpublisher_v3 (0.46.0) + google-apis-androidpublisher_v3 (0.50.0) google-apis-core (>= 0.11.0, < 2.a) google-apis-core (0.11.1) addressable (~> 2.5, >= 2.5.1) @@ -142,10 +143,9 @@ GEM google-cloud-core (~> 1.6) googleauth (>= 0.16.2, < 2.a) mini_mime (~> 1.0) - googleauth (1.7.0) + googleauth (1.8.1) faraday (>= 0.17.3, < 3.a) jwt (>= 1.4, < 3.0) - memoist (~> 0.16) multi_json (~> 1.11) os (>= 0.9, < 2.0) signet (>= 0.16, < 2.a) @@ -156,15 +156,14 @@ GEM jmespath (1.6.2) json (2.6.3) jwt (2.7.1) - memoist (0.16.2) mini_magick (4.12.0) - mini_mime (1.1.2) + mini_mime (1.1.5) mini_portile2 (2.8.4) multi_json (1.15.0) multipart-post (2.3.0) nanaimo (0.3.0) naturally (2.2.1) - nokogiri (1.15.3) + nokogiri (1.15.4) mini_portile2 (~> 2.8.2) racc (~> 1.4) optparse (0.1.1) @@ -183,7 +182,7 @@ GEM ruby2_keywords (0.0.5) rubyzip (2.3.2) security (0.1.3) - signet (0.17.0) + signet (0.18.0) addressable (~> 2.8) faraday (>= 0.17.5, < 3.a) jwt (>= 1.5, < 3.0) @@ -192,8 +191,8 @@ GEM CFPropertyList naturally terminal-notifier (2.0.0) - terminal-table (1.8.0) - unicode-display_width (~> 1.1, >= 1.1.1) + terminal-table (3.0.2) + unicode-display_width (>= 1.1.1, < 3) trailblazer-option (0.1.2) tty-cursor (0.7.1) tty-screen (0.8.1) @@ -203,10 +202,10 @@ GEM unf (0.1.4) unf_ext unf_ext (0.0.8.2) - unicode-display_width (1.8.0) + unicode-display_width (2.4.2) webrick (1.8.1) word_wrap (1.0.0) - xcodeproj (1.22.0) + xcodeproj (1.23.0) CFPropertyList (>= 2.3.3, < 4.0) atomos (~> 0.1.3) claide (>= 1.0.2, < 2.0) diff --git a/ios/Mattermost.xcodeproj/project.pbxproj b/ios/Mattermost.xcodeproj/project.pbxproj index 75e120a8d..aed8b39a3 100644 --- a/ios/Mattermost.xcodeproj/project.pbxproj +++ b/ios/Mattermost.xcodeproj/project.pbxproj @@ -1929,7 +1929,7 @@ CODE_SIGN_ENTITLEMENTS = Mattermost/Mattermost.entitlements; CODE_SIGN_IDENTITY = "iPhone Developer"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - CURRENT_PROJECT_VERSION = 485; + CURRENT_PROJECT_VERSION = 486; DEVELOPMENT_TEAM = UQ8HT4Q2XM; ENABLE_BITCODE = NO; HEADER_SEARCH_PATHS = ( @@ -1973,7 +1973,7 @@ CODE_SIGN_ENTITLEMENTS = Mattermost/Mattermost.entitlements; CODE_SIGN_IDENTITY = "iPhone Developer"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - CURRENT_PROJECT_VERSION = 485; + CURRENT_PROJECT_VERSION = 486; DEVELOPMENT_TEAM = UQ8HT4Q2XM; ENABLE_BITCODE = NO; HEADER_SEARCH_PATHS = ( @@ -2116,7 +2116,7 @@ CODE_SIGN_IDENTITY = "iPhone Developer"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 485; + CURRENT_PROJECT_VERSION = 486; DEBUG_INFORMATION_FORMAT = dwarf; DEVELOPMENT_TEAM = UQ8HT4Q2XM; GCC_C_LANGUAGE_STANDARD = gnu11; @@ -2165,7 +2165,7 @@ "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; CODE_SIGN_STYLE = Automatic; COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 485; + CURRENT_PROJECT_VERSION = 486; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; DEVELOPMENT_TEAM = UQ8HT4Q2XM; GCC_C_LANGUAGE_STANDARD = gnu11; diff --git a/ios/Mattermost/Info.plist b/ios/Mattermost/Info.plist index 97b67f800..9034a6900 100644 --- a/ios/Mattermost/Info.plist +++ b/ios/Mattermost/Info.plist @@ -21,7 +21,7 @@ CFBundlePackageType APPL CFBundleShortVersionString - 2.8.0 + 2.9.0 CFBundleSignature ???? CFBundleURLTypes @@ -37,7 +37,7 @@ CFBundleVersion - 485 + 486 ITSAppUsesNonExemptEncryption LSRequiresIPhoneOS diff --git a/ios/MattermostShare/Info.plist b/ios/MattermostShare/Info.plist index 0987f46ec..3667fc513 100644 --- a/ios/MattermostShare/Info.plist +++ b/ios/MattermostShare/Info.plist @@ -19,9 +19,9 @@ CFBundlePackageType XPC! CFBundleShortVersionString - 2.8.0 + 2.9.0 CFBundleVersion - 485 + 486 UIAppFonts OpenSans-Bold.ttf diff --git a/ios/NotificationService/Info.plist b/ios/NotificationService/Info.plist index 1ba8485bf..67b6095b9 100644 --- a/ios/NotificationService/Info.plist +++ b/ios/NotificationService/Info.plist @@ -19,9 +19,9 @@ CFBundlePackageType XPC! CFBundleShortVersionString - 2.8.0 + 2.9.0 CFBundleVersion - 485 + 486 NSExtension NSExtensionPointIdentifier diff --git a/package-lock.json b/package-lock.json index a7a611d00..e1731caf2 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "mattermost-mobile", - "version": "2.8.0", + "version": "2.9.0", "lockfileVersion": 2, "requires": true, "packages": { @@ -23604,7 +23604,8 @@ "version": "7.21.0-placeholder-for-preset-env.2", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", - "requires": {} + "requires": { + } }, "@babel/plugin-syntax-async-generators": { "version": "7.8.4", @@ -25427,7 +25428,8 @@ "version": "1.3.5", "resolved": "https://registry.npmjs.org/@mattermost/react-native-emm/-/react-native-emm-1.3.5.tgz", "integrity": "sha512-REdUEsm/RA6lI1Rt4b009jvWn28f7H+e27gd4hlNk6zesIh/dlfiHwYfInW/vwbNFBdSPpvHy7Qi2mdcvrNqhg==", - "requires": {} + "requires": { + } }, "@mattermost/react-native-network-client": { "version": "1.4.1", @@ -25450,7 +25452,8 @@ "version": "0.2.3", "resolved": "https://registry.npmjs.org/@mattermost/react-native-turbo-log/-/react-native-turbo-log-0.2.3.tgz", "integrity": "sha512-usWyD8zVAHzrYqgPH1ne5I14gCOkhS2mefK58g5v4DewZfCm0/Uc0w8MRuPS/9jyOPPq1rUZj8U1AqKgEne9tQ==", - "requires": {} + "requires": { + } }, "@msgpack/msgpack": { "version": "2.8.0", @@ -25542,13 +25545,15 @@ "version": "5.7.2", "resolved": "https://registry.npmjs.org/@react-native-camera-roll/camera-roll/-/camera-roll-5.7.2.tgz", "integrity": "sha512-s8VAUG1Kvi+tEJkLHObmOJdXAL/uclnXJ/IdnJtx2fCKiWA3Ho0ln9gDQqCYHHHHu+sXk7wovsH/I2/AYy0brg==", - "requires": {} + "requires": { + } }, "@react-native-clipboard/clipboard": { "version": "1.11.2", "resolved": "https://registry.npmjs.org/@react-native-clipboard/clipboard/-/clipboard-1.11.2.tgz", "integrity": "sha512-bHyZVW62TuleiZsXNHS1Pv16fWc0fh8O9WvBzl4h2fykqZRW9a+Pv/RGTH56E3X2PqzHP38K5go8zmCZUoIsoQ==", - "requires": {} + "requires": { + } }, "@react-native-community/cli": { "version": "10.2.4", @@ -27257,7 +27262,8 @@ "version": "9.4.1", "resolved": "https://registry.npmjs.org/@react-native-community/netinfo/-/netinfo-9.4.1.tgz", "integrity": "sha512-dAbY5mfw+6Kas/GJ6QX9AZyY+K+eq9ad4Su6utoph/nxyH3whp5cMSgRNgE2VhGQVRZ/OG0qq3IaD3+wzoqJXw==", - "requires": {} + "requires": { + } }, "@react-native-cookies/cookies": { "version": "6.2.1", @@ -27423,7 +27429,8 @@ "version": "1.3.18", "resolved": "https://registry.npmjs.org/@react-navigation/elements/-/elements-1.3.18.tgz", "integrity": "sha512-/0hwnJkrr415yP0Hf4PjUKgGyfshrvNUKFXN85Mrt1gY49hy9IwxZgrrxlh0THXkPeq8q4VWw44eHDfAcQf20Q==", - "requires": {} + "requires": { + } }, "@react-navigation/native": { "version": "6.1.7", @@ -27658,63 +27665,72 @@ "version": "0.10.3", "resolved": "https://registry.npmjs.org/@stream-io/flat-list-mvcp/-/flat-list-mvcp-0.10.3.tgz", "integrity": "sha512-2ZK8piYlEfKIPZrH8BpZz9uj8HZcUvMCV0X7qSLSAc/vhLOANBfR0SSn0OaWPbqb2mFGAd4FxmLSPp1zKEYuaw==", - "requires": {} + "requires": { + } }, "@svgr/babel-plugin-add-jsx-attribute": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-8.0.0.tgz", "integrity": "sha512-b9MIk7yhdS1pMCZM8VeNfUlSKVRhsHZNMl5O9SfaX0l0t5wjdgu4IDzGB8bpnGBBOjGST3rRFVsaaEtI4W6f7g==", "dev": true, - "requires": {} + "requires": { + } }, "@svgr/babel-plugin-remove-jsx-attribute": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-8.0.0.tgz", "integrity": "sha512-BcCkm/STipKvbCl6b7QFrMh/vx00vIP63k2eM66MfHJzPr6O2U0jYEViXkHJWqXqQYjdeA9cuCl5KWmlwjDvbA==", "dev": true, - "requires": {} + "requires": { + } }, "@svgr/babel-plugin-remove-jsx-empty-expression": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-8.0.0.tgz", "integrity": "sha512-5BcGCBfBxB5+XSDSWnhTThfI9jcO5f0Ai2V24gZpG+wXF14BzwxxdDb4g6trdOux0rhibGs385BeFMSmxtS3uA==", "dev": true, - "requires": {} + "requires": { + } }, "@svgr/babel-plugin-replace-jsx-attribute-value": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-8.0.0.tgz", "integrity": "sha512-KVQ+PtIjb1BuYT3ht8M5KbzWBhdAjjUPdlMtpuw/VjT8coTrItWX6Qafl9+ji831JaJcu6PJNKCV0bp01lBNzQ==", "dev": true, - "requires": {} + "requires": { + } }, "@svgr/babel-plugin-svg-dynamic-title": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-8.0.0.tgz", "integrity": "sha512-omNiKqwjNmOQJ2v6ge4SErBbkooV2aAWwaPFs2vUY7p7GhVkzRkJ00kILXQvRhA6miHnNpXv7MRnnSjdRjK8og==", "dev": true, - "requires": {} + "requires": { + } }, "@svgr/babel-plugin-svg-em-dimensions": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-8.0.0.tgz", "integrity": "sha512-mURHYnu6Iw3UBTbhGwE/vsngtCIbHE43xCRK7kCw4t01xyGqb2Pd+WXekRRoFOBIY29ZoOhUCTEweDMdrjfi9g==", "dev": true, - "requires": {} + "requires": { + } }, "@svgr/babel-plugin-transform-react-native-svg": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-8.0.0.tgz", "integrity": "sha512-UKrY3860AQICgH7g+6h2zkoxeVEPLYwX/uAjmqo4PIq2FIHppwhIqZstIyTz0ZtlwreKR41O3W3BzsBBiJV2Aw==", "dev": true, - "requires": {} + "requires": { + } }, "@svgr/babel-plugin-transform-svg-component": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-8.0.0.tgz", "integrity": "sha512-DFx8xa3cZXTdb/k3kfPeaixecQLgKh5NVBMwD0AQxOzcZawK4oo1Jh9LbrcACUivsCA7TLG8eeWgrDXjTMhRmw==", "dev": true, - "requires": {} + "requires": { + } }, "@svgr/babel-preset": { "version": "8.0.0", @@ -28683,7 +28699,8 @@ "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-1.1.0.tgz", "integrity": "sha512-ttOkEkoalEHa7RaFYpM0ErK1xc4twg3Am9hfHhL7MVqlHebnkYd2wuI/ZqTDj0cVzZho6PdinY0phFZV3O0Mzg==", "dev": true, - "requires": {} + "requires": { + } }, "@webpack-cli/info": { "version": "1.4.0", @@ -28699,7 +28716,8 @@ "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-1.6.0.tgz", "integrity": "sha512-ZkVeqEmRpBV2GHvjjUZqEai2PpUbuq8Bqd//vEYsp63J8WyexI8ppCqVS3Zs0QADf6aWuPdU+0XsPI647PVlQA==", "dev": true, - "requires": {} + "requires": { + } }, "@xtuc/ieee754": { "version": "1.2.0", @@ -28754,13 +28772,15 @@ "integrity": "sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==", "dev": true, "peer": true, - "requires": {} + "requires": { + } }, "acorn-jsx": { "version": "5.3.2", "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "requires": {} + "requires": { + } }, "agent-base": { "version": "6.0.2", @@ -28816,7 +28836,8 @@ "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", "dev": true, "peer": true, - "requires": {} + "requires": { + } }, "anser": { "version": "1.4.10", @@ -29099,7 +29120,8 @@ "version": "7.0.0-bridge.0", "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-7.0.0-bridge.0.tgz", "integrity": "sha512-poPX9mZH/5CSanm50Q+1toVci6pv5KSRv/5TWCwtzQS5XEwn40BcCrgIeMFWP9CKKIniKXNxoIOnOq4VVlGXhg==", - "requires": {} + "requires": { + } }, "babel-jest": { "version": "29.6.2", @@ -30300,7 +30322,8 @@ "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.5.1.tgz", "integrity": "sha512-+LxW+KLWxu3HW3M2w2ympwtqPrqYRzU8fqi6Fhd18fBALe15blJPI/I4+UHveMVG6lJqB4JNd4UG0S5cnVHwIg==", "dev": true, - "requires": {} + "requires": { + } }, "deep-equal": { "version": "2.2.2", @@ -31203,7 +31226,8 @@ "version": "8.10.0", "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.10.0.tgz", "integrity": "sha512-SM8AMJdeQqRYT9O9zguiruQZaN7+z+E4eAP9oiLNGKMtomwaB1E9dcgUD6ZAn/eQAb52USbvezbiljfZUhbJcg==", - "requires": {} + "requires": { + } }, "eslint-import-resolver-node": { "version": "0.3.7", @@ -31288,7 +31312,8 @@ "resolved": "https://registry.npmjs.org/eslint-plugin-header/-/eslint-plugin-header-3.1.1.tgz", "integrity": "sha512-9vlKxuJ4qf793CmeeSrZUvVClw6amtpghq3CuWcB5cUNnWHQhgcqy5eF8oVKFk1G3Y/CbchGfEaw3wiIJaNmVg==", "dev": true, - "requires": {} + "requires": { + } }, "eslint-plugin-import": { "version": "2.28.0", @@ -31422,7 +31447,8 @@ "version": "4.6.0", "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.0.tgz", "integrity": "sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==", - "requires": {} + "requires": { + } }, "eslint-plugin-react-native": { "version": "4.0.0", @@ -33796,7 +33822,8 @@ "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", "dev": true, - "requires": {} + "requires": { + } }, "jest-regex-util": { "version": "29.4.3", @@ -37024,7 +37051,8 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/react-freeze/-/react-freeze-1.0.3.tgz", "integrity": "sha512-ZnXwLQnGzrDpHBHiC56TXFXvmolPeMjTn1UOm610M4EXGzbEDR7oOIyS2ZiItgbs6eZc4oU/a0hpk8PrcKvv5g==", - "requires": {} + "requires": { + } }, "react-intl": { "version": "6.4.4", @@ -37332,7 +37360,8 @@ "version": "2.4.1", "resolved": "https://registry.npmjs.org/react-native-background-timer/-/react-native-background-timer-2.4.1.tgz", "integrity": "sha512-TE4Kiy7jUyv+hugxDxitzu38sW1NqjCk4uE5IgU2WevLv7sZacaBc6PZKOShNRPGirLl1NWkaG3LDEkdb9Um5g==", - "requires": {} + "requires": { + } }, "react-native-button": { "version": "3.1.0", @@ -37385,13 +37414,15 @@ "version": "1.6.4", "resolved": "https://registry.npmjs.org/react-native-create-thumbnail/-/react-native-create-thumbnail-1.6.4.tgz", "integrity": "sha512-JWuKXswDXtqUPfuqh6rjCVMvTSSG3kUtwvSK/YdaNU0i+nZKxeqHmt/CO2+TyI/WSUFynGVmWT1xOHhCZAFsRQ==", - "requires": {} + "requires": { + } }, "react-native-device-info": { "version": "10.8.0", "resolved": "https://registry.npmjs.org/react-native-device-info/-/react-native-device-info-10.8.0.tgz", "integrity": "sha512-DE4/X82ZVhdcnR1Y21iTP46WSSJA/rHK3lmeqWfGGq1RKLwXTIdxmfbZZnYwryqJ+esrw2l4ND19qlgxDGby8A==", - "requires": {} + "requires": { + } }, "react-native-document-picker": { "version": "9.0.1", @@ -37428,19 +37459,22 @@ "version": "2.10.10", "resolved": "https://registry.npmjs.org/react-native-exception-handler/-/react-native-exception-handler-2.10.10.tgz", "integrity": "sha512-otAXGoZDl1689OoUJWN/rXxVbdoZ3xcmyF1uq/CsizdLwwyZqVGd6d+p/vbYvnF996FfEyAEBnHrdFxulTn51w==", - "requires": {} + "requires": { + } }, "react-native-fast-image": { "version": "8.6.3", "resolved": "https://registry.npmjs.org/react-native-fast-image/-/react-native-fast-image-8.6.3.tgz", "integrity": "sha512-Sdw4ESidXCXOmQ9EcYguNY2swyoWmx53kym2zRsvi+VeFCHEdkO+WG1DK+6W81juot40bbfLNhkc63QnWtesNg==", - "requires": {} + "requires": { + } }, "react-native-file-viewer": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/react-native-file-viewer/-/react-native-file-viewer-2.1.5.tgz", "integrity": "sha512-MGC6sx9jsqHdefhVQ6o0akdsPGpkXgiIbpygb2Sg4g4bh7v6K1cardLV1NwGB9A6u1yICOSDT/MOC//9Ez6EUg==", - "requires": {} + "requires": { + } }, "react-native-fs": { "version": "2.20.0", @@ -37479,19 +37513,22 @@ "version": "2.0.3", "resolved": "https://registry.npmjs.org/react-native-haptic-feedback/-/react-native-haptic-feedback-2.0.3.tgz", "integrity": "sha512-7+qvcxXZts/hA+HOOIFyM1x9m9fn/TJVSTgXaoQ8uT4gLc97IMvqHQ559tDmnlth+hHMzd3HRMpmRLWoKPL0DA==", - "requires": {} + "requires": { + } }, "react-native-hw-keyboard-event": { "version": "0.0.4", "resolved": "https://registry.npmjs.org/react-native-hw-keyboard-event/-/react-native-hw-keyboard-event-0.0.4.tgz", "integrity": "sha512-G8qp0nm17PHigLb/axgdF9xg51BKCG2p1AGeq//J/luLp5zNczIcQJh+nm02R1MeEUE3e53wqO4LMe0MV3raZg==", - "requires": {} + "requires": { + } }, "react-native-image-picker": { "version": "5.6.1", "resolved": "https://registry.npmjs.org/react-native-image-picker/-/react-native-image-picker-5.6.1.tgz", "integrity": "sha512-LPPlgJi97EzCDY4NWp7z0oUWmCbagnB6HSoKcLJHJD/DaFYN/dJPrqjqKaqqw8K/5Ze6DIsNg9PZohjNEYQQWQ==", - "requires": {} + "requires": { + } }, "react-native-in-app-review": { "version": "4.3.3", @@ -37502,13 +37539,15 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/react-native-incall-manager/-/react-native-incall-manager-4.1.0.tgz", "integrity": "sha512-v1c+XOGu5VudY5//E3i5xiaRA9v6RvevMzZ4RumLqI+hte+4XslB2z6HSek2FF0EmAnY1rCn4ckiwgkTI1Tmtw==", - "requires": {} + "requires": { + } }, "react-native-iphone-x-helper": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/react-native-iphone-x-helper/-/react-native-iphone-x-helper-1.3.1.tgz", "integrity": "sha512-HOf0jzRnq2/aFUcdCJ9w9JGzN3gdEg0zFE4FyYlp4jtidqU03D5X7ZegGKfT1EWteR0gPBGp9ye5T5FvSWi9Yg==", - "requires": {} + "requires": { + } }, "react-native-keyboard-aware-scroll-view": { "version": "0.9.5", @@ -37523,7 +37562,8 @@ "version": "5.7.0", "resolved": "https://registry.npmjs.org/react-native-keyboard-tracking-view/-/react-native-keyboard-tracking-view-5.7.0.tgz", "integrity": "sha512-MDeEwAbn9LJDOfHq0QLCGaZirVLk2X/tHqkAqz3y6uxryTRdSl9PwleOVar5Jx2oAPEg4J9BXbUD1wwOOi+5Kg==", - "requires": {} + "requires": { + } }, "react-native-keychain": { "version": "8.1.2", @@ -37534,13 +37574,15 @@ "version": "2.8.2", "resolved": "https://registry.npmjs.org/react-native-linear-gradient/-/react-native-linear-gradient-2.8.2.tgz", "integrity": "sha512-hgmCsgzd58WNcDCyPtKrvxsaoETjb/jLGxis/dmU3Aqm2u4ICIduj4ECjbil7B7pm9OnuTkmpwXu08XV2mpg8g==", - "requires": {} + "requires": { + } }, "react-native-localize": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/react-native-localize/-/react-native-localize-3.0.2.tgz", "integrity": "sha512-/l/oE1LVNgIRRhLbhmfFMHiWV0xhUn0A0iz1ytLVRYywL7FTp8Rx2vkJS/q/RpExDvV7yLw2493XZBYIM1dnLQ==", - "requires": {} + "requires": { + } }, "react-native-math-view": { "version": "3.9.5", @@ -37576,7 +37618,8 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/react-native-notifications/-/react-native-notifications-5.0.0.tgz", "integrity": "sha512-QXtBBmbDtwq9X8WAPLn+OctIeEtnJOQ+RCT6iweaypvFTydt2baLPtawTAbCSXKuWpVDqDAdmZnlQjCcavNzoA==", - "requires": {} + "requires": { + } }, "react-native-permissions": { "version": "3.8.4", @@ -37617,7 +37660,8 @@ "version": "4.7.1", "resolved": "https://registry.npmjs.org/react-native-safe-area-context/-/react-native-safe-area-context-4.7.1.tgz", "integrity": "sha512-X2pJG2ttmAbiGlItWedvDkZg1T1ikmEDiz+7HsiIwAIm2UbFqlhqn+B1JF53mSxPzdNaDcCQVHRNPvj8oFu6Yg==", - "requires": {} + "requires": { + } }, "react-native-screens": { "version": "3.24.0", @@ -37650,7 +37694,8 @@ "version": "0.3.1", "resolved": "https://registry.npmjs.org/react-native-size-matters/-/react-native-size-matters-0.3.1.tgz", "integrity": "sha512-mKOfBLIBFBcs9br1rlZDvxD5+mAl8Gfr5CounwJtxI6Z82rGrMO+Kgl9EIg3RMVf3G855a85YVqHJL2f5EDRlw==", - "requires": {} + "requires": { + } }, "react-native-svg": { "version": "13.11.0", @@ -39324,7 +39369,8 @@ "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.0.1.tgz", "integrity": "sha512-lC/RGlPmwdrIBFTX59wwNzqh7aR2otPNPR/5brHZm/XKFYKsfqxihXUe9pU3JI+3vGkl+vyCoNNnPhJn3aLK1A==", "dev": true, - "requires": {} + "requires": { + } }, "ts-jest": { "version": "29.1.1", @@ -39645,13 +39691,15 @@ "version": "0.1.6", "resolved": "https://registry.npmjs.org/use-latest-callback/-/use-latest-callback-0.1.6.tgz", "integrity": "sha512-VO/P91A/PmKH9bcN9a7O3duSuxe6M14ZoYXgA6a8dab8doWNdhiIHzEkX/jFeTTRBsX0Ubk6nG4q2NIjNsj+bg==", - "requires": {} + "requires": { + } }, "use-sync-external-store": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.2.0.tgz", "integrity": "sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==", - "requires": {} + "requires": { + } }, "utf8": { "version": "3.0.0", @@ -39984,7 +40032,8 @@ "version": "7.5.5", "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.5.tgz", "integrity": "sha512-BAkMFcAzl8as1G/hArkxOxq3G7pjUqQ3gzYbLL0/5zNkph70e+lCoxBGnm6AW1+/aiNeV4fnKqZ8m4GZewmH2w==", - "requires": {} + "requires": { + } }, "xdate": { "version": "0.8.2", diff --git a/package.json b/package.json index 95aa1c2ac..a6b1757cb 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "mattermost-mobile", - "version": "2.8.0", + "version": "2.9.0", "description": "Mattermost Mobile with React Native", "repository": "git@github.com:mattermost/mattermost-mobile.git", "author": "Mattermost, Inc.", From 672e0ee225e0f05ce2d8058ebdbab98e804bc964 Mon Sep 17 00:00:00 2001 From: Elias Nahum Date: Thu, 28 Sep 2023 16:44:31 +0300 Subject: [PATCH 44/47] update libwebp (#7562) --- NOTICE.txt | 36 -- app/managers/analytics.ts | 3 +- ios/Mattermost.xcodeproj/project.pbxproj | 19 + ios/Podfile | 2 +- ios/Podfile.lock | 522 ++++++++++---------- package-lock.json | 196 +++----- package.json | 3 +- patches/react-native+0.71.11.patch | 106 ---- patches/react-native+0.71.13.patch | 341 +++++++++++++ patches/react-native-fast-image+8.6.3.patch | 9 +- 10 files changed, 684 insertions(+), 553 deletions(-) delete mode 100644 patches/react-native+0.71.11.patch create mode 100644 patches/react-native+0.71.13.patch diff --git a/NOTICE.txt b/NOTICE.txt index 88f04ecb9..7a0630561 100644 --- a/NOTICE.txt +++ b/NOTICE.txt @@ -596,42 +596,6 @@ Stack navigator component for iOS and Android with animated transitions and gest ---- - -## @rudderstack/rudder-sdk-react-native - -This product contains '@rudderstack/rudder-sdk-react-native' by RudderStack. - -Rudder React Native SDK - -* HOMEPAGE: - * https://github.com/rudderlabs/rudder-sdk-reactnative#readme - -* LICENSE: Apache-2.0 - -MIT License - -Copyright (c) 2021 RudderStack - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - - --- ## @sentry/react-native diff --git a/app/managers/analytics.ts b/app/managers/analytics.ts index ba100617f..5f8c850fd 100644 --- a/app/managers/analytics.ts +++ b/app/managers/analytics.ts @@ -25,7 +25,8 @@ export class Analytics { async init(config: ClientConfig) { if (LocalConfig.RudderApiKey) { - this.analytics = require('@rudderstack/rudder-sdk-react-native').default; + // Rudder stack has been temporarily removed + // this.analytics = require('@rudderstack/rudder-sdk-react-native').default; } if (this.analytics) { diff --git a/ios/Mattermost.xcodeproj/project.pbxproj b/ios/Mattermost.xcodeproj/project.pbxproj index aed8b39a3..a289d43c5 100644 --- a/ios/Mattermost.xcodeproj/project.pbxproj +++ b/ios/Mattermost.xcodeproj/project.pbxproj @@ -2221,6 +2221,7 @@ GCC_PREPROCESSOR_DEFINITIONS = ( "DEBUG=1", "$(inherited)", + _LIBCPP_ENABLE_CXX17_REMOVED_UNARY_BINARY_FUNCTION, ); GCC_SYMBOLS_PRIVATE_EXTERN = NO; GCC_WARN_64_TO_32_BIT_CONVERSION = YES; @@ -2238,6 +2239,13 @@ "-DFOLLY_MOBILE=1", "-DFOLLY_USE_LIBCPP=1", ); + OTHER_LDFLAGS = ( + "$(inherited)", + "-Wl", + "-ld_classic", + " ", + "-Wl -ld_classic ", + ); REACT_NATIVE_PATH = "${PODS_ROOT}/../../node_modules/react-native"; SDKROOT = iphoneos; }; @@ -2269,6 +2277,10 @@ "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = i386; GCC_C_LANGUAGE_STANDARD = gnu99; GCC_NO_COMMON_BLOCKS = YES; + GCC_PREPROCESSOR_DEFINITIONS = ( + "$(inherited)", + _LIBCPP_ENABLE_CXX17_REMOVED_UNARY_BINARY_FUNCTION, + ); GCC_WARN_64_TO_32_BIT_CONVERSION = YES; GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; GCC_WARN_UNDECLARED_SELECTOR = YES; @@ -2284,6 +2296,13 @@ "-DFOLLY_MOBILE=1", "-DFOLLY_USE_LIBCPP=1", ); + OTHER_LDFLAGS = ( + "$(inherited)", + "-Wl", + "-ld_classic", + " ", + "-Wl -ld_classic ", + ); REACT_NATIVE_PATH = "${PODS_ROOT}/../../node_modules/react-native"; SDKROOT = iphoneos; VALIDATE_PRODUCT = YES; diff --git a/ios/Podfile b/ios/Podfile index 303f94d78..3920e9685 100644 --- a/ios/Podfile +++ b/ios/Podfile @@ -63,7 +63,7 @@ post_install do |installer| installer.pods_project.targets.each do |target| target.build_configurations.each do |config| - config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '12.4' + config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '13.4' end end __apply_Xcode_12_5_M1_post_install_workaround(installer) diff --git a/ios/Podfile.lock b/ios/Podfile.lock index 264650506..13edd761d 100644 --- a/ios/Podfile.lock +++ b/ios/Podfile.lock @@ -4,18 +4,18 @@ PODS: - BVLinearGradient (2.8.2): - React-Core - CocoaAsyncSocket (7.6.5) - - CocoaLumberjack (3.8.0): - - CocoaLumberjack/Core (= 3.8.0) - - CocoaLumberjack/Core (3.8.0) + - CocoaLumberjack (3.8.1): + - CocoaLumberjack/Core (= 3.8.1) + - CocoaLumberjack/Core (3.8.1) - DoubleConversion (1.1.6) - - FBLazyVector (0.71.11) - - FBReactNativeSpec (0.71.11): + - FBLazyVector (0.71.13) + - FBReactNativeSpec (0.71.13): - RCT-Folly (= 2021.07.22.00) - - RCTRequired (= 0.71.11) - - RCTTypeSafety (= 0.71.11) - - React-Core (= 0.71.11) - - React-jsi (= 0.71.11) - - ReactCommon/turbomodule/core (= 0.71.11) + - RCTRequired (= 0.71.13) + - RCTTypeSafety (= 0.71.13) + - React-Core (= 0.71.13) + - React-jsi (= 0.71.13) + - ReactCommon/turbomodule/core (= 0.71.13) - Flipper (0.125.0): - Flipper-Folly (~> 2.6) - Flipper-RSocket (~> 1.4) @@ -79,25 +79,25 @@ PODS: - FlipperKit/FlipperKitNetworkPlugin - fmt (6.2.1) - glog (0.3.5) - - hermes-engine (0.71.11): - - hermes-engine/Pre-built (= 0.71.11) - - hermes-engine/Pre-built (0.71.11) + - hermes-engine (0.71.13): + - hermes-engine/Pre-built (= 0.71.13) + - hermes-engine/Pre-built (0.71.13) - HMSegmentedControl (1.5.6) - jail-monkey (2.8.0): - React-Core - JitsiWebRTC (111.0.2) - libevent (2.1.12) - - libwebp (1.3.1): - - libwebp/demux (= 1.3.1) - - libwebp/mux (= 1.3.1) - - libwebp/sharpyuv (= 1.3.1) - - libwebp/webp (= 1.3.1) - - libwebp/demux (1.3.1): + - libwebp (1.3.2): + - libwebp/demux (= 1.3.2) + - libwebp/mux (= 1.3.2) + - libwebp/sharpyuv (= 1.3.2) + - libwebp/webp (= 1.3.2) + - libwebp/demux (1.3.2): - libwebp/webp - - libwebp/mux (1.3.1): + - libwebp/mux (1.3.2): - libwebp/demux - - libwebp/sharpyuv (1.3.1) - - libwebp/webp (1.3.1): + - libwebp/sharpyuv (1.3.2) + - libwebp/webp (1.3.2): - libwebp/sharpyuv - mattermost-react-native-turbo-log (0.2.3): - CocoaLumberjack @@ -121,26 +121,26 @@ PODS: - fmt (~> 6.2.1) - glog - libevent - - RCTRequired (0.71.11) - - RCTTypeSafety (0.71.11): - - FBLazyVector (= 0.71.11) - - RCTRequired (= 0.71.11) - - React-Core (= 0.71.11) - - React (0.71.11): - - React-Core (= 0.71.11) - - React-Core/DevSupport (= 0.71.11) - - React-Core/RCTWebSocket (= 0.71.11) - - React-RCTActionSheet (= 0.71.11) - - React-RCTAnimation (= 0.71.11) - - React-RCTBlob (= 0.71.11) - - React-RCTImage (= 0.71.11) - - React-RCTLinking (= 0.71.11) - - React-RCTNetwork (= 0.71.11) - - React-RCTSettings (= 0.71.11) - - React-RCTText (= 0.71.11) - - React-RCTVibration (= 0.71.11) - - React-callinvoker (0.71.11) - - React-Codegen (0.71.11): + - RCTRequired (0.71.13) + - RCTTypeSafety (0.71.13): + - FBLazyVector (= 0.71.13) + - RCTRequired (= 0.71.13) + - React-Core (= 0.71.13) + - React (0.71.13): + - React-Core (= 0.71.13) + - React-Core/DevSupport (= 0.71.13) + - React-Core/RCTWebSocket (= 0.71.13) + - React-RCTActionSheet (= 0.71.13) + - React-RCTAnimation (= 0.71.13) + - React-RCTBlob (= 0.71.13) + - React-RCTImage (= 0.71.13) + - React-RCTLinking (= 0.71.13) + - React-RCTNetwork (= 0.71.13) + - React-RCTSettings (= 0.71.13) + - React-RCTText (= 0.71.13) + - React-RCTVibration (= 0.71.13) + - React-callinvoker (0.71.13) + - React-Codegen (0.71.13): - FBReactNativeSpec - hermes-engine - RCT-Folly @@ -151,214 +151,214 @@ PODS: - React-jsiexecutor - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - - React-Core (0.71.11): + - React-Core (0.71.13): - glog - hermes-engine - RCT-Folly (= 2021.07.22.00) - - React-Core/Default (= 0.71.11) - - React-cxxreact (= 0.71.11) + - React-Core/Default (= 0.71.13) + - React-cxxreact (= 0.71.13) - React-hermes - - React-jsi (= 0.71.11) - - React-jsiexecutor (= 0.71.11) - - React-perflogger (= 0.71.11) + - React-jsi (= 0.71.13) + - React-jsiexecutor (= 0.71.13) + - React-perflogger (= 0.71.13) - Yoga - - React-Core/CoreModulesHeaders (0.71.11): + - React-Core/CoreModulesHeaders (0.71.13): - glog - hermes-engine - RCT-Folly (= 2021.07.22.00) - React-Core/Default - - React-cxxreact (= 0.71.11) + - React-cxxreact (= 0.71.13) - React-hermes - - React-jsi (= 0.71.11) - - React-jsiexecutor (= 0.71.11) - - React-perflogger (= 0.71.11) + - React-jsi (= 0.71.13) + - React-jsiexecutor (= 0.71.13) + - React-perflogger (= 0.71.13) - Yoga - - React-Core/Default (0.71.11): + - React-Core/Default (0.71.13): - glog - hermes-engine - RCT-Folly (= 2021.07.22.00) - - React-cxxreact (= 0.71.11) + - React-cxxreact (= 0.71.13) - React-hermes - - React-jsi (= 0.71.11) - - React-jsiexecutor (= 0.71.11) - - React-perflogger (= 0.71.11) + - React-jsi (= 0.71.13) + - React-jsiexecutor (= 0.71.13) + - React-perflogger (= 0.71.13) - Yoga - - React-Core/DevSupport (0.71.11): + - React-Core/DevSupport (0.71.13): - glog - hermes-engine - RCT-Folly (= 2021.07.22.00) - - React-Core/Default (= 0.71.11) - - React-Core/RCTWebSocket (= 0.71.11) - - React-cxxreact (= 0.71.11) + - React-Core/Default (= 0.71.13) + - React-Core/RCTWebSocket (= 0.71.13) + - React-cxxreact (= 0.71.13) - React-hermes - - React-jsi (= 0.71.11) - - React-jsiexecutor (= 0.71.11) - - React-jsinspector (= 0.71.11) - - React-perflogger (= 0.71.11) + - React-jsi (= 0.71.13) + - React-jsiexecutor (= 0.71.13) + - React-jsinspector (= 0.71.13) + - React-perflogger (= 0.71.13) - Yoga - - React-Core/RCTActionSheetHeaders (0.71.11): + - React-Core/RCTActionSheetHeaders (0.71.13): - glog - hermes-engine - RCT-Folly (= 2021.07.22.00) - React-Core/Default - - React-cxxreact (= 0.71.11) + - React-cxxreact (= 0.71.13) - React-hermes - - React-jsi (= 0.71.11) - - React-jsiexecutor (= 0.71.11) - - React-perflogger (= 0.71.11) + - React-jsi (= 0.71.13) + - React-jsiexecutor (= 0.71.13) + - React-perflogger (= 0.71.13) - Yoga - - React-Core/RCTAnimationHeaders (0.71.11): + - React-Core/RCTAnimationHeaders (0.71.13): - glog - hermes-engine - RCT-Folly (= 2021.07.22.00) - React-Core/Default - - React-cxxreact (= 0.71.11) + - React-cxxreact (= 0.71.13) - React-hermes - - React-jsi (= 0.71.11) - - React-jsiexecutor (= 0.71.11) - - React-perflogger (= 0.71.11) + - React-jsi (= 0.71.13) + - React-jsiexecutor (= 0.71.13) + - React-perflogger (= 0.71.13) - Yoga - - React-Core/RCTBlobHeaders (0.71.11): + - React-Core/RCTBlobHeaders (0.71.13): - glog - hermes-engine - RCT-Folly (= 2021.07.22.00) - React-Core/Default - - React-cxxreact (= 0.71.11) + - React-cxxreact (= 0.71.13) - React-hermes - - React-jsi (= 0.71.11) - - React-jsiexecutor (= 0.71.11) - - React-perflogger (= 0.71.11) + - React-jsi (= 0.71.13) + - React-jsiexecutor (= 0.71.13) + - React-perflogger (= 0.71.13) - Yoga - - React-Core/RCTImageHeaders (0.71.11): + - React-Core/RCTImageHeaders (0.71.13): - glog - hermes-engine - RCT-Folly (= 2021.07.22.00) - React-Core/Default - - React-cxxreact (= 0.71.11) + - React-cxxreact (= 0.71.13) - React-hermes - - React-jsi (= 0.71.11) - - React-jsiexecutor (= 0.71.11) - - React-perflogger (= 0.71.11) + - React-jsi (= 0.71.13) + - React-jsiexecutor (= 0.71.13) + - React-perflogger (= 0.71.13) - Yoga - - React-Core/RCTLinkingHeaders (0.71.11): + - React-Core/RCTLinkingHeaders (0.71.13): - glog - hermes-engine - RCT-Folly (= 2021.07.22.00) - React-Core/Default - - React-cxxreact (= 0.71.11) + - React-cxxreact (= 0.71.13) - React-hermes - - React-jsi (= 0.71.11) - - React-jsiexecutor (= 0.71.11) - - React-perflogger (= 0.71.11) + - React-jsi (= 0.71.13) + - React-jsiexecutor (= 0.71.13) + - React-perflogger (= 0.71.13) - Yoga - - React-Core/RCTNetworkHeaders (0.71.11): + - React-Core/RCTNetworkHeaders (0.71.13): - glog - hermes-engine - RCT-Folly (= 2021.07.22.00) - React-Core/Default - - React-cxxreact (= 0.71.11) + - React-cxxreact (= 0.71.13) - React-hermes - - React-jsi (= 0.71.11) - - React-jsiexecutor (= 0.71.11) - - React-perflogger (= 0.71.11) + - React-jsi (= 0.71.13) + - React-jsiexecutor (= 0.71.13) + - React-perflogger (= 0.71.13) - Yoga - - React-Core/RCTSettingsHeaders (0.71.11): + - React-Core/RCTSettingsHeaders (0.71.13): - glog - hermes-engine - RCT-Folly (= 2021.07.22.00) - React-Core/Default - - React-cxxreact (= 0.71.11) + - React-cxxreact (= 0.71.13) - React-hermes - - React-jsi (= 0.71.11) - - React-jsiexecutor (= 0.71.11) - - React-perflogger (= 0.71.11) + - React-jsi (= 0.71.13) + - React-jsiexecutor (= 0.71.13) + - React-perflogger (= 0.71.13) - Yoga - - React-Core/RCTTextHeaders (0.71.11): + - React-Core/RCTTextHeaders (0.71.13): - glog - hermes-engine - RCT-Folly (= 2021.07.22.00) - React-Core/Default - - React-cxxreact (= 0.71.11) + - React-cxxreact (= 0.71.13) - React-hermes - - React-jsi (= 0.71.11) - - React-jsiexecutor (= 0.71.11) - - React-perflogger (= 0.71.11) + - React-jsi (= 0.71.13) + - React-jsiexecutor (= 0.71.13) + - React-perflogger (= 0.71.13) - Yoga - - React-Core/RCTVibrationHeaders (0.71.11): + - React-Core/RCTVibrationHeaders (0.71.13): - glog - hermes-engine - RCT-Folly (= 2021.07.22.00) - React-Core/Default - - React-cxxreact (= 0.71.11) + - React-cxxreact (= 0.71.13) - React-hermes - - React-jsi (= 0.71.11) - - React-jsiexecutor (= 0.71.11) - - React-perflogger (= 0.71.11) + - React-jsi (= 0.71.13) + - React-jsiexecutor (= 0.71.13) + - React-perflogger (= 0.71.13) - Yoga - - React-Core/RCTWebSocket (0.71.11): + - React-Core/RCTWebSocket (0.71.13): - glog - hermes-engine - RCT-Folly (= 2021.07.22.00) - - React-Core/Default (= 0.71.11) - - React-cxxreact (= 0.71.11) + - React-Core/Default (= 0.71.13) + - React-cxxreact (= 0.71.13) - React-hermes - - React-jsi (= 0.71.11) - - React-jsiexecutor (= 0.71.11) - - React-perflogger (= 0.71.11) + - React-jsi (= 0.71.13) + - React-jsiexecutor (= 0.71.13) + - React-perflogger (= 0.71.13) - Yoga - - React-CoreModules (0.71.11): + - React-CoreModules (0.71.13): - RCT-Folly (= 2021.07.22.00) - - RCTTypeSafety (= 0.71.11) - - React-Codegen (= 0.71.11) - - React-Core/CoreModulesHeaders (= 0.71.11) - - React-jsi (= 0.71.11) + - RCTTypeSafety (= 0.71.13) + - React-Codegen (= 0.71.13) + - React-Core/CoreModulesHeaders (= 0.71.13) + - React-jsi (= 0.71.13) - React-RCTBlob - - React-RCTImage (= 0.71.11) - - ReactCommon/turbomodule/core (= 0.71.11) - - React-cxxreact (0.71.11): + - React-RCTImage (= 0.71.13) + - ReactCommon/turbomodule/core (= 0.71.13) + - React-cxxreact (0.71.13): - boost (= 1.76.0) - DoubleConversion - glog - hermes-engine - RCT-Folly (= 2021.07.22.00) - - React-callinvoker (= 0.71.11) - - React-jsi (= 0.71.11) - - React-jsinspector (= 0.71.11) - - React-logger (= 0.71.11) - - React-perflogger (= 0.71.11) - - React-runtimeexecutor (= 0.71.11) - - React-hermes (0.71.11): + - React-callinvoker (= 0.71.13) + - React-jsi (= 0.71.13) + - React-jsinspector (= 0.71.13) + - React-logger (= 0.71.13) + - React-perflogger (= 0.71.13) + - React-runtimeexecutor (= 0.71.13) + - React-hermes (0.71.13): - DoubleConversion - glog - hermes-engine - RCT-Folly (= 2021.07.22.00) - RCT-Folly/Futures (= 2021.07.22.00) - - React-cxxreact (= 0.71.11) + - React-cxxreact (= 0.71.13) - React-jsi - - React-jsiexecutor (= 0.71.11) - - React-jsinspector (= 0.71.11) - - React-perflogger (= 0.71.11) - - React-jsc (0.71.11): - - React-jsc/Fabric (= 0.71.11) - - React-jsi (= 0.71.11) - - React-jsc/Fabric (0.71.11): - - React-jsi (= 0.71.11) - - React-jsi (0.71.11): + - React-jsiexecutor (= 0.71.13) + - React-jsinspector (= 0.71.13) + - React-perflogger (= 0.71.13) + - React-jsc (0.71.13): + - React-jsc/Fabric (= 0.71.13) + - React-jsi (= 0.71.13) + - React-jsc/Fabric (0.71.13): + - React-jsi (= 0.71.13) + - React-jsi (0.71.13): - boost (= 1.76.0) - DoubleConversion - glog - hermes-engine - RCT-Folly (= 2021.07.22.00) - - React-jsiexecutor (0.71.11): + - React-jsiexecutor (0.71.13): - DoubleConversion - glog - hermes-engine - RCT-Folly (= 2021.07.22.00) - - React-cxxreact (= 0.71.11) - - React-jsi (= 0.71.11) - - React-perflogger (= 0.71.11) - - React-jsinspector (0.71.11) - - React-logger (0.71.11): + - React-cxxreact (= 0.71.13) + - React-jsi (= 0.71.13) + - React-perflogger (= 0.71.13) + - React-jsinspector (0.71.13) + - React-logger (0.71.13): - glog - react-native-background-timer (2.4.1): - React-Core @@ -402,90 +402,90 @@ PODS: - React-Core - react-native-webview (13.3.1): - React-Core - - React-perflogger (0.71.11) - - React-RCTActionSheet (0.71.11): - - React-Core/RCTActionSheetHeaders (= 0.71.11) - - React-RCTAnimation (0.71.11): + - React-perflogger (0.71.13) + - React-RCTActionSheet (0.71.13): + - React-Core/RCTActionSheetHeaders (= 0.71.13) + - React-RCTAnimation (0.71.13): - RCT-Folly (= 2021.07.22.00) - - RCTTypeSafety (= 0.71.11) - - React-Codegen (= 0.71.11) - - React-Core/RCTAnimationHeaders (= 0.71.11) - - React-jsi (= 0.71.11) - - ReactCommon/turbomodule/core (= 0.71.11) - - React-RCTAppDelegate (0.71.11): + - RCTTypeSafety (= 0.71.13) + - React-Codegen (= 0.71.13) + - React-Core/RCTAnimationHeaders (= 0.71.13) + - React-jsi (= 0.71.13) + - ReactCommon/turbomodule/core (= 0.71.13) + - React-RCTAppDelegate (0.71.13): - RCT-Folly - RCTRequired - RCTTypeSafety - React-Core - ReactCommon/turbomodule/core - - React-RCTBlob (0.71.11): + - React-RCTBlob (0.71.13): - hermes-engine - RCT-Folly (= 2021.07.22.00) - - React-Codegen (= 0.71.11) - - React-Core/RCTBlobHeaders (= 0.71.11) - - React-Core/RCTWebSocket (= 0.71.11) - - React-jsi (= 0.71.11) - - React-RCTNetwork (= 0.71.11) - - ReactCommon/turbomodule/core (= 0.71.11) - - React-RCTImage (0.71.11): + - React-Codegen (= 0.71.13) + - React-Core/RCTBlobHeaders (= 0.71.13) + - React-Core/RCTWebSocket (= 0.71.13) + - React-jsi (= 0.71.13) + - React-RCTNetwork (= 0.71.13) + - ReactCommon/turbomodule/core (= 0.71.13) + - React-RCTImage (0.71.13): - RCT-Folly (= 2021.07.22.00) - - RCTTypeSafety (= 0.71.11) - - React-Codegen (= 0.71.11) - - React-Core/RCTImageHeaders (= 0.71.11) - - React-jsi (= 0.71.11) - - React-RCTNetwork (= 0.71.11) - - ReactCommon/turbomodule/core (= 0.71.11) - - React-RCTLinking (0.71.11): - - React-Codegen (= 0.71.11) - - React-Core/RCTLinkingHeaders (= 0.71.11) - - React-jsi (= 0.71.11) - - ReactCommon/turbomodule/core (= 0.71.11) - - React-RCTNetwork (0.71.11): + - RCTTypeSafety (= 0.71.13) + - React-Codegen (= 0.71.13) + - React-Core/RCTImageHeaders (= 0.71.13) + - React-jsi (= 0.71.13) + - React-RCTNetwork (= 0.71.13) + - ReactCommon/turbomodule/core (= 0.71.13) + - React-RCTLinking (0.71.13): + - React-Codegen (= 0.71.13) + - React-Core/RCTLinkingHeaders (= 0.71.13) + - React-jsi (= 0.71.13) + - ReactCommon/turbomodule/core (= 0.71.13) + - React-RCTNetwork (0.71.13): - RCT-Folly (= 2021.07.22.00) - - RCTTypeSafety (= 0.71.11) - - React-Codegen (= 0.71.11) - - React-Core/RCTNetworkHeaders (= 0.71.11) - - React-jsi (= 0.71.11) - - ReactCommon/turbomodule/core (= 0.71.11) - - React-RCTSettings (0.71.11): + - RCTTypeSafety (= 0.71.13) + - React-Codegen (= 0.71.13) + - React-Core/RCTNetworkHeaders (= 0.71.13) + - React-jsi (= 0.71.13) + - ReactCommon/turbomodule/core (= 0.71.13) + - React-RCTSettings (0.71.13): - RCT-Folly (= 2021.07.22.00) - - RCTTypeSafety (= 0.71.11) - - React-Codegen (= 0.71.11) - - React-Core/RCTSettingsHeaders (= 0.71.11) - - React-jsi (= 0.71.11) - - ReactCommon/turbomodule/core (= 0.71.11) - - React-RCTText (0.71.11): - - React-Core/RCTTextHeaders (= 0.71.11) - - React-RCTVibration (0.71.11): + - RCTTypeSafety (= 0.71.13) + - React-Codegen (= 0.71.13) + - React-Core/RCTSettingsHeaders (= 0.71.13) + - React-jsi (= 0.71.13) + - ReactCommon/turbomodule/core (= 0.71.13) + - React-RCTText (0.71.13): + - React-Core/RCTTextHeaders (= 0.71.13) + - React-RCTVibration (0.71.13): - RCT-Folly (= 2021.07.22.00) - - React-Codegen (= 0.71.11) - - React-Core/RCTVibrationHeaders (= 0.71.11) - - React-jsi (= 0.71.11) - - ReactCommon/turbomodule/core (= 0.71.11) - - React-runtimeexecutor (0.71.11): - - React-jsi (= 0.71.11) - - ReactCommon/turbomodule/bridging (0.71.11): + - React-Codegen (= 0.71.13) + - React-Core/RCTVibrationHeaders (= 0.71.13) + - React-jsi (= 0.71.13) + - ReactCommon/turbomodule/core (= 0.71.13) + - React-runtimeexecutor (0.71.13): + - React-jsi (= 0.71.13) + - ReactCommon/turbomodule/bridging (0.71.13): - DoubleConversion - glog - hermes-engine - RCT-Folly (= 2021.07.22.00) - - React-callinvoker (= 0.71.11) - - React-Core (= 0.71.11) - - React-cxxreact (= 0.71.11) - - React-jsi (= 0.71.11) - - React-logger (= 0.71.11) - - React-perflogger (= 0.71.11) - - ReactCommon/turbomodule/core (0.71.11): + - React-callinvoker (= 0.71.13) + - React-Core (= 0.71.13) + - React-cxxreact (= 0.71.13) + - React-jsi (= 0.71.13) + - React-logger (= 0.71.13) + - React-perflogger (= 0.71.13) + - ReactCommon/turbomodule/core (0.71.13): - DoubleConversion - glog - hermes-engine - RCT-Folly (= 2021.07.22.00) - - React-callinvoker (= 0.71.11) - - React-Core (= 0.71.11) - - React-cxxreact (= 0.71.11) - - React-jsi (= 0.71.11) - - React-logger (= 0.71.11) - - React-perflogger (= 0.71.11) + - React-callinvoker (= 0.71.13) + - React-Core (= 0.71.13) + - React-cxxreact (= 0.71.13) + - React-jsi (= 0.71.13) + - React-logger (= 0.71.13) + - React-perflogger (= 0.71.13) - ReactNativeExceptionHandler (2.10.10): - React-Core - ReactNativeIncallManager (4.1.0): @@ -513,8 +513,8 @@ PODS: - React-Core - RNFastImage (8.6.3): - React-Core - - SDWebImage (~> 5.12.3) - - SDWebImageWebPCoder (~> 0.8.4) + - SDWebImage (~> 5.18.2) + - SDWebImageWebPCoder (~> 0.13.0) - RNFileViewer (2.1.5): - React-Core - RNFS (2.20.0): @@ -558,9 +558,6 @@ PODS: - React-RCTText - ReactCommon/turbomodule/core - Yoga - - RNRudderSdk (1.8.0): - - React - - Rudder (~> 1.13) - RNScreens (3.24.0): - React-Core - React-RCTImage @@ -573,13 +570,12 @@ PODS: - React-Core - RNVectorIcons (10.0.0): - React-Core - - Rudder (1.17.0) - - SDWebImage (5.12.6): - - SDWebImage/Core (= 5.12.6) - - SDWebImage/Core (5.12.6) - - SDWebImageWebPCoder (0.8.5): + - SDWebImage (5.18.2): + - SDWebImage/Core (= 5.18.2) + - SDWebImage/Core (5.18.2) + - SDWebImageWebPCoder (0.13.0): - libwebp (~> 1.0) - - SDWebImage/Core (~> 5.10) + - SDWebImage/Core (~> 5.17) - Sentry/HybridSDK (8.9.4): - SentryPrivate (= 8.9.4) - SentryPrivate (8.9.4) @@ -691,7 +687,6 @@ DEPENDENCIES: - RNPermissions (from `../node_modules/react-native-permissions`) - RNReactNativeHapticFeedback (from `../node_modules/react-native-haptic-feedback`) - RNReanimated (from `../node_modules/react-native-reanimated`) - - "RNRudderSdk (from `../node_modules/@rudderstack/rudder-sdk-react-native`)" - RNScreens (from `../node_modules/react-native-screens`) - "RNSentry (from `../node_modules/@sentry/react-native`)" - RNShare (from `../node_modules/react-native-share`) @@ -722,7 +717,6 @@ SPEC REPOS: - libevent - libwebp - OpenSSL-Universal - - Rudder - SDWebImage - SDWebImageWebPCoder - Sentry @@ -873,8 +867,6 @@ EXTERNAL SOURCES: :path: "../node_modules/react-native-haptic-feedback" RNReanimated: :path: "../node_modules/react-native-reanimated" - RNRudderSdk: - :path: "../node_modules/@rudderstack/rudder-sdk-react-native" RNScreens: :path: "../node_modules/react-native-screens" RNSentry: @@ -905,10 +897,10 @@ SPEC CHECKSUMS: boost: 57d2868c099736d80fcd648bf211b4431e51a558 BVLinearGradient: 916632041121a658c704df89d99f04acb038de0f CocoaAsyncSocket: 065fd1e645c7abab64f7a6a2007a48038fdc6a99 - CocoaLumberjack: 78abfb691154e2a9df8ded4350d504ee19d90732 + CocoaLumberjack: 5c7e64cdb877770859bddec4d3d5a0d7c9299df9 DoubleConversion: 5189b271737e1565bdce30deb4a08d647e3f5f54 - FBLazyVector: c511d4cd0210f416cb5c289bd5ae6b36d909b048 - FBReactNativeSpec: a911fb22def57aef1d74215e8b6b8761d25c1c54 + FBLazyVector: 24e08bf294faea0abc0278abb2fcad7f3e446f6f + FBReactNativeSpec: c949e4b726d8cf9e19b73be60ecfa26355deceb3 Flipper: 26fc4b7382499f1281eb8cb921e5c3ad6de91fe0 Flipper-Boost-iOSX: fd1e2b8cbef7e662a122412d7ac5f5bea715403c Flipper-DoubleConversion: 2dc99b02f658daf147069aad9dbd29d8feb06d30 @@ -920,29 +912,29 @@ SPEC CHECKSUMS: FlipperKit: cbdee19bdd4e7f05472a66ce290f1b729ba3cb86 fmt: ff9d55029c625d3757ed641535fd4a75fedc7ce9 glog: 04b94705f318337d7ead9e6d17c019bd9b1f6b1b - hermes-engine: 34c863b446d0135b85a6536fa5fd89f48196f848 + hermes-engine: 8b9dc37355d2e12879267382f4256afd356349a1 HMSegmentedControl: 34c1f54d822d8308e7b24f5d901ec674dfa31352 jail-monkey: a71b35d482a70ecba844a90f002994012cf12a5d JitsiWebRTC: 80f62908fcf2a1160e0d14b584323fb6e6be630b libevent: 4049cae6c81cdb3654a443be001fb9bdceff7913 - libwebp: 33dc822fbbf4503668d09f7885bbfedc76c45e96 + libwebp: 1786c9f4ff8a279e4dac1e8f385004d5fc253009 mattermost-react-native-turbo-log: a00b39dafdef7905164110466e7d725f6f079751 OpenSSL-Universal: ebc357f1e6bc71fa463ccb2fe676756aff50e88c RCT-Folly: 424b8c9a7a0b9ab2886ffe9c3b041ef628fd4fb1 - RCTRequired: f6187ec763637e6a57f5728dd9a3bdabc6d6b4e0 - RCTTypeSafety: a01aca2dd3b27fa422d5239252ad38e54e958750 - React: 741b4f5187e7a2137b69c88e65f940ba40600b4b - React-callinvoker: 72ba74b2d5d690c497631191ae6eeca0c043d9cf - React-Codegen: 8a7cda1633e4940de8a710f6bf5cae5dd673546e - React-Core: 72bb19702c465b6451a40501a2879532bec9acee - React-CoreModules: ffd19b082fc36b9b463fedf30955138b5426c053 - React-cxxreact: 8b3dd87e3b8ea96dd4ad5c7bac8f31f1cc3da97f - React-hermes: be95942c3f47fc032da1387360413f00dae0ea68 - React-jsc: 75bfda40ea4032b5018875355ab5ee089ac748bf - React-jsi: 9978e2a64c2a4371b40e109f4ef30a33deaa9bcb - React-jsiexecutor: 18b5b33c5f2687a784a61bc8176611b73524ae77 - React-jsinspector: b6ed4cb3ffa27a041cd440300503dc512b761450 - React-logger: 186dd536128ae5924bc38ed70932c00aa740cd5b + RCTRequired: c20235648eeb64a874f55459ceae6b081956318d + RCTTypeSafety: ca004f1fe0b76f7936f7fe7dfd761a4386cf72f5 + React: b27df2b1da30335cf1bf1909056c4e1c3a3603ae + React-callinvoker: f2a69510d781d8226d51342a3cbe8a9b13573ea5 + React-Codegen: ba40903fcda35154f5b4350b62ab831e4ea1f174 + React-Core: 0771d135beb41b14e0e2ee9238fda50df6f18b97 + React-CoreModules: 0e081b26ab034992d6a60217fc35a83e8ad9b8ed + React-cxxreact: 3ec43be907f4d818c5113e436d661836d1ab5aa9 + React-hermes: 870871faa5b35c8163361e22241360de26afe07d + React-jsc: 61eedc91c322c4d393cf8369a059902de301f2c9 + React-jsi: c06ec745faeea7bb8845a9b906aefa7c049c86cb + React-jsiexecutor: a2867f1f81301b1f56ad968632b6ebc45c64a530 + React-jsinspector: 7e58fe86c7cc442fd11da0c9d8bef12a8d63f771 + React-logger: a3f6ca0d018749852a2a6f07c154bfc6fcd4195a react-native-background-timer: 17ea5e06803401a379ebf1f20505b793ac44d0fe react-native-cameraroll: 134805127580aed23403b8c2cb1548920dd77b3a react-native-cookies: f54fcded06bb0cda05c11d86788020b43528a26c @@ -960,19 +952,19 @@ SPEC CHECKSUMS: react-native-video: c26780b224543c62d5e1b2a7244a5cd1b50e8253 react-native-webrtc: 4d1669c2ed29767fe70b0169428b4466589ecf8b react-native-webview: c2b70afb1d910cdd8810375aecc6c2894e2ba061 - React-perflogger: e706562ab7eb8eb590aa83a224d26fa13963d7f2 - React-RCTActionSheet: 57d4bd98122f557479a3359ad5dad8e109e20c5a - React-RCTAnimation: ccf3ef00101ea74bda73a045d79a658b36728a60 - React-RCTAppDelegate: d0c28a35c65e9a0aef287ac0dafe1b71b1ac180c - React-RCTBlob: 1700b92ece4357af0a49719c9638185ad2902e95 - React-RCTImage: f2e4904566ccccaa4b704170fcc5ae144ca347bf - React-RCTLinking: 52a3740e3651e30aa11dff5a6debed7395dd8169 - React-RCTNetwork: ea0976f2b3ffc7877cd7784e351dc460adf87b12 - React-RCTSettings: ed5ac992b23e25c65c3cc31f11b5c940ae5e3e60 - React-RCTText: c9dfc6722621d56332b4f3a19ac38105e7504145 - React-RCTVibration: f09f08de63e4122deb32506e20ca4cae6e4e14c1 - React-runtimeexecutor: 4817d63dbc9d658f8dc0ec56bd9b83ce531129f0 - ReactCommon: 08723d2ed328c5cbcb0de168f231bc7bae7f8aa1 + React-perflogger: 431a655960a02f01257d631b2a9bfbb02fd21064 + React-RCTActionSheet: 38c8d496d0faa63013d16f709e10a3acf6b5f100 + React-RCTAnimation: 6da4d599f3262ed8021433ddd96de45ac9e731b1 + React-RCTAppDelegate: 66498edcd8ba93f0bd727304be671f9f3ddf0a23 + React-RCTBlob: d8f7bf9f32fbde84565a81f4bdf34398f46d45dd + React-RCTImage: 4e31e6ebf2b9705831d1855425a043b40eec1f61 + React-RCTLinking: 22ac16d44e2df03e9ca9125273fc58a7c507f529 + React-RCTNetwork: 4bacd206834633c23475485dbc21c18563627af4 + React-RCTSettings: 4e4ace986ae92a7e1696fdac11615576b698f337 + React-RCTText: 37a1341bdf1f80e9909f6b69a7a9ee747cb682d3 + React-RCTVibration: 2271362cdf9ff2dae6a2156f5101e5c30b02694d + React-runtimeexecutor: 35cec6420c9d4144b0d06f9fdb093cf8f02bd52c + ReactCommon: fc9d1da17fa902910dcba550a54c16e7e1c70d2c ReactNativeExceptionHandler: b11ff67c78802b2f62eed0e10e75cb1ef7947c60 ReactNativeIncallManager: 2385505fa5dfdbbc78925e3b8d23b30ce0cde40e ReactNativeKeyboardTrackingView: 02137fac3b2ebd330d74fa54ead48b14750a2306 @@ -980,7 +972,7 @@ SPEC CHECKSUMS: RNCClipboard: 3f0451a8100393908bea5c5c5b16f96d45f30bfc RNDateTimePicker: 9b4091348e53f540180abdc54984d839a556f593 RNDeviceInfo: 5795b418ed3451ebcaf39384e6cf51f60cb931c9 - RNFastImage: 0ee8f7e39df8190d3ca3a5b0c4ea0109c0ff132e + RNFastImage: d2166bfb81ca27b8c9cd21d8105c4e9adaf0b252 RNFileViewer: ce7ca3ac370e18554d35d6355cffd7c30437c592 RNFS: 4ac0f0ea233904cb798630b3c077808c06931688 RNGestureHandler: c0d04458598fcb26052494ae23dda8f8f5162b13 @@ -989,15 +981,13 @@ SPEC CHECKSUMS: RNPermissions: 8ec6088b9f52706b4ef98fc4929df617d23917f3 RNReactNativeHapticFeedback: afa5bf2794aecbb2dba2525329253da0d66656df RNReanimated: 49cdb63e767bb7e743ff4c12f7d85722c0d008f2 - RNRudderSdk: b8cbccae069ea1a16ae1fd93e1b1072c1f1b7af7 RNScreens: b21dc57dfa2b710c30ec600786a3fc223b1b92e7 RNSentry: c167b3da6aa7f3cf85d909caae905d043a062b6c RNShare: da6d90b6dc332f51f86498041d6e34211f96b630 RNSVG: 03e4d258ca355d7836a0a5dd4d4dc63c1eb49cbb RNVectorIcons: 8b5bb0fa61d54cd2020af4f24a51841ce365c7e9 - Rudder: 3f4ab09638452282a22b96a388b54132dcd3fca8 - SDWebImage: a47aea9e3d8816015db4e523daff50cfd294499d - SDWebImageWebPCoder: 908b83b6adda48effe7667cd2b7f78c897e5111d + SDWebImage: c0de394d7cf7f9838aed1fd6bb6037654a4572e4 + SDWebImageWebPCoder: af09429398d99d524cae2fe00f6f0f6e491ed102 Sentry: 56c76eed917f7dffd46db50906afbf5c9aa2673a SentryPrivate: f3be34b5deb9fe676fdfb1f1ad5cdb1b740c5688 simdjson: e6bfae9ce4bcdc80452d388d593816f1ca2106f3 @@ -1006,9 +996,9 @@ SPEC CHECKSUMS: SwiftyJSON: 2f33a42c6fbc52764d96f13368585094bfd8aa5e Swime: d7b2c277503b6cea317774aedc2dce05613f8b0b WatermelonDB: cd71a1085182aca9e5d2164b7af9ef2a3aaca571 - Yoga: f7decafdc5e8c125e6fa0da38a687e35238420fa + Yoga: 135109c9b8c5d1a8af3a58d21cd4c7aa7f3bf555 YogaKit: f782866e155069a2cca2517aafea43200b01fd5a -PODFILE CHECKSUM: 25f07cb9e5eed8c84db8e8723000e8470c349058 +PODFILE CHECKSUM: 8c9b3133b62f3917cfe8e505f2a5dbd3fd882183 COCOAPODS: 1.11.3 diff --git a/package-lock.json b/package-lock.json index e1731caf2..bf546c225 100644 --- a/package-lock.json +++ b/package-lock.json @@ -6,7 +6,7 @@ "packages": { "": { "name": "mattermost-mobile", - "version": "2.8.0", + "version": "2.9.0", "hasInstallScript": true, "license": "Apache 2.0", "dependencies": { @@ -36,7 +36,6 @@ "@react-navigation/bottom-tabs": "6.5.8", "@react-navigation/native": "6.1.7", "@react-navigation/stack": "6.3.17", - "@rudderstack/rudder-sdk-react-native": "1.8.0", "@sentry/react-native": "5.9.0", "@stream-io/flat-list-mvcp": "0.10.3", "@tsconfig/react-native": "3.0.2", @@ -55,7 +54,7 @@ "react": "18.2.0", "react-freeze": "1.0.3", "react-intl": "6.4.4", - "react-native": "0.71.11", + "react-native": "0.71.13", "react-native-android-open-settings": "1.3.0", "react-native-background-timer": "2.4.1", "react-native-button": "3.1.0", @@ -6173,18 +6172,6 @@ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, - "node_modules/@rudderstack/rudder-sdk-react-native": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@rudderstack/rudder-sdk-react-native/-/rudder-sdk-react-native-1.8.0.tgz", - "integrity": "sha512-rY7abaXKUOCiJuNufJgP9tKv86/6KYIBPWe/p86HpNmvX4XystyRJDC0n5e26MHAmOasaNELvO5WW/G7sOa8RA==", - "dependencies": { - "async-lock": "1.4.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0", - "react-native": ">= 0.41.2 < 0.80.0 || ^0.0.0-0" - } - }, "node_modules/@sentry-internal/tracing": { "version": "7.63.0", "resolved": "https://registry.npmjs.org/@sentry-internal/tracing/-/tracing-7.63.0.tgz", @@ -8309,11 +8296,6 @@ "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==" }, - "node_modules/async-lock": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/async-lock/-/async-lock-1.4.0.tgz", - "integrity": "sha512-coglx5yIWuetakm3/1dsX9hxCNox22h7+V80RQOu2XUUMidtArxKoZoOtHUPuR84SycKTXzgGzAUR5hJxujyJQ==" - }, "node_modules/asynciterator.prototype": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/asynciterator.prototype/-/asynciterator.prototype-1.0.0.tgz", @@ -19125,9 +19107,9 @@ "integrity": "sha512-txfpPCQYiazVdcbMRhatqWKcAxJweUu2wDXvts5/7Wyp6+Y9cHojqXHsLPEckzutfHlxZhG8Oiundbmp8Fd6eQ==" }, "node_modules/react-native": { - "version": "0.71.11", - "resolved": "https://registry.npmjs.org/react-native/-/react-native-0.71.11.tgz", - "integrity": "sha512-++8IxgUe4Ev+bTiFlLfJCdSoE5cReVP1DTpVJ8f/QtzaxA3h1008Y3Xah1Q5vsR4rZcYMO7Pn3af+wOshdQFug==", + "version": "0.71.13", + "resolved": "https://registry.npmjs.org/react-native/-/react-native-0.71.13.tgz", + "integrity": "sha512-zEa69YQNLdv8Sf5Pn0CNDB1K9eGuNy1KoMNxXlrZ89JZ8d02b5hihZIoOCCIwhH+iPgslYwr3ZoGd3AY6FMrgw==", "dependencies": { "@jest/create-cache-key-function": "^29.2.1", "@react-native-community/cli": "10.2.4", @@ -19138,6 +19120,7 @@ "@react-native/polyfills": "2.0.0", "abort-controller": "^3.0.0", "anser": "^1.4.9", + "ansi-regex": "^5.0.0", "base64-js": "^1.1.2", "deprecated-react-native-prop-types": "^3.0.1", "event-target-shim": "^5.0.1", @@ -23604,8 +23587,7 @@ "version": "7.21.0-placeholder-for-preset-env.2", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", - "requires": { - } + "requires": {} }, "@babel/plugin-syntax-async-generators": { "version": "7.8.4", @@ -25428,8 +25410,7 @@ "version": "1.3.5", "resolved": "https://registry.npmjs.org/@mattermost/react-native-emm/-/react-native-emm-1.3.5.tgz", "integrity": "sha512-REdUEsm/RA6lI1Rt4b009jvWn28f7H+e27gd4hlNk6zesIh/dlfiHwYfInW/vwbNFBdSPpvHy7Qi2mdcvrNqhg==", - "requires": { - } + "requires": {} }, "@mattermost/react-native-network-client": { "version": "1.4.1", @@ -25452,8 +25433,7 @@ "version": "0.2.3", "resolved": "https://registry.npmjs.org/@mattermost/react-native-turbo-log/-/react-native-turbo-log-0.2.3.tgz", "integrity": "sha512-usWyD8zVAHzrYqgPH1ne5I14gCOkhS2mefK58g5v4DewZfCm0/Uc0w8MRuPS/9jyOPPq1rUZj8U1AqKgEne9tQ==", - "requires": { - } + "requires": {} }, "@msgpack/msgpack": { "version": "2.8.0", @@ -25545,15 +25525,13 @@ "version": "5.7.2", "resolved": "https://registry.npmjs.org/@react-native-camera-roll/camera-roll/-/camera-roll-5.7.2.tgz", "integrity": "sha512-s8VAUG1Kvi+tEJkLHObmOJdXAL/uclnXJ/IdnJtx2fCKiWA3Ho0ln9gDQqCYHHHHu+sXk7wovsH/I2/AYy0brg==", - "requires": { - } + "requires": {} }, "@react-native-clipboard/clipboard": { "version": "1.11.2", "resolved": "https://registry.npmjs.org/@react-native-clipboard/clipboard/-/clipboard-1.11.2.tgz", "integrity": "sha512-bHyZVW62TuleiZsXNHS1Pv16fWc0fh8O9WvBzl4h2fykqZRW9a+Pv/RGTH56E3X2PqzHP38K5go8zmCZUoIsoQ==", - "requires": { - } + "requires": {} }, "@react-native-community/cli": { "version": "10.2.4", @@ -27262,8 +27240,7 @@ "version": "9.4.1", "resolved": "https://registry.npmjs.org/@react-native-community/netinfo/-/netinfo-9.4.1.tgz", "integrity": "sha512-dAbY5mfw+6Kas/GJ6QX9AZyY+K+eq9ad4Su6utoph/nxyH3whp5cMSgRNgE2VhGQVRZ/OG0qq3IaD3+wzoqJXw==", - "requires": { - } + "requires": {} }, "@react-native-cookies/cookies": { "version": "6.2.1", @@ -27429,8 +27406,7 @@ "version": "1.3.18", "resolved": "https://registry.npmjs.org/@react-navigation/elements/-/elements-1.3.18.tgz", "integrity": "sha512-/0hwnJkrr415yP0Hf4PjUKgGyfshrvNUKFXN85Mrt1gY49hy9IwxZgrrxlh0THXkPeq8q4VWw44eHDfAcQf20Q==", - "requires": { - } + "requires": {} }, "@react-navigation/native": { "version": "6.1.7", @@ -27485,14 +27461,6 @@ } } }, - "@rudderstack/rudder-sdk-react-native": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@rudderstack/rudder-sdk-react-native/-/rudder-sdk-react-native-1.8.0.tgz", - "integrity": "sha512-rY7abaXKUOCiJuNufJgP9tKv86/6KYIBPWe/p86HpNmvX4XystyRJDC0n5e26MHAmOasaNELvO5WW/G7sOa8RA==", - "requires": { - "async-lock": "1.4.0" - } - }, "@sentry-internal/tracing": { "version": "7.63.0", "resolved": "https://registry.npmjs.org/@sentry-internal/tracing/-/tracing-7.63.0.tgz", @@ -27665,72 +27633,63 @@ "version": "0.10.3", "resolved": "https://registry.npmjs.org/@stream-io/flat-list-mvcp/-/flat-list-mvcp-0.10.3.tgz", "integrity": "sha512-2ZK8piYlEfKIPZrH8BpZz9uj8HZcUvMCV0X7qSLSAc/vhLOANBfR0SSn0OaWPbqb2mFGAd4FxmLSPp1zKEYuaw==", - "requires": { - } + "requires": {} }, "@svgr/babel-plugin-add-jsx-attribute": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-8.0.0.tgz", "integrity": "sha512-b9MIk7yhdS1pMCZM8VeNfUlSKVRhsHZNMl5O9SfaX0l0t5wjdgu4IDzGB8bpnGBBOjGST3rRFVsaaEtI4W6f7g==", "dev": true, - "requires": { - } + "requires": {} }, "@svgr/babel-plugin-remove-jsx-attribute": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-8.0.0.tgz", "integrity": "sha512-BcCkm/STipKvbCl6b7QFrMh/vx00vIP63k2eM66MfHJzPr6O2U0jYEViXkHJWqXqQYjdeA9cuCl5KWmlwjDvbA==", "dev": true, - "requires": { - } + "requires": {} }, "@svgr/babel-plugin-remove-jsx-empty-expression": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-8.0.0.tgz", "integrity": "sha512-5BcGCBfBxB5+XSDSWnhTThfI9jcO5f0Ai2V24gZpG+wXF14BzwxxdDb4g6trdOux0rhibGs385BeFMSmxtS3uA==", "dev": true, - "requires": { - } + "requires": {} }, "@svgr/babel-plugin-replace-jsx-attribute-value": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-8.0.0.tgz", "integrity": "sha512-KVQ+PtIjb1BuYT3ht8M5KbzWBhdAjjUPdlMtpuw/VjT8coTrItWX6Qafl9+ji831JaJcu6PJNKCV0bp01lBNzQ==", "dev": true, - "requires": { - } + "requires": {} }, "@svgr/babel-plugin-svg-dynamic-title": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-8.0.0.tgz", "integrity": "sha512-omNiKqwjNmOQJ2v6ge4SErBbkooV2aAWwaPFs2vUY7p7GhVkzRkJ00kILXQvRhA6miHnNpXv7MRnnSjdRjK8og==", "dev": true, - "requires": { - } + "requires": {} }, "@svgr/babel-plugin-svg-em-dimensions": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-8.0.0.tgz", "integrity": "sha512-mURHYnu6Iw3UBTbhGwE/vsngtCIbHE43xCRK7kCw4t01xyGqb2Pd+WXekRRoFOBIY29ZoOhUCTEweDMdrjfi9g==", "dev": true, - "requires": { - } + "requires": {} }, "@svgr/babel-plugin-transform-react-native-svg": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-8.0.0.tgz", "integrity": "sha512-UKrY3860AQICgH7g+6h2zkoxeVEPLYwX/uAjmqo4PIq2FIHppwhIqZstIyTz0ZtlwreKR41O3W3BzsBBiJV2Aw==", "dev": true, - "requires": { - } + "requires": {} }, "@svgr/babel-plugin-transform-svg-component": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-8.0.0.tgz", "integrity": "sha512-DFx8xa3cZXTdb/k3kfPeaixecQLgKh5NVBMwD0AQxOzcZawK4oo1Jh9LbrcACUivsCA7TLG8eeWgrDXjTMhRmw==", "dev": true, - "requires": { - } + "requires": {} }, "@svgr/babel-preset": { "version": "8.0.0", @@ -28699,8 +28658,7 @@ "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-1.1.0.tgz", "integrity": "sha512-ttOkEkoalEHa7RaFYpM0ErK1xc4twg3Am9hfHhL7MVqlHebnkYd2wuI/ZqTDj0cVzZho6PdinY0phFZV3O0Mzg==", "dev": true, - "requires": { - } + "requires": {} }, "@webpack-cli/info": { "version": "1.4.0", @@ -28716,8 +28674,7 @@ "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-1.6.0.tgz", "integrity": "sha512-ZkVeqEmRpBV2GHvjjUZqEai2PpUbuq8Bqd//vEYsp63J8WyexI8ppCqVS3Zs0QADf6aWuPdU+0XsPI647PVlQA==", "dev": true, - "requires": { - } + "requires": {} }, "@xtuc/ieee754": { "version": "1.2.0", @@ -28772,15 +28729,13 @@ "integrity": "sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==", "dev": true, "peer": true, - "requires": { - } + "requires": {} }, "acorn-jsx": { "version": "5.3.2", "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "requires": { - } + "requires": {} }, "agent-base": { "version": "6.0.2", @@ -28836,8 +28791,7 @@ "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", "dev": true, "peer": true, - "requires": { - } + "requires": {} }, "anser": { "version": "1.4.10", @@ -29061,11 +29015,6 @@ "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==" }, - "async-lock": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/async-lock/-/async-lock-1.4.0.tgz", - "integrity": "sha512-coglx5yIWuetakm3/1dsX9hxCNox22h7+V80RQOu2XUUMidtArxKoZoOtHUPuR84SycKTXzgGzAUR5hJxujyJQ==" - }, "asynciterator.prototype": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/asynciterator.prototype/-/asynciterator.prototype-1.0.0.tgz", @@ -29120,8 +29069,7 @@ "version": "7.0.0-bridge.0", "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-7.0.0-bridge.0.tgz", "integrity": "sha512-poPX9mZH/5CSanm50Q+1toVci6pv5KSRv/5TWCwtzQS5XEwn40BcCrgIeMFWP9CKKIniKXNxoIOnOq4VVlGXhg==", - "requires": { - } + "requires": {} }, "babel-jest": { "version": "29.6.2", @@ -30322,8 +30270,7 @@ "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.5.1.tgz", "integrity": "sha512-+LxW+KLWxu3HW3M2w2ympwtqPrqYRzU8fqi6Fhd18fBALe15blJPI/I4+UHveMVG6lJqB4JNd4UG0S5cnVHwIg==", "dev": true, - "requires": { - } + "requires": {} }, "deep-equal": { "version": "2.2.2", @@ -31226,8 +31173,7 @@ "version": "8.10.0", "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.10.0.tgz", "integrity": "sha512-SM8AMJdeQqRYT9O9zguiruQZaN7+z+E4eAP9oiLNGKMtomwaB1E9dcgUD6ZAn/eQAb52USbvezbiljfZUhbJcg==", - "requires": { - } + "requires": {} }, "eslint-import-resolver-node": { "version": "0.3.7", @@ -31312,8 +31258,7 @@ "resolved": "https://registry.npmjs.org/eslint-plugin-header/-/eslint-plugin-header-3.1.1.tgz", "integrity": "sha512-9vlKxuJ4qf793CmeeSrZUvVClw6amtpghq3CuWcB5cUNnWHQhgcqy5eF8oVKFk1G3Y/CbchGfEaw3wiIJaNmVg==", "dev": true, - "requires": { - } + "requires": {} }, "eslint-plugin-import": { "version": "2.28.0", @@ -31447,8 +31392,7 @@ "version": "4.6.0", "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.0.tgz", "integrity": "sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==", - "requires": { - } + "requires": {} }, "eslint-plugin-react-native": { "version": "4.0.0", @@ -33822,8 +33766,7 @@ "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", "dev": true, - "requires": { - } + "requires": {} }, "jest-regex-util": { "version": "29.4.3", @@ -37051,8 +36994,7 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/react-freeze/-/react-freeze-1.0.3.tgz", "integrity": "sha512-ZnXwLQnGzrDpHBHiC56TXFXvmolPeMjTn1UOm610M4EXGzbEDR7oOIyS2ZiItgbs6eZc4oU/a0hpk8PrcKvv5g==", - "requires": { - } + "requires": {} }, "react-intl": { "version": "6.4.4", @@ -37082,9 +37024,9 @@ "integrity": "sha512-txfpPCQYiazVdcbMRhatqWKcAxJweUu2wDXvts5/7Wyp6+Y9cHojqXHsLPEckzutfHlxZhG8Oiundbmp8Fd6eQ==" }, "react-native": { - "version": "0.71.11", - "resolved": "https://registry.npmjs.org/react-native/-/react-native-0.71.11.tgz", - "integrity": "sha512-++8IxgUe4Ev+bTiFlLfJCdSoE5cReVP1DTpVJ8f/QtzaxA3h1008Y3Xah1Q5vsR4rZcYMO7Pn3af+wOshdQFug==", + "version": "0.71.13", + "resolved": "https://registry.npmjs.org/react-native/-/react-native-0.71.13.tgz", + "integrity": "sha512-zEa69YQNLdv8Sf5Pn0CNDB1K9eGuNy1KoMNxXlrZ89JZ8d02b5hihZIoOCCIwhH+iPgslYwr3ZoGd3AY6FMrgw==", "requires": { "@jest/create-cache-key-function": "^29.2.1", "@react-native-community/cli": "10.2.4", @@ -37095,6 +37037,7 @@ "@react-native/polyfills": "2.0.0", "abort-controller": "^3.0.0", "anser": "^1.4.9", + "ansi-regex": "^5.0.0", "base64-js": "^1.1.2", "deprecated-react-native-prop-types": "^3.0.1", "event-target-shim": "^5.0.1", @@ -37360,8 +37303,7 @@ "version": "2.4.1", "resolved": "https://registry.npmjs.org/react-native-background-timer/-/react-native-background-timer-2.4.1.tgz", "integrity": "sha512-TE4Kiy7jUyv+hugxDxitzu38sW1NqjCk4uE5IgU2WevLv7sZacaBc6PZKOShNRPGirLl1NWkaG3LDEkdb9Um5g==", - "requires": { - } + "requires": {} }, "react-native-button": { "version": "3.1.0", @@ -37414,15 +37356,13 @@ "version": "1.6.4", "resolved": "https://registry.npmjs.org/react-native-create-thumbnail/-/react-native-create-thumbnail-1.6.4.tgz", "integrity": "sha512-JWuKXswDXtqUPfuqh6rjCVMvTSSG3kUtwvSK/YdaNU0i+nZKxeqHmt/CO2+TyI/WSUFynGVmWT1xOHhCZAFsRQ==", - "requires": { - } + "requires": {} }, "react-native-device-info": { "version": "10.8.0", "resolved": "https://registry.npmjs.org/react-native-device-info/-/react-native-device-info-10.8.0.tgz", "integrity": "sha512-DE4/X82ZVhdcnR1Y21iTP46WSSJA/rHK3lmeqWfGGq1RKLwXTIdxmfbZZnYwryqJ+esrw2l4ND19qlgxDGby8A==", - "requires": { - } + "requires": {} }, "react-native-document-picker": { "version": "9.0.1", @@ -37459,22 +37399,19 @@ "version": "2.10.10", "resolved": "https://registry.npmjs.org/react-native-exception-handler/-/react-native-exception-handler-2.10.10.tgz", "integrity": "sha512-otAXGoZDl1689OoUJWN/rXxVbdoZ3xcmyF1uq/CsizdLwwyZqVGd6d+p/vbYvnF996FfEyAEBnHrdFxulTn51w==", - "requires": { - } + "requires": {} }, "react-native-fast-image": { "version": "8.6.3", "resolved": "https://registry.npmjs.org/react-native-fast-image/-/react-native-fast-image-8.6.3.tgz", "integrity": "sha512-Sdw4ESidXCXOmQ9EcYguNY2swyoWmx53kym2zRsvi+VeFCHEdkO+WG1DK+6W81juot40bbfLNhkc63QnWtesNg==", - "requires": { - } + "requires": {} }, "react-native-file-viewer": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/react-native-file-viewer/-/react-native-file-viewer-2.1.5.tgz", "integrity": "sha512-MGC6sx9jsqHdefhVQ6o0akdsPGpkXgiIbpygb2Sg4g4bh7v6K1cardLV1NwGB9A6u1yICOSDT/MOC//9Ez6EUg==", - "requires": { - } + "requires": {} }, "react-native-fs": { "version": "2.20.0", @@ -37513,22 +37450,19 @@ "version": "2.0.3", "resolved": "https://registry.npmjs.org/react-native-haptic-feedback/-/react-native-haptic-feedback-2.0.3.tgz", "integrity": "sha512-7+qvcxXZts/hA+HOOIFyM1x9m9fn/TJVSTgXaoQ8uT4gLc97IMvqHQ559tDmnlth+hHMzd3HRMpmRLWoKPL0DA==", - "requires": { - } + "requires": {} }, "react-native-hw-keyboard-event": { "version": "0.0.4", "resolved": "https://registry.npmjs.org/react-native-hw-keyboard-event/-/react-native-hw-keyboard-event-0.0.4.tgz", "integrity": "sha512-G8qp0nm17PHigLb/axgdF9xg51BKCG2p1AGeq//J/luLp5zNczIcQJh+nm02R1MeEUE3e53wqO4LMe0MV3raZg==", - "requires": { - } + "requires": {} }, "react-native-image-picker": { "version": "5.6.1", "resolved": "https://registry.npmjs.org/react-native-image-picker/-/react-native-image-picker-5.6.1.tgz", "integrity": "sha512-LPPlgJi97EzCDY4NWp7z0oUWmCbagnB6HSoKcLJHJD/DaFYN/dJPrqjqKaqqw8K/5Ze6DIsNg9PZohjNEYQQWQ==", - "requires": { - } + "requires": {} }, "react-native-in-app-review": { "version": "4.3.3", @@ -37539,15 +37473,13 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/react-native-incall-manager/-/react-native-incall-manager-4.1.0.tgz", "integrity": "sha512-v1c+XOGu5VudY5//E3i5xiaRA9v6RvevMzZ4RumLqI+hte+4XslB2z6HSek2FF0EmAnY1rCn4ckiwgkTI1Tmtw==", - "requires": { - } + "requires": {} }, "react-native-iphone-x-helper": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/react-native-iphone-x-helper/-/react-native-iphone-x-helper-1.3.1.tgz", "integrity": "sha512-HOf0jzRnq2/aFUcdCJ9w9JGzN3gdEg0zFE4FyYlp4jtidqU03D5X7ZegGKfT1EWteR0gPBGp9ye5T5FvSWi9Yg==", - "requires": { - } + "requires": {} }, "react-native-keyboard-aware-scroll-view": { "version": "0.9.5", @@ -37562,8 +37494,7 @@ "version": "5.7.0", "resolved": "https://registry.npmjs.org/react-native-keyboard-tracking-view/-/react-native-keyboard-tracking-view-5.7.0.tgz", "integrity": "sha512-MDeEwAbn9LJDOfHq0QLCGaZirVLk2X/tHqkAqz3y6uxryTRdSl9PwleOVar5Jx2oAPEg4J9BXbUD1wwOOi+5Kg==", - "requires": { - } + "requires": {} }, "react-native-keychain": { "version": "8.1.2", @@ -37574,15 +37505,13 @@ "version": "2.8.2", "resolved": "https://registry.npmjs.org/react-native-linear-gradient/-/react-native-linear-gradient-2.8.2.tgz", "integrity": "sha512-hgmCsgzd58WNcDCyPtKrvxsaoETjb/jLGxis/dmU3Aqm2u4ICIduj4ECjbil7B7pm9OnuTkmpwXu08XV2mpg8g==", - "requires": { - } + "requires": {} }, "react-native-localize": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/react-native-localize/-/react-native-localize-3.0.2.tgz", "integrity": "sha512-/l/oE1LVNgIRRhLbhmfFMHiWV0xhUn0A0iz1ytLVRYywL7FTp8Rx2vkJS/q/RpExDvV7yLw2493XZBYIM1dnLQ==", - "requires": { - } + "requires": {} }, "react-native-math-view": { "version": "3.9.5", @@ -37618,8 +37547,7 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/react-native-notifications/-/react-native-notifications-5.0.0.tgz", "integrity": "sha512-QXtBBmbDtwq9X8WAPLn+OctIeEtnJOQ+RCT6iweaypvFTydt2baLPtawTAbCSXKuWpVDqDAdmZnlQjCcavNzoA==", - "requires": { - } + "requires": {} }, "react-native-permissions": { "version": "3.8.4", @@ -37660,8 +37588,7 @@ "version": "4.7.1", "resolved": "https://registry.npmjs.org/react-native-safe-area-context/-/react-native-safe-area-context-4.7.1.tgz", "integrity": "sha512-X2pJG2ttmAbiGlItWedvDkZg1T1ikmEDiz+7HsiIwAIm2UbFqlhqn+B1JF53mSxPzdNaDcCQVHRNPvj8oFu6Yg==", - "requires": { - } + "requires": {} }, "react-native-screens": { "version": "3.24.0", @@ -37694,8 +37621,7 @@ "version": "0.3.1", "resolved": "https://registry.npmjs.org/react-native-size-matters/-/react-native-size-matters-0.3.1.tgz", "integrity": "sha512-mKOfBLIBFBcs9br1rlZDvxD5+mAl8Gfr5CounwJtxI6Z82rGrMO+Kgl9EIg3RMVf3G855a85YVqHJL2f5EDRlw==", - "requires": { - } + "requires": {} }, "react-native-svg": { "version": "13.11.0", @@ -39369,8 +39295,7 @@ "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.0.1.tgz", "integrity": "sha512-lC/RGlPmwdrIBFTX59wwNzqh7aR2otPNPR/5brHZm/XKFYKsfqxihXUe9pU3JI+3vGkl+vyCoNNnPhJn3aLK1A==", "dev": true, - "requires": { - } + "requires": {} }, "ts-jest": { "version": "29.1.1", @@ -39691,15 +39616,13 @@ "version": "0.1.6", "resolved": "https://registry.npmjs.org/use-latest-callback/-/use-latest-callback-0.1.6.tgz", "integrity": "sha512-VO/P91A/PmKH9bcN9a7O3duSuxe6M14ZoYXgA6a8dab8doWNdhiIHzEkX/jFeTTRBsX0Ubk6nG4q2NIjNsj+bg==", - "requires": { - } + "requires": {} }, "use-sync-external-store": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.2.0.tgz", "integrity": "sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==", - "requires": { - } + "requires": {} }, "utf8": { "version": "3.0.0", @@ -40032,8 +39955,7 @@ "version": "7.5.5", "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.5.tgz", "integrity": "sha512-BAkMFcAzl8as1G/hArkxOxq3G7pjUqQ3gzYbLL0/5zNkph70e+lCoxBGnm6AW1+/aiNeV4fnKqZ8m4GZewmH2w==", - "requires": { - } + "requires": {} }, "xdate": { "version": "0.8.2", diff --git a/package.json b/package.json index a6b1757cb..322d4352f 100644 --- a/package.json +++ b/package.json @@ -37,7 +37,6 @@ "@react-navigation/bottom-tabs": "6.5.8", "@react-navigation/native": "6.1.7", "@react-navigation/stack": "6.3.17", - "@rudderstack/rudder-sdk-react-native": "1.8.0", "@sentry/react-native": "5.9.0", "@stream-io/flat-list-mvcp": "0.10.3", "@tsconfig/react-native": "3.0.2", @@ -56,7 +55,7 @@ "react": "18.2.0", "react-freeze": "1.0.3", "react-intl": "6.4.4", - "react-native": "0.71.11", + "react-native": "0.71.13", "react-native-android-open-settings": "1.3.0", "react-native-background-timer": "2.4.1", "react-native-button": "3.1.0", diff --git a/patches/react-native+0.71.11.patch b/patches/react-native+0.71.11.patch deleted file mode 100644 index 39656c356..000000000 --- a/patches/react-native+0.71.11.patch +++ /dev/null @@ -1,106 +0,0 @@ -diff --git a/node_modules/react-native/Libraries/Components/ScrollView/ScrollView.js b/node_modules/react-native/Libraries/Components/ScrollView/ScrollView.js -index 0c2ecf2..a04414f 100644 ---- a/node_modules/react-native/Libraries/Components/ScrollView/ScrollView.js -+++ b/node_modules/react-native/Libraries/Components/ScrollView/ScrollView.js -@@ -1819,9 +1819,14 @@ class ScrollView extends React.Component { - // Note: we should split props.style on the inner and outer props - // however, the ScrollView still needs the baseStyle to be scrollable - const {outer, inner} = splitLayoutProps(flattenStyle(props.style)); -+ let inverted; -+ if (inner.scaleY) { -+ inverted = {scaleY: -1}; -+ delete inner['scaleY'] -+ } - return React.cloneElement( - refreshControl, -- {style: StyleSheet.compose(baseStyle, outer)}, -+ {style: StyleSheet.compose(baseStyle, outer, inverted)}, - - def hermesFlags; -- if (variant.name.toLowerCase().contains("release")) { -+ if (variant.name.toLowerCase().contains("release") || variant.name.toLowerCase().contains("unsigned")) { - // Can't use ?: since that will also substitute valid empty lists - hermesFlags = config.hermesFlagsRelease - if (hermesFlags == null) hermesFlags = ["-O", "-output-source-map"] -@@ -175,7 +175,7 @@ def hermesFlagsForVariant = config.hermesFlagsForVariant ?: { - def disableDevForVariant = config.disableDevForVariant ?: { - def variant -> - config."devDisabledIn${variant.name.capitalize()}" || -- variant.name.toLowerCase().contains("release") -+ variant.name.toLowerCase().contains("release") || variant.name.toLowerCase().contains("unsigned") - } - - // Set bundleForVariant to a function to configure per variant, -@@ -184,13 +184,13 @@ def bundleForVariant = config.bundleForVariant ?: { - def variant -> - config."bundleIn${variant.name.capitalize()}" || - config."bundleIn${variant.buildType.name.capitalize()}" || -- variant.name.toLowerCase().contains("release") -+ variant.name.toLowerCase().contains("release") || variant.name.toLowerCase().contains("unsigned") - } - - // Set deleteDebugFilesForVariant to a function to configure per variant, - // defaults to True for Release variants and False for debug variants - def deleteDebugFilesForVariant = config.deleteDebugFilesForVariant ?: { -- def variant -> variant.name.toLowerCase().contains("release") -+ def variant -> variant.name.toLowerCase().contains("release") || variant.name.toLowerCase().contains("unsigned") - } - - android { diff --git a/patches/react-native+0.71.13.patch b/patches/react-native+0.71.13.patch new file mode 100644 index 000000000..3896a2805 --- /dev/null +++ b/patches/react-native+0.71.13.patch @@ -0,0 +1,341 @@ +diff --git a/node_modules/react-native/Libraries/Components/ScrollView/ScrollView.js b/node_modules/react-native/Libraries/Components/ScrollView/ScrollView.js +index 0c2ecf2..a04414f 100644 +--- a/node_modules/react-native/Libraries/Components/ScrollView/ScrollView.js ++++ b/node_modules/react-native/Libraries/Components/ScrollView/ScrollView.js +@@ -1819,9 +1819,14 @@ class ScrollView extends React.Component { + // Note: we should split props.style on the inner and outer props + // however, the ScrollView still needs the baseStyle to be scrollable + const {outer, inner} = splitLayoutProps(flattenStyle(props.style)); ++ let inverted; ++ if (inner.scaleY) { ++ inverted = {scaleY: -1}; ++ delete inner['scaleY'] ++ } + return React.cloneElement( + refreshControl, +- {style: StyleSheet.compose(baseStyle, outer)}, ++ {style: StyleSheet.compose(baseStyle, outer, inverted)}, + + def hermesFlags; +- if (variant.name.toLowerCase().contains("release")) { ++ if (variant.name.toLowerCase().contains("release") || variant.name.toLowerCase().contains("unsigned")) { + // Can't use ?: since that will also substitute valid empty lists + hermesFlags = config.hermesFlagsRelease + if (hermesFlags == null) hermesFlags = ["-O", "-output-source-map"] +@@ -175,7 +175,7 @@ def hermesFlagsForVariant = config.hermesFlagsForVariant ?: { + def disableDevForVariant = config.disableDevForVariant ?: { + def variant -> + config."devDisabledIn${variant.name.capitalize()}" || +- variant.name.toLowerCase().contains("release") ++ variant.name.toLowerCase().contains("release") || variant.name.toLowerCase().contains("unsigned") + } + + // Set bundleForVariant to a function to configure per variant, +@@ -184,13 +184,13 @@ def bundleForVariant = config.bundleForVariant ?: { + def variant -> + config."bundleIn${variant.name.capitalize()}" || + config."bundleIn${variant.buildType.name.capitalize()}" || +- variant.name.toLowerCase().contains("release") ++ variant.name.toLowerCase().contains("release") || variant.name.toLowerCase().contains("unsigned") + } + + // Set deleteDebugFilesForVariant to a function to configure per variant, + // defaults to True for Release variants and False for debug variants + def deleteDebugFilesForVariant = config.deleteDebugFilesForVariant ?: { +- def variant -> variant.name.toLowerCase().contains("release") ++ def variant -> variant.name.toLowerCase().contains("release") || variant.name.toLowerCase().contains("unsigned") + } + + android { +diff --git a/node_modules/react-native/scripts/cocoapods/helpers.rb b/node_modules/react-native/scripts/cocoapods/helpers.rb +index 03e3a5c..f3ae5a1 100644 +--- a/node_modules/react-native/scripts/cocoapods/helpers.rb ++++ b/node_modules/react-native/scripts/cocoapods/helpers.rb +@@ -11,6 +11,22 @@ class SysctlChecker + end + end + ++# Helper class that is used to easily send commands to Xcodebuild ++# And that can be subclassed for testing purposes. ++class Xcodebuild ++ def self.version ++ `xcodebuild -version` ++ end ++end ++ ++module Helpers ++ class Constants ++ def self.min_ios_version_supported ++ return '13.4' ++ end ++ end ++end ++ + # Helper object to wrap system properties like RUBY_PLATFORM + # This makes it easier to mock the behaviour in tests + class Environment +diff --git a/node_modules/react-native/scripts/cocoapods/utils.rb b/node_modules/react-native/scripts/cocoapods/utils.rb +index df23da4..0560567 100644 +--- a/node_modules/react-native/scripts/cocoapods/utils.rb ++++ b/node_modules/react-native/scripts/cocoapods/utils.rb +@@ -131,15 +131,29 @@ class ReactNativePodsUtils + end + end + +- def self.apply_xcode_15_patch(installer) +- installer.target_installation_results.pod_target_installation_results +- .each do |pod_name, target_installation_result| +- target_installation_result.native_target.build_configurations.each do |config| +- # unary_function and binary_function are no longer provided in C++17 and newer standard modes as part of Xcode 15. They can be re-enabled with setting _LIBCPP_ENABLE_CXX17_REMOVED_UNARY_BINARY_FUNCTION +- # Ref: https://developer.apple.com/documentation/xcode-release-notes/xcode-15-release-notes#Deprecations +- config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] ||= '$(inherited) ' +- config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] << '"_LIBCPP_ENABLE_CXX17_REMOVED_UNARY_BINARY_FUNCTION" ' ++ def self.apply_xcode_15_patch(installer, xcodebuild_manager: Xcodebuild) ++ projects = self.extract_projects(installer) ++ ++ gcc_preprocessor_definition_key = 'GCC_PREPROCESSOR_DEFINITIONS' ++ other_ld_flags_key = 'OTHER_LDFLAGS' ++ libcpp_cxx17_fix = '_LIBCPP_ENABLE_CXX17_REMOVED_UNARY_BINARY_FUNCTION' ++ xcode15_compatibility_flags = '-Wl -ld_classic ' ++ ++ projects.each do |project| ++ project.build_configurations.each do |config| ++ # fix for unary_function and binary_function ++ self.safe_init(config, gcc_preprocessor_definition_key) ++ self.add_value_to_setting_if_missing(config, gcc_preprocessor_definition_key, libcpp_cxx17_fix) ++ ++ # fix for weak linking ++ self.safe_init(config, other_ld_flags_key) ++ if self.is_using_xcode15_or_greter(:xcodebuild_manager => xcodebuild_manager) ++ self.add_value_to_setting_if_missing(config, other_ld_flags_key, xcode15_compatibility_flags) ++ else ++ self.remove_value_to_setting_if_present(config, other_ld_flags_key, xcode15_compatibility_flags) ++ end + end ++ project.save() + end + end + +@@ -197,4 +211,89 @@ class ReactNativePodsUtils + ENV['USE_FRAMEWORKS'] = nil + end + end ++ ++ # ========= # ++ # Utilities # ++ # ========= # ++ ++ def self.extract_projects(installer) ++ return installer.aggregate_targets ++ .map{ |t| t.user_project } ++ .uniq{ |p| p.path } ++ .push(installer.pods_project) ++ end ++ ++ def self.safe_init(config, setting_name) ++ old_config = config.build_settings[setting_name] ++ if old_config == nil ++ config.build_settings[setting_name] ||= '$(inherited) ' ++ end ++ end ++ ++ def self.add_value_to_setting_if_missing(config, setting_name, value) ++ old_config = config.build_settings[setting_name] ++ if !old_config.include?(value) ++ config.build_settings[setting_name] << value ++ end ++ end ++ ++ def self.remove_value_to_setting_if_present(config, setting_name, value) ++ old_config = config.build_settings[setting_name] ++ if old_config.include?(value) ++ # Old config can be either an Array or a String ++ if old_config.is_a?(Array) ++ old_config = old_config.join(" ") ++ end ++ new_config = old_config.gsub(value, "") ++ config.build_settings[setting_name] = new_config ++ end ++ end ++ ++ def self.is_using_xcode15_or_greter(xcodebuild_manager: Xcodebuild) ++ xcodebuild_version = xcodebuild_manager.version ++ ++ # The output of xcodebuild -version is something like ++ # Xcode 15.0 ++ # or ++ # Xcode 14.3.1 ++ # We want to capture the version digits ++ regex = /(\d+)\.(\d+)(?:\.(\d+))?/ ++ if match_data = xcodebuild_version.match(regex) ++ major = match_data[1].to_i ++ return major >= 15 ++ end ++ ++ return false ++ end ++ ++ def self.updateIphoneOSDeploymentTarget(installer) ++ pod_to_update = Set.new([ ++ "boost", ++ "CocoaAsyncSocket", ++ "Flipper", ++ "Flipper-DoubleConversion", ++ "Flipper-Fmt", ++ "Flipper-Boost-iOSX", ++ "Flipper-Folly", ++ "Flipper-Glog", ++ "Flipper-PeerTalk", ++ "FlipperKit", ++ "fmt", ++ "libevent", ++ "OpenSSL-Universal", ++ "RCT-Folly", ++ "SocketRocket", ++ "YogaKit" ++ ]) ++ ++ installer.target_installation_results.pod_target_installation_results ++ .each do |pod_name, target_installation_result| ++ unless pod_to_update.include?(pod_name) ++ next ++ end ++ target_installation_result.native_target.build_configurations.each do |config| ++ config.build_settings["IPHONEOS_DEPLOYMENT_TARGET"] = Helpers::Constants.min_ios_version_supported ++ end ++ end ++ end + end +diff --git a/node_modules/react-native/scripts/react_native_pods.rb b/node_modules/react-native/scripts/react_native_pods.rb +index 6be4109..ea4ebaa 100644 +--- a/node_modules/react-native/scripts/react_native_pods.rb ++++ b/node_modules/react-native/scripts/react_native_pods.rb +@@ -27,7 +27,7 @@ $START_TIME = Time.now.to_i + # By using this function, you won't have to manualy change your Podfile + # when we change the minimum version supported by the framework. + def min_ios_version_supported +- return '12.4' ++ return Helpers::Constants.min_ios_version_supported + end + + # This function prepares the project for React Native, before processing +@@ -224,6 +224,7 @@ def react_native_post_install(installer, react_native_path = "../node_modules/re + ReactNativePodsUtils.fix_library_search_paths(installer) + ReactNativePodsUtils.set_node_modules_user_settings(installer, react_native_path) + ReactNativePodsUtils.apply_xcode_15_patch(installer) ++ ReactNativePodsUtils.updateIphoneOSDeploymentTarget(installer) + + NewArchitectureHelper.set_clang_cxx_language_standard_if_needed(installer) + is_new_arch_enabled = ENV['RCT_NEW_ARCH_ENABLED'] == "1" +diff --git a/node_modules/react-native/sdks/hermes-engine/utils/build-apple-framework.sh b/node_modules/react-native/sdks/hermes-engine/utils/build-apple-framework.sh +index 87faae6..caae918 100755 +--- a/node_modules/react-native/sdks/hermes-engine/utils/build-apple-framework.sh ++++ b/node_modules/react-native/sdks/hermes-engine/utils/build-apple-framework.sh +@@ -52,7 +52,7 @@ function build_host_hermesc { + + # Utility function to configure an Apple framework + function configure_apple_framework { +- local build_cli_tools enable_bitcode enable_debugger cmake_build_type ++ local build_cli_tools enable_bitcode enable_debugger cmake_build_type xcode_15_flags xcode_major_version + + if [[ $1 == iphoneos || $1 == catalyst ]]; then + enable_bitcode="true" +@@ -77,8 +77,15 @@ function configure_apple_framework { + cmake_build_type="MinSizeRel" + fi + ++ xcode_15_flags="" ++ xcode_major_version=$(xcodebuild -version | grep -oE '[0-9]*' | head -n 1) ++ if [[ $xcode_major_version -ge 15 ]]; then ++ xcode_15_flags="LINKER:-ld_classic" ++ fi ++ + pushd "$HERMES_PATH" > /dev/null || exit 1 + cmake -S . -B "build_$1" \ ++ -DHERMES_EXTRA_LINKER_FLAGS="$xcode_15_flags" \ + -DHERMES_APPLE_TARGET_PLATFORM:STRING="$1" \ + -DCMAKE_OSX_ARCHITECTURES:STRING="$2" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET:STRING="$3" \ +diff --git a/node_modules/react-native/sdks/hermes-engine/utils/build-hermes-xcode.sh b/node_modules/react-native/sdks/hermes-engine/utils/build-hermes-xcode.sh +index 37faee3..fa2ebe9 100755 +--- a/node_modules/react-native/sdks/hermes-engine/utils/build-hermes-xcode.sh ++++ b/node_modules/react-native/sdks/hermes-engine/utils/build-hermes-xcode.sh +@@ -33,6 +33,13 @@ if [ -z "$deployment_target" ]; then + deployment_target=${MACOSX_DEPLOYMENT_TARGET} + fi + ++xcode_15_flags="" ++xcode_major_version=$(xcodebuild -version | grep -oE '[0-9]*' | head -n 1) ++if [[ $xcode_major_version -ge 15 ]]; then ++ echo "########### Using LINKER:-ld_classic ###########" ++ xcode_15_flags="LINKER:-ld_classic" ++fi ++ + architectures=$( echo "$ARCHS" | tr " " ";" ) + + echo "Configure Apple framework" +@@ -40,6 +47,7 @@ echo "Configure Apple framework" + "$CMAKE_BINARY" \ + -S "${PODS_ROOT}/hermes-engine" \ + -B "${PODS_ROOT}/hermes-engine/build/${PLATFORM_NAME}" \ ++ -DHERMES_EXTRA_LINKER_FLAGS="$xcode_15_flags" \ + -DHERMES_APPLE_TARGET_PLATFORM:STRING="$PLATFORM_NAME" \ + -DCMAKE_OSX_ARCHITECTURES:STRING="$architectures" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET:STRING="$deployment_target" \ diff --git a/patches/react-native-fast-image+8.6.3.patch b/patches/react-native-fast-image+8.6.3.patch index 7ceadb3d5..ed009bfa6 100644 --- a/patches/react-native-fast-image+8.6.3.patch +++ b/patches/react-native-fast-image+8.6.3.patch @@ -1,5 +1,5 @@ diff --git a/node_modules/react-native-fast-image/RNFastImage.podspec b/node_modules/react-native-fast-image/RNFastImage.podspec -index db0fada..9a2457c 100644 +index db0fada..8469b1a 100644 --- a/node_modules/react-native-fast-image/RNFastImage.podspec +++ b/node_modules/react-native-fast-image/RNFastImage.podspec @@ -16,6 +16,6 @@ Pod::Spec.new do |s| @@ -7,8 +7,9 @@ index db0fada..9a2457c 100644 s.dependency 'React-Core' - s.dependency 'SDWebImage', '~> 5.11.1' -+ s.dependency 'SDWebImage', '~> 5.12.3' - s.dependency 'SDWebImageWebPCoder', '~> 0.8.4' +- s.dependency 'SDWebImageWebPCoder', '~> 0.8.4' ++ s.dependency 'SDWebImage', '~> 5.18.2' ++ s.dependency 'SDWebImageWebPCoder', '~> 0.13.0' end diff --git a/node_modules/react-native-fast-image/android/src/main/java/com/dylanvann/fastimage/FastImageCookieJar.java b/node_modules/react-native-fast-image/android/src/main/java/com/dylanvann/fastimage/FastImageCookieJar.java new file mode 100644 @@ -74,7 +75,7 @@ index 811292a..79291fa 100644 .build(); OkHttpUrlLoader.Factory factory = new OkHttpUrlLoader.Factory(client); diff --git a/node_modules/react-native-fast-image/dist/index.d.ts b/node_modules/react-native-fast-image/dist/index.d.ts -index 5abb7c9..db5a1d3 100644 +index 5abb7c9..b210637 100644 --- a/node_modules/react-native-fast-image/dist/index.d.ts +++ b/node_modules/react-native-fast-image/dist/index.d.ts @@ -43,13 +43,13 @@ export interface ImageStyle extends FlexStyle, TransformsStyle, ShadowStyleIOS { From 3644a39924b3cef819ea78322392d6253e7e952c Mon Sep 17 00:00:00 2001 From: Elias Nahum Date: Thu, 28 Sep 2023 17:54:19 +0300 Subject: [PATCH 45/47] Bump app build number to 487 (#7570) --- android/app/build.gradle | 2 +- ios/Mattermost.xcodeproj/project.pbxproj | 8 ++++---- ios/Mattermost/Info.plist | 2 +- ios/MattermostShare/Info.plist | 2 +- ios/NotificationService/Info.plist | 2 +- 5 files changed, 8 insertions(+), 8 deletions(-) diff --git a/android/app/build.gradle b/android/app/build.gradle index 26a7f88ed..90156e9d7 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -110,7 +110,7 @@ android { applicationId "com.mattermost.rnbeta" minSdkVersion rootProject.ext.minSdkVersion targetSdkVersion rootProject.ext.targetSdkVersion - versionCode 486 + versionCode 487 versionName "2.9.0" testBuildType System.getProperty('testBuildType', 'debug') testInstrumentationRunner 'androidx.test.runner.AndroidJUnitRunner' diff --git a/ios/Mattermost.xcodeproj/project.pbxproj b/ios/Mattermost.xcodeproj/project.pbxproj index a289d43c5..bcc343aac 100644 --- a/ios/Mattermost.xcodeproj/project.pbxproj +++ b/ios/Mattermost.xcodeproj/project.pbxproj @@ -1929,7 +1929,7 @@ CODE_SIGN_ENTITLEMENTS = Mattermost/Mattermost.entitlements; CODE_SIGN_IDENTITY = "iPhone Developer"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - CURRENT_PROJECT_VERSION = 486; + CURRENT_PROJECT_VERSION = 487; DEVELOPMENT_TEAM = UQ8HT4Q2XM; ENABLE_BITCODE = NO; HEADER_SEARCH_PATHS = ( @@ -1973,7 +1973,7 @@ CODE_SIGN_ENTITLEMENTS = Mattermost/Mattermost.entitlements; CODE_SIGN_IDENTITY = "iPhone Developer"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - CURRENT_PROJECT_VERSION = 486; + CURRENT_PROJECT_VERSION = 487; DEVELOPMENT_TEAM = UQ8HT4Q2XM; ENABLE_BITCODE = NO; HEADER_SEARCH_PATHS = ( @@ -2116,7 +2116,7 @@ CODE_SIGN_IDENTITY = "iPhone Developer"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 486; + CURRENT_PROJECT_VERSION = 487; DEBUG_INFORMATION_FORMAT = dwarf; DEVELOPMENT_TEAM = UQ8HT4Q2XM; GCC_C_LANGUAGE_STANDARD = gnu11; @@ -2165,7 +2165,7 @@ "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; CODE_SIGN_STYLE = Automatic; COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 486; + CURRENT_PROJECT_VERSION = 487; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; DEVELOPMENT_TEAM = UQ8HT4Q2XM; GCC_C_LANGUAGE_STANDARD = gnu11; diff --git a/ios/Mattermost/Info.plist b/ios/Mattermost/Info.plist index 9034a6900..c95857701 100644 --- a/ios/Mattermost/Info.plist +++ b/ios/Mattermost/Info.plist @@ -37,7 +37,7 @@ CFBundleVersion - 486 + 487 ITSAppUsesNonExemptEncryption LSRequiresIPhoneOS diff --git a/ios/MattermostShare/Info.plist b/ios/MattermostShare/Info.plist index 3667fc513..02e905754 100644 --- a/ios/MattermostShare/Info.plist +++ b/ios/MattermostShare/Info.plist @@ -21,7 +21,7 @@ CFBundleShortVersionString 2.9.0 CFBundleVersion - 486 + 487 UIAppFonts OpenSans-Bold.ttf diff --git a/ios/NotificationService/Info.plist b/ios/NotificationService/Info.plist index 67b6095b9..d1dc0c714 100644 --- a/ios/NotificationService/Info.plist +++ b/ios/NotificationService/Info.plist @@ -21,7 +21,7 @@ CFBundleShortVersionString 2.9.0 CFBundleVersion - 486 + 487 NSExtension NSExtensionPointIdentifier From b562e67d02abcdc37c3c91e60b35ce485222351d Mon Sep 17 00:00:00 2001 From: Harrison Healey Date: Thu, 28 Sep 2023 14:45:19 -0400 Subject: [PATCH 46/47] MM-54499 Patch react-native-navigation to fix button text wrapping (#7557) * MM-54499 Downgrade react-native-navigation to fix button text wrapping * Revert "MM-54499 Downgrade react-native-navigation to fix button text wrapping" This reverts commit b8f65cda426bb02d26fd85d8b8436597b2ae1722. * MM-54499 Patch react-native-navigation to fix button text wrapping --- patches/react-native-navigation+7.37.0.patch | 39 +++++++++++++++++++- 1 file changed, 37 insertions(+), 2 deletions(-) diff --git a/patches/react-native-navigation+7.37.0.patch b/patches/react-native-navigation+7.37.0.patch index dc21c31c9..5dbb6400d 100644 --- a/patches/react-native-navigation+7.37.0.patch +++ b/patches/react-native-navigation+7.37.0.patch @@ -186,7 +186,7 @@ diff --git a/node_modules/react-native-navigation/lib/ios/RNNComponentViewContro index fc482a6..9406bbf 100644 --- a/node_modules/react-native-navigation/lib/ios/RNNComponentViewController.m +++ b/node_modules/react-native-navigation/lib/ios/RNNComponentViewController.m -@@ -94,6 +94,7 @@ +@@ -94,6 +94,7 @@ - (void)renderReactViewIfNeeded { }]; }]; self.reactView.backgroundColor = UIColor.clearColor; @@ -207,7 +207,7 @@ index b44f24f..bf4e1c3 100644 @implementation RNNOverlayWindow -@@ -9,6 +11,8 @@ +@@ -9,6 +11,8 @@ - (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event { if ([hitTestResult isKindOfClass:[UIWindow class]] || [hitTestResult.subviews.firstObject isKindOfClass:RNNReactView.class] || @@ -216,6 +216,41 @@ index b44f24f..bf4e1c3 100644 [hitTestResult isKindOfClass:[RCTModalHostView class]] || [hitTestResult isKindOfClass:NSClassFromString(@"RCTRootComponentView")]) { return nil; +diff --git a/node_modules/react-native-navigation/lib/ios/RNNUIBarButtonItem.m b/node_modules/react-native-navigation/lib/ios/RNNUIBarButtonItem.m +index ece1da1..26730ae 100644 +--- a/node_modules/react-native-navigation/lib/ios/RNNUIBarButtonItem.m ++++ b/node_modules/react-native-navigation/lib/ios/RNNUIBarButtonItem.m +@@ -87,9 +87,28 @@ - (instancetype)initWithCustomView:(RNNReactView *)reactView + buttonOptions:(RNNButtonOptions *)buttonOptions + onPress:(RNNButtonPressCallback)onPress { + self = [super initWithCustomView:reactView]; +- [reactView setFrame:CGRectMake(0, 0, 50, 50)]; + [self applyOptions:buttonOptions]; +- ++ reactView.sizeFlexibility = RCTRootViewSizeFlexibilityWidthAndHeight; ++ reactView.hidden = CGRectEqualToRect(reactView.frame, CGRectZero); ++ ++ [NSLayoutConstraint deactivateConstraints:reactView.constraints]; ++ self.widthConstraint = ++ [NSLayoutConstraint constraintWithItem:reactView ++ attribute:NSLayoutAttributeWidth ++ relatedBy:NSLayoutRelationEqual ++ toItem:nil ++ attribute:NSLayoutAttributeNotAnAttribute ++ multiplier:1.0 ++ constant:reactView.intrinsicContentSize.width]; ++ self.heightConstraint = ++ [NSLayoutConstraint constraintWithItem:reactView ++ attribute:NSLayoutAttributeHeight ++ relatedBy:NSLayoutRelationEqual ++ toItem:nil ++ attribute:NSLayoutAttributeNotAnAttribute ++ multiplier:1.0 ++ constant:reactView.intrinsicContentSize.height]; ++ [NSLayoutConstraint activateConstraints:@[ self.widthConstraint, self.heightConstraint ]]; + reactView.delegate = self; + + reactView.backgroundColor = [UIColor clearColor]; diff --git a/node_modules/react-native-navigation/lib/src/interfaces/Options.ts b/node_modules/react-native-navigation/lib/src/interfaces/Options.ts index 4851b40..e891183 100644 --- a/node_modules/react-native-navigation/lib/src/interfaces/Options.ts From 31eb0ca4891d44088a1ae5fbbb2bccf189eaf0cd Mon Sep 17 00:00:00 2001 From: Harrison Healey Date: Thu, 28 Sep 2023 14:51:01 -0400 Subject: [PATCH 47/47] Fix handlePreferences warning (#7556) * Fix handlePreferences warning * Fix filtered array potentially being undefined --- app/database/operator/server_data_operator/handlers/user.ts | 6 ++++-- app/helpers/api/preference.ts | 4 ++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/app/database/operator/server_data_operator/handlers/user.ts b/app/database/operator/server_data_operator/handlers/user.ts index b5c2813b2..2399980ed 100644 --- a/app/database/operator/server_data_operator/handlers/user.ts +++ b/app/database/operator/server_data_operator/handlers/user.ts @@ -37,14 +37,16 @@ const UserHandler = >(supercla */ handlePreferences = async ({preferences, prepareRecordsOnly = true, sync = false}: HandlePreferencesArgs): Promise => { const records: PreferenceModel[] = []; - const filtered = filterPreferences(preferences); - if (!filtered?.length) { + + if (!preferences?.length) { logWarning( 'An empty or undefined "preferences" array has been passed to the handlePreferences method', ); return records; } + const filtered = filterPreferences(preferences); + // WE NEED TO SYNC THE PREFS FROM WHAT WE GOT AND WHAT WE HAVE const deleteValues: PreferenceModel[] = []; const stored = await this.database.get(PREFERENCE).query().fetch() as PreferenceModel[]; diff --git a/app/helpers/api/preference.ts b/app/helpers/api/preference.ts index b3f824b53..67dc26220 100644 --- a/app/helpers/api/preference.ts +++ b/app/helpers/api/preference.ts @@ -53,8 +53,8 @@ export function getSidebarPreferenceAsBool(preferences: Preference[], name: stri return getPreferenceAsBool(preferences, Preferences.CATEGORIES.SIDEBAR_SETTINGS, name, defaultValue); } -export function filterPreferences(preferences?: PreferenceType[]) { - if (!preferences?.length) { +export function filterPreferences(preferences: PreferenceType[]) { + if (!preferences.length) { return preferences; }