{ "name": "bluewallet", "version": "6.2.5", "license": "MIT", "repository": { "type": "git", "url": "https://github.com/BlueWallet/BlueWallet.git" }, "devDependencies": { "@babel/core": "^7.12.9", "@babel/runtime": "^7.14.6", "@jest/reporters": "^26.4.1", "@react-native-community/eslint-config": "^3.0.0", "@types/bs58check": "^2.1.0", "@types/create-hash": "^1.2.2", "@types/jest": "^26.0.24", "@types/react": "^17.0.14", "@types/react-native": "^0.64.12", "@types/react-test-renderer": "^17.0.1", "@typescript-eslint/eslint-plugin": "^4.28.3", "@typescript-eslint/parser": "^4.28.3", "babel-cli": "^6.26.0", "babel-eslint": "^10.1.0", "babel-jest": "^26.6.3", "eslint": "^7.30.0", "eslint-config-prettier": "^8.3.0", "eslint-config-standard": "^16.0.2", "eslint-config-standard-jsx": "^10.0.0", "eslint-config-standard-react": "^11.0.1", "eslint-plugin-babel": "^5.3.1", "eslint-plugin-import": "^2.22.1", "eslint-plugin-node": "^11.1.0", "eslint-plugin-prettier": "^4.0.0", "eslint-plugin-promise": "^5.1.0", "eslint-plugin-react": "^7.23.2", "eslint-plugin-standard": "^4.1.0", "jest": "^26.1.0", "prettier": "^2.2.1", "react-test-renderer": "17.0.1", "typescript": "^4.3.5" }, "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,crypto --hack; npm run releasenotes2json; npm run podinstall", "test": "npm run tslint && npm run lint && npm run unit && npm run jest", "jest": "jest -b -w 1 tests/integration/*", "windowspatches": "./scripts/windows-patches.sh", "maccatalystpatches": "./scripts/maccatalystpatches/applypatchesformaccatalyst.sh", "e2e:debug-build": "detox build -c android.emu.debug", "e2e:debug-test": "detox test -c android.emu.debug -l fatal", "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": "detox build -c android.emu.release", "e2e:release-test": "detox test -c android.emu.release --record-videos all --take-screenshots all --headless -d 60000 --loglevel info", "tslint": "tsc", "lint": "eslint --ext .js,.ts,.tsx '*.@(js|ts|tsx)' screen 'blue_modules/*.@(js|ts|tsx)' class models loc tests components", "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/*", "windows": "react-native run-windows" }, "jest": { "preset": "react-native", "transform": { "^.+\\.js$": "/node_modules/react-native/jest/preprocessor.js" }, "moduleFileExtensions": [ "js", "json", "ts", "tsx" ], "transformIgnorePatterns": [ "node_modules/(?!((jest-)?react-native(-.*)?|@react-native(-community)?)/)" ], "setupFiles": [ "./tests/setup.js" ], "watchPathIgnorePatterns": [ "/node_modules" ], "setupFilesAfterEnv": [ "./tests/setupAfterEnv.js" ] }, "dependencies": { "@babel/preset-env": "7.12.1", "@bugsnag/react-native": "7.12.0", "@bugsnag/source-maps": "2.3.0", "@keystonehq/bc-ur-registry": "https://github.com/BlueWallet/ur-registry", "@ngraveio/bc-ur": "https://github.com/BlueWallet/bc-ur", "@react-native-async-storage/async-storage": "1.15.5", "@react-native-clipboard/clipboard": "1.8.4", "@react-native-community/blur": "3.6.0", "@react-native-community/masked-view": "0.1.11", "@react-native-community/push-notification-ios": "1.10.0", "@react-navigation/drawer": "5.12.5", "@react-navigation/native": "5.9.4", "@react-navigation/stack": "5.14.5", "@remobile/react-native-qrcode-local-image": "https://github.com/BlueWallet/react-native-qrcode-local-image", "aez": "1.0.1", "assert": "2.0.0", "base-x": "3.0.8", "bc-bech32": "file:blue_modules/bc-bech32", "bech32": "2.0.0", "bignumber.js": "9.0.1", "bip21": "2.0.3", "bip32": "2.0.6", "bip38": "github:BlueWallet/bip38", "bip39": "3.0.4", "bitcoinjs-lib": "5.2.0", "bitcoinjs-message": "2.2.0", "bolt11": "1.3.2", "buffer": "6.0.3", "buffer-reverse": "1.0.1", "coinselect": "3.1.12", "crypto-js": "4.1.1", "dayjs": "1.10.6", "detox": "18.20.3", "ecurve": "1.0.6", "electrum-client": "https://github.com/BlueWallet/rn-electrum-client#99ebcc649d91a8dc39bea7964b02dd9ead464aa4", "electrum-mnemonic": "2.0.0", "events": "3.3.0", "frisbee": "3.1.4", "junderw-crc32c": "1.2.0", "lottie-ios": "3.1.9", "lottie-react-native": "4.0.2", "metro-react-native-babel-preset": "0.66.2", "path-browserify": "1.0.1", "payjoin-client": "1.0.0", "process": "0.11.10", "prop-types": "15.7.2", "react": "17.0.1", "react-localization": "1.0.17", "react-native": "0.64.2", "react-native-blue-crypto": "https://github.com/BlueWallet/react-native-blue-crypto#fbc2e6beded0b7f61e0986ce98cca1230f84bc1c", "react-native-camera": "4.1.1", "react-native-crypto": "2.2.0", "react-native-default-preference": "1.4.3", "react-native-device-info": "8.3.1", "react-native-document-picker": "https://github.com/BlueWallet/react-native-document-picker#3684d4fcc2bc0b47c32be39024e4796004c3e428", "react-native-elements": "2.3.2", "react-native-fingerprint-scanner": "https://github.com/BlueWallet/react-native-fingerprint-scanner#ce644673681716335d786727bab998f7e632ab5e", "react-native-fs": "2.18.0", "react-native-gesture-handler": "1.10.3", "react-native-handoff": "https://github.com/marcosrdz/react-native-handoff#f5becc63f3e36bf2da1ed1fc60fc690323e73602", "react-native-haptic-feedback": "https://github.com/junina-de/react-native-haptic-feedback.git#8e4d598ad9be886325316b0e2140df8df624a91f", "react-native-idle-timer": "https://github.com/BlueWallet/react-native-idle-timer#8587876d68ab5920e79619726aeca9e672beaf2b", "react-native-image-picker": "4.0.6", "react-native-ios-context-menu": "https://github.com/BlueWallet/react-native-ios-context-menu.git#v1.3.0", "react-native-keychain": "7.0.0", "react-native-level-fs": "3.0.1", "react-native-linear-gradient": "2.5.6", "react-native-localize": "2.1.3", "react-native-modal": "12.1.0", "react-native-navigation-bar-color": "https://github.com/BlueWallet/react-native-navigation-bar-color#3b2894ae62fbce99a3bd24105f0921cebaef5c94", "react-native-obscure": "https://github.com/BlueWallet/react-native-obscure.git#f4b83b4a261e39b1f5ed4a45ac5bcabc8a59eadb", "react-native-passcode-auth": "https://github.com/BlueWallet/react-native-passcode-auth#a2ff977ba92b36f8d0a5567f59c05cc608e8bd12", "react-native-popup-menu-android": "1.0.3", "react-native-privacy-snapshot": "https://github.com/BlueWallet/react-native-privacy-snapshot#529e4627d93f67752a27e82a040ff7b64dca0783", "react-native-prompt-android": "https://github.com/BlueWallet/react-native-prompt-android#ed168d66fed556bc2ed07cf498770f058b78a376", "react-native-push-notification": "5.1.1", "react-native-qrcode-svg": "6.1.1", "react-native-quick-actions": "0.3.13", "react-native-randombytes": "3.6.1", "react-native-rate": "1.2.6", "react-native-reanimated": "2.2.0", "react-native-safe-area-context": "3.3.2", "react-native-screens": "3.5.0", "react-native-secure-key-store": "https://github.com/BlueWallet/react-native-secure-key-store#63ab38c9d382a819844a086a69cc204c46aa93f9", "react-native-share": "7.0.2", "react-native-sortable-list": "https://github.com/BlueWallet/react-native-sortable-list.git#e4e44a01a90ee2dcb9c57182262595abf36bfdf7", "react-native-svg": "12.1.1", "react-native-tcp-socket": "5.3.0", "react-native-tor": "0.1.7", "react-native-vector-icons": "8.1.0", "react-native-watch-connectivity": "1.0.4", "react-native-webview": "11.13.0", "react-native-widget-center": "https://github.com/BlueWallet/react-native-widget-center#b1382bbe1ed631b50a8aa03390f64c50775bc9ff", "react-native-windows": "0.64.14", "react-test-render": "1.1.2", "readable-stream": "3.6.0", "realm": "10.7.0", "rn-nodeify": "10.3.0", "scryptsy": "2.1.0", "secure-random": "1.1.2", "slip39": "https://github.com/BlueWallet/slip39-js", "stream-browserify": "3.0.0", "url": "0.11.0", "util": "0.12.4", "wif": "2.0.6" }, "react-native": { "crypto": "react-native-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": { "crypto": "react-native-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" } }