Package.json looks like this
{
"name": "ripples",
"version": "1.0.0",
"scripts": {
"start": "expo start --dev-client",
"android": "expo run:android",
"ios": "expo run:ios",
"web": "expo start --web",
"eject": "expo eject",
"lint": "eslint ./src/**/*.{ts,tsx}",
"lint:fix": "eslint './src/**/*.{ts,tsx}' --fix",
"prepare": "husky install",
"extract-intl": "extract-messages -l=en -o src/translations -d en --flat \"src/**/!(*.test).ts\"",
"test": "jest --config jest.config.js --coverage --coverageReporters=json-summary --silent",
"test:watch": "test --watch",
"test:ci": "test --coverage",
"test:badges": "test:ci && jest-coverage-badges --input coverage/coverage-summary.json --output __badges__"
},
"dependencies": {
"@expo-google-fonts/open-sans": "^0.2.0",
"@expo-google-fonts/work-sans": "^0.2.0",
"@expo/config-plugins": "^5.0.0",
"@react-native-firebase/app": "15.4.0",
"@react-native-firebase/dynamic-links": "15.4.0",
"@react-navigation/bottom-tabs": "^6.3.1",
"@react-navigation/drawer": "^6.4.1",
"@react-navigation/material-top-tabs": "^6.2.1",
"@react-navigation/native": "^6.0.10",
"@react-navigation/native-stack": "^6.6.2",
"@stripe/stripe-react-native": "0.13.1",
"axios": "^0.24.0",
"babel-plugin-inline-import": "^3.0.0",
"date-fns": "^2.28.0",
"expo": "^46.0.16",
"expo-av": "~12.0.4",
"expo-build-properties": "~0.3.0",
"expo-dev-client": "~1.3.1",
"expo-device": "~4.3.0",
"expo-font": "~10.2.0",
"expo-intent-launcher": "~10.3.0",
"expo-linking": "~3.2.2",
"expo-notifications": "~0.16.1",
"expo-secure-store": "~11.3.0",
"expo-splash-screen": "~0.16.2",
"expo-status-bar": "~1.4.0",
"expo-updates": "~0.14.6",
"expo-web-browser": "~11.0.0",
"formik": "^2.2.9",
"intl": "^1.2.5",
"jest": "^26.6.3",
"jest-expo": "^46.0.0",
"react": "18.0.0",
"react-dom": "18.0.0",
"react-intl": "^6.0.2",
"react-native": "0.69.6",
"react-native-circular-progress": "^1.3.7",
"react-native-confetti-cannon": "^1.5.2",
"react-native-email-link": "^1.12.2",
"react-native-flash-message": "^0.2.0",
"react-native-gesture-bottom-sheet": "^1.1.0",
"react-native-gesture-handler": "~2.5.0",
"react-native-modalize": "^2.0.13",
"react-native-pager-view": "5.4.24",
"react-native-paper": "^4.11.1",
"react-native-reanimated": "~2.9.1",
"react-native-safe-area-context": "4.3.1",
"react-native-screens": "~3.15.0",
"react-native-snap-carousel": "^3.9.1",
"react-native-svg": "12.3.0",
"react-native-switch-selector": "^2.2.0",
"react-native-tab-view": "^3.1.1",
"react-native-web": "~0.18.7",
"react-native-webview": "11.23.0",
"react-native-youtube-iframe": "^2.2.2",
"react-native-zohosalesiq-mobilisten": "4.2.11",
"react-query": "^3.34.7",
"yup": "^0.32.11"
},
"devDependencies": {
"@babel/core": "^7.18.6",
"@testing-library/react-native": "^9.0.0",
"@types/jest": "^27.4.0",
"@types/react": "~18.0.0",
"@types/react-native": "~0.69.1",
"@types/react-native-snap-carousel": "^3.8.5",
"@types/react-test-renderer": "^17.0.1",
"@typescript-eslint/eslint-plugin": "^5.8.1",
"@typescript-eslint/parser": "^5.8.1",
"eslint": "^8.5.0",
"eslint-config-airbnb": "^19.0.4",
"eslint-config-airbnb-typescript": "^16.1.0",
"eslint-config-prettier": "^8.3.0",
"eslint-plugin-import": "^2.25.3",
"eslint-plugin-jsx-a11y": "^6.5.1",
"eslint-plugin-prettier": "^4.0.0",
"eslint-plugin-react": "^7.28.0",
"eslint-plugin-react-hooks": "^4.3.0",
"extract-react-intl-messages": "^4.1.1",
"husky": ">=6",
"jest-coverage-badges": "^1.1.2",
"lint-staged": ">=10",
"metro-babel-register": "^0.71.3",
"prettier": "^2.5.1",
"react-test-renderer": "17",
"ts-jest": "~26.0.0",
"ts-node": "^10.4.0",
"typescript": "^4.6.3"
},
"private": true,
"husky": {
"hooks": {
"pre-commit": "lint-staged"
}
},
"lint-staged": {
"*.{ts,tsx}": "eslint"
},
"resolutions": {
"@types/react": "18.0.0",
"@types/react-dom": "18.0.0"
}
}