新增自动更新功能,隐藏首页T5骑行台入口
① 新增自动更新功能(UpdateModal),HomeScreen接入版本检测 ② LanguageModal 添加 statusBarTranslucent 浸润样式 ③ 首页T5骑行台入口注释隐藏 ④ 版本号从 1.0.1 升级至 1.0.2 ⑤ 多语言文件更新(en.json, zh.json) ⑥ 新增 CLAUDE.md 项目说明文档 ⑦ 更新 yarn.lock 依赖 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
8dd0edd2ce
commit
64beed9c4e
7
.claude/settings.local.json
Normal file
7
.claude/settings.local.json
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
{
|
||||||
|
"permissions": {
|
||||||
|
"allow": [
|
||||||
|
"Bash(git commit:*)"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
109
CLAUDE.md
Normal file
109
CLAUDE.md
Normal file
@ -0,0 +1,109 @@
|
|||||||
|
# CLAUDE.md
|
||||||
|
|
||||||
|
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
|
||||||
|
|
||||||
|
## Project Overview
|
||||||
|
|
||||||
|
POWERFUN Settings App - A React Native application for managing POWERFUN fitness devices (power meters, paddle sensors, T5 trainers) via Bluetooth LE. Supports device scanning, information reading, calibration, firmware updates (DFU), and spindown calibration.
|
||||||
|
|
||||||
|
## Build Commands
|
||||||
|
|
||||||
|
```sh
|
||||||
|
yarn start # Start Metro bundler
|
||||||
|
yarn android # Run on Android
|
||||||
|
yarn ios # Run on iOS
|
||||||
|
yarn build-a # Android release build (set NODE_OPTIONS=--openssl-legacy-provider)
|
||||||
|
yarn lint # Run ESLint
|
||||||
|
yarn test # Run Jest tests
|
||||||
|
yarn clean-a # Clean Android build (cd android && gradlew clean)
|
||||||
|
```
|
||||||
|
|
||||||
|
## Architecture
|
||||||
|
|
||||||
|
### Navigation Structure
|
||||||
|
- React Navigation Native Stack Navigator
|
||||||
|
- Entry: SplashScreen → HomeScreen
|
||||||
|
- Three device paths from HomeScreen: Power Meter, Paddle, T5 Trainer
|
||||||
|
- Each path: ScanScreen → InfoScreen → DfuScreen
|
||||||
|
- T5 has additional: SpindownScreen
|
||||||
|
- Global: SettingScreen, PrivacyScreen
|
||||||
|
|
||||||
|
### Screen to File Mapping
|
||||||
|
| Screen | File | Purpose |
|
||||||
|
|--------|------|---------|
|
||||||
|
| HomeScreen | src/HomeScreen.tsx | Device type selection (3 buttons) |
|
||||||
|
| ScanScreen | src/ScanScreen.tsx | Power meter BLE scanning |
|
||||||
|
| ScanScreen2 | src/ScanScreen2.tsx | Paddle BLE scanning |
|
||||||
|
| ScanScreen3 | src/ScanScreen3.tsx | T5 trainer BLE scanning |
|
||||||
|
| InfoScreen | src/InfoScreen.tsx | Power meter info, real-time data, calibration, power trim |
|
||||||
|
| InfoScreen2 | src/InfoScreen2.tsx | Paddle boat type settings |
|
||||||
|
| InfoScreen3 | src/InfoScreen3.tsx | T5 trainer weight, bike type, ERG smoothing |
|
||||||
|
| DfuScreen | src/DfuScreen.tsx | Nordic DFU firmware upgrade |
|
||||||
|
| SpindownScreen | src/SpindownScreen.tsx | T5 trainer spindown calibration |
|
||||||
|
| SettingScreen | src/SettingScreen.tsx | Language, privacy policy |
|
||||||
|
| PrivacyScreen | src/PrivacyScreen.tsx | Privacy policy content |
|
||||||
|
|
||||||
|
### Bluetooth LE Architecture
|
||||||
|
- Library: `@systemic-games/react-native-bluetooth-le`
|
||||||
|
- Central API for scanning, connecting, reading/writing characteristics, subscribing to notifications
|
||||||
|
- Device name prefixes for filtering:
|
||||||
|
- Power meters: `PF-PM5-` or `POWERFUN-`
|
||||||
|
- Paddles: `PF-STK-` or `POWERFUN-`
|
||||||
|
- T5 trainers: `PF-T5-` or `POWERFUN-`
|
||||||
|
- RSSI filtering: devices below -90 dBm are filtered out
|
||||||
|
|
||||||
|
### BLE Service/Characteristic UUIDs
|
||||||
|
| Service | Characteristic | Purpose |
|
||||||
|
|---------|----------------|---------|
|
||||||
|
| fff1 | fff2 (write) | Custom power meter commands |
|
||||||
|
| fff1 | fff3 (notify) | Custom power meter responses |
|
||||||
|
| 180a | 2a25 | Serial number |
|
||||||
|
| 180a | 2a28 | Firmware version |
|
||||||
|
| 180a | 2a27 | Hardware version |
|
||||||
|
| 180f | 2a19 | Battery level |
|
||||||
|
| 1818 | 2a63 | Cycling power measurement (real-time) |
|
||||||
|
|
||||||
|
### DFU Architecture
|
||||||
|
- Library: `@systemic-games/react-native-nordic-nrf5-dfu`
|
||||||
|
- Firmware manifest: `https://powerfun.oss-cn-shanghai.aliyuncs.com/yecongdfu/latest.json`
|
||||||
|
- Firmware versions parsed as `hardware.iteration.build` (e.g., "1.23.456")
|
||||||
|
- Upgrade only allowed when server iteration > device iteration
|
||||||
|
- Downloads firmware zip to cache, then initiates DFU
|
||||||
|
|
||||||
|
### i18n Architecture
|
||||||
|
- Library: i18next with react-i18next
|
||||||
|
- Languages: Chinese (zh) and English (en)
|
||||||
|
- Storage key: `@app_language` in AsyncStorage
|
||||||
|
- Translation files: `src/i18n/locales/zh.json`, `src/i18n/locales/en.json`
|
||||||
|
|
||||||
|
## Key Implementation Notes
|
||||||
|
|
||||||
|
### Bluetooth Connection Lifecycle
|
||||||
|
- InfoScreens connect to device on mount, disconnect on navigation away (except when going to DfuScreen)
|
||||||
|
- Connection status listener: `Central.addListener("peripheralConnectionStatus", handler)`
|
||||||
|
- Device ready state: `connectionStatus === "ready"`
|
||||||
|
|
||||||
|
### Real-time Data Parsing (Power Meter - 2A63)
|
||||||
|
- Byte 2-3: Power value (little-endian)
|
||||||
|
- Byte 4: Left balance (0.5% units)
|
||||||
|
- Byte 5-6: Cadence revolution count (little-endian)
|
||||||
|
- Byte 7-8: Cadence timestamp (1/1024 second units)
|
||||||
|
- Cadence RPM = (revolution_diff / time_in_seconds) * 60
|
||||||
|
|
||||||
|
### Power Trim
|
||||||
|
- Range: 50-200 (represents 50%-200%)
|
||||||
|
- Stored as: value * 100, sent as 2-byte little-endian
|
||||||
|
- Protocol: Write [0x02, low, high] to FFF2, then write [0x04] to trigger update
|
||||||
|
|
||||||
|
### Calibration
|
||||||
|
- Command: Write 0x05 to FFF2
|
||||||
|
- Response: Read from FFF3 notify (0x05 + 2-byte value in 0.1 units)
|
||||||
|
- Timeout: 5 seconds
|
||||||
|
|
||||||
|
### Firmware Version Comparison
|
||||||
|
```typescript
|
||||||
|
// Version format: "hardware.iteration.build" (e.g., "1.23.456")
|
||||||
|
// Only iteration is compared for upgrade decision
|
||||||
|
// hardware mismatch → cannot upgrade
|
||||||
|
// server iteration <= device iteration → no upgrade needed
|
||||||
|
```
|
||||||
@ -83,7 +83,7 @@ android {
|
|||||||
minSdkVersion rootProject.ext.minSdkVersion
|
minSdkVersion rootProject.ext.minSdkVersion
|
||||||
targetSdkVersion rootProject.ext.targetSdkVersion
|
targetSdkVersion rootProject.ext.targetSdkVersion
|
||||||
versionCode 2
|
versionCode 2
|
||||||
versionName "1.0.1"
|
versionName "1.0.2"
|
||||||
}
|
}
|
||||||
signingConfigs {
|
signingConfigs {
|
||||||
debug {
|
debug {
|
||||||
|
|||||||
@ -45,4 +45,4 @@ edgeToEdgeEnabled=false
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
org.gradle.java.home=E:\\jdk\\jdk-17.0.12
|
||||||
@ -296,7 +296,7 @@
|
|||||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||||
CLANG_ENABLE_MODULES = YES;
|
CLANG_ENABLE_MODULES = YES;
|
||||||
CURRENT_PROJECT_VERSION = 1;
|
CURRENT_PROJECT_VERSION = 1;
|
||||||
DEVELOPMENT_TEAM = PXHWD6972V;
|
DEVELOPMENT_TEAM = B7ZA544T59;
|
||||||
ENABLE_BITCODE = NO;
|
ENABLE_BITCODE = NO;
|
||||||
INFOPLIST_FILE = dfuapp/Info.plist;
|
INFOPLIST_FILE = dfuapp/Info.plist;
|
||||||
INFOPLIST_KEY_CFBundleDisplayName = "POWERFUN设置";
|
INFOPLIST_KEY_CFBundleDisplayName = "POWERFUN设置";
|
||||||
@ -305,13 +305,13 @@
|
|||||||
"$(inherited)",
|
"$(inherited)",
|
||||||
"@executable_path/Frameworks",
|
"@executable_path/Frameworks",
|
||||||
);
|
);
|
||||||
MARKETING_VERSION = 1.0.1;
|
MARKETING_VERSION = 1.0.2;
|
||||||
OTHER_LDFLAGS = (
|
OTHER_LDFLAGS = (
|
||||||
"$(inherited)",
|
"$(inherited)",
|
||||||
"-ObjC",
|
"-ObjC",
|
||||||
"-lc++",
|
"-lc++",
|
||||||
);
|
);
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = com.zhixingpai.powerfundfuapp123;
|
PRODUCT_BUNDLE_IDENTIFIER = com.zhixingpai.powerfundfuapp;
|
||||||
PRODUCT_NAME = dfuapp;
|
PRODUCT_NAME = dfuapp;
|
||||||
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
|
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
|
||||||
SWIFT_VERSION = 5.0;
|
SWIFT_VERSION = 5.0;
|
||||||
@ -326,7 +326,7 @@
|
|||||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||||
CLANG_ENABLE_MODULES = YES;
|
CLANG_ENABLE_MODULES = YES;
|
||||||
CURRENT_PROJECT_VERSION = 1;
|
CURRENT_PROJECT_VERSION = 1;
|
||||||
DEVELOPMENT_TEAM = PXHWD6972V;
|
DEVELOPMENT_TEAM = B7ZA544T59;
|
||||||
INFOPLIST_FILE = dfuapp/Info.plist;
|
INFOPLIST_FILE = dfuapp/Info.plist;
|
||||||
INFOPLIST_KEY_CFBundleDisplayName = "POWERFUN设置";
|
INFOPLIST_KEY_CFBundleDisplayName = "POWERFUN设置";
|
||||||
IPHONEOS_DEPLOYMENT_TARGET = 15.1;
|
IPHONEOS_DEPLOYMENT_TARGET = 15.1;
|
||||||
@ -334,13 +334,13 @@
|
|||||||
"$(inherited)",
|
"$(inherited)",
|
||||||
"@executable_path/Frameworks",
|
"@executable_path/Frameworks",
|
||||||
);
|
);
|
||||||
MARKETING_VERSION = 1.0.1;
|
MARKETING_VERSION = 1.0.2;
|
||||||
OTHER_LDFLAGS = (
|
OTHER_LDFLAGS = (
|
||||||
"$(inherited)",
|
"$(inherited)",
|
||||||
"-ObjC",
|
"-ObjC",
|
||||||
"-lc++",
|
"-lc++",
|
||||||
);
|
);
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = com.zhixingpai.powerfundfuapp123;
|
PRODUCT_BUNDLE_IDENTIFIER = com.zhixingpai.powerfundfuapp;
|
||||||
PRODUCT_NAME = dfuapp;
|
PRODUCT_NAME = dfuapp;
|
||||||
SWIFT_VERSION = 5.0;
|
SWIFT_VERSION = 5.0;
|
||||||
VERSIONING_SYSTEM = "apple-generic";
|
VERSIONING_SYSTEM = "apple-generic";
|
||||||
|
|||||||
@ -23,7 +23,7 @@
|
|||||||
"base-64": "^1.0.0",
|
"base-64": "^1.0.0",
|
||||||
"i18next": "^25.7.3",
|
"i18next": "^25.7.3",
|
||||||
"react": "19.1.0",
|
"react": "19.1.0",
|
||||||
"react-i18next": "^16.5.0",
|
"react-i18next": "16.5.0",
|
||||||
"react-native": "0.81.4",
|
"react-native": "0.81.4",
|
||||||
"react-native-device-info": "^15.0.1",
|
"react-native-device-info": "^15.0.1",
|
||||||
"react-native-fs": "^2.20.0",
|
"react-native-fs": "^2.20.0",
|
||||||
@ -53,10 +53,7 @@
|
|||||||
"prettier": "2.8.8",
|
"prettier": "2.8.8",
|
||||||
"react-test-renderer": "19.1.0",
|
"react-test-renderer": "19.1.0",
|
||||||
"typescript": "^5.8.3"
|
"typescript": "^5.8.3"
|
||||||
|
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=20"
|
"node": ">=20"
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,48 +1,111 @@
|
|||||||
import React from "react";
|
import React, { useEffect, useState } from "react";
|
||||||
import { View, Text, TouchableOpacity, StyleSheet, StatusBar, Image } from "react-native";
|
import { View, Text, TouchableOpacity, StyleSheet, Image, Platform } from "react-native";
|
||||||
import { NativeStackScreenProps,NativeStackNavigationProp } from "@react-navigation/native-stack";
|
import { NativeStackScreenProps } from "@react-navigation/native-stack";
|
||||||
import { RootStackParamList } from "../App";
|
import { RootStackParamList } from "../App";
|
||||||
import MyStatusbar from "./component/MyStatusbar";
|
import MyStatusbar from "./component/MyStatusbar";
|
||||||
import MyHeader from "./component/MyHeader";
|
import MyHeader from "./component/MyHeader";
|
||||||
|
import UpdateModal from "./component/UpdateModal";
|
||||||
import pxToDp from "./helper/pxToDp";
|
import pxToDp from "./helper/pxToDp";
|
||||||
import DeviceInfo from "react-native-device-info";
|
import DeviceInfo from "react-native-device-info";
|
||||||
import { useTranslation } from 'react-i18next';
|
import { useTranslation } from "react-i18next";
|
||||||
|
|
||||||
type Props = NativeStackScreenProps<RootStackParamList>;
|
type Props = NativeStackScreenProps<RootStackParamList>;
|
||||||
|
|
||||||
|
interface UpdateInfo {
|
||||||
|
latestVersion: string;
|
||||||
|
downloadUrl: string;
|
||||||
|
updateLogs: string[];
|
||||||
|
}
|
||||||
|
|
||||||
|
const UPDATE_JSON_URL = "https://powerfun.oss-cn-shanghai.aliyuncs.com/yecongdfu/apks/update.json";
|
||||||
|
|
||||||
|
const compareVersions = (latest: string, current: string): boolean => {
|
||||||
|
const latestParts = latest.split(".").map(Number);
|
||||||
|
const currentParts = current.split(".").map(Number);
|
||||||
|
|
||||||
|
for (let i = 0; i < Math.max(latestParts.length, currentParts.length); i++) {
|
||||||
|
const latestNum = latestParts[i] || 0;
|
||||||
|
const currentNum = currentParts[i] || 0;
|
||||||
|
if (latestNum > currentNum) return true;
|
||||||
|
if (latestNum < currentNum) return false;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
};
|
||||||
|
|
||||||
export default function HomeScreen({ navigation }: Props) {
|
export default function HomeScreen({ navigation }: Props) {
|
||||||
const { t } = useTranslation();
|
const { t } = useTranslation();
|
||||||
|
const [updateModalVisible, setUpdateModalVisible] = useState(false);
|
||||||
|
const [updateInfo, setUpdateInfo] = useState<UpdateInfo | null>(null);
|
||||||
|
const [currentVersion, setCurrentVersion] = useState("");
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
const checkUpdate = async () => {
|
||||||
|
try {
|
||||||
|
const version = DeviceInfo.getVersion();
|
||||||
|
setCurrentVersion(version);
|
||||||
|
|
||||||
|
const resp = await fetch(UPDATE_JSON_URL);
|
||||||
|
if (!resp.ok) return;
|
||||||
|
|
||||||
|
const data = await resp.json();
|
||||||
|
const platform = Platform.OS === "ios" ? "ios" : "android";
|
||||||
|
const platformUpdate = data[platform];
|
||||||
|
if (!platformUpdate) return;
|
||||||
|
|
||||||
|
if (compareVersions(platformUpdate.latestVersion, version)) {
|
||||||
|
setUpdateInfo({
|
||||||
|
latestVersion: platformUpdate.latestVersion,
|
||||||
|
downloadUrl: platformUpdate.downloadUrl,
|
||||||
|
updateLogs: platformUpdate.updateLogs || [],
|
||||||
|
});
|
||||||
|
setUpdateModalVisible(true);
|
||||||
|
}
|
||||||
|
} catch (e) {
|
||||||
|
console.log("检查更新失败:", e);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
checkUpdate();
|
||||||
|
}, []);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<View style={styles.container}>
|
<View style={styles.container}>
|
||||||
{/* 设置状态栏颜色 */}
|
|
||||||
<MyStatusbar backgroundColor="#E7141E" dark={false}></MyStatusbar>
|
<MyStatusbar backgroundColor="#E7141E" dark={false}></MyStatusbar>
|
||||||
<MyHeader title={t('home.title')} textColor="#fff" backgroundColor="#E7141E" hideBack navigation={navigation}
|
<MyHeader
|
||||||
rightView={<TouchableOpacity style={{width:pxToDp(56),height:pxToDp(56),alignItems:'center',justifyContent:'center'}}
|
title={t("home.title")}
|
||||||
onPress={() => navigation.navigate("Setting")}>
|
textColor="#fff"
|
||||||
<Image source={require('./img/Settings.png')} style={{width:pxToDp(48),height:pxToDp(44)}}></Image>
|
backgroundColor="#E7141E"
|
||||||
</TouchableOpacity>}></MyHeader>
|
hideBack
|
||||||
{/* 中间按钮 */}
|
navigation={navigation}
|
||||||
|
rightView={
|
||||||
|
<TouchableOpacity
|
||||||
|
style={{ width: pxToDp(56), height: pxToDp(56), alignItems: "center", justifyContent: "center" }}
|
||||||
|
onPress={() => navigation.navigate("Setting")}
|
||||||
|
>
|
||||||
|
<Image source={require("./img/Settings.png")} style={{ width: pxToDp(48), height: pxToDp(44) }}></Image>
|
||||||
|
</TouchableOpacity>
|
||||||
|
}
|
||||||
|
></MyHeader>
|
||||||
|
|
||||||
<View style={styles.centerBox}>
|
<View style={styles.centerBox}>
|
||||||
<Image source={require("./img/Search.png")} style={{ width: pxToDp(568), height: pxToDp(344), marginBottom: pxToDp(100) }}></Image>
|
<Image source={require("./img/Search.png")} style={{ width: pxToDp(568), height: pxToDp(344), marginBottom: pxToDp(100) }}></Image>
|
||||||
<TouchableOpacity
|
<TouchableOpacity style={styles.button} onPress={() => navigation.navigate("Scan")}>
|
||||||
style={styles.button}
|
|
||||||
onPress={() => navigation.navigate("Scan")}
|
|
||||||
>
|
|
||||||
<Text style={styles.buttonText}>{t("home.powerMeter")}</Text>
|
<Text style={styles.buttonText}>{t("home.powerMeter")}</Text>
|
||||||
</TouchableOpacity>
|
</TouchableOpacity>
|
||||||
<TouchableOpacity
|
<TouchableOpacity style={[styles.button, { marginTop: pxToDp(20) }]} onPress={() => navigation.navigate("ScanScreen2")}>
|
||||||
style={[styles.button, { marginTop: pxToDp(20) }]}
|
|
||||||
onPress={() => navigation.navigate("ScanScreen2")}
|
|
||||||
>
|
|
||||||
<Text style={styles.buttonText}>{t("home.paddle")}</Text>
|
<Text style={styles.buttonText}>{t("home.paddle")}</Text>
|
||||||
</TouchableOpacity>
|
</TouchableOpacity>
|
||||||
<TouchableOpacity
|
{/* <TouchableOpacity style={[styles.button, { marginTop: pxToDp(20) }]} onPress={() => navigation.navigate("ScanScreen3")}>
|
||||||
style={[styles.button, { marginTop: pxToDp(20) }]}
|
|
||||||
onPress={() => navigation.navigate("ScanScreen3")}
|
|
||||||
>
|
|
||||||
<Text style={styles.buttonText}>{t("home.T5trainer")}</Text>
|
<Text style={styles.buttonText}>{t("home.T5trainer")}</Text>
|
||||||
</TouchableOpacity>
|
</TouchableOpacity> */}
|
||||||
</View>
|
</View>
|
||||||
|
|
||||||
|
<UpdateModal
|
||||||
|
visible={updateModalVisible}
|
||||||
|
updateInfo={updateInfo}
|
||||||
|
currentVersion={currentVersion}
|
||||||
|
onClose={() => setUpdateModalVisible(false)}
|
||||||
|
/>
|
||||||
</View>
|
</View>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@ -54,18 +117,17 @@ const styles = StyleSheet.create({
|
|||||||
},
|
},
|
||||||
centerBox: {
|
centerBox: {
|
||||||
flex: 1,
|
flex: 1,
|
||||||
// justifyContent: "center",
|
|
||||||
alignItems: "center",
|
alignItems: "center",
|
||||||
backgroundColor:'#fff',
|
backgroundColor: "#fff",
|
||||||
paddingTop:pxToDp(250)
|
paddingTop: pxToDp(250),
|
||||||
},
|
},
|
||||||
button: {
|
button: {
|
||||||
backgroundColor: "#E7141E",
|
backgroundColor: "#E7141E",
|
||||||
borderRadius: pxToDp(24),
|
borderRadius: pxToDp(24),
|
||||||
width: pxToDp(300),
|
width: pxToDp(300),
|
||||||
height: pxToDp(96),
|
height: pxToDp(96),
|
||||||
alignItems:'center',
|
alignItems: "center",
|
||||||
justifyContent:'center'
|
justifyContent: "center",
|
||||||
},
|
},
|
||||||
buttonText: {
|
buttonText: {
|
||||||
color: "#fff",
|
color: "#fff",
|
||||||
@ -78,7 +140,7 @@ const styles = StyleSheet.create({
|
|||||||
},
|
},
|
||||||
privacyText: {
|
privacyText: {
|
||||||
fontSize: 16,
|
fontSize: 16,
|
||||||
color: "#E7141E", // 红色字体
|
color: "#E7141E",
|
||||||
marginBottom: 8,
|
marginBottom: 8,
|
||||||
},
|
},
|
||||||
version: {
|
version: {
|
||||||
|
|||||||
@ -33,6 +33,7 @@ const LanguageModal: React.FC<LanguageModalProps> = ({ visible, onClose }) => {
|
|||||||
transparent
|
transparent
|
||||||
animationType="fade"
|
animationType="fade"
|
||||||
onRequestClose={onClose}
|
onRequestClose={onClose}
|
||||||
|
statusBarTranslucent
|
||||||
>
|
>
|
||||||
<Pressable style={styles.overlay} onPress={onClose}>
|
<Pressable style={styles.overlay} onPress={onClose}>
|
||||||
<Pressable
|
<Pressable
|
||||||
|
|||||||
135
src/component/UpdateModal.tsx
Normal file
135
src/component/UpdateModal.tsx
Normal file
@ -0,0 +1,135 @@
|
|||||||
|
import React from "react";
|
||||||
|
import { View, Text, TouchableOpacity, StyleSheet, Modal, Linking } from "react-native";
|
||||||
|
import { useTranslation } from "react-i18next";
|
||||||
|
import pxToDp from "../helper/pxToDp";
|
||||||
|
|
||||||
|
interface UpdateModalProps {
|
||||||
|
visible: boolean;
|
||||||
|
updateInfo: {
|
||||||
|
latestVersion: string;
|
||||||
|
downloadUrl: string;
|
||||||
|
updateLogs: string[];
|
||||||
|
} | null;
|
||||||
|
currentVersion: string;
|
||||||
|
onClose: () => void;
|
||||||
|
}
|
||||||
|
|
||||||
|
export default function UpdateModal({ visible, updateInfo, currentVersion, onClose }: UpdateModalProps) {
|
||||||
|
const { t } = useTranslation();
|
||||||
|
|
||||||
|
const handleUpdatePress = () => {
|
||||||
|
if (updateInfo?.downloadUrl) {
|
||||||
|
Linking.openURL(updateInfo.downloadUrl);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
if (!updateInfo) return null;
|
||||||
|
|
||||||
|
return (
|
||||||
|
<Modal
|
||||||
|
visible={visible}
|
||||||
|
transparent={true}
|
||||||
|
animationType="fade"
|
||||||
|
onRequestClose={onClose}
|
||||||
|
statusBarTranslucent
|
||||||
|
>
|
||||||
|
<View style={styles.modalOverlay}>
|
||||||
|
<View style={styles.modalContent}>
|
||||||
|
<Text style={styles.modalTitle}>{t("home.updateTitle")}</Text>
|
||||||
|
<Text style={styles.modalVersion}>
|
||||||
|
{t("home.latestVersion")}: {updateInfo.latestVersion}
|
||||||
|
</Text>
|
||||||
|
<Text style={styles.modalVersion}>
|
||||||
|
{t("home.currentVersion")}: {currentVersion}
|
||||||
|
</Text>
|
||||||
|
|
||||||
|
<View style={styles.updateLogsContainer}>
|
||||||
|
<Text style={styles.updateLogsTitle}>{t("home.updateLogs")}</Text>
|
||||||
|
{updateInfo.updateLogs.map((log, index) => (
|
||||||
|
<Text key={index} style={styles.updateLogItem}>• {log}</Text>
|
||||||
|
))}
|
||||||
|
</View>
|
||||||
|
|
||||||
|
<TouchableOpacity
|
||||||
|
style={styles.updateButton}
|
||||||
|
onPress={handleUpdatePress}
|
||||||
|
>
|
||||||
|
<Text style={styles.updateButtonText}>{t("home.updateNow")}</Text>
|
||||||
|
</TouchableOpacity>
|
||||||
|
|
||||||
|
{/* <TouchableOpacity
|
||||||
|
style={styles.laterButton}
|
||||||
|
onPress={onClose}
|
||||||
|
>
|
||||||
|
<Text style={styles.laterButtonText}>{t("home.updateLater")}</Text>
|
||||||
|
</TouchableOpacity> */}
|
||||||
|
</View>
|
||||||
|
</View>
|
||||||
|
</Modal>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
const styles = StyleSheet.create({
|
||||||
|
modalOverlay: {
|
||||||
|
flex: 1,
|
||||||
|
backgroundColor: "rgba(0, 0, 0, 0.5)",
|
||||||
|
justifyContent: "center",
|
||||||
|
alignItems: "center",
|
||||||
|
},
|
||||||
|
modalContent: {
|
||||||
|
width: pxToDp(600),
|
||||||
|
backgroundColor: "#fff",
|
||||||
|
borderRadius: pxToDp(20),
|
||||||
|
padding: pxToDp(40),
|
||||||
|
alignItems: "center",
|
||||||
|
},
|
||||||
|
modalTitle: {
|
||||||
|
fontSize: pxToDp(36),
|
||||||
|
fontWeight: "bold",
|
||||||
|
color: "#333",
|
||||||
|
marginBottom: pxToDp(20),
|
||||||
|
},
|
||||||
|
modalVersion: {
|
||||||
|
fontSize: pxToDp(28),
|
||||||
|
color: "#666",
|
||||||
|
marginBottom: pxToDp(10),
|
||||||
|
},
|
||||||
|
updateLogsContainer: {
|
||||||
|
width: "100%",
|
||||||
|
marginTop: pxToDp(20),
|
||||||
|
marginBottom: pxToDp(20),
|
||||||
|
paddingHorizontal: pxToDp(10),
|
||||||
|
maxHeight: pxToDp(300),
|
||||||
|
},
|
||||||
|
updateLogsTitle: {
|
||||||
|
fontSize: pxToDp(28),
|
||||||
|
fontWeight: "bold",
|
||||||
|
color: "#333",
|
||||||
|
marginBottom: pxToDp(10),
|
||||||
|
},
|
||||||
|
updateLogItem: {
|
||||||
|
fontSize: pxToDp(24),
|
||||||
|
color: "#666",
|
||||||
|
lineHeight: pxToDp(40),
|
||||||
|
},
|
||||||
|
updateButton: {
|
||||||
|
width: "100%",
|
||||||
|
backgroundColor: "#E7141E",
|
||||||
|
borderRadius: pxToDp(12),
|
||||||
|
padding: pxToDp(24),
|
||||||
|
alignItems: "center",
|
||||||
|
// marginBottom: pxToDp(20),
|
||||||
|
},
|
||||||
|
updateButtonText: {
|
||||||
|
fontSize: pxToDp(32),
|
||||||
|
fontWeight: "bold",
|
||||||
|
color: "#fff",
|
||||||
|
},
|
||||||
|
laterButton: {
|
||||||
|
padding: pxToDp(20),
|
||||||
|
},
|
||||||
|
laterButtonText: {
|
||||||
|
fontSize: pxToDp(28),
|
||||||
|
color: "#999",
|
||||||
|
},
|
||||||
|
});
|
||||||
@ -12,7 +12,13 @@
|
|||||||
"version": "Version v0.0.1",
|
"version": "Version v0.0.1",
|
||||||
"powerMeter": "Power Meter",
|
"powerMeter": "Power Meter",
|
||||||
"paddle": "Paddle",
|
"paddle": "Paddle",
|
||||||
"T5trainer": "T5 Trainer"
|
"T5trainer": "T5 Trainer",
|
||||||
|
"updateTitle": "Update Available",
|
||||||
|
"latestVersion": "Latest Version",
|
||||||
|
"currentVersion": "Current Version",
|
||||||
|
"updateLogs": "Update Logs",
|
||||||
|
"updateNow": "Update Now",
|
||||||
|
"updateLater": "Later"
|
||||||
},
|
},
|
||||||
"scan": {
|
"scan": {
|
||||||
"title": "Scan Devices",
|
"title": "Scan Devices",
|
||||||
@ -22,7 +28,6 @@
|
|||||||
"tipBluetooth": "(Please enable Bluetooth in settings)",
|
"tipBluetooth": "(Please enable Bluetooth in settings)",
|
||||||
"noName": "[No Name]",
|
"noName": "[No Name]",
|
||||||
"rssiUnit": "dBm"
|
"rssiUnit": "dBm"
|
||||||
|
|
||||||
},
|
},
|
||||||
"t5Scan": {
|
"t5Scan": {
|
||||||
"title": "Scan T5 Trainer",
|
"title": "Scan T5 Trainer",
|
||||||
|
|||||||
@ -12,7 +12,13 @@
|
|||||||
"version": "版本号 v0.0.1",
|
"version": "版本号 v0.0.1",
|
||||||
"powerMeter": "功率计",
|
"powerMeter": "功率计",
|
||||||
"paddle": "桨频器",
|
"paddle": "桨频器",
|
||||||
"T5trainer": "T5骑行台"
|
"T5trainer": "T5骑行台",
|
||||||
|
"updateTitle": "发现新版本",
|
||||||
|
"latestVersion": "最新版本",
|
||||||
|
"currentVersion": "当前版本",
|
||||||
|
"updateLogs": "更新日志",
|
||||||
|
"updateNow": "立即更新",
|
||||||
|
"updateLater": "稍后再说"
|
||||||
},
|
},
|
||||||
"scan": {
|
"scan": {
|
||||||
"title": "搜索设备",
|
"title": "搜索设备",
|
||||||
|
|||||||
299
yarn.lock
299
yarn.lock
@ -16,7 +16,7 @@
|
|||||||
resolved "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.28.4.tgz"
|
resolved "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.28.4.tgz"
|
||||||
integrity sha512-YsmSKC29MJwf0gF8Rjjrg5LQCmyh+j/nD8/eP7f+BeoQTKYqs9RoWbjGOdy0+1Ekr68RJZMUOPVQaQisnIo4Rw==
|
integrity sha512-YsmSKC29MJwf0gF8Rjjrg5LQCmyh+j/nD8/eP7f+BeoQTKYqs9RoWbjGOdy0+1Ekr68RJZMUOPVQaQisnIo4Rw==
|
||||||
|
|
||||||
"@babel/core@^7.0.0", "@babel/core@^7.0.0 || ^8.0.0-0", "@babel/core@^7.0.0-0", "@babel/core@^7.0.0-0 || ^8.0.0-0 <8.0.0", "@babel/core@^7.11.0", "@babel/core@^7.11.6", "@babel/core@^7.12.0", "@babel/core@^7.12.3", "@babel/core@^7.13.0", "@babel/core@^7.23.9", "@babel/core@^7.25.2", "@babel/core@^7.4.0 || ^8.0.0-0 <8.0.0", "@babel/core@^7.8.0":
|
"@babel/core@^7.11.6", "@babel/core@^7.12.3", "@babel/core@^7.23.9", "@babel/core@^7.25.2":
|
||||||
version "7.28.4"
|
version "7.28.4"
|
||||||
resolved "https://registry.npmjs.org/@babel/core/-/core-7.28.4.tgz"
|
resolved "https://registry.npmjs.org/@babel/core/-/core-7.28.4.tgz"
|
||||||
integrity sha512-2BCOP7TN8M+gVDj7/ht3hsaO/B/n5oDbiAyyvnRlNOs+u1o+JWNYTQrmpuNp1/Wq2gcFrI01JAW+paEKDMx/CA==
|
integrity sha512-2BCOP7TN8M+gVDj7/ht3hsaO/B/n5oDbiAyyvnRlNOs+u1o+JWNYTQrmpuNp1/Wq2gcFrI01JAW+paEKDMx/CA==
|
||||||
@ -37,7 +37,7 @@
|
|||||||
json5 "^2.2.3"
|
json5 "^2.2.3"
|
||||||
semver "^6.3.1"
|
semver "^6.3.1"
|
||||||
|
|
||||||
"@babel/eslint-parser@^7.12.0", "@babel/eslint-parser@^7.25.1":
|
"@babel/eslint-parser@^7.25.1":
|
||||||
version "7.28.4"
|
version "7.28.4"
|
||||||
resolved "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.28.4.tgz"
|
resolved "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.28.4.tgz"
|
||||||
integrity sha512-Aa+yDiH87980jR6zvRfFuCR1+dLb00vBydhTL+zI992Rz/wQhSvuxjmOOuJOgO3XmakO6RykRGD2S1mq1AtgHA==
|
integrity sha512-Aa+yDiH87980jR6zvRfFuCR1+dLb00vBydhTL+zI992Rz/wQhSvuxjmOOuJOgO3XmakO6RykRGD2S1mq1AtgHA==
|
||||||
@ -971,6 +971,11 @@
|
|||||||
resolved "https://registry.npmjs.org/@babel/runtime/-/runtime-7.28.4.tgz"
|
resolved "https://registry.npmjs.org/@babel/runtime/-/runtime-7.28.4.tgz"
|
||||||
integrity sha512-Q/N6JNWvIvPnLDvjlE1OUBLPQHH6l3CltCEsHIujp45zQUSSh8K+gHnaEX45yAT1nyngnINhvWtzN+Nb9D8RAQ==
|
integrity sha512-Q/N6JNWvIvPnLDvjlE1OUBLPQHH6l3CltCEsHIujp45zQUSSh8K+gHnaEX45yAT1nyngnINhvWtzN+Nb9D8RAQ==
|
||||||
|
|
||||||
|
"@babel/runtime@^7.27.6":
|
||||||
|
version "7.29.7"
|
||||||
|
resolved "https://repo.huaweicloud.com/repository/npm/@babel/runtime/-/runtime-7.29.7.tgz#12022450c45a4da6d8d8287b18a4ff2ddb23f768"
|
||||||
|
integrity sha512-Nq8OhGWiZIZGV6hLHoyAKLLcJihP/xFeBMGJoUrxTX2psI8dCifzLhZISFb+VWS3wFMRDmCGw5R+dOySCqPLhw==
|
||||||
|
|
||||||
"@babel/template@^7.25.0", "@babel/template@^7.27.1", "@babel/template@^7.27.2", "@babel/template@^7.3.3":
|
"@babel/template@^7.25.0", "@babel/template@^7.27.1", "@babel/template@^7.27.2", "@babel/template@^7.3.3":
|
||||||
version "7.27.2"
|
version "7.27.2"
|
||||||
resolved "https://registry.npmjs.org/@babel/template/-/template-7.27.2.tgz"
|
resolved "https://registry.npmjs.org/@babel/template/-/template-7.27.2.tgz"
|
||||||
@ -1370,7 +1375,7 @@
|
|||||||
"@nodelib/fs.stat" "2.0.5"
|
"@nodelib/fs.stat" "2.0.5"
|
||||||
run-parallel "^1.1.9"
|
run-parallel "^1.1.9"
|
||||||
|
|
||||||
"@nodelib/fs.stat@^2.0.2", "@nodelib/fs.stat@2.0.5":
|
"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2":
|
||||||
version "2.0.5"
|
version "2.0.5"
|
||||||
resolved "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz"
|
resolved "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz"
|
||||||
integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==
|
integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==
|
||||||
@ -1511,7 +1516,7 @@
|
|||||||
dependencies:
|
dependencies:
|
||||||
joi "^17.2.1"
|
joi "^17.2.1"
|
||||||
|
|
||||||
"@react-native-community/cli@*", "@react-native-community/cli@15.0.0":
|
"@react-native-community/cli@15.0.0":
|
||||||
version "15.0.0"
|
version "15.0.0"
|
||||||
resolved "https://registry.npmmirror.com/@react-native-community/cli/-/cli-15.0.0.tgz"
|
resolved "https://registry.npmmirror.com/@react-native-community/cli/-/cli-15.0.0.tgz"
|
||||||
integrity sha512-IzDIFCoWZsoOHLSKcd8OX9gAXnbH83vsyBIFaj/X6praDUA4VCnDf41mGGSOT/VEarGlarTa3tvRcqZ8aE5l/A==
|
integrity sha512-IzDIFCoWZsoOHLSKcd8OX9gAXnbH83vsyBIFaj/X6praDUA4VCnDf41mGGSOT/VEarGlarTa3tvRcqZ8aE5l/A==
|
||||||
@ -1688,7 +1693,7 @@
|
|||||||
hermes-parser "0.29.1"
|
hermes-parser "0.29.1"
|
||||||
nullthrows "^1.1.1"
|
nullthrows "^1.1.1"
|
||||||
|
|
||||||
"@react-native/metro-config@*", "@react-native/metro-config@0.81.4":
|
"@react-native/metro-config@0.81.4":
|
||||||
version "0.81.4"
|
version "0.81.4"
|
||||||
resolved "https://registry.npmjs.org/@react-native/metro-config/-/metro-config-0.81.4.tgz"
|
resolved "https://registry.npmjs.org/@react-native/metro-config/-/metro-config-0.81.4.tgz"
|
||||||
integrity sha512-aEXhRMsz6yN5X63Zk+cdKByQ0j3dsKv+ETRP9lLARdZ82fBOCMuK6IfmZMwK3A/3bI7gSvt2MFPn3QHy3WnByw==
|
integrity sha512-aEXhRMsz6yN5X63Zk+cdKByQ0j3dsKv+ETRP9lLARdZ82fBOCMuK6IfmZMwK3A/3bI7gSvt2MFPn3QHy3WnByw==
|
||||||
@ -1957,7 +1962,7 @@
|
|||||||
dependencies:
|
dependencies:
|
||||||
"@types/yargs-parser" "*"
|
"@types/yargs-parser" "*"
|
||||||
|
|
||||||
"@typescript-eslint/eslint-plugin@^5.0.0 || ^6.0.0 || ^7.0.0", "@typescript-eslint/eslint-plugin@^7.1.1":
|
"@typescript-eslint/eslint-plugin@^7.1.1":
|
||||||
version "7.18.0"
|
version "7.18.0"
|
||||||
resolved "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.18.0.tgz"
|
resolved "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.18.0.tgz"
|
||||||
integrity sha512-94EQTWZ40mzBc42ATNIBimBEDltSJ9RQHCC8vc/PDbxi4k8dVwUAv4o98dk50M1zB+JGFxp43FP7f8+FP8R6Sw==
|
integrity sha512-94EQTWZ40mzBc42ATNIBimBEDltSJ9RQHCC8vc/PDbxi4k8dVwUAv4o98dk50M1zB+JGFxp43FP7f8+FP8R6Sw==
|
||||||
@ -1972,7 +1977,7 @@
|
|||||||
natural-compare "^1.4.0"
|
natural-compare "^1.4.0"
|
||||||
ts-api-utils "^1.3.0"
|
ts-api-utils "^1.3.0"
|
||||||
|
|
||||||
"@typescript-eslint/parser@^7.0.0", "@typescript-eslint/parser@^7.1.1":
|
"@typescript-eslint/parser@^7.1.1":
|
||||||
version "7.18.0"
|
version "7.18.0"
|
||||||
resolved "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.18.0.tgz"
|
resolved "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.18.0.tgz"
|
||||||
integrity sha512-4Z+L8I2OqhZV8qA132M4wNL30ypZGYOQVBfMgxDH/K5UX0PNqTu1c6za9ST5r9+tavvHiTWmBnKzpCJ/GlVFtg==
|
integrity sha512-4Z+L8I2OqhZV8qA132M4wNL30ypZGYOQVBfMgxDH/K5UX0PNqTu1c6za9ST5r9+tavvHiTWmBnKzpCJ/GlVFtg==
|
||||||
@ -2046,6 +2051,16 @@
|
|||||||
semver "^7.6.0"
|
semver "^7.6.0"
|
||||||
ts-api-utils "^1.3.0"
|
ts-api-utils "^1.3.0"
|
||||||
|
|
||||||
|
"@typescript-eslint/utils@7.18.0":
|
||||||
|
version "7.18.0"
|
||||||
|
resolved "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.18.0.tgz"
|
||||||
|
integrity sha512-kK0/rNa2j74XuHVcoCZxdFBMF+aq/vH83CXAOHieC+2Gis4mF8jJXT5eAfyD3K0sAxtPuwxaIOIOvhwzVDt/kw==
|
||||||
|
dependencies:
|
||||||
|
"@eslint-community/eslint-utils" "^4.4.0"
|
||||||
|
"@typescript-eslint/scope-manager" "7.18.0"
|
||||||
|
"@typescript-eslint/types" "7.18.0"
|
||||||
|
"@typescript-eslint/typescript-estree" "7.18.0"
|
||||||
|
|
||||||
"@typescript-eslint/utils@^5.10.0":
|
"@typescript-eslint/utils@^5.10.0":
|
||||||
version "5.62.0"
|
version "5.62.0"
|
||||||
resolved "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.62.0.tgz"
|
resolved "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.62.0.tgz"
|
||||||
@ -2060,16 +2075,6 @@
|
|||||||
eslint-scope "^5.1.1"
|
eslint-scope "^5.1.1"
|
||||||
semver "^7.3.7"
|
semver "^7.3.7"
|
||||||
|
|
||||||
"@typescript-eslint/utils@7.18.0":
|
|
||||||
version "7.18.0"
|
|
||||||
resolved "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.18.0.tgz"
|
|
||||||
integrity sha512-kK0/rNa2j74XuHVcoCZxdFBMF+aq/vH83CXAOHieC+2Gis4mF8jJXT5eAfyD3K0sAxtPuwxaIOIOvhwzVDt/kw==
|
|
||||||
dependencies:
|
|
||||||
"@eslint-community/eslint-utils" "^4.4.0"
|
|
||||||
"@typescript-eslint/scope-manager" "7.18.0"
|
|
||||||
"@typescript-eslint/types" "7.18.0"
|
|
||||||
"@typescript-eslint/typescript-estree" "7.18.0"
|
|
||||||
|
|
||||||
"@typescript-eslint/visitor-keys@5.62.0":
|
"@typescript-eslint/visitor-keys@5.62.0":
|
||||||
version "5.62.0"
|
version "5.62.0"
|
||||||
resolved "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz"
|
resolved "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz"
|
||||||
@ -2111,7 +2116,7 @@ acorn-jsx@^5.3.2:
|
|||||||
resolved "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz"
|
resolved "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz"
|
||||||
integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==
|
integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==
|
||||||
|
|
||||||
"acorn@^6.0.0 || ^7.0.0 || ^8.0.0", acorn@^8.15.0, acorn@^8.9.0:
|
acorn@^8.15.0, acorn@^8.9.0:
|
||||||
version "8.15.0"
|
version "8.15.0"
|
||||||
resolved "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz"
|
resolved "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz"
|
||||||
integrity sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==
|
integrity sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==
|
||||||
@ -2473,7 +2478,7 @@ braces@^3.0.3:
|
|||||||
dependencies:
|
dependencies:
|
||||||
fill-range "^7.1.1"
|
fill-range "^7.1.1"
|
||||||
|
|
||||||
browserslist@^4.24.0, browserslist@^4.25.3, "browserslist@>= 4.21.0":
|
browserslist@^4.24.0, browserslist@^4.25.3:
|
||||||
version "4.26.2"
|
version "4.26.2"
|
||||||
resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.26.2.tgz"
|
resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.26.2.tgz"
|
||||||
integrity sha512-ECFzp6uFOSB+dcZ5BK/IBaGWssbSYBHvuMeMt3MMFyhI0Z8SqGgEkBLARgpRH3hutIgPVsALcMwbDrJqPxQ65A==
|
integrity sha512-ECFzp6uFOSB+dcZ5BK/IBaGWssbSYBHvuMeMt3MMFyhI0Z8SqGgEkBLARgpRH3hutIgPVsALcMwbDrJqPxQ65A==
|
||||||
@ -2673,16 +2678,16 @@ color-convert@^2.0.1:
|
|||||||
dependencies:
|
dependencies:
|
||||||
color-name "~1.1.4"
|
color-name "~1.1.4"
|
||||||
|
|
||||||
color-name@^1.0.0, color-name@~1.1.4:
|
|
||||||
version "1.1.4"
|
|
||||||
resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz"
|
|
||||||
integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
|
|
||||||
|
|
||||||
color-name@1.1.3:
|
color-name@1.1.3:
|
||||||
version "1.1.3"
|
version "1.1.3"
|
||||||
resolved "https://registry.npmmirror.com/color-name/-/color-name-1.1.3.tgz"
|
resolved "https://registry.npmmirror.com/color-name/-/color-name-1.1.3.tgz"
|
||||||
integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==
|
integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==
|
||||||
|
|
||||||
|
color-name@^1.0.0, color-name@~1.1.4:
|
||||||
|
version "1.1.4"
|
||||||
|
resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz"
|
||||||
|
integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
|
||||||
|
|
||||||
color-string@^1.9.0:
|
color-string@^1.9.0:
|
||||||
version "1.9.1"
|
version "1.9.1"
|
||||||
resolved "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz"
|
resolved "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz"
|
||||||
@ -2840,27 +2845,20 @@ dayjs@^1.8.15:
|
|||||||
resolved "https://registry.npmmirror.com/dayjs/-/dayjs-1.11.20.tgz"
|
resolved "https://registry.npmmirror.com/dayjs/-/dayjs-1.11.20.tgz"
|
||||||
integrity sha512-YbwwqR/uYpeoP4pu043q+LTDLFBLApUP6VxRihdfNTqu4ubqMlGDLd6ErXhEgsyvY0K6nCs7nggYumAN+9uEuQ==
|
integrity sha512-YbwwqR/uYpeoP4pu043q+LTDLFBLApUP6VxRihdfNTqu4ubqMlGDLd6ErXhEgsyvY0K6nCs7nggYumAN+9uEuQ==
|
||||||
|
|
||||||
debug@^2.6.9:
|
debug@2.6.9, debug@^2.6.9:
|
||||||
version "2.6.9"
|
version "2.6.9"
|
||||||
resolved "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz"
|
resolved "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz"
|
||||||
integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==
|
integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==
|
||||||
dependencies:
|
dependencies:
|
||||||
ms "2.0.0"
|
ms "2.0.0"
|
||||||
|
|
||||||
debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.4, debug@^4.4.0, debug@^4.4.1, debug@4:
|
debug@4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.4, debug@^4.4.0, debug@^4.4.1:
|
||||||
version "4.4.3"
|
version "4.4.3"
|
||||||
resolved "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz"
|
resolved "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz"
|
||||||
integrity sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==
|
integrity sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==
|
||||||
dependencies:
|
dependencies:
|
||||||
ms "^2.1.3"
|
ms "^2.1.3"
|
||||||
|
|
||||||
debug@2.6.9:
|
|
||||||
version "2.6.9"
|
|
||||||
resolved "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz"
|
|
||||||
integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==
|
|
||||||
dependencies:
|
|
||||||
ms "2.0.0"
|
|
||||||
|
|
||||||
decamelize@^1.2.0:
|
decamelize@^1.2.0:
|
||||||
version "1.2.0"
|
version "1.2.0"
|
||||||
resolved "https://registry.npmmirror.com/decamelize/-/decamelize-1.2.0.tgz"
|
resolved "https://registry.npmmirror.com/decamelize/-/decamelize-1.2.0.tgz"
|
||||||
@ -3242,7 +3240,7 @@ eslint-plugin-react@^7.30.1:
|
|||||||
string.prototype.matchall "^4.0.12"
|
string.prototype.matchall "^4.0.12"
|
||||||
string.prototype.repeat "^1.0.0"
|
string.prototype.repeat "^1.0.0"
|
||||||
|
|
||||||
eslint-scope@^5.1.1, eslint-scope@5.1.1:
|
eslint-scope@5.1.1, eslint-scope@^5.1.1:
|
||||||
version "5.1.1"
|
version "5.1.1"
|
||||||
resolved "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz"
|
resolved "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz"
|
||||||
integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==
|
integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==
|
||||||
@ -3263,22 +3261,12 @@ eslint-visitor-keys@^2.1.0:
|
|||||||
resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz"
|
resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz"
|
||||||
integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==
|
integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==
|
||||||
|
|
||||||
eslint-visitor-keys@^3.3.0:
|
eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1, eslint-visitor-keys@^3.4.3:
|
||||||
version "3.4.3"
|
version "3.4.3"
|
||||||
resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz"
|
resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz"
|
||||||
integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==
|
integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==
|
||||||
|
|
||||||
eslint-visitor-keys@^3.4.1:
|
eslint@^8.19.0:
|
||||||
version "3.4.3"
|
|
||||||
resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz"
|
|
||||||
integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==
|
|
||||||
|
|
||||||
eslint-visitor-keys@^3.4.3:
|
|
||||||
version "3.4.3"
|
|
||||||
resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz"
|
|
||||||
integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==
|
|
||||||
|
|
||||||
"eslint@^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7", "eslint@^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0", "eslint@^3.17.0 || ^4 || ^5 || ^6 || ^7 || ^8", "eslint@^6.0.0 || ^7.0.0 || ^8.0.0", "eslint@^6.0.0 || ^7.0.0 || >=8.0.0", "eslint@^7.0.0 || ^8.0.0", "eslint@^7.5.0 || ^8.0.0 || ^9.0.0", eslint@^8.1.0, eslint@^8.19.0, eslint@^8.56.0, eslint@>=4.19.1, eslint@>=7.0.0, eslint@>=8:
|
|
||||||
version "8.57.1"
|
version "8.57.1"
|
||||||
resolved "https://registry.npmjs.org/eslint/-/eslint-8.57.1.tgz"
|
resolved "https://registry.npmjs.org/eslint/-/eslint-8.57.1.tgz"
|
||||||
integrity sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==
|
integrity sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==
|
||||||
@ -3495,15 +3483,7 @@ finalhandler@1.1.2:
|
|||||||
statuses "~1.5.0"
|
statuses "~1.5.0"
|
||||||
unpipe "~1.0.0"
|
unpipe "~1.0.0"
|
||||||
|
|
||||||
find-up@^4.0.0:
|
find-up@^4.0.0, find-up@^4.1.0:
|
||||||
version "4.1.0"
|
|
||||||
resolved "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz"
|
|
||||||
integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==
|
|
||||||
dependencies:
|
|
||||||
locate-path "^5.0.0"
|
|
||||||
path-exists "^4.0.0"
|
|
||||||
|
|
||||||
find-up@^4.1.0:
|
|
||||||
version "4.1.0"
|
version "4.1.0"
|
||||||
resolved "https://registry.npmmirror.com/find-up/-/find-up-4.1.0.tgz"
|
resolved "https://registry.npmmirror.com/find-up/-/find-up-4.1.0.tgz"
|
||||||
integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==
|
integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==
|
||||||
@ -3815,7 +3795,7 @@ human-signals@^2.1.0:
|
|||||||
resolved "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz"
|
resolved "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz"
|
||||||
integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==
|
integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==
|
||||||
|
|
||||||
i18next@^25.7.3, "i18next@>= 25.6.2":
|
i18next@^25.7.3:
|
||||||
version "25.8.14"
|
version "25.8.14"
|
||||||
resolved "https://registry.npmmirror.com/i18next/-/i18next-25.8.14.tgz"
|
resolved "https://registry.npmmirror.com/i18next/-/i18next-25.8.14.tgz"
|
||||||
integrity sha512-paMUYkfWJMsWPeE/Hejcw+XLhHrQPehem+4wMo+uELnvIwvCG019L9sAIljwjCmEMtFQQO3YeitJY8Kctei3iA==
|
integrity sha512-paMUYkfWJMsWPeE/Hejcw+XLhHrQPehem+4wMo+uELnvIwvCG019L9sAIljwjCmEMtFQQO3YeitJY8Kctei3iA==
|
||||||
@ -3868,7 +3848,7 @@ inflight@^1.0.4:
|
|||||||
once "^1.3.0"
|
once "^1.3.0"
|
||||||
wrappy "1"
|
wrappy "1"
|
||||||
|
|
||||||
inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.3, inherits@2, inherits@2.0.4:
|
inherits@2, inherits@2.0.4, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.3:
|
||||||
version "2.0.4"
|
version "2.0.4"
|
||||||
resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz"
|
resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz"
|
||||||
integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
|
integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
|
||||||
@ -4131,14 +4111,7 @@ is-wsl@^1.1.0:
|
|||||||
resolved "https://registry.npmmirror.com/is-wsl/-/is-wsl-1.1.0.tgz"
|
resolved "https://registry.npmmirror.com/is-wsl/-/is-wsl-1.1.0.tgz"
|
||||||
integrity sha512-gfygJYZ2gLTDlmbWMI0CE2MwnFzSN/2SZfkMlItC4K/JBlsWVDB0bO6XhqcY13YXE7iMcAJnzTCJjPiTeJJ0Mw==
|
integrity sha512-gfygJYZ2gLTDlmbWMI0CE2MwnFzSN/2SZfkMlItC4K/JBlsWVDB0bO6XhqcY13YXE7iMcAJnzTCJjPiTeJJ0Mw==
|
||||||
|
|
||||||
is-wsl@^2.1.1:
|
is-wsl@^2.1.1, is-wsl@^2.2.0:
|
||||||
version "2.2.0"
|
|
||||||
resolved "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz"
|
|
||||||
integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==
|
|
||||||
dependencies:
|
|
||||||
is-docker "^2.0.0"
|
|
||||||
|
|
||||||
is-wsl@^2.2.0:
|
|
||||||
version "2.2.0"
|
version "2.2.0"
|
||||||
resolved "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz"
|
resolved "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz"
|
||||||
integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==
|
integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==
|
||||||
@ -4424,7 +4397,7 @@ jest-resolve-dependencies@^29.7.0:
|
|||||||
jest-regex-util "^29.6.3"
|
jest-regex-util "^29.6.3"
|
||||||
jest-snapshot "^29.7.0"
|
jest-snapshot "^29.7.0"
|
||||||
|
|
||||||
jest-resolve@*, jest-resolve@^29.7.0:
|
jest-resolve@^29.7.0:
|
||||||
version "29.7.0"
|
version "29.7.0"
|
||||||
resolved "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.7.0.tgz"
|
resolved "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.7.0.tgz"
|
||||||
integrity sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==
|
integrity sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==
|
||||||
@ -4568,7 +4541,7 @@ jest-worker@^29.7.0:
|
|||||||
merge-stream "^2.0.0"
|
merge-stream "^2.0.0"
|
||||||
supports-color "^8.0.0"
|
supports-color "^8.0.0"
|
||||||
|
|
||||||
jest@*, jest@^29.6.3:
|
jest@^29.6.3:
|
||||||
version "29.7.0"
|
version "29.7.0"
|
||||||
resolved "https://registry.npmjs.org/jest/-/jest-29.7.0.tgz"
|
resolved "https://registry.npmjs.org/jest/-/jest-29.7.0.tgz"
|
||||||
integrity sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==
|
integrity sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==
|
||||||
@ -4842,7 +4815,7 @@ metro-cache@0.83.2:
|
|||||||
https-proxy-agent "^7.0.5"
|
https-proxy-agent "^7.0.5"
|
||||||
metro-core "0.83.2"
|
metro-core "0.83.2"
|
||||||
|
|
||||||
metro-config@^0.83.1, metro-config@0.83.2:
|
metro-config@0.83.2, metro-config@^0.83.1:
|
||||||
version "0.83.2"
|
version "0.83.2"
|
||||||
resolved "https://registry.npmjs.org/metro-config/-/metro-config-0.83.2.tgz"
|
resolved "https://registry.npmjs.org/metro-config/-/metro-config-0.83.2.tgz"
|
||||||
integrity sha512-1FjCcdBe3e3D08gSSiU9u3Vtxd7alGH3x/DNFqWDFf5NouX4kLgbVloDDClr1UrLz62c0fHh2Vfr9ecmrOZp+g==
|
integrity sha512-1FjCcdBe3e3D08gSSiU9u3Vtxd7alGH3x/DNFqWDFf5NouX4kLgbVloDDClr1UrLz62c0fHh2Vfr9ecmrOZp+g==
|
||||||
@ -4856,7 +4829,7 @@ metro-config@^0.83.1, metro-config@0.83.2:
|
|||||||
metro-runtime "0.83.2"
|
metro-runtime "0.83.2"
|
||||||
yaml "^2.6.1"
|
yaml "^2.6.1"
|
||||||
|
|
||||||
metro-core@^0.83.1, metro-core@0.83.2:
|
metro-core@0.83.2, metro-core@^0.83.1:
|
||||||
version "0.83.2"
|
version "0.83.2"
|
||||||
resolved "https://registry.npmjs.org/metro-core/-/metro-core-0.83.2.tgz"
|
resolved "https://registry.npmjs.org/metro-core/-/metro-core-0.83.2.tgz"
|
||||||
integrity sha512-8DRb0O82Br0IW77cNgKMLYWUkx48lWxUkvNUxVISyMkcNwE/9ywf1MYQUE88HaKwSrqne6kFgCSA/UWZoUT0Iw==
|
integrity sha512-8DRb0O82Br0IW77cNgKMLYWUkx48lWxUkvNUxVISyMkcNwE/9ywf1MYQUE88HaKwSrqne6kFgCSA/UWZoUT0Iw==
|
||||||
@ -4895,7 +4868,7 @@ metro-resolver@0.83.2:
|
|||||||
dependencies:
|
dependencies:
|
||||||
flow-enums-runtime "^0.0.6"
|
flow-enums-runtime "^0.0.6"
|
||||||
|
|
||||||
metro-runtime@^0.83.1, metro-runtime@0.83.2:
|
metro-runtime@0.83.2, metro-runtime@^0.83.1:
|
||||||
version "0.83.2"
|
version "0.83.2"
|
||||||
resolved "https://registry.npmjs.org/metro-runtime/-/metro-runtime-0.83.2.tgz"
|
resolved "https://registry.npmjs.org/metro-runtime/-/metro-runtime-0.83.2.tgz"
|
||||||
integrity sha512-nnsPtgRvFbNKwemqs0FuyFDzXLl+ezuFsUXDbX8o0SXOfsOPijqiQrf3kuafO1Zx1aUWf4NOrKJMAQP5EEHg9A==
|
integrity sha512-nnsPtgRvFbNKwemqs0FuyFDzXLl+ezuFsUXDbX8o0SXOfsOPijqiQrf3kuafO1Zx1aUWf4NOrKJMAQP5EEHg9A==
|
||||||
@ -4903,7 +4876,7 @@ metro-runtime@^0.83.1, metro-runtime@0.83.2:
|
|||||||
"@babel/runtime" "^7.25.0"
|
"@babel/runtime" "^7.25.0"
|
||||||
flow-enums-runtime "^0.0.6"
|
flow-enums-runtime "^0.0.6"
|
||||||
|
|
||||||
metro-source-map@^0.83.1, metro-source-map@0.83.2:
|
metro-source-map@0.83.2, metro-source-map@^0.83.1:
|
||||||
version "0.83.2"
|
version "0.83.2"
|
||||||
resolved "https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.83.2.tgz"
|
resolved "https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.83.2.tgz"
|
||||||
integrity sha512-5FL/6BSQvshIKjXOennt9upFngq2lFvDakZn5LfauIVq8+L4sxXewIlSTcxAtzbtjAIaXeOSVMtCJ5DdfCt9AA==
|
integrity sha512-5FL/6BSQvshIKjXOennt9upFngq2lFvDakZn5LfauIVq8+L4sxXewIlSTcxAtzbtjAIaXeOSVMtCJ5DdfCt9AA==
|
||||||
@ -4962,7 +4935,7 @@ metro-transform-worker@0.83.2:
|
|||||||
metro-transform-plugins "0.83.2"
|
metro-transform-plugins "0.83.2"
|
||||||
nullthrows "^1.1.1"
|
nullthrows "^1.1.1"
|
||||||
|
|
||||||
metro@^0.83.1, metro@0.83.2:
|
metro@0.83.2, metro@^0.83.1:
|
||||||
version "0.83.2"
|
version "0.83.2"
|
||||||
resolved "https://registry.npmjs.org/metro/-/metro-0.83.2.tgz"
|
resolved "https://registry.npmjs.org/metro/-/metro-0.83.2.tgz"
|
||||||
integrity sha512-HQgs9H1FyVbRptNSMy/ImchTTE5vS2MSqLoOo7hbDoBq6hPPZokwJvBMwrYSxdjQZmLXz2JFZtdvS+ZfgTc9yw==
|
integrity sha512-HQgs9H1FyVbRptNSMy/ImchTTE5vS2MSqLoOo7hbDoBq6hPPZokwJvBMwrYSxdjQZmLXz2JFZtdvS+ZfgTc9yw==
|
||||||
@ -5016,16 +4989,16 @@ micromatch@^4.0.4, micromatch@^4.0.8:
|
|||||||
braces "^3.0.3"
|
braces "^3.0.3"
|
||||||
picomatch "^2.3.1"
|
picomatch "^2.3.1"
|
||||||
|
|
||||||
"mime-db@>= 1.43.0 < 2":
|
|
||||||
version "1.54.0"
|
|
||||||
resolved "https://registry.npmmirror.com/mime-db/-/mime-db-1.54.0.tgz"
|
|
||||||
integrity sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==
|
|
||||||
|
|
||||||
mime-db@1.52.0:
|
mime-db@1.52.0:
|
||||||
version "1.52.0"
|
version "1.52.0"
|
||||||
resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz"
|
resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz"
|
||||||
integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==
|
integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==
|
||||||
|
|
||||||
|
"mime-db@>= 1.43.0 < 2":
|
||||||
|
version "1.54.0"
|
||||||
|
resolved "https://registry.npmmirror.com/mime-db/-/mime-db-1.54.0.tgz"
|
||||||
|
integrity sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==
|
||||||
|
|
||||||
mime-types@^2.1.27, mime-types@~2.1.34:
|
mime-types@^2.1.27, mime-types@~2.1.34:
|
||||||
version "2.1.35"
|
version "2.1.35"
|
||||||
resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz"
|
resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz"
|
||||||
@ -5033,43 +5006,22 @@ mime-types@^2.1.27, mime-types@~2.1.34:
|
|||||||
dependencies:
|
dependencies:
|
||||||
mime-db "1.52.0"
|
mime-db "1.52.0"
|
||||||
|
|
||||||
mime@^2.4.1:
|
|
||||||
version "2.6.0"
|
|
||||||
resolved "https://registry.npmmirror.com/mime/-/mime-2.6.0.tgz"
|
|
||||||
integrity sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==
|
|
||||||
|
|
||||||
mime@1.6.0:
|
mime@1.6.0:
|
||||||
version "1.6.0"
|
version "1.6.0"
|
||||||
resolved "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz"
|
resolved "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz"
|
||||||
integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==
|
integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==
|
||||||
|
|
||||||
|
mime@^2.4.1:
|
||||||
|
version "2.6.0"
|
||||||
|
resolved "https://registry.npmmirror.com/mime/-/mime-2.6.0.tgz"
|
||||||
|
integrity sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==
|
||||||
|
|
||||||
mimic-fn@^2.1.0:
|
mimic-fn@^2.1.0:
|
||||||
version "2.1.0"
|
version "2.1.0"
|
||||||
resolved "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz"
|
resolved "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz"
|
||||||
integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==
|
integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==
|
||||||
|
|
||||||
minimatch@^3.0.4:
|
minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2:
|
||||||
version "3.1.2"
|
|
||||||
resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz"
|
|
||||||
integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==
|
|
||||||
dependencies:
|
|
||||||
brace-expansion "^1.1.7"
|
|
||||||
|
|
||||||
minimatch@^3.0.5:
|
|
||||||
version "3.1.2"
|
|
||||||
resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz"
|
|
||||||
integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==
|
|
||||||
dependencies:
|
|
||||||
brace-expansion "^1.1.7"
|
|
||||||
|
|
||||||
minimatch@^3.1.1:
|
|
||||||
version "3.1.2"
|
|
||||||
resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz"
|
|
||||||
integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==
|
|
||||||
dependencies:
|
|
||||||
brace-expansion "^1.1.7"
|
|
||||||
|
|
||||||
minimatch@^3.1.2:
|
|
||||||
version "3.1.2"
|
version "3.1.2"
|
||||||
resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz"
|
resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz"
|
||||||
integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==
|
integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==
|
||||||
@ -5088,16 +5040,16 @@ mkdirp@^1.0.4:
|
|||||||
resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz"
|
resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz"
|
||||||
integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==
|
integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==
|
||||||
|
|
||||||
ms@^2.1.3, ms@2.1.3:
|
|
||||||
version "2.1.3"
|
|
||||||
resolved "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz"
|
|
||||||
integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==
|
|
||||||
|
|
||||||
ms@2.0.0:
|
ms@2.0.0:
|
||||||
version "2.0.0"
|
version "2.0.0"
|
||||||
resolved "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz"
|
resolved "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz"
|
||||||
integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==
|
integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==
|
||||||
|
|
||||||
|
ms@2.1.3, ms@^2.1.3:
|
||||||
|
version "2.1.3"
|
||||||
|
resolved "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz"
|
||||||
|
integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==
|
||||||
|
|
||||||
nanoid@^3.3.11:
|
nanoid@^3.3.11:
|
||||||
version "3.3.11"
|
version "3.3.11"
|
||||||
resolved "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz"
|
resolved "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz"
|
||||||
@ -5108,16 +5060,16 @@ natural-compare@^1.4.0:
|
|||||||
resolved "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz"
|
resolved "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz"
|
||||||
integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==
|
integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==
|
||||||
|
|
||||||
negotiator@~0.6.4:
|
|
||||||
version "0.6.4"
|
|
||||||
resolved "https://registry.npmmirror.com/negotiator/-/negotiator-0.6.4.tgz"
|
|
||||||
integrity sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w==
|
|
||||||
|
|
||||||
negotiator@0.6.3:
|
negotiator@0.6.3:
|
||||||
version "0.6.3"
|
version "0.6.3"
|
||||||
resolved "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz"
|
resolved "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz"
|
||||||
integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==
|
integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==
|
||||||
|
|
||||||
|
negotiator@~0.6.4:
|
||||||
|
version "0.6.4"
|
||||||
|
resolved "https://registry.npmmirror.com/negotiator/-/negotiator-0.6.4.tgz"
|
||||||
|
integrity sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w==
|
||||||
|
|
||||||
nocache@^3.0.1:
|
nocache@^3.0.1:
|
||||||
version "3.0.4"
|
version "3.0.4"
|
||||||
resolved "https://registry.npmmirror.com/nocache/-/nocache-3.0.4.tgz"
|
resolved "https://registry.npmmirror.com/nocache/-/nocache-3.0.4.tgz"
|
||||||
@ -5219,13 +5171,6 @@ object.values@^1.1.6, object.values@^1.2.1:
|
|||||||
define-properties "^1.2.1"
|
define-properties "^1.2.1"
|
||||||
es-object-atoms "^1.0.0"
|
es-object-atoms "^1.0.0"
|
||||||
|
|
||||||
on-finished@~2.3.0:
|
|
||||||
version "2.3.0"
|
|
||||||
resolved "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz"
|
|
||||||
integrity sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==
|
|
||||||
dependencies:
|
|
||||||
ee-first "1.1.1"
|
|
||||||
|
|
||||||
on-finished@2.4.1:
|
on-finished@2.4.1:
|
||||||
version "2.4.1"
|
version "2.4.1"
|
||||||
resolved "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz"
|
resolved "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz"
|
||||||
@ -5233,6 +5178,13 @@ on-finished@2.4.1:
|
|||||||
dependencies:
|
dependencies:
|
||||||
ee-first "1.1.1"
|
ee-first "1.1.1"
|
||||||
|
|
||||||
|
on-finished@~2.3.0:
|
||||||
|
version "2.3.0"
|
||||||
|
resolved "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz"
|
||||||
|
integrity sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==
|
||||||
|
dependencies:
|
||||||
|
ee-first "1.1.1"
|
||||||
|
|
||||||
on-headers@~1.1.0:
|
on-headers@~1.1.0:
|
||||||
version "1.1.0"
|
version "1.1.0"
|
||||||
resolved "https://registry.npmmirror.com/on-headers/-/on-headers-1.1.0.tgz"
|
resolved "https://registry.npmmirror.com/on-headers/-/on-headers-1.1.0.tgz"
|
||||||
@ -5415,7 +5367,7 @@ prelude-ls@^1.2.1:
|
|||||||
resolved "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz"
|
resolved "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz"
|
||||||
integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==
|
integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==
|
||||||
|
|
||||||
prettier@>=2, prettier@2.8.8:
|
prettier@2.8.8:
|
||||||
version "2.8.8"
|
version "2.8.8"
|
||||||
resolved "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz"
|
resolved "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz"
|
||||||
integrity sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==
|
integrity sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==
|
||||||
@ -5513,12 +5465,12 @@ react-freeze@^1.0.0:
|
|||||||
resolved "https://registry.npmjs.org/react-freeze/-/react-freeze-1.0.4.tgz"
|
resolved "https://registry.npmjs.org/react-freeze/-/react-freeze-1.0.4.tgz"
|
||||||
integrity sha512-r4F0Sec0BLxWicc7HEyo2x3/2icUTrRmDjaaRyzzn+7aDyFZliszMDOgLVwSnQnYENOlL1o569Ze2HZefk8clA==
|
integrity sha512-r4F0Sec0BLxWicc7HEyo2x3/2icUTrRmDjaaRyzzn+7aDyFZliszMDOgLVwSnQnYENOlL1o569Ze2HZefk8clA==
|
||||||
|
|
||||||
react-i18next@^16.5.0:
|
react-i18next@16.5.0:
|
||||||
version "16.5.6"
|
version "16.5.0"
|
||||||
resolved "https://registry.npmmirror.com/react-i18next/-/react-i18next-16.5.6.tgz"
|
resolved "https://repo.huaweicloud.com/repository/npm/react-i18next/-/react-i18next-16.5.0.tgz#107e4323742344a2f8792feb905cea551da6fd2c"
|
||||||
integrity sha512-Ua7V2/efA88ido7KyK51fb8Ki8M/sRfW8LR/rZ/9ZKr2luhuTI7kwYZN5agT1rWG7aYm5G0RYE/6JR8KJoCMDw==
|
integrity sha512-IMpPTyCTKxEj8klCrLKUTIUa8uYTd851+jcu2fJuUB9Agkk9Qq8asw4omyeHVnOXHrLgQJGTm5zTvn8HpaPiqw==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@babel/runtime" "^7.28.4"
|
"@babel/runtime" "^7.27.6"
|
||||||
html-parse-stringify "^3.0.1"
|
html-parse-stringify "^3.0.1"
|
||||||
use-sync-external-store "^1.6.0"
|
use-sync-external-store "^1.6.0"
|
||||||
|
|
||||||
@ -5560,7 +5512,7 @@ react-native-is-edge-to-edge@^1.2.1:
|
|||||||
resolved "https://registry.npmjs.org/react-native-is-edge-to-edge/-/react-native-is-edge-to-edge-1.2.1.tgz"
|
resolved "https://registry.npmjs.org/react-native-is-edge-to-edge/-/react-native-is-edge-to-edge-1.2.1.tgz"
|
||||||
integrity sha512-FLbPWl/MyYQWz+KwqOZsSyj2JmLKglHatd3xLZWskXOpRaio4LfEDEz8E/A6uD8QoTHW6Aobw1jbEwK7KMgR7Q==
|
integrity sha512-FLbPWl/MyYQWz+KwqOZsSyj2JmLKglHatd3xLZWskXOpRaio4LfEDEz8E/A6uD8QoTHW6Aobw1jbEwK7KMgR7Q==
|
||||||
|
|
||||||
react-native-safe-area-context@^5.6.1, "react-native-safe-area-context@>= 4.0.0":
|
react-native-safe-area-context@^5.6.1:
|
||||||
version "5.6.1"
|
version "5.6.1"
|
||||||
resolved "https://registry.npmjs.org/react-native-safe-area-context/-/react-native-safe-area-context-5.6.1.tgz"
|
resolved "https://registry.npmjs.org/react-native-safe-area-context/-/react-native-safe-area-context-5.6.1.tgz"
|
||||||
integrity sha512-/wJE58HLEAkATzhhX1xSr+fostLsK8Q97EfpfMDKo8jlOc1QKESSX/FQrhk7HhQH/2uSaox4Y86sNaI02kteiA==
|
integrity sha512-/wJE58HLEAkATzhhX1xSr+fostLsK8Q97EfpfMDKo8jlOc1QKESSX/FQrhk7HhQH/2uSaox4Y86sNaI02kteiA==
|
||||||
@ -5570,7 +5522,7 @@ react-native-safearea-height@^1.0.8:
|
|||||||
resolved "https://registry.npmmirror.com/react-native-safearea-height/-/react-native-safearea-height-1.0.8.tgz"
|
resolved "https://registry.npmmirror.com/react-native-safearea-height/-/react-native-safearea-height-1.0.8.tgz"
|
||||||
integrity sha512-nAACsA6HwbMI5zUKHUy4IOvqrohA2AFYB31Yhv6JOXbok6S7VOjOWJZNJx4dllECREon254Y2ZlqeVGUb2eqgQ==
|
integrity sha512-nAACsA6HwbMI5zUKHUy4IOvqrohA2AFYB31Yhv6JOXbok6S7VOjOWJZNJx4dllECREon254Y2ZlqeVGUb2eqgQ==
|
||||||
|
|
||||||
react-native-screens@^4.16.0, "react-native-screens@>= 4.0.0":
|
react-native-screens@^4.16.0:
|
||||||
version "4.16.0"
|
version "4.16.0"
|
||||||
resolved "https://registry.npmjs.org/react-native-screens/-/react-native-screens-4.16.0.tgz"
|
resolved "https://registry.npmjs.org/react-native-screens/-/react-native-screens-4.16.0.tgz"
|
||||||
integrity sha512-yIAyh7F/9uWkOzCi1/2FqvNvK6Wb9Y1+Kzn16SuGfN9YFJDTbwlzGRvePCNTOX0recpLQF3kc2FmvMUhyTCH1Q==
|
integrity sha512-yIAyh7F/9uWkOzCi1/2FqvNvK6Wb9Y1+Kzn16SuGfN9YFJDTbwlzGRvePCNTOX0recpLQF3kc2FmvMUhyTCH1Q==
|
||||||
@ -5592,7 +5544,7 @@ react-native-vector-icons@^10.3.0:
|
|||||||
prop-types "^15.7.2"
|
prop-types "^15.7.2"
|
||||||
yargs "^16.1.1"
|
yargs "^16.1.1"
|
||||||
|
|
||||||
react-native@*, "react-native@^0.0.0-0 || >=0.65 <1.0", react-native@0.81.4:
|
react-native@0.81.4:
|
||||||
version "0.81.4"
|
version "0.81.4"
|
||||||
resolved "https://registry.npmjs.org/react-native/-/react-native-0.81.4.tgz"
|
resolved "https://registry.npmjs.org/react-native/-/react-native-0.81.4.tgz"
|
||||||
integrity sha512-bt5bz3A/+Cv46KcjV0VQa+fo7MKxs17RCcpzjftINlen4ZDUl0I6Ut+brQ2FToa5oD0IB0xvQHfmsg2EDqsZdQ==
|
integrity sha512-bt5bz3A/+Cv46KcjV0VQa+fo7MKxs17RCcpzjftINlen4ZDUl0I6Ut+brQ2FToa5oD0IB0xvQHfmsg2EDqsZdQ==
|
||||||
@ -5645,7 +5597,7 @@ react-test-renderer@19.1.0:
|
|||||||
react-is "^19.1.0"
|
react-is "^19.1.0"
|
||||||
scheduler "^0.26.0"
|
scheduler "^0.26.0"
|
||||||
|
|
||||||
react@*, "react@^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", react@^19.1.0, "react@>= 16.8.0", "react@>= 18.2.0", react@>=16.8, react@>=17.0.0, react@19.1.0:
|
react@19.1.0:
|
||||||
version "19.1.0"
|
version "19.1.0"
|
||||||
resolved "https://registry.npmjs.org/react/-/react-19.1.0.tgz"
|
resolved "https://registry.npmjs.org/react/-/react-19.1.0.tgz"
|
||||||
integrity sha512-FS+XFBNvn3GTAWq26joslQgWNoFu08F4kl0J4CgdNKADkdSGXQyTCnKteIAJy96Br6YbpEU1LSzV5dYtjMkMDg==
|
integrity sha512-FS+XFBNvn3GTAWq26joslQgWNoFu08F4kl0J4CgdNKADkdSGXQyTCnKteIAJy96Br6YbpEU1LSzV5dYtjMkMDg==
|
||||||
@ -5819,7 +5771,7 @@ safe-array-concat@^1.1.3:
|
|||||||
has-symbols "^1.1.0"
|
has-symbols "^1.1.0"
|
||||||
isarray "^2.0.5"
|
isarray "^2.0.5"
|
||||||
|
|
||||||
safe-buffer@~5.2.0, safe-buffer@5.2.1:
|
safe-buffer@5.2.1, safe-buffer@~5.2.0:
|
||||||
version "5.2.1"
|
version "5.2.1"
|
||||||
resolved "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.2.1.tgz"
|
resolved "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.2.1.tgz"
|
||||||
integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==
|
integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==
|
||||||
@ -5841,7 +5793,7 @@ safe-regex-test@^1.1.0:
|
|||||||
es-errors "^1.3.0"
|
es-errors "^1.3.0"
|
||||||
is-regex "^1.2.1"
|
is-regex "^1.2.1"
|
||||||
|
|
||||||
scheduler@^0.26.0, scheduler@0.26.0:
|
scheduler@0.26.0, scheduler@^0.26.0:
|
||||||
version "0.26.0"
|
version "0.26.0"
|
||||||
resolved "https://registry.npmjs.org/scheduler/-/scheduler-0.26.0.tgz"
|
resolved "https://registry.npmjs.org/scheduler/-/scheduler-0.26.0.tgz"
|
||||||
integrity sha512-NlHwttCI/l5gCPR3D1nNXtWABUmBwvZpEQiD4IXSbIDq8BzLIK/7Ir5gTFSGZDUu37K5cMNp0hFtzO38sC7gWA==
|
integrity sha512-NlHwttCI/l5gCPR3D1nNXtWABUmBwvZpEQiD4IXSbIDq8BzLIK/7Ir5gTFSGZDUu37K5cMNp0hFtzO38sC7gWA==
|
||||||
@ -5851,32 +5803,7 @@ semver@^6.3.0, semver@^6.3.1:
|
|||||||
resolved "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz"
|
resolved "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz"
|
||||||
integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==
|
integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==
|
||||||
|
|
||||||
semver@^7.1.3:
|
semver@^7.1.3, semver@^7.3.7, semver@^7.5.2, semver@^7.5.3, semver@^7.5.4, semver@^7.6.0:
|
||||||
version "7.7.2"
|
|
||||||
resolved "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz"
|
|
||||||
integrity sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==
|
|
||||||
|
|
||||||
semver@^7.3.7:
|
|
||||||
version "7.7.2"
|
|
||||||
resolved "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz"
|
|
||||||
integrity sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==
|
|
||||||
|
|
||||||
semver@^7.5.2:
|
|
||||||
version "7.7.2"
|
|
||||||
resolved "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz"
|
|
||||||
integrity sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==
|
|
||||||
|
|
||||||
semver@^7.5.3:
|
|
||||||
version "7.7.2"
|
|
||||||
resolved "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz"
|
|
||||||
integrity sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==
|
|
||||||
|
|
||||||
semver@^7.5.4:
|
|
||||||
version "7.7.2"
|
|
||||||
resolved "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz"
|
|
||||||
integrity sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==
|
|
||||||
|
|
||||||
semver@^7.6.0:
|
|
||||||
version "7.7.2"
|
version "7.7.2"
|
||||||
resolved "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz"
|
resolved "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz"
|
||||||
integrity sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==
|
integrity sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==
|
||||||
@ -6044,14 +5971,6 @@ slice-ansi@^2.0.0:
|
|||||||
astral-regex "^1.0.0"
|
astral-regex "^1.0.0"
|
||||||
is-fullwidth-code-point "^2.0.0"
|
is-fullwidth-code-point "^2.0.0"
|
||||||
|
|
||||||
source-map-support@~0.5.20:
|
|
||||||
version "0.5.21"
|
|
||||||
resolved "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz"
|
|
||||||
integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==
|
|
||||||
dependencies:
|
|
||||||
buffer-from "^1.0.0"
|
|
||||||
source-map "^0.6.0"
|
|
||||||
|
|
||||||
source-map-support@0.5.13:
|
source-map-support@0.5.13:
|
||||||
version "0.5.13"
|
version "0.5.13"
|
||||||
resolved "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz"
|
resolved "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz"
|
||||||
@ -6060,6 +5979,14 @@ source-map-support@0.5.13:
|
|||||||
buffer-from "^1.0.0"
|
buffer-from "^1.0.0"
|
||||||
source-map "^0.6.0"
|
source-map "^0.6.0"
|
||||||
|
|
||||||
|
source-map-support@~0.5.20:
|
||||||
|
version "0.5.21"
|
||||||
|
resolved "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz"
|
||||||
|
integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==
|
||||||
|
dependencies:
|
||||||
|
buffer-from "^1.0.0"
|
||||||
|
source-map "^0.6.0"
|
||||||
|
|
||||||
source-map@^0.5.6:
|
source-map@^0.5.6:
|
||||||
version "0.5.7"
|
version "0.5.7"
|
||||||
resolved "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz"
|
resolved "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz"
|
||||||
@ -6099,16 +6026,16 @@ stacktrace-parser@^0.1.10:
|
|||||||
dependencies:
|
dependencies:
|
||||||
type-fest "^0.7.1"
|
type-fest "^0.7.1"
|
||||||
|
|
||||||
statuses@~1.5.0:
|
|
||||||
version "1.5.0"
|
|
||||||
resolved "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz"
|
|
||||||
integrity sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==
|
|
||||||
|
|
||||||
statuses@2.0.1:
|
statuses@2.0.1:
|
||||||
version "2.0.1"
|
version "2.0.1"
|
||||||
resolved "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz"
|
resolved "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz"
|
||||||
integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==
|
integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==
|
||||||
|
|
||||||
|
statuses@~1.5.0:
|
||||||
|
version "1.5.0"
|
||||||
|
resolved "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz"
|
||||||
|
integrity sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==
|
||||||
|
|
||||||
stop-iteration-iterator@^1.1.0:
|
stop-iteration-iterator@^1.1.0:
|
||||||
version "1.1.0"
|
version "1.1.0"
|
||||||
resolved "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.1.0.tgz"
|
resolved "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.1.0.tgz"
|
||||||
@ -6122,13 +6049,6 @@ strict-uri-encode@^2.0.0:
|
|||||||
resolved "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz"
|
resolved "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz"
|
||||||
integrity sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ==
|
integrity sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ==
|
||||||
|
|
||||||
string_decoder@^1.1.1:
|
|
||||||
version "1.3.0"
|
|
||||||
resolved "https://registry.npmmirror.com/string_decoder/-/string_decoder-1.3.0.tgz"
|
|
||||||
integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==
|
|
||||||
dependencies:
|
|
||||||
safe-buffer "~5.2.0"
|
|
||||||
|
|
||||||
string-length@^4.0.1:
|
string-length@^4.0.1:
|
||||||
version "4.0.2"
|
version "4.0.2"
|
||||||
resolved "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz"
|
resolved "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz"
|
||||||
@ -6210,14 +6130,14 @@ string.prototype.trimstart@^1.0.8:
|
|||||||
define-properties "^1.2.1"
|
define-properties "^1.2.1"
|
||||||
es-object-atoms "^1.0.0"
|
es-object-atoms "^1.0.0"
|
||||||
|
|
||||||
strip-ansi@^5.0.0:
|
string_decoder@^1.1.1:
|
||||||
version "5.2.0"
|
version "1.3.0"
|
||||||
resolved "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-5.2.0.tgz"
|
resolved "https://registry.npmmirror.com/string_decoder/-/string_decoder-1.3.0.tgz"
|
||||||
integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==
|
integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==
|
||||||
dependencies:
|
dependencies:
|
||||||
ansi-regex "^4.1.0"
|
safe-buffer "~5.2.0"
|
||||||
|
|
||||||
strip-ansi@^5.2.0:
|
strip-ansi@^5.0.0, strip-ansi@^5.2.0:
|
||||||
version "5.2.0"
|
version "5.2.0"
|
||||||
resolved "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-5.2.0.tgz"
|
resolved "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-5.2.0.tgz"
|
||||||
integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==
|
integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==
|
||||||
@ -6410,7 +6330,7 @@ typed-array-length@^1.0.7:
|
|||||||
possible-typed-array-names "^1.0.0"
|
possible-typed-array-names "^1.0.0"
|
||||||
reflect.getprototypeof "^1.0.6"
|
reflect.getprototypeof "^1.0.6"
|
||||||
|
|
||||||
typescript@^5, typescript@^5.8.3, "typescript@>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta", typescript@>=4.2.0, typescript@>=4.9.5:
|
typescript@^5.8.3:
|
||||||
version "5.9.2"
|
version "5.9.2"
|
||||||
resolved "https://registry.npmjs.org/typescript/-/typescript-5.9.2.tgz"
|
resolved "https://registry.npmjs.org/typescript/-/typescript-5.9.2.tgz"
|
||||||
integrity sha512-CWBzXQrc/qOkhidw1OzBTQuYRbfyxDXJMVJ1XNwUHGROVmuaeiEm3OslpZ1RV96d7SKKjZKrSJu3+t/xlw3R9A==
|
integrity sha512-CWBzXQrc/qOkhidw1OzBTQuYRbfyxDXJMVJ1XNwUHGROVmuaeiEm3OslpZ1RV96d7SKKjZKrSJu3+t/xlw3R9A==
|
||||||
@ -6659,12 +6579,7 @@ ws@^6.2.3:
|
|||||||
dependencies:
|
dependencies:
|
||||||
async-limiter "~1.0.0"
|
async-limiter "~1.0.0"
|
||||||
|
|
||||||
ws@^7:
|
ws@^7, ws@^7.5.10:
|
||||||
version "7.5.10"
|
|
||||||
resolved "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz"
|
|
||||||
integrity sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==
|
|
||||||
|
|
||||||
ws@^7.5.10:
|
|
||||||
version "7.5.10"
|
version "7.5.10"
|
||||||
resolved "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz"
|
resolved "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz"
|
||||||
integrity sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==
|
integrity sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user