DX: Auto format on save (#526)

* save wip

* use elint instead of prettier to sort imports

* set imports to warn

* sync prettier settigns

* update prettier settings

* save working version

* fix export and disable mobile pipeline for now

* limit auto formatting to the app folder
This commit is contained in:
Justin Hernandez
2025-04-21 15:10:56 -05:00
committed by GitHub
parent 28ec407e49
commit 3c51feafdf
70 changed files with 322 additions and 301 deletions

View File

@@ -44,6 +44,8 @@ on:
jobs:
build-ios:
# disable for now, will fix soon
if: false
runs-on: macos-latest
steps:
- name: Set up Xcode
@@ -309,41 +311,41 @@ jobs:
- name: Remove project.pbxproj updates we don't want to commit
run: |
PBXPROJ_FILE="app/ios/Self.xcodeproj/project.pbxproj"
# Create a temporary file to store version info
echo "Extracting version information..."
rm -f versions.txt
grep -E 'CURRENT_PROJECT_VERSION = [0-9]+;|MARKETING_VERSION = [0-9]+\.[0-9]+\.[0-9]+;' "${PBXPROJ_FILE}" > versions.txt
# Check if we have version information
if [ -s versions.txt ]; then
echo "Found version information. Resetting file and re-applying versions..."
# Store the version values
CURRENT_VERSION=$(grep 'CURRENT_PROJECT_VERSION' versions.txt | head -1 | sed 's/.*CURRENT_PROJECT_VERSION = \([0-9]*\);.*/\1/')
MARKETING_VERSION=$(grep 'MARKETING_VERSION' versions.txt | head -1 | sed 's/.*MARKETING_VERSION = \([0-9]*\.[0-9]*\.[0-9]*\);.*/\1/')
echo "Current version: $CURRENT_VERSION"
echo "Marketing version: $MARKETING_VERSION"
# Reset the file to HEAD
git checkout HEAD -- "${PBXPROJ_FILE}"
# Update the versions if they exist
if [ ! -z "$CURRENT_VERSION" ]; then
sed -i '' "s/\(CURRENT_PROJECT_VERSION = \)[0-9]*;/\1$CURRENT_VERSION;/g" "${PBXPROJ_FILE}"
fi
if [ ! -z "$MARKETING_VERSION" ]; then
sed -i '' "s/\(MARKETING_VERSION = \)[0-9]*\.[0-9]*\.[0-9]*;/\1$MARKETING_VERSION;/g" "${PBXPROJ_FILE}"
fi
echo "Version information successfully applied."
else
echo "No version information found. Resetting file..."
git checkout HEAD -- "${PBXPROJ_FILE}"
fi
# Clean up
rm -f versions.txt
@@ -361,6 +363,8 @@ jobs:
commit_paths: "./app/ios/OpenPassport/Info.plist ./app/ios/Self.xcodeproj/project.pbxproj"
build-android:
# disable for now, will fix soon
if: false
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

12
.prettierrc Normal file
View File

@@ -0,0 +1,12 @@
{
"arrowParens": "avoid",
"bracketSameLine": false,
"bracketSpacing": true,
"singleQuote": true,
"trailingComma": "all",
"tabWidth": 2,
"useTabs": false,
"semi": true,
"endOfLine": "auto",
"parser": "typescript"
}

73
.vscode/settings.json vendored Normal file
View File

@@ -0,0 +1,73 @@
{
// Formatting & Linting
"editor.formatOnSave": false,
"editor.formatOnPaste": false,
// Path-specific formatting
"[**/app/**]": {
"editor.formatOnSave": true
},
// ESLint Configuration
"eslint.run": "onType",
"eslint.alwaysShowStatus": true,
"eslint.format.enable": true,
"eslint.lintTask.enable": true,
"eslint.quiet": false,
"eslint.validate": [
"javascript",
"javascriptreact",
"typescript",
"typescriptreact"
],
"eslint.probe": [
"javascript",
"javascriptreact",
"typescript",
"typescriptreact"
],
// Auto-fix Actions
"editor.codeActionsOnSave": {
"source.fixAll.eslint": "always",
"source.organizeImports": "always"
},
"editor.codeActionsOnSave.mode": "all",
// TypeScript Specific Rules
"typescript.format.enable": false, // Disable VS Code's built-in formatter for TypeScript
"[typescript]": {
"editor.defaultFormatter": null // Let ESLint handle TypeScript formatting
},
"[typescriptreact]": {
"editor.defaultFormatter": null // Let ESLint handle TypeScript React formatting
},
// Indentation & Whitespace
"editor.tabSize": 2,
"editor.insertSpaces": true,
"editor.indentSize": "tabSize",
"editor.detectIndentation": true,
"editor.useTabStops": true,
"editor.stickyTabStops": true,
"editor.trimAutoWhitespace": true,
"files.trimTrailingWhitespace": true,
"files.insertFinalNewline": true,
"files.trimFinalNewlines": true,
"javascript.format.insertSpaceAfterOpeningAndBeforeClosingEmptyBraces": false,
"typescript.format.insertSpaceAfterOpeningAndBeforeClosingEmptyBraces": false,
// Editor Visual Aids
"editor.renderWhitespace": "selection",
"editor.renderControlCharacters": true,
"editor.rulers": [100],
"editor.wordWrap": "off",
"editor.wrappingIndent": "none",
// Editor suggestions
"editor.quickSuggestions": {
"other": true,
"comments": false,
"strings": false
}
}

View File

@@ -1,9 +1,29 @@
module.exports = {
root: true,
extends: '@react-native',
extends: ['@react-native', 'plugin:prettier/recommended'],
plugins: ['simple-import-sort', 'prettier'],
ignorePatterns: ['ios/', 'android/', 'deployments/', 'node_modules/'],
rules: {
// Import sorting rules
'simple-import-sort/imports': 'warn',
'simple-import-sort/exports': 'warn',
// Add prettier rule to show prettier errors as ESLint errors
'prettier/prettier': [
'warn',
{
// Fix for TypeScript union types indentation
typescriptBracketSpacing: true,
typeAssertionStyle: 'as',
},
{ usePrettierrc: true },
],
// Preserve project-specific rule exemptions
'react-native/no-inline-styles': 'off',
'react-hooks/exhaustive-deps': 'off',
// Override any ESLint rules that conflict with the TypeScript union type formatting
'@typescript-eslint/indent': 'off',
},
};

11
app/.prettierrc Normal file
View File

@@ -0,0 +1,11 @@
{
"arrowParens": "avoid",
"bracketSameLine": false,
"bracketSpacing": true,
"singleQuote": true,
"trailingComma": "all",
"tabWidth": 2,
"useTabs": false,
"semi": true,
"endOfLine": "auto"
}

View File

@@ -1,11 +0,0 @@
module.exports = {
arrowParens: 'avoid',
bracketSameLine: false,
bracketSpacing: true,
singleQuote: true,
trailingComma: 'all',
plugins: ['@trivago/prettier-plugin-sort-imports'],
importOrder: ['^react', '<THIRD_PARTY_MODULES>', '^[./]'],
importOrderSeparation: true,
importOrderSortSpecifiers: true,
};

View File

@@ -1,7 +1,7 @@
import React from 'react';
import 'react-native-get-random-values';
import { Buffer } from 'buffer';
import React from 'react';
import { YStack } from 'tamagui';
import AppNavigation from './src/Navigation';

View File

@@ -1,16 +1,16 @@
/**
* @format
*/
import React from 'react';
import { AppRegistry, LogBox } from 'react-native';
import './src/utils/ethers';
import { config } from '@tamagui/config/v2-native';
import { ToastProvider } from '@tamagui/toast';
import { TamaguiProvider, createTamagui } from 'tamagui';
import React from 'react';
import { AppRegistry, LogBox } from 'react-native';
import { createTamagui, TamaguiProvider } from 'tamagui';
import App from './App';
import { name as appName } from './app.json';
import './src/utils/ethers';
const tamaguiConfig = createTamagui(config);

View File

@@ -107,7 +107,6 @@
"@react-native/metro-config": "0.75.4",
"@react-native/typescript-config": "0.75.4",
"@tamagui/types": "1.110.0",
"@trivago/prettier-plugin-sort-imports": "^4.3.0",
"@tsconfig/react-native": "^3.0.0",
"@types/add": "^2",
"@types/elliptic": "^6",
@@ -119,8 +118,11 @@
"@types/react-native": "^0.73.0",
"@types/react-native-dotenv": "^0.2.0",
"eslint": "^8.19.0",
"eslint-config-prettier": "^10.1.2",
"eslint-plugin-prettier": "^5.2.6",
"eslint-plugin-simple-import-sort": "^12.1.1",
"jest": "^29.6.3",
"prettier": "2.8.8",
"prettier": "^3.5.3",
"react-native-bundle-visualizer": "^3.1.3",
"react-native-svg-transformer": "^1.5.0",
"stream-browserify": "^3.0.0",

View File

@@ -1,13 +1,13 @@
import React from 'react';
import 'react-native-gesture-handler';
import { GestureHandlerRootView } from 'react-native-gesture-handler';
import {
StaticParamList,
createNavigationContainerRef,
createStaticNavigation,
StaticParamList,
} from '@react-navigation/native';
import { createNativeStackNavigator } from '@react-navigation/native-stack';
import React from 'react';
import { GestureHandlerRootView } from 'react-native-gesture-handler';
import { DefaultNavBar } from '../components/NavBar';
import AppLayout from '../layouts/AppLayout';
@@ -21,6 +21,7 @@ import aesopScreens from './aesop';
import homeScreens from './home';
import passportScreens from './passport';
import proveScreens from './prove';
import recoveryScreens from './recovery';
import settingsScreens from './settings';
import staticScreens from './static';
@@ -39,6 +40,7 @@ const AppNavigation = createNativeStackNavigator({
...proveScreens,
...accountScreens,
...settingsScreens,
...recoveryScreens,
...aesopScreens,
},
});

View File

@@ -1,8 +1,7 @@
import { NativeStackNavigationOptions } from '@react-navigation/native-stack';
import React from 'react';
import { StatusBar } from 'react-native';
import { NativeStackNavigationOptions } from '@react-navigation/native-stack';
import LaunchScreen from '../screens/LaunchScreen';
import ModalScreen from '../screens/Settings/ModalScreen';
import SplashScreen from '../screens/SplashScreen';

View File

@@ -1,10 +1,11 @@
import { SEGMENT_KEY } from '@env';
import '@ethersproject/shims';
import { SEGMENT_KEY } from '@env';
import {
createClient,
EventPlugin,
PluginType,
SegmentEvent,
createClient,
} from '@segment/analytics-react-native';
let segmentClient: ReturnType<typeof createClient> | null = null;

View File

@@ -1,6 +1,5 @@
import React from 'react';
import { Platform } from 'react-native';
import { Anchor, styled } from 'tamagui';
const StyledAnchor = styled(Anchor, {

View File

@@ -1,5 +1,4 @@
import React from 'react';
import { XStack, YStack } from 'tamagui';
import {

View File

@@ -1,6 +1,5 @@
import React, { useCallback, useState } from 'react';
import Clipboard from '@react-native-clipboard/clipboard';
import React, { useCallback, useState } from 'react';
import { Button, Text, XStack, YStack } from 'tamagui';
import {

View File

@@ -1,7 +1,6 @@
import { ChevronLeft, X } from '@tamagui/lucide-icons';
import React, { useMemo } from 'react';
import { StatusBar, StatusBarStyle } from 'react-native';
import { ChevronLeft, X } from '@tamagui/lucide-icons';
import {
Button,
TextProps,

View File

@@ -1,7 +1,6 @@
import { NativeStackHeaderProps } from '@react-navigation/native-stack';
import React from 'react';
import { useSafeAreaInsets } from 'react-native-safe-area-context';
import { NativeStackHeaderProps } from '@react-navigation/native-stack';
import { TextStyle, ViewStyle } from 'tamagui';
import { white } from '../../utils/colors';

View File

@@ -1,7 +1,6 @@
import { NativeStackHeaderProps } from '@react-navigation/native-stack';
import React from 'react';
import { useSafeAreaInsets } from 'react-native-safe-area-context';
import { NativeStackHeaderProps } from '@react-navigation/native-stack';
import { Button } from 'tamagui';
import ActivityIcon from '../../images/icons/activity.svg';

View File

@@ -1,10 +1,9 @@
import React from 'react';
import { useSafeAreaInsets } from 'react-native-safe-area-context';
import {
NativeStackHeaderProps,
NativeStackNavigationOptions,
} from '@react-navigation/native-stack';
import React from 'react';
import { useSafeAreaInsets } from 'react-native-safe-area-context';
import { TextStyle, ViewStyle, XStack, YStack } from 'tamagui';
import { cyan300, slate200, white } from '../../utils/colors';

View File

@@ -1,5 +1,4 @@
import React from 'react';
import { Text, View } from 'tamagui';
import { slate500 } from '../utils/colors';

View File

@@ -1,6 +1,5 @@
import React from 'react';
import { StyleSheet, ViewStyle } from 'react-native';
import { Button, Text, ViewProps } from 'tamagui';
import { shouldShowAesopRedesign } from '../../hooks/useAesopRedesign';

View File

@@ -1,6 +1,6 @@
import React, { useEffect, useRef } from 'react';
import { NativeSyntheticEvent, requireNativeComponent } from 'react-native';
import { UIManager, findNodeHandle } from 'react-native';
import { findNodeHandle, UIManager } from 'react-native';
export interface RCTFragmentViewManagerProps {
RCTFragmentViewManager: ReturnType<typeof requireNativeComponent>;

View File

@@ -1,4 +1,4 @@
import { Text, styled } from 'tamagui';
import { styled, Text } from 'tamagui';
import { dinot } from '../../utils/fonts';

View File

@@ -1,6 +1,5 @@
import React from 'react';
import { StyleSheet } from 'react-native';
import { Text, TextProps } from 'tamagui';
import { shouldShowAesopRedesign } from '../../hooks/useAesopRedesign';

View File

@@ -1,4 +1,4 @@
import { Text, styled } from 'tamagui';
import { styled, Text } from 'tamagui';
import { dinot } from '../../utils/fonts';

View File

@@ -1,4 +1,4 @@
import { Text, styled } from 'tamagui';
import { styled, Text } from 'tamagui';
import { dinot } from '../../utils/fonts';

View File

@@ -1,6 +1,5 @@
import { StyleProp, TextStyle } from 'react-native';
import { Text, styled } from 'tamagui';
import { styled, Text } from 'tamagui';
import { advercase } from '../../utils/fonts';

View File

@@ -1,9 +1,8 @@
import { useNavigation } from '@react-navigation/native';
import { useState } from 'react';
import { Linking } from 'react-native';
import { checkVersion } from 'react-native-check-version';
import { useNavigation } from '@react-navigation/native';
export const useAppUpdates = (): [boolean, () => void, boolean] => {
const navigation = useNavigation();
const [newVersionUrl, setNewVersionUrl] = useState<string | null>(null);

View File

@@ -1,10 +1,9 @@
import { useNetInfo } from '@react-native-community/netinfo';
import { useEffect } from 'react';
import { Linking, Platform } from 'react-native';
import { useNetInfo } from '@react-native-community/netinfo';
import { navigationRef } from '../Navigation';
import { useModal } from '../hooks/useModal';
import { navigationRef } from '../Navigation';
const connectionModalParams = {
titleText: 'Internet connection error',

View File

@@ -1,7 +1,6 @@
import { useCallback } from 'react';
import { useNavigation } from '@react-navigation/native';
import { NativeStackScreenProps } from '@react-navigation/native-stack';
import { useCallback } from 'react';
import type { RootStackParamList } from '../Navigation';
import { impactLight, impactMedium, selectionChange } from '../utils/haptic';

View File

@@ -1,6 +1,5 @@
import { useCallback, useState } from 'react';
import { ethers } from 'ethers';
import { useCallback, useState } from 'react';
import { useAuth } from '../stores/authProvider';

View File

@@ -1,6 +1,5 @@
import { useCallback, useState } from 'react';
import { useNavigation } from '@react-navigation/native';
import { useCallback, useState } from 'react';
import { ModalParams } from '../screens/Settings/ModalScreen';

View File

@@ -1,7 +1,6 @@
import React from 'react';
import { StatusBar, StyleSheet } from 'react-native';
import { useSafeAreaInsets } from 'react-native-safe-area-context';
import { View, ViewProps } from 'tamagui';
import { black, white } from '../utils/colors';

View File

@@ -1,5 +1,4 @@
import React from 'react';
import { ScrollView, YStack } from 'tamagui';
import { PrimaryButton } from '../components/buttons/PrimaryButton';

View File

@@ -1,6 +1,5 @@
import React, { useCallback, useState } from 'react';
import { useNavigation } from '@react-navigation/native';
import React, { useCallback, useState } from 'react';
import { Separator, View, XStack, YStack } from 'tamagui';
import { PrimaryButton } from '../../components/buttons/PrimaryButton';

View File

@@ -1,5 +1,4 @@
import React from 'react';
import { View, YStack } from 'tamagui';
import { PrimaryButton } from '../../components/buttons/PrimaryButton';

View File

@@ -1,7 +1,6 @@
import React from 'react';
import { useNavigation } from '@react-navigation/native';
import LottieView from 'lottie-react-native';
import React from 'react';
import { YStack } from 'tamagui';
import proofSuccessAnimation from '../../assets/animations/proof_success.json';

View File

@@ -1,9 +1,8 @@
import React, { useCallback, useState } from 'react';
import { Keyboard, StyleSheet } from 'react-native';
import Clipboard from '@react-native-clipboard/clipboard';
import { useNavigation } from '@react-navigation/native';
import { ethers } from 'ethers';
import React, { useCallback, useState } from 'react';
import { Keyboard, StyleSheet } from 'react-native';
import { Text, TextArea, View, XStack, YStack } from 'tamagui';
import { SecondaryButton } from '../../components/buttons/SecondaryButton';

View File

@@ -1,8 +1,8 @@
import React, { useCallback, useState } from 'react';
import Mnemonic from '../../components/Mnemonic';
import { PrimaryButton } from '../../components/buttons/PrimaryButton';
import { SecondaryButton } from '../../components/buttons/SecondaryButton';
import Mnemonic from '../../components/Mnemonic';
import { Caption } from '../../components/typography/Caption';
import Description from '../../components/typography/Description';
import { Title } from '../../components/typography/Title';

View File

@@ -1,8 +1,7 @@
import React, { useEffect } from 'react';
import { StyleSheet } from 'react-native';
import { useNavigation } from '@react-navigation/native';
import LottieView from 'lottie-react-native';
import React, { useEffect } from 'react';
import { StyleSheet } from 'react-native';
import { YStack } from 'tamagui';
import warningAnimation from '../assets/animations/warning.json';

View File

@@ -1,8 +1,7 @@
import { useFocusEffect, usePreventRemove } from '@react-navigation/native';
import React from 'react';
import { useSafeAreaInsets } from 'react-native-safe-area-context';
import { useFocusEffect, usePreventRemove } from '@react-navigation/native';
import { Button, YStack, styled } from 'tamagui';
import { Button, styled, YStack } from 'tamagui';
import { pressedStyle } from '../components/buttons/pressedStyle';
import { BodyText } from '../components/typography/BodyText';

View File

@@ -1,8 +1,7 @@
import LottieView from 'lottie-react-native';
import React from 'react';
import { StyleSheet, View } from 'react-native';
import { Gesture, GestureDetector } from 'react-native-gesture-handler';
import LottieView from 'lottie-react-native';
import { Anchor, Text, XStack, YStack } from 'tamagui';
import { useWindowDimensions } from 'tamagui';

View File

@@ -1,12 +1,11 @@
import React, { useCallback, useState } from 'react';
import { TouchableOpacity } from 'react-native';
import { Gesture, GestureDetector } from 'react-native-gesture-handler';
import { useSafeAreaInsets } from 'react-native-safe-area-context';
import { useNavigation } from '@react-navigation/native';
import { ChevronDown, Minus, Plus, X } from '@tamagui/lucide-icons';
import { flag } from 'country-emoji';
import getCountryISO2 from 'country-iso-3-to-2';
import React, { useCallback, useState } from 'react';
import { TouchableOpacity } from 'react-native';
import { Gesture, GestureDetector } from 'react-native-gesture-handler';
import { useSafeAreaInsets } from 'react-native-safe-area-context';
import {
Button,
ScrollView,
@@ -22,9 +21,9 @@ import {
import { countryCodes } from '../../../common/src/constants/constants';
import { genMockPassportData } from '../../../common/src/utils/passports/genMockPassportData';
import { initPassportDataParsing } from '../../../common/src/utils/passports/passport';
import ButtonsContainer from '../components/ButtonsContainer';
import { PrimaryButton } from '../components/buttons/PrimaryButton';
import { SecondaryButton } from '../components/buttons/SecondaryButton';
import ButtonsContainer from '../components/ButtonsContainer';
import { BodyText } from '../components/typography/BodyText';
import { Title } from '../components/typography/Title';
import { storePassportData } from '../stores/passportDataProvider';

View File

@@ -1,7 +1,6 @@
import React, { useEffect } from 'react';
import { StaticScreenProps, usePreventRemove } from '@react-navigation/native';
import LottieView from 'lottie-react-native';
import React, { useEffect } from 'react';
import successAnimation from '../../assets/animations/loading/success.json';
import { PrimaryButton } from '../../components/buttons/PrimaryButton';

View File

@@ -1,8 +1,7 @@
import React, { useEffect, useRef, useState } from 'react';
import { StyleSheet, Text, View } from 'react-native';
import { StaticScreenProps, useNavigation } from '@react-navigation/native';
import LottieView from 'lottie-react-native';
import React, { useEffect, useRef, useState } from 'react';
import { StyleSheet, Text, View } from 'react-native';
import failAnimation from '../../assets/animations/loading/fail.json';
import miscAnimation from '../../assets/animations/loading/misc.json';

View File

@@ -1,8 +1,7 @@
import React, { useCallback, useRef } from 'react';
import { Platform, StyleSheet } from 'react-native';
import { useIsFocused, useNavigation } from '@react-navigation/native';
import LottieView from 'lottie-react-native';
import React, { useCallback, useRef } from 'react';
import { Platform, StyleSheet } from 'react-native';
import { View, XStack, YStack } from 'tamagui';
import passportScanAnimation from '../../assets/animations/passport_scan.json';

View File

@@ -1,3 +1,5 @@
import { useFocusEffect, useNavigation } from '@react-navigation/native';
import LottieView from 'lottie-react-native';
import React, { useCallback, useEffect, useRef, useState } from 'react';
import {
Linking,
@@ -7,18 +9,15 @@ import {
StyleSheet,
} from 'react-native';
import NfcManager from 'react-native-nfc-manager';
import { useFocusEffect, useNavigation } from '@react-navigation/native';
import LottieView from 'lottie-react-native';
import { Image } from 'tamagui';
import { initPassportDataParsing } from '../../../../common/src/utils/passports/passport';
import { PassportData } from '../../../../common/src/utils/types';
import passportVerifyAnimation from '../../assets/animations/passport_verify.json';
import ButtonsContainer from '../../components/ButtonsContainer';
import TextsContainer from '../../components/TextsContainer';
import { PrimaryButton } from '../../components/buttons/PrimaryButton';
import { SecondaryButton } from '../../components/buttons/SecondaryButton';
import ButtonsContainer from '../../components/ButtonsContainer';
import TextsContainer from '../../components/TextsContainer';
import { BodyText } from '../../components/typography/BodyText';
import Description from '../../components/typography/Description';
import { Title } from '../../components/typography/Title';

View File

@@ -1,13 +1,12 @@
import LottieView from 'lottie-react-native';
import React, { useEffect, useRef } from 'react';
import { StatusBar, StyleSheet } from 'react-native';
import LottieView from 'lottie-react-native';
import passportOnboardingAnimation from '../../assets/animations/passport_onboarding.json';
import ButtonsContainer from '../../components/ButtonsContainer';
import TextsContainer from '../../components/TextsContainer';
import { PrimaryButton } from '../../components/buttons/PrimaryButton';
import { SecondaryButton } from '../../components/buttons/SecondaryButton';
import ButtonsContainer from '../../components/ButtonsContainer';
import TextsContainer from '../../components/TextsContainer';
import Additional from '../../components/typography/Additional';
import Description from '../../components/typography/Description';
import { Title } from '../../components/typography/Title';

View File

@@ -1,6 +1,5 @@
import React, { useEffect } from 'react';
import LottieView from 'lottie-react-native';
import React, { useEffect } from 'react';
import warnAnimation from '../../assets/animations/warning.json';
import { PrimaryButton } from '../../components/buttons/PrimaryButton';

View File

@@ -1,7 +1,6 @@
import LottieView from 'lottie-react-native';
import React, { useEffect } from 'react';
import { StatusBar, StyleSheet, View } from 'react-native';
import LottieView from 'lottie-react-native';
import { ScrollView, Spinner } from 'tamagui';
import loadingAnimation from '../../assets/animations/loading/misc.json';
@@ -10,8 +9,8 @@ import succesAnimation from '../../assets/animations/proof_success.json';
import { PrimaryButton } from '../../components/buttons/PrimaryButton';
import { BodyText } from '../../components/typography/BodyText';
import Description from '../../components/typography/Description';
import { Title } from '../../components/typography/Title';
import { typography } from '../../components/typography/styles';
import { Title } from '../../components/typography/Title';
import useHapticNavigation from '../../hooks/useHapticNavigation';
import { ExpandableBottomLayout } from '../../layouts/ExpandableBottomLayout';
import { ProofStatusEnum, useProofInfo } from '../../stores/proofProvider';

View File

@@ -1,3 +1,5 @@
import { useNavigation } from '@react-navigation/native';
import LottieView from 'lottie-react-native';
import React, {
useCallback,
useEffect,
@@ -12,24 +14,21 @@ import {
ScrollView,
StyleSheet,
} from 'react-native';
import { useNavigation } from '@react-navigation/native';
import LottieView from 'lottie-react-native';
import { Image, Text, View, YStack } from 'tamagui';
import { SelfAppDisclosureConfig } from '../../../../common/src/utils/appType';
import { formatEndpoint } from '../../../../common/src/utils/scope';
import miscAnimation from '../../assets/animations/loading/misc.json';
import Disclosures from '../../components/Disclosures';
import { HeldPrimaryButton } from '../../components/buttons/PrimaryButtonLongHold';
import Disclosures from '../../components/Disclosures';
import { BodyText } from '../../components/typography/BodyText';
import { Caption } from '../../components/typography/Caption';
import { ExpandableBottomLayout } from '../../layouts/ExpandableBottomLayout';
import { useApp } from '../../stores/appProvider';
import { usePassport } from '../../stores/passportDataProvider';
import {
ProofStatusEnum,
globalSetDisclosureStatus,
ProofStatusEnum,
useProofInfo,
} from '../../stores/proofProvider';
import { black, slate300, white } from '../../utils/colors';

View File

@@ -1,12 +1,11 @@
import React, { useCallback, useState } from 'react';
import { StyleSheet } from 'react-native';
import {
useFocusEffect,
useIsFocused,
useNavigation,
} from '@react-navigation/native';
import LottieView from 'lottie-react-native';
import React, { useCallback, useState } from 'react';
import { StyleSheet } from 'react-native';
import { View, XStack, YStack } from 'tamagui';
import qrScanAnimation from '../../assets/animations/qr_scan.json';

View File

@@ -1,9 +1,7 @@
import React, { useCallback, useMemo, useState } from 'react';
import { StaticScreenProps, useNavigation } from '@react-navigation/native';
import React, { useCallback, useMemo, useState } from 'react';
import { YStack } from 'tamagui';
import { RootStackParamList } from '../../Navigation';
import BackupDocumentationLink from '../../components/BackupDocumentationLink';
import { PrimaryButton } from '../../components/buttons/PrimaryButton';
import { SecondaryButton } from '../../components/buttons/SecondaryButton';
@@ -13,6 +11,7 @@ import { Title } from '../../components/typography/Title';
import { useModal } from '../../hooks/useModal';
import Cloud from '../../images/icons/logo_cloud_backup.svg';
import { ExpandableBottomLayout } from '../../layouts/ExpandableBottomLayout';
import { RootStackParamList } from '../../Navigation';
import { useAuth } from '../../stores/authProvider';
import { useSettingStore } from '../../stores/settingStore';
import { STORAGE_NAME, useBackupMnemonic } from '../../utils/cloudBackup';

View File

@@ -1,6 +1,3 @@
import React, { PropsWithChildren, useEffect, useState } from 'react';
import { Platform, TextInput } from 'react-native';
import { useNavigation } from '@react-navigation/native';
import {
Check,
@@ -9,6 +6,8 @@ import {
IterationCw,
VenetianMask,
} from '@tamagui/lucide-icons';
import React, { PropsWithChildren, useEffect, useState } from 'react';
import { Platform, TextInput } from 'react-native';
import {
Adapt,
Button,

View File

@@ -1,7 +1,6 @@
import React, { useCallback } from 'react';
import { StaticScreenProps, useNavigation } from '@react-navigation/native';
import { View, XStack, YStack, styled } from 'tamagui';
import React, { useCallback } from 'react';
import { styled, View, XStack, YStack } from 'tamagui';
import { PrimaryButton } from '../../components/buttons/PrimaryButton';
import Description from '../../components/typography/Description';

View File

@@ -1,6 +1,5 @@
import React, { useCallback, useState } from 'react';
import { useFocusEffect } from '@react-navigation/native';
import React, { useCallback, useState } from 'react';
import { ScrollView, Separator, XStack, YStack } from 'tamagui';
import { PassportMetadata } from '../../../../common/src/utils/passports/passport_parsing/parsePassportData';
@@ -87,12 +86,12 @@ const PassportDataInfoScreen: React.FC<PassportDataInfoScreenProps> = ({}) => {
!metadata
? ''
: key === 'cscaFound'
? metadata?.cscaFound === true
? 'Yes'
: 'No'
: (metadata?.[key as keyof PassportMetadata] as
| string
| number) || 'None'
? metadata?.cscaFound === true
? 'Yes'
: 'No'
: (metadata?.[key as keyof PassportMetadata] as
| string
| number) || 'None'
}
/>
))}

View File

@@ -1,16 +1,14 @@
import { useNavigation } from '@react-navigation/native';
import { Bug } from '@tamagui/lucide-icons';
import React, { PropsWithChildren, useCallback, useMemo } from 'react';
import { Linking, Platform, Share } from 'react-native';
import { Gesture, GestureDetector } from 'react-native-gesture-handler';
import { getCountry, getLocales, getTimeZone } from 'react-native-localize';
import { useSafeAreaInsets } from 'react-native-safe-area-context';
import { SvgProps } from 'react-native-svg';
import { useNavigation } from '@react-navigation/native';
import { Bug } from '@tamagui/lucide-icons';
import { Button, ScrollView, View, XStack, YStack } from 'tamagui';
import { version } from '../../package.json';
import { RootStackParamList } from '../Navigation';
import { pressedStyle } from '../components/buttons/pressedStyle';
import { BodyText } from '../components/typography/BodyText';
import {
@@ -29,6 +27,7 @@ import ShareIcon from '../images/icons/share.svg';
import Star from '../images/icons/star.svg';
import Telegram from '../images/icons/telegram.svg';
import Web from '../images/icons/webpage.svg';
import { RootStackParamList } from '../Navigation';
import { useSettingStore } from '../stores/settingStore';
import { amber500, black, neutral700, slate800, white } from '../utils/colors';
import { impactLight } from '../utils/haptic';

View File

@@ -1,8 +1,7 @@
import React, { useCallback, useEffect } from 'react';
import { StyleSheet } from 'react-native';
import { useNavigation } from '@react-navigation/native';
import LottieView from 'lottie-react-native';
import React, { useCallback, useEffect } from 'react';
import { StyleSheet } from 'react-native';
import splashAnimation from '../assets/animations/splash.json';
import { useAuth } from '../stores/authProvider';

View File

@@ -1,13 +1,12 @@
import LottieView from 'lottie-react-native';
import React, { useEffect, useRef } from 'react';
import { StatusBar, StyleSheet, View } from 'react-native';
import LottieView from 'lottie-react-native';
import passportOnboardingAnimation from '../../assets/animations/passport_onboarding.json';
import ButtonsContainer from '../../components/ButtonsContainer';
import TextsContainer from '../../components/TextsContainer';
import { PrimaryButton } from '../../components/buttons/PrimaryButton';
import { SecondaryButton } from '../../components/buttons/SecondaryButton';
import ButtonsContainer from '../../components/ButtonsContainer';
import TextsContainer from '../../components/TextsContainer';
import Additional from '../../components/typography/Additional';
import Description from '../../components/typography/Description';
import { DescriptionTitle } from '../../components/typography/DescriptionTitle';

View File

@@ -1,5 +1,4 @@
import React, { createContext, useContext, useEffect, useRef } from 'react';
import io, { Socket } from 'socket.io-client';
import { WS_DB_RELAYER } from '../../../common/src/constants/constants';

View File

@@ -1,6 +1,7 @@
import { ethers } from 'ethers';
import React, {
PropsWithChildren,
createContext,
PropsWithChildren,
useCallback,
useContext,
useMemo,
@@ -9,8 +10,6 @@ import React, {
import ReactNativeBiometrics from 'react-native-biometrics';
import Keychain from 'react-native-keychain';
import { ethers } from 'ethers';
import { Mnemonic } from '../types/mnemonic';
const SERVICE_NAME = 'secret';

View File

@@ -1,6 +1,6 @@
import React, {
PropsWithChildren,
createContext,
PropsWithChildren,
useCallback,
useContext,
useMemo,

View File

@@ -1,6 +1,6 @@
import React, {
PropsWithChildren,
createContext,
PropsWithChildren,
useCallback,
useEffect,
useMemo,

View File

@@ -1,3 +1,4 @@
import { ethers } from 'ethers';
import { useMemo } from 'react';
import { Platform } from 'react-native';
import {
@@ -6,8 +7,6 @@ import {
CloudStorageScope,
} from 'react-native-cloud-storage';
import { ethers } from 'ethers';
import { name } from '../../../package.json';
import { Mnemonic } from '../../types/mnemonic';
import { googleSignIn } from './google';

View File

@@ -1,7 +1,6 @@
// https://docs.ethers.org/v6/cookbook/react-native/
import crypto from 'react-native-quick-crypto';
import { ethers } from 'ethers';
import crypto from 'react-native-quick-crypto';
ethers.randomBytes.register(length => {
return new Uint8Array(crypto.randomBytes(length));

View File

@@ -1,9 +1,8 @@
/* eslint-disable @typescript-eslint/no-unused-vars */
import { Buffer } from 'buffer';
import { NativeModules, Platform } from 'react-native';
import PassportReader from 'react-native-passport-reader';
import { Buffer } from 'buffer';
import { PassportData } from '../../../common/src/utils/types';
interface Inputs {

View File

@@ -6,9 +6,9 @@ import nameAndDobSMTData from '../../../../common/ofacdata/outputs/nameAndDobSMT
import nameAndYobSMTData from '../../../../common/ofacdata/outputs/nameAndYobSMT.json';
import passportNoAndNationalitySMTData from '../../../../common/ofacdata/outputs/passportNoAndNationalitySMT.json';
import {
attributeToPosition,
DEFAULT_MAJORITY,
PASSPORT_ATTESTATION_ID,
attributeToPosition,
} from '../../../../common/src/constants/constants';
import { EndpointType, SelfApp } from '../../../../common/src/utils/appType';
import { getCircuitNameFromPassportData } from '../../../../common/src/utils/circuits/circuitsName';
@@ -19,8 +19,8 @@ import {
} from '../../../../common/src/utils/circuits/generateInputs';
import { hashEndpointWithScope } from '../../../../common/src/utils/scope';
import {
getCSCATree,
getCommitmentTree,
getCSCATree,
getDSCTree,
} from '../../../../common/src/utils/trees';
import { PassportData } from '../../../../common/src/utils/types';

View File

@@ -11,9 +11,9 @@ import {
import { EndpointType } from '../../../../common/src/utils/appType';
import {
DiscloseError,
ProofStatusEnum,
globalSetDisclosureStatus,
globalSetRegistrationStatus,
ProofStatusEnum,
} from '../../stores/proofProvider';
import { getPublicKey, verifyAttestation } from './attest';

View File

@@ -1,6 +1,5 @@
import { Linking } from 'react-native';
import queryString from 'query-string';
import { Linking } from 'react-native';
import { SelfApp } from '../../../common/src/utils/appType';

View File

@@ -22,7 +22,7 @@ __metadata:
languageName: node
linkType: hard
"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.12.13, @babel/code-frame@npm:^7.22.13, @babel/code-frame@npm:^7.24.7, @babel/code-frame@npm:^7.26.2":
"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.12.13, @babel/code-frame@npm:^7.24.7, @babel/code-frame@npm:^7.26.2":
version: 7.26.2
resolution: "@babel/code-frame@npm:7.26.2"
dependencies:
@@ -77,18 +77,7 @@ __metadata:
languageName: node
linkType: hard
"@babel/generator@npm:7.17.7":
version: 7.17.7
resolution: "@babel/generator@npm:7.17.7"
dependencies:
"@babel/types": "npm:^7.17.0"
jsesc: "npm:^2.5.1"
source-map: "npm:^0.5.0"
checksum: 10c0/8088453c4418e0ee6528506fbd5847bbdfd56327a0025ca9496a259261e162c594ffd08be0d63e74c32feced795616772f38acc5f5e493a86a45fd439fd9feb0
languageName: node
linkType: hard
"@babel/generator@npm:^7.20.0, @babel/generator@npm:^7.23.0, @babel/generator@npm:^7.25.0, @babel/generator@npm:^7.26.9, @babel/generator@npm:^7.7.2":
"@babel/generator@npm:^7.20.0, @babel/generator@npm:^7.25.0, @babel/generator@npm:^7.26.9, @babel/generator@npm:^7.7.2":
version: 7.26.9
resolution: "@babel/generator@npm:7.26.9"
dependencies:
@@ -168,34 +157,6 @@ __metadata:
languageName: node
linkType: hard
"@babel/helper-environment-visitor@npm:^7.22.20":
version: 7.24.7
resolution: "@babel/helper-environment-visitor@npm:7.24.7"
dependencies:
"@babel/types": "npm:^7.24.7"
checksum: 10c0/36ece78882b5960e2d26abf13cf15ff5689bf7c325b10a2895a74a499e712de0d305f8d78bb382dd3c05cfba7e47ec98fe28aab5674243e0625cd38438dd0b2d
languageName: node
linkType: hard
"@babel/helper-function-name@npm:^7.23.0":
version: 7.24.7
resolution: "@babel/helper-function-name@npm:7.24.7"
dependencies:
"@babel/template": "npm:^7.24.7"
"@babel/types": "npm:^7.24.7"
checksum: 10c0/e5e41e6cf86bd0f8bf272cbb6e7c5ee0f3e9660414174435a46653efba4f2479ce03ce04abff2aa2ef9359cf057c79c06cb7b134a565ad9c0e8a50dcdc3b43c4
languageName: node
linkType: hard
"@babel/helper-hoist-variables@npm:^7.22.5":
version: 7.24.7
resolution: "@babel/helper-hoist-variables@npm:7.24.7"
dependencies:
"@babel/types": "npm:^7.24.7"
checksum: 10c0/19ee37563bbd1219f9d98991ad0e9abef77803ee5945fd85aa7aa62a67c69efca9a801696a1b58dda27f211e878b3327789e6fd2a6f6c725ccefe36774b5ce95
languageName: node
linkType: hard
"@babel/helper-member-expression-to-functions@npm:^7.25.9":
version: 7.25.9
resolution: "@babel/helper-member-expression-to-functions@npm:7.25.9"
@@ -281,15 +242,6 @@ __metadata:
languageName: node
linkType: hard
"@babel/helper-split-export-declaration@npm:^7.22.6":
version: 7.24.7
resolution: "@babel/helper-split-export-declaration@npm:7.24.7"
dependencies:
"@babel/types": "npm:^7.24.7"
checksum: 10c0/0254577d7086bf09b01bbde98f731d4fcf4b7c3fa9634fdb87929801307c1f6202a1352e3faa5492450fa8da4420542d44de604daf540704ff349594a78184f6
languageName: node
linkType: hard
"@babel/helper-string-parser@npm:^7.25.9":
version: 7.25.9
resolution: "@babel/helper-string-parser@npm:7.25.9"
@@ -297,7 +249,7 @@ __metadata:
languageName: node
linkType: hard
"@babel/helper-validator-identifier@npm:^7.16.7, @babel/helper-validator-identifier@npm:^7.25.9":
"@babel/helper-validator-identifier@npm:^7.25.9":
version: 7.25.9
resolution: "@babel/helper-validator-identifier@npm:7.25.9"
checksum: 10c0/4fc6f830177b7b7e887ad3277ddb3b91d81e6c4a24151540d9d1023e8dc6b1c0505f0f0628ae653601eb4388a8db45c1c14b2c07a9173837aef7e4116456259d
@@ -332,7 +284,7 @@ __metadata:
languageName: node
linkType: hard
"@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.13.16, @babel/parser@npm:^7.14.7, @babel/parser@npm:^7.20.0, @babel/parser@npm:^7.20.5, @babel/parser@npm:^7.20.7, @babel/parser@npm:^7.23.0, @babel/parser@npm:^7.23.9, @babel/parser@npm:^7.24.7, @babel/parser@npm:^7.25.3, @babel/parser@npm:^7.26.9":
"@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.13.16, @babel/parser@npm:^7.14.7, @babel/parser@npm:^7.20.0, @babel/parser@npm:^7.20.7, @babel/parser@npm:^7.23.9, @babel/parser@npm:^7.24.7, @babel/parser@npm:^7.25.3, @babel/parser@npm:^7.26.9":
version: 7.26.9
resolution: "@babel/parser@npm:7.26.9"
dependencies:
@@ -1076,7 +1028,7 @@ __metadata:
languageName: node
linkType: hard
"@babel/template@npm:^7.0.0, @babel/template@npm:^7.24.7, @babel/template@npm:^7.25.0, @babel/template@npm:^7.25.9, @babel/template@npm:^7.26.9, @babel/template@npm:^7.3.3":
"@babel/template@npm:^7.0.0, @babel/template@npm:^7.25.0, @babel/template@npm:^7.25.9, @babel/template@npm:^7.26.9, @babel/template@npm:^7.3.3":
version: 7.26.9
resolution: "@babel/template@npm:7.26.9"
dependencies:
@@ -1102,35 +1054,7 @@ __metadata:
languageName: node
linkType: hard
"@babel/traverse@npm:7.23.2":
version: 7.23.2
resolution: "@babel/traverse@npm:7.23.2"
dependencies:
"@babel/code-frame": "npm:^7.22.13"
"@babel/generator": "npm:^7.23.0"
"@babel/helper-environment-visitor": "npm:^7.22.20"
"@babel/helper-function-name": "npm:^7.23.0"
"@babel/helper-hoist-variables": "npm:^7.22.5"
"@babel/helper-split-export-declaration": "npm:^7.22.6"
"@babel/parser": "npm:^7.23.0"
"@babel/types": "npm:^7.23.0"
debug: "npm:^4.1.0"
globals: "npm:^11.1.0"
checksum: 10c0/d096c7c4bab9262a2f658298a3c630ae4a15a10755bb257ae91d5ab3e3b2877438934859c8d34018b7727379fe6b26c4fa2efc81cf4c462a7fe00caf79fa02ff
languageName: node
linkType: hard
"@babel/types@npm:7.17.0":
version: 7.17.0
resolution: "@babel/types@npm:7.17.0"
dependencies:
"@babel/helper-validator-identifier": "npm:^7.16.7"
to-fast-properties: "npm:^2.0.0"
checksum: 10c0/ad09224272b40fedb00b262677d12b6838f5b5df5c47d67059ba1181bd4805439993393a8de32459dae137b536d60ebfcaf39ae84d8b3873f1e81cc75f5aeae8
languageName: node
linkType: hard
"@babel/types@npm:^7.0.0, @babel/types@npm:^7.17.0, @babel/types@npm:^7.20.0, @babel/types@npm:^7.20.7, @babel/types@npm:^7.21.3, @babel/types@npm:^7.23.0, @babel/types@npm:^7.24.7, @babel/types@npm:^7.25.2, @babel/types@npm:^7.25.9, @babel/types@npm:^7.26.9, @babel/types@npm:^7.3.3":
"@babel/types@npm:^7.0.0, @babel/types@npm:^7.20.0, @babel/types@npm:^7.20.7, @babel/types@npm:^7.21.3, @babel/types@npm:^7.25.2, @babel/types@npm:^7.25.9, @babel/types@npm:^7.26.9, @babel/types@npm:^7.3.3":
version: 7.26.9
resolution: "@babel/types@npm:7.26.9"
dependencies:
@@ -1932,6 +1856,13 @@ __metadata:
languageName: node
linkType: hard
"@pkgr/core@npm:^0.2.3":
version: 0.2.4
resolution: "@pkgr/core@npm:0.2.4"
checksum: 10c0/2528a443bbbef5d4686614e1d73f834f19ccbc975f62b2a64974a6b97bcdf677b9c5e8948e04808ac4f0d853e2f422adfaae2a06e9e9f4f5cf8af76f1adf8dc1
languageName: node
linkType: hard
"@react-native-async-storage/async-storage@npm:^2.1.1":
version: 2.1.1
resolution: "@react-native-async-storage/async-storage@npm:2.1.1"
@@ -5866,26 +5797,6 @@ __metadata:
languageName: node
linkType: hard
"@trivago/prettier-plugin-sort-imports@npm:^4.3.0":
version: 4.3.0
resolution: "@trivago/prettier-plugin-sort-imports@npm:4.3.0"
dependencies:
"@babel/generator": "npm:7.17.7"
"@babel/parser": "npm:^7.20.5"
"@babel/traverse": "npm:7.23.2"
"@babel/types": "npm:7.17.0"
javascript-natural-sort: "npm:0.7.1"
lodash: "npm:^4.17.21"
peerDependencies:
"@vue/compiler-sfc": 3.x
prettier: 2.x - 3.x
peerDependenciesMeta:
"@vue/compiler-sfc":
optional: true
checksum: 10c0/42270fb9c89e54a3f8b6ac8c43e6d0e03350e2857e902cdad4de22c78ef1864da600525595311bc7e94e51c16c7dd3882c2e048a162fdab59761ffa893756aa2
languageName: node
linkType: hard
"@trysound/sax@npm:0.2.0":
version: 0.2.0
resolution: "@trysound/sax@npm:0.2.0"
@@ -8251,6 +8162,17 @@ __metadata:
languageName: node
linkType: hard
"eslint-config-prettier@npm:^10.1.2":
version: 10.1.2
resolution: "eslint-config-prettier@npm:10.1.2"
peerDependencies:
eslint: ">=7.0.0"
bin:
eslint-config-prettier: bin/cli.js
checksum: 10c0/c22c8e29193cc8fd70becf1c2dd072513f2b3004a175c2a49404c79d1745ba4dc0edc2afd00d16b0e26d24f95813a0469e7445a25104aec218f6d84cdb1697e9
languageName: node
linkType: hard
"eslint-config-prettier@npm:^8.5.0":
version: 8.10.0
resolution: "eslint-config-prettier@npm:8.10.0"
@@ -8305,6 +8227,26 @@ __metadata:
languageName: node
linkType: hard
"eslint-plugin-prettier@npm:^5.2.6":
version: 5.2.6
resolution: "eslint-plugin-prettier@npm:5.2.6"
dependencies:
prettier-linter-helpers: "npm:^1.0.0"
synckit: "npm:^0.11.0"
peerDependencies:
"@types/eslint": ">=8.0.0"
eslint: ">=8.0.0"
eslint-config-prettier: ">= 7.0.0 <10.0.0 || >=10.1.0"
prettier: ">=3.0.0"
peerDependenciesMeta:
"@types/eslint":
optional: true
eslint-config-prettier:
optional: true
checksum: 10c0/9911740a5edac7933d92671381908671c61ffa32a3cee7aed667ebab89831ee2c0b69eb9530f68dbe172ca9d4b3fa3d47350762dc1eb096a3ce125fa31c0e616
languageName: node
linkType: hard
"eslint-plugin-react-hooks@npm:^4.6.0":
version: 4.6.2
resolution: "eslint-plugin-react-hooks@npm:4.6.2"
@@ -8360,6 +8302,15 @@ __metadata:
languageName: node
linkType: hard
"eslint-plugin-simple-import-sort@npm:^12.1.1":
version: 12.1.1
resolution: "eslint-plugin-simple-import-sort@npm:12.1.1"
peerDependencies:
eslint: ">=5.0.0"
checksum: 10c0/0ad1907ad9ddbadd1db655db0a9d0b77076e274b793a77b982c8525d808d868e6ecfce24f3a411e8a1fa551077387f9ebb38c00956073970ebd7ee6a029ce2b3
languageName: node
linkType: hard
"eslint-scope@npm:5.1.1, eslint-scope@npm:^5.1.1":
version: 5.1.1
resolution: "eslint-scope@npm:5.1.1"
@@ -8612,6 +8563,13 @@ __metadata:
languageName: node
linkType: hard
"fast-diff@npm:^1.1.2":
version: 1.3.0
resolution: "fast-diff@npm:1.3.0"
checksum: 10c0/5c19af237edb5d5effda008c891a18a585f74bf12953be57923f17a3a4d0979565fc64dbc73b9e20926b9d895f5b690c618cbb969af0cf022e3222471220ad29
languageName: node
linkType: hard
"fast-glob@npm:^3.2.9, fast-glob@npm:^3.3.2":
version: 3.3.3
resolution: "fast-glob@npm:3.3.3"
@@ -9905,13 +9863,6 @@ __metadata:
languageName: node
linkType: hard
"javascript-natural-sort@npm:0.7.1":
version: 0.7.1
resolution: "javascript-natural-sort@npm:0.7.1"
checksum: 10c0/340f8ffc5d30fb516e06dc540e8fa9e0b93c865cf49d791fed3eac3bdc5fc71f0066fc81d44ec1433edc87caecaf9f13eec4a1fce8c5beafc709a71eaedae6fe
languageName: node
linkType: hard
"jest-changed-files@npm:^29.7.0":
version: 29.7.0
resolution: "jest-changed-files@npm:29.7.0"
@@ -10493,15 +10444,6 @@ __metadata:
languageName: node
linkType: hard
"jsesc@npm:^2.5.1":
version: 2.5.2
resolution: "jsesc@npm:2.5.2"
bin:
jsesc: bin/jsesc
checksum: 10c0/dbf59312e0ebf2b4405ef413ec2b25abb5f8f4d9bc5fb8d9f90381622ebca5f2af6a6aa9a8578f65903f9e33990a6dc798edd0ce5586894bf0e9e31803a1de88
languageName: node
linkType: hard
"jsesc@npm:^3.0.2":
version: 3.1.0
resolution: "jsesc@npm:3.1.0"
@@ -11970,7 +11912,6 @@ __metadata:
"@tamagui/lucide-icons": "npm:1.110.0"
"@tamagui/toast": "npm:1.110.0"
"@tamagui/types": "npm:1.110.0"
"@trivago/prettier-plugin-sort-imports": "npm:^4.3.0"
"@tsconfig/react-native": "npm:^3.0.0"
"@types/add": "npm:^2"
"@types/elliptic": "npm:^6"
@@ -11988,6 +11929,9 @@ __metadata:
country-iso-3-to-2: "npm:^1.1.1"
elliptic: "npm:^6.6.1"
eslint: "npm:^8.19.0"
eslint-config-prettier: "npm:^10.1.2"
eslint-plugin-prettier: "npm:^5.2.6"
eslint-plugin-simple-import-sort: "npm:^12.1.1"
ethers: "npm:^6.11.0"
expo-modules-core: "npm:^2.2.1"
jest: "npm:^29.6.3"
@@ -11998,7 +11942,7 @@ __metadata:
pako: "npm:^2.1.0"
pkijs: "npm:^3.2.4"
poseidon-lite: "npm:^0.2.0"
prettier: "npm:2.8.8"
prettier: "npm:^3.5.3"
react: "npm:^18.3.1"
react-native: "npm:0.75.4"
react-native-biometrics: "npm:^3.0.1"
@@ -12328,12 +12272,21 @@ __metadata:
languageName: node
linkType: hard
"prettier@npm:2.8.8":
version: 2.8.8
resolution: "prettier@npm:2.8.8"
"prettier-linter-helpers@npm:^1.0.0":
version: 1.0.0
resolution: "prettier-linter-helpers@npm:1.0.0"
dependencies:
fast-diff: "npm:^1.1.2"
checksum: 10c0/81e0027d731b7b3697ccd2129470ed9913ecb111e4ec175a12f0fcfab0096516373bf0af2fef132af50cafb0a905b74ff57996d615f59512bb9ac7378fcc64ab
languageName: node
linkType: hard
"prettier@npm:^3.5.3":
version: 3.5.3
resolution: "prettier@npm:3.5.3"
bin:
prettier: bin-prettier.js
checksum: 10c0/463ea8f9a0946cd5b828d8cf27bd8b567345cf02f56562d5ecde198b91f47a76b7ac9eae0facd247ace70e927143af6135e8cf411986b8cb8478784a4d6d724a
prettier: bin/prettier.cjs
checksum: 10c0/3880cb90b9dc0635819ab52ff571518c35bd7f15a6e80a2054c05dbc8a3aa6e74f135519e91197de63705bcb38388ded7e7230e2178432a1468005406238b877
languageName: node
linkType: hard
@@ -13772,7 +13725,7 @@ __metadata:
languageName: node
linkType: hard
"source-map@npm:^0.5.0, source-map@npm:^0.5.6":
"source-map@npm:^0.5.6":
version: 0.5.7
resolution: "source-map@npm:0.5.7"
checksum: 10c0/904e767bb9c494929be013017380cbba013637da1b28e5943b566031e29df04fba57edf3f093e0914be094648b577372bd8ad247fa98cfba9c600794cd16b599
@@ -14116,6 +14069,16 @@ __metadata:
languageName: node
linkType: hard
"synckit@npm:^0.11.0":
version: 0.11.4
resolution: "synckit@npm:0.11.4"
dependencies:
"@pkgr/core": "npm:^0.2.3"
tslib: "npm:^2.8.1"
checksum: 10c0/dd2965a37c93c0b652bf07b1fd8d1639a803b65cf34c0cb1b827b8403044fc3b09ec87f681d922a324825127ee95b2e0394e7caccb502f407892d63e903c5276
languageName: node
linkType: hard
"tabbable@npm:^6.0.0":
version: 6.2.0
resolution: "tabbable@npm:6.2.0"
@@ -14295,13 +14258,6 @@ __metadata:
languageName: node
linkType: hard
"to-fast-properties@npm:^2.0.0":
version: 2.0.0
resolution: "to-fast-properties@npm:2.0.0"
checksum: 10c0/b214d21dbfb4bce3452b6244b336806ffea9c05297148d32ebb428d5c43ce7545bdfc65a1ceb58c9ef4376a65c0cb2854d645f33961658b3e3b4f84910ddcdd7
languageName: node
linkType: hard
"to-regex-range@npm:^5.0.1":
version: 5.0.1
resolution: "to-regex-range@npm:5.0.1"