{ "name": "bluewallet", "version": "6.0.4", "license": "MIT", "devDependencies": { "@babel/core": "^7.10.4", "@babel/runtime": "^7.10.4", "@jest/reporters": "^26.4.1", "@react-native-community/eslint-config": "^2.0.0", "babel-cli": "^6.26.0", "babel-eslint": "^10.1.0", "babel-jest": "^26.1.0", "babel-preset-flow": "^6.23.0", "detox-recorder": "^1.0.149", "eslint": "^7.5.0", "eslint-plugin-babel": "^5.3.1", "eslint-plugin-import": "^2.22.0", "eslint-plugin-node": "^11.1.0", "eslint-plugin-promise": "^4.2.1", "eslint-plugin-react": "^7.20.3", "flow-bin": "^0.134.0", "jest": "^26.1.0", "jetifier": "^1.6.3", "react-test-renderer": "16.13.1" }, "engines": { "node": ">=10.16.0", "npm": ">=6.9.0" }, "scripts": { "clean": "cd android/; ./gradlew clean; cd ..; rm -r -f /tmp/metro-cache/; rm -r -f node_modules/; npm cache clean --force; npm i; npm start -- --reset-cache", "clean:ios": "rm -fr node_modules && rm -fr ios/Pods && npm i && cd ios && pod update && cd ..; npm start -- --reset-cache", "releasenotes2json": "./scripts/release-notes.sh > release-notes.txt; node -e 'console.log(JSON.stringify(require(\"fs\").readFileSync(\"release-notes.txt\", \"utf8\")));' > release-notes.json", "podinstall": "./scripts/podinstall.sh", "start": "node node_modules/react-native/local-cli/cli.js start", "android": "react-native run-android", "android:clean": "cd android; ./gradlew clean ; cd .. ; npm run android", "ios": "react-native run-ios", "postinstall": "rn-nodeify --install buffer,events,process,stream,util,inherits,fs,path,assert --hack; npm run releasenotes2json; npm run podinstall; npx jetify", "test": "npm run lint && npm run unit && npm run jest", "jest": "jest -b -w 1 tests/integration/*", "maccatalystpatches": "./scripts/maccatalystpatches/applypatchesformaccatalyst.sh", "e2e:debug-build": "detox build -c android.emu.debug", "e2e:debug-test": "detox test -c android.emu.debug", "e2e:debug": "(test -f android/app/build/outputs/apk/debug/app-debug.apk && test -f android/app/build/outputs/apk/androidTest/debug/app-debug-androidTest.apk) || npm run e2e:debug-build; npm run e2e:debug-test", "e2e:release-build": "npx detox build -c android.emu.release", "e2e:release-test": "detox test -c android.emu.release --record-videos all --take-screenshots all --headless", "lint": "eslint *.js screen/**/*.js blue_modules/*.js class/**/*.js models/ loc/ tests/**/*.js components/**/*.js", "lint:fix": "npm run lint -- --fix", "lint:quickfix": "git status --porcelain | grep -v '\\.json' | grep '\\.js' --color=never | awk '{print $2}' | xargs eslint --fix; exit 0", "unit": "jest tests/unit/*" }, "jest": { "preset": "react-native", "transform": { "^.+\\.js$": "/node_modules/react-native/jest/preprocessor.js" }, "setupFiles": [ "./tests/setup.js" ], "watchPathIgnorePatterns": [ "/node_modules" ], "setupFilesAfterEnv": [ "./tests/setupAfterEnv.js" ] }, "dependencies": { "@babel/preset-env": "7.12.1", "@react-native-async-storage/async-storage": "1.13.3", "@react-native-community/blur": "3.6.0", "@react-native-community/clipboard": "1.5.1", "@react-native-community/geolocation": "2.0.2", "@react-native-community/masked-view": "0.1.10", "@react-native-community/push-notification-ios": "1.8.0", "@react-native-community/slider": "3.0.3", "@react-navigation/drawer": "5.11.2", "@react-navigation/native": "5.8.9", "@react-navigation/stack": "5.12.6", "@remobile/react-native-qrcode-local-image": "git+https://github.com/BlueWallet/react-native-qrcode-local-image.git", "@sentry/react-native": "1.9.0", "amplitude-js": "7.3.3", "assert": "1.5.0", "base-x": "3.0.8", "bc-bech32": "file:blue_modules/bc-bech32", "bc-ur": "file:blue_modules/bc-ur", "bech32": "1.1.4", "bignumber.js": "9.0.1", "bip21": "2.0.3", "bip32": "2.0.6", "bip39": "2.6.0", "bitcoinjs-lib": "5.2.0", "bolt11": "1.2.7", "buffer": "6.0.1", "buffer-reverse": "1.0.1", "coinselect": "3.1.12", "crypto-js": "3.1.9-1", "dayjs": "1.9.4", "detox": "17.11.0", "ecurve": "1.0.6", "electrum-client": "git+https://github.com/BlueWallet/rn-electrum-client.git#f9a827e724a5a2e578fdfdb483f83793af55b030", "electrum-mnemonic": "2.0.0", "eslint-config-prettier": "6.14.0", "eslint-config-standard": "14.1.1", "eslint-config-standard-react": "9.2.0", "eslint-plugin-prettier": "3.1.4", "eslint-plugin-standard": "4.0.2", "events": "1.1.1", "frisbee": "3.1.4", "lottie-ios": "3.1.8", "lottie-react-native": "3.5.0", "metro-react-native-babel-preset": "0.63.0", "path-browserify": "1.0.1", "payjoin-client": "1.0.0", "pbkdf2": "3.1.1", "prettier": "2.1.2", "process": "0.11.10", "prop-types": "15.7.2", "react": "16.13.1", "react-localization": "1.0.15", "react-native": "0.63.3", "react-native-blue-crypto": "git+https://github.com/Overtorment/react-native-blue-crypto.git", "react-native-camera": "3.40.0", "react-native-default-preference": "1.4.3", "react-native-device-info": "7.3.1", "react-native-document-picker": "git+https://github.com/BlueWallet/react-native-document-picker.git#3684d4fcc2bc0b47c32be39024e4796004c3e428", "react-native-elements": "2.3.2", "react-native-fingerprint-scanner": "git+https://github.com/BlueWallet/react-native-fingerprint-scanner.git#ce644673681716335d786727bab998f7e632ab5e", "react-native-fs": "2.16.6", "react-native-gesture-handler": "1.8.0", "react-native-handoff": "git+https://github.com/marcosrdz/react-native-handoff.git#f5becc63f3e36bf2da1ed1fc60fc690323e73602", "react-native-haptic-feedback": "1.11.0", "react-native-image-picker": "3.1.4", "react-native-inappbrowser-reborn": "git+https://github.com/BlueWallet/react-native-inappbrowser.git#fa2d8e1763e46dd12a7e53081e97a0f908049103", "react-native-is-catalyst": "git+https://github.com/BlueWallet/react-native-is-catalyst.git#v1.0.0", "react-native-level-fs": "3.0.1", "react-native-linear-gradient": "2.5.6", "react-native-localize": "1.4.2", "react-native-modal": "11.6.1", "react-native-navigation-bar-color": "git+https://github.com/BlueWallet/react-native-navigation-bar-color.git#34e44b8f44e442133de9d35c35f2679d40982804", "react-native-obscure": "1.2.1", "react-native-passcode-auth": "git+https://github.com/BlueWallet/react-native-passcode-auth.git#a2ff977ba92b36f8d0a5567f59c05cc608e8bd12", "react-native-popup-menu-android": "1.0.3", "react-native-privacy-snapshot": "git+https://github.com/BlueWallet/react-native-privacy-snapshot.git#529e4627d93f67752a27e82a040ff7b64dca0783", "react-native-prompt-android": "git+https://github.com/BlueWallet/react-native-prompt-android.git#2073b07f64bf5dc95807f64d79f37bdb111e6951", "react-native-push-notification": "5.1.1", "react-native-qrcode-svg": "6.0.6", "react-native-quick-actions": "0.3.13", "react-native-randombytes": "3.5.3", "react-native-rate": "1.2.4", "react-native-reanimated": "1.13.1", "react-native-safe-area-context": "3.1.8", "react-native-screens": "2.11.0", "react-native-secure-key-store": "git+https://github.com/BlueWallet/react-native-secure-key-store.git#4828fd1a67d12e4c0e21eee0bee673fde75e6f9a", "react-native-share": "4.0.2", "react-native-snap-carousel": "3.9.1", "react-native-sortable-list": "0.0.24", "react-native-svg": "12.1.0", "react-native-tcp-socket": "3.7.1", "react-native-tooltip": "git+https://github.com/BlueWallet/react-native-tooltip.git#d369e7ece09e4dec73873f1cfeac83e9d35294a6", "react-native-vector-icons": "6.6.0", "react-native-watch-connectivity": "1.0.3", "react-native-webview": "11.0.0", "react-native-widget-center": "git+https://github.com/BlueWallet/react-native-widget-center.git#e2e9a9038b76d096bf929a87105a97a0a7095001", "react-test-render": "1.1.2", "readable-stream": "3.6.0", "realm": "6.1.4", "rn-nodeify": "10.2.0", "secure-random": "1.1.2", "stream-browserify": "2.0.2", "url": "0.11.0", "util": "0.12.3", "wif": "2.0.6" }, "react-native": { "crypto": "bluewallet/blue_modules/crypto", "path": "path-browserify", "fs": "react-native-level-fs", "_stream_transform": "readable-stream/transform", "_stream_readable": "readable-stream/readable", "_stream_writable": "readable-stream/writable", "_stream_duplex": "readable-stream/duplex", "_stream_passthrough": "readable-stream/passthrough", "stream": "stream-browserify" }, "detox": { "configurations": { "ios.sim.release": { "binaryPath": "ios/build/Build/Products/Release-iphonesimulator/BlueWallet.app", "build": "xcodebuild clean build -workspace ios/BlueWallet.xcworkspace -scheme BlueWallet -configuration Release -derivedDataPath ios/build -sdk iphonesimulator13.2", "type": "ios.simulator", "device": { "type": "iPhone 11" } }, "android.emu.debug": { "binaryPath": "android/app/build/outputs/apk/debug/app-debug.apk", "build": "cd android && ./gradlew assembleDebug assembleAndroidTest -DtestBuildType=debug && cd ..", "type": "android.emulator", "device": { "avdName": "Pixel_API_29_AOSP" } }, "android.emu.release": { "binaryPath": "android/app/build/outputs/apk/release/app-release.apk", "build": "# deleting old artifacts\nfind | grep '\\.apk' --color=never | grep -v node_modules | xargs -l rm\n\n# creating fresh keystore\nrm detox.keystore\nkeytool -genkeypair -v -keystore detox.keystore -alias detox -keyalg RSA -keysize 2048 -validity 10000 -storepass 123456 -keypass 123456 -dname 'cn=Unknown, ou=Unknown, o=Unknown, c=Unknown'\n\n# building release APK\ncd android && ./gradlew assembleRelease assembleAndroidTest -DtestBuildType=release && cd ..\n\n# backup & sign apk1\ncp ./android/app/build/outputs/apk/release/app-release-unsigned.apk ./android/app/build/outputs/apk/release/app-release-unsigned.apk.bak\njarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore detox.keystore ./android/app/build/outputs/apk/release/app-release-unsigned.apk detox -storepass 123456\n\n# move apk1 to expected filename\nmv ./android/app/build/outputs/apk/release/app-release-unsigned.apk ./android/app/build/outputs/apk/release/app-release.apk\n\n# backup and sign apk2\ncp android/app/build/outputs/apk/androidTest/release/app-release-androidTest.apk android/app/build/outputs/apk/androidTest/release/app-release-androidTest.apk.bak\njarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore detox.keystore android/app/build/outputs/apk/androidTest/release/app-release-androidTest.apk detox -storepass 123456", "type": "android.emulator", "device": { "avdName": "Pixel_API_29_AOSP" } } }, "test-runner": "jest", "runner-config": "tests/e2e/config.json" }, "browser": { "path": "path-browserify", "fs": "react-native-level-fs", "_stream_transform": "readable-stream/transform", "_stream_readable": "readable-stream/readable", "_stream_writable": "readable-stream/writable", "_stream_duplex": "readable-stream/duplex", "_stream_passthrough": "readable-stream/passthrough", "stream": "stream-browserify" } }