diff --git a/jest.config.native.js b/jest.config.native.js index 564127d86c2..66cf9fa3196 100644 --- a/jest.config.native.js +++ b/jest.config.native.js @@ -34,12 +34,11 @@ module.exports = { '\\.(js|jsx|ts|tsx)$': ['babel-jest', babelConfig], }, transformIgnorePatterns: [ - 'node_modules/(?!((jest-)?react-native|@react-native(-community)?)|expo(nent)?|@expo(nent)?/.*|@expo-google-fonts/.*|react-navigation|@react-navigation/.*|@unimodules/.*|unimodules|sentry-expo|native-base|react-native-svg)', + 'node_modules/(?!((jest-)?react-native|@react-native(-community)?)|expo(nent)?|@expo(nent)?/.*|@expo-google-fonts/.*|react-navigation|@react-navigation/.*|@sentry/react-native|native-base|react-native-svg)', ], setupFiles: [ '/../../node_modules/@shopify/react-native-skia/jestSetup.js', '/../../node_modules/react-native-gesture-handler/jestSetup.js', - '/../../suite-native/test-utils/src/setupReactReanimatedMock.js', '/../../suite-native/test-utils/src/atomsMock.js', '/../../suite-native/test-utils/src/expoMock.js', '/../../suite-native/test-utils/src/walletSdkMock.js', diff --git a/package.json b/package.json index d5d58033523..cb86d201e7f 100644 --- a/package.json +++ b/package.json @@ -134,7 +134,7 @@ "globals": "^15.11.0", "jest": "29.7.0", "jest-environment-jsdom": "29.7.0", - "jest-expo": "^50.0.2", + "jest-expo": "^52.0.1", "metro-react-native-babel-preset": "0.77.0", "node-fetch": "^2.6.4", "nx": "^18.0.3", diff --git a/packages/react-native-usb/src/ReactNativeUsbModule.ts b/packages/react-native-usb/src/ReactNativeUsbModule.ts index fafa28a46b9..547b7433971 100644 --- a/packages/react-native-usb/src/ReactNativeUsbModule.ts +++ b/packages/react-native-usb/src/ReactNativeUsbModule.ts @@ -1,5 +1,24 @@ import { requireNativeModule } from 'expo-modules-core'; +import { NativeModule } from 'expo'; + +import { NativeDevice } from './ReactNativeUsb.types'; + +type DeviceEvents = { + onDeviceConnect: (device: NativeDevice | null) => void; + onDeviceDisconnect: (device: NativeDevice | null) => void; +}; + +declare class ReactNativeUsbModuleDeclaration extends NativeModule { + open: (deviceName: string) => Promise; + close: (deviceName: string) => Promise; + claimInterface: (deviceName: string, interfaceNumber: number) => Promise; + releaseInterface: (deviceName: string, interfaceNumber: number) => Promise; + selectConfiguration: (deviceName: string, configurationValue: number) => Promise; + transferIn: (deviceName: string, endpointNumber: number, length: number) => Promise; + transferOut: (deviceName: string, endpointNumber: number, data: string) => Promise; +} // It loads the native module object from the JSI or falls back to // the bridge module (from NativeModulesProxy) if the remote debugger is on. -export const ReactNativeUsbModule = requireNativeModule('ReactNativeUsb'); +export const ReactNativeUsbModule = + requireNativeModule('ReactNativeUsb'); diff --git a/packages/react-native-usb/src/index.ts b/packages/react-native-usb/src/index.ts index a5510ce839f..51e9425ad7c 100644 --- a/packages/react-native-usb/src/index.ts +++ b/packages/react-native-usb/src/index.ts @@ -1,6 +1,3 @@ -/* eslint-disable no-console */ -import { NativeModulesProxy, EventEmitter, Subscription } from 'expo-modules-core'; - import { ReactNativeUsbModule } from './ReactNativeUsbModule'; import { NativeDevice, OnConnectEvent, WebUSBDevice } from './ReactNativeUsb.types'; @@ -8,12 +5,11 @@ const DEBUG_LOGS = false; const debugLog = (...args: any[]) => { if (DEBUG_LOGS) { + // eslint-disable-next-line no-console console.log(...args); } }; -const emitter = new EventEmitter(ReactNativeUsbModule ?? NativeModulesProxy.ReactNativeUsb); - const open = (deviceName: string) => ReactNativeUsbModule.open(deviceName); const close = (deviceName: string) => ReactNativeUsbModule.close(deviceName); @@ -105,53 +101,45 @@ const createWebUSBDevice = (device: NativeDevice): WebUSBDevice => ({ // and not send onConnect event if device is already connected. const connectedDevices = new Map(); -export function onDeviceConnected(listener: (event: OnConnectEvent) => void): Subscription { - return emitter.addListener('onDeviceConnect', event => { - if (!event) { - console.error('JS: USB onDeviceConnect: event is null'); - // just for debugging purposes now - alert('JS: USB onDeviceConnect: event is null'); +export function onDeviceConnected(listener: (event: OnConnectEvent) => void) { + return ReactNativeUsbModule.addListener('onDeviceConnect', (device: NativeDevice | null) => { + if (!device) { + debugLog('JS: USB onDeviceConnect: device is null'); + console.error('JS: USB onDeviceConnect: device is null'); + alert('JS: USB onDeviceConnect: device is null'); return; } - if (connectedDevices.has(event.deviceName)) { + if (connectedDevices.has(device.deviceName)) { + console.warn('JS: USB onDeviceConnect: device already connected'); debugLog('JS: USB onDeviceConnect: device already connected'); return; } - const eventPayload = { - device: createWebUSBDevice(event as NativeDevice), - }; - - debugLog('JS: USB onDeviceConnect', eventPayload); - - connectedDevices.set(event.deviceName, eventPayload.device); + const webUSBDevice = createWebUSBDevice(device); + connectedDevices.set(device.deviceName, webUSBDevice); - return listener(eventPayload as any); + const event = { device: webUSBDevice, ...new Event('onconnect') } as OnConnectEvent; + listener(event); }); } -export function onDeviceDisconnect(listener: (event: OnConnectEvent) => void): Subscription { - return emitter.addListener('onDeviceDisconnect', event => { - if (!event) { - console.error('JS: USB onDeviceConnect: event is null'); - // just for debugging purposes now - alert('JS: USB onDeviceConnect: event is null'); +export function onDeviceDisconnect(listener: (event: OnConnectEvent) => void) { + return ReactNativeUsbModule.addListener('onDeviceDisconnect', (device: NativeDevice | null) => { + if (!device) { + debugLog('JS: USB onDeviceDisconnect: device is null'); + console.error('JS: USB onDeviceDisconnect: device is null'); + alert('JS: USB onDeviceDisconnect: device is null'); return; } - const eventPayload = { - device: createWebUSBDevice(event as NativeDevice), - }; - - debugLog('JS: USB onDeviceDisconnect', eventPayload); - - connectedDevices.delete(event.deviceName); - - return listener(eventPayload as any); + const webUSBDevice = createWebUSBDevice(device); + connectedDevices.delete(device.deviceName); + const event = { device: webUSBDevice, ...new Event('ondisconnect') } as OnConnectEvent; + listener(event); }); } diff --git a/suite-native/app/app.config.ts b/suite-native/app/app.config.ts index 18ea0a83ab7..810c87fa72f 100644 --- a/suite-native/app/app.config.ts +++ b/suite-native/app/app.config.ts @@ -160,7 +160,7 @@ export default ({ config }: ConfigContext): ExpoConfig => { slug: appSlugs[buildType], owner: appOwners[buildType], version: suiteNativeVersion, - runtimeVersion: '10', + runtimeVersion: '11', ...(buildType === 'production' ? {} : { diff --git a/suite-native/app/package.json b/suite-native/app/package.json index c0248daa448..9d456017334 100644 --- a/suite-native/app/package.json +++ b/suite-native/app/package.json @@ -29,7 +29,7 @@ "@react-navigation/native": "6.1.18", "@react-navigation/native-stack": "6.11.0", "@reduxjs/toolkit": "1.9.5", - "@sentry/integrations": "^7.114.0", + "@sentry/core": "8.34.0", "@sentry/react-native": "6.1.0", "@shopify/flash-list": "^1.7.2", "@shopify/react-native-skia": "^1.5.3", @@ -108,7 +108,7 @@ "react": "18.2.0", "react-intl": "^6.6.8", "react-native": "0.76.1", - "react-native-gesture-handler": "^2.20.2", + "react-native-gesture-handler": "^2.21.0", "react-native-keyboard-aware-scroll-view": "0.9.5", "react-native-mmkv": "2.12.2", "react-native-reanimated": "3.16.1", diff --git a/suite-native/app/src/SentryProvider.tsx b/suite-native/app/src/SentryProvider.tsx index 4fd07b6cfba..22dec3e9418 100644 --- a/suite-native/app/src/SentryProvider.tsx +++ b/suite-native/app/src/SentryProvider.tsx @@ -2,7 +2,7 @@ import { useEffect, ReactNode } from 'react'; import { useSelector } from 'react-redux'; import * as Sentry from '@sentry/react-native'; -import { captureConsoleIntegration } from '@sentry/integrations'; +import { captureConsoleIntegration } from '@sentry/core'; import { selectIsAnalyticsEnabled } from '@suite-common/analytics'; import { getEnv, isDebugEnv, isDevelopEnv } from '@suite-native/config'; diff --git a/suite-native/app/src/snow/Snow.tsx b/suite-native/app/src/snow/Snow.tsx index 89e04043a06..259bea88ffa 100644 --- a/suite-native/app/src/snow/Snow.tsx +++ b/suite-native/app/src/snow/Snow.tsx @@ -3,7 +3,7 @@ If you found yourself here, congratulations! You have found an easter egg. Merry Christmas and Happy New Year! */ import React, { useCallback, useEffect } from 'react'; -import { AppState, Dimensions, StyleSheet, TextStyle, View } from 'react-native'; +import { AppState, Dimensions, StyleSheet, View } from 'react-native'; import { Snowflake } from './Snowflake'; @@ -40,9 +40,7 @@ const isChristmas = () => { return month === 11 && day > 22 && day < 26; }; -export const Snow: React.FC<{ - snowflakesStyle?: TextStyle; -}> = ({ snowflakesStyle }) => { +export const Snow: React.FC = () => { const [letItSnow, setLetItSnow] = React.useState(false); const tryToMakeItSnow = useCallback(() => { @@ -84,7 +82,6 @@ export const Snow: React.FC<{ offset={offset} fallDelay={fallDelay} shakeDelay={shakeDelay} - style={snowflakesStyle} /> ); })} diff --git a/suite-native/app/src/snow/Snowflake.tsx b/suite-native/app/src/snow/Snowflake.tsx index 96dd61d7983..c380618ca66 100644 --- a/suite-native/app/src/snow/Snowflake.tsx +++ b/suite-native/app/src/snow/Snowflake.tsx @@ -2,7 +2,7 @@ /* eslint-disable @typescript-eslint/no-use-before-define */ import React, { useCallback, useEffect } from 'react'; -import { StyleSheet, Dimensions, TextStyle, DimensionValue } from 'react-native'; +import { StyleSheet, Dimensions, DimensionValue } from 'react-native'; import Animated, { Easing, interpolate, @@ -41,7 +41,6 @@ export const Snowflake: React.FC<{ shakeDuration?: number; fallDelay: number; shakeDelay: number; - style?: TextStyle; }> = props => { const size = props.size || 12; const amplitude = props.amplitude || 60; @@ -105,15 +104,11 @@ export const Snowflake: React.FC<{ if (props.glyph === 'btc') { return ( - + ); } - return ( - - {props.glyph || '❅'} - - ); + return {props.glyph || '❅'}; }; diff --git a/suite-native/atoms/package.json b/suite-native/atoms/package.json index d883327ec9b..d1f97ecb4ba 100644 --- a/suite-native/atoms/package.json +++ b/suite-native/atoms/package.json @@ -28,7 +28,7 @@ "lottie-react-native": "^7.1.0", "react": "18.2.0", "react-native": "0.76.1", - "react-native-gesture-handler": "^2.20.2", + "react-native-gesture-handler": "^2.21.0", "react-native-reanimated": "3.16.1", "react-native-safe-area-context": "^4.14.0" } diff --git a/suite-native/notifications/package.json b/suite-native/notifications/package.json index c17ce81a8c3..4959de23bf5 100644 --- a/suite-native/notifications/package.json +++ b/suite-native/notifications/package.json @@ -25,7 +25,7 @@ "@trezor/styles": "workspace:*", "react": "18.2.0", "react-native": "0.76.1", - "react-native-gesture-handler": "^2.20.2", + "react-native-gesture-handler": "^2.21.0", "react-native-reanimated": "3.16.1", "react-redux": "8.0.7" } diff --git a/suite-native/react-native-graph/package.json b/suite-native/react-native-graph/package.json index 76a9f55c8f5..31dafc785d9 100644 --- a/suite-native/react-native-graph/package.json +++ b/suite-native/react-native-graph/package.json @@ -16,7 +16,7 @@ "@types/react": "18.2.79", "react": "18.2.0", "react-native": "0.76.1", - "react-native-gesture-handler": "^2.20.2", + "react-native-gesture-handler": "^2.21.0", "react-native-reanimated": "3.16.1" }, "devDependencies": { diff --git a/suite-native/receive/package.json b/suite-native/receive/package.json index 27034b4e5b5..a17e3b8361d 100644 --- a/suite-native/receive/package.json +++ b/suite-native/receive/package.json @@ -37,7 +37,7 @@ "@trezor/theme": "workspace:*", "react": "18.2.0", "react-native": "0.76.1", - "react-native-gesture-handler": "^2.20.2", + "react-native-gesture-handler": "^2.21.0", "react-native-reanimated": "3.16.1", "react-redux": "8.0.7" } diff --git a/suite-native/test-utils/package.json b/suite-native/test-utils/package.json index 6d3125243f8..c925cd92080 100644 --- a/suite-native/test-utils/package.json +++ b/suite-native/test-utils/package.json @@ -10,12 +10,10 @@ "type-check": "yarn g:tsc --build" }, "dependencies": { - "@testing-library/react-native": "^11.0.0", + "@testing-library/react-native": "^12.8.1", "@trezor/styles": "workspace:*", "@trezor/theme": "workspace:*", "react": "18.2.0", - "react-native-gesture-handler": "^2.20.2", - "react-native-reanimated": "3.16.1", "react-native-safe-area-context": "^4.14.0" } } diff --git a/suite-native/test-utils/src/setupReactReanimatedMock.js b/suite-native/test-utils/src/setupReactReanimatedMock.js deleted file mode 100644 index c71bcee1286..00000000000 --- a/suite-native/test-utils/src/setupReactReanimatedMock.js +++ /dev/null @@ -1,16 +0,0 @@ -// NOTE: This file needs to be used from native jest config (jest.config.native.js) - -import 'react-native-gesture-handler/jestSetup'; - -jest.mock('react-native-reanimated', () => { - const Reanimated = require('react-native-reanimated/mock'); - - // The mock for `call` immediately calls the callback which is incorrect - // So we override it with a no-op - Reanimated.default.call = () => {}; - - return Reanimated; -}); - -// Silence the warning: Animated: `useNativeDriver` is not supported because the native animated module is missing -jest.mock('react-native/Libraries/Animated/NativeAnimatedHelper'); diff --git a/suite-native/transactions/package.json b/suite-native/transactions/package.json index d47f5cd2af2..4a44c7adf40 100644 --- a/suite-native/transactions/package.json +++ b/suite-native/transactions/package.json @@ -40,7 +40,7 @@ "@trezor/utils": "workspace:*", "react": "18.2.0", "react-native": "0.76.1", - "react-native-gesture-handler": "^2.20.2", + "react-native-gesture-handler": "^2.21.0", "react-native-reanimated": "3.16.1", "react-redux": "8.0.7" } diff --git a/yarn.lock b/yarn.lock index 8b70df6a96c..20e2dfb28d6 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3605,38 +3605,6 @@ __metadata: languageName: node linkType: hard -"@expo/config-plugins@npm:~7.8.2": - version: 7.8.4 - resolution: "@expo/config-plugins@npm:7.8.4" - dependencies: - "@expo/config-types": "npm:^50.0.0-alpha.1" - "@expo/fingerprint": "npm:^0.6.0" - "@expo/json-file": "npm:~8.3.0" - "@expo/plist": "npm:^0.1.0" - "@expo/sdk-runtime-versions": "npm:^1.0.0" - "@react-native/normalize-color": "npm:^2.0.0" - chalk: "npm:^4.1.2" - debug: "npm:^4.3.1" - find-up: "npm:~5.0.0" - getenv: "npm:^1.0.0" - glob: "npm:7.1.6" - resolve-from: "npm:^5.0.0" - semver: "npm:^7.5.3" - slash: "npm:^3.0.0" - slugify: "npm:^1.6.6" - xcode: "npm:^3.0.1" - xml2js: "npm:0.6.0" - checksum: 10/1931a524300a4269e79fa7716bd41df700d56d1aa77ab9cc4eb73c2d48ee1c5594513f9c17469755f204c8567650558a7d11a68d3936690349d095c32a972ced - languageName: node - linkType: hard - -"@expo/config-types@npm:^50.0.0, @expo/config-types@npm:^50.0.0-alpha.1": - version: 50.0.0 - resolution: "@expo/config-types@npm:50.0.0" - checksum: 10/6abedbd688aafc2ceb305df720a43acdc627ae13c3d7e98636f6305be143f57796ac6eb2e101272346877a667e9d803b08dd7795e937504922c282862b0aa12c - languageName: node - linkType: hard - "@expo/config-types@npm:^52.0.0": version: 52.0.1 resolution: "@expo/config-types@npm:52.0.1" @@ -3644,7 +3612,7 @@ __metadata: languageName: node linkType: hard -"@expo/config@npm:10.0.3, @expo/config@npm:~10.0.0, @expo/config@npm:~10.0.2": +"@expo/config@npm:10.0.3": version: 10.0.3 resolution: "@expo/config@npm:10.0.3" dependencies: @@ -3665,22 +3633,24 @@ __metadata: languageName: node linkType: hard -"@expo/config@npm:~8.5.0": - version: 8.5.4 - resolution: "@expo/config@npm:8.5.4" +"@expo/config@npm:~10.0.0, @expo/config@npm:~10.0.2, @expo/config@npm:~10.0.4": + version: 10.0.4 + resolution: "@expo/config@npm:10.0.4" dependencies: "@babel/code-frame": "npm:~7.10.4" - "@expo/config-plugins": "npm:~7.8.2" - "@expo/config-types": "npm:^50.0.0" - "@expo/json-file": "npm:^8.2.37" + "@expo/config-plugins": "npm:~9.0.0" + "@expo/config-types": "npm:^52.0.0" + "@expo/json-file": "npm:^9.0.0" + deepmerge: "npm:^4.3.1" getenv: "npm:^1.0.0" - glob: "npm:7.1.6" + glob: "npm:^10.4.2" require-from-string: "npm:^2.0.2" resolve-from: "npm:^5.0.0" - semver: "npm:7.5.3" + resolve-workspace-root: "npm:^2.0.0" + semver: "npm:^7.6.0" slugify: "npm:^1.3.4" - sucrase: "npm:3.34.0" - checksum: 10/15f3f32f08f39e986ed20ba95075a490af2c7c83234bb132e0e34dbc846c63c2a2a0e766bdfe5a8fac20433b848072e2079bba67cadb9e3d7ef4cdb1f50dcdcb + sucrase: "npm:3.35.0" + checksum: 10/433578b50dc314e952c090378c539d843cd14ea2490bbbcc9b6169ca00612d652709f2f0776aae5c4e2df04586920e99f798cc090073b4466d4e7b07eaeacf19 languageName: node linkType: hard @@ -3737,23 +3707,6 @@ __metadata: languageName: node linkType: hard -"@expo/fingerprint@npm:^0.6.0": - version: 0.6.0 - resolution: "@expo/fingerprint@npm:0.6.0" - dependencies: - "@expo/spawn-async": "npm:^1.5.0" - chalk: "npm:^4.1.2" - debug: "npm:^4.3.4" - find-up: "npm:^5.0.0" - minimatch: "npm:^3.0.4" - p-limit: "npm:^3.1.0" - resolve-from: "npm:^5.0.0" - bin: - fingerprint: bin/cli.js - checksum: 10/68d41f15d513d0df47cbf87cc12eddfa5dc1b98bcfb349c7c21c96f5c7604fde860442f59ecf271ccf207f6e2c998a97061affbffac4315b81a65942438ad376 - languageName: node - linkType: hard - "@expo/image-utils@npm:^0.6.0": version: 0.6.3 resolution: "@expo/image-utils@npm:0.6.3" @@ -3772,7 +3725,7 @@ __metadata: languageName: node linkType: hard -"@expo/json-file@npm:^8.2.37, @expo/json-file@npm:^8.3.0, @expo/json-file@npm:~8.3.0": +"@expo/json-file@npm:^8.3.0": version: 8.3.3 resolution: "@expo/json-file@npm:8.3.3" dependencies: @@ -3850,17 +3803,6 @@ __metadata: languageName: node linkType: hard -"@expo/plist@npm:^0.1.0": - version: 0.1.0 - resolution: "@expo/plist@npm:0.1.0" - dependencies: - "@xmldom/xmldom": "npm:~0.7.7" - base64-js: "npm:^1.2.3" - xmlbuilder: "npm:^14.0.0" - checksum: 10/63e2cf1f6cba9add8965c47f1e9dbc1d6617d50fe3d540c2d23cc43b15527fc1f0703a29feb93cf525ff5d225a31e9960815b0c402ec72477d52628f27ff3451 - languageName: node - linkType: hard - "@expo/plist@npm:^0.2.0": version: 0.2.0 resolution: "@expo/plist@npm:0.2.0" @@ -4537,7 +4479,7 @@ __metadata: languageName: node linkType: hard -"@jest/globals@npm:^29.7.0": +"@jest/globals@npm:^29.2.1, @jest/globals@npm:^29.7.0": version: 29.7.0 resolution: "@jest/globals@npm:29.7.0" dependencies: @@ -6730,13 +6672,6 @@ __metadata: languageName: node linkType: hard -"@react-native/normalize-color@npm:^2.0.0": - version: 2.1.0 - resolution: "@react-native/normalize-color@npm:2.1.0" - checksum: 10/a72b98538e6b7e265fb0669b8767d5f788777fb1a0ac1df7b0c82d8b3a804c8122aa7b819688c5e36fcf90b5ba93050b0070e29d3f0d70ab9530c2abd2bb9f9e - languageName: node - linkType: hard - "@react-native/normalize-colors@npm:0.76.1": version: 0.76.1 resolution: "@react-native/normalize-colors@npm:0.76.1" @@ -7520,7 +7455,7 @@ __metadata: languageName: node linkType: hard -"@sentry/core@npm:7.119.0, @sentry/core@npm:^7.100.1": +"@sentry/core@npm:7.119.0": version: 7.119.0 resolution: "@sentry/core@npm:7.119.0" dependencies: @@ -7530,6 +7465,16 @@ __metadata: languageName: node linkType: hard +"@sentry/core@npm:7.120.0, @sentry/core@npm:^7.100.1": + version: 7.120.0 + resolution: "@sentry/core@npm:7.120.0" + dependencies: + "@sentry/types": "npm:7.120.0" + "@sentry/utils": "npm:7.120.0" + checksum: 10/dbf734fffce243c4c1d187c81449b1c89c89f57b5db08d31c835d6bc784a9bbcf969c7da5bc2604908a74641b0bc482f6596e9b32d572679a5554471e3f0ed85 + languageName: node + linkType: hard + "@sentry/core@npm:8.34.0": version: 8.34.0 resolution: "@sentry/core@npm:8.34.0" @@ -7567,7 +7512,7 @@ __metadata: languageName: node linkType: hard -"@sentry/integrations@npm:7.119.0, @sentry/integrations@npm:^7.100.1, @sentry/integrations@npm:^7.114.0": +"@sentry/integrations@npm:7.119.0": version: 7.119.0 resolution: "@sentry/integrations@npm:7.119.0" dependencies: @@ -7579,6 +7524,18 @@ __metadata: languageName: node linkType: hard +"@sentry/integrations@npm:^7.100.1": + version: 7.120.0 + resolution: "@sentry/integrations@npm:7.120.0" + dependencies: + "@sentry/core": "npm:7.120.0" + "@sentry/types": "npm:7.120.0" + "@sentry/utils": "npm:7.120.0" + localforage: "npm:^1.8.1" + checksum: 10/9e8b5fb1d7277c6b64ef895aa4bc9a0e84f21981a11532342ff0ab9d51c0a2b6dedd966f989fd19770ab188308f7c95c68f72ee8936c8d6224548190f107dc4f + languageName: node + linkType: hard + "@sentry/node@npm:7.112.0, @sentry/node@npm:^7.60.0": version: 7.112.0 resolution: "@sentry/node@npm:7.112.0" @@ -7662,13 +7619,20 @@ __metadata: languageName: node linkType: hard -"@sentry/types@npm:7.119.0, @sentry/types@npm:^7.100.1": +"@sentry/types@npm:7.119.0": version: 7.119.0 resolution: "@sentry/types@npm:7.119.0" checksum: 10/231c567f7717d1d0a49fdc8a627aa28931b2b41795b1faed3c3308874b7dfb8781846b8e8e4fa7ce197e254a566c773848d4c301200611cc8583dae2f9859e99 languageName: node linkType: hard +"@sentry/types@npm:7.120.0, @sentry/types@npm:^7.100.1": + version: 7.120.0 + resolution: "@sentry/types@npm:7.120.0" + checksum: 10/858420bc88c7c394bdcbaf373a2fad3e5c7afbd31e2a5e8a406cb97dc38ea3b7dc35918b8f0ebf02a1cf868e22e25f6bfc37e3d90a24f713455549d8df6f5c0e + languageName: node + linkType: hard + "@sentry/types@npm:8.34.0": version: 8.34.0 resolution: "@sentry/types@npm:8.34.0" @@ -7685,7 +7649,7 @@ __metadata: languageName: node linkType: hard -"@sentry/utils@npm:7.119.0, @sentry/utils@npm:^7.60.0": +"@sentry/utils@npm:7.119.0": version: 7.119.0 resolution: "@sentry/utils@npm:7.119.0" dependencies: @@ -7694,6 +7658,15 @@ __metadata: languageName: node linkType: hard +"@sentry/utils@npm:7.120.0, @sentry/utils@npm:^7.60.0": + version: 7.120.0 + resolution: "@sentry/utils@npm:7.120.0" + dependencies: + "@sentry/types": "npm:7.120.0" + checksum: 10/d4fd729732f5811d90a8a524903c6c00a84fa14c2ed4d1fb34aa2d02f6182b09400b5e042a4f2b6fb44e66fa10d650b613b098b3ea12b3adb5cb133400459829 + languageName: node + linkType: hard + "@sentry/utils@npm:8.34.0": version: 8.34.0 resolution: "@sentry/utils@npm:8.34.0" @@ -9181,7 +9154,7 @@ __metadata: "@react-navigation/native": "npm:6.1.18" "@react-navigation/native-stack": "npm:6.11.0" "@reduxjs/toolkit": "npm:1.9.5" - "@sentry/integrations": "npm:^7.114.0" + "@sentry/core": "npm:8.34.0" "@sentry/react-native": "npm:6.1.0" "@shopify/flash-list": "npm:^1.7.2" "@shopify/react-native-skia": "npm:^1.5.3" @@ -9270,7 +9243,7 @@ __metadata: react: "npm:18.2.0" react-intl: "npm:^6.6.8" react-native: "npm:0.76.1" - react-native-gesture-handler: "npm:^2.20.2" + react-native-gesture-handler: "npm:^2.21.0" react-native-keyboard-aware-scroll-view: "npm:0.9.5" react-native-mmkv: "npm:2.12.2" react-native-reanimated: "npm:3.16.1" @@ -9337,7 +9310,7 @@ __metadata: lottie-react-native: "npm:^7.1.0" react: "npm:18.2.0" react-native: "npm:0.76.1" - react-native-gesture-handler: "npm:^2.20.2" + react-native-gesture-handler: "npm:^2.21.0" react-native-reanimated: "npm:3.16.1" react-native-safe-area-context: "npm:^4.14.0" languageName: unknown @@ -10188,7 +10161,7 @@ __metadata: "@trezor/styles": "workspace:*" react: "npm:18.2.0" react-native: "npm:0.76.1" - react-native-gesture-handler: "npm:^2.20.2" + react-native-gesture-handler: "npm:^2.21.0" react-native-reanimated: "npm:3.16.1" react-redux: "npm:8.0.7" languageName: unknown @@ -10225,7 +10198,7 @@ __metadata: "@types/react": "npm:18.2.79" react: "npm:18.2.0" react-native: "npm:0.76.1" - react-native-gesture-handler: "npm:^2.20.2" + react-native-gesture-handler: "npm:^2.21.0" react-native-reanimated: "npm:3.16.1" languageName: unknown linkType: soft @@ -10261,7 +10234,7 @@ __metadata: "@trezor/theme": "workspace:*" react: "npm:18.2.0" react-native: "npm:0.76.1" - react-native-gesture-handler: "npm:^2.20.2" + react-native-gesture-handler: "npm:^2.21.0" react-native-reanimated: "npm:3.16.1" react-redux: "npm:8.0.7" languageName: unknown @@ -10351,12 +10324,10 @@ __metadata: version: 0.0.0-use.local resolution: "@suite-native/test-utils@workspace:suite-native/test-utils" dependencies: - "@testing-library/react-native": "npm:^11.0.0" + "@testing-library/react-native": "npm:^12.8.1" "@trezor/styles": "workspace:*" "@trezor/theme": "workspace:*" react: "npm:18.2.0" - react-native-gesture-handler: "npm:^2.20.2" - react-native-reanimated: "npm:3.16.1" react-native-safe-area-context: "npm:^4.14.0" languageName: unknown linkType: soft @@ -10440,7 +10411,7 @@ __metadata: "@trezor/utils": "workspace:*" react: "npm:18.2.0" react-native: "npm:0.76.1" - react-native-gesture-handler: "npm:^2.20.2" + react-native-gesture-handler: "npm:^2.21.0" react-native-reanimated: "npm:3.16.1" react-redux: "npm:8.0.7" languageName: unknown @@ -10673,20 +10644,22 @@ __metadata: languageName: node linkType: hard -"@testing-library/react-native@npm:^11.0.0": - version: 11.2.0 - resolution: "@testing-library/react-native@npm:11.2.0" +"@testing-library/react-native@npm:^12.8.1": + version: 12.8.1 + resolution: "@testing-library/react-native@npm:12.8.1" dependencies: - pretty-format: "npm:^29.0.3" + jest-matcher-utils: "npm:^29.7.0" + pretty-format: "npm:^29.7.0" + redent: "npm:^3.0.0" peerDependencies: jest: ">=28.0.0" - react: ">=16.0.0" + react: ">=16.8.0" react-native: ">=0.59" - react-test-renderer: ">=16.0.0" + react-test-renderer: ">=16.8.0" peerDependenciesMeta: jest: optional: true - checksum: 10/e41cd7e80ac25164b87f331852dff54d7e4219bb7df93fec80bf3d9cc898ba2bd34f9717eef868d7c9bde1cd3b4eeba3aced8929befc5c9d3c388da9ee9a0150 + checksum: 10/eaa09cb560a469c686b8eb0ee8085bb54654a481e6bcf9eb5bc7b756c5303ca6b5c17ab2ef1479b8c245ac153ac69907d47c30ec9b496a29a6e459baa3d3f5d9 languageName: node linkType: hard @@ -14323,6 +14296,15 @@ __metadata: languageName: node linkType: hard +"acorn-loose@npm:^8.3.0": + version: 8.4.0 + resolution: "acorn-loose@npm:8.4.0" + dependencies: + acorn: "npm:^8.11.0" + checksum: 10/a005b2bee62e2575963b311ab7c45701062115a62e4286162498b1b198a6f884ceea186592ce41a27d5f382a5b640f1dffb37dd0e6e7848a74dd36e4b0a55105 + languageName: node + linkType: hard + "acorn-node@npm:^1.3.0": version: 1.8.2 resolution: "acorn-node@npm:1.8.2" @@ -14357,7 +14339,7 @@ __metadata: languageName: node linkType: hard -"acorn@npm:^8.0.0, acorn@npm:^8.0.4, acorn@npm:^8.1.0, acorn@npm:^8.10.0, acorn@npm:^8.11.3, acorn@npm:^8.14.0, acorn@npm:^8.4.1, acorn@npm:^8.8.1, acorn@npm:^8.8.2, acorn@npm:^8.9.0": +"acorn@npm:^8.0.0, acorn@npm:^8.0.4, acorn@npm:^8.1.0, acorn@npm:^8.10.0, acorn@npm:^8.11.0, acorn@npm:^8.11.3, acorn@npm:^8.14.0, acorn@npm:^8.4.1, acorn@npm:^8.8.1, acorn@npm:^8.8.2, acorn@npm:^8.9.0": version: 8.14.0 resolution: "acorn@npm:8.14.0" bin: @@ -19545,16 +19527,16 @@ __metadata: languageName: node linkType: hard -"detox-copilot@npm:^0.0.0": - version: 0.0.0 - resolution: "detox-copilot@npm:0.0.0" - checksum: 10/38f18faa652ebfc0176feeb40e00c49af3f1880af5b83d290a80be49f59099942e146b57ccdd5b71621f93b4ed2ab236b452371f20d5aabbfa11777e702025d2 +"detox-copilot@npm:^0.0.24": + version: 0.0.24 + resolution: "detox-copilot@npm:0.0.24" + checksum: 10/828c6b07200480e29f09cf94fd433858cb99d04f925c673ed8e790deac04736f98372c2bee76a65fdd66cfbdf83689d4ab17797297f11a527831fb4b49401a72 languageName: node linkType: hard "detox@npm:^20.25.6": - version: 20.26.1 - resolution: "detox@npm:20.26.1" + version: 20.28.0 + resolution: "detox@npm:20.28.0" dependencies: ajv: "npm:^8.6.3" bunyan: "npm:^1.8.12" @@ -19562,7 +19544,7 @@ __metadata: caf: "npm:^15.0.1" chalk: "npm:^4.0.0" child-process-promise: "npm:^2.2.0" - detox-copilot: "npm:^0.0.0" + detox-copilot: "npm:^0.0.24" execa: "npm:^5.1.1" find-up: "npm:^5.0.0" fs-extra: "npm:^11.0.0" @@ -19599,7 +19581,7 @@ __metadata: optional: true bin: detox: local-cli/cli.js - checksum: 10/81dc8a93f0ae9b566324f40ea555e0c35f6e2c3e4c5abe77436554e7a9988dee83b036970d5360942836204021eed5e0407692eba1741cb6dd2584fefaf7dc01 + checksum: 10/6ff5e83513376fbdc4010b0f181d66b107f0f4394206794395468f77bbf9e9ec51555ca5319b0d51ea9a1a80f00348d198d51130c2a02d33667f72a70ad91533 languageName: node linkType: hard @@ -22997,7 +22979,7 @@ __metadata: languageName: node linkType: hard -"find-up@npm:5.0.0, find-up@npm:^5.0.0, find-up@npm:~5.0.0": +"find-up@npm:5.0.0, find-up@npm:^5.0.0": version: 5.0.0 resolution: "find-up@npm:5.0.0" dependencies: @@ -23776,20 +23758,6 @@ __metadata: languageName: node linkType: hard -"glob@npm:7.1.6": - version: 7.1.6 - resolution: "glob@npm:7.1.6" - dependencies: - fs.realpath: "npm:^1.0.0" - inflight: "npm:^1.0.4" - inherits: "npm:2" - minimatch: "npm:^3.0.4" - once: "npm:^1.3.0" - path-is-absolute: "npm:^1.0.0" - checksum: 10/7d6ec98bc746980d5fe4d764b9c7ada727e3fbd2a7d85cd96dd95fb18638c9c54a70c692fd2ab5d68a186dc8cd9d6a4192d3df220beed891f687db179c430237 - languageName: node - linkType: hard - "glob@npm:9.3.2": version: 9.3.2 resolution: "glob@npm:9.3.2" @@ -26590,25 +26558,33 @@ __metadata: languageName: node linkType: hard -"jest-expo@npm:^50.0.2": - version: 50.0.2 - resolution: "jest-expo@npm:50.0.2" +"jest-expo@npm:^52.0.1": + version: 52.0.1 + resolution: "jest-expo@npm:52.0.1" dependencies: - "@expo/config": "npm:~8.5.0" - "@expo/json-file": "npm:^8.2.37" + "@expo/config": "npm:~10.0.4" + "@expo/json-file": "npm:^9.0.0" "@jest/create-cache-key-function": "npm:^29.2.1" + "@jest/globals": "npm:^29.2.1" babel-jest: "npm:^29.2.1" + fbemitter: "npm:^3.0.0" find-up: "npm:^5.0.0" jest-environment-jsdom: "npm:^29.2.1" + jest-snapshot: "npm:^29.2.1" jest-watch-select-projects: "npm:^2.0.0" jest-watch-typeahead: "npm:2.2.1" json5: "npm:^2.2.3" lodash: "npm:^4.17.19" - react-test-renderer: "npm:18.2.0" + react-server-dom-webpack: "npm:19.0.0-rc-6230622a1a-20240610" + react-test-renderer: "npm:18.3.1" + server-only: "npm:^0.0.1" stacktrace-js: "npm:^2.0.2" + peerDependencies: + expo: "*" + react-native: "*" bin: jest: bin/jest.js - checksum: 10/d8db0475645ebaa26689fc9ac3fbbd8c6f279f38ab8e383a4ac93e956effa34163bce29713a6cc57ab59dca9ce2b4442264f3a8244718c7085060315c7605fca + checksum: 10/eb69e4733d7dadd200ae52367522090225449db1df25095863ad11685fbf172819d4b0eecd9b9a8322a1c20e11cff53dda54fdd7c2476e3106ace8d8d52230ea languageName: node linkType: hard @@ -26831,7 +26807,7 @@ __metadata: languageName: node linkType: hard -"jest-snapshot@npm:^29.7.0": +"jest-snapshot@npm:^29.2.1, jest-snapshot@npm:^29.7.0": version: 29.7.0 resolution: "jest-snapshot@npm:29.7.0" dependencies: @@ -30827,7 +30803,7 @@ __metadata: languageName: node linkType: hard -"min-indent@npm:^1.0.1": +"min-indent@npm:^1.0.0, min-indent@npm:^1.0.1": version: 1.0.1 resolution: "min-indent@npm:1.0.1" checksum: 10/bfc6dd03c5eaf623a4963ebd94d087f6f4bbbfd8c41329a7f09706b0cb66969c4ddd336abeb587bc44bc6f08e13bf90f0b374f9d71f9f01e04adc2cd6f083ef1 @@ -31320,7 +31296,7 @@ __metadata: languageName: node linkType: hard -"neo-async@npm:^2.5.0, neo-async@npm:^2.6.2": +"neo-async@npm:^2.5.0, neo-async@npm:^2.6.1, neo-async@npm:^2.6.2": version: 2.6.2 resolution: "neo-async@npm:2.6.2" checksum: 10/1a7948fea86f2b33ec766bc899c88796a51ba76a4afc9026764aedc6e7cde692a09067031e4a1bf6db4f978ccd99e7f5b6c03fe47ad9865c3d4f99050d67e002 @@ -33870,7 +33846,7 @@ __metadata: languageName: node linkType: hard -"pretty-format@npm:^29.0.0, pretty-format@npm:^29.0.3, pretty-format@npm:^29.5.0, pretty-format@npm:^29.7.0": +"pretty-format@npm:^29.0.0, pretty-format@npm:^29.5.0, pretty-format@npm:^29.7.0": version: 29.7.0 resolution: "pretty-format@npm:29.7.0" dependencies: @@ -34695,10 +34671,10 @@ __metadata: languageName: node linkType: hard -"react-is@npm:^16.12.0 || ^17.0.0 || ^18.0.0, react-is@npm:^18.0.0, react-is@npm:^18.2.0": - version: 18.2.0 - resolution: "react-is@npm:18.2.0" - checksum: 10/200cd65bf2e0be7ba6055f647091b725a45dd2a6abef03bf2380ce701fd5edccee40b49b9d15edab7ac08a762bf83cb4081e31ec2673a5bfb549a36ba21570df +"react-is@npm:^16.12.0 || ^17.0.0 || ^18.0.0, react-is@npm:^18.0.0, react-is@npm:^18.3.1": + version: 18.3.1 + resolution: "react-is@npm:18.3.1" + checksum: 10/d5f60c87d285af24b1e1e7eaeb123ec256c3c8bdea7061ab3932e3e14685708221bf234ec50b21e10dd07f008f1b966a2730a0ce4ff67905b3872ff2042aec22 languageName: node linkType: hard @@ -34751,9 +34727,9 @@ __metadata: languageName: node linkType: hard -"react-native-gesture-handler@npm:^2.20.2": - version: 2.20.2 - resolution: "react-native-gesture-handler@npm:2.20.2" +"react-native-gesture-handler@npm:^2.21.0": + version: 2.21.0 + resolution: "react-native-gesture-handler@npm:2.21.0" dependencies: "@egjs/hammerjs": "npm:^2.0.17" hoist-non-react-statics: "npm:^3.3.0" @@ -34762,7 +34738,7 @@ __metadata: peerDependencies: react: "*" react-native: "*" - checksum: 10/64ab125c539ca8c275f5d305f5e11d366e6098d9e24e3cab25cbfd46a8d618fc3925ea86219972ccc63364e578384bb0120a72562312e596894a04ee0518a363 + checksum: 10/8c5aa42be32a9ee8e8267cc5b787ec90c29986d7aae9042215bd2e59ed22aee4462cb8625c7c98afc3a80e01bff696d67cd1b6c5f6b37e0d5c7f40acca531f3e languageName: node linkType: hard @@ -35103,6 +35079,20 @@ __metadata: languageName: node linkType: hard +"react-server-dom-webpack@npm:19.0.0-rc-6230622a1a-20240610": + version: 19.0.0-rc-6230622a1a-20240610 + resolution: "react-server-dom-webpack@npm:19.0.0-rc-6230622a1a-20240610" + dependencies: + acorn-loose: "npm:^8.3.0" + neo-async: "npm:^2.6.1" + peerDependencies: + react: 19.0.0-rc-6230622a1a-20240610 + react-dom: 19.0.0-rc-6230622a1a-20240610 + webpack: ^5.59.0 + checksum: 10/66ae78f359bcd09400d39f25341c9f799b33cbdb4c7a1134c07ee34d7d142c240bd0dea83942c9260c3e3be6de0bc2bf0ed1343e4f044eeabcf6e5d3c1172c79 + languageName: node + linkType: hard + "react-shallow-renderer@npm:^16.15.0": version: 16.15.0 resolution: "react-shallow-renderer@npm:16.15.0" @@ -35161,16 +35151,16 @@ __metadata: languageName: node linkType: hard -"react-test-renderer@npm:18.2.0, react-test-renderer@npm:^18.2.0": - version: 18.2.0 - resolution: "react-test-renderer@npm:18.2.0" +"react-test-renderer@npm:18.3.1, react-test-renderer@npm:^18.2.0": + version: 18.3.1 + resolution: "react-test-renderer@npm:18.3.1" dependencies: - react-is: "npm:^18.2.0" + react-is: "npm:^18.3.1" react-shallow-renderer: "npm:^16.15.0" - scheduler: "npm:^0.23.0" + scheduler: "npm:^0.23.2" peerDependencies: - react: ^18.2.0 - checksum: 10/39473e43f64eec92da35db9d4411f3887b368038670787d49dd23172eb3a29953eb13767d1bfa34cbe2665b6e25632cad146e362e8910ce33755d343537763ae + react: ^18.3.1 + checksum: 10/d53137315c677bdfba702a7179a69828233fc7635ae1e0c03b203923d643400ace72b343cb3dd3dafba8911c20bef53f55bff7aa2e4ddff3ccc423fdd9deeee2 languageName: node linkType: hard @@ -35492,6 +35482,16 @@ __metadata: languageName: node linkType: hard +"redent@npm:^3.0.0": + version: 3.0.0 + resolution: "redent@npm:3.0.0" + dependencies: + indent-string: "npm:^4.0.0" + strip-indent: "npm:^3.0.0" + checksum: 10/fa1ef20404a2d399235e83cc80bd55a956642e37dd197b4b612ba7327bf87fa32745aeb4a1634b2bab25467164ab4ed9c15be2c307923dd08b0fe7c52431ae6b + languageName: node + linkType: hard + "redux-devtools-expo-dev-plugin@npm:^0.1.0": version: 0.1.0 resolution: "redux-devtools-expo-dev-plugin@npm:0.1.0" @@ -36673,12 +36673,12 @@ __metadata: languageName: node linkType: hard -"scheduler@npm:^0.23.0": - version: 0.23.0 - resolution: "scheduler@npm:0.23.0" +"scheduler@npm:^0.23.0, scheduler@npm:^0.23.2": + version: 0.23.2 + resolution: "scheduler@npm:0.23.2" dependencies: loose-envify: "npm:^1.1.0" - checksum: 10/0c4557aa37bafca44ff21dc0ea7c92e2dbcb298bc62eae92b29a39b029134f02fb23917d6ebc8b1fa536b4184934314c20d8864d156a9f6357f3398aaf7bfda8 + checksum: 10/e8d68b89d18d5b028223edf090092846868a765a591944760942b77ea1f69b17235f7e956696efbb62c8130ab90af7e0949bfb8eba7896335507317236966bc9 languageName: node linkType: hard @@ -36786,17 +36786,6 @@ __metadata: languageName: node linkType: hard -"semver@npm:7.5.3": - version: 7.5.3 - resolution: "semver@npm:7.5.3" - dependencies: - lru-cache: "npm:^6.0.0" - bin: - semver: bin/semver.js - checksum: 10/80b4b3784abff33bacf200727e012dc66768ed5835441e0a802ba9f3f5dd6b10ee366294711f5e7e13d73b82a6127ea55f11f9884d35e76a6a618dc11bc16ccf - languageName: node - linkType: hard - "semver@npm:^6.0.0, semver@npm:^6.2.0, semver@npm:^6.3.0, semver@npm:^6.3.1": version: 6.3.1 resolution: "semver@npm:6.3.1" @@ -36918,6 +36907,13 @@ __metadata: languageName: node linkType: hard +"server-only@npm:^0.0.1": + version: 0.0.1 + resolution: "server-only@npm:0.0.1" + checksum: 10/c432348956641ea3f460af8dc3765f3a1bdbcf7a1e0205b0756d868e6e6fe8934cdee6bff68401a1dd49ba4a831c75916517a877446d54b334f7de36fa273e53 + languageName: node + linkType: hard + "set-cookie-parser@npm:^2.4.8": version: 2.6.0 resolution: "set-cookie-parser@npm:2.6.0" @@ -38147,6 +38143,15 @@ __metadata: languageName: node linkType: hard +"strip-indent@npm:^3.0.0": + version: 3.0.0 + resolution: "strip-indent@npm:3.0.0" + dependencies: + min-indent: "npm:^1.0.0" + checksum: 10/18f045d57d9d0d90cd16f72b2313d6364fd2cb4bf85b9f593523ad431c8720011a4d5f08b6591c9d580f446e78855c5334a30fb91aa1560f5d9f95ed1b4a0530 + languageName: node + linkType: hard + "strip-indent@npm:^4.0.0": version: 4.0.0 resolution: "strip-indent@npm:4.0.0" @@ -38354,24 +38359,6 @@ __metadata: languageName: node linkType: hard -"sucrase@npm:3.34.0": - version: 3.34.0 - resolution: "sucrase@npm:3.34.0" - dependencies: - "@jridgewell/gen-mapping": "npm:^0.3.2" - commander: "npm:^4.0.0" - glob: "npm:7.1.6" - lines-and-columns: "npm:^1.1.6" - mz: "npm:^2.7.0" - pirates: "npm:^4.0.1" - ts-interface-checker: "npm:^0.1.9" - bin: - sucrase: bin/sucrase - sucrase-node: bin/sucrase-node - checksum: 10/b64d154a7a7eaa4b39668c3124bd08cd505f683d36ac4fb94def6491fb3af155b24b6e41b55011e38582e7d59c440af79ffba8709f3da78aeedf2f07b6d51d84 - languageName: node - linkType: hard - "sucrase@npm:3.35.0, sucrase@npm:^3.32.0": version: 3.35.0 resolution: "sucrase@npm:3.35.0" @@ -39364,7 +39351,7 @@ __metadata: globals: "npm:^15.11.0" jest: "npm:29.7.0" jest-environment-jsdom: "npm:29.7.0" - jest-expo: "npm:^50.0.2" + jest-expo: "npm:^52.0.1" metro-react-native-babel-preset: "npm:0.77.0" node-fetch: "npm:^2.6.4" nx: "npm:^18.0.3"