{ "name": "@selfxyz/mobile-app", "version": "2.9.10", "private": true, "type": "module", "scripts": { "analyze:bundle:android": "yarn build:deps && node ./scripts/bundle-analyze-ci.cjs android", "analyze:bundle:ios": "yarn build:deps && node ./scripts/bundle-analyze-ci.cjs ios", "analyze:tree-shaking": "node ./scripts/analyze-tree-shaking.cjs imports", "analyze:tree-shaking:web": "yarn web:build && node ./scripts/analyze-tree-shaking.cjs web", "android": "yarn build:deps && yarn setup:android-deps && react-native run-android", "android:ci": "./scripts/mobile-ci-build-android.sh", "build:deps": "yarn workspaces foreach --from @selfxyz/mobile-app --topological --recursive run build", "bump-version:major": "npm version major && yarn sync-versions", "bump-version:minor": "npm version minor && yarn sync-versions", "bump-version:patch": "npm version patch && yarn sync-versions", "clean": "yarn clean:watchman && yarn clean:build && yarn clean:ios && yarn clean:xcode && yarn clean:pod-cache && yarn clean:node && yarn clean:android-deps", "clean:android-deps": "node scripts/cleanup-private-modules.cjs", "clean:build": "rm -rf ios/build android/app/build android/build", "clean:ios": "rm -rf ios/Pods ios/Podfile.lock Gemfile.lock", "clean:node": "rm -rf ../node_modules app/node_modules", "clean:pod-cache": "cd ios && pod cache clean --all && cd ..", "clean:watchman": "watchman watch-del-all", "clean:xcode": "rm -rf ~/Library/Developer/Xcode/DerivedData", "clean:xcode-env-local": "rm -f ios/.xcode.env.local", "find:type-imports": "node scripts/find-type-import-issues.mjs", "fmt": "yarn prettier --check --cache .", "fmt:fix": "yarn prettier --write --cache .", "format": "yarn nice", "ia": "yarn install-app", "imports:fix": "node ./scripts/alias-imports.cjs", "postinstall": "npx patch-package --patch-dir ../patches || true", "install-app": "yarn install-app:setup && yarn clean:xcode-env-local", "install-app:mobile-deploy": "yarn install && yarn build:deps && yarn clean:xcode-env-local", "install-app:setup": "yarn install && yarn build:deps && yarn setup:android-deps && cd ios && bundle install && scripts/pod-install-with-cache-fix.sh && cd ..", "ios": "yarn build:deps && node scripts/run-ios-simulator.cjs", "ios:fastlane-debug": "yarn reinstall && bundle exec fastlane --verbose ios internal_test", "jest:clear": "node ./node_modules/jest/bin/jest.js --clearCache", "jest:run": "node ./node_modules/jest/bin/jest.js", "lint": "eslint . --cache --cache-location .eslintcache", "lint:fix": "eslint --fix . --cache --cache-location .eslintcache", "mobile-deploy": "node scripts/mobile-deploy-confirm.cjs both", "mobile-deploy:android": "node scripts/mobile-deploy-confirm.cjs android", "mobile-deploy:ios": "node scripts/mobile-deploy-confirm.cjs ios", "mobile-local-deploy": "FORCE_UPLOAD_LOCAL_DEV=true node scripts/mobile-deploy-confirm.cjs both", "mobile-local-deploy:android": "FORCE_UPLOAD_LOCAL_DEV=true node scripts/mobile-deploy-confirm.cjs android", "mobile-local-deploy:ios": "FORCE_UPLOAD_LOCAL_DEV=true node scripts/mobile-deploy-confirm.cjs ios", "nice": "sh -c 'if [ -z \"$SKIP_BUILD_DEPS\" ]; then yarn build:deps; fi; yarn imports:fix && yarn lint:fix'", "reinstall": "yarn --top-level run reinstall-app", "release": "./scripts/release.sh", "release:major": "./scripts/release.sh major", "release:minor": "./scripts/release.sh minor", "release:patch": "./scripts/release.sh patch", "setup": "yarn clean:build && yarn install && yarn build:deps && yarn setup:android-deps && cd ios && bundle install && bundle exec pod install --repo-update && cd .. && yarn clean:xcode-env-local", "setup:android-deps": "node scripts/setup-private-modules.cjs", "start": "watchman watch-del-all && yarn watch:sdk & react-native start", "start:clean": "watchman watch-del-all && cd android && ./gradlew clean && cd .. && yarn watch:sdk & react-native start --reset-cache", "sync-versions": "bundle exec fastlane ios sync_version && bundle exec fastlane android sync_version", "tag:release": "node scripts/tag.cjs release", "tag:remove": "node scripts/tag.cjs remove", "test": "yarn jest:run --passWithNoTests && node --test scripts/tests/*.cjs", "test:build": "yarn build:deps && yarn types && node ./scripts/bundle-analyze-ci.cjs ios && yarn test", "test:ci": "yarn jest:run --passWithNoTests && node --test scripts/tests/*.cjs", "test:coverage": "yarn jest:run --coverage --passWithNoTests", "test:coverage:ci": "yarn jest:run --coverage --passWithNoTests --ci --coverageReporters=lcov --coverageReporters=text --coverageReporters=json", "test:e2e:android": "./scripts/mobile-ci-build-android.sh && maestro test tests/e2e/launch.android.flow.yaml", "test:e2e:ios": "xcodebuild -workspace ios/OpenPassport.xcworkspace -scheme OpenPassport -configuration Debug -sdk iphonesimulator -derivedDataPath ios/build && maestro test tests/e2e/launch.ios.flow.yaml", "test:fastlane": "bundle exec ruby -Itest fastlane/test/helpers_test.rb", "test:tree-shaking": "node ./scripts/test-tree-shaking.cjs", "test:web-build": "yarn jest:run tests/web-build-render.test.ts --testTimeout=180000", "types": "tsc --noEmit", "watch:sdk": "yarn workspace @selfxyz/mobile-sdk-alpha watch", "web": "vite", "web:build": "yarn build:deps && vite build", "web:preview": "vite preview" }, "resolutions": { "punycode": "npm:punycode.js@2.3.1", "react-native-blur-effect": "1.1.3", "react-native-webview": "13.16.0" }, "overrides": { "punycode": "npm:punycode.js@2.3.1", "react-native-blur-effect": "1.1.3", "react-native-webview": "13.16.0" }, "dependencies": { "@babel/runtime": "^7.28.3", "@ethersproject/shims": "^5.7.0", "@noble/hashes": "^1.5.0", "@openpassport/zk-kit-imt": "^0.0.5", "@openpassport/zk-kit-lean-imt": "^0.0.6", "@openpassport/zk-kit-smt": "^0.0.1", "@peculiar/x509": "^1.13.0", "@react-native-async-storage/async-storage": "^2.2.0", "@react-native-clipboard/clipboard": "1.16.3", "@react-native-community/blur": "^4.4.1", "@react-native-community/netinfo": "^11.4.1", "@react-native-firebase/app": "^19.0.1", "@react-native-firebase/messaging": "^19.0.1", "@react-native-firebase/remote-config": "^19.0.1", "@react-navigation/native": "^7.0.14", "@react-navigation/native-stack": "^7.2.0", "@robinbobin/react-native-google-drive-api-wrapper": "^2.2.3", "@segment/analytics-react-native": "^2.21.2", "@segment/sovran-react-native": "^1.1.3", "@selfxyz/common": "workspace:^", "@selfxyz/euclid": "^0.6.1", "@selfxyz/mobile-sdk-alpha": "workspace:^", "@sentry/react": "^9.32.0", "@sentry/react-native": "7.0.1", "@stablelib/cbor": "^2.0.1", "@tamagui/animations-css": "1.126.14", "@tamagui/animations-react-native": "1.126.14", "@tamagui/config": "1.126.14", "@tamagui/lucide-icons": "1.126.14", "@tamagui/toast": "1.126.14", "@turnkey/api-key-stamper": "^0.5.0", "@turnkey/core": "1.7.0", "@turnkey/encoding": "^0.6.0", "@turnkey/react-native-wallet-kit": "1.1.5", "@walletconnect/react-native-compat": "^2.23.0", "@xstate/react": "^5.0.3", "asn1js": "^3.0.6", "axios": "^1.13.2", "buffer": "^6.0.3", "country-emoji": "^1.5.6", "elliptic": "^6.6.1", "ethers": "^6.11.0", "expo-application": "^7.0.7", "expo-modules-core": "^2.2.1", "hash.js": "^1.1.7", "js-sha1": "^0.7.0", "js-sha256": "^0.11.1", "js-sha512": "^0.9.0", "lottie-react": "^2.4.1", "lottie-react-native": "7.2.2", "node-forge": "^1.3.1", "pkijs": "^3.2.5", "poseidon-lite": "^0.2.0", "react": "^18.3.1", "react-dom": "^18.3.1", "react-native": "0.76.9", "react-native-app-auth": "^8.0.3", "react-native-biometrics": "^3.0.1", "react-native-blur-effect": "^1.1.3", "react-native-check-version": "^1.3.0", "react-native-cloud-storage": "^2.2.2", "react-native-device-info": "^14.0.4", "react-native-dotenv": "^3.4.11", "react-native-edge-to-edge": "^1.7.0", "react-native-gesture-handler": "2.19.0", "react-native-get-random-values": "^1.11.0", "react-native-haptic-feedback": "^2.3.3", "react-native-inappbrowser-reborn": "^3.7.0", "react-native-keychain": "^10.0.0", "react-native-linear-gradient": "^2.8.3", "react-native-localize": "^3.5.2", "react-native-logs": "^5.3.0", "react-native-nfc-manager": "3.16.3", "react-native-passkey": "^3.3.1", "react-native-passport-reader": "1.0.3", "react-native-safe-area-context": "^5.6.1", "react-native-screens": "4.15.3", "react-native-sqlite-storage": "^6.0.1", "react-native-svg": "15.14.0", "react-native-svg-web": "1.0.9", "react-native-url-polyfill": "^3.0.0", "react-native-web": "^0.19.0", "react-native-webview": "^13.16.0", "react-qr-barcode-scanner": "^2.1.8", "socket.io-client": "^4.8.1", "tamagui": "1.126.14", "uuid": "^11.1.0", "xstate": "^5.20.2", "zustand": "^4.5.2" }, "devDependencies": { "@babel/core": "^7.28.3", "@babel/plugin-syntax-flow": "^7.27.1", "@babel/plugin-transform-classes": "^7.27.1", "@babel/plugin-transform-export-namespace-from": "^7.27.1", "@babel/plugin-transform-flow-strip-types": "^7.27.1", "@babel/plugin-transform-private-methods": "^7.27.1", "@babel/preset-env": "^7.28.3", "@babel/preset-react": "^7.27.1", "@react-native-community/cli": "^16.0.3", "@react-native/babel-preset": "0.76.9", "@react-native/eslint-config": "0.76.9", "@react-native/gradle-plugin": "0.76.9", "@react-native/metro-config": "0.76.9", "@react-native/typescript-config": "0.76.9", "@tamagui/types": "1.126.14", "@tamagui/vite-plugin": "1.126.14", "@testing-library/react-native": "^13.3.3", "@tsconfig/react-native": "^3.0.6", "@types/bn.js": "^5.2.0", "@types/dompurify": "^3.2.0", "@types/elliptic": "^6.4.18", "@types/jest": "^30.0.0", "@types/node": "^22.18.3", "@types/node-forge": "^1.3.14", "@types/path-browserify": "^1", "@types/react": "^18.3.4", "@types/react-dom": "^18.3.0", "@types/react-native-dotenv": "^0.2.0", "@types/react-native-sqlite-storage": "^6.0.5", "@types/react-native-web": "^0", "@types/react-test-renderer": "^18", "@typescript-eslint/eslint-plugin": "^8.39.0", "@typescript-eslint/parser": "^8.39.0", "@vitejs/plugin-react-swc": "^3.10.2", "babel-plugin-module-resolver": "^5.0.2", "babel-plugin-transform-remove-console": "^6.9.4", "constants-browserify": "^1.0.0", "dompurify": "^3.2.6", "eslint": "^8.57.0", "eslint-config-prettier": "10.1.8", "eslint-import-resolver-typescript": "^3.7.0", "eslint-plugin-ft-flow": "^3.0.11", "eslint-plugin-header": "^3.1.1", "eslint-plugin-import": "^2.31.0", "eslint-plugin-jest": "^29.1.0", "eslint-plugin-prettier": "^5.2.6", "eslint-plugin-simple-import-sort": "^12.1.1", "eslint-plugin-sort-exports": "^0.9.1", "hermes-eslint": "^0.19.1", "jest": "^30.2.0", "path-browserify": "^1.0.1", "prettier": "^3.5.3", "react-native-svg-transformer": "^1.5.1", "react-test-renderer": "^18.3.1", "rollup-plugin-visualizer": "^6.0.3", "stream-browserify": "^3.0.0", "ts-morph": "^22.0.0", "ts-node": "^10.9.2", "typescript": "^5.9.2", "vite": "^7.0.0", "vite-plugin-svgr": "^4.5.0" }, "packageManager": "yarn@4.12.0", "engines": { "node": ">=22 <23" } }