{ "name": "alerte-secours", "version": "1.8.2", "main": "index.js", "scripts": { "start": "expo start --dev-client --private-key-path ./keys/private-key.pem", "start:staging": "dotenv --override -e .env.staging -- yarn start", "start:prod": "dotenv --override -e .env.prod -- yarn start", "android": "expo run:android", "android:staging": "dotenv --override -e .env.staging -- expo run:android", "android:prod": "dotenv --override -e .env.prod -- expo run:android", "bundle:android": "dotenv --override -e .env.prod -- bundle-android", "bundle:android:fastdev": "SENTRY_ALLOW_FAILURE=true SENTRY_AUTH_TOKEN='' yarn bundle:android", "bundle:android:upload:internal": "fastlane supply --aab android/app/build/outputs/bundle/release/app-release.aab --track internal -j keys/alerte-secours-449609-469f820e5960.json -p com.alertesecours", "bundle:ios:archive": "./scripts/ios-archive.sh", "bundle:ios:export": "./scripts/ios-export.sh", "bundle:ios:upload": "./scripts/ios-upload.sh", "bundle:ios": "yarn bundle:ios:archive && yarn bundle:ios:export", "ios": "expo run:ios", "ios:staging": "dotenv --override -e .env.staging -- yarn run ios", "ios:prod": "dotenv --override -e .env.prod -- yarn run ios", "web": "expo start --web", "postinstall": "link-module-alias", "prepare": "husky || true", "deep-clean": "./node_modules/.bin/react-native-clean-project --keep-node-modules --remove-iOS-build --keep-brew --keep-pods --remove-iOS-pods --remove-android-build && yarn clean", "clean": "\\rm -fr ./node_modules && \\rm -fr dist/* && \\rm -fr ios/build ios/Pods ios/KScoreApp.xcarchive && \\rm -fr android/build android/app/build", "prebuild": "expo prebuild && yarn prebuild:hackfix", "prebuild:hackfix": "node scripts/removeDuplicates.js", "lint": "eslint .", "expo-updates:upload": "dotenv --override -e .env.prod -- expo-publish-selfhosted.sh release . $EXPO_UPLOAD_KEY https://expo-updates.alertesecours.fr", "release": "commit-and-tag-version", "delivery": "yarn release && yarn expo-updates:upload", "test": "jest", "e2e:build": "dotenv --override -e .env.staging -- detox build --configuration android.emu.debug", "e2e:deploy": "adb -s emulator-5554 install -r android/app/build/outputs/apk/debug/app-debug.apk", "e2e:start": "adb -s emulator-5554 shell am start -n com.alertesecours/.MainActivity", "e2e:test": "detox test --configuration android.emu.debug", "e2e:run": "yarn start & yarn e2e:build && yarn e2e:deploy && yarn e2e:test", "install:android": "cd android/app/build/outputs/bundle/release && java -jar /opt/bundletool-all-1.17.1.jar build-apks --mode universal --bundle ./app-release.aab --output ./app.apks && mv app.apks app.zip && unzip -o app.zip && adb -s $DEVICE install universal.apk", "log:android": "adb -s $DEVICE logcat | grep -E 'ReactNativeJS: '", "log:ios:simulator": "xcrun simctl spawn booted log stream --level debug --predicate 'subsystem contains \"com.facebook.react.log\" and processImagePath contains \"AlerteSecours\"'", "log:ios": "idevicesyslog | grep -i 'AlerteSecours\\|ReactNative'", "log-android": "react-native log-android", "log-ios": "react-native log-ios", "open:deeplink:android": "yarn open:deeplink --android", "open:deeplink:ios": "yarn open:deeplink --ios", "open:deeplink": "npx uri-scheme open --android" }, "customExpoVersioning": { "versionCode": 176, "buildNumber": 176 }, "commit-and-tag-version": { "scripts": { "prechangelog": "yarn prebuild", "postcommit": "git add android/app/build.gradle android/app/src/main/AndroidManifest.xml ios/AlerteSecours/Info.plist && git commit --amend --no-edit" } }, "_moduleAliases": { "~": "src" }, "lint-staged": { "*.{js,jsx}": "eslint --cache --fix" }, "husky": { "hooks": { "pre-commit": "lint-staged", "commit-msg": "commitlint -E HUSKY_GIT_PARAMS" } }, "dependencies": { "@apollo/client": "^3.13.1", "@bam.tech/react-native-image-resizer": "^3.0.7", "@expo/config-plugins": "~8.0.0", "@hookform/resolvers": "^3.2.0", "@mapbox/geo-viewport": "^0.5.0", "@mapbox/locale-utils": "^0.0.6", "@mapbox/polyline": "^1.2.1", "@maplibre/maplibre-react-native": "10.0.0-alpha.23", "@notifee/react-native": "^9.1.8", "@react-native-async-storage/async-storage": "1.23.1", "@react-native-community/netinfo": "^11.4.1", "@react-native-community/slider": "^4.5.2", "@react-native-firebase/app": "^20.5.0", "@react-native-firebase/messaging": "^20.5.0", "@react-native-masked-view/masked-view": "0.3.1", "@react-navigation/bottom-tabs": "^6.6.1", "@react-navigation/drawer": "^6.7.2", "@react-navigation/elements": "^1.3.31", "@react-navigation/material-top-tabs": "^6.6.14", "@react-navigation/native": "^6.1.18", "@react-navigation/stack": "^6.4.1", "@sentry/react-native": "^5.35.0", "@turf/along": "^7.1.0", "@turf/boolean-equal": "^7.1.0", "@turf/distance": "^7.1.0", "@turf/length": "^7.1.0", "@turf/line-slice": "^7.1.0", "@turf/meta": "^7.1.0", "@turf/nearest-point": "^7.1.0", "@turf/point-to-line-distance": "^7.1.0", "@types/react": "~18.2.79", "ajv": "^8.12.0", "ajv-errors": "^3.0.0", "ajv-formats": "^2.1.1", "ajv-keywords": "^5.1.0", "apollo-link-sentry": "^4.0.0", "axios": "^1.4.0", "axios-retry": "^3.5.1", "base62str": "^1.0.10", "country-codes-list": "^1.6.11", "delay": "^6.0.0", "eventemitter3": "^5.0.1", "expo": "~51.0.39", "expo-av": "~14.0.7", "expo-build-properties": "~0.12.5", "expo-constants": "~16.0.2", "expo-contacts": "~13.0.5", "expo-dev-client": "~4.0.29", "expo-device": "~6.0.2", "expo-gradle-ext-vars": "^0.1.1", "expo-linear-gradient": "~13.0.2", "expo-linking": "~6.3.1", "expo-localization": "~15.0.3", "expo-location": "~17.0.1", "expo-notifications": "~0.28.19", "expo-secure-store": "~13.0.2", "expo-sensors": "~13.0.9", "expo-splash-screen": "~0.27.7", "expo-status-bar": "~1.12.1", "expo-system-ui": "~3.0.7", "expo-task-manager": "~11.8.2", "expo-updates": "~0.25.27", "fast-equals": "^5.0.1", "fuse.js": "^6.6.2", "geolib": "^3.3.4", "google-libphonenumber": "^3.2.32", "graphql": "^16.10.0", "graphql-ws": "^6.0.4", "hash.js": "^1.1.7", "i18next": "^23.2.10", "immer": "^10.0.2", "jwt-decode": "^3.1.2", "ky": "^0.33.3", "link-module-alias": "^1.2.0", "lodash.camelcase": "^4.3.0", "lodash.capitalize": "^4.2.1", "lodash.clonedeep": "^4.5.0", "lodash.debounce": "^4.0.8", "lodash.defaultsdeep": "^4.6.1", "lodash.get": "^4.4.2", "lodash.invert": "^4.3.0", "lodash.kebabcase": "^4.1.1", "lodash.mapkeys": "^4.6.0", "lodash.merge": "^4.6.2", "lodash.set": "^4.3.2", "lodash.snakecase": "^4.1.1", "lodash.upperfirst": "^4.3.1", "lottie-react-native": "^7.0.0", "minisearch": "^6.1.0", "moment": "^2.29.4", "open-color": "^1.9.1", "open-location-code": "^1.0.3", "osrm-text-instructions": "^0.15.0", "react": "18.2.0", "react-countdown": "^2.3.5", "react-dom": "^18.2.0", "react-hook-form": "^7.47.0", "react-i18next": "^13.0.2", "react-native": "0.74.5", "react-native-animatable": "^1.3.3", "react-native-app-link": "^1.0.1", "react-native-background-fetch": "^4.2.7", "react-native-background-geolocation": "^4.18.6", "react-native-contact-pick": "^0.1.2", "react-native-country-picker-modal": "^2.0.0", "react-native-device-country": "^1.0.5", "react-native-drawer": "^2.5.1", "react-native-dropdownalert": "^5.1.0", "react-native-error-boundary": "^1.2.8", "react-native-geolocation-service": "^5.3.1", "react-native-gesture-handler": "~2.16.1", "react-native-image-crop-picker": "^0.40.3", "react-native-immediate-phone-call": "^2.0.0", "react-native-map-link": "^3.6.1", "react-native-material-ripple": "^0.9.1", "react-native-modal-selector": "^2.1.2", "react-native-optiongroup": "^0.0.7", "react-native-pager-view": "6.3.0", "react-native-paper": "^5.9.1", "react-native-permissions": "^4.1.5", "react-native-phone-number-input": "^2.1.0", "react-native-reanimated": "~3.10.1", "react-native-safe-area-context": "4.10.5", "react-native-screens": "3.31.1", "react-native-send-intent": "^1.3.0", "react-native-storage": "^1.0.1", "react-native-styled-text": "^2.0.0", "react-native-tab-view": "^3.5.2", "react-native-toast-notifications": "^3.3.1", "react-native-url-polyfill": "^2.0.0", "react-native-uuid": "^2.0.2", "react-native-vector-icons": "^9.2.0", "react-native-web": "~0.19.10", "supercluster": "^8.0.1", "typescript": "~5.3.3", "use-sync-external-store": "^1.4.0", "zustand": "^5.0.3", "zxcvbn": "^4.4.2" }, "devDependencies": { "@babel/core": "^7.24.0", "@babel/eslint-parser": "^7.23.10", "@babel/plugin-proposal-class-properties": "^7.18.6", "@babel/plugin-proposal-export-namespace-from": "^7.18.9", "@babel/plugin-proposal-private-methods": "^7.18.6", "@babel/plugin-proposal-private-property-in-object": "^7.21.11", "@babel/plugin-transform-flow-strip-types": "^7.25.2", "@babel/preset-env": "^7.22.7", "@babel/preset-react": "^7.24.1", "@react-native/metro-config": "^0.75.3", "@types/lodash.debounce": "^4", "@types/lodash.kebabcase": "^4", "@types/lodash.snakecase": "^4", "@welldone-software/why-did-you-render": "^8.0.1", "babel-eslint": "^10.1.0", "babel-plugin-module-resolver": "^5.0.0", "babel-plugin-root-import": "^6.6.0", "babel-plugin-transform-inline-environment-variables": "^0.4.4", "commit-and-tag-version": "^11.2.2", "concurrently": "^6.2.0", "detox": "^20.27.2", "dotenv-cli": "^7.4.2", "eslint": "^7.32.0", "eslint-config-prettier": "^8.8.0", "eslint-import-resolver-babel-module": "^5.3.2", "eslint-import-resolver-typescript": "^3.5.5", "eslint-plugin-autoimport-declarative": "^1.0.2", "eslint-plugin-babel": "^5.3.1", "eslint-plugin-detox": "^1.0.0", "eslint-plugin-import": "^2.27.5", "eslint-plugin-jest": "^28.10.0", "eslint-plugin-jsx-a11y": "^6.7.1", "eslint-plugin-node": "^11.1.0", "eslint-plugin-prettier": "^5.0.0", "eslint-plugin-react": "^7.32.2", "eslint-plugin-react-hooks": "^4.6.0", "eslint-plugin-react-native": "^4.0.0", "eslint-plugin-sort-keys-fix": "^1.1.2", "eslint-plugin-unused-imports": "^3.0.0", "husky": "^9.0.11", "jest": "^29.7.0", "prettier": "^3.0.0", "react-native-clean-project": "^4.0.3", "xml2js": "^0.6.2" }, "private": true, "resolutions": { "expo-modules-core@1.12.23": "patch:expo-modules-core@npm%3A1.12.23#./.yarn/patches/expo-modules-core-npm-1.12.23-4ea588b9bf.patch", "react-native-drawer@^2.5.1": "patch:react-native-drawer@npm%3A2.5.1#./.yarn/patches/react-native-drawer-npm-2.5.1-d9da0c325e.patch" }, "detox": { "testRunner": "jest", "runnerConfig": "e2e/config.json", "configurations": { "android.emu.debug": { "type": "android.emulator", "binaryPath": "android/app/build/outputs/apk/debug/app-debug.apk", "build": "cd android && ./gradlew assembleDebug assembleAndroidTest -DtestBuildType=debug && cd ..", "device": { "avdName": "Pixel_6_API_30" } } } }, "packageManager": "yarn@4.5.3" }