diff --git a/package.json b/package.json index 9574fdf1acd..c6aea3cbbaa 100644 --- a/package.json +++ b/package.json @@ -17,8 +17,9 @@ "lint": "yarn workspaces run lint", "remote-console": "yarn workspace @onekeyhq/remote-console dev", "reset-cache": "node development/resetCache.js", - "native": "yarn workspace @onekeyhq/app start --reset-cache", + "native": "yarn workspace @onekeyhq/app start", "ios": "yarn copy:inject && yarn workspace @onekeyhq/app ios", + "ios:device": "yarn copy:inject && yarn workspace @onekeyhq/app ios:device", "ios-install": "cd ./packages/app/ios && pod install && cd -", "ios-xcode": "open ./packages/app/ios/OneKeyWallet.xcworkspace", "android": "yarn copy:inject && yarn workspace @onekeyhq/app android", @@ -78,7 +79,6 @@ "eslint-config-prettier": "^8.3.0", "eslint-config-react-app": "^6.0.0", "eslint-config-wesbos": "2.1.0", - "eslint-plugin-flowtype": "^6.1.1", "eslint-plugin-html": "^6.1.2", "eslint-plugin-import": "^2.24.2", "eslint-plugin-jest": "^25.3.0", diff --git a/packages/app/ios/Podfile.lock b/packages/app/ios/Podfile.lock index 11d9d155904..e99cb5fb667 100644 --- a/packages/app/ios/Podfile.lock +++ b/packages/app/ios/Podfile.lock @@ -477,15 +477,19 @@ PODS: - React-Core - react-native-netinfo (8.2.0): - React-Core - - react-native-pager-view (5.4.9): + - react-native-pager-view (5.4.15): - React-Core - react-native-randombytes (3.6.1): - React-Core - react-native-restart (0.0.24): - React-Core - - react-native-safe-area-context (3.3.2): - - React-Core - - react-native-webview (11.15.0): + - react-native-safe-area-context (4.2.4): + - RCT-Folly + - RCTRequired + - RCTTypeSafety + - React + - ReactCommon/turbomodule/core + - react-native-webview (11.18.1): - React-Core - React-perflogger (0.68.2) - React-RCTActionSheet (0.68.2): @@ -558,7 +562,7 @@ PODS: - React-RCTText - RealmJS (10.20.0-beta.0): - React - - RNCAsyncStorage (1.15.14): + - RNCAsyncStorage (1.17.3): - React-Core - RNFastImage (8.5.11): - React-Core @@ -604,7 +608,7 @@ PODS: - React-RCTText - ReactCommon/turbomodule/core - Yoga - - RNScreens (3.10.2): + - RNScreens (3.11.1): - React-Core - React-RCTImage - RNSVG (12.3.0): @@ -979,11 +983,11 @@ SPEC CHECKSUMS: react-native-ble-plx: f10240444452dfb2d2a13a0e4f58d7783e92d76e react-native-config: 6502b1879f97ed5ac570a029961fc35ea606cd14 react-native-netinfo: e922cb2e3eaf9ccdf16b8d4744a89657377aa4a1 - react-native-pager-view: 3ee7d4c7697fb3ef788346e834a60cca97ed8540 + react-native-pager-view: b1914469643f40042e65d78cbf3d3dfebd6fb0d9 react-native-randombytes: 421f1c7d48c0af8dbcd471b0324393ebf8fe7846 react-native-restart: 45c8dca02491980f2958595333cbccd6877cb57e - react-native-safe-area-context: 584dc04881deb49474363f3be89e4ca0e854c057 - react-native-webview: e89bf2dba26a04cda967814df3ed1be99f291233 + react-native-safe-area-context: f98b0b16d1546d208fc293b4661e3f81a895afd9 + react-native-webview: 0b7bd2bffced115aefd393e1841babd9b9a557b1 React-perflogger: a18b4f0bd933b8b24ecf9f3c54f9bf65180f3fe6 React-RCTActionSheet: 547fe42fdb4b6089598d79f8e1d855d7c23e2162 React-RCTAnimation: bc9440a1c37b06ae9ebbb532d244f607805c6034 @@ -998,14 +1002,14 @@ SPEC CHECKSUMS: ReactCommon: 095366164a276d91ea704ce53cb03825c487a3f2 ReactNativeKeyboardManager: f82a63e0982254fb0f6a17ba327fac575a46f1e9 RealmJS: 6e47a0a9619d19dd238ef635abee5724cb677247 - RNCAsyncStorage: ea6b5c280997b2b32a587793163b1f10e580c4f7 + RNCAsyncStorage: 005c0e2f09575360f142d0d1f1f15e4ec575b1af RNFastImage: 1f2cab428712a4baaf78d6169eaec7f622556dd7 RNFBAnalytics: 58d1a73d42514ddf3c4f43662db0f3ce9a85457b RNFBApp: ca5f49bbe21f663142320337eb39956b04de4d12 RNFBCrashlytics: 97bf2b05e4a5523c57adc8f9e5bf6e1b17804482 RNGestureHandler: 61628a2c859172551aa2100d3e73d1e57878392f RNReanimated: 64573e25e078ae6bec03b891586d50b9ec284393 - RNScreens: d6da2b9e29cf523832c2542f47bf1287318b1868 + RNScreens: 4d83613b50b74ed277026375dc0810893b0c347f RNSVG: 302bfc9905bd8122f08966dc2ce2d07b7b52b9f8 SDWebImage: a7f831e1a65eb5e285e3fb046a23fcfbf08e696d SDWebImageWebPCoder: f93010f3f6c031e2f8fb3081ca4ee6966c539815 diff --git a/packages/app/package.json b/packages/app/package.json index 175a2ef8baf..639fd8d3a75 100644 --- a/packages/app/package.json +++ b/packages/app/package.json @@ -3,7 +3,7 @@ "main": "__generated__/AppEntry.js", "version": "0.0.1", "scripts": { - "start": "react-native start", + "start": "expo start --dev-client", "android": "ANDROID_CHANNEL=direct expo run:android", "android:device": "expo run:android --device", "ios": "expo run:ios", @@ -21,7 +21,7 @@ "@formatjs/intl-pluralrules": "^4.3.3", "@onekeyhq/components": "*", "@onekeyhq/kit": "*", - "@react-native-async-storage/async-storage": "^1.15.14", + "@react-native-async-storage/async-storage": "1.17.3", "@react-native-community/netinfo": "^8.1.0", "@react-native-firebase/analytics": "^14.10.0", "@react-native-firebase/app": "^14.10.0", @@ -60,19 +60,19 @@ "react-native-fast-image": "^8.5.11", "react-native-gesture-handler": "^2.4.2", "react-native-keyboard-manager": "^6.5.4-4", - "react-native-pager-view": "5.4.9", + "react-native-pager-view": "5.4.15", "react-native-randombytes": "^3.6.1", "react-native-reanimated": "^2.8.0", "react-native-restart": "0.0.24", - "react-native-safe-area-context": "3.3.2", - "react-native-screens": "~3.10.1", + "react-native-safe-area-context": "4.2.4", + "react-native-screens": "3.11.1", "react-native-svg": "^12.3.0", "react-native-toast-message": "2.1.2", "react-native-vision-camera": "^2.13.3", "react-native-web": "0.17.7", - "react-native-webview": "11.15.0", + "react-native-webview": "11.18.1", "readable-stream": "^3.6.0", - "realm": "10.20.0-beta.0", + "realm": "10.20.0-beta.2", "text-encoding": "^0.7.0", "vision-camera-code-scanner": "^0.2.0" }, diff --git a/packages/components/src/Account/index.tsx b/packages/components/src/Account/index.tsx index c8044560fcf..3b05025a7c8 100644 --- a/packages/components/src/Account/index.tsx +++ b/packages/components/src/Account/index.tsx @@ -37,6 +37,7 @@ export type AccountProps = { */ notShowAddress?: boolean; containerProps?: ComponentProps; + color?: string; }; const defaultProps = { @@ -63,6 +64,7 @@ const Account: FC = ({ priorityAmount, notShowAddress, containerProps = {}, + color, }) => { let avatarSizeNumber = getIconSize(avatarSize); let avatarMarginRight = 3; @@ -117,9 +119,14 @@ const Account: FC = ({ {!!(primaryContent || hasPrimaryAddress) && (hasPrimaryAddress ? ( -
+
) : ( - + {primaryContent} ))} @@ -127,13 +134,13 @@ const Account: FC = ({ {!!(secondContent || hasSecondAddress) && (hasSecondAddress ? (
) : ( - + {secondContent} ))} diff --git a/packages/components/src/Form/FormItem.tsx b/packages/components/src/Form/FormItem.tsx index 98380f37ff2..f1f17eba066 100644 --- a/packages/components/src/Form/FormItem.tsx +++ b/packages/components/src/Form/FormItem.tsx @@ -7,9 +7,7 @@ import React, { import { Controller, ControllerProps, FieldValues } from 'react-hook-form'; -import { getAppNavigation } from '@onekeyhq/kit/src/hooks/useAppNavigation'; -import { ModalRoutes, RootRoutes } from '@onekeyhq/kit/src/routes/types'; -import { ScanQrcodeRoutes } from '@onekeyhq/kit/src/views/ScanQrcode/types'; +import { gotoScanQrcode } from '@onekeyhq/kit/src/utils/gotoScanQrcode'; import Box from '../Box'; import FormControl from '../FormControl'; @@ -105,18 +103,9 @@ export function FormItem({ circle name={small ? 'ScanOutline' : 'ScanSolid'} onPress={() => { - const navigation = getAppNavigation(); - navigation.navigate(RootRoutes.Modal, { - screen: ModalRoutes.ScanQrcode, - params: { - screen: ScanQrcodeRoutes.ScanQrcode, - params: { - onScanCompleted: (result: string) => { - onChange(result); - onLabelAddonPress?.(); - }, - }, - }, + gotoScanQrcode((result) => { + onChange(result); + onLabelAddonPress?.(); }); }} /> diff --git a/packages/engine/src/index.ts b/packages/engine/src/index.ts index aac0d0387cb..245e7c94dbc 100644 --- a/packages/engine/src/index.ts +++ b/packages/engine/src/index.ts @@ -111,7 +111,7 @@ import { import { VaultFactory } from './vaults/VaultFactory'; import type BTCVault from './vaults/impl/btc/Vault'; -import type { ITransferInfo, IVaultFactoryOptions } from './vaults/types'; +import type { ITransferInfo } from './vaults/types'; @backgroundClass() class Engine { diff --git a/packages/kit/src/components/Form/ChainSelector.tsx b/packages/kit/src/components/Form/ChainSelector.tsx index 75d31161cc3..0295a8942a0 100644 --- a/packages/kit/src/components/Form/ChainSelector.tsx +++ b/packages/kit/src/components/Form/ChainSelector.tsx @@ -11,10 +11,12 @@ import { useGeneral } from '@onekeyhq/kit/src/hooks/redux'; type FormChainSelectorProps = { selectableNetworks?: Array; + hideHelpText?: boolean; }; function FormChainSelector({ selectableNetworks, + hideHelpText = false, ...props }: Omit, 'render'> & FormChainSelectorProps) { const intl = useIntl(); @@ -73,18 +75,22 @@ function FormChainSelector({ return ( { - const activeNetworkPayload = findActiveNetwork(activeNetworkId); - return intl.formatMessage( - { - id: 'form__network_helperText', - }, - { - // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access - impl: activeNetworkPayload?.impl ?? '-', - }, - ); - }} + helpText={ + hideHelpText + ? undefined + : (activeNetworkId = defaultNetworkId) => { + const activeNetworkPayload = findActiveNetwork(activeNetworkId); + return intl.formatMessage( + { + id: 'form__network_helperText', + }, + { + // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access + impl: activeNetworkPayload?.impl ?? '-', + }, + ); + } + } defaultValue={defaultNetworkId as any} {...props} > diff --git a/packages/kit/src/routes/Modal/ScanQrcode.tsx b/packages/kit/src/routes/Modal/ScanQrcode.tsx index 1eb3307c3d7..b3368ee8324 100644 --- a/packages/kit/src/routes/Modal/ScanQrcode.tsx +++ b/packages/kit/src/routes/Modal/ScanQrcode.tsx @@ -1,9 +1,9 @@ import React from 'react'; import { useIsVerticalLayout } from '@onekeyhq/components'; +import PreviewSend from '@onekeyhq/kit/src/views/ScanQrcode/PreviewSend'; import ScanQrcode from '@onekeyhq/kit/src/views/ScanQrcode/ScanQrcode'; import ScanQrcodeResult from '@onekeyhq/kit/src/views/ScanQrcode/ScanQrcodeResult'; -import SelectChainToSend from '@onekeyhq/kit/src/views/ScanQrcode/SelectChainToSend'; import { ScanQrcodeRoutes, ScanQrcodeRoutesParams, @@ -21,8 +21,8 @@ const modalRoutes = [ { name: ScanQrcodeRoutes.ScanQrcodeResult, component: ScanQrcodeResult }, { - name: ScanQrcodeRoutes.SelectChainToSend, - component: SelectChainToSend, + name: ScanQrcodeRoutes.PreviewSend, + component: PreviewSend, }, ]; diff --git a/packages/kit/src/routes/types.ts b/packages/kit/src/routes/types.ts index cf661641e22..1741c3fe61d 100644 --- a/packages/kit/src/routes/types.ts +++ b/packages/kit/src/routes/types.ts @@ -64,7 +64,7 @@ export type TabRoutesParams = { | undefined | { inputTokenId?: string; outputTokenId?: string }; [TabRoutes.Portfolio]: undefined; - [TabRoutes.Discover]: undefined; + [TabRoutes.Discover]: undefined | { incomingUrl: string }; [TabRoutes.Me]: undefined; }; /** Tab */ diff --git a/packages/kit/src/utils/gotoScanQrcode.ts b/packages/kit/src/utils/gotoScanQrcode.ts new file mode 100644 index 00000000000..125819e6a62 --- /dev/null +++ b/packages/kit/src/utils/gotoScanQrcode.ts @@ -0,0 +1,78 @@ +import * as ImagePicker from 'expo-image-picker'; + +import { UserCreateInputCategory } from '@onekeyhq/engine/src/types/credential'; +import platformEnv from '@onekeyhq/shared/src/platformEnv'; + +import backgroundApiProxy from '../background/instance/backgroundApiProxy'; +import { getAppNavigation } from '../hooks/useAppNavigation'; +import { ModalRoutes, RootRoutes } from '../routes/types'; +import { scanFromURLAsync } from '../views/ScanQrcode/scanFromURLAsync'; +import { ScanQrcodeRoutes, ScanResult } from '../views/ScanQrcode/types'; + +export const handleScanResult = async (data: string) => { + const scanResult: ScanResult = { type: 'other', data }; + if (data.startsWith('https://') || data.startsWith('http://')) { + scanResult.type = 'url'; + } else if (/^wc:.+@.+\?.+/.test(data)) { + // wc:{topic...}@{version...}?bridge={url...}&key={key...} + // https://docs.walletconnect.com/tech-spec + await backgroundApiProxy.walletConnect.connect({ + uri: data, + }); + return; + } else { + const { category, possibleNetworks } = + await backgroundApiProxy.validator.validateCreateInput(data); + if (category === UserCreateInputCategory.ADDRESS) { + scanResult.type = 'address'; + scanResult.possibleNetworks = possibleNetworks; + } + } + return scanResult; +}; + +export const gotoScanQrcode = async ( + onScanCompleted?: (data: string) => void, +) => { + const navigation = getAppNavigation(); + if (platformEnv.isNative) { + navigation.navigate(RootRoutes.Modal, { + screen: ModalRoutes.ScanQrcode, + params: { + screen: ScanQrcodeRoutes.ScanQrcode, + params: onScanCompleted + ? { + onScanCompleted, + } + : undefined, + }, + }); + } else { + const result = await ImagePicker.launchImageLibraryAsync({ + base64: true, + allowsMultipleSelection: false, + }); + + if (!result.cancelled) { + const data = await scanFromURLAsync(result.uri); + if (data) { + if (onScanCompleted) { + onScanCompleted(data); + return; + } + const scanResult = await handleScanResult(data); + if (scanResult) { + navigation.navigate(RootRoutes.Modal, { + screen: ModalRoutes.ScanQrcode, + params: { + screen: ScanQrcodeRoutes.ScanQrcodeResult, + params: scanResult, + }, + }); + } + } else { + // TODO invalid qrcode + } + } + } +}; diff --git a/packages/kit/src/views/Discover/Explorer/index.tsx b/packages/kit/src/views/Discover/Explorer/index.tsx index 358eede99e5..e7df2afc611 100644 --- a/packages/kit/src/views/Discover/Explorer/index.tsx +++ b/packages/kit/src/views/Discover/Explorer/index.tsx @@ -1,6 +1,7 @@ import React, { FC, useEffect, useMemo, useState } from 'react'; import { IWebViewWrapperRef } from '@onekeyfe/onekey-cross-webview'; +import { RouteProp, useRoute } from '@react-navigation/core'; import { useIntl } from 'react-intl'; import { Platform, Share } from 'react-native'; import { useDeepCompareMemo } from 'use-deep-compare'; @@ -24,6 +25,7 @@ import { import { openUrl, openUrlExternal } from '@onekeyhq/kit/src/utils/openUrl'; import platformEnv from '@onekeyhq/shared/src/platformEnv'; +import { TabRoutes, TabRoutesParams } from '../../../routes/types'; import Home from '../Home'; import Desktop from './Content/Desktop'; @@ -69,9 +71,12 @@ let dappOpenConfirm: ((confirm: boolean) => void) | undefined; // 空白页面 URL const BrowserPage = 'about:blank'; +type DiscoverRouteProp = RouteProp; const Explorer: FC = () => { const intl = useIntl(); const toast = useToast(); + const route = useRoute(); + const { incomingUrl } = route.params || {}; const { dispatch } = backgroundApiProxy; const discover = useAppSelector((s) => s.discover); @@ -237,6 +242,13 @@ const Explorer: FC = () => { return false; }; + useEffect(() => { + if (incomingUrl) { + gotoUrl(incomingUrl); + } + // eslint-disable-next-line react-hooks/exhaustive-deps + }, [incomingUrl]); + useEffect(() => { let content: string; if (displayInitialPage) { diff --git a/packages/kit/src/views/Discover/index.tsx b/packages/kit/src/views/Discover/index.tsx index a0a913597f8..19ab0325866 100644 --- a/packages/kit/src/views/Discover/index.tsx +++ b/packages/kit/src/views/Discover/index.tsx @@ -1,7 +1,7 @@ -import React from 'react'; +// import React from 'react'; import Explorer from './Explorer'; -const Discover = () => ; +const Discover = Explorer; export default Discover; diff --git a/packages/kit/src/views/Me/UtilSection/index.tsx b/packages/kit/src/views/Me/UtilSection/index.tsx index f968e522b00..4a961f9e984 100644 --- a/packages/kit/src/views/Me/UtilSection/index.tsx +++ b/packages/kit/src/views/Me/UtilSection/index.tsx @@ -9,14 +9,11 @@ import { Text, useIsVerticalLayout, } from '@onekeyhq/components'; -import { ModalRoutes, RootRoutes } from '@onekeyhq/kit/src/routes/types'; -import { useNavigation } from '../../../hooks'; -import { ScanQrcodeRoutes } from '../../ScanQrcode/types'; +import { gotoScanQrcode } from '../../../utils/gotoScanQrcode'; export const UtilSection = () => { const intl = useIntl(); - const navigation = useNavigation(); const small = useIsVerticalLayout(); return ( { py={4} px={{ base: 4, md: 6 }} onPress={() => { - navigation.navigate(RootRoutes.Modal, { - screen: ModalRoutes.ScanQrcode, - params: { screen: ScanQrcodeRoutes.ScanQrcode }, - }); + gotoScanQrcode(); }} > diff --git a/packages/kit/src/views/ScanQrcode/PreviewSend.tsx b/packages/kit/src/views/ScanQrcode/PreviewSend.tsx new file mode 100644 index 00000000000..fae353a635b --- /dev/null +++ b/packages/kit/src/views/ScanQrcode/PreviewSend.tsx @@ -0,0 +1,130 @@ +import React, { FC } from 'react'; + +import { RouteProp, useNavigation, useRoute } from '@react-navigation/core'; +import { useIntl } from 'react-intl'; + +import { + Account, + Box, + Form, + HStack, + Modal, + Typography, + useForm, + useSafeAreaInsets, +} from '@onekeyhq/components'; +import { useActiveWalletAccount } from '@onekeyhq/kit/src/hooks/redux'; + +import backgroundApiProxy from '../../background/instance/backgroundApiProxy'; +import FormChainSelector from '../../components/Form/ChainSelector'; +import WalletAvatar from '../../components/Header/WalletAvatar'; +import { ModalRoutes, ModalScreenProps, RootRoutes } from '../../routes/types'; +import { getDeviceTypeByDeviceId } from '../../utils/device/ble/OnekeyHardware'; +import { SendRoutes, SendRoutesParams } from '../Send/types'; + +import { ScanQrcodeRoutes, ScanQrcodeRoutesParams } from './types'; + +type NavigationProps = ModalScreenProps; +type PreviewSendProps = { + address: string; + possibleNetworks?: string[]; +}; +type PreviewSendRouteProp = RouteProp< + ScanQrcodeRoutesParams, + ScanQrcodeRoutes.PreviewSend +>; +const PreviewSend: FC = () => { + const intl = useIntl(); + const navigation = useNavigation(); + const route = useRoute(); + const { address, possibleNetworks = [] } = route.params; + const { bottom } = useSafeAreaInsets(); + const { control, getValues } = useForm<{ + network: string; + }>({ + defaultValues: { network: possibleNetworks[0] }, + }); + const { account, wallet } = useActiveWalletAccount(); + + return ( + { + const { serviceNetwork } = backgroundApiProxy; + serviceNetwork.changeActiveNetwork(getValues('network')); + navigation.navigate(RootRoutes.Modal, { + screen: ModalRoutes.Send, + params: { + screen: SendRoutes.Send, + params: { + to: address, + }, + }, + }); + }} + primaryActionTranslationId="action__next" + hideSecondaryAction + header={intl.formatMessage({ id: 'modal__preview' })} + scrollViewProps={{ + pb: bottom, + children: ( + <> + + + {address} + + +
+ + <> + + {intl.formatMessage({ id: 'form__account' })} + + + + + + + + + ), + }} + /> + ); +}; +PreviewSend.displayName = 'PreviewSend'; +export default PreviewSend; diff --git a/packages/kit/src/views/ScanQrcode/ScanCamera.tsx b/packages/kit/src/views/ScanQrcode/ScanCamera.tsx index 7d551addb50..908458633e8 100644 --- a/packages/kit/src/views/ScanQrcode/ScanCamera.tsx +++ b/packages/kit/src/views/ScanQrcode/ScanCamera.tsx @@ -27,15 +27,16 @@ const ScanCamera: FC = ({ runOnJS(onQrcodeScanned)(detectedBarcodes[0]?.rawValue); }, []); return device ? ( - + <> + {children} - + ) : null; }; ScanCamera.displayName = 'ScanCamera'; diff --git a/packages/kit/src/views/ScanQrcode/ScanQrcode.tsx b/packages/kit/src/views/ScanQrcode/ScanQrcode.tsx index 51c60c40929..5dc47560310 100644 --- a/packages/kit/src/views/ScanQrcode/ScanQrcode.tsx +++ b/packages/kit/src/views/ScanQrcode/ScanQrcode.tsx @@ -13,23 +13,23 @@ import { Button } from 'native-base'; import { useIntl } from 'react-intl'; import { + Center, Icon, Modal, Typography, useSafeAreaInsets, } from '@onekeyhq/components'; -import { UserCreateInputCategory } from '@onekeyhq/engine/src/types/credential'; import platformEnv from '@onekeyhq/shared/src/platformEnv'; -import backgroundApiProxy from '../../background/instance/backgroundApiProxy'; import PermissionDialog from '../../components/PermissionDialog/PermissionDialog'; import { setHaptics } from '../../hooks/setHaptics'; import useNavigation from '../../hooks/useNavigation'; +import { handleScanResult } from '../../utils/gotoScanQrcode'; import ScanCamera from './ScanCamera'; import { scanFromURLAsync } from './scanFromURLAsync'; import SvgScanArea from './SvgScanArea'; -import { ScanQrcodeRoutes, ScanQrcodeRoutesParams, ScanResult } from './types'; +import { ScanQrcodeRoutes, ScanQrcodeRoutesParams } from './types'; const { isWeb, isNative: isApp } = platformEnv; @@ -67,40 +67,24 @@ const ScanQrcode: FC = () => { navigation.goBack(); return; } - const scanResult: ScanResult = { type: 'other', data }; - if (data.startsWith('https://') || data.startsWith('http://')) { - scanResult.type = 'url'; - } else if (/^wc:.+@.+\?.+/.test(data)) { - // wc:{topic...}@{version...}?bridge={url...}&key={key...} - // https://docs.walletconnect.com/tech-spec - await backgroundApiProxy.walletConnect.connect({ - uri: data, - }); - return; - } else { - const { category, possibleNetworks } = - await backgroundApiProxy.validator.validateCreateInput(data); - if (category === UserCreateInputCategory.ADDRESS) { - scanResult.type = 'address'; - scanResult.possibleNetworks = possibleNetworks; - } + const scanResult = await handleScanResult(data); + if (scanResult) { + navigation.navigate(ScanQrcodeRoutes.ScanQrcodeResult, scanResult); } - navigation.navigate(ScanQrcodeRoutes.ScanQrcodeResult, scanResult); }, [navigation, onScanCompleted], ); const pickImage = useCallback(async () => { + setHaptics(); const result = await ImagePicker.launchImageLibraryAsync({ base64: isWeb, allowsMultipleSelection: false, }); if (!result.cancelled) { - const scanResult = await scanFromURLAsync(result.uri); - if (scanResult) { - handleBarCodeScanned(scanResult); - } + const data = await scanFromURLAsync(result.uri); + if (data) handleBarCodeScanned(data); } }, [handleBarCodeScanned]); @@ -138,24 +122,18 @@ const ScanQrcode: FC = () => { } - staticChildrenProps={ - isApp ? { flex: 1 } : { width: '100%', height: 209 } - } + staticChildrenProps={{ flex: 1 }} > - +
+ +
); diff --git a/packages/kit/src/views/ScanQrcode/ScanQrcodeResult.tsx b/packages/kit/src/views/ScanQrcode/ScanQrcodeResult.tsx index f2f80abd0e8..8d5205f4306 100644 --- a/packages/kit/src/views/ScanQrcode/ScanQrcodeResult.tsx +++ b/packages/kit/src/views/ScanQrcode/ScanQrcodeResult.tsx @@ -26,7 +26,7 @@ import { } from '@onekeyhq/kit/src/routes'; import { ModalRoutes, RootRoutes } from '../../routes/routesEnum'; -import { ModalScreenProps } from '../../routes/types'; +import { ModalScreenProps, TabRoutes } from '../../routes/types'; import { ScanQrcodeRoutes, ScanQrcodeRoutesParams } from './types'; @@ -64,14 +64,14 @@ type ScanQrcodeResultRouteProp = RouteProp< ScanQrcodeRoutesParams, ScanQrcodeRoutes.ScanQrcodeResult >; -type SelectChainToSendNavProp = NavigationProp< +type PreviewSendNavProp = NavigationProp< ScanQrcodeRoutesParams, - ScanQrcodeRoutes.SelectChainToSend + ScanQrcodeRoutes.PreviewSend >; type RootModalNavProps = ModalScreenProps; const ScanQrcodeResult: FC = () => { const intl = useIntl(); - const navigation = useNavigation(); + const navigation = useNavigation(); const { bottom } = useSafeAreaInsets(); const route = useRoute(); const { type, data, possibleNetworks } = route.params; @@ -86,10 +86,13 @@ const ScanQrcodeResult: FC = () => { {...pressableProps} borderBottomRadius={0} onPress={() => { - navigation.navigate(ScanQrcodeRoutes.SelectChainToSend, { - address: data, - possibleNetworks, - }); + (navigation as any as PreviewSendNavProp).navigate( + ScanQrcodeRoutes.PreviewSend, + { + address: data, + possibleNetworks, + }, + ); }} > @@ -103,7 +106,7 @@ const ScanQrcodeResult: FC = () => { - + {/* @@ -114,7 +117,7 @@ const ScanQrcodeResult: FC = () => { - + */} { header = intl.formatMessage({ id: 'title__url' }); actions = ( <> - + { + navigation + .getParent() + ?.navigate(TabRoutes.Discover, { incomingUrl: data }); + }} + > diff --git a/packages/kit/src/views/ScanQrcode/SelectChainToSend.tsx b/packages/kit/src/views/ScanQrcode/SelectChainToSend.tsx deleted file mode 100644 index eee3177b14e..00000000000 --- a/packages/kit/src/views/ScanQrcode/SelectChainToSend.tsx +++ /dev/null @@ -1,68 +0,0 @@ -/* eslint-disable @typescript-eslint/no-unused-vars */ -import React, { - FC, - ReactChildren, - ReactNode, - useCallback, - useMemo, -} from 'react'; - -import { useNavigation } from '@react-navigation/core'; -import { useIntl } from 'react-intl'; - -import { - Box, - HStack, - Icon, - Select, - Token, - Typography, - useUserDevice, -} from '@onekeyhq/components'; -import { Network } from '@onekeyhq/engine/src/types/network'; -import { useActiveWalletAccount } from '@onekeyhq/kit/src/hooks/redux'; - -import backgroundApiProxy from '../../background/instance/backgroundApiProxy'; -import { useManageNetworks } from '../../hooks'; -import { - ModalRoutes, - ModalRoutesParams, - RootRoutes, - RootRoutesParams, -} from '../../routes/types'; - -import type { NativeStackNavigationProp } from '@react-navigation/native-stack'; - -type NavigationProps = NativeStackNavigationProp< - RootRoutesParams, - RootRoutes.Root ->; -type SelectChainToSendProps = { - address: string; - possibleNetworks?: string[]; -}; -const SelectChainToSend: FC = ({ - address, - possibleNetworks, -}) => { - const intl = useIntl(); - const navigation = useNavigation(); - - const { enabledNetworks = [] } = useManageNetworks(); - const { screenWidth } = useUserDevice(); - - const options = enabledNetworks.map((network) => ({ - label: network.shortName, - value: network.id, - tokenProps: { - src: network.logoURI, - letter: network.shortName, - }, - badge: network.impl === 'evm' ? 'EVM' : undefined, - })); - - // TODO - return <>; -}; -SelectChainToSend.displayName = 'SelectChainToSend'; -export default SelectChainToSend; diff --git a/packages/kit/src/views/ScanQrcode/SvgScanArea.tsx b/packages/kit/src/views/ScanQrcode/SvgScanArea.tsx index bbe19f6d75e..cc0766f6f61 100644 --- a/packages/kit/src/views/ScanQrcode/SvgScanArea.tsx +++ b/packages/kit/src/views/ScanQrcode/SvgScanArea.tsx @@ -4,15 +4,22 @@ import Svg, { Path, SvgProps } from 'react-native-svg'; export default function SvgScanArea(props: SvgProps) { return ( - + + + + ); diff --git a/packages/kit/src/views/ScanQrcode/types.ts b/packages/kit/src/views/ScanQrcode/types.ts index 12d2656d0d7..6cd790afca4 100644 --- a/packages/kit/src/views/ScanQrcode/types.ts +++ b/packages/kit/src/views/ScanQrcode/types.ts @@ -12,7 +12,7 @@ export interface ScanResult { export enum ScanQrcodeRoutes { ScanQrcode = 'ScanQrcode', ScanQrcodeResult = 'ScanQrcodeResult', - SelectChainToSend = 'SelectChainToSend', + PreviewSend = 'PreviewSend', } export type ScanQrcodeRoutesParams = { [ScanQrcodeRoutes.ScanQrcode]: @@ -21,7 +21,7 @@ export type ScanQrcodeRoutesParams = { onScanCompleted: (data: string) => void; }; [ScanQrcodeRoutes.ScanQrcodeResult]: ScanResult; - [ScanQrcodeRoutes.SelectChainToSend]: { + [ScanQrcodeRoutes.PreviewSend]: { address: string; possibleNetworks?: string[]; }; diff --git a/packages/kit/src/views/Send/Send.tsx b/packages/kit/src/views/Send/Send.tsx index 67f5ea0584a..bb9198523a1 100644 --- a/packages/kit/src/views/Send/Send.tsx +++ b/packages/kit/src/views/Send/Send.tsx @@ -79,7 +79,7 @@ const Transaction = () => { const navigation = useNavigation(); const [isMax, setIsMax] = useState(false); const route = useRoute(); - const routeParamsToken = route?.params?.token; + const { token: routeParamsToken, to: initialToAddress } = route.params || {}; const { control, @@ -94,7 +94,7 @@ const Transaction = () => { mode: 'onBlur', reValidateMode: 'onBlur', defaultValues: { - to: '', + to: initialToAddress, value: '', // TODO rename to amount }, }); diff --git a/packages/kit/src/views/Send/types.ts b/packages/kit/src/views/Send/types.ts index 7fd5e637680..e85ff0dc0aa 100644 --- a/packages/kit/src/views/Send/types.ts +++ b/packages/kit/src/views/Send/types.ts @@ -33,6 +33,7 @@ export type EditFeeParams = { export type SendParams = EditFeeParams & { token?: Token; + to?: string; }; export type TransferSendParamsPayload = SendConfirmPayloadBase & { diff --git a/packages/kit/src/views/Wallet/Overview.tsx b/packages/kit/src/views/Wallet/Overview.tsx index 43bcd79bc7c..db5af6b9465 100644 --- a/packages/kit/src/views/Wallet/Overview.tsx +++ b/packages/kit/src/views/Wallet/Overview.tsx @@ -1,15 +1,12 @@ import React, { FC } from 'react'; -import { useNavigation } from '@react-navigation/core'; // import { useIntl } from 'react-intl'; import { Box, IconButton, useIsVerticalLayout } from '@onekeyhq/components'; -import { ModalRoutes, RootRoutes } from '@onekeyhq/kit/src/routes/types'; -import { ScanQrcodeRoutes } from '../ScanQrcode/types'; +import { gotoScanQrcode } from '../../utils/gotoScanQrcode'; const Overview: FC = () => { - const navigation = useNavigation(); const small = useIsVerticalLayout(); return ( @@ -19,10 +16,7 @@ const Overview: FC = () => { circle name={small ? 'ScanOutline' : 'ScanSolid'} onPress={() => { - navigation.navigate(RootRoutes.Modal, { - screen: ModalRoutes.ScanQrcode, - params: { screen: ScanQrcodeRoutes.ScanQrcode }, - }); + gotoScanQrcode(); }} /> diff --git a/yarn.lock b/yarn.lock index 5d13ed3482e..519b8a274fa 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2937,11 +2937,6 @@ dependencies: dequal "^1.0.0" -"@leichtgewicht/ip-codec@^2.0.1": - version "2.0.4" - resolved "https://registry.yarnpkg.com/@leichtgewicht/ip-codec/-/ip-codec-2.0.4.tgz#b2ac626d6cb9c8718ab459166d4bb405b8ffa78b" - integrity sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A== - "@lokalise/node-api@^5.0.0": version "5.3.0" resolved "https://registry.yarnpkg.com/@lokalise/node-api/-/node-api-5.3.0.tgz#37a8a2ddb60fcfcd548bd0f513f8a64823d1a9d5" @@ -3910,6 +3905,13 @@ "@react-aria/ssr" "^3.0.1" "@react-aria/utils" "^3.3.0" +"@react-native-async-storage/async-storage@1.17.3": + version "1.17.3" + resolved "https://registry.yarnpkg.com/@react-native-async-storage/async-storage/-/async-storage-1.17.3.tgz#fa7010aa9b6a811ff653df3698a90d3c173dd6a6" + integrity sha512-2dxdlGwBjBP2qYu6F72U7cRRFshISYiNEWCaQNOJtxUERCMaYRWcniYqhL248KSbGUMpRhFCEtliztsiGoYYMA== + dependencies: + merge-options "^3.0.4" + "@react-native-async-storage/async-storage@^1.15.14": version "1.15.14" resolved "https://registry.yarnpkg.com/@react-native-async-storage/async-storage/-/async-storage-1.15.14.tgz#8165d3f78798b46e693169795b62e40142064273" @@ -4968,21 +4970,6 @@ dependencies: "@types/node" "*" -"@types/body-parser@*": - version "1.19.2" - resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.19.2.tgz#aea2059e28b7658639081347ac4fab3de166e6f0" - integrity sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g== - dependencies: - "@types/connect" "*" - "@types/node" "*" - -"@types/bonjour@^3.5.9": - version "3.5.10" - resolved "https://registry.yarnpkg.com/@types/bonjour/-/bonjour-3.5.10.tgz#0f6aadfe00ea414edc86f5d106357cda9701e275" - integrity sha512-p7ienRMiS41Nu2/igbJxxLDWrSZ0WxM8UQgCeO9KhoVF7cOVFkrKsiDr1EsJIla8vV3oEEjGcz11jc5yimhzZw== - dependencies: - "@types/node" "*" - "@types/bs58@^4.0.1": version "4.0.1" resolved "https://registry.yarnpkg.com/@types/bs58/-/bs58-4.0.1.tgz#3d51222aab067786d3bc3740a84a7f5a0effaa37" @@ -5015,15 +5002,7 @@ "@types/filesystem" "*" "@types/har-format" "*" -"@types/connect-history-api-fallback@^1.3.5": - version "1.3.5" - resolved "https://registry.yarnpkg.com/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.3.5.tgz#d1f7a8a09d0ed5a57aee5ae9c18ab9b803205dae" - integrity sha512-h8QJa8xSb1WD4fpKBDcATDNGXghFj6/3GRWG6dhmRcu0RX1Ubasur2Uvx5aeEwlf0MwblEC2bMzzMQntxnw/Cw== - dependencies: - "@types/express-serve-static-core" "*" - "@types/node" "*" - -"@types/connect@*", "@types/connect@^3.4.33": +"@types/connect@^3.4.33": version "3.4.35" resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.35.tgz#5fcf6ae445e4021d1fc2219a4873cc73a3bb2ad1" integrity sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ== @@ -5072,7 +5051,7 @@ resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.50.tgz#1e0caa9364d3fccd2931c3ed96fdbeaa5d4cca83" integrity sha512-C6N5s2ZFtuZRj54k2/zyRhNDjJwwcViAM3Nbm8zjBpbqAdZ00mr0CFxvSKeO8Y/e03WVFLpQMdHYVfUd6SB+Hw== -"@types/express-serve-static-core@*", "@types/express-serve-static-core@^4.17.18", "@types/express-serve-static-core@^4.17.9": +"@types/express-serve-static-core@^4.17.9": version "4.17.28" resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.28.tgz#c47def9f34ec81dc6328d0b1b5303d1ec98d86b8" integrity sha512-P1BJAEAW3E2DJUlkgq4tOL3RyMunoWXqbSCygWo5ZIWTjUgN1YnaXWW4VWl/oc8vs/XoYibEGBKP0uZyF4AHig== @@ -5081,16 +5060,6 @@ "@types/qs" "*" "@types/range-parser" "*" -"@types/express@*", "@types/express@^4.17.13": - version "4.17.13" - resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.13.tgz#a76e2995728999bab51a33fabce1d705a3709034" - integrity sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA== - dependencies: - "@types/body-parser" "*" - "@types/express-serve-static-core" "^4.17.18" - "@types/qs" "*" - "@types/serve-static" "*" - "@types/filesystem@*": version "0.0.32" resolved "https://registry.yarnpkg.com/@types/filesystem/-/filesystem-0.0.32.tgz#307df7cc084a2293c3c1a31151b178063e0a8edf" @@ -5153,10 +5122,10 @@ resolved "https://registry.yarnpkg.com/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz#0ea7b61496902b95890dc4c3a116b60cb8dae812" integrity sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ== -"@types/http-proxy@^1.17.8": - version "1.17.9" - resolved "https://registry.yarnpkg.com/@types/http-proxy/-/http-proxy-1.17.9.tgz#7f0e7931343761efde1e2bf48c40f02f3f75705a" - integrity sha512-QsbSjA/fSk7xB+UXlCT3wHBy5ai9wOcNDWwZAtud+jXhwOM3l+EYZh8Lng4+/6n8uar0J7xILzqftJdJ/Wdfkw== +"@types/http-proxy@^1.17.5": + version "1.17.7" + resolved "https://registry.yarnpkg.com/@types/http-proxy/-/http-proxy-1.17.7.tgz#30ea85cc2c868368352a37f0d0d3581e24834c6f" + integrity sha512-9hdj6iXH64tHSLTY+Vt2eYOGzSogC+JQ2H7bdPWkuh7KXP5qLllWx++t+K9Wk556c3dkDdPws/SpMRi0sdCT1w== dependencies: "@types/node" "*" @@ -5231,11 +5200,6 @@ resolved "https://registry.yarnpkg.com/@types/memoizee/-/memoizee-0.4.8.tgz#04adc0c266a0f5d72db0556fdda2ba17dad9b519" integrity sha512-qDpXKGgwKywnQt/64fH1O0LiPA++QGIYeykEUiZ51HymKVRLnUSGcRuF60IfpPeeXiuRwiR/W4y7S5VzbrgLCA== -"@types/mime@^1": - version "1.3.2" - resolved "https://registry.yarnpkg.com/@types/mime/-/mime-1.3.2.tgz#93e25bf9ee75fe0fd80b594bc4feb0e862111b5a" - integrity sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw== - "@types/minimatch@*": version "3.0.5" resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.5.tgz#1001cc5e6a3704b83c236027e77f2f58ea010f40" @@ -5426,28 +5390,6 @@ resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.3.9.tgz#152c6c20a7688c30b967ec1841d31ace569863fc" integrity sha512-L/TMpyURfBkf+o/526Zb6kd/tchUP3iBDEPjqjb+U2MAJhVRxxrmr2fwpe08E7QsV7YLcpq0tUaQ9O9x97ZIxQ== -"@types/serve-index@^1.9.1": - version "1.9.1" - resolved "https://registry.yarnpkg.com/@types/serve-index/-/serve-index-1.9.1.tgz#1b5e85370a192c01ec6cec4735cf2917337a6278" - integrity sha512-d/Hs3nWDxNL2xAczmOVZNj92YZCS6RGxfBPjKzuu/XirCgXdpKEb88dYNbrYGint6IVWLNP+yonwVAuRC0T2Dg== - dependencies: - "@types/express" "*" - -"@types/serve-static@*": - version "1.13.10" - resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.13.10.tgz#f5e0ce8797d2d7cc5ebeda48a52c96c4fa47a8d9" - integrity sha512-nCkHGI4w7ZgAdNkrEu0bv+4xNV/XDqW+DydknebMOQwkpDGx8G+HTlj7R7ABI8i8nKxVw0wtKPi1D+lPOkh4YQ== - dependencies: - "@types/mime" "^1" - "@types/node" "*" - -"@types/sockjs@^0.3.33": - version "0.3.33" - resolved "https://registry.yarnpkg.com/@types/sockjs/-/sockjs-0.3.33.tgz#570d3a0b99ac995360e3136fd6045113b1bd236f" - integrity sha512-f0KEEe05NvUnat+boPTZ0dgaLZ4SfSouXUgv5noUiefG2ajgKjmETo9ZJyuqsl7dfl2aHlLJUiki6B4ZYldiiw== - dependencies: - "@types/node" "*" - "@types/source-list-map@*": version "0.1.2" resolved "https://registry.yarnpkg.com/@types/source-list-map/-/source-list-map-0.1.2.tgz#0078836063ffaf17412349bba364087e0ac02ec9" @@ -5535,13 +5477,6 @@ dependencies: "@types/node" "*" -"@types/ws@^8.5.1": - version "8.5.3" - resolved "https://registry.yarnpkg.com/@types/ws/-/ws-8.5.3.tgz#7d25a1ffbecd3c4f2d35068d0b283c037003274d" - integrity sha512-6YOoWjruKj1uLf3INHH7D3qTXwFfEsg1kf3c0uDdSBJwfa/llkwIjrAGV7j7mVgGNbzTQ3HiHKKDXl6bJPD97w== - dependencies: - "@types/node" "*" - "@types/yargs-parser@*": version "20.2.1" resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-20.2.1.tgz#3b9ce2489919d9e4fea439b76916abc34b2df129" @@ -6365,6 +6300,11 @@ ansi-regex@^5.0.0, ansi-regex@^5.0.1: resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== +ansi-regex@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.0.1.tgz#3183e38fae9a65d7cb5e53945cd5897d0260a06a" + integrity sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA== + ansi-styles@^3.2.0, ansi-styles@^3.2.1: version "3.2.1" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" @@ -6524,7 +6464,7 @@ array-flatten@1.1.1: resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" integrity sha1-ml9pkFGx5wczKPKgCJaLZOopVdI= -array-flatten@^2.1.2: +array-flatten@^2.1.0: version "2.1.2" resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-2.1.2.tgz#24ef80a28c1a893617e2149b0c6d0d788293b099" integrity sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ== @@ -7388,15 +7328,17 @@ body-parser@1.20.0, body-parser@^1.16.0: type-is "~1.6.18" unpipe "1.0.0" -bonjour-service@^1.0.11: - version "1.0.12" - resolved "https://registry.yarnpkg.com/bonjour-service/-/bonjour-service-1.0.12.tgz#28fbd4683f5f2e36feedb833e24ba661cac960c3" - integrity sha512-pMmguXYCu63Ug37DluMKEHdxc+aaIf/ay4YbF8Gxtba+9d3u+rmEWy61VK3Z3hp8Rskok3BunHYnG0dUHAsblw== +bonjour@^3.5.0: + version "3.5.0" + resolved "https://registry.yarnpkg.com/bonjour/-/bonjour-3.5.0.tgz#8e890a183d8ee9a2393b3844c691a42bcf7bc9f5" + integrity sha1-jokKGD2O6aI5OzhExpGkK897yfU= dependencies: - array-flatten "^2.1.2" + array-flatten "^2.1.0" + deep-equal "^1.0.1" dns-equal "^1.0.0" - fast-deep-equal "^3.1.3" - multicast-dns "^7.2.4" + dns-txt "^2.0.2" + multicast-dns "^6.0.1" + multicast-dns-service-types "^1.1.0" boolbase@^1.0.0, boolbase@~1.0.0: version "1.0.0" @@ -7655,6 +7597,11 @@ buffer-from@^1.0.0: resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== +buffer-indexof@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/buffer-indexof/-/buffer-indexof-1.1.1.tgz#52fabcc6a606d1a00302802648ef68f639da268c" + integrity sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g== + buffer-layout@^1.2.0: version "1.2.2" resolved "https://registry.yarnpkg.com/buffer-layout/-/buffer-layout-1.2.2.tgz#b9814e7c7235783085f9ca4966a0cfff112259d5" @@ -8056,7 +8003,7 @@ chokidar@^2.1.8: optionalDependencies: fsevents "^1.2.7" -chokidar@^3.4.1: +chokidar@^3.4.1, chokidar@^3.5.2: version "3.5.2" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.2.tgz#dba3976fcadb016f66fd365021d91600d01c1e75" integrity sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ== @@ -8071,21 +8018,6 @@ chokidar@^3.4.1: optionalDependencies: fsevents "~2.3.2" -chokidar@^3.5.3: - version "3.5.3" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" - integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== - dependencies: - anymatch "~3.1.2" - braces "~3.0.2" - glob-parent "~5.1.2" - is-binary-path "~2.1.0" - is-glob "~4.0.1" - normalize-path "~3.0.0" - readdirp "~3.6.0" - optionalDependencies: - fsevents "~2.3.2" - chownr@^1.1.1, chownr@^1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" @@ -8852,7 +8784,7 @@ create-hmac@^1.1.0, create-hmac@^1.1.2, create-hmac@^1.1.3, create-hmac@^1.1.4, safe-buffer "^5.0.1" sha.js "^2.4.8" -create-react-class@*, create-react-class@^15.7.0: +create-react-class@^15.7.0: version "15.7.0" resolved "https://registry.yarnpkg.com/create-react-class/-/create-react-class-15.7.0.tgz#7499d7ca2e69bb51d13faf59bd04f0c65a1d6c1e" integrity sha512-QZv4sFWG9S5RUvkTYWbflxeZX+JG7Cz0Tn33rQBJ+WFQTqTfUTjMjiv9tnfXazjsO5r0KhPs+AqCjyrQX6h2ng== @@ -8867,7 +8799,7 @@ cross-env@^7.0.3: dependencies: cross-spawn "^7.0.1" -cross-fetch@^3.0.4, cross-fetch@^3.0.6, cross-fetch@^3.1.4, cross-fetch@^3.1.5: +cross-fetch@^3.0.4, cross-fetch@^3.0.6, cross-fetch@^3.1.4: version "3.1.5" resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.1.5.tgz#e1389f44d9e7ba767907f7af8454787952ab534f" integrity sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw== @@ -9299,13 +9231,6 @@ decompress-response@^3.2.0, decompress-response@^3.3.0: dependencies: mimic-response "^1.0.0" -decompress-response@^4.2.0: - version "4.2.1" - resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-4.2.1.tgz#414023cc7a302da25ce2ec82d0d5238ccafd8986" - integrity sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw== - dependencies: - mimic-response "^2.0.0" - decompress-response@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-6.0.0.tgz#ca387612ddb7e104bd16d85aab00d5ecf09c66fc" @@ -9381,6 +9306,18 @@ deep-diff@^0.3.5: resolved "https://registry.yarnpkg.com/deep-diff/-/deep-diff-0.3.8.tgz#c01de63efb0eec9798801d40c7e0dae25b582c84" integrity sha1-wB3mPvsO7JeYgB1Ax+Da4ltYLIQ= +deep-equal@^1.0.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.1.1.tgz#b5c98c942ceffaf7cb051e24e1434a25a2e6076a" + integrity sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g== + dependencies: + is-arguments "^1.0.4" + is-date-object "^1.0.1" + is-regex "^1.0.4" + object-is "^1.0.1" + object-keys "^1.1.1" + regexp.prototype.flags "^1.2.0" + deep-extend@^0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" @@ -9529,16 +9466,6 @@ depd@~1.1.2: resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= -deprecated-react-native-listview@0.0.6: - version "0.0.6" - resolved "https://registry.yarnpkg.com/deprecated-react-native-listview/-/deprecated-react-native-listview-0.0.6.tgz#f9169dd703398a7792e5bcb8b851e741a8cb6980" - integrity sha512-QRuN0Dcv3Muu1oT8MhZgyfqm77bTAegVwqSRJKVwVVsm0xJE0TBfqdD45VXYLIS+yMXPJoeXdSqSdVQSjwlOpQ== - dependencies: - create-react-class "*" - fbjs "*" - invariant "*" - react-clone-referenced-element "*" - deprecated-react-native-prop-types@^2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/deprecated-react-native-prop-types/-/deprecated-react-native-prop-types-2.3.0.tgz#c10c6ee75ff2b6de94bb127f142b814e6e08d9ab" @@ -9581,10 +9508,10 @@ detect-file@^1.0.0: resolved "https://registry.yarnpkg.com/detect-file/-/detect-file-1.0.0.tgz#f0d66d03672a825cb1b73bdb3fe62310c8e552b7" integrity sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc= -detect-libc@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" - integrity sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg== +detect-libc@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-2.0.1.tgz#e1897aa88fa6ad197862937fbc0441ef352ee0cd" + integrity sha512-463v3ZeIrcWtdgIg6vI6XUncguvr2TnGl4SzDXinkt9mSLpBJKXT3mW6xT3VQdDN11+WVs29pgvivTc4Lp8v+w== detect-newline@^3.0.0: version "3.1.0" @@ -9680,12 +9607,20 @@ dns-equal@^1.0.0: resolved "https://registry.yarnpkg.com/dns-equal/-/dns-equal-1.0.0.tgz#b39e7f1da6eb0a75ba9c17324b34753c47e0654d" integrity sha1-s55/HabrCnW6nBcySzR1PEfgZU0= -dns-packet@^5.2.2: - version "5.3.1" - resolved "https://registry.yarnpkg.com/dns-packet/-/dns-packet-5.3.1.tgz#eb94413789daec0f0ebe2fcc230bdc9d7c91b43d" - integrity sha512-spBwIj0TK0Ey3666GwIdWVfUpLyubpU53BTCu8iPn4r4oXd9O14Hjg3EHw3ts2oed77/SeckunUYCyRlSngqHw== +dns-packet@^1.3.1: + version "1.3.4" + resolved "https://registry.yarnpkg.com/dns-packet/-/dns-packet-1.3.4.tgz#e3455065824a2507ba886c55a89963bb107dec6f" + integrity sha512-BQ6F4vycLXBvdrJZ6S3gZewt6rcrks9KBgM9vrhW+knGRqc8uEdT7fuCwloc7nny5xNoMJ17HGH0R/6fpo8ECA== + dependencies: + ip "^1.1.0" + safe-buffer "^5.0.1" + +dns-txt@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/dns-txt/-/dns-txt-2.0.2.tgz#b91d806f5d27188e4ab3e7d107d881a1cc4642b6" + integrity sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY= dependencies: - "@leichtgewicht/ip-codec" "^2.0.1" + buffer-indexof "^1.0.0" doctrine@^2.1.0: version "2.1.0" @@ -9973,7 +9908,16 @@ electron-to-chromium@^1.4.118: resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.141.tgz#4dd9119e8a99f1c83c51dfcf1bed79ea541f08d6" integrity sha512-mfBcbqc0qc6RlxrsIgLG2wCqkiPAjEezHxGTu7p3dHHFOurH4EjS9rFZndX5axC8264rI1Pcbw8uQP39oZckeA== -electron@*, electron@^15.3.5: +electron@*: + version "16.0.3" + resolved "https://registry.yarnpkg.com/electron/-/electron-16.0.3.tgz#458208572ca5226a833bcf4f7738d59447fc7606" + integrity sha512-MzCYuEqrvyEtPSUWQwr88xWBrsbhmyOKp4wqP9WfAJTEDeUfBcrQYswHuYe17Gi00gRirQb9htoC/anYfaw20w== + dependencies: + "@electron/get" "^1.13.0" + "@types/node" "^14.6.2" + extract-zip "^1.0.3" + +electron@^15.3.5: version "15.3.5" resolved "https://registry.yarnpkg.com/electron/-/electron-15.3.5.tgz#62fc7d2289d3f47e9e05c0aa9bb6d929a6faf398" integrity sha512-z0/7+p3uZYBmjf7UEVBfcMTVgW6ThGgfI4jdbQ1TH4XOLYkj560/abv91/s8kK0MZ7JQg4KRP1JwQZ4q6+BPFw== @@ -10499,14 +10443,6 @@ eslint-module-utils@^2.7.1: find-up "^2.1.0" pkg-dir "^2.0.0" -eslint-plugin-flowtype@^6.1.1: - version "6.1.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-flowtype/-/eslint-plugin-flowtype-6.1.1.tgz#3358705e9285a53e4cc1b50ec7ab753d8ae07e3b" - integrity sha512-5RodSeZvKh1N0kppB9dSSO0ZqB8rHjdX9BUTVQUBnEzR3QU5aQVKEUlBJE7I7U7rhbJMxe3aHPmt/jD4+5Ya6g== - dependencies: - lodash "^4.17.21" - string-natural-compare "^3.0.1" - eslint-plugin-html@^6.1.2: version "6.2.0" resolved "https://registry.yarnpkg.com/eslint-plugin-html/-/eslint-plugin-html-6.2.0.tgz#715bc00b50bbd0d996e28f953c289a5ebec69d43" @@ -11317,10 +11253,10 @@ expo@^45.0.4: optionalDependencies: expo-error-recovery "~3.1.0" -express@^4.14.0, express@^4.17.3: - version "4.18.1" - resolved "https://registry.yarnpkg.com/express/-/express-4.18.1.tgz#7797de8b9c72c857b9cd0e14a5eea80666267caf" - integrity sha512-zZBcOX9TfehHQhtupq57OF8lFZ3UZi08Y97dwFCkD8p9d/d2Y3M+ykKcwaMDEL+4qyUolgBDX6AblpR3fL212Q== +express@^4.14.0, express@^4.17.1: + version "4.18.0" + resolved "https://registry.yarnpkg.com/express/-/express-4.18.0.tgz#7a426773325d0dd5406395220614c0db10b6e8e2" + integrity sha512-EJEXxiTQJS3lIPrU1AE2vRuT7X7E+0KBbpm5GSoK524yl0K8X+er8zS2P14E64eqsVNoWbMCT7MpmQ+ErAhgRg== dependencies: accepts "~1.3.8" array-flatten "1.1.1" @@ -11496,19 +11432,6 @@ fbjs-css-vars@^1.0.0: resolved "https://registry.yarnpkg.com/fbjs-css-vars/-/fbjs-css-vars-1.0.2.tgz#216551136ae02fe255932c3ec8775f18e2c078b8" integrity sha512-b2XGFAFdWZWg0phtAWLHCk836A1Xann+I+Dgd3Gk64MHKZO44FfoD1KxyvbSh0qZsIoXQGGlVztIY+oitJPpRQ== -fbjs@*: - version "3.0.4" - resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-3.0.4.tgz#e1871c6bd3083bac71ff2da868ad5067d37716c6" - integrity sha512-ucV0tDODnGV3JCnnkmoszb5lf4bNpzjv80K41wd4k798Etq+UYD0y0TIfalLjZoKgjive6/adkRnszwapiDgBQ== - dependencies: - cross-fetch "^3.1.5" - fbjs-css-vars "^1.0.0" - loose-envify "^1.0.0" - object-assign "^4.1.0" - promise "^7.1.1" - setimmediate "^1.0.5" - ua-parser-js "^0.7.30" - fbjs@^0.8.9: version "0.8.18" resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-0.8.18.tgz#9835e0addb9aca2eff53295cd79ca1cfc7c9662a" @@ -12911,12 +12834,12 @@ http-proxy-agent@^5.0.0: agent-base "6" debug "4" -http-proxy-middleware@^2.0.3: - version "2.0.6" - resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-2.0.6.tgz#e1a4dd6979572c7ab5a4e4b55095d1f32a74963f" - integrity sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw== +http-proxy-middleware@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-2.0.1.tgz#7ef3417a479fb7666a571e09966c66a39bd2c15f" + integrity sha512-cfaXRVoZxSed/BmkA7SwBVNI9Kj7HFltaE5rqYOub5kWzWZ+gofV2koVN1j2rMW7pEfSSlCHGJ31xmuyFyfLOg== dependencies: - "@types/http-proxy" "^1.17.8" + "@types/http-proxy" "^1.17.5" http-proxy "^1.18.1" is-glob "^4.0.1" is-plain-obj "^3.0.0" @@ -13252,7 +13175,7 @@ ip-regex@^2.1.0: resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-2.1.0.tgz#fa78bf5d2e6913c911ce9f819ee5146bb6d844e9" integrity sha512-58yWmlHpp7VYfcdTwMTvwMmqx/Elfxjd9RXTDyMsbL7lLWmhMylLEqiYVLKuLzOZqVgiWXD9MfR62Vv89VRxkw== -ip@^1.1.5: +ip@^1.1.0, ip@^1.1.5: version "1.1.5" resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a" integrity sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo= @@ -13671,7 +13594,7 @@ is-promise@^2.2.2: resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.2.2.tgz#39ab959ccbf9a774cf079f7b40c7a26f763135f1" integrity sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ== -is-regex@^1.1.4: +is-regex@^1.0.4, is-regex@^1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== @@ -15353,10 +15276,10 @@ media-typer@0.3.0: resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= -memfs@^3.4.3: - version "3.4.4" - resolved "https://registry.yarnpkg.com/memfs/-/memfs-3.4.4.tgz#e8973cd8060548916adcca58a248e7805c715e89" - integrity sha512-W4gHNUE++1oSJVn8Y68jPXi+mkx3fXR5ITE/Ubz6EQ3xRpCN5k2CQ4AUR8094Z7211F876TyoBACGsIveqgiGA== +memfs@^3.2.2: + version "3.4.0" + resolved "https://registry.yarnpkg.com/memfs/-/memfs-3.4.0.tgz#8bc12062b973be6b295d4340595736a656f0a257" + integrity sha512-o/RfP0J1d03YwsAxyHxAYs2kyJp55AFkMazlFAZFR2I2IXkxiUTXRabJ6RmNNCQ83LAD2jy52Khj0m3OffpNdA== dependencies: fs-monkey "1.0.3" @@ -15810,11 +15733,6 @@ mimic-response@^1.0.0, mimic-response@^1.0.1: resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b" integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ== -mimic-response@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-2.1.0.tgz#d13763d35f613d09ec37ebb30bac0469c0ee8f43" - integrity sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA== - mimic-response@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-3.1.0.tgz#2d1d59af9c1b129815accc2c46a022a5ce1fa3c9" @@ -16060,12 +15978,17 @@ multibase@~0.6.0: base-x "^3.0.8" buffer "^5.5.0" -multicast-dns@^7.2.4: - version "7.2.5" - resolved "https://registry.yarnpkg.com/multicast-dns/-/multicast-dns-7.2.5.tgz#77eb46057f4d7adbd16d9290fa7299f6fa64cced" - integrity sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg== +multicast-dns-service-types@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz#899f11d9686e5e05cb91b35d5f0e63b773cfc901" + integrity sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE= + +multicast-dns@^6.0.1: + version "6.2.3" + resolved "https://registry.yarnpkg.com/multicast-dns/-/multicast-dns-6.2.3.tgz#a0ec7bd9055c4282f790c3c82f4e28db3b31b229" + integrity sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g== dependencies: - dns-packet "^5.2.2" + dns-packet "^1.3.1" thunky "^1.0.2" multicodec@^0.5.5: @@ -16376,12 +16299,12 @@ nocache@^2.1.0: resolved "https://registry.yarnpkg.com/nocache/-/nocache-2.1.0.tgz#120c9ffec43b5729b1d5de88cd71aa75a0ba491f" integrity sha512-0L9FvHG3nfnnmaEQPjT9xhfN4ISk0A8/2j4M37Np4mcDesJjHgEUfgPhdCyZuFI954tjokaIj/A3NdpFNdEh4Q== -node-abi@^2.21.0: - version "2.30.1" - resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-2.30.1.tgz#c437d4b1fe0e285aaf290d45b45d4d7afedac4cf" - integrity sha512-/2D0wOQPgaUWzVSVgRMx+trKJRC2UG4SUc4oCJoXx9Uxjtp0Vy3/kt7zcbxHF8+Z/pK3UloLWzBISg72brfy1w== +node-abi@^3.3.0: + version "3.22.0" + resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-3.22.0.tgz#00b8250e86a0816576258227edbce7bbe0039362" + integrity sha512-u4uAs/4Zzmp/jjsD9cyFYDXeISfUWaAVWshPmDZOFOv4Xl4SbzTXm53I04C2uRueYJ+0t5PEtLH/owbn2Npf/w== dependencies: - semver "^5.4.1" + semver "^7.3.5" node-addon-api@4.2.0: version "4.2.0" @@ -16420,7 +16343,12 @@ node-fetch@^1.0.1: encoding "^0.1.11" is-stream "^1.0.1" -node-forge@^1, node-forge@^1.2.1, node-forge@^1.3.1: +node-forge@^0.10.0: + version "0.10.0" + resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.10.0.tgz#32dea2afb3e9926f02ee5ce8794902691a676bf3" + integrity sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA== + +node-forge@^1.2.1, node-forge@^1.3.1: version "1.3.1" resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-1.3.1.tgz#be8da2af243b2417d5f646a770663a92b7e9ded3" integrity sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA== @@ -17826,22 +17754,22 @@ postinstall-postinstall@^2.1.0: resolved "https://registry.yarnpkg.com/postinstall-postinstall/-/postinstall-postinstall-2.1.0.tgz#4f7f77441ef539d1512c40bd04c71b06a4704ca3" integrity sha512-7hQX6ZlZXIoRiWNrbMQaLzUUfH+sSx39u8EJ9HYuDc1kLo9IXKWjM5RSquZN1ad5GnH8CGFM78fsAAQi3OKEEQ== -prebuild-install@^6.1.1: - version "6.1.4" - resolved "https://registry.yarnpkg.com/prebuild-install/-/prebuild-install-6.1.4.tgz#ae3c0142ad611d58570b89af4986088a4937e00f" - integrity sha512-Z4vpywnK1lBg+zdPCVCsKq0xO66eEV9rWo2zrROGGiRS4JtueBOdlB1FnY8lcy7JsUud/Q3ijUxyWN26Ika0vQ== +prebuild-install@^7.0.1: + version "7.1.0" + resolved "https://registry.yarnpkg.com/prebuild-install/-/prebuild-install-7.1.0.tgz#991b6ac16c81591ba40a6d5de93fb33673ac1370" + integrity sha512-CNcMgI1xBypOyGqjp3wOc8AAo1nMhZS3Cwd3iHIxOdAUbb+YxdNuM4Z5iIrZ8RLvOsf3F3bl7b7xGq6DjQoNYA== dependencies: - detect-libc "^1.0.3" + detect-libc "^2.0.0" expand-template "^2.0.3" github-from-package "0.0.0" minimist "^1.2.3" mkdirp-classic "^0.5.3" napi-build-utils "^1.0.1" - node-abi "^2.21.0" + node-abi "^3.3.0" npmlog "^4.0.1" pump "^3.0.0" rc "^1.2.7" - simple-get "^3.0.3" + simple-get "^4.0.0" tar-fs "^2.0.0" tunnel-agent "^0.6.0" @@ -18267,11 +18195,6 @@ rc@^1.0.1, rc@^1.1.6, rc@^1.2.7, rc@^1.2.8, rc@~1.2.7: minimist "^1.2.0" strip-json-comments "~2.0.1" -react-clone-referenced-element@*: - version "1.1.1" - resolved "https://registry.yarnpkg.com/react-clone-referenced-element/-/react-clone-referenced-element-1.1.1.tgz#8d76727dc0459788e461741e804a512d20757381" - integrity sha512-LZBPvQV8W0B5dFzXFu+D3Tpil8YHS8tO00iFsfXcTLdtpuH7XyvaHqHcoz4hd4uNPQCZ30fceh+s7mLznzMXvg== - react-content-loader@^6.1.0, react-content-loader@^6.2.0: version "6.2.0" resolved "https://registry.yarnpkg.com/react-content-loader/-/react-content-loader-6.2.0.tgz#cd8fee8160b8fda6610d0c69ce5aee7b8094cba6" @@ -18547,10 +18470,10 @@ react-native-modal@^13.0.0: prop-types "^15.6.2" react-native-animatable "1.3.3" -react-native-pager-view@5.4.9: - version "5.4.9" - resolved "https://registry.yarnpkg.com/react-native-pager-view/-/react-native-pager-view-5.4.9.tgz#c0d40847cfeda5a4e729b53271b0ee0fedff3eb5" - integrity sha512-D6tzxpwMGdl6CXgtskGWhKRc5cJakCazESRGt7PkqnpyiH3N35ft1KmR82pCSQetAFlytFiToeu3a/dG5CELvA== +react-native-pager-view@5.4.15: + version "5.4.15" + resolved "https://registry.yarnpkg.com/react-native-pager-view/-/react-native-pager-view-5.4.15.tgz#075fef5ae4ba6ecc37e49b6c4a24770131a2a3cc" + integrity sha512-5NssD840wFCuOL4B1ZRiRADvt+Vx2Dgify4SmAUqHXCx03yiGPnRWmFjYXyQeK6gq/8VY+gPGE4bTy9ahzBbDw== react-native-randombytes@^3.6.1: version "3.6.1" @@ -18595,10 +18518,10 @@ react-native-restart@0.0.24: resolved "https://registry.npmmirror.com/react-native-restart/-/react-native-restart-0.0.24.tgz#c7036f25d900d9221b84d3e5129b02d4289d4e94" integrity sha512-pvJNU3NwQk6bCG2gOWcQpZ4IxhtELB0K9gzmtixfsaTFbW1UXXHkJNjk1kHazcbH5hrD7QbUkR63fsAVh8X4VQ== -react-native-safe-area-context@3.3.2: - version "3.3.2" - resolved "https://registry.yarnpkg.com/react-native-safe-area-context/-/react-native-safe-area-context-3.3.2.tgz#9549a2ce580f2374edb05e49d661258d1b8bcaed" - integrity sha512-yOwiiPJ1rk+/nfK13eafbpW6sKW0jOnsRem2C1LPJjM3tfTof6hlvV5eWHATye3XOpu2cJ7N+HdkUvUDGwFD2Q== +react-native-safe-area-context@4.2.4: + version "4.2.4" + resolved "https://registry.yarnpkg.com/react-native-safe-area-context/-/react-native-safe-area-context-4.2.4.tgz#4df42819759c4d3c74252c8678c2772cfa2271a6" + integrity sha512-OOX+W2G4YYufvryonn6Kw6YnyT8ZThkxPHZBD04NLHaZmicUaaDVII/PZ3M5fD1o5N62+T+8K4bCS5Un2ggvkA== react-native-safe-modules@^1.0.3: version "1.0.3" @@ -18607,10 +18530,10 @@ react-native-safe-modules@^1.0.3: dependencies: dedent "^0.6.0" -react-native-screens@~3.10.1: - version "3.10.2" - resolved "https://registry.yarnpkg.com/react-native-screens/-/react-native-screens-3.10.2.tgz#cbf505d61c09e29ad5b335309951a3bd81f0df19" - integrity sha512-bMKSpwMeqAoXBqTJiDEG1ogM1cMk66sEmpp/4dGqdX59v+OwMqPeTuBk37qaSuS7gPOFFKsNW2X3ymGvBT4iEw== +react-native-screens@3.11.1: + version "3.11.1" + resolved "https://registry.yarnpkg.com/react-native-screens/-/react-native-screens-3.11.1.tgz#9bca9968986ca9195cb1e7e6fca37543bde64ecb" + integrity sha512-ziQqVm97tNtovacyHwNmDwJPb8n9CqwsfttXx2p5Hk7wUWemDcPAX0ZJ/nNnGMSq2p2QPhPjjUpr3qKXuES0sQ== dependencies: react-freeze "^1.0.0" warn-once "^0.1.0" @@ -18675,10 +18598,10 @@ react-native-web@0.17.7: normalize-css-color "^1.0.2" prop-types "^15.6.0" -react-native-webview@11.15.0: - version "11.15.0" - resolved "https://registry.yarnpkg.com/react-native-webview/-/react-native-webview-11.15.0.tgz#b5aea9da579ca17fb9fd324e5202b1b5b8ce9fa8" - integrity sha512-0Wv+8qu8XuACx1xZwzc2Yfl+rOvxUouLcPxUKdkhaMVNpwoM5/ePpczCQZ3LpiRnSoEtjaUkfyQHbJQ+x4dDJQ== +react-native-webview@11.18.1: + version "11.18.1" + resolved "https://registry.yarnpkg.com/react-native-webview/-/react-native-webview-11.18.1.tgz#0a1893abd391c8f0e7d4c5874bfa737ca6311225" + integrity sha512-1VoVmkbsHJ44WA+frMhNfua64t0u2jq80h25sUWrKJRiYrO0XIsKBnJcqrzuOH1ZAT/zDHTqBB5OU+bxEHLJmQ== dependencies: escape-string-regexp "2.0.0" invariant "2.2.4" @@ -18870,10 +18793,10 @@ realm-network-transport@^0.7.1: abort-controller "^3.0.0" node-fetch "^2.6.0" -realm@10.20.0-beta.0: - version "10.20.0-beta.0" - resolved "https://registry.yarnpkg.com/realm/-/realm-10.20.0-beta.0.tgz#372b53b55f291bb757de47e125548950beb9c740" - integrity sha512-DujBA0r1PGppER1bUl93QuAJZNIiilD6QIDuRDPMmZMIJBAHydBGuEl71WI2xDfh8DOX51dYUfXXth2eGDU+Iw== +realm@10.20.0-beta.2: + version "10.20.0-beta.2" + resolved "https://registry.yarnpkg.com/realm/-/realm-10.20.0-beta.2.tgz#f821b298a4cf7fe285acc119f544e6cc80a1d348" + integrity sha512-jCOOsnspCHuZbAk/WPcEP6Q8zAxSOnwxkfDjwaf/H74DPRcKPkYnfidmrJblh1baymB+d2a/Znr5xkvIMnGR5A== dependencies: "@realm.io/common" "^0.1.1" bindings "^1.5.0" @@ -18881,14 +18804,13 @@ realm@10.20.0-beta.0: clang-format "^1.6.0" command-line-args "^5.1.1" deepmerge "2.1.0" - deprecated-react-native-listview "0.0.6" fs-extra "^4.0.3" https-proxy-agent "^2.2.4" ini "^1.3.7" node-addon-api "4.2.0" node-fetch "^2.6.1" node-machine-id "^1.1.10" - prebuild-install "^6.1.1" + prebuild-install "^7.0.1" progress "^2.0.3" prop-types "^15.6.2" realm-network-transport "^0.7.1" @@ -18985,7 +18907,7 @@ regex-not@^1.0.0, regex-not@^1.0.2: extend-shallow "^3.0.2" safe-regex "^1.1.0" -regexp.prototype.flags@^1.3.1: +regexp.prototype.flags@^1.2.0, regexp.prototype.flags@^1.3.1: version "1.3.1" resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.3.1.tgz#7ef352ae8d159e758c0eadca6f8fcb4eef07be26" integrity sha512-JiBdRBq91WlY7uRJ0ds7R+dU02i6LKi8r3BuQhNXn+kmeLN+EfHhfjqMRis1zJxnlu88hq/4dx0P2OP3APRTOA== @@ -19616,12 +19538,12 @@ select-hose@^2.0.0: resolved "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca" integrity sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo= -selfsigned@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-2.0.1.tgz#8b2df7fa56bf014d19b6007655fff209c0ef0a56" - integrity sha512-LmME957M1zOsUhG+67rAjKfiWFox3SBxE/yymatMZsAx+oMrJ0YQ8AToOnyCm7xbeg2ep37IHLxdu0o2MavQOQ== +selfsigned@^1.10.11: + version "1.10.14" + resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-1.10.14.tgz#ee51d84d9dcecc61e07e4aba34f229ab525c1574" + integrity sha512-lkjaiAye+wBZDCBsu5BGi0XiLRxeUlsGod5ZP924CRSEoGuZAw/f7y9RKu28rwTfiHVhdavhB0qH0INV6P1lEA== dependencies: - node-forge "^1" + node-forge "^0.10.0" semver-compare@^1.0.0: version "1.0.0" @@ -19904,12 +19826,12 @@ simple-get@^2.7.0: once "^1.3.1" simple-concat "^1.0.0" -simple-get@^3.0.3: - version "3.1.1" - resolved "https://registry.yarnpkg.com/simple-get/-/simple-get-3.1.1.tgz#cc7ba77cfbe761036fbfce3d021af25fc5584d55" - integrity sha512-CQ5LTKGfCpvE1K0n2us+kuMPbk/q0EKl82s4aheV9oXjFEz6W/Y7oQFVJuU6QG77hRT4Ghb5RURteF5vnWjupA== +simple-get@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/simple-get/-/simple-get-4.0.1.tgz#4a39db549287c979d352112fa03fd99fd6bc3543" + integrity sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA== dependencies: - decompress-response "^4.2.0" + decompress-response "^6.0.0" once "^1.3.1" simple-concat "^1.0.0" @@ -20047,13 +19969,13 @@ socket.io-parser@~3.3.0: debug "~3.1.0" isarray "2.0.1" -sockjs@^0.3.24: - version "0.3.24" - resolved "https://registry.yarnpkg.com/sockjs/-/sockjs-0.3.24.tgz#c9bc8995f33a111bea0395ec30aa3206bdb5ccce" - integrity sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ== +sockjs@^0.3.21: + version "0.3.21" + resolved "https://registry.yarnpkg.com/sockjs/-/sockjs-0.3.21.tgz#b34ffb98e796930b60a0cfa11904d6a339a7d417" + integrity sha512-DhbPFGpxjc6Z3I+uX07Id5ZO2XwYsWOrYjaSeieES78cq+JaJvVe5q/m1uvjIQhXinhIeCFRH6JgXe+mvVMyXw== dependencies: faye-websocket "^0.11.3" - uuid "^8.3.2" + uuid "^3.4.0" websocket-driver "^0.7.4" source-list-map@^2.0.0: @@ -20414,11 +20336,6 @@ string-length@^4.0.1: char-regex "^1.0.2" strip-ansi "^6.0.0" -string-natural-compare@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/string-natural-compare/-/string-natural-compare-3.0.1.tgz#7a42d58474454963759e8e8b7ae63d71c1e7fdf4" - integrity sha512-n3sPwynL1nwKi3WJ6AIsClwBMa0zTi54fn2oLU6ndfTSIO05xaznjSf15PcBZU6FNWbmN5Q6cxT4V5hGvB4taw== - string-width@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" @@ -20536,6 +20453,13 @@ strip-ansi@^6.0.0, strip-ansi@^6.0.1: dependencies: ansi-regex "^5.0.1" +strip-ansi@^7.0.0: + version "7.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.0.1.tgz#61740a08ce36b61e50e65653f07060d000975fb2" + integrity sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw== + dependencies: + ansi-regex "^6.0.1" + strip-bom@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" @@ -22373,50 +22297,47 @@ webpack-cli@3.3.12: v8-compile-cache "^2.1.1" yargs "^13.3.2" -webpack-dev-middleware@^5.3.1: - version "5.3.3" - resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-5.3.3.tgz#efae67c2793908e7311f1d9b06f2a08dcc97e51f" - integrity sha512-hj5CYrY0bZLB+eTO+x/j67Pkrquiy7kWepMHmUMoPsmcUaeEnQJqFzHJOyxgWlq746/wUuA64p9ta34Kyb01pA== +webpack-dev-middleware@^5.2.1: + version "5.2.2" + resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-5.2.2.tgz#eb5193faa5479ca1086b9f7bed68b89c731bff62" + integrity sha512-DjZyYrsHhkikAFNvSNKrpnziXukU1EChFAh9j4LAm6ndPLPW8cN0KhM7T+RAiOqsQ6ABfQ8hoKIs9IWMTjov+w== dependencies: colorette "^2.0.10" - memfs "^3.4.3" + memfs "^3.2.2" mime-types "^2.1.31" range-parser "^1.2.1" schema-utils "^4.0.0" webpack-dev-server@3.11.0, webpack-dev-server@^4.3.1: - version "4.9.1" - resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-4.9.1.tgz#184607b0287c791aeaa45e58e8fe75fcb4d7e2a8" - integrity sha512-CTMfu2UMdR/4OOZVHRpdy84pNopOuigVIsRbGX3LVDMWNP8EUgC5mUBMErbwBlHTEX99ejZJpVqrir6EXAEajA== - dependencies: - "@types/bonjour" "^3.5.9" - "@types/connect-history-api-fallback" "^1.3.5" - "@types/express" "^4.17.13" - "@types/serve-index" "^1.9.1" - "@types/sockjs" "^0.3.33" - "@types/ws" "^8.5.1" + version "4.6.0" + resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-4.6.0.tgz#e8648601c440172d9b6f248d28db98bed335315a" + integrity sha512-oojcBIKvx3Ya7qs1/AVWHDgmP1Xml8rGsEBnSobxU/UJSX1xP1GPM3MwsAnDzvqcVmVki8tV7lbcsjEjk0PtYg== + dependencies: ansi-html-community "^0.0.8" - bonjour-service "^1.0.11" - chokidar "^3.5.3" + bonjour "^3.5.0" + chokidar "^3.5.2" colorette "^2.0.10" compression "^1.7.4" connect-history-api-fallback "^1.6.0" default-gateway "^6.0.3" - express "^4.17.3" + del "^6.0.0" + express "^4.17.1" graceful-fs "^4.2.6" html-entities "^2.3.2" - http-proxy-middleware "^2.0.3" + http-proxy-middleware "^2.0.0" ipaddr.js "^2.0.1" open "^8.0.9" p-retry "^4.5.0" - rimraf "^3.0.2" + portfinder "^1.0.28" schema-utils "^4.0.0" - selfsigned "^2.0.1" + selfsigned "^1.10.11" serve-index "^1.9.1" - sockjs "^0.3.24" + sockjs "^0.3.21" spdy "^4.0.2" - webpack-dev-middleware "^5.3.1" - ws "^8.4.2" + strip-ansi "^7.0.0" + url "^0.11.0" + webpack-dev-middleware "^5.2.1" + ws "^8.1.0" webpack-manifest-plugin@~2.2.0: version "2.2.0" @@ -22767,12 +22688,7 @@ ws@^7, ws@^7.2.0, ws@^7.4.0, ws@^7.4.5, ws@^7.4.6, ws@^7.5.1: resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.8.tgz#ac2729881ab9e7cbaf8787fe3469a48c5c7f636a" integrity sha512-ri1Id1WinAX5Jqn9HejiGb8crfRio0Qgu8+MtL36rlTA6RLsMdWt1Az/19A2Qij6uSHUMphEFaTKa4WG+UNHNw== -ws@^8.4.2: - version "8.7.0" - resolved "https://registry.yarnpkg.com/ws/-/ws-8.7.0.tgz#eaf9d874b433aa00c0e0d8752532444875db3957" - integrity sha512-c2gsP0PRwcLFzUiA8Mkr37/MI7ilIlHQxaEAtd0uNMbVMoy8puJyafRlm0bV9MbGSabUPeLrRRaqIBcFcA2Pqg== - -ws@^8.5.0: +ws@^8.1.0, ws@^8.5.0: version "8.5.0" resolved "https://registry.yarnpkg.com/ws/-/ws-8.5.0.tgz#bfb4be96600757fe5382de12c670dab984a1ed4f" integrity sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg==