From 112132aa94267be6a6b1050e1806ff3a65bafd48 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Soko=C5=82owski?= Date: Wed, 1 Jul 2020 21:45:39 +0200 Subject: [PATCH] drop all desktop related files and references MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Jakub Sokołowski --- .env | 1 - .env.e2e | 1 - .env.jenkins | 1 - .env.nightly | 1 - .env.release | 1 - .gitignore | 30 +- .../DEPENDENCIES.md => DEPENDENCIES.md | 4 - Makefile | 35 +- TROUBLESHOOTING.md | 2 - ci/Jenkinsfile.android | 2 +- ci/Jenkinsfile.combined | 2 +- ci/Jenkinsfile.ios | 2 +- ci/Jenkinsfile.linux | 125 - ci/Jenkinsfile.macos | 123 - ci/Jenkinsfile.nix-cache | 4 +- ci/Jenkinsfile.windows | 128 - ci/tools/Jenkinsfile.fastlane-clean | 2 +- ci/tools/Jenkinsfile.playstore-meta | 2 +- deployment/linux/usr/bin/.keep | 0 deployment/linux/usr/lib/.keep | 0 .../usr/share/applications/Status.desktop | 7 - .../icons/hicolor/1024x1024/apps/Status.png | Bin 88016 -> 0 bytes deployment/macos/Info.plist | 43 - deployment/macos/create-icon.sh | 19 - deployment/macos/dmg-background.png | Bin 9896 -> 0 bytes deployment/macos/dmg-background@2x.png | Bin 26550 -> 0 bytes deployment/macos/dmg-background@3x.png | Bin 51920 -> 0 bytes .../macos/macos-developer-id.keychain-db.gpg | Bin 8563 -> 0 bytes deployment/macos/qt-reportApp.conf | 4 - deployment/macos/status-dmg.json | 18 - deployment/macos/status-icon.icns | Bin 291538 -> 0 bytes deployment/status-icon.png | Bin 123640 -> 0 bytes deployment/status-icon.svg | 24 - deployment/windows/Status.rc.in | 71 - .../windows/nsis/include/SnoreNotify.nsh | 23 - deployment/windows/nsis/include/UAC.nsh | 299 - deployment/windows/nsis/include/nsProcess.nsh | 28 - .../nsis/plugins/x86-ansi/SimpleFC.dll | Bin 179712 -> 0 bytes .../windows/nsis/plugins/x86-ansi/UAC.dll | Bin 14848 -> 0 bytes .../nsis/plugins/x86-ansi/nsProcess.dll | Bin 4608 -> 0 bytes .../windows/nsis/plugins/x86-unicode/UAC.dll | Bin 14848 -> 0 bytes .../nsis/plugins/x86-unicode/nsProcess.dll | Bin 4608 -> 0 bytes deployment/windows/nsis/setup.nsi | 1034 --- deployment/windows/resource.h | 20 - deployment/windows/status.ico | Bin 33314 -> 0 bytes deployment/windows/targetver.h | 8 - desktop/CMakeLists.txt | 99 - desktop/CMakeModules/CompleteBundle.cmake | 12 - .../CMakeModules/CompleteBundleWin.cmake.in | 62 - desktop/CMakeModules/QtConfiguration.cmake | 86 - desktop/Toolchain-Ubuntu-mingw64.cmake | 19 - desktop/appconfig.cpp | 76 - desktop/appconfig.h | 31 - desktop/build.bat | 36 - desktop/build.sh | 49 - desktop/js_files/package.json | 216 - desktop/js_files/yarn.lock | 8133 ----------------- desktop/main.cpp | 545 -- desktop/reportApp/CMakeLists.txt | 27 - desktop/reportApp/main.cpp | 49 - desktop/reportApp/main.qml | 77 - desktop/reportApp/main.qrc | 5 - desktop/reportApp/reportpublisher.cpp | 111 - desktop/reportApp/reportpublisher.h | 40 - desktop/resources/add.png | Bin 132 -> 0 bytes desktop/resources/add_contact.png | Bin 317 -> 0 bytes desktop/resources/address.png | Bin 142 -> 0 bytes desktop/resources/arrow_left.png | Bin 155 -> 0 bytes desktop/resources/arrow_right.png | Bin 145 -> 0 bytes desktop/resources/arrow_up.png | Bin 167 -> 0 bytes desktop/resources/back.png | Bin 127 -> 0 bytes desktop/resources/backspace.png | Bin 308 -> 0 bytes desktop/resources/bell.png | Bin 1802 -> 0 bytes desktop/resources/browser.png | Bin 431 -> 0 bytes desktop/resources/camera.png | Bin 350 -> 0 bytes desktop/resources/cancel.png | Bin 386 -> 0 bytes desktop/resources/change.png | Bin 281 -> 0 bytes desktop/resources/check.png | Bin 141 -> 0 bytes desktop/resources/close.png | Bin 190 -> 0 bytes desktop/resources/commands.png | Bin 260 -> 0 bytes desktop/resources/copy.png | Bin 229 -> 0 bytes desktop/resources/corner_left_bottom.png | Bin 526 -> 0 bytes desktop/resources/corner_left_top.png | Bin 614 -> 0 bytes desktop/resources/corner_right_bottom.png | Bin 613 -> 0 bytes desktop/resources/corner_right_top.png | Bin 537 -> 0 bytes desktop/resources/dapp.png | Bin 274 -> 0 bytes desktop/resources/delete.png | Bin 307 -> 0 bytes desktop/resources/desktop.png | Bin 176 -> 0 bytes desktop/resources/download.png | Bin 208 -> 0 bytes desktop/resources/dropdown.png | Bin 150 -> 0 bytes desktop/resources/dropdown_up.png | Bin 139 -> 0 bytes desktop/resources/edit.png | Bin 296 -> 0 bytes desktop/resources/filter.png | Bin 132 -> 0 bytes desktop/resources/fingerprint.png | Bin 5130 -> 0 bytes desktop/resources/flash.png | Bin 325 -> 0 bytes desktop/resources/flash_active.png | Bin 272 -> 0 bytes desktop/resources/group_chat.png | Bin 386 -> 0 bytes desktop/resources/help.png | Bin 436 -> 0 bytes desktop/resources/history.png | Bin 206 -> 0 bytes desktop/resources/home.png | Bin 414 -> 0 bytes desktop/resources/home_1.png | Bin 302 -> 0 bytes desktop/resources/ic_background.png | Bin 98 -> 0 bytes desktop/resources/ic_foreground.png | Bin 730 -> 0 bytes .../resources/ic_stat_status_notification.png | Bin 648 -> 0 bytes desktop/resources/icon_action_back.png | Bin 576 -> 0 bytes desktop/resources/icon_action_forward.png | Bin 544 -> 0 bytes .../icon_action_fullscreen_collapse.png | Bin 398 -> 0 bytes .../icon_action_fullscreen_expand.png | Bin 351 -> 0 bytes desktop/resources/icon_arrow_top.png | Bin 816 -> 0 bytes desktop/resources/icon_avatar.png | Bin 2282 -> 0 bytes desktop/resources/icon_check_on.png | Bin 316 -> 0 bytes desktop/resources/icon_close_light_gray.png | Bin 464 -> 0 bytes desktop/resources/icon_forward_gray.png | Bin 426 -> 0 bytes desktop/resources/icon_lock_gray.png | Bin 430 -> 0 bytes desktop/resources/icon_lock_white.png | Bin 314 -> 0 bytes desktop/resources/icon_menu_group.png | Bin 1597 -> 0 bytes desktop/resources/icon_money_white.png | Bin 473 -> 0 bytes desktop/resources/icon_muted.png | Bin 1184 -> 0 bytes desktop/resources/icon_notifications_on.png | Bin 823 -> 0 bytes desktop/resources/icon_phone_white.png | Bin 396 -> 0 bytes desktop/resources/in_contacts.png | Bin 329 -> 0 bytes desktop/resources/info.png | Bin 384 -> 0 bytes desktop/resources/keycard.png | Bin 188 -> 0 bytes desktop/resources/keycard_logo.png | Bin 675 -> 0 bytes desktop/resources/language.png | Bin 438 -> 0 bytes desktop/resources/launch_logo.png | Bin 3801 -> 0 bytes desktop/resources/link.png | Bin 329 -> 0 bytes desktop/resources/log_out.png | Bin 324 -> 0 bytes desktop/resources/logo.png | Bin 1850 -> 0 bytes desktop/resources/mailserver.png | Bin 258 -> 0 bytes desktop/resources/make_admin.png | Bin 354 -> 0 bytes desktop/resources/max.png | Bin 185 -> 0 bytes desktop/resources/message.png | Bin 314 -> 0 bytes desktop/resources/mobile.png | Bin 199 -> 0 bytes desktop/resources/more.png | Bin 127 -> 0 bytes desktop/resources/network.png | Bin 387 -> 0 bytes desktop/resources/next.png | Bin 133 -> 0 bytes desktop/resources/notification.png | Bin 235 -> 0 bytes desktop/resources/one_on_one_chat.png | Bin 347 -> 0 bytes desktop/resources/password.png | Bin 244 -> 0 bytes desktop/resources/paste.png | Bin 225 -> 0 bytes desktop/resources/photo.png | Bin 366 -> 0 bytes desktop/resources/profile.png | Bin 301 -> 0 bytes desktop/resources/public_chat.png | Bin 345 -> 0 bytes desktop/resources/qr.png | Bin 210 -> 0 bytes desktop/resources/receive.png | Bin 149 -> 0 bytes desktop/resources/refresh.png | Bin 307 -> 0 bytes desktop/resources/remove_contact.png | Bin 304 -> 0 bytes desktop/resources/reply.png | Bin 234 -> 0 bytes desktop/resources/rotate_camera.png | Bin 396 -> 0 bytes desktop/resources/search.png | Bin 276 -> 0 bytes desktop/resources/security.png | Bin 270 -> 0 bytes desktop/resources/send.png | Bin 144 -> 0 bytes desktop/resources/settings.png | Bin 441 -> 0 bytes desktop/resources/settings_advanced.png | Bin 242 -> 0 bytes desktop/resources/share.png | Bin 202 -> 0 bytes desktop/resources/stickers.png | Bin 375 -> 0 bytes desktop/resources/text.png | Bin 132 -> 0 bytes desktop/resources/tiny_arrow_down.png | Bin 179 -> 0 bytes desktop/resources/tiny_check.png | Bin 168 -> 0 bytes desktop/resources/tiny_clear.png | Bin 247 -> 0 bytes desktop/resources/tiny_edit.png | Bin 168 -> 0 bytes desktop/resources/tiny_external.png | Bin 222 -> 0 bytes desktop/resources/tiny_group.png | Bin 231 -> 0 bytes desktop/resources/tiny_lock.png | Bin 179 -> 0 bytes desktop/resources/tiny_lock_broken.png | Bin 175 -> 0 bytes desktop/resources/tiny_new_contact.png | Bin 164 -> 0 bytes desktop/resources/tiny_pending.png | Bin 181 -> 0 bytes desktop/resources/tiny_public.png | Bin 212 -> 0 bytes desktop/resources/tiny_settings.png | Bin 199 -> 0 bytes desktop/resources/tiny_tribute_to_talk.png | Bin 249 -> 0 bytes desktop/resources/tribute_to_talk.png | Bin 404 -> 0 bytes desktop/resources/two_arrows.png | Bin 157 -> 0 bytes desktop/resources/user_profile.png | Bin 395 -> 0 bytes desktop/resources/user_profile_1.png | Bin 395 -> 0 bytes desktop/resources/username.png | Bin 454 -> 0 bytes desktop/resources/wallet.png | Bin 200 -> 0 bytes desktop/resources/warning.png | Bin 381 -> 0 bytes desktop/run-app.bat.in | 11 - desktop/run-app.sh.in | 74 - .../react_native/js_dependencies.cljs | 5 - fiddle/src/status_im/ui/components/react.cljs | 1 - .../metro.config.js => metro.config.js | 0 .../desktop/CMakeLists.txt | 7 - .../desktop/desktopconfig.cpp | 46 - .../desktop/desktopconfig.h | 32 - modules/react-native-desktop-config/index.js | 17 - .../react-native-desktop-config/package.json | 13 - .../desktop/CMakeLists.txt | 9 - .../desktop/gesturehandlermodule.cpp | 71 - .../desktop/gesturehandlermodule.h | 47 - .../index.js | 5 - .../package.json | 13 - .../desktop/CMakeLists.txt | 9 - .../desktop/desktoplinking.cpp | 74 - .../desktop/desktoplinking.h | 41 - modules/react-native-desktop-linking/index.js | 4 - .../react-native-desktop-linking/package.json | 13 - .../desktop/CMakeLists.txt | 9 - .../desktop/desktopmenu.cpp | 64 - .../desktop/desktopmenu.h | 34 - modules/react-native-desktop-menu/index.js | 29 - .../react-native-desktop-menu/package.json | 13 - .../desktop/CMakeLists.txt | 90 - .../desktop/desktopnotification.cpp | 126 - .../desktop/desktopnotification.h | 45 - .../index.js | 4 - .../package.json | 13 - .../desktop/CMakeLists.txt | 9 - .../desktop/desktopshortcuts.cpp | 83 - .../desktop/desktopshortcuts.h | 41 - .../react-native-desktop-shortcuts/index.js | 44 - .../package.json | 13 - .../desktop/CMakeLists.txt | 101 - .../react-native-status/desktop/FindGo.cmake | 35 - .../desktop/JSONParser.cmake | 300 - .../desktop/build-status-go.sh | 19 - .../react-native-status/desktop/rctstatus.cpp | 678 -- .../react-native-status/desktop/rctstatus.h | 116 - nix/deps/nodejs/default.nix | 4 +- nix/desktop/base-image/default.nix | 58 - nix/desktop/default.nix | 49 - nix/desktop/linux/default.nix | 30 - nix/desktop/macos/default.nix | 32 - nix/desktop/windows/default.nix | 23 - nix/mobile/android/default.nix | 11 +- nix/mobile/android/jsbundle/default.nix | 6 +- nix/mobile/android/release.nix | 6 +- nix/mobile/default.nix | 4 - nix/mobile/ios/default.nix | 11 +- nix/overlay.nix | 4 - nix/pkgs/appimagekit/default.nix | 122 - nix/pkgs/appimagekit/nix.patch | 197 - nix/pkgs/linuxdeployqt/default.nix | 48 - nix/pkgs/linuxdeployqt/linuxdeployqt.patch | 39 - nix/pkgs/qt5custom/default.nix | 11 - nix/pkgs/qtkeychain-src/default.nix | 40 - nix/scripts/shell.sh | 8 - nix/shells.nix | 4 - nix/status-go/default.nix | 6 +- nix/status-go/desktop/default.nix | 60 - nix/status-go/desktop/shell.nix | 15 - nix/targets.nix | 3 +- mobile/js_files/package.json => package.json | 1 - patches/metro-config+0.48.5.patch | 12 - rn-cli.config.js | 7 - scripts/build-desktop.sh | 461 - scripts/prepare-for-desktop-platform.sh | 30 - scripts/sign-macos-pkg.sh | 120 - src/mocks/js_dependencies.cljs | 7 +- src/status_im/chat/models.cljs | 15 - src/status_im/chat/models/message_seen.cljs | 26 +- src/status_im/chat/models_test.cljs | 38 +- src/status_im/constants.cljs | 41 - src/status_im/db.cljs | 4 +- src/status_im/desktop/core.cljs | 44 - src/status_im/desktop/deep_links.cljs | 15 - src/status_im/desktop/platform.cljs | 6 - src/status_im/events.cljs | 23 - src/status_im/i18n_test.cljs | 2 - src/status_im/init/core.cljs | 2 - src/status_im/log_level/core.cljs | 21 - src/status_im/mailserver/core.cljs | 5 +- src/status_im/multiaccounts/core.cljs | 6 - src/status_im/multiaccounts/login/core.cljs | 32 +- .../multiaccounts/login/data_test.cljs | 4 +- src/status_im/native_module/core.cljs | 5 - src/status_im/subs.cljs | 18 +- .../ui/components/chat_icon/screen.cljs | 7 +- .../ui/components/connectivity/view.cljs | 9 +- .../ui/components/icons/vector_icons.cljs | 8 +- src/status_im/ui/components/react.cljs | 1 - src/status_im/ui/components/tabbar/core.cljs | 25 +- .../ui/components/tabbar/styles.cljs | 3 +- src/status_im/ui/components/typography.cljs | 56 +- .../ui/screens/browser/open_dapp/styles.cljs | 2 - .../ui/screens/chat/extensions/views.cljs | 3 +- .../ui/screens/chat/image/views.cljs | 3 +- .../ui/screens/chat/message/gap.cljs | 5 +- .../ui/screens/chat/message/message.cljs | 12 +- src/status_im/ui/screens/chat/sheets.cljs | 45 +- .../ui/screens/chat/stickers/views.cljs | 3 +- .../screens/chat/styles/message/message.cljs | 4 +- .../ui/screens/desktop/main/styles.cljs | 22 - .../ui/screens/desktop/main/views.cljs | 49 - src/status_im/ui/screens/desktop/views.cljs | 56 - .../ui/screens/fleet_settings/styles.cljs | 3 +- .../ui/screens/fleet_settings/views.cljs | 10 +- src/status_im/ui/screens/group/views.cljs | 28 +- .../ui/screens/help_center/views.cljs | 5 +- src/status_im/ui/screens/home/styles.cljs | 3 +- .../ui/screens/log_level_settings/styles.cljs | 3 +- .../ui/screens/log_level_settings/views.cljs | 8 +- .../ui/screens/multiaccounts/login/views.cljs | 28 +- .../offline_messaging_settings/styles.cljs | 3 +- .../offline_messaging_settings/views.cljs | 8 +- src/status_im/ui/screens/pairing/styles.cljs | 3 +- src/status_im/ui/screens/pairing/views.cljs | 20 +- .../ui/screens/profile/group_chat/views.cljs | 7 +- .../ui/screens/profile/seed/views.cljs | 8 +- src/status_im/utils/config.cljs | 1 - src/status_im/utils/dimensions.cljs | 7 +- src/status_im/utils/keychain/core.cljs | 11 +- src/status_im/utils/logging/core.cljs | 3 +- src/status_im/utils/platform.cljs | 16 +- src/status_im/utils/styles.clj | 2 +- src/status_im/utils/utils.cljs | 17 +- translations/ar.json | 4 +- translations/de.json | 4 +- translations/en.json | 2 - translations/es.json | 4 +- translations/es_419.json | 4 +- translations/fil.json | 4 +- translations/fr.json | 4 +- translations/id.json | 4 +- translations/it.json | 4 +- translations/ja.json | 2 - translations/ko.json | 4 +- translations/ms.json | 3 +- translations/pt_BR.json | 4 +- translations/ru.json | 4 +- translations/tr.json | 4 +- translations/zh.json | 4 +- translations/zh_Hans_CN.json | 2 - translations/zh_TW.json | 4 +- translations/zh_hans.json | 2 - ubuntu-server.js | 143 - mobile/js_files/yarn.lock => yarn.lock | 4 - 328 files changed, 193 insertions(+), 16359 deletions(-) rename mobile/js_files/DEPENDENCIES.md => DEPENDENCIES.md (97%) delete mode 100644 ci/Jenkinsfile.linux delete mode 100644 ci/Jenkinsfile.macos delete mode 100644 ci/Jenkinsfile.windows delete mode 100644 deployment/linux/usr/bin/.keep delete mode 100644 deployment/linux/usr/lib/.keep delete mode 100644 deployment/linux/usr/share/applications/Status.desktop delete mode 100644 deployment/linux/usr/share/icons/hicolor/1024x1024/apps/Status.png delete mode 100644 deployment/macos/Info.plist delete mode 100755 deployment/macos/create-icon.sh delete mode 100644 deployment/macos/dmg-background.png delete mode 100644 deployment/macos/dmg-background@2x.png delete mode 100644 deployment/macos/dmg-background@3x.png delete mode 100644 deployment/macos/macos-developer-id.keychain-db.gpg delete mode 100644 deployment/macos/qt-reportApp.conf delete mode 100644 deployment/macos/status-dmg.json delete mode 100644 deployment/macos/status-icon.icns delete mode 100644 deployment/status-icon.png delete mode 100644 deployment/status-icon.svg delete mode 100644 deployment/windows/Status.rc.in delete mode 100644 deployment/windows/nsis/include/SnoreNotify.nsh delete mode 100644 deployment/windows/nsis/include/UAC.nsh delete mode 100644 deployment/windows/nsis/include/nsProcess.nsh delete mode 100644 deployment/windows/nsis/plugins/x86-ansi/SimpleFC.dll delete mode 100644 deployment/windows/nsis/plugins/x86-ansi/UAC.dll delete mode 100644 deployment/windows/nsis/plugins/x86-ansi/nsProcess.dll delete mode 100644 deployment/windows/nsis/plugins/x86-unicode/UAC.dll delete mode 100644 deployment/windows/nsis/plugins/x86-unicode/nsProcess.dll delete mode 100644 deployment/windows/nsis/setup.nsi delete mode 100644 deployment/windows/resource.h delete mode 100644 deployment/windows/status.ico delete mode 100644 deployment/windows/targetver.h delete mode 100644 desktop/CMakeLists.txt delete mode 100644 desktop/CMakeModules/CompleteBundle.cmake delete mode 100644 desktop/CMakeModules/CompleteBundleWin.cmake.in delete mode 100644 desktop/CMakeModules/QtConfiguration.cmake delete mode 100644 desktop/Toolchain-Ubuntu-mingw64.cmake delete mode 100644 desktop/appconfig.cpp delete mode 100644 desktop/appconfig.h delete mode 100644 desktop/build.bat delete mode 100755 desktop/build.sh delete mode 100644 desktop/js_files/package.json delete mode 100644 desktop/js_files/yarn.lock delete mode 100644 desktop/main.cpp delete mode 100644 desktop/reportApp/CMakeLists.txt delete mode 100644 desktop/reportApp/main.cpp delete mode 100644 desktop/reportApp/main.qml delete mode 100644 desktop/reportApp/main.qrc delete mode 100644 desktop/reportApp/reportpublisher.cpp delete mode 100644 desktop/reportApp/reportpublisher.h delete mode 100644 desktop/resources/add.png delete mode 100644 desktop/resources/add_contact.png delete mode 100644 desktop/resources/address.png delete mode 100644 desktop/resources/arrow_left.png delete mode 100644 desktop/resources/arrow_right.png delete mode 100644 desktop/resources/arrow_up.png delete mode 100644 desktop/resources/back.png delete mode 100644 desktop/resources/backspace.png delete mode 100644 desktop/resources/bell.png delete mode 100644 desktop/resources/browser.png delete mode 100644 desktop/resources/camera.png delete mode 100644 desktop/resources/cancel.png delete mode 100644 desktop/resources/change.png delete mode 100644 desktop/resources/check.png delete mode 100644 desktop/resources/close.png delete mode 100644 desktop/resources/commands.png delete mode 100644 desktop/resources/copy.png delete mode 100644 desktop/resources/corner_left_bottom.png delete mode 100644 desktop/resources/corner_left_top.png delete mode 100644 desktop/resources/corner_right_bottom.png delete mode 100644 desktop/resources/corner_right_top.png delete mode 100644 desktop/resources/dapp.png delete mode 100644 desktop/resources/delete.png delete mode 100644 desktop/resources/desktop.png delete mode 100644 desktop/resources/download.png delete mode 100644 desktop/resources/dropdown.png delete mode 100644 desktop/resources/dropdown_up.png delete mode 100644 desktop/resources/edit.png delete mode 100644 desktop/resources/filter.png delete mode 100644 desktop/resources/fingerprint.png delete mode 100644 desktop/resources/flash.png delete mode 100644 desktop/resources/flash_active.png delete mode 100644 desktop/resources/group_chat.png delete mode 100644 desktop/resources/help.png delete mode 100644 desktop/resources/history.png delete mode 100644 desktop/resources/home.png delete mode 100644 desktop/resources/home_1.png delete mode 100644 desktop/resources/ic_background.png delete mode 100644 desktop/resources/ic_foreground.png delete mode 100755 desktop/resources/ic_stat_status_notification.png delete mode 100644 desktop/resources/icon_action_back.png delete mode 100644 desktop/resources/icon_action_forward.png delete mode 100644 desktop/resources/icon_action_fullscreen_collapse.png delete mode 100644 desktop/resources/icon_action_fullscreen_expand.png delete mode 100644 desktop/resources/icon_arrow_top.png delete mode 100644 desktop/resources/icon_avatar.png delete mode 100644 desktop/resources/icon_check_on.png delete mode 100644 desktop/resources/icon_close_light_gray.png delete mode 100644 desktop/resources/icon_forward_gray.png delete mode 100644 desktop/resources/icon_lock_gray.png delete mode 100644 desktop/resources/icon_lock_white.png delete mode 100644 desktop/resources/icon_menu_group.png delete mode 100755 desktop/resources/icon_money_white.png delete mode 100644 desktop/resources/icon_muted.png delete mode 100644 desktop/resources/icon_notifications_on.png delete mode 100755 desktop/resources/icon_phone_white.png delete mode 100644 desktop/resources/in_contacts.png delete mode 100644 desktop/resources/info.png delete mode 100644 desktop/resources/keycard.png delete mode 100644 desktop/resources/keycard_logo.png delete mode 100644 desktop/resources/language.png delete mode 100644 desktop/resources/launch_logo.png delete mode 100644 desktop/resources/link.png delete mode 100644 desktop/resources/log_out.png delete mode 100644 desktop/resources/logo.png delete mode 100644 desktop/resources/mailserver.png delete mode 100644 desktop/resources/make_admin.png delete mode 100644 desktop/resources/max.png delete mode 100644 desktop/resources/message.png delete mode 100644 desktop/resources/mobile.png delete mode 100644 desktop/resources/more.png delete mode 100644 desktop/resources/network.png delete mode 100644 desktop/resources/next.png delete mode 100644 desktop/resources/notification.png delete mode 100644 desktop/resources/one_on_one_chat.png delete mode 100644 desktop/resources/password.png delete mode 100644 desktop/resources/paste.png delete mode 100644 desktop/resources/photo.png delete mode 100644 desktop/resources/profile.png delete mode 100644 desktop/resources/public_chat.png delete mode 100644 desktop/resources/qr.png delete mode 100644 desktop/resources/receive.png delete mode 100644 desktop/resources/refresh.png delete mode 100644 desktop/resources/remove_contact.png delete mode 100644 desktop/resources/reply.png delete mode 100644 desktop/resources/rotate_camera.png delete mode 100644 desktop/resources/search.png delete mode 100644 desktop/resources/security.png delete mode 100644 desktop/resources/send.png delete mode 100644 desktop/resources/settings.png delete mode 100644 desktop/resources/settings_advanced.png delete mode 100644 desktop/resources/share.png delete mode 100644 desktop/resources/stickers.png delete mode 100644 desktop/resources/text.png delete mode 100644 desktop/resources/tiny_arrow_down.png delete mode 100644 desktop/resources/tiny_check.png delete mode 100644 desktop/resources/tiny_clear.png delete mode 100644 desktop/resources/tiny_edit.png delete mode 100644 desktop/resources/tiny_external.png delete mode 100644 desktop/resources/tiny_group.png delete mode 100644 desktop/resources/tiny_lock.png delete mode 100644 desktop/resources/tiny_lock_broken.png delete mode 100644 desktop/resources/tiny_new_contact.png delete mode 100644 desktop/resources/tiny_pending.png delete mode 100644 desktop/resources/tiny_public.png delete mode 100644 desktop/resources/tiny_settings.png delete mode 100644 desktop/resources/tiny_tribute_to_talk.png delete mode 100644 desktop/resources/tribute_to_talk.png delete mode 100644 desktop/resources/two_arrows.png delete mode 100644 desktop/resources/user_profile.png delete mode 100644 desktop/resources/user_profile_1.png delete mode 100644 desktop/resources/username.png delete mode 100644 desktop/resources/wallet.png delete mode 100644 desktop/resources/warning.png delete mode 100644 desktop/run-app.bat.in delete mode 100755 desktop/run-app.sh.in rename mobile/js_files/metro.config.js => metro.config.js (100%) delete mode 100644 modules/react-native-desktop-config/desktop/CMakeLists.txt delete mode 100644 modules/react-native-desktop-config/desktop/desktopconfig.cpp delete mode 100644 modules/react-native-desktop-config/desktop/desktopconfig.h delete mode 100644 modules/react-native-desktop-config/index.js delete mode 100644 modules/react-native-desktop-config/package.json delete mode 100644 modules/react-native-desktop-gesture-handler/desktop/CMakeLists.txt delete mode 100644 modules/react-native-desktop-gesture-handler/desktop/gesturehandlermodule.cpp delete mode 100644 modules/react-native-desktop-gesture-handler/desktop/gesturehandlermodule.h delete mode 100644 modules/react-native-desktop-gesture-handler/index.js delete mode 100644 modules/react-native-desktop-gesture-handler/package.json delete mode 100644 modules/react-native-desktop-linking/desktop/CMakeLists.txt delete mode 100644 modules/react-native-desktop-linking/desktop/desktoplinking.cpp delete mode 100644 modules/react-native-desktop-linking/desktop/desktoplinking.h delete mode 100644 modules/react-native-desktop-linking/index.js delete mode 100644 modules/react-native-desktop-linking/package.json delete mode 100644 modules/react-native-desktop-menu/desktop/CMakeLists.txt delete mode 100644 modules/react-native-desktop-menu/desktop/desktopmenu.cpp delete mode 100644 modules/react-native-desktop-menu/desktop/desktopmenu.h delete mode 100644 modules/react-native-desktop-menu/index.js delete mode 100644 modules/react-native-desktop-menu/package.json delete mode 100644 modules/react-native-desktop-notification/desktop/CMakeLists.txt delete mode 100644 modules/react-native-desktop-notification/desktop/desktopnotification.cpp delete mode 100644 modules/react-native-desktop-notification/desktop/desktopnotification.h delete mode 100644 modules/react-native-desktop-notification/index.js delete mode 100644 modules/react-native-desktop-notification/package.json delete mode 100644 modules/react-native-desktop-shortcuts/desktop/CMakeLists.txt delete mode 100644 modules/react-native-desktop-shortcuts/desktop/desktopshortcuts.cpp delete mode 100644 modules/react-native-desktop-shortcuts/desktop/desktopshortcuts.h delete mode 100644 modules/react-native-desktop-shortcuts/index.js delete mode 100644 modules/react-native-desktop-shortcuts/package.json delete mode 100755 modules/react-native-status/desktop/CMakeLists.txt delete mode 100644 modules/react-native-status/desktop/FindGo.cmake delete mode 100644 modules/react-native-status/desktop/JSONParser.cmake delete mode 100755 modules/react-native-status/desktop/build-status-go.sh delete mode 100644 modules/react-native-status/desktop/rctstatus.cpp delete mode 100644 modules/react-native-status/desktop/rctstatus.h delete mode 100644 nix/desktop/base-image/default.nix delete mode 100644 nix/desktop/default.nix delete mode 100644 nix/desktop/linux/default.nix delete mode 100644 nix/desktop/macos/default.nix delete mode 100644 nix/desktop/windows/default.nix delete mode 100644 nix/pkgs/appimagekit/default.nix delete mode 100644 nix/pkgs/appimagekit/nix.patch delete mode 100644 nix/pkgs/linuxdeployqt/default.nix delete mode 100644 nix/pkgs/linuxdeployqt/linuxdeployqt.patch delete mode 100644 nix/pkgs/qt5custom/default.nix delete mode 100644 nix/pkgs/qtkeychain-src/default.nix delete mode 100644 nix/status-go/desktop/default.nix delete mode 100644 nix/status-go/desktop/shell.nix rename mobile/js_files/package.json => package.json (96%) delete mode 100644 patches/metro-config+0.48.5.patch delete mode 100644 rn-cli.config.js delete mode 100755 scripts/build-desktop.sh delete mode 100755 scripts/prepare-for-desktop-platform.sh delete mode 100755 scripts/sign-macos-pkg.sh delete mode 100644 src/status_im/desktop/core.cljs delete mode 100644 src/status_im/desktop/deep_links.cljs delete mode 100644 src/status_im/desktop/platform.cljs delete mode 100644 src/status_im/ui/screens/desktop/main/styles.cljs delete mode 100644 src/status_im/ui/screens/desktop/main/views.cljs delete mode 100644 src/status_im/ui/screens/desktop/views.cljs delete mode 100755 ubuntu-server.js rename mobile/js_files/yarn.lock => yarn.lock (99%) diff --git a/.env b/.env index 9c0cfe4beb..0200367a9f 100644 --- a/.env +++ b/.env @@ -18,7 +18,6 @@ SNOOPY=0 RPC_NETWORKS_ONLY=0 PARTITIONED_TOPIC=0 CONTRACT_NODES=1 -MOBILE_UI_FOR_DESKTOP=1 STATUS_GO_PROTOCOL=0 STATUS_GO_ENABLE_NIMBUS=0 KEYCARD_TEST_MENU=0 diff --git a/.env.e2e b/.env.e2e index cb0a0bee6a..f0d332382d 100644 --- a/.env.e2e +++ b/.env.e2e @@ -17,7 +17,6 @@ SNOOPY=0 STICKERS_ENABLED=1 PARTITIONED_TOPIC=0 CONTRACT_NODES=1 -MOBILE_UI_FOR_DESKTOP=1 BLANK_PREVIEW=0 TOOLTIP_EVENTS=1 COMMANDS_ENABLED=1 diff --git a/.env.jenkins b/.env.jenkins index 18c27184bf..effd5c0314 100644 --- a/.env.jenkins +++ b/.env.jenkins @@ -18,7 +18,6 @@ SNOOPY=0 RPC_NETWORKS_ONLY=0 PARTITIONED_TOPIC=0 CONTRACT_NODES=1 -MOBILE_UI_FOR_DESKTOP=1 STATUS_GO_ENABLE_NIMBUS=0 KEYCARD_TEST_MENU=0 ENABLE_ROOT_ALERT=1 \ No newline at end of file diff --git a/.env.nightly b/.env.nightly index 90c5fc44fd..f8aed37b19 100644 --- a/.env.nightly +++ b/.env.nightly @@ -16,6 +16,5 @@ SNOOPY=0 RPC_NETWORKS_ONLY=0 PARTITIONED_TOPIC=0 CONTRACT_NODES=1 -MOBILE_UI_FOR_DESKTOP=1 HARDWALLET_ENABLED=1 ENABLE_ROOT_ALERT=1 \ No newline at end of file diff --git a/.env.release b/.env.release index adc2b27867..83be19d9aa 100644 --- a/.env.release +++ b/.env.release @@ -15,6 +15,5 @@ POW_TIME=1 SNOOPY=0 RPC_NETWORKS_ONLY=1 PARTITIONED_TOPIC=0 -MOBILE_UI_FOR_DESKTOP=1 HARDWALLET_ENABLED=1 ENABLE_ROOT_ALERT=1 \ No newline at end of file diff --git a/.gitignore b/.gitignore index 02da974ba7..419522adec 100644 --- a/.gitignore +++ b/.gitignore @@ -67,9 +67,6 @@ env/dev/env/config.cljs externs/ shim.js -# Desktop build -index.desktop.js - # Generated by lein voom # /pom.xml @@ -128,12 +125,8 @@ fastlane/README.md # emacs .dir-locals.el -#ignore platform-specific files in the root since they are only symlinks to files in folders 'desktop/js_files' and 'mobile/js_files' -/DEPENDENCIES.md +# We don't use NPM /package-lock.json -/package.json -/metro.config.js -/yarn.lock /.re-natal /re-natal @@ -141,27 +134,6 @@ fastlane/README.md pkg /BUILD_NUMBER -# Status Desktop -cmake_install.cmake -CMakeCache.txt -**/CMakeFiles/ -/StatusImPackage/* -*.AppImage -Status-Windows-x86_64.exe -/desktop/bin/* -/desktop/lib/* -/desktop/modules/* -/desktop/Makefile -/desktop/graph_info.json -/desktop/run-app.bat -/desktop/run-app.sh -/desktop/CMakeFiles/ -/desktop/reportApp/Makefile -/deployment/windows/Status.rc -*_autogen/ -CompleteBundleWin.cmake -logger_settings.ini - # Conan conan*.txt conanbuildinfo.* diff --git a/mobile/js_files/DEPENDENCIES.md b/DEPENDENCIES.md similarity index 97% rename from mobile/js_files/DEPENDENCIES.md rename to DEPENDENCIES.md index 088055d38a..cfc6e46430 100644 --- a/mobile/js_files/DEPENDENCIES.md +++ b/DEPENDENCIES.md @@ -122,10 +122,6 @@ used to get user language and interact with i18n.js used to send email to support when phone is shaked -## "react-native-navigation-twopane": "git+https://github.com/status-im/react-native-navigation-twopane.git#v0.0.2-status" - -used by desktop - ## "react-native-screens": "1.0.0-alpha.22" used by react-navigation diff --git a/Makefile b/Makefile index 9d7a162183..1ab0269dc7 100644 --- a/Makefile +++ b/Makefile @@ -1,4 +1,4 @@ -.PHONY: nix-add-gcroots clean nix-clean run-metro react-native-desktop test release _list _fix-node-perms _tmpdir-mk _tmpdir-rm +.PHONY: nix-add-gcroots clean nix-clean run-metro test release _list _fix-node-perms _tmpdir-mk _tmpdir-rm help: SHELL := /bin/sh help: ##@other Show this help @@ -171,18 +171,6 @@ release-ios: watchman-clean ##@build build release for iOS release $(MAKE) jsbundle-ios && \ xcodebuild -workspace ios/StatusIm.xcworkspace -scheme StatusIm -configuration Release -destination 'generic/platform=iOS' -UseModernBuildSystem=N clean archive -release-desktop: export TARGET ?= $(HOST_OS) -release-desktop: ##@build build release for desktop release based on TARGET - @$(MAKE) jsbundle-desktop && \ - scripts/build-desktop.sh; \ - $(MAKE) watchman-clean - -release-windows-desktop: export TARGET ?= windows -release-windows-desktop: ##@build build release for windows desktop release - @$(MAKE) jsbundle-desktop && \ - scripts/build-desktop.sh; \ - $(MAKE) watchman-clean - jsbundle-android: SHELL := /bin/sh jsbundle-android: export TARGET := android jsbundle-android: export BUILD_ENV ?= prod @@ -208,10 +196,6 @@ status-go-ios: SHELL := /bin/sh status-go-ios: ##@status-go Compile status-go for iOS app nix/scripts/build.sh targets.status-go.mobile.ios -status-go-desktop: SHELL := /bin/sh -status-go-desktop: ##@status-go Compile status-go for desktop app - nix/scripts/build.sh targets.status-go.desktop - #-------------- # Watch, Build & Review changes #-------------- @@ -220,10 +204,6 @@ run-clojure: export TARGET := clojure run-clojure: ##@run Watch for and build Clojure changes for mobile yarn shadow-cljs watch mobile -run-clojure-desktop: export TARGET ?= $(HOST_OS) -run-clojure-desktop: #@run Watch for and build Clojure changes for desktop - clj -R:dev build.clj watch --platform desktop - run-metro: export TARGET := clojure run-metro: ##@run Start Metro to build React Native changes @scripts/start-react-native.sh @@ -246,10 +226,6 @@ else npx react-native run-ios endif -run-desktop: export TARGET ?= $(HOST_OS) -run-desktop: ##@run Run Desktop build - npx react-native run-desktop - #-------------- # Tests #-------------- @@ -280,15 +256,6 @@ coverage: ##@test Run tests once in NodeJS generating coverage # Other #-------------- -start-desktop-server: export TARGET ?= $(HOST_OS) -start-desktop-server: #@other Start ubuntu-server.js for desktop - node ubuntu-server.js - -react-native-desktop: export TARGET ?= $(HOST_OS) -react-native-desktop: export _NIX_PURE ?= true -react-native-desktop: ##@other Start react native packager - @scripts/start-react-native.sh - geth-connect: export TARGET := android-env geth-connect: ##@other Connect to Geth on the device adb forward tcp:8545 tcp:8545 && \ diff --git a/TROUBLESHOOTING.md b/TROUBLESHOOTING.md index 5abbc455fd..286a65dd8a 100644 --- a/TROUBLESHOOTING.md +++ b/TROUBLESHOOTING.md @@ -67,8 +67,6 @@ info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this Update yarn.lock file. In order to do this, perform the following steps on a clean `status-react` repo: ``` cd status-react -ln -sf mobile/js_files/package.json . -ln -sf mobile/js_files/yarn.lock . yarn install ``` and don't forget to commit updated `yarn.lock` together with `package.json`. diff --git a/ci/Jenkinsfile.android b/ci/Jenkinsfile.android index 9f9a750b55..193d90524c 100644 --- a/ci/Jenkinsfile.android +++ b/ci/Jenkinsfile.android @@ -1,4 +1,4 @@ -library 'status-react-jenkins@v1.1.9' +library 'status-react-jenkins@v1.1.10' pipeline { agent { label 'linux' } diff --git a/ci/Jenkinsfile.combined b/ci/Jenkinsfile.combined index 4608ca1540..dea8cdea6e 100644 --- a/ci/Jenkinsfile.combined +++ b/ci/Jenkinsfile.combined @@ -1,4 +1,4 @@ -library 'status-react-jenkins@v1.1.9' +library 'status-react-jenkins@v1.1.10' pipeline { agent { label 'linux' } diff --git a/ci/Jenkinsfile.ios b/ci/Jenkinsfile.ios index ff00bf723a..863206da2c 100644 --- a/ci/Jenkinsfile.ios +++ b/ci/Jenkinsfile.ios @@ -1,4 +1,4 @@ -library 'status-react-jenkins@v1.1.9' +library 'status-react-jenkins@v1.1.10' pipeline { agent { label 'macos-xcode-11.5' } diff --git a/ci/Jenkinsfile.linux b/ci/Jenkinsfile.linux deleted file mode 100644 index 5659be115c..0000000000 --- a/ci/Jenkinsfile.linux +++ /dev/null @@ -1,125 +0,0 @@ -library 'status-react-jenkins@v1.1.9' - -pipeline { - agent { label 'linux' } - - parameters { - string( - name: 'BUILD_TYPE', - description: 'Specify build type. Values: pr / nightly / release', - defaultValue: 'pr', - ) - } - - options { - timestamps() - /* Prevent Jenkins jobs from running forever */ - timeout(time: 40, unit: 'MINUTES') - /* Limit builds retained */ - buildDiscarder(logRotator( - numToKeepStr: '10', - daysToKeepStr: '20', - artifactNumToKeepStr: '10', - )) - /* Allows combined build to copy */ - copyArtifactPermission('/status-react/*') - } - - /** - * WARNING: Jenkins ignores PATH changes in Docker - * https://issues.jenkins-ci.org/browse/JENKINS-49076 - **/ - environment { - LANG = "en_US.UTF-8" - LC_ALL = "en_US.UTF-8" - LANGUAGE = "en_US.UTF-8" - TARGET = 'linux' - NIX_CONF_DIR = "${env.WORKSPACE}/nix" - VERBOSE_LEVEL = '3' - /* We use EXECUTOR_NUMBER to avoid multiple instances clashing */ - YARN_CACHE_FOLDER = "/var/tmp/yarn-${EXECUTOR_NUMBER}" - GRADLE_USER_HOME = "/var/tmp/gradle-${EXECUTOR_NUMBER}" - } - - stages { - stage('Prep') { - steps { - script { - btype = utils.getBuildType() - print "Running ${btype} build!" - jenkins.abortPreviousRunningBuilds() - /* Cleanup and Prep */ - commonPrep(btype) - } - } - } - stage('Parallel Assemble') { - parallel { - stage('Checks') { stages { - stage('Lint') { - steps { - script { - /* We want the build result to be uploaded */ - catchError( - message: 'Linting check failed!', - buildResult: 'FAILURE', - stageResult: 'FAILURE' - ) { - sh 'make lint' - } - } - } - } - stage('Tests') { - steps { - script { - sh 'make test' - } - } - } - } } - stage('Build') { stages { - stage('JSBundle') { - steps { - script { desktop.buildJSBundle() } - } - } - stage('Compile') { - steps { - script { desktop.compile() } - } - } - stage('Bundle') { - steps { - script { app = desktop.bundleLinux(btype) } - } - } - } } - } - } - stage('Parallel Upload') { - parallel { - stage('Archive') { - steps { - archiveArtifacts app - } - } - stage('Upload') { - steps { - script { env.PKG_URL = s3.uploadArtifact(app) } - } - } - } - } - stage('Cleanup') { - steps { - sh 'make watchman-clean' - sh 'make clean' - } - } - } - post { - success { script { github.notifyPR(true) } } - failure { script { github.notifyPR(false) } } - } -} diff --git a/ci/Jenkinsfile.macos b/ci/Jenkinsfile.macos deleted file mode 100644 index 539f1d69dd..0000000000 --- a/ci/Jenkinsfile.macos +++ /dev/null @@ -1,123 +0,0 @@ -library 'status-react-jenkins@v1.1.9' - -pipeline { - agent { label 'macos-xcode-11.5' } - - parameters { - string( - name: 'BUILD_TYPE', - description: 'Specify build type. Values: pr / nightly / release', - defaultValue: 'pr', - ) - } - - options { - timestamps() - /* Prevent Jenkins jobs from running forever */ - timeout(time: 30, unit: 'MINUTES') - /* Limit builds retained */ - buildDiscarder(logRotator( - numToKeepStr: '10', - daysToKeepStr: '20', - artifactNumToKeepStr: '10', - )) - /* Allows combined build to copy */ - copyArtifactPermission('/status-react/*') - } - - environment { - LANG = "en_US.UTF-8" - LC_ALL = "en_US.UTF-8" - LANGUAGE = "en_US.UTF-8" - TARGET = 'macos' - NIX_CONF_DIR = "${env.WORKSPACE}/nix" - /* See nix/README.md */ - NIX_IGNORE_SYMLINK_STORE = 1 - VERBOSE_LEVEL = '3' - /* We use EXECUTOR_NUMBER to avoid multiple instances clashing */ - YARN_CACHE_FOLDER = "/var/tmp/yarn-${EXECUTOR_NUMBER}" - GRADLE_USER_HOME = "/var/tmp/gradle-${EXECUTOR_NUMBER}" - } - - stages { - stage('Prep') { - steps { - script { - btype = utils.getBuildType() - print "Running ${btype} build!" - jenkins.abortPreviousRunningBuilds() - /* Cleanup and Prep */ - commonPrep(btype) - } - } - } - stage('Parallel Assemble') { - parallel { - stage('Checks') { stages { - stage('Lint') { - steps { - script { - /* We want the build result to be uploaded */ - catchError( - message: 'Linting check failed!', - buildResult: 'FAILURE', - stageResult: 'FAILURE' - ) { - sh 'make lint' - } - } - } - } - stage('Tests') { - steps { - script { - sh 'make test' - } - } - } - } } - stage('Build') { stages { - stage('JSBundle') { - steps { - script { desktop.buildJSBundle() } - } - } - stage('Compile') { - steps { - script { desktop.compile() } - } - } - stage('Bundle') { - steps { - script { dmg = desktop.bundleMacOS(btype) } - } - } - } } - } - } - stage('Parallel Upload') { - parallel { - stage('Archive') { - steps { - archiveArtifacts dmg - } - } - stage('Upload') { - steps { - script { env.PKG_URL = s3.uploadArtifact(dmg) } - } - } - } - } - stage('Cleanup') { - steps { - sh 'make watchman-clean' - sh 'make clean' - } - } - } - post { - success { script { github.notifyPR(true) } } - failure { script { github.notifyPR(false) } } - } -} diff --git a/ci/Jenkinsfile.nix-cache b/ci/Jenkinsfile.nix-cache index d4baf4aab1..88918a11ab 100644 --- a/ci/Jenkinsfile.nix-cache +++ b/ci/Jenkinsfile.nix-cache @@ -1,4 +1,4 @@ -library 'status-react-jenkins@v1.1.9' +library 'status-react-jenkins@v1.1.10' pipeline { agent { label params.AGENT_LABEL } @@ -36,7 +36,7 @@ pipeline { } stage('Build status-go') { steps { script { - def platforms = ['mobile.android', 'mobile.ios', 'desktop'] + def platforms = ['mobile.android', 'mobile.ios'] if (uname != "Darwin") { platforms.removeAll { it == "ios" } } diff --git a/ci/Jenkinsfile.windows b/ci/Jenkinsfile.windows deleted file mode 100644 index e3f3df5d66..0000000000 --- a/ci/Jenkinsfile.windows +++ /dev/null @@ -1,128 +0,0 @@ -library 'status-react-jenkins@v1.1.9' - -pipeline { - agent { label 'linux' } - - parameters { - string( - name: 'BUILD_TYPE', - description: 'Specify build type. Values: pr / nightly / release', - defaultValue: 'pr', - ) - } - - options { - timestamps() - /* Prevent Jenkins jobs from running forever */ - timeout(time: 45, unit: 'MINUTES') - /* Limit builds retained */ - buildDiscarder(logRotator( - numToKeepStr: '10', - daysToKeepStr: '20', - artifactNumToKeepStr: '10', - )) - /* Allows combined build to copy */ - copyArtifactPermission('/status-react/*') - } - - /** - * WARNING: Jenkins ignores PATH changes in Docker - * https://issues.jenkins-ci.org/browse/JENKINS-49076 - **/ - environment { - LANG = "en_US.UTF-8" - LC_ALL = "en_US.UTF-8" - LANGUAGE = "en_US.UTF-8" - TARGET = 'windows' - NIX_CONF_DIR = "${env.WORKSPACE}/nix" - VERBOSE_LEVEL = '3' - /* Conan settings */ - CONAN_PRINT_RUN_COMMANDS = '1' - CONAN_SYSREQUIRES_MODE = 'disabled' - CONAN_SYSREQUIRES_SUDO = '0' - /* We use EXECUTOR_NUMBER to avoid multiple instances clashing */ - YARN_CACHE_FOLDER = "/var/tmp/yarn-${EXECUTOR_NUMBER}" - } - - stages { - stage('Prep') { - steps { - script { - btype = utils.getBuildType() - print "Running ${btype} build!" - jenkins.abortPreviousRunningBuilds() - /* Cleanup and Prep */ - commonPrep(btype) - } - } - } - stage('Parallel Assemble') { - parallel { - stage('Checks') { stages { - stage('Lint') { - steps { - script { - /* We want the build result to be uploaded */ - catchError( - message: 'Linting check failed!', - buildResult: 'FAILURE', - stageResult: 'FAILURE' - ) { - sh 'make lint' - } - } - } - } - stage('Tests') { - steps { - script { - sh 'make test' - } - } - } - } } - stage('Build') { stages { - stage('JSBundle') { - steps { - script { desktop.buildJSBundle() } - } - } - stage('Compile') { - steps { - script { desktop.compile() } - } - } - stage('Bundle') { - steps { - script { app = desktop.bundleWindows(btype) } - } - } - } } - } - } - stage('Parallel Upload') { - parallel { - stage('Archive') { - steps { - archiveArtifacts app - } - } - stage('Upload') { - steps { - script { env.PKG_URL = s3.uploadArtifact(app) } - } - } - } - } - stage('Cleanup') { - steps { - sh 'make watchman-clean' - sh 'make clean' - } - } - } - post { - success { script { github.notifyPR(true) } } - failure { script { github.notifyPR(false) } } - } -} diff --git a/ci/tools/Jenkinsfile.fastlane-clean b/ci/tools/Jenkinsfile.fastlane-clean index 2f1cfd9ce0..b441963b35 100644 --- a/ci/tools/Jenkinsfile.fastlane-clean +++ b/ci/tools/Jenkinsfile.fastlane-clean @@ -1,4 +1,4 @@ -library 'status-react-jenkins@v1.1.9' +library 'status-react-jenkins@v1.1.10' pipeline { agent { label 'macos' } diff --git a/ci/tools/Jenkinsfile.playstore-meta b/ci/tools/Jenkinsfile.playstore-meta index 27bffb207c..8e8b832ed8 100644 --- a/ci/tools/Jenkinsfile.playstore-meta +++ b/ci/tools/Jenkinsfile.playstore-meta @@ -1,4 +1,4 @@ -library 'status-react-jenkins@v1.1.9' +library 'status-react-jenkins@v1.1.10' pipeline { agent { label 'linux' } diff --git a/deployment/linux/usr/bin/.keep b/deployment/linux/usr/bin/.keep deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/deployment/linux/usr/lib/.keep b/deployment/linux/usr/lib/.keep deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/deployment/linux/usr/share/applications/Status.desktop b/deployment/linux/usr/share/applications/Status.desktop deleted file mode 100644 index a753f7d0c0..0000000000 --- a/deployment/linux/usr/share/applications/Status.desktop +++ /dev/null @@ -1,7 +0,0 @@ -[Desktop Entry] -Type=Application -Name=Status -Comment=Status Desktop -Exec=Status -Icon=Status -Categories=Network; diff --git a/deployment/linux/usr/share/icons/hicolor/1024x1024/apps/Status.png b/deployment/linux/usr/share/icons/hicolor/1024x1024/apps/Status.png deleted file mode 100644 index c19a8246180ae5994980b89fb30dda34548e7c3d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 88016 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

%1I*1^LCPg`i%dFAy1e+#SjxvdTE|Nh<9 zX@iM7s`HpPe;v;&Mq$@E1-&$jWsbF93NIejG%tRKWNWMaKZPZ-@Q(uC)Tp@hyOL&&QS&|CgjDO^|o+b4yD3SXNv@H=e4rDu_2y`|(Z~ zu6Gop5p@Iq#mB(}t~iU`2?hGr&v^8de{zL`@Mj0&19L%ztL#ekN{4pMY3Yj()2=xf z2*t?DL*+7`q1pZP9cBCHU;AV)w~8MQ;JBiqhWt7w@#9etar#yoY3UoB2k}N*ov}n* zXA9go!8ziOu){Jr8EN7ol+-2Kz|Byx=kTn^Gf{3#V$=wdj3mBZf-Dr@H&Avv>_{m; ze)b?frjwVF&3>0stw+T0Gef|4WC8=EDb1KZ zRBkP`9y7B5S zNP2ITCMPKhnyE1Vt|G%gGpQ>-3Fl!MHepOEMFyaJ0aIJ-9-`feDPiPQ=%RFMZWNhr z9jog3btew`U&;4t2Y*)r1-@%s?!|?c<(?z5!MyQg+*{Gm}2A`I8)mcx{{Rm zmJ^EvR_fVAyfFY}8F#a$rW{~;OIPF*082x8GVS@Gj&{63VZJl3+;{>((O{}eVu}p7 zhY>MF!HmG*SX2z$T#%xa9{?@_)g|d%ZdS9RAPzp>pS*HwQok(iwYR5 zu|#r5DFNq-uR-PD!Fb)!{U_J_Ed9wXu*Q2 zyA5kHfn#fcxbNKA8_H=(b1eZz`G=3ZIW7wr=qk*rm{eIJuz@FA$0ral;4lH~WstEJ zQ`a?8_?(c|e9jubK4Bc$(8GI2*Ly5f6mtYZ zj47&jt*$*l`Mf`?L<`SRG8ce_Gc*R-vFF22bwpJdl{qL%utF#agHBnaIvs%15g8K~m!prSjZ*23kyy@Ag)9=(PzT}yzm9n)m!xcDzT;Y|{`pgR6&yxi3s zuk&*Y>}umxmRvc9!3K@RC`?!zK$z;UCA_%W`z zK&$D*rhRPxLT0#{Ag9=wfWLv+o72Pc#$gzW5Hv;9QQ zbpEqjsXh?@Bqo0Xb1-HTpX7K=SWJk&{D#gSx%tghs}eS%IfpzIPvUJazYz~(|NJEl zuqXl@+HD+#$K|q7f`$+~XdDQ*WKL|x$StF-9~m6esygFE*%QZ!xVLU`S;aTdf#v=)rvLM?jOQE@K2MM1v9-Kq{pDz z%T46u?#~Ev3>ivZZ|+U<#rFbM0zyL5Qm4aK{@T+AXJ|{mlt(x&b#7f&XV=^1*N$RG zG|WFA^~}$WyE5@HD(qrBsb4?LDz(s6BDPNb`dUk939@QM7i(B{jn$vR}>1hsdm*Kn5y{PxSxenWwgvmS+! zX{TajLG82;FJ5kdW8P$ry%%ZnP6YdnV`edC6K4T+2%Zk;a7&*tT<569qoNFHIRo?9w|H=m`jcG}x z$N||$(qCIvI@=iMZvx*D=KA50c^wE*o_3d25y;Cc8q?C#S>+|578X*0_@NSQF z*Fv8m*U7G1+KVT;Ga-Z-*h*3%Dtg0DG2{zfEHt2ii{1WOKtsc>d$P9125{52e-)pP z+Q1s(zvbRkk>>Rx*jL~23~0&ENqxRhVW&$?qGHdrcgV7rD`$bXk&d^=quQ5?I{p7N zEu9Yg3=wA2Kl+g?mjBYSw&_qc$$D3Z&>Q(#rDi>?H769<>-j7<$kPf_UnKR}n~kns z7+qrUQgA1XiRrWS%`bI>a1+@+k^~0<+O<|hU~1b)TFl0`NbzWy-%jH`o2D9MmH%xe zOCBw|vpZ@U@ku=YR5vgm?o#S=YLLM6GEpDS8O(vx^YcrG z;ImofK6cZLEkFYu{IX{S^WwcLKMg)tu|>nnV;vH1t+BLMw#~Dze$NAQLWNxLr)2zT z{{z3|dSm3l2-Nr;{O2uI2K>IYXJOsdd+_^%Pq%)*^81ci?gzi|;J(uI)z^iRJ+6y{ z`!f&x-mTByTup@t394Jw%Kq@E!8*=&i`a%u^^Sj)-9nC@v)%^$ OxqQj~V#$x5zx)qbCfL9L diff --git a/deployment/macos/Info.plist b/deployment/macos/Info.plist deleted file mode 100644 index a0a8ae9f02..0000000000 --- a/deployment/macos/Info.plist +++ /dev/null @@ -1,43 +0,0 @@ - - - - - CFBundleDisplayName - Status - CFBundleExecutable - Status - CFBundleIconFile - status-icon - CFBundleIdentifier - im.status.statusim - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - Status - CFBundlePackageType - APPL - CFBundleShortVersionString - 0.1 - CFBundleVersion - 0.1 - - LSMinimumSystemVersion - 10.9.0 - NSHighResolutionCapable - True - NSPrincipalClass - NSApplication - - CFBundleURLTypes - - - CFBundleURLSchemes - - status-im - - CFBundleURLName - im.status.ethereum.applink-desktop - - - - diff --git a/deployment/macos/create-icon.sh b/deployment/macos/create-icon.sh deleted file mode 100755 index fd1bb76da2..0000000000 --- a/deployment/macos/create-icon.sh +++ /dev/null @@ -1,19 +0,0 @@ -#!/usr/bin/env bash - -function make_icns { - local file="../status-icon.png" - local iconset="$(mktemp -d)" - local output_icon="status-icon.icns" - - for size in {16,32,64,128,256,512}; do - sips --resampleHeightWidth "${size}" "${size}" "${file}" --out "${iconset}/icon_${size}x${size}.png" &> /dev/null - sips --resampleHeightWidth "$((size * 2))" "$((size * 2))" "${file}" --out "${iconset}/icon_${size}x${size}@2x.png" &> /dev/null - done - - mv "${iconset}" "${iconset}.iconset" - iconutil --convert icns "${iconset}.iconset" --output "${output_icon}" - - echo "${output_icon}" # so its path is returned when the function ends -} - -make_icns diff --git a/deployment/macos/dmg-background.png b/deployment/macos/dmg-background.png deleted file mode 100644 index d42d96bf70c02f5bcca042f5979f2ed2ecab880d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9896 zcmeHN`9IX(_h*tUy)97`p~Xll`w|8f$vW99>$|ZtGhyt@G?j|P8(GIvVJIO9S%=56k zL)V;z1q5bcVNK^?2fk=rdfEs4Vf8cDzsgeFAxdRo0pB&yyMdDkFET0-0+8(t$YUOHu+`_OmMjDo&!JJmLp`iyx z)<^2w>#@Ppad{-$(D}4Qx3IC6_e*tEUX|l4nB#Sn1&9np_iPyzjf}jU@l0c zs`35)?a9WL=vjUB+J2L@ksuHB*d1nhMk3X+=je&6`%MmT?7lFamnT>obJL5z^6kmi z(UJ2xyeF0w)W^XA?n6aB{@r{K1=}CXS8!cN?hQ^x>Cygz_>4sl?5{;f8T7zF+5Xk3 z{pNkAapBz+0yDkk=QDmw<@)Q?ev?h0`M;HUe&5O5#KxUte>s3E?0-~|_+ynn4)&iB zE8px*jFcYfK*v0wp?7*J=G(dzGrk{g&yx+OPJKwJ^Y$BA&I+8;P`rkLMl2<^H*4=K zP6brf*!xAw*!}(K^8=$SdT+jpo7Qp~_6cO}Z*GK-Q_)(@D5H3DWW9dCZd!d{P(@=6 zJGza#O#hjKHL{;EZ?|9YO&MMYCRMcac>D}v>t=44u)P($f#yDw^lo!{DFq+4l~fXz z*IF^qT_AYw!>D|-s9$utAmd&mx5F>Nq|!{)dZKc1{7LPNMqUJ#vN1GJpG?lUO3iIw zPBy7u!RSbW5R)-d4-q5?ghDkP2%E9UPTvlm))*bsTu$rsMxb&;lt;IxRI!Ej^PcU? z+01Qt74k&g9n8PH+O<``B4vle)@w%X;f-%TVkvX3CS0G}B`^6zC8a=08j6Nff>&=} ze+dR)88`AZ8PiZ~Uz6_TxHXihU0Kx*PnXjC&e{G%d;9y8e@Upl-bY zkbw6^2Pckf%p=j{?Tuz_gsJ8tA&It;n7#dDN@R57x*vwy&S}!6Q|6w`x{E`2GJkBjra$D>3c|G^rsB}sFb7%U13Rjr zjpylJc)(CiAaXgA7ABQFHsRSj*cq`_rMJzXp^<>gWGhW;PG82BWv#w5`M5dj$PDq@ zB9BJ6GTt-#E9?8V$A$3jm;BO5NEpYIX9CR z;>`w+zNaS7=L=8sgG)zKYJW&BXBYp49Zb=S%`3Lk=Jb}q7$T%S*fAI#`mo{N4;a?mk3t_~CELm~!!qqXAjvJqahI+DhRyMa#+~?5Dtx;xu-NZ@SH=Ka8 zgV-t|+sk1&9nN(kQK6cbYHc36;FlfhN>SqYzyJmTve&P|WK}HO2G&+erqd ztMy5jzth>Rr#cUvM19S*m$v)Z89K5&ggTNfEgSjo+U^>i>o&e7t*+#2*M$SyJt7wJ z^OYhwmt|;YLY$d8=o&Kh92qvzMz=>3cLICX@l1xw!J@R)*G%#4u|t)B$7t8|^>3#Y z_fEns3ew({4MrH+_zoS?`h}Tapwzex@e?VfHDBs4gj{GBfhr&eou7nB+>FxETy;8q zGq2%vLo3OZ zwRzzyIpUeKH*8XesP!|g)g!CLDfl>vBd<=+K%q{PzTK&>4F(y!)brL@#B4eByqUxL z@y?*@Sx_6LrMJ{pQ!MfPB&|9;bdcoG|JZNNrnjc+qqW?iu{LDJEUtBxvO!es5Ca1G z2^gaQayJ&4H+on0vs6j;QJd{CmvoNavl6Mjy&^*jXZWO^KQB%tu*Ze{IJ3@84Ix!dwbn;Kg+A18G|5hF?&9LS_|C5Ypqu)x)AyjP~2d&s%$F3>d9_TMY8UfD1m@?=+B%|ZDB%~vqJ(d zSz${pn>CkG2}^E}+1rY<`DCffw}^qIBOyI-WGLA#fEnGLxq!;AtsQ;R#oYD%Fow-*z^@5*Jdmy@R={|P36lju4xkFY*;>|x$E zCfkk~yQy1@U{GEz@6X8dxP(N@gXOKqNRB(ciN)uP>!W>m1M8PFm&4Sr{Kz(QP>)xc zzT6p{j%q=FK!iOl<%WiIC%PsVDVL?G=aYgq{uS4PV4FV-&sbNslB!kesV2zQ<+$)U z7#79t?8-nLg;9JIDXrfZftai`s4QfsNk_>G&(6D5rzd1TqP9k7Q$6(sV7_9^jb>H1 z%cR>lyr(&zd$-j~aHbP>rC_}+kosddw~$Mb)D8b+z@U2ewFN$F%Oxwd+m6!v!9;9s zp_(FAmzhu24<6jjF=;dv#j+dPdco2K%G7?C0L%%OkJ>sPcP4sKM#O|9W+aj{8wyh9 z6yCmLfpjOCgXB5naluR&4R3jYGU74roU$XC{jWjBSWjOZnEfOX)*|0DMoO&~xN-Pw zCXf6kX(ijse)bNf*&mI-bx80? z)7)hB9ZWgz@mid2(R=)1N{z}o-qATCJ|fyTR&D%gSd3map~r<^p=TpO^IT|r$lXkr zxI8^lr5NS}+heqamwS>5-?v9Pfp?#yO)e=kQFlIeP?x4MZ{*|SI`KQJCCjhNv$CjJVlzlp2;S_tR}#dYxH26SeGXS% zF+0>-Gyo@Gq)pXi+h1N(BDv-l#}>!ztnsT&NaGN7JL}KdWV@ke9rm=4fo)53J4{Hk z#z;Jqu*C7mBh0iuU2qw&gD7AJ>aHC=C0Xp+0e7$)vJ8fpB$Pb3aKv~#A>6J$ZeXyv z2=mEaAZ1|U$1s`_vfdFLbir>#Fz%mA3UFM9UMtoi-wUS6u7SK$INvjiuq57bfu_ha zE{l<3J&NY5Cn+J63a@fyG0wO*UT&2;r?qR;tJSy2x}(i~WxES4%!-py0+_+p^5U`P zQ4?fHPneO6!&t?anxKlMTX$CL&&M@<06l2=;9DVciH{}~CC6XsFzy(if4SX5#oOY9 zPTGJ06rmJYL#8YxB_MJ>&1plLB`=*@OC(-fkqIpU0;!>fC%H{7Kr%NNTL^;?7U zWCf)C^YCX{G2zeFAFt%^Mp>{K{vu=5lo}>l$X`2duPEQNY!^XqEb33LUdSP0! z{vuz~rM>W2&umk~$kxbu2Mj)bv6>=`y(N`#ngDkVX*eMEHDm2#KD-$i1Z}3qqoK9Vm)873=;YCzWVbW#P(8KbQ8d7WGc#+6Iv%Vr zW5f0P^ns&KuVgKr)dz524fgVGt(g*Tqo_(2y-AwpF`chS+d0lO3|}pD%!CFk26PF( zJdXUnOL8f>fp$tI0K>|+>4ZKa;LUp`a!nq^2SFlY{GY0}5L@N|fb3|aFT1MPPS+~* z-#LaC0cU-Q8Wk6OsN3^wVhR3sqv*2_Rwm0Z1fWg${;9-Cs-AZ{z(=yS$?kZ1Uy19o znh$;+jwInz3Ti&c4LW7=E(%(FoaT=U(v2`ee3XWq$1=vbuEb0m(Bh82;KMV|(NEDO zvxcMOwH676E5U5K*wl_6#eSi2`VusCUoBpCbnoOc9jVEuBHfZBDqSkz&{31Z3>< z%J={p<3^*)Zq^9&83vrCla~H87nq(Zh za6XEO;n51_L7o$Oce{wNV;l3IJuc{nE@MZ-mMZ#{oRshd7f06lvwJ3r6VF@RB25xS z+y>IkIa+8koMrCUs{8thTjt&0GSWAT~XTxvNAmHWL(qM*QEHxPxp$hF4 zM|Z<FP8IhOEHvfw5)Bef`%OX;-6FRAN7i~s$BO(yu#BNttfm@yxE*n#Qz8f5DcP+as;0WSl6Pw z>TVv9lP^9cCKLgjiBdDGZyr%xeClTG6Y3W4(WNdV?N#JIF6okg_JwYh{G~Hj3AKsz zJFCT&nnWz>fcJncl3v4M0f_xLdF?7oA};>CfL#vx~3#W8`LN#=S z#$s+Fw$69x#nZSwf9nHj^jIZ6!E;6sDcfoP;W=jw`ru zpz`edwB|NqbVKIKZpk^1ZCupZxk)R$@$6-Sj?MnU&Pk8ieS|v78SwBtPCy^+GuiEV z3iw7-<1d@PoJDBL({4#xaBH&ZjeW&gN@<#hb@D~Dn#;t>e zY5QgDpPU?E2w&OnD)?m}_A=`J4EwVsf4t=XK;Xn&ANw`|_1>9|$0Nq`cW>EdfpDIs zZp5-+k~r)Z#t*6Li$%CEE0fj@GGy&+)+t*1(PPUw)q1$Mns7ppeJGK`dLE7{2+nrMdXL#T|HEpNJ zt%fj8@5qKXJX-ED(G+W!>boC`s*PZKP}P9BI2LU%<7i{dGxuz(&|g z7TSRT3VXHXJ^=(`3ju(ZmvDg}5R~UJASql2kG&CvPR7jrQ(3bIlP?jhmA*3z;zeinh(yj2KI7|slz`+t zK<&Kd$cA;V)mw^cza~F2H)c1PIod>eAB?a!bw_`dKKr0F($A52W00n)} zQcz9q0EiTT`_+KSs<-rK_wFSd3V?H$XG(#D_;=UI4&VP9l>#qt*@Tx0F@K#5YLo(@s6mE{RNQI%@0+S+a93 zhlH+AY2PJ_N<7;QawiYWCpGa2gYh`B>b2{Q&hB?P_wYpG<_+Mw?CP(#`?1gV7=Ved zgd=+*bzc4hKo5sQ`9241xCy{g`mNuuEd&8@<7zD2$2LA;AX8iuFxrC?7R*%uc}@lO z?LiGI=o)}Z|6@8GIcc_%JNpwjos&pCY;xiE3kog(Y9hz1ezVcT07SitlH8wL=M(^R ze6^mxY3nNh1eHpEztuPgl==l9*j(J#M^2E>_%S&7_XCee0NMU1_s4R3N$-za?jgbd eqL>?Fvapu7lp(pxz5!3qSPb+`b&Ib$J@_y3IfH8e diff --git a/deployment/macos/dmg-background@2x.png b/deployment/macos/dmg-background@2x.png deleted file mode 100644 index 2afecc542e1713ef5b86803366f90e354c4713ba..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 26550 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 VymZA+pksL8mbl!_jO)6O{ulL~rvLx| diff --git a/deployment/macos/macos-developer-id.keychain-db.gpg b/deployment/macos/macos-developer-id.keychain-db.gpg deleted file mode 100644 index 70fb6c93485bb95c5ae213e36d4eac85ffb18c7e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8563 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 diff --git a/deployment/macos/qt-reportApp.conf b/deployment/macos/qt-reportApp.conf deleted file mode 100644 index df50e9dba0..0000000000 --- a/deployment/macos/qt-reportApp.conf +++ /dev/null @@ -1,4 +0,0 @@ -[Paths] -Plugins = ../PlugIns -Imports = ../Resources/qml -Qml2Imports = ../Resources/qml diff --git a/deployment/macos/status-dmg.json b/deployment/macos/status-dmg.json deleted file mode 100644 index d70adc9d49..0000000000 --- a/deployment/macos/status-dmg.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "title": "Status", - "background": "dmg-background.png", - "contents": [ - { - "x": 385, - "y": 235, - "type": "link", - "path": "/Applications" - }, - { - "x": 170, - "y": 236, - "type": "file", - "path": "../../StatusImPackage/Status.app" - } - ] -} diff --git a/deployment/macos/status-icon.icns b/deployment/macos/status-icon.icns deleted file mode 100644 index 35e982c298b07fc3e45d10f69447c931a8a92d38..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 291538 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

X&=0hyFIolt=Up@$It@CArvMKK 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 L5SNNBIz9M5h0f%0 diff --git a/deployment/status-icon.svg b/deployment/status-icon.svg deleted file mode 100644 index 12f39c42ae..0000000000 --- a/deployment/status-icon.svg +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/deployment/windows/Status.rc.in b/deployment/windows/Status.rc.in deleted file mode 100644 index 6e4bd8e946..0000000000 --- a/deployment/windows/Status.rc.in +++ /dev/null @@ -1,71 +0,0 @@ -#include "resource.h" - -#define APSTUDIO_READONLY_SYMBOLS -///////////////////////////////////////////////////////////////////////////// -// -// Generated from the TEXTINCLUDE resource. -// -#ifndef APSTUDIO_INVOKED -#include "targetver.h" -#endif -#define APSTUDIO_HIDDEN_SYMBOLS -#include "windows.h" -#undef APSTUDIO_HIDDEN_SYMBOLS -///////////////////////////////////////////////////////////////////////////// -#undef APSTUDIO_READONLY_SYMBOLS - -#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) -LANGUAGE 9, 1 - -///////////////////////////////////////////////////////////////////////////// -// -// Icon -// - -// Icon with lowest ID value placed first to ensure application icon -// remains consistent on all systems. - -IDI_STATUS ICON "${ICO_RESOURCE_PATH}" - -#ifdef APSTUDIO_INVOKED -///////////////////////////////////////////////////////////////////////////// -// -// TEXTINCLUDE -// -1 TEXTINCLUDE -BEGIN - "resource.h\0" -END - -2 TEXTINCLUDE -BEGIN - "#ifndef APSTUDIO_INVOKED\r\n" - "#include ""targetver.h""\r\n" - "#endif\r\n" - "#define APSTUDIO_HIDDEN_SYMBOLS\r\n" - "#include ""windows.h""\r\n" - "#undef APSTUDIO_HIDDEN_SYMBOLS\r\n" - "\0" -END - -3 TEXTINCLUDE -BEGIN - "\r\n" - "\0" -END - -#endif // APSTUDIO_INVOKED - -#endif -///////////////////////////////////////////////////////////////////////////// - - - -#ifndef APSTUDIO_INVOKED -///////////////////////////////////////////////////////////////////////////// -// -// Generated from the TEXTINCLUDE resource. -// - -///////////////////////////////////////////////////////////////////////////// -#endif // not APSTUDIO_INVOKED diff --git a/deployment/windows/nsis/include/SnoreNotify.nsh b/deployment/windows/nsis/include/SnoreNotify.nsh deleted file mode 100644 index 37744a5508..0000000000 --- a/deployment/windows/nsis/include/SnoreNotify.nsh +++ /dev/null @@ -1,23 +0,0 @@ -!include LogicLib.nsh -!include WordFunc.nsh - -Function SnoreWinVer - ReadRegStr $R0 HKLM "SOFTWARE\Microsoft\Windows NT\CurrentVersion" CurrentVersion - ${VersionCompare} "6.2" $R0 $R0 - ${If} $R0 == 1 - Push "NotWin8" - ${Else} - Push "AtLeastWin8" - ${EndIf} -FunctionEnd - -!macro SnoreShortcut path exe appID - Call SnoreWinVer - Pop $0 - ${If} $0 == "AtLeastWin8" - nsExec::ExecToLog '"${SnoreToastExe}" -install "${path}" "${exe}" "${appID}"' - ${Else} - DetailPrint "Creating shortcut to ${exe}" - CreateShortCut "${path}" "${exe}" - ${EndIf} -!macroend \ No newline at end of file diff --git a/deployment/windows/nsis/include/UAC.nsh b/deployment/windows/nsis/include/UAC.nsh deleted file mode 100644 index 08979aba97..0000000000 --- a/deployment/windows/nsis/include/UAC.nsh +++ /dev/null @@ -1,299 +0,0 @@ -/*** UAC Plug-in *** - -Interactive User (MediumIL) Admin user (HighIL) -***[Setup.exe]************* ***[Setup.exe]************** -* * * * -* +++[.OnInit]+++++++++++ * * +++[.OnInit]++++++++++++ * -* + UAC_RunElevated >---+-+----> * + + * -* + NSIS.Quit + * * + + * -* +++++++++++++++++++++++ * * ++++++++++++++++++++++++ * -* * * * -* * * * -* +++[Section]+++++++++++ * * +++[Section]++++++++++++ * -* + + * /--+-+- -** -** Get integrity level of current process -** -**/ -!macro UAC_GetIntegrityLevel outvar -UAC::_ 6 -!if "${outvar}" != "s" - Pop ${outvar} -!endif -!macroend - - - -/* UAC_IsAdmin -** -** Is the current process running with administrator privileges? Result in $0 -** -** ${If} ${UAC_IsAdmin} ... -** -**/ -!macro UAC_IsAdmin -UAC::_ 2 -!macroend -!define UAC_IsAdmin `"" UAC_IsAdmin ""` -!macro _UAC_IsAdmin _a _b _t _f -!insertmacro _UAC_MakeLL_Cmp _!= 0 2s -!macroend - - - -/* UAC_IsInnerInstance -** -** Does the current process have a NSIS/UAC parent process that is part of the elevation operation? -** -** ${If} ${UAC_IsInnerInstance} ... -** -**/ -!macro UAC_IsInnerInstance -UAC::_ 3 -!macroend -!define UAC_IsInnerInstance `"" UAC_IsInnerInstance ""` -!macro _UAC_IsInnerInstance _a _b _t _f -!insertmacro _UAC_MakeLL_Cmp _!= 0 3s -!macroend - - - -/* UAC_PageElevation_OnInit, UAC_PageElevation_OnGuiInit, -** -** Helper macros for elevation on a custom elevation page, see the DualMode example for more information. -** -**/ -!macro UAC_Notify_OnGuiInit -UAC::_ 4 -!macroend -!macro UAC_PageElevation_OnGuiInit -!insertmacro UAC_Notify_OnGuiInit -!macroend -!macro UAC_PageElevation_OnInit -UAC::_ 5 -${IfThen} ${Errors} ${|} Quit ${|} -!macroend - - - -/* UAC_AsUser_Call -** -** Calls a function or label in the user process instance. -** All the UAC_AsUser_* macros use this helper macro. -** -**/ -!define UAC_SYNCREGISTERS 0x1 -;define UAC_SYNCSTACK 0x2 -!define UAC_SYNCOUTDIR 0x4 -!define UAC_SYNCINSTDIR 0x8 -;define UAC_CLEARERRFLAG 0x10 -!macro UAC_AsUser_Call type name flags -push $0 -Get${type}Address $0 ${name} -!verbose push -!verbose ${UAC_VERBOSE} -!insertmacro _UAC_ParseDefineFlagsToInt _UAC_AsUser_Call__flags ${flags} -!verbose pop -StrCpy $0 "1$0:${_UAC_AsUser_Call__flags}" -!undef _UAC_AsUser_Call__flags -Exch $0 -UAC::_ -!macroend - - - -/* -** UAC_AsUser_GetSection -*/ -!macro UAC_AsUser_GetSection secprop secidx outvar -!insertmacro _UAC_AsUser_GenOp ${outvar} SectionGet${secprop} ${secidx} "" -!macroend - - - -/* -** UAC_AsUser_GetGlobalVar -** UAC_AsUser_GetGlobal -*/ -!macro UAC_AsUser_GetGlobalVar var -!insertmacro _UAC_AsUser_GenOp ${var} StrCpy "" ${var} -!macroend -!macro UAC_AsUser_GetGlobal outvar srcvar -!insertmacro _UAC_AsUser_GenOp ${outvar} StrCpy "" ${srcvar} -!macroend - - - -/* -** UAC_AsUser_ExecShell -** -** Call ExecShell in the user process instance. -** -*/ -!macro UAC_AsUser_ExecShell verb command params workdir show -!insertmacro _UAC_IncL -goto _UAC_L_E_${__UAC_L} -_UAC_L_F_${__UAC_L}: -ExecShell "${verb}" "${command}" '${params}' ${show} -return -_UAC_L_E_${__UAC_L}: -!if "${workdir}" != "" - push $outdir - SetOutPath "${workdir}" -!endif -!insertmacro UAC_AsUser_Call Label _UAC_L_F_${__UAC_L} ${UAC_SYNCREGISTERS}|${UAC_SYNCOUTDIR}|${UAC_SYNCINSTDIR} #|${UAC_CLEARERRFLAG} -!if "${workdir}" != "" - pop $outdir - SetOutPath $outdir -!endif -!macroend - - - -!macro _UAC_MakeLL_Cmp cmpop cmp pluginparams -!insertmacro _LOGICLIB_TEMP -UAC::_ ${pluginparams} -pop $_LOGICLIB_TEMP -!insertmacro ${cmpop} $_LOGICLIB_TEMP ${cmp} `${_t}` `${_f}` -!macroend -!macro _UAC_definemath def val1 op val2 -!define /math _UAC_definemath "${val1}" ${op} ${val2} -!ifdef ${def} - !undef ${def} -!endif -!define ${def} "${_UAC_definemath}" -!undef _UAC_definemath -!macroend -!macro _UAC_ParseDefineFlags_orin parse outflags -!searchparse /noerrors ${${parse}} "" _UAC_ParseDefineFlags_orin_f1 "|" _UAC_ParseDefineFlags_orin_f2 -!define _UAC_ParseDefineFlags_orin_this ${_UAC_ParseDefineFlags_orin_f1} -!undef ${parse} -!define ${parse} ${_UAC_ParseDefineFlags_orin_f2} -!define _UAC_ParseDefineFlags_orin_saveout ${${outflags}} -!undef ${outflags} -!define /math ${outflags} "${_UAC_ParseDefineFlags_orin_saveout}" | "${_UAC_ParseDefineFlags_orin_this}" -!undef _UAC_ParseDefineFlags_orin_saveout -!undef _UAC_ParseDefineFlags_orin_this -!ifdef _UAC_ParseDefineFlags_orin_f1 - !undef _UAC_ParseDefineFlags_orin_f1 -!endif -!ifdef _UAC_ParseDefineFlags_orin_f2 - !undef _UAC_ParseDefineFlags_orin_f2 -!endif -!macroend -!macro _UAC_ParseDefineFlags_Begin _outdef _in -!define _UAC_PDF${_outdef}_parse "${_in}" -!define _UAC_PDF${_outdef}_flags "" -!define _UAC_PDF${_outdef}_r 0 -!insertmacro _UAC_ParseDefineFlags_orin _UAC_PDF${_outdef}_parse _UAC_PDF${_outdef}_flags ;0x1 -!insertmacro _UAC_ParseDefineFlags_orin _UAC_PDF${_outdef}_parse _UAC_PDF${_outdef}_flags ;0x2 -!insertmacro _UAC_ParseDefineFlags_orin _UAC_PDF${_outdef}_parse _UAC_PDF${_outdef}_flags ;0x4 -!insertmacro _UAC_ParseDefineFlags_orin _UAC_PDF${_outdef}_parse _UAC_PDF${_outdef}_flags ;0x8 -!insertmacro _UAC_ParseDefineFlags_orin _UAC_PDF${_outdef}_parse _UAC_PDF${_outdef}_flags ;0x10 -!macroend -!macro _UAC_ParseDefineFlags_End _outdef -!define ${_outdef} ${_UAC_PDF${_outdef}_r} -!undef _UAC_PDF${_outdef}_r -!undef _UAC_PDF${_outdef}_flags -!undef _UAC_PDF${_outdef}_parse -!macroend -!macro _UAC_ParseDefineFlags_IncludeFlag _outdef flag -!if ${_UAC_PDF${_outdef}_flags} & ${flag} - !insertmacro _UAC_definemath _UAC_PDF${_outdef}_r ${_UAC_PDF${_outdef}_r} | ${flag} -!endif -!macroend -!macro _UAC_ParseDefineFlagsToInt _outdef _in -!insertmacro _UAC_ParseDefineFlags_Begin _UAC_ParseDefineFlagsToInt_tmp "${_in}" -!define ${_outdef} ${_UAC_PDF_UAC_ParseDefineFlagsToInt_tmp_flags} -!insertmacro _UAC_ParseDefineFlags_End _UAC_ParseDefineFlagsToInt_tmp -!undef _UAC_ParseDefineFlagsToInt_tmp -!macroend -!macro _UAC_IncL -!insertmacro _UAC_definemath __UAC_L "${__UAC_L}" + 1 -!macroend -!macro _UAC_AsUser_GenOp outvar op opparam1 opparam2 -!define _UAC_AUGOGR_ID _UAC_AUGOGR_OP${outvar}${op}${opparam1}${opparam2} -!ifndef ${_UAC_AUGOGR_ID} ;Has this exact action been done before? - !if ${outvar} == $0 - !define ${_UAC_AUGOGR_ID} $1 - !else - !define ${_UAC_AUGOGR_ID} $0 - !endif - !if "${opparam1}" == "" - !define _UAC_AUGOGR_OPP1 ${${_UAC_AUGOGR_ID}} - !define _UAC_AUGOGR_OPP2 ${opparam2} - !else - !define _UAC_AUGOGR_OPP1 ${opparam1} - !define _UAC_AUGOGR_OPP2 ${${_UAC_AUGOGR_ID}} - !endif - goto ${_UAC_AUGOGR_ID}_C - ${_UAC_AUGOGR_ID}_F: - ${op} ${_UAC_AUGOGR_OPP1} ${_UAC_AUGOGR_OPP2} - return - ${_UAC_AUGOGR_ID}_C: - !undef _UAC_AUGOGR_OPP1 - !undef _UAC_AUGOGR_OPP2 -!endif -push ${${_UAC_AUGOGR_ID}} -!insertmacro UAC_AsUser_Call Label ${_UAC_AUGOGR_ID}_F ${UAC_SYNCREGISTERS} -StrCpy ${outvar} ${${_UAC_AUGOGR_ID}} -pop ${${_UAC_AUGOGR_ID}} -!undef _UAC_AUGOGR_ID -!macroend - - - -!verbose pop -!endif /* UAC_HDR__INC */ \ No newline at end of file diff --git a/deployment/windows/nsis/include/nsProcess.nsh b/deployment/windows/nsis/include/nsProcess.nsh deleted file mode 100644 index 84278b02b0..0000000000 --- a/deployment/windows/nsis/include/nsProcess.nsh +++ /dev/null @@ -1,28 +0,0 @@ -!define nsProcess::FindProcess `!insertmacro nsProcess::FindProcess` - -!macro nsProcess::FindProcess _FILE _ERR - nsProcess::_FindProcess /NOUNLOAD `${_FILE}` - Pop ${_ERR} -!macroend - - -!define nsProcess::KillProcess `!insertmacro nsProcess::KillProcess` - -!macro nsProcess::KillProcess _FILE _ERR - nsProcess::_KillProcess /NOUNLOAD `${_FILE}` - Pop ${_ERR} -!macroend - -!define nsProcess::CloseProcess `!insertmacro nsProcess::CloseProcess` - -!macro nsProcess::CloseProcess _FILE _ERR - nsProcess::_CloseProcess /NOUNLOAD `${_FILE}` - Pop ${_ERR} -!macroend - - -!define nsProcess::Unload `!insertmacro nsProcess::Unload` - -!macro nsProcess::Unload - nsProcess::_Unload -!macroend \ No newline at end of file diff --git a/deployment/windows/nsis/plugins/x86-ansi/SimpleFC.dll b/deployment/windows/nsis/plugins/x86-ansi/SimpleFC.dll deleted file mode 100644 index 73b7d9634deddc41966698106dfcf3950c3cfb65..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 179712 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ν51={dZ1BY4A`^N;@_Z7WppVw&qD2_?OGw@eIc_w%^l<9ZW6-6g zfF*(WL&Y5wUo7UhL&ZWR^;NQu1}{DFqACvSe8PcHzQbC|X9%J!3Fnp>%vn;LODIkw zI`HWxDOMZy)Zj9El4CC(S>7ST*l&PdHe=ELb%a&D@NfnXIOh0~PT<{%V1{TlA+1V$ zfppMhB2!$DMieZ8u9 za^*UDP6I(6ya`R?IHM3}@M~Or<=S;EoW5`A@xJsCMw*B~Xyv*XDb{NDHSS`h`jLq!$hS1v63sECUOxs=p8=R@wUxGQ;CLqSl3de zAOG23X?jbC1B**LR4Z>L-Ol^2#Upo9RC+%yz6K?Duc@PCg+a;M#bj_tp=kwzDEa_Y z%j3O-2=aBMc4F^KSMl>otZj%T5%U)igY$nTu%c7;8~E>FmtOp@M**m(=nE1^d)rS2 zY43`}x#)xgiQ!oE#6CA{*5c>+@E*JbA}a^HDhJHLLKOUj1{BT^v&lETQzGWgRY4jp z8KqFXaVQnv{}P3~gLu;n@VknV9a?hB3^5i@PuZb5$a^;&wR6DaJ!DjgJc#&HdW6Zk zxU`}1l`uqGK&k2E;%g+OGfPCnhv=O-OZ?*I$B6Q|ae5pmC9){8r?kNgRe`m^*-IvD zqv9ZmVicmDKJ-)r%#3ZFSYs{0ZT4;xuhpZ^dd8F#U-xEQ`#9BGWQaVCpOUtp_`XO< zTXy+-2W!DAXOQ2Zs(G3a0@vazr@C~w@Ehfs?BJYr-2(|8gM z2t99i#o;@i1k?cU-#i+^B$hA;xA^zAPzOpq<pz-5byCOxKL}X+R@q=RUvF}>5oVt zz6O<2L2jj>C3srWR}26RPtgFpq_^mT*HbhAFBvFK(ld>|*{XZVI1#r{#L4gwQRqR7 zc8{U8yyaLX6Vccp@f6i}(e7x)^K2VDsp`R=-;*bCfffoOeWH>&BXQWjE|>`e<|)#M zevcXCL2TV!C9t)p8h^H>P^o+Fz_{W50e)-oXWLxzdj@`NZ&G`%I2~xu&B#FERS5z- z-XSRgUQuwEht?t2V(v?Los8GZ_ BC*}K5P`+D&^F74*?m_?Xw*du*dDI>MzQ0m9 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 diff --git a/deployment/windows/nsis/plugins/x86-ansi/UAC.dll b/deployment/windows/nsis/plugins/x86-ansi/UAC.dll deleted file mode 100644 index 57a58c5399a54f964a69cff764f505ef2b7c8c16..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14848 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 diff --git a/deployment/windows/nsis/plugins/x86-ansi/nsProcess.dll b/deployment/windows/nsis/plugins/x86-ansi/nsProcess.dll deleted file mode 100644 index 4ce012103f940e219f1b48eebd923e2b9c05ad01..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4608 zcmeHKZ){sv6+d>I#_iI^8Z{~?&{r?8O022v=Za==i?igV4RzbsI<-Tae~$gq_p;~r z!uyjZD1lavJGrkO6{>&_(WcP}5bQ$*Ekx6_g_bERq9DQ4RmueYFibU)Wh&IYY$X(x4^mO z5yx79HK=iyvA0pb2+^vglSUF_rJIck+h!f| znij$6TT5oZPz-;~WX%xm7Fso3OQFur6&18dumP#2MJS#o$SNBCjq0%mwjGVLrbPgr zsu3R!|Bn^8$}U8%G{O<IAjKwX}ortqbG11}j0P%XL|7!c+ji>YGN`7FqZJ^QUC~zyh*nm$Q z@$xv|Hn3`JD{%MddW|UO7K~4wnz>hp50B{)=N|#U3Aa6A)?1vX_-G6jE?a@3S!Zz@ z6N^BfHR8o1?HL+8cJ1nsg4}Zc)Sb8SI3`$9;9lYLGyVCQzWmJaBKOL9+c;bTT{qv4 zR<{$_WoLfvjKz(O$Q@0y>k)H)fX=mH_bNmH#5d5#`UCOqM4so;?Tf~k_!5qJ;tkoV zUR3RgTRZ$HCCH8T#Uduh^D$zIWA)@nueF*Z#urc`-Y3xH6u}26^R&oV`;JKTQNh{j@~3l)XJx%UY< zG)DMXjCfnnjhIFuN0k^NgK}=c+#Jbs{cYT&$rQL@zQFbI#GED*UCTTEK}hzO9%~IE zy6Wy0FI3~a-GJcY9L4iCV{hHe52V}w*fjfBETy%B<}RMZE=F#M|rk(lkq7E4g=@W-n5{)HM4;9(dJumVeKS!xpKYPt^?>*x_`Ch-dVizF7SF_z{ul|wjeUpp-~yBeFC7U^dJjqkH7b&P+PYPiJTPsOl?J)s&qXcA#*S3Ql%m@YqoH zb@|#=tEo`Q=SmgTV&| zh?f8y@#S~#(R2{tEmS=?fR_R|#t`6g1>oB@zzZ~Jd_W`FonW+Qr(0YQxBSKy%%c%2 zRsRCbjxTh(cw)5RNufJn`&b*|c{lM!P{x83>*#IchU_ki2S%Ii7tb!Z`LPJ`cF|(* zunTn;aT;yB8Z5}Ku|f0x!7DC$^_;pxYe-CYAqN<+_%;IILFq+?*_V|3^0S1HYv}N> z-KPT6TL8`=J%@A&=~qZMk={YNiv&J^MkF7SA1RFVWu$&28EG2n3=(ZWL;gFYTS(t8 z>v&B~3A)Y(50t)Bs&coa>GC#=v7r&6y$L>7*mqtx~S4m8ra7jKEOrUU~5-2 zO63E_Ayd$%VpF;yWO|fQRm&s|NmcAQ=!Gtb;;*&L0X~-oXr?)o+jnV93|?n7x;v=D zx7~f)|GGAv&?&3Bus5lsWdXLidIc>bDOiqjkpR-JL{c)kRV^kd$7SK*$e55a;C06y z!Qdt(qZ2=-tF~<2!Er&Uh(B@3x}l}Ur<4x3Y>#CDhwv9?R86L%(ukJSrci#VWS1G2 zI^b)rgp?LK#iZ7&?l)yadTPoL@Tr~~hfk^_X3x-Mi! zM2pkB=v0>DW$2pI%;f7shKB}dZu+E;A1jLMH&_K$_d%!3$*%u zyVtK{n6ROlxm@2o2r?tnewQz)_b3zU(}Lz>OsOM9@3vjO(WI;kzTM&NRqPKsSMh5sKC*gv`v+nT zZ?7he?&0l~dhX^s_>Qiwo&$UO`pSd)6N-n9g+@asLf;6T4Sg&0z0eOr7em)WZ-#KuhwWppz&`;@9Jy}* diff --git a/deployment/windows/nsis/plugins/x86-unicode/UAC.dll b/deployment/windows/nsis/plugins/x86-unicode/UAC.dll deleted file mode 100644 index 97e7d15eae6e9a05289291b00c38da23e1128d95..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14848 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 0 ${|} ${Break} ${|} ;we are admin, let the show go on - ${If} $2 = 3 ;RunAs completed successfully, but with a non-admin user - MessageBox MB_YESNO|MB_ICONEXCLAMATION|MB_TOPMOST|MB_SETFOREGROUND "Status Desktop setup requires admin privileges, try again" /SD IDNO IDYES uac_tryagain IDNO 0 - ${EndIf} - ;fall-through and die - ${Case} 1223 - ; User aborted elevation, continue regardless - ${Break} - ${Default} - ${MessageBox} mb_iconstop "Could not elevate process (errorcode $0), continuing with normal user privileges." IDOK '' - ${Break} - ${EndSwitch} - - ; The UAC plugin changes the error level even in the inner process, reset it. - SetErrorLevel -1 - ${EndIf} - - ; /update argument - Call ReadUpdateCommandline - - Call ReadSkipLicense - - Call GetUserInfo - - ; Initialize $ALL_USERS with default value - ${If} $IS_ADMIN == 1 - StrCpy $ALL_USERS 1 - ${Else} - StrCpy $ALL_USERS 0 - ${EndIf} - Call UpdateShellVarContext - - ; See if previous version exists - ; This can change ALL_USERS - Call ReadPreviousVersion - - ${If} $PREVIOUS_VERSION != "" - StrCpy $REINSTALL_UNINSTALL 1 - ${EndIf} - - ; Load _all_ previous settings. - ; Need to do it now as up to now, $ALL_USERS was possibly reflecting a - ; previous installation. After this call, $ALL_USERS reflects the requested - ; installation mode for this installation. - Call LoadPreviousSettings - - Call ReadAllUsersCommandline - - ${If} $ALL_USERS == 1 - ${If} $IS_ADMIN == 0 - - ${If} $PREVIOUS_VERSION != "" - ${MessageBox} MB_ICONSTOP "Status Desktop has been previously installed for all users.$\nPlease restart the installer with Administrator privileges." IDOK '' - Abort - ${Else} - ${MessageBox} MB_ICONSTOP "Cannot install for all users.$\nPlease restart the installer with Administrator privileges." IDOK '' - Abort - ${EndIf} - ${EndIf} - ${EndIf} - - ${If} $PREVIOUS_VERSION == "" - - StrCpy $PERFORM_UPDATE 0 - DetailPrint "No previous version of Status Desktop was found" - - ${Else} - - Push "${VERSION}" - Push $PREVIOUS_VERSION - Call StatusVersionCompare - - DetailPrint "Found previous version: $PREVIOUS_VERSION" - DetailPrint "Installing $PREVIOUS_VERSION_STATE version ${VERSION}" - - ${EndIf} - - StrCpy $ALL_USERS_DEFAULT $ALL_USERS - -FunctionEnd - -Function StatusVersionCompare - - Exch $1 - Exch - Exch $0 - - Push $2 - Push $3 - Push $4 - -versioncomparebegin: - ${If} $0 == "" - ${AndIf} $1 == "" - StrCpy $PREVIOUS_VERSION_STATE "same" - goto versioncomparedone - ${EndIf} - - StrCpy $2 0 - StrCpy $3 0 - - ; Parse rc / beta suffixes for segments - StrCpy $4 $0 2 - ${If} $4 == "rc" - StrCpy $2 100 - StrCpy $0 $0 "" 2 - ${Else} - StrCpy $4 $0 4 - ${If} $4 == "beta" - StrCpy $0 $0 "" 4 - ${Else} - StrCpy $2 10000 - ${EndIf} - ${EndIf} - - StrCpy $4 $1 2 - ${If} $4 == "rc" - StrCpy $3 100 - StrCpy $1 $1 "" 2 - ${Else} - StrCpy $4 $1 4 - ${If} $4 == "beta" - StrCpy $1 $1 "" 4 - ${Else} - StrCpy $3 10000 - ${EndIf} - ${EndIf} - -split1loop: - - StrCmp $0 "" split1loopdone - StrCpy $4 $0 1 - StrCpy $0 $0 "" 1 - StrCmp $4 "." split1loopdone - StrCmp $4 "-" split1loopdone - StrCpy $2 $2$4 - goto split1loop -split1loopdone: - -split2loop: - - StrCmp $1 "" split2loopdone - StrCpy $4 $1 1 - StrCpy $1 $1 "" 1 - StrCmp $4 "." split2loopdone - StrCmp $4 "-" split2loopdone - StrCpy $3 $3$4 - goto split2loop -split2loopdone: - - ${If} $2 > $3 - StrCpy $PREVIOUS_VERSION_STATE "newer" - ${ElseIf} $3 > $2 - StrCpy $PREVIOUS_VERSION_STATE "older" - ${Else} - goto versioncomparebegin - ${EndIf} - - -versioncomparedone: - - Pop $4 - Pop $3 - Pop $2 - Pop $1 - Pop $0 - -FunctionEnd - -Function PageDirectoryPre - - ${If} $PERFORM_UPDATE == 1 - Abort - ${EndIf} - - ${If} $REINSTALL_UNINSTALL == "1" - ${AndIf} $PREVIOUS_VERSION_STATE != "same" - - Abort - - ${EndIf} - -FunctionEnd - -Function PageStartmenuPre - - ${If} $PERFORM_UPDATE == 1 - Abort - ${EndIf} - - ${If} $REINSTALL_UNINSTALL == "1" - ${AndIf} $PREVIOUS_VERSION_STATE != "same" - - ${If} "$STARTMENU_FOLDER" == "" - - StrCpy "$STARTMENU_FOLDER" ">" - - ${EndIf} - - Abort - - ${EndIf} - -FunctionEnd - -Function .OnInstFailed -FunctionEnd - -Function .onInstSuccess - - ;${MementoSectionSave} - - - ; Detect multiple install directories - ${If} $OldRunDir != '' - ${GetFileVersion} $OldRunDir $R0 - ${GetFileVersion} "$INSTDIR\${AppExeName}" $R1 - - StrCpy $R2 $OldRunDir -14 - - ${If} $R0 != '' - ${AndIf} $R1 != '' - ${AndIf} $R0 != $R1 - ${MessageBox} MB_ICONEXCLAMATION 'Multiple installations of Status Desktop detected.$\n$\nStatus Desktop ${VERSION} has been installed to "$InstDir".$\nAn old installation of Status Desktop $R0 still exists in the "$R2" directory.$\n$\nPlease delete the old version in the "$R2" directory.' IDOK '' - ${EndIf} - ${EndIf} - -FunctionEnd - -;-------------------------------- -; Languages -;-------------------------------- - - !insertmacro MUI_LANGUAGE "English" - -;-------------------------------- -;Installer Sections -;-------------------------------- - -Section "Status Desktop" SecMain - - ;SectionIn 1 RO - - ${nsProcess::FindProcess} "${NodeJsServerExeName}" $R0 - - ${If} $R0 == 0 - DetailPrint "${NodeJsServerExeName} is running. Closing it down" - ${nsProcess::CloseProcess} "${NodeJsServerExeName}" $R0 - DetailPrint "Waiting for ${NodeJsServerExeName} to close" - Sleep 2000 - ${Else} - DetailPrint "${NodeJsServerExeName} was not found to be running" - ${EndIf} - - ${nsProcess::Unload} - - SetOutPath "$INSTDIR" - - File "${top_srcdir}\.env" - File "${top_srcdir}\node_modules\node-notifier\vendor\snoreToast\SnoreToast.exe" - File /r "${top_srcdir}\desktop\bin\" - File /r "${base_image_dir}\" - - SetOutPath "$INSTDIR\notifier" - File "${top_srcdir}\node_modules\node-notifier\vendor\notifu\*.exe" - - SetOutPath "$INSTDIR\assets\resources\fonts" - File /r "${top_srcdir}\resources\fonts\" - - SetOutPath "$INSTDIR\assets\desktop\resources" - File /r "${top_srcdir}\desktop\resources\" - - SetOutPath "$INSTDIR\assets\resources\images" - File /r "${top_srcdir}\resources\images\" - - ;Create uninstaller - WriteUninstaller "$INSTDIR\${UninstallExeName}" - - WriteRegStr SHCTX "${AppRegistryKeyPath}" "" $INSTDIR - WriteRegStr SHCTX "${AppRegistryKeyPath}" "Version" "${VERSION}" - - WriteRegDWORD SHCTX "${AppRegistryKeyPath}" "Updated" $PERFORM_UPDATE - - ${StrRep} $R0 "$INSTDIR\${UninstallExeName}" '"' '""' - WriteRegExpandStr SHCTX "${UninstallRegKeyPath}" "UninstallString" '"$R0"' - WriteRegExpandStr SHCTX "${UninstallRegKeyPath}" "InstallLocation" "$INSTDIR" - WriteRegStr SHCTX "${UninstallRegKeyPath}" "DisplayName" "Status Desktop ${VERSION}" - WriteRegStr SHCTX "${UninstallRegKeyPath}" "DisplayIcon" "$INSTDIR\${AppExeName}" - WriteRegStr SHCTX "${UninstallRegKeyPath}" "DisplayVersion" "${VERSION}" - WriteRegStr SHCTX "${UninstallRegKeyPath}" "URLInfoAbout" "${WEBSITE_URL}" - WriteRegStr SHCTX "${UninstallRegKeyPath}" "URLUpdateInfo" "${WEBSITE_URL}" - WriteRegStr SHCTX "${UninstallRegKeyPath}" "HelpLink" "${WEBSITE_URL}" - WriteRegStr SHCTX "${UninstallRegKeyPath}" "Publisher" "${PUBLISHER}" - WriteRegDWORD SHCTX "${UninstallRegKeyPath}" "VersionMajor" "${VERSION_MAJOR}" - WriteRegDWORD SHCTX "${UninstallRegKeyPath}" "VersionMinor" "${VERSION_MINOR}" - WriteRegDWORD SHCTX "${UninstallRegKeyPath}" "NoModify" "1" - WriteRegDWORD SHCTX "${UninstallRegKeyPath}" "NoRepair" "1" - - Call GetInstalledSize - WriteRegDWORD SHCTX "${UninstallRegKeyPath}" "EstimatedSize" "$GetInstalledSize.total" ; Create/Write the reg key with the dword value - - ;Add applications to the firewall exception list - All Networks - All IP Version - Enabled - SimpleFC::IsApplicationAdded "$INSTDIR\${AppExeName}" - Pop $0 ; return error(1)/success(0) - ${if} $0 == "0" - Pop $1 ; return 1=Added/0=Not added - ${if} $1 == "0" - ; SimpleFC::AddApplication [name] [path] [scope] [ip_version] [remote_addresses] [status] - SimpleFC::AddApplication "Status Desktop Ethereum Node" "$INSTDIR\${AppExeName}" 0 2 "" 1 - SimpleFC::AddApplication "Status Desktop Node.js Server" "$INSTDIR\${NodeJsServerExeName}" 1 2 "" 1 - ${endif} - ${endif} - - !insertmacro MUI_STARTMENU_WRITE_BEGIN Application - - ;Create shortcuts - SetOutPath "$INSTDIR" - CreateDirectory "$SMPROGRAMS\$STARTMENU_FOLDER" - CreateShortCut "$SMPROGRAMS\$STARTMENU_FOLDER\${UninstallLinkName}" "$INSTDIR\${UninstallExeName}" - - ;CreateShortCut "$SMPROGRAMS\$STARTMENU_FOLDER\${AppLinkFileName}" "$INSTDIR\${AppExeName}" - !insertmacro SnoreShortcut "$SMPROGRAMS\$STARTMENU_FOLDER\${AppLinkFileName}" "$INSTDIR\${AppExeName}" "${AppUserModelId}" - - !insertmacro MUI_STARTMENU_WRITE_END - - ; Push $R0 - ; StrCpy $R0 "$STARTMENU_FOLDER" 1 - ; ${if} $R0 == ">" - ; ;Write folder to registry - ; WriteRegStr "${MUI_STARTMENUPAGE_Application_REGISTRY_ROOT}" "${MUI_STARTMENUPAGE_Application_REGISTRY_KEY}" "${MUI_STARTMENUPAGE_Application_REGISTRY_VALUENAME}" ">" - ; ${endif} - ; Pop $R0 - - ${If} $ALL_USERS == 1 - ; Enable mini dumps - ${If} ${RunningX64} - SetRegView 64 - ${EndIf} - WriteRegDWORD HKLM "${DUMP_KEY}\${AppExeName}" "DumpType" "1" - WriteRegDWORD HKLM "${DUMP_KEY}\${NodeJsServerExeName}" "DumpType" "1" - ${If} ${RunningX64} - SetRegView lastused - ${EndIf} - ${EndIf} - - ; Register App Path so that typing status in Win+R dialog starts Status Desktop - WriteRegStr SHCTX "Software\Microsoft\Windows\CurrentVersion\App Paths\${AppExeName}" "" "$INSTDIR\${AppExeName}" - WriteRegStr SHCTX "Software\Microsoft\Windows\CurrentVersion\App Paths\${AppExeName}" "Path" "$INSTDIR" - -SectionEnd - -;-------------------------------- -; Functions -;-------------------------------- - -Function PostInstPage - - ; Don't advance automatically if details expanded - FindWindow $R0 "#32770" "" $HWNDPARENT - GetDlgItem $R0 $R0 1016 - System::Call user32::IsWindowVisible(i$R0)i.s - Pop $R0 - - ${If} $R0 != 0 - SetAutoClose false - ${EndIf} - -FunctionEnd - -Function GetInstalledSize - Push $0 - Push $1 - StrCpy $GetInstalledSize.total 0 - ${ForEach} $1 0 256 + 1 - ${if} ${SectionIsSelected} $1 - SectionGetSize $1 $0 - IntOp $GetInstalledSize.total $GetInstalledSize.total + $0 - ${Endif} - ${Next} - Pop $1 - Pop $0 - IntFmt $GetInstalledSize.total "0x%08X" $GetInstalledSize.total - Push $GetInstalledSize.total -FunctionEnd - -;-------------------------------- -; Descriptions -;-------------------------------- - - ; Language strings - LangString DESC_SecMain ${LANG_ENGLISH} "Required program files." - ;LangString DESC_SecDesktop ${LANG_ENGLISH} "Create desktop icon for FileZilla" - - ; Assign language strings to sections - !insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN - !insertmacro MUI_DESCRIPTION_TEXT ${SecMain} $(DESC_SecMain) - ;!insertmacro MUI_DESCRIPTION_TEXT ${SecDesktop} $(DESC_SecDesktop) - !insertmacro MUI_FUNCTION_DESCRIPTION_END - -;-------------------------------- -; Uninstaller Variables -;-------------------------------- - -Var un.REMOVE_ALL_USERS -Var un.REMOVE_CURRENT_USER - -;-------------------------------- -;Uninstaller Functions -;-------------------------------- - -Function un.GetUserInfo - ClearErrors - UserInfo::GetName - ${If} ${Errors} - StrCpy $IS_ADMIN 1 - Return - ${EndIf} - Pop $USERNAME - - ${If} ${UAC_IsAdmin} - StrCpy $IS_ADMIN 1 - ${Else} - StrCpy $IS_ADMIN 0 - ${EndIf} - -FunctionEnd - -Function un.ReadPreviousVersion - - ReadRegStr $R0 HKLM "${AppRegistryKeyPath}" "" - - ${If} $R0 != "" - ;Detect version - ReadRegStr $R2 HKLM "${AppRegistryKeyPath}" "Version" - ${If} $R2 == "" - StrCpy $R0 "" - ${EndIf} - ${EndIf} - - ReadRegStr $R1 HKCU "${AppRegistryKeyPath}" "" - - ${If} $R1 != "" - ;Detect version - ReadRegStr $R2 HKCU "${AppRegistryKeyPath}" "Version" - ${If} $R2 == "" - StrCpy $R1 "" - ${EndIf} - ${EndIf} - - ${If} $R1 == $INSTDIR - Strcpy $un.REMOVE_CURRENT_USER 1 - ${EndIf} - ${If} $R0 == $INSTDIR - Strcpy $un.REMOVE_ALL_USERS 1 - ${EndIf} - ${If} $un.REMOVE_CURRENT_USER != 1 - ${AndIf} $un.REMOVE_ALL_USERS != 1 - ${If} $R1 != "" - Strcpy $un.REMOVE_CURRENT_USER 1 - ${If} $R0 == $R1 - Strcpy $un.REMOVE_ALL_USERS 1 - ${EndIf} - ${Else} - StrCpy $un.REMOVE_ALL_USERS = 1 - ${EndIf} - ${EndIf} - -FunctionEnd - -Function un.onInit - - ${un.GetParameters} $CommandLine - - ${un.GetOptions} $CommandLine "/quiet" $R1 - ${If} ${Errors} - StrCpy $Quiet 0 - ${Else} - StrCpy $Quiet 1 - SetSilent silent - ${EndIf} - - Call un.GetUserInfo - Call un.ReadPreviousVersion - - ${If} $un.REMOVE_ALL_USERS == 1 - ${AndIf} $IS_ADMIN == 0 -uac_tryagain: - !insertmacro UAC_RunElevated - - ${Switch} $0 - ${Case} 0 - ${IfThen} $1 = 1 ${|} Quit ${|} ;we are the outer process, the inner process has done its work, we are done. - ${IfThen} $3 <> 0 ${|} ${Break} ${|} ;we are admin, let the show go on - ${If} $2 = 3 ;RunAs completed successfully, but with a non-admin user - MessageBox MB_YESNO|MB_ICONEXCLAMATION|MB_TOPMOST|MB_SETFOREGROUND "Status Desktop setup requires admin privileges, try again" /SD IDNO IDYES uac_tryagain IDNO 0 - Abort - ${EndIf} - ;fall-through and die - ${Default} - ${MessageBox} MB_ICONSTOP "Status Desktop has been installed for all users.$\nPlease restart the uninstaller with Administrator privileges to remove it." IDOK '' - Abort - ${EndSwitch} - - ; The UAC plugin changes the error level even in the inner process, reset it. - SetErrorLevel -1 - ${EndIf} - -FunctionEnd - -Function un.RemoveStartmenu - - !insertmacro MUI_STARTMENU_GETFOLDER Application $MUI_TEMP - - Delete "$SMPROGRAMS\$MUI_TEMP\${UninstallLinkName}" - Delete "$SMPROGRAMS\$MUI_TEMP\${AppLinkFileName}" - - ${un.GetOptions} $CommandLine "/keepstartmenudir" $R1 - ${If} ${Errors} - - ; Delete empty start menu parent diretories - StrCpy $MUI_TEMP "$SMPROGRAMS\$MUI_TEMP" - - startMenuDeleteLoop: - RMDir $MUI_TEMP - GetFullPathName $MUI_TEMP "$MUI_TEMP\.." - - IfErrors startMenuDeleteLoopDone - - StrCmp $MUI_TEMP $SMPROGRAMS startMenuDeleteLoopDone startMenuDeleteLoop - startMenuDeleteLoopDone: - - ${EndUnless} - -FunctionEnd - -Function un.ConfirmPagePre - - ${un.GetOptions} $CommandLine "/frominstall" $R1 - ${Unless} ${Errors} - Abort - ${EndUnless} - -FunctionEnd - -Function un.FinishPagePre - - ${un.GetOptions} $CommandLine "/frominstall" $R1 - ${Unless} ${Errors} - SetRebootFlag false - Abort - ${EndUnless} - -FunctionEnd - -;-------------------------------- -; Uninstaller Section -;-------------------------------- - -Section "Uninstall" - - SetShellVarContext all - - SetDetailsPrint lastused - - ${nsProcess::FindProcess} "${AppExeName}" $R0 - - ${If} $R0 == 0 - DetailPrint "${AppExeName} is running. Closing it down" - ${nsProcess::CloseProcess} "${AppExeName}" $R0 - DetailPrint "Waiting for ${AppExeName} to close" - Sleep 2000 - ${Else} - DetailPrint "${AppExeName} was not found to be running" - ${EndIf} - - ${nsProcess::FindProcess} "${NodeJsServerExeName}" $R0 - - ${If} $R0 == 0 - DetailPrint "${NodeJsServerExeName} is running. Closing it down" - ${nsProcess::CloseProcess} "${NodeJsServerExeName}" $R0 - DetailPrint "Waiting for ${NodeJsServerExeName} to close" - Sleep 2000 - ${Else} - DetailPrint "${NodeJsServerExeName} was not found to be running" - ${EndIf} - - ${nsProcess::Unload} - - SimpleFC::RemoveApplication "$INSTDIR\${AppExeName}" - SimpleFC::RemoveApplication "$INSTDIR\${NodeJsServerExeName}" - - Delete "$INSTDIR\.env" - Delete "$INSTDIR\*.dll" - Delete "$INSTDIR\${AppExeName}" - Delete "$INSTDIR\reportApp.exe" - Delete "$INSTDIR\vc_redist.x64.exe" - Delete "$INSTDIR\${NodeJsServerExeName}" - Delete "$INSTDIR\${UninstallExeName}" - RMDir /r "$INSTDIR\assets" - Delete "$INSTDIR\bearer\*.dll" - RMDir "$INSTDIR\bearer" - Delete "$INSTDIR\iconengines\*.dll" - RMDir "$INSTDIR\iconengines" - Delete "$INSTDIR\imageformats\*.dll" - RMDir "$INSTDIR\imageformats" - RMDir /r "$INSTDIR\node_modules" - Delete "$INSTDIR\notifier\*.exe" - RMDir "$INSTDIR\notifier" - Delete "$INSTDIR\platforms\*.dll" - RMDir "$INSTDIR\platforms" - RMDir /r "$INSTDIR\QtGraphicalEffects" - RMDir /r "$INSTDIR\QtQml" - RMDir /r "$INSTDIR\QtQuick" - RMDir /r "$INSTDIR\QtQuick.2" - RMDir /r "$INSTDIR\QtWebSockets" - Delete "$INSTDIR\styles\*.dll" - RMDir "$INSTDIR\styles" - Delete "$INSTDIR\translations\*.qm" - RMDir "$INSTDIR\translations" - - Delete "$INSTDIR" - - ${un.GetOptions} $CommandLine "/frominstall" $R1 - ${If} ${Errors} - RMDir /r /REBOOTOK "$INSTDIR" - - DeleteRegValue SHCTX "${AppRegistryKeyPath}" "Package" - DeleteRegValue SHCTX "${AppRegistryKeyPath}" "Updated" - DeleteRegValue SHCTX "${AppRegistryKeyPath}" "Channel" - ${EndIf} - - ${If} $un.REMOVE_ALL_USERS == 1 - SetShellVarContext all - Call un.RemoveStartmenu - - DeleteRegKey /ifempty HKLM "${AppRegistryKeyPath}" - DeleteRegKey /ifempty HKLM "${OrgRegistryKeyPath}" - DeleteRegKey HKLM "${UninstallRegKeyPath}" - - Delete "$DESKTOP\${AppLinkFileName}" - - ; Remove dump key - ${If} ${RunningX64} - SetRegView 64 - ${EndIf} - DeleteRegValue HKLM "${DUMP_KEY}\${AppExeName}" "DumpType" - DeleteRegValue HKLM "${DUMP_KEY}\${NodeJsServerExeName}" "DumpType" - ${If} ${RunningX64} - SetRegView lastused - ${EndIf} - ${EndIf} - - ${If} $un.REMOVE_CURRENT_USER == 1 - SetShellVarContext current - Call un.RemoveStartmenu - - DeleteRegKey /ifempty HKCU "${AppRegistryKeyPath}" - DeleteRegKey /ifempty HKCU "${OrgRegistryKeyPath}" - DeleteRegKey HKCU "${UninstallRegKeyPath}" - - Delete "$DESKTOP\${AppLinkFileName}" - ${EndIf} - - DeleteRegKey SHCTX "Software\Microsoft\Windows\CurrentVersion\App Paths\${AppExeName}" - -SectionEnd diff --git a/deployment/windows/resource.h b/deployment/windows/resource.h deleted file mode 100644 index 8f7a0e1fca..0000000000 --- a/deployment/windows/resource.h +++ /dev/null @@ -1,20 +0,0 @@ -//{{NO_DEPENDENCIES}} -// clang-format off -// Used by Status.rc - -#define IDI_STATUS 107 -#ifndef IDC_STATIC -#define IDC_STATIC -1 -#endif -// Next default values for new objects -// -#ifdef APSTUDIO_INVOKED -#ifndef APSTUDIO_READONLY_SYMBOLS - -#define _APS_NO_MFC 130 -#define _APS_NEXT_RESOURCE_VALUE 129 -#define _APS_NEXT_COMMAND_VALUE 32771 -#define _APS_NEXT_CONTROL_VALUE 1000 -#define _APS_NEXT_SYMED_VALUE 110 -#endif -#endif diff --git a/deployment/windows/status.ico b/deployment/windows/status.ico deleted file mode 100644 index 5a8f1b5c0ef3bc22dab4b6a343192ed6986a6f81..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 33314 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

R(l26(xe?#-vFV~aqL9n|n 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 \ No newline at end of file diff --git a/desktop/CMakeLists.txt b/desktop/CMakeLists.txt deleted file mode 100644 index 31ee2fb296..0000000000 --- a/desktop/CMakeLists.txt +++ /dev/null @@ -1,99 +0,0 @@ - -# Copyright (C) 2016, Canonical Ltd. -# All rights reserved. - -# This source code is licensed under the BSD-style license found in the -# LICENSE file in the root directory of this source tree. An additional grant -# of patent rights can be found in the PATENTS file in the same directory. - -cmake_minimum_required(VERSION 3.12.1) - -set(APP_NAME Status) -set(JS_APP_NAME StatusIm) -set(REACT_BUILD_STATIC_LIB ON) - -set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DUNICODE -std=c++11") -if(STATUS_NO_LOGGING) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DSTATUS_NO_LOGGING") -endif() -set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DUNICODE -std=c11") -set(CMAKE_INSTALL_PREFIX bin) -set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_PREFIX}" CACHE PATH "Where to place compiled executables.") - -set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/CMakeModules/") - -project(${APP_NAME} C CXX) -set(${APP_NAME}_BINARY_DIR ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}) - -set(USED_QT_MODULES Core Concurrent Qml Quick WebSockets Svg) -include(QtConfiguration) - -set(ICON_PNG_RESOURCE_PATH "${CMAKE_SOURCE_DIR}/../deployment/status-icon.png") -if (WIN32) - set(ICO_RESOURCE_PATH "${CMAKE_SOURCE_DIR}/../deployment/windows/status.ico") - set(APPLICATION_MAIN_RC_PATH "${CMAKE_SOURCE_DIR}/../deployment/windows/Status.rc") - - configure_file( - ${CMAKE_SOURCE_DIR}/../deployment/windows/Status.rc.in - ${APPLICATION_MAIN_RC_PATH} - ) -endif() - -message(STATUS "EXTERNAL_MODULES_DIR: ${EXTERNAL_MODULES_DIR}") - -string(REGEX MATCH "BUILD_FOR_BUNDLE" BUILD_FOR_BUNDLE "${CMAKE_CXX_FLAGS}") - -# It is important to distinguish between directory hierarchies -# in release and dev builds. Release contains .env -# in the root dir of the build, while dev build's current dir -# is status-react/desktop/bin, hence the need -# to jump two levels up. -# This is required by react-native-config library which references ENVFILE -# from its own CMakeLists.txt file, so it will read the value set here -if(${BUILD_FOR_BUNDLE} MATCHES "BUILD_FOR_BUNDLE") - set(ENVFILE "/.env") -else() - set(ENVFILE "/../../.env") -endif() - -foreach(external_module ${EXTERNAL_MODULES_DIR}) - message(STATUS "external_module: ${external_module}") - add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/../${external_module} ${CMAKE_CURRENT_BINARY_DIR}/${external_module}) -endforeach(external_module) - -add_subdirectory(reportApp) - -# Import any new Qt modules that have been added by external dependencies -import_qt_modules() - -# APPLICATION_MAIN_CPP_PATH contains absolute path to generated template copy of main.cpp for application executable -get_filename_component(APPLICATION_MAIN_CPP_PATH main.cpp ABSOLUTE) - -set(REACTQT_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../node_modules/react-native/React) -include_directories(${REACTQT_DIR}/Layout) -add_subdirectory(${REACTQT_DIR}Qt/runtime/src ${CMAKE_CURRENT_BINARY_DIR}/lib) -add_subdirectory(${REACTQT_DIR}Qt/application/src ${CMAKE_CURRENT_BINARY_DIR}/bin) - -if (Qt5_POSITION_INDEPENDENT_CODE) - SET(CMAKE_POSITION_INDEPENDENT_CODE ON) -endif(Qt5_POSITION_INDEPENDENT_CODE) - -target_sources(${APP_NAME} - PRIVATE - "${CMAKE_CURRENT_LIST_DIR}/appconfig.h" - "${CMAKE_CURRENT_LIST_DIR}/appconfig.cpp") - -#set(SOURCE_ROOT ${CMAKE_SOURCE_DIR}) -include(CompleteBundle) - -if (WIN32) - set(RUN_SCRIPT_FILE_NAME "run-app.bat") -else() - set(RUN_SCRIPT_FILE_NAME "run-app.sh") -endif() - -configure_file( - ${RUN_SCRIPT_FILE_NAME}.in - ${CMAKE_CURRENT_BINARY_DIR}/${RUN_SCRIPT_FILE_NAME} - @ONLY -) diff --git a/desktop/CMakeModules/CompleteBundle.cmake b/desktop/CMakeModules/CompleteBundle.cmake deleted file mode 100644 index 39151c73c4..0000000000 --- a/desktop/CMakeModules/CompleteBundle.cmake +++ /dev/null @@ -1,12 +0,0 @@ -if(APPLE) - set(SCRIPT CompleteBundleOSX) -elseif(WIN32) - set(SCRIPT CompleteBundleWin) -elseif(UNIX) - set(SCRIPT CompleteBundleLinux) -endif(APPLE) - -if(SCRIPT AND EXISTS ${CMAKE_SOURCE_DIR}/CMakeModules/${SCRIPT}.cmake.in) - configure_file(${CMAKE_SOURCE_DIR}/CMakeModules/${SCRIPT}.cmake.in ${SCRIPT}.cmake @ONLY) - include(${CMAKE_CURRENT_BINARY_DIR}/${SCRIPT}.cmake) -endif() diff --git a/desktop/CMakeModules/CompleteBundleWin.cmake.in b/desktop/CMakeModules/CompleteBundleWin.cmake.in deleted file mode 100644 index 7722cd4fcb..0000000000 --- a/desktop/CMakeModules/CompleteBundleWin.cmake.in +++ /dev/null @@ -1,62 +0,0 @@ -# windeployqt should be used here, but since we get the `Not implemented` error from it, we're trying to manually copy artifacts to output directory -set(TARGET_DIR "${@APP_NAME@_BINARY_DIR}") - -########################################################################################################## -# -# NOTE: Remember to reflect any changes on the setup generation procedure in /deployment/windows/nsis/setup.nsi -# -########################################################################################################## - -set(qtmodules Core Quick QuickTemplates2 QuickControls2 WebSockets Widgets Gui Network Svg Qml Concurrent) -if(USE_QTWEBKIT) - set(qtmodules ${qtmodules} Multimedia WebKit WebKitWidgets WebChannel) - - add_custom_command(TARGET @APP_NAME@ POST_BUILD - COMMAND ${CMAKE_COMMAND} -E copy_if_different - "@CONAN_BIN_DIRS_QT5-MXE@/QtWebProcess.exe" - ${TARGET_DIR} - BYPRODUCTS ${TARGET_DIR}/QtWebProcess.exe) -endif() -foreach(qtmodule ${qtmodules}) - message(STATUS "Copying ${qtmodule} module to ${TARGET_DIR}") - file(COPY "@CONAN_BIN_DIRS_QT5-MXE@/Qt5${qtmodule}.dll" DESTINATION "${TARGET_DIR}") -endforeach(qtmodule ${qtmodules}) -if(EXISTS "@QTROOT@/translations") - message(STATUS "Copying translations module to ${TARGET_DIR}") - file(COPY "@QTROOT@/translations" DESTINATION "${TARGET_DIR}") -endif() - -set(qtplugindirs "bearer" "platforms" "styles" "iconengines" "imageformats") -foreach(qtplugindir ${qtplugindirs}) - message(STATUS "Copying plugin ${qtplugindir} to ${TARGET_DIR}/${qtplugindir}") - file(COPY "@CONAN_BIN_DIRS_QT5-MXE@/../plugins/${qtplugindir}/" DESTINATION "${TARGET_DIR}/${qtplugindir}") -endforeach() - -set(qtqmldirs "QtQuick" "QtQuick.2" "QtGraphicalEffects" "QtWebSockets" "QtQml") -if(USE_QTWEBKIT) - set(qtqmldirs ${qtqmldirs} "QtWebKit" "QtWebChannel") -endif() -foreach(qtqmldir ${qtqmldirs}) - message(STATUS "Copying QML dir for ${qtqmldir} to ${TARGET_DIR}/${qtqmldir}") - file(COPY "@CONAN_BIN_DIRS_QT5-MXE@/../qml/${qtqmldir}/" DESTINATION "${TARGET_DIR}/${qtqmldir}") -endforeach() - -set(deps_qt5 "libpng16-16" "libharfbuzz-0" "zlib1" "libpcre2-16-0" - "libpcre-1" "libcrypto-1_1-x64" "libssl-1_1-x64" "libfreetype-6" - "libglib-2.0-0" "libstdc++-6" "libbz2" "libintl-8" "libiconv-2" - "icuin56" "icuuc56" "icudt56" "libjpeg-9" "libsqlite3-0" "libwebp-5" "libgcc_s_seh-1") -set(TOOLCHAIN_BINDIRS "@CONAN_BIN_DIRS_MXETOOLCHAIN-X86_64-W64-MINGW32@") -separate_arguments(TOOLCHAIN_BINDIRS) -foreach(lib ${deps_qt5}) - foreach(bindir ${TOOLCHAIN_BINDIRS}) - set(lib_full_path "${bindir}/${lib}.dll") - if(EXISTS "${lib_full_path}") - break() - endif() - endforeach() - if(NOT EXISTS "${lib_full_path}") - set(lib_full_path "@CONAN_BIN_DIRS_QT5-MXE@/${lib}.dll") - endif() - message(STATUS "Copying ${lib_full_path} to ${TARGET_DIR}") - file(COPY ${lib_full_path} DESTINATION ${TARGET_DIR}) -endforeach(lib ${deps_qt5}) diff --git a/desktop/CMakeModules/QtConfiguration.cmake b/desktop/CMakeModules/QtConfiguration.cmake deleted file mode 100644 index 47e756e20d..0000000000 --- a/desktop/CMakeModules/QtConfiguration.cmake +++ /dev/null @@ -1,86 +0,0 @@ -macro(import_qt_modules) - set(REQUIRED_QT_VERSION "5.9.1") - - set(QTCONFIGROOT ${QTROOT}/lib/cmake/Qt5) - - foreach(COMP ${USED_QT_MODULES}) - set(mod Qt5${COMP}) - - # look for the config files in the QtConfigRoot defined above - set(${mod}_DIR ${QTCONFIGROOT}${COMP}) - - # look for the actual package - find_package(${mod} ${REQUIRED_QT_VERSION} REQUIRED) - - #message("${mod}_INCLUDE_DIRS: include_directories(${${mod}_INCLUDE_DIRS})") - include_directories(${${mod}_INCLUDE_DIRS}) - if (${COMP} STREQUAL "Quick") - # We need to include the private headers for QZipWriter. If in the future we can't use that class anymore, we can always resort to the QuaZIP OSS library - include_directories(${${mod}_PRIVATE_INCLUDE_DIRS}) - endif() - - list(APPEND QT5_LIBRARIES ${${mod}_LIBRARIES}) - list(APPEND QT5_CFLAGS ${${mod}_EXECUTABLE_COMPILE_FLAGS}) - endforeach(COMP ${USED_QT_MODULES}) -endmacro(import_qt_modules) - -if(WIN32) - # Download automatically, you can also just copy the conan.cmake file - # TODO: Create packages of qt5 for Linux and MacOS too, so that we can rely strictly on this branch of code - if(NOT EXISTS "${CMAKE_BINARY_DIR}/conan.cmake") - message(STATUS "Downloading conan.cmake from https://github.com/conan-io/cmake-conan") - file(DOWNLOAD "https://raw.githubusercontent.com/conan-io/cmake-conan/9cc97acda619b7917f140415241785a864482b11/conan.cmake" - "${CMAKE_BINARY_DIR}/conan.cmake") - endif() - - include(${CMAKE_BINARY_DIR}/conan.cmake) - - conan_check() - - if(USE_QTWEBKIT) - set(_QT_PACKAGE_OPTIONS "qt5-mxe:webkit=True") - endif() - conan_cmake_run(REQUIRES qt5-mxe/5.11.2@status-im/stable - PROFILE ../node_modules/status-conan/profiles/status-mingw32-x86_64 - SETTINGS "qt5-mxe:os=Windows" "qt5-mxe:arch=x86_64" - OPTIONS ${_QT_PACKAGE_OPTIONS} - BUILD never) - - set(QTROOT "${CONAN_QT5-MXE_ROOT}") -else(WIN32) - set(QTROOT "$ENV{QT_PATH}") -endif(WIN32) - -if(NOT EXISTS ${QTROOT}/bin/qt.conf) - if(EXISTS ${QTROOT}/gcc_64/bin/qt.conf) - set(QTROOT "${QTROOT}/gcc_64") - elseif(EXISTS ${QTROOT}/clang_64/bin/qt.conf) - set(QTROOT "${QTROOT}/clang_64") - else() - message(FATAL_ERROR "Could not find qt.conf in ${QTROOT}/bin nor in ${QTROOT}/clang_64/bin nor in ${QTROOT}/gcc_64/bin. Is QTROOT correctly defined?") - endif() -endif() - -if(WIN32) - set(WINARCHSTR ARCHSTR windows-x86_64) -endif(WIN32) - -message(STATUS "Qt root directory: ${QTROOT}") - -list(APPEND CMAKE_FIND_ROOT_PATH ${QTROOT}) -list(APPEND CMAKE_PREFIX_PATH ${QTROOT}) -include_directories(${QTROOT}/include) - -import_qt_modules() - -if(QT5_CFLAGS) - list(REMOVE_DUPLICATES QT5_CFLAGS) - if(WIN32) - list(REMOVE_ITEM QT5_CFLAGS -fPIC) - endif(WIN32) -endif(QT5_CFLAGS) - -message(STATUS "Qt version: ${Qt5Core_VERSION_STRING}") -set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${QT5_CFLAGS}") - -set(CMAKE_REQUIRED_LIBRARIES ${QT5_LIBRARIES}) diff --git a/desktop/Toolchain-Ubuntu-mingw64.cmake b/desktop/Toolchain-Ubuntu-mingw64.cmake deleted file mode 100644 index 1ca2df5a48..0000000000 --- a/desktop/Toolchain-Ubuntu-mingw64.cmake +++ /dev/null @@ -1,19 +0,0 @@ -# Toolchain file for building for Windows from an Ubuntu Linux system. -# -# Typical usage: -# *) install cross compiler: `sudo apt-get install mingw-w64 g++-mingw-w64` -# *) cmake -DCMAKE_TOOLCHAIN_FILE=~/Toolchain-Ubuntu-mingw64.cmake .. - -message(STATUS "Cross-compiling for Windows") - -set(CMAKE_SYSTEM_NAME Windows) -if(NOT "${CMAKE_HOST_SYSTEM_NAME}" STREQUAL "Linux") - message(FATAL_ERROR "Can only cross-compile to Windows from Linux") -endif() - -set(USE_QTWEBKIT OFF) - -set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/toolchain/") -include(conanbuildinfo) -#conan_basic_setup() -conan_global_flags() diff --git a/desktop/appconfig.cpp b/desktop/appconfig.cpp deleted file mode 100644 index 7a90204414..0000000000 --- a/desktop/appconfig.cpp +++ /dev/null @@ -1,76 +0,0 @@ -#include "appconfig.h" - -#include - -#include - -const QStringList loggingCategories = - {"UIManager", - "Flexbox", - "WebSocketModule", - "Networking", - "ViewManager", - "RCTNotification", - "default", - "RCTStatus", - "jsserver", - "status"}; - -const QString SETTINGS_GROUP_NAME = "im/status"; -const QString AppConfig::LOGGING_ENABLED = "logging_enabled"; - -Q_LOGGING_CATEGORY(APPCONFIG, "AppConfig") - -AppConfig AppConfig::appConfig; - -AppConfig::AppConfig() -: settings("Status.im", "StatusDesktop") { - settings.beginGroup(SETTINGS_GROUP_NAME); - - // Set default values - if (settings.value(LOGGING_ENABLED).isNull()) { - settings.setValue(LOGGING_ENABLED, false); - } - - QStringList keys = settings.allKeys(); - for (int i = 0; i < keys.size(); ++i) { - processFx(keys[i], settings.value(keys[i])); - } -} - -AppConfig& AppConfig::inst() { - return appConfig; -} - -QVariant AppConfig::getValue(const QString& name) const { - return settings.value(name); -} - -void AppConfig::setValue(const QString& name, const QVariant& value) { - processFx(name, value); - settings.setValue(name, value); -} - -// This fn is for processing side-effects of a particular value -void AppConfig::processFx(const QString& name, const QVariant& value) const { - //qCDebug(APPCONFIG) << "### processFx group" << settings.group() << " " << name << ": " << value; - if (name == LOGGING_ENABLED) { - bool enabled = value.toBool(); - //qCDebug(APPCONFIG) << "### processFx" << name << ": " << value << ": " << enabled; - QLoggingCategory::setFilterRules(getLoggingFilterRules(enabled)); - } -} - -QString AppConfig::getLoggingFilterRules(bool enabled) const { - if (enabled) { - return "UIManager=false\nFlexbox=false\nViewManager=false\nNetworking=false\nWebSocketModule=false"; - } - else { - QString filterRules; - for (int i = 0; i < loggingCategories.size(); ++i) { - filterRules += (loggingCategories.at(i) + "=false\n"); - } - return filterRules; - } -} - diff --git a/desktop/appconfig.h b/desktop/appconfig.h deleted file mode 100644 index 812fc75935..0000000000 --- a/desktop/appconfig.h +++ /dev/null @@ -1,31 +0,0 @@ -#ifndef APPCONFIG_H -#define APPCONFIG_H - -#include -#include -#include - -// This class is intended to store app configuration -// modifiable from JS side -// Currently, only logging-related settings are here -// that are used by react-native-desktop-config module -class AppConfig { -public: - - static AppConfig& inst(); - - QVariant getValue(const QString& name) const; - void setValue(const QString& name, const QVariant& value); - - const static QString LOGGING_ENABLED; -private: - AppConfig(); - - static AppConfig appConfig; - QSettings settings; - - QString getLoggingFilterRules(bool enabled) const; - void processFx(const QString& name, const QVariant& value) const; -}; -#endif // APPCONFIG_H - diff --git a/desktop/build.bat b/desktop/build.bat deleted file mode 100644 index 9158b84b08..0000000000 --- a/desktop/build.bat +++ /dev/null @@ -1,36 +0,0 @@ -@rem Copyright (c) 2017-present, Status Research and Development GmbH. -@rem All rights reserved. -@rem -@rem This source code is licensed under the BSD-style license found in the -@rem LICENSE file in the root directory of this source tree. An additional grant -@rem of patent rights can be found in the PATENTS file in the same directory. - -@echo off -setlocal EnableDelayedExpansion - -set "option=" -for %%a in (%*) do ( - if not defined option ( - set arg=%%a - if "!arg:~0,1!" equ "-" set "option=!arg!" - ) else ( - set "option!option!=%%a" - set "option=" - ) -) - -SET option -@echo on - -echo "build.bat external modules paths: "%option-e% -echo "build.bat JS bundle path: "%option-j% -echo "build.bat desktop fonts: "%option-f% -echo "build.bat desktop images: "%option-i% -echo "build.bat cmake generator: "%option-g% - -@rem Workaround -@rem rm -rf CMakeFiles CMakeCache.txt cmake_install.cmake Makefile - -@rem Build project -echo %CD% -cmake -DCMAKE_BUILD_TYPE=Debug -G %option-g% -DEXTERNAL_MODULES_DIR=%option-e% -DJS_BUNDLE_PATH=%option-j% -DDESKTOP_FONTS=%option-f% -DDESKTOP_IMAGES=%option-i% . && cmake --build . diff --git a/desktop/build.sh b/desktop/build.sh deleted file mode 100755 index 0767e2cc66..0000000000 --- a/desktop/build.sh +++ /dev/null @@ -1,49 +0,0 @@ -#!/usr/bin/env bash - -# Copyright (C) 2016, Canonical Ltd. -# All rights reserved. - -# This source code is licensed under the BSD-style license found in the -# LICENSE file in the root directory of this source tree. An additional grant -# of patent rights can be found in the PATENTS file in the same directory. - -# XXX: Don't move this script -cd $(dirname $0) - -while (( "$#" )); do -if [[ $1 == "-e" ]]; then - shift - ExternalModulesPaths="$1" -fi -if [[ $1 == "-j" ]]; then - shift - JsBundlePath="$1" -fi -if [[ $1 == "-f" ]]; then - shift - desktopFonts="$1" -fi -if [[ $1 == "-i" ]]; then - shift - desktopImages="$1" -fi -shift -done - -echo "build.sh external modules paths: "$ExternalModulesPaths -echo "build.sh JS bundle path: "$JsBundlePath -echo "build.sh desktop fonts: "$desktopFonts -echo "build.sh desktop images: "$desktopImages - -# Workaround -rm -rf CMakeFiles CMakeCache.txt cmake_install.cmake Makefile - -# Build project -cmake -DCMAKE_BUILD_TYPE=Debug \ - -DEXTERNAL_MODULES_DIR="$ExternalModulesPaths" \ - -DJS_BUNDLE_PATH="$JsBundlePath" \ - -DDESKTOP_FONTS="$desktopFonts" \ - -DDESKTOP_IMAGES="$desktopImages" \ - -DCMAKE_INSTALL_COMPONENT='' \ - . && \ -make diff --git a/desktop/js_files/package.json b/desktop/js_files/package.json deleted file mode 100644 index b3dbae5f23..0000000000 --- a/desktop/js_files/package.json +++ /dev/null @@ -1,216 +0,0 @@ -{ - "name": "StatusIm-Desktop", - "version": "0.0.1", - "private": true, - "scripts": { - "start": "node node_modules/react-native/local-cli/cli.js start", - "prepare": "patch-package" - }, - "dependencies": { - "assert": "^1.4.1", - "bignumber.js": "git+https://github.com/status-im/bignumber.js.git#v4.0.2-status", - "buffer": "^3.6.0", - "chance": "^1.1.3", - "create-react-class": "^15.6.2", - "emojilib": "^2.2.9", - "eth-phishing-detect": "^1.1.13", - "events": "^1.1.1", - "functional-red-black-tree": "^1.0.1", - "google-breakpad": "git+https://github.com/status-im/google-breakpad.git#v0.9.0", - "hi-base32": "^0.5.0", - "i18n-js": "^3.5.0", - "identicon.js": "git+https://github.com/status-im/identicon.js.git#v1.2.1-status", - "metro": "^0.48.1", - "nfc-react-native": "git+https://github.com/status-im/nfc-react-native.git#v0.3.8-status", - "qrcode": "^1.4.4", - "react": "^16.12.0", - "react-dom": "^16.12.0", - "react-native": "git+https://github.com/status-im/react-native-desktop.git#v0.57.8_11", - "react-native-background-timer": "^2.0.0", - "react-native-camera": "^3.9.0", - "react-native-config": "git+https://github.com/status-im/react-native-config.git#v0.11.2-status", - "react-native-dialogs": "^0.0.20", - "react-native-fetch-polyfill": "^1.1.2", - "react-native-fs": "git+https://github.com/status-im/react-native-fs.git#v2.9.7-status", - "react-native-gesture-handler": "^1.5.0", - "react-native-image-crop-picker": "^0.26.1", - "react-native-image-resizer": "^1.1.0", - "react-native-keychain": "git+https://github.com/status-im/react-native-keychain.git#v.3.0.0-4-status", - "react-native-languages": "git+https://github.com/status-im/react-native-languages.git#v0.1.1-status", - "react-native-navigation-twopane": "git+https://github.com/status-im/react-native-navigation-twopane.git#v0.0.2-status", - "react-native-os": "^1.1.0", - "react-native-splash-screen": "^3.0.6", - "react-native-webview-bridge": "git+https://github.com/status-im/react-native-webview-bridge.git#0.33.16-status-rn049-desktop", - "react-navigation": "^3.11.0", - "status-conan": "git+https://github.com/status-im/status-conan.git#v1.0.0", - "web3-utils": "^1.2.4" - }, - "devDependencies": { - "@babel/core": "^7.7.2", - "@babel/generator": "^7.7.2", - "@babel/helper-builder-react-jsx": "^7.7.0", - "@babel/plugin-transform-block-scoping": "7.0.0", - "@babel/preset-env": "^7.7.1", - "@babel/register": "^7.7.0", - "babel-preset-react-native": "^5.0.2", - "coveralls": "^3.0.7", - "metro-react-native-babel-preset": "^0.57.0", - "nyc": "^14.1.1", - "patch-package": "^5.1.1", - "rn-snoopy": "git+https://github.com/status-im/rn-snoopy.git#v2.0.2-status" - }, - "optionalDependencies": { - "appdmg": "^0.6.0" - }, - "desktopExternalModules": [ - "node_modules/react-native-languages/desktop", - "node_modules/react-native-config/desktop", - "node_modules/react-native-fs/desktop", - "node_modules/react-native-webview-bridge/desktop", - "node_modules/react-native-keychain/desktop", - "modules/react-native-status/desktop", - "modules/react-native-desktop-linking/desktop", - "modules/react-native-desktop-menu/desktop", - "modules/react-native-desktop-config/desktop", - "modules/react-native-desktop-shortcuts/desktop", - "modules/react-native-desktop-notification/desktop", - "modules/react-native-desktop-gesture-handler/desktop", - "node_modules/google-breakpad" - ], - "desktopFonts": [ - "../../../../../resources/fonts/Inter-BlackItalic.otf", - "../../../../../resources/fonts/Inter-Black.otf", - "../../../../../resources/fonts/Inter-BoldItalic.otf", - "../../../../../resources/fonts/Inter-Bold.otf", - "../../../../../resources/fonts/Inter-ExtraBoldItalic.otf", - "../../../../../resources/fonts/Inter-ExtraBold.otf", - "../../../../../resources/fonts/Inter-ExtraLight-BETA.otf", - "../../../../../resources/fonts/Inter-ExtraLightItalic-BETA.otf", - "../../../../../resources/fonts/Inter-Italic.otf", - "../../../../../resources/fonts/Inter-Light-BETA.otf", - "../../../../../resources/fonts/Inter-LightItalic-BETA.otf", - "../../../../../resources/fonts/Inter-MediumItalic.otf", - "../../../../../resources/fonts/Inter-Medium.otf", - "../../../../../resources/fonts/Inter-Regular.otf", - "../../../../../resources/fonts/Inter-SemiBoldItalic.otf", - "../../../../../resources/fonts/Inter-SemiBold.otf", - "../../../../../resources/fonts/Inter-Thin-BETA.otf", - "../../../../../resources/fonts/Inter-ThinItalic-BETA.otf" - ], - "desktopImages": [ - "../../../../../desktop/resources/add.png", - "../../../../../desktop/resources/address.png", - "../../../../../desktop/resources/add_contact.png", - "../../../../../desktop/resources/arrow_left.png", - "../../../../../desktop/resources/arrow_right.png", - "../../../../../desktop/resources/arrow_up.png", - "../../../../../desktop/resources/back.png", - "../../../../../desktop/resources/backspace.png", - "../../../../../desktop/resources/bell.png", - "../../../../../desktop/resources/browser.png", - "../../../../../desktop/resources/camera.png", - "../../../../../desktop/resources/cancel.png", - "../../../../../desktop/resources/change.png", - "../../../../../desktop/resources/check.png", - "../../../../../desktop/resources/close.png", - "../../../../../desktop/resources/commands.png", - "../../../../../desktop/resources/copy.png", - "../../../../../desktop/resources/corner_left_bottom.png", - "../../../../../desktop/resources/corner_left_top.png", - "../../../../../desktop/resources/corner_right_bottom.png", - "../../../../../desktop/resources/corner_right_top.png", - "../../../../../desktop/resources/dapp.png", - "../../../../../desktop/resources/delete.png", - "../../../../../desktop/resources/desktop.png", - "../../../../../desktop/resources/download.png", - "../../../../../desktop/resources/dropdown.png", - "../../../../../desktop/resources/dropdown_up.png", - "../../../../../desktop/resources/edit.png", - "../../../../../desktop/resources/filter.png", - "../../../../../desktop/resources/fingerprint.png", - "../../../../../desktop/resources/flash.png", - "../../../../../desktop/resources/flash_active.png", - "../../../../../desktop/resources/group_chat.png", - "../../../../../desktop/resources/help.png", - "../../../../../desktop/resources/history.png", - "../../../../../desktop/resources/home.png", - "../../../../../desktop/resources/home_1.png", - "../../../../../desktop/resources/icon_action_back.png", - "../../../../../desktop/resources/icon_action_forward.png", - "../../../../../desktop/resources/icon_action_fullscreen_collapse.png", - "../../../../../desktop/resources/icon_action_fullscreen_expand.png", - "../../../../../desktop/resources/icon_arrow_top.png", - "../../../../../desktop/resources/icon_avatar.png", - "../../../../../desktop/resources/icon_check_on.png", - "../../../../../desktop/resources/icon_close_light_gray.png", - "../../../../../desktop/resources/icon_forward_gray.png", - "../../../../../desktop/resources/icon_lock_gray.png", - "../../../../../desktop/resources/icon_lock_white.png", - "../../../../../desktop/resources/icon_menu_group.png", - "../../../../../desktop/resources/icon_money_white.png", - "../../../../../desktop/resources/icon_muted.png", - "../../../../../desktop/resources/icon_notifications_on.png", - "../../../../../desktop/resources/icon_phone_white.png", - "../../../../../desktop/resources/ic_background.png", - "../../../../../desktop/resources/ic_foreground.png", - "../../../../../desktop/resources/ic_stat_status_notification.png", - "../../../../../desktop/resources/info.png", - "../../../../../desktop/resources/in_contacts.png", - "../../../../../desktop/resources/keycard.png", - "../../../../../desktop/resources/keycard_logo.png", - "../../../../../desktop/resources/language.png", - "../../../../../desktop/resources/launch_logo.png", - "../../../../../desktop/resources/link.png", - "../../../../../desktop/resources/logo.png", - "../../../../../desktop/resources/log_out.png", - "../../../../../desktop/resources/mailserver.png", - "../../../../../desktop/resources/make_admin.png", - "../../../../../desktop/resources/max.png", - "../../../../../desktop/resources/message.png", - "../../../../../desktop/resources/mobile.png", - "../../../../../desktop/resources/more.png", - "../../../../../desktop/resources/network.png", - "../../../../../desktop/resources/next.png", - "../../../../../desktop/resources/notification.png", - "../../../../../desktop/resources/one_on_one_chat.png", - "../../../../../desktop/resources/password.png", - "../../../../../desktop/resources/paste.png", - "../../../../../desktop/resources/photo.png", - "../../../../../desktop/resources/profile.png", - "../../../../../desktop/resources/public_chat.png", - "../../../../../desktop/resources/qr.png", - "../../../../../desktop/resources/receive.png", - "../../../../../desktop/resources/refresh.png", - "../../../../../desktop/resources/remove_contact.png", - "../../../../../desktop/resources/reply.png", - "../../../../../desktop/resources/rotate_camera.png", - "../../../../../desktop/resources/search.png", - "../../../../../desktop/resources/security.png", - "../../../../../desktop/resources/send.png", - "../../../../../desktop/resources/settings.png", - "../../../../../desktop/resources/settings_advanced.png", - "../../../../../desktop/resources/share.png", - "../../../../../desktop/resources/stickers.png", - "../../../../../desktop/resources/text.png", - "../../../../../desktop/resources/tiny_arrow_down.png", - "../../../../../desktop/resources/tiny_check.png", - "../../../../../desktop/resources/tiny_clear.png", - "../../../../../desktop/resources/tiny_edit.png", - "../../../../../desktop/resources/tiny_external.png", - "../../../../../desktop/resources/tiny_group.png", - "../../../../../desktop/resources/tiny_lock.png", - "../../../../../desktop/resources/tiny_lock_broken.png", - "../../../../../desktop/resources/tiny_new_contact.png", - "../../../../../desktop/resources/tiny_pending.png", - "../../../../../desktop/resources/tiny_public.png", - "../../../../../desktop/resources/tiny_settings.png", - "../../../../../desktop/resources/tiny_tribute_to_talk.png", - "../../../../../desktop/resources/tribute_to_talk.png", - "../../../../../desktop/resources/two_arrows.png", - "../../../../../desktop/resources/username.png", - "../../../../../desktop/resources/user_profile.png", - "../../../../../desktop/resources/user_profile_1.png", - "../../../../../desktop/resources/wallet.png", - "../../../../../desktop/resources/warning.png" - ] -} diff --git a/desktop/js_files/yarn.lock b/desktop/js_files/yarn.lock deleted file mode 100644 index 460788d77d..0000000000 --- a/desktop/js_files/yarn.lock +++ /dev/null @@ -1,8133 +0,0 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. -# yarn lockfile v1 - - -"@babel/code-frame@7.0.0-beta.47": - version "7.0.0-beta.47" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.0.0-beta.47.tgz#d18c2f4c4ba8d093a2bcfab5616593bfe2441a27" - integrity sha512-W7IeG4MoVf4oUvWfHUx9VG9if3E0xSUDf1urrnNYtC2ow1dz2ptvQ6YsJfyVXDuPTFXz66jkHhzMW7a5Eld7TA== - dependencies: - "@babel/highlight" "7.0.0-beta.47" - -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.5.5": - version "7.5.5" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.5.5.tgz#bc0782f6d69f7b7d49531219699b988f669a8f9d" - integrity sha512-27d4lZoomVyo51VegxI20xZPuSHusqbQag/ztrBC7wegWoQ1nLREPVSKSW8byhTlzTKyNE4ifaTA6lCp7JjpFw== - dependencies: - "@babel/highlight" "^7.0.0" - -"@babel/core@^7.0.0": - version "7.6.4" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.6.4.tgz#6ebd9fe00925f6c3e177bb726a188b5f578088ff" - integrity sha512-Rm0HGw101GY8FTzpWSyRbki/jzq+/PkNQJ+nSulrdY6gFGOsNseCqD6KHRYe2E+EdzuBdr2pxCp6s4Uk6eJ+XQ== - dependencies: - "@babel/code-frame" "^7.5.5" - "@babel/generator" "^7.6.4" - "@babel/helpers" "^7.6.2" - "@babel/parser" "^7.6.4" - "@babel/template" "^7.6.0" - "@babel/traverse" "^7.6.3" - "@babel/types" "^7.6.3" - convert-source-map "^1.1.0" - debug "^4.1.0" - json5 "^2.1.0" - lodash "^4.17.13" - resolve "^1.3.2" - semver "^5.4.1" - source-map "^0.5.0" - -"@babel/core@^7.7.2": - version "7.7.2" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.7.2.tgz#ea5b99693bcfc058116f42fa1dd54da412b29d91" - integrity sha512-eeD7VEZKfhK1KUXGiyPFettgF3m513f8FoBSWiQ1xTvl1RAopLs42Wp9+Ze911I6H0N9lNqJMDgoZT7gHsipeQ== - dependencies: - "@babel/code-frame" "^7.5.5" - "@babel/generator" "^7.7.2" - "@babel/helpers" "^7.7.0" - "@babel/parser" "^7.7.2" - "@babel/template" "^7.7.0" - "@babel/traverse" "^7.7.2" - "@babel/types" "^7.7.2" - convert-source-map "^1.7.0" - debug "^4.1.0" - json5 "^2.1.0" - lodash "^4.17.13" - resolve "^1.3.2" - semver "^5.4.1" - source-map "^0.5.0" - -"@babel/generator@7.0.0-beta.47": - version "7.0.0-beta.47" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.0.0-beta.47.tgz#1835709f377cc4d2a4affee6d9258a10bbf3b9d1" - integrity sha512-fJP+9X+gqgTTZzTqrKJHwebPwt6S/e/4YuyRyKyWHAIirGgUwjRoZgbFci24wwGYMJW7nlkCSwWG7QvCVsG0eg== - dependencies: - "@babel/types" "7.0.0-beta.47" - jsesc "^2.5.1" - lodash "^4.17.5" - source-map "^0.5.0" - trim-right "^1.0.1" - -"@babel/generator@^7.0.0", "@babel/generator@^7.4.0", "@babel/generator@^7.6.3", "@babel/generator@^7.6.4": - version "7.6.4" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.6.4.tgz#a4f8437287bf9671b07f483b76e3bb731bc97671" - integrity sha512-jsBuXkFoZxk0yWLyGI9llT9oiQ2FeTASmRFE32U+aaDTfoE92t78eroO7PTpU/OrYq38hlcDM6vbfLDaOLy+7w== - dependencies: - "@babel/types" "^7.6.3" - jsesc "^2.5.1" - lodash "^4.17.13" - source-map "^0.5.0" - -"@babel/generator@^7.7.2": - version "7.7.2" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.7.2.tgz#2f4852d04131a5e17ea4f6645488b5da66ebf3af" - integrity sha512-WthSArvAjYLz4TcbKOi88me+KmDJdKSlfwwN8CnUYn9jBkzhq0ZEPuBfkAWIvjJ3AdEV1Cf/+eSQTnp3IDJKlQ== - dependencies: - "@babel/types" "^7.7.2" - jsesc "^2.5.1" - lodash "^4.17.13" - source-map "^0.5.0" - -"@babel/helper-annotate-as-pure@7.0.0-beta.47": - version "7.0.0-beta.47" - resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.0.0-beta.47.tgz#354fb596055d9db369211bf075f0d5e93904d6f6" - integrity sha512-Pjxb/PrxyKWc7jcAXlawvNAQMxxY+tSSNC5wxJstJjpO10mocmGzBOqNYjxdvVhMb3d0BEPQ8mR+D65fFpZ+TA== - dependencies: - "@babel/types" "7.0.0-beta.47" - -"@babel/helper-annotate-as-pure@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.0.0.tgz#323d39dd0b50e10c7c06ca7d7638e6864d8c5c32" - integrity sha512-3UYcJUj9kvSLbLbUIfQTqzcy5VX7GRZ/CCDrnOaZorFFM01aXp1+GJwuFGV4NDDoAS+mOUyHcO6UD/RfqOks3Q== - dependencies: - "@babel/types" "^7.0.0" - -"@babel/helper-annotate-as-pure@^7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.7.0.tgz#efc54032d43891fe267679e63f6860aa7dbf4a5e" - integrity sha512-k50CQxMlYTYo+GGyUGFwpxKVtxVJi9yh61sXZji3zYHccK9RYliZGSTOgci85T+r+0VFN2nWbGM04PIqwfrpMg== - dependencies: - "@babel/types" "^7.7.0" - -"@babel/helper-builder-binary-assignment-operator-visitor@7.0.0-beta.47": - version "7.0.0-beta.47" - resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.0.0-beta.47.tgz#d5917c29ee3d68abc2c72f604bc043f6e056e907" - integrity sha512-nv8d6TcDBb1CJMQzwab/e0rqyqoP9d2AQBjr4GdSiVRpJX4aiLEiLBm2XprdEb/sVIRmmBnVxPXJaHDsS/K2fw== - dependencies: - "@babel/helper-explode-assignable-expression" "7.0.0-beta.47" - "@babel/types" "7.0.0-beta.47" - -"@babel/helper-builder-binary-assignment-operator-visitor@^7.1.0": - version "7.1.0" - resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.1.0.tgz#6b69628dfe4087798e0c4ed98e3d4a6b2fbd2f5f" - integrity sha512-qNSR4jrmJ8M1VMM9tibvyRAHXQs2PmaksQF7c1CGJNipfe3D8p+wgNwgso/P2A2r2mdgBWAXljNWR0QRZAMW8w== - dependencies: - "@babel/helper-explode-assignable-expression" "^7.1.0" - "@babel/types" "^7.0.0" - -"@babel/helper-builder-react-jsx@7.0.0-beta.47": - version "7.0.0-beta.47" - resolved "https://registry.yarnpkg.com/@babel/helper-builder-react-jsx/-/helper-builder-react-jsx-7.0.0-beta.47.tgz#e39bbce315743044c0d64b31f82f20600f761729" - integrity sha512-oBGX/MyT4kNGuINK2k/KLHD77Ih1oTROtoxnV3uAPS9rLYhmZn3W8qy2L4bbyMwQ89nVSM427b0bTTXUEEReXA== - dependencies: - "@babel/types" "7.0.0-beta.47" - esutils "^2.0.0" - -"@babel/helper-builder-react-jsx@^7.3.0": - version "7.3.0" - resolved "https://registry.yarnpkg.com/@babel/helper-builder-react-jsx/-/helper-builder-react-jsx-7.3.0.tgz#a1ac95a5d2b3e88ae5e54846bf462eeb81b318a4" - integrity sha512-MjA9KgwCuPEkQd9ncSXvSyJ5y+j2sICHyrI0M3L+6fnS4wMSNDc1ARXsbTfbb2cXHn17VisSnU/sHFTCxVxSMw== - dependencies: - "@babel/types" "^7.3.0" - esutils "^2.0.0" - -"@babel/helper-builder-react-jsx@^7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/helper-builder-react-jsx/-/helper-builder-react-jsx-7.7.0.tgz#c6b8254d305bacd62beb648e4dea7d3ed79f352d" - integrity sha512-LSln3cexwInTMYYoFeVLKnYPPMfWNJ8PubTBs3hkh7wCu9iBaqq1OOyW+xGmEdLxT1nhsl+9SJ+h2oUDYz0l2A== - dependencies: - "@babel/types" "^7.7.0" - esutils "^2.0.0" - -"@babel/helper-call-delegate@7.0.0-beta.47": - version "7.0.0-beta.47" - resolved "https://registry.yarnpkg.com/@babel/helper-call-delegate/-/helper-call-delegate-7.0.0-beta.47.tgz#96b7804397075f722a4030d3876f51ec19d8829b" - integrity sha512-Rx9TRmCCEP0pWau9gfR6ubcbbX3nVc4ImNY143ftC70jrKdSv5rS20yz2cmCilDzhexwGZQ3PFwOLKe3C/5aEg== - dependencies: - "@babel/helper-hoist-variables" "7.0.0-beta.47" - "@babel/traverse" "7.0.0-beta.47" - "@babel/types" "7.0.0-beta.47" - -"@babel/helper-call-delegate@^7.4.4": - version "7.4.4" - resolved "https://registry.yarnpkg.com/@babel/helper-call-delegate/-/helper-call-delegate-7.4.4.tgz#87c1f8ca19ad552a736a7a27b1c1fcf8b1ff1f43" - integrity sha512-l79boDFJ8S1c5hvQvG+rc+wHw6IuH7YldmRKsYtpbawsxURu/paVy57FZMomGK22/JckepaikOkY0MoAmdyOlQ== - dependencies: - "@babel/helper-hoist-variables" "^7.4.4" - "@babel/traverse" "^7.4.4" - "@babel/types" "^7.4.4" - -"@babel/helper-create-class-features-plugin@^7.5.5": - version "7.5.5" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.5.5.tgz#401f302c8ddbc0edd36f7c6b2887d8fa1122e5a4" - integrity sha512-ZsxkyYiRA7Bg+ZTRpPvB6AbOFKTFFK4LrvTet8lInm0V468MWCaSYJE+I7v2z2r8KNLtYiV+K5kTCnR7dvyZjg== - dependencies: - "@babel/helper-function-name" "^7.1.0" - "@babel/helper-member-expression-to-functions" "^7.5.5" - "@babel/helper-optimise-call-expression" "^7.0.0" - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-replace-supers" "^7.5.5" - "@babel/helper-split-export-declaration" "^7.4.4" - -"@babel/helper-create-regexp-features-plugin@^7.7.0": - version "7.7.2" - resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.7.2.tgz#6f20443778c8fce2af2ff4206284afc0ced65db6" - integrity sha512-pAil/ZixjTlrzNpjx+l/C/wJk002Wo7XbbZ8oujH/AoJ3Juv0iN/UTcPUHXKMFLqsfS0Hy6Aow8M31brUYBlQQ== - dependencies: - "@babel/helper-regex" "^7.4.4" - regexpu-core "^4.6.0" - -"@babel/helper-define-map@7.0.0-beta.47": - version "7.0.0-beta.47" - resolved "https://registry.yarnpkg.com/@babel/helper-define-map/-/helper-define-map-7.0.0-beta.47.tgz#43a9def87c5166dc29630d51b3da9cc4320c131c" - integrity sha512-pLB9RY7GZKcc/frzgfDY/HwdqxWPe60qMAvNUef1V1bDZ8i4AUgxAANgltFzj61t100WGhqaS0xGkALD+9VA+g== - dependencies: - "@babel/helper-function-name" "7.0.0-beta.47" - "@babel/types" "7.0.0-beta.47" - lodash "^4.17.5" - -"@babel/helper-define-map@^7.5.5": - version "7.5.5" - resolved "https://registry.yarnpkg.com/@babel/helper-define-map/-/helper-define-map-7.5.5.tgz#3dec32c2046f37e09b28c93eb0b103fd2a25d369" - integrity sha512-fTfxx7i0B5NJqvUOBBGREnrqbTxRh7zinBANpZXAVDlsZxYdclDp467G1sQ8VZYMnAURY3RpBUAgOYT9GfzHBg== - dependencies: - "@babel/helper-function-name" "^7.1.0" - "@babel/types" "^7.5.5" - lodash "^4.17.13" - -"@babel/helper-define-map@^7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/helper-define-map/-/helper-define-map-7.7.0.tgz#60b0e9fd60def9de5054c38afde8c8ee409c7529" - integrity sha512-kPKWPb0dMpZi+ov1hJiwse9dWweZsz3V9rP4KdytnX1E7z3cTNmFGglwklzFPuqIcHLIY3bgKSs4vkwXXdflQA== - dependencies: - "@babel/helper-function-name" "^7.7.0" - "@babel/types" "^7.7.0" - lodash "^4.17.13" - -"@babel/helper-explode-assignable-expression@7.0.0-beta.47": - version "7.0.0-beta.47" - resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.0.0-beta.47.tgz#56b688e282a698f4d1cf135453a11ae8af870a19" - integrity sha512-1mwk27zmhSuMUcVWxw5ZKiPYfuWXviZNqgA4OvFBloPf9R+dKDhNgP2uUrkHh68ltVVc3Bup1nsbd/2KM5AxEw== - dependencies: - "@babel/traverse" "7.0.0-beta.47" - "@babel/types" "7.0.0-beta.47" - -"@babel/helper-explode-assignable-expression@^7.1.0": - version "7.1.0" - resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.1.0.tgz#537fa13f6f1674df745b0c00ec8fe4e99681c8f6" - integrity sha512-NRQpfHrJ1msCHtKjbzs9YcMmJZOg6mQMmGRB+hbamEdG5PNpaSm95275VD92DvJKuyl0s2sFiDmMZ+EnnvufqA== - dependencies: - "@babel/traverse" "^7.1.0" - "@babel/types" "^7.0.0" - -"@babel/helper-function-name@7.0.0-beta.47": - version "7.0.0-beta.47" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.0.0-beta.47.tgz#8057d63e951e85c57c02cdfe55ad7608d73ffb7d" - integrity sha512-0LSvt95XCYaOrDA5K68KkTyldKXizDwBnKACdYzQszp1GdbtzmSeGwFU5Ecw86fU6bkYXtDvkFTOQwk/WQSJPw== - dependencies: - "@babel/helper-get-function-arity" "7.0.0-beta.47" - "@babel/template" "7.0.0-beta.47" - "@babel/types" "7.0.0-beta.47" - -"@babel/helper-function-name@^7.1.0": - version "7.1.0" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz#a0ceb01685f73355d4360c1247f582bfafc8ff53" - integrity sha512-A95XEoCpb3TO+KZzJ4S/5uW5fNe26DjBGqf1o9ucyLyCmi1dXq/B3c8iaWTfBk3VvetUxl16e8tIrd5teOCfGw== - dependencies: - "@babel/helper-get-function-arity" "^7.0.0" - "@babel/template" "^7.1.0" - "@babel/types" "^7.0.0" - -"@babel/helper-function-name@^7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.7.0.tgz#44a5ad151cfff8ed2599c91682dda2ec2c8430a3" - integrity sha512-tDsJgMUAP00Ugv8O2aGEua5I2apkaQO7lBGUq1ocwN3G23JE5Dcq0uh3GvFTChPa4b40AWiAsLvCZOA2rdnQ7Q== - dependencies: - "@babel/helper-get-function-arity" "^7.7.0" - "@babel/template" "^7.7.0" - "@babel/types" "^7.7.0" - -"@babel/helper-get-function-arity@7.0.0-beta.47": - version "7.0.0-beta.47" - resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0-beta.47.tgz#2de04f97c14b094b55899d3fa83144a16d207510" - integrity sha512-63j0i3YUW8CO//uQc3ACffJdIlYcIlysuHjMF0yzQhqKoQ/CUPv0hf3nBwdRGjiWrr3JcL6++NF4XmXdwSU+fA== - dependencies: - "@babel/types" "7.0.0-beta.47" - -"@babel/helper-get-function-arity@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz#83572d4320e2a4657263734113c42868b64e49c3" - integrity sha512-r2DbJeg4svYvt3HOS74U4eWKsUAMRH01Z1ds1zx8KNTPtpTL5JAsdFv8BNyOpVqdFhHkkRDIg5B4AsxmkjAlmQ== - dependencies: - "@babel/types" "^7.0.0" - -"@babel/helper-get-function-arity@^7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.7.0.tgz#c604886bc97287a1d1398092bc666bc3d7d7aa2d" - integrity sha512-tLdojOTz4vWcEnHWHCuPN5P85JLZWbm5Fx5ZsMEMPhF3Uoe3O7awrbM2nQ04bDOUToH/2tH/ezKEOR8zEYzqyw== - dependencies: - "@babel/types" "^7.7.0" - -"@babel/helper-hoist-variables@7.0.0-beta.47": - version "7.0.0-beta.47" - resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.0.0-beta.47.tgz#ce295d1d723fe22b2820eaec748ed701aa5ae3d0" - integrity sha512-5BcKFhyzrsInlrfO/tGoe6khUuJzGfROD7oozF/5MWsKo/c3gVJfQ5y83lZ4XoTKJt/x4PQlLU0aHd/SJpYONA== - dependencies: - "@babel/types" "7.0.0-beta.47" - -"@babel/helper-hoist-variables@^7.4.4": - version "7.4.4" - resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.4.4.tgz#0298b5f25c8c09c53102d52ac4a98f773eb2850a" - integrity sha512-VYk2/H/BnYbZDDg39hr3t2kKyifAm1W6zHRfhx8jGjIHpQEBv9dry7oQ2f3+J703TLu69nYdxsovl0XYfcnK4w== - dependencies: - "@babel/types" "^7.4.4" - -"@babel/helper-hoist-variables@^7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.7.0.tgz#b4552e4cfe5577d7de7b183e193e84e4ec538c81" - integrity sha512-LUe/92NqsDAkJjjCEWkNe+/PcpnisvnqdlRe19FahVapa4jndeuJ+FBiTX1rcAKWKcJGE+C3Q3tuEuxkSmCEiQ== - dependencies: - "@babel/types" "^7.7.0" - -"@babel/helper-member-expression-to-functions@7.0.0-beta.47": - version "7.0.0-beta.47" - resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.0.0-beta.47.tgz#35bfcf1d16dce481ef3dec66d5a1ae6a7d80bb45" - integrity sha512-gpipslnZw2hcVGADUtqQII9KF8FPpRZsVUXwKP/0EnWwtujRFSVL+u2Fh+VXODRAxFmTLo6eGcOr/Vfan0MqYw== - dependencies: - "@babel/types" "7.0.0-beta.47" - -"@babel/helper-member-expression-to-functions@^7.5.5": - version "7.5.5" - resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.5.5.tgz#1fb5b8ec4453a93c439ee9fe3aeea4a84b76b590" - integrity sha512-5qZ3D1uMclSNqYcXqiHoA0meVdv+xUEex9em2fqMnrk/scphGlGgg66zjMrPJESPwrFJ6sbfFQYUSa0Mz7FabA== - dependencies: - "@babel/types" "^7.5.5" - -"@babel/helper-member-expression-to-functions@^7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.7.0.tgz#472b93003a57071f95a541ea6c2b098398bcad8a" - integrity sha512-QaCZLO2RtBcmvO/ekOLp8p7R5X2JriKRizeDpm5ChATAFWrrYDcDxPuCIBXKyBjY+i1vYSdcUTMIb8psfxHDPA== - dependencies: - "@babel/types" "^7.7.0" - -"@babel/helper-module-imports@7.0.0-beta.47": - version "7.0.0-beta.47" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.0.0-beta.47.tgz#5af072029ffcfbece6ffbaf5d9984c75580f3f04" - integrity sha512-Rk43Ty+a6npu9znK22IqFlseStRGWxEHi2cjmLbbi63VGiseofdUtIJI65F9MTCuMTXAX7VbY/ghef1Jp5qpvw== - dependencies: - "@babel/types" "7.0.0-beta.47" - lodash "^4.17.5" - -"@babel/helper-module-imports@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.0.0.tgz#96081b7111e486da4d2cd971ad1a4fe216cc2e3d" - integrity sha512-aP/hlLq01DWNEiDg4Jn23i+CXxW/owM4WpDLFUbpjxe4NS3BhLVZQ5i7E0ZrxuQ/vwekIeciyamgB1UIYxxM6A== - dependencies: - "@babel/types" "^7.0.0" - -"@babel/helper-module-imports@^7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.7.0.tgz#99c095889466e5f7b6d66d98dffc58baaf42654d" - integrity sha512-Dv3hLKIC1jyfTkClvyEkYP2OlkzNvWs5+Q8WgPbxM5LMeorons7iPP91JM+DU7tRbhqA1ZeooPaMFvQrn23RHw== - dependencies: - "@babel/types" "^7.7.0" - -"@babel/helper-module-transforms@7.0.0-beta.47": - version "7.0.0-beta.47" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.0.0-beta.47.tgz#7eff91fc96873bd7b8d816698f1a69bbc01f3c38" - integrity sha512-CziMe30ZunAhe6j05oNOFOg7im1lcv3dYuMxrwBYVe9YdP4NHPU7a1wrDBUhaPmyqTIZDwGnFne7k1KP79SeGQ== - dependencies: - "@babel/helper-module-imports" "7.0.0-beta.47" - "@babel/helper-simple-access" "7.0.0-beta.47" - "@babel/helper-split-export-declaration" "7.0.0-beta.47" - "@babel/template" "7.0.0-beta.47" - "@babel/types" "7.0.0-beta.47" - lodash "^4.17.5" - -"@babel/helper-module-transforms@^7.1.0", "@babel/helper-module-transforms@^7.4.4": - version "7.5.5" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.5.5.tgz#f84ff8a09038dcbca1fd4355661a500937165b4a" - integrity sha512-jBeCvETKuJqeiaCdyaheF40aXnnU1+wkSiUs/IQg3tB85up1LyL8x77ClY8qJpuRJUcXQo+ZtdNESmZl4j56Pw== - dependencies: - "@babel/helper-module-imports" "^7.0.0" - "@babel/helper-simple-access" "^7.1.0" - "@babel/helper-split-export-declaration" "^7.4.4" - "@babel/template" "^7.4.4" - "@babel/types" "^7.5.5" - lodash "^4.17.13" - -"@babel/helper-module-transforms@^7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.7.0.tgz#154a69f0c5b8fd4d39e49750ff7ac4faa3f36786" - integrity sha512-rXEefBuheUYQyX4WjV19tuknrJFwyKw0HgzRwbkyTbB+Dshlq7eqkWbyjzToLrMZk/5wKVKdWFluiAsVkHXvuQ== - dependencies: - "@babel/helper-module-imports" "^7.7.0" - "@babel/helper-simple-access" "^7.7.0" - "@babel/helper-split-export-declaration" "^7.7.0" - "@babel/template" "^7.7.0" - "@babel/types" "^7.7.0" - lodash "^4.17.13" - -"@babel/helper-optimise-call-expression@7.0.0-beta.47": - version "7.0.0-beta.47" - resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.0.0-beta.47.tgz#085d864d0613c5813c1b7c71b61bea36f195929e" - integrity sha512-NhnGhjwrhzGas4A/PoBDEtEPCGJHrzhaT6qGmo1hmkA2orG4UNi7KENC38DhJII0n2oUrKUuzTwgCvxKOTiHbw== - dependencies: - "@babel/types" "7.0.0-beta.47" - -"@babel/helper-optimise-call-expression@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.0.0.tgz#a2920c5702b073c15de51106200aa8cad20497d5" - integrity sha512-u8nd9NQePYNQV8iPWu/pLLYBqZBa4ZaY1YWRFMuxrid94wKI1QNt67NEZ7GAe5Kc/0LLScbim05xZFWkAdrj9g== - dependencies: - "@babel/types" "^7.0.0" - -"@babel/helper-optimise-call-expression@^7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.7.0.tgz#4f66a216116a66164135dc618c5d8b7a959f9365" - integrity sha512-48TeqmbazjNU/65niiiJIJRc5JozB8acui1OS7bSd6PgxfuovWsvjfWSzlgx+gPFdVveNzUdpdIg5l56Pl5jqg== - dependencies: - "@babel/types" "^7.7.0" - -"@babel/helper-plugin-utils@7.0.0-beta.47": - version "7.0.0-beta.47" - resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0-beta.47.tgz#4f564117ec39f96cf60fafcde35c9ddce0e008fd" - integrity sha512-GR67o8boOKVJRKM5Nhk7oVEHpxYy8R00lwu0F82WxxBH+iiT26DqW1e/4w/mo7Bdn1A6l0pNaOlNk1PdM2Hgag== - -"@babel/helper-plugin-utils@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0.tgz#bbb3fbee98661c569034237cc03967ba99b4f250" - integrity sha512-CYAOUCARwExnEixLdB6sDm2dIJ/YgEAKDM1MOeMeZu9Ld/bDgVo8aiWrXwcY7OBh+1Ea2uUcVRcxKk0GJvW7QA== - -"@babel/helper-regex@7.0.0-beta.47": - version "7.0.0-beta.47" - resolved "https://registry.yarnpkg.com/@babel/helper-regex/-/helper-regex-7.0.0-beta.47.tgz#b8e3b53132c4edbb04804242c02ffe4d60316971" - integrity sha512-dafidvVkjJP5AIWkJspV+7RGj1jeNts0qYvlmVzqAGb6BmQzEldJr6ZPzrmlpW/AW1YJGdw7br2yiwvlCRqDvQ== - dependencies: - lodash "^4.17.5" - -"@babel/helper-regex@^7.0.0", "@babel/helper-regex@^7.4.4": - version "7.5.5" - resolved "https://registry.yarnpkg.com/@babel/helper-regex/-/helper-regex-7.5.5.tgz#0aa6824f7100a2e0e89c1527c23936c152cab351" - integrity sha512-CkCYQLkfkiugbRDO8eZn6lRuR8kzZoGXCg3149iTk5se7g6qykSpy3+hELSwquhu+TgHn8nkLiBwHvNX8Hofcw== - dependencies: - lodash "^4.17.13" - -"@babel/helper-remap-async-to-generator@^7.1.0": - version "7.1.0" - resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.1.0.tgz#361d80821b6f38da75bd3f0785ece20a88c5fe7f" - integrity sha512-3fOK0L+Fdlg8S5al8u/hWE6vhufGSn0bN09xm2LXMy//REAF8kDCrYoOBKYmA8m5Nom+sV9LyLCwrFynA8/slg== - dependencies: - "@babel/helper-annotate-as-pure" "^7.0.0" - "@babel/helper-wrap-function" "^7.1.0" - "@babel/template" "^7.1.0" - "@babel/traverse" "^7.1.0" - "@babel/types" "^7.0.0" - -"@babel/helper-remap-async-to-generator@^7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.7.0.tgz#4d69ec653e8bff5bce62f5d33fc1508f223c75a7" - integrity sha512-pHx7RN8X0UNHPB/fnuDnRXVZ316ZigkO8y8D835JlZ2SSdFKb6yH9MIYRU4fy/KPe5sPHDFOPvf8QLdbAGGiyw== - dependencies: - "@babel/helper-annotate-as-pure" "^7.7.0" - "@babel/helper-wrap-function" "^7.7.0" - "@babel/template" "^7.7.0" - "@babel/traverse" "^7.7.0" - "@babel/types" "^7.7.0" - -"@babel/helper-replace-supers@7.0.0-beta.47": - version "7.0.0-beta.47" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.0.0-beta.47.tgz#310b206a302868a792b659455ceba27db686cbb7" - integrity sha512-yf2JAD1+xNTjavqazqknRgPfd6MbGfvfIcAkxWsPURynAwOMSs4zThED8ImT2d5a97rGPysRJcq1jNh2L0WYxg== - dependencies: - "@babel/helper-member-expression-to-functions" "7.0.0-beta.47" - "@babel/helper-optimise-call-expression" "7.0.0-beta.47" - "@babel/traverse" "7.0.0-beta.47" - "@babel/types" "7.0.0-beta.47" - -"@babel/helper-replace-supers@^7.5.5": - version "7.5.5" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.5.5.tgz#f84ce43df031222d2bad068d2626cb5799c34bc2" - integrity sha512-XvRFWrNnlsow2u7jXDuH4jDDctkxbS7gXssrP4q2nUD606ukXHRvydj346wmNg+zAgpFx4MWf4+usfC93bElJg== - dependencies: - "@babel/helper-member-expression-to-functions" "^7.5.5" - "@babel/helper-optimise-call-expression" "^7.0.0" - "@babel/traverse" "^7.5.5" - "@babel/types" "^7.5.5" - -"@babel/helper-replace-supers@^7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.7.0.tgz#d5365c8667fe7cbd13b8ddddceb9bd7f2b387512" - integrity sha512-5ALYEul5V8xNdxEeWvRsBzLMxQksT7MaStpxjJf9KsnLxpAKBtfw5NeMKZJSYDa0lKdOcy0g+JT/f5mPSulUgg== - dependencies: - "@babel/helper-member-expression-to-functions" "^7.7.0" - "@babel/helper-optimise-call-expression" "^7.7.0" - "@babel/traverse" "^7.7.0" - "@babel/types" "^7.7.0" - -"@babel/helper-simple-access@7.0.0-beta.47": - version "7.0.0-beta.47" - resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.0.0-beta.47.tgz#234d754acbda9251a10db697ef50181eab125042" - integrity sha512-sd2t3QDKjd+hHkJKaC2AX39l6oIil1N548oMZAtV5YHlVGoWWkAVGnPMxRg7ICEjIftCU3ZI6UeaogyEhF8t7Q== - dependencies: - "@babel/template" "7.0.0-beta.47" - "@babel/types" "7.0.0-beta.47" - lodash "^4.17.5" - -"@babel/helper-simple-access@^7.1.0": - version "7.1.0" - resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.1.0.tgz#65eeb954c8c245beaa4e859da6188f39d71e585c" - integrity sha512-Vk+78hNjRbsiu49zAPALxTb+JUQCz1aolpd8osOF16BGnLtseD21nbHgLPGUwrXEurZgiCOUmvs3ExTu4F5x6w== - dependencies: - "@babel/template" "^7.1.0" - "@babel/types" "^7.0.0" - -"@babel/helper-simple-access@^7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.7.0.tgz#97a8b6c52105d76031b86237dc1852b44837243d" - integrity sha512-AJ7IZD7Eem3zZRuj5JtzFAptBw7pMlS3y8Qv09vaBWoFsle0d1kAn5Wq6Q9MyBXITPOKnxwkZKoAm4bopmv26g== - dependencies: - "@babel/template" "^7.7.0" - "@babel/types" "^7.7.0" - -"@babel/helper-split-export-declaration@7.0.0-beta.47": - version "7.0.0-beta.47" - resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.0.0-beta.47.tgz#e11277855472d8d83baf22f2d0186c4a2059b09a" - integrity sha512-jx8GmxryT6Qy4+24W6M6TnVL9T8bxqdyg5UKHjxBdw0Y2Sano1n0WphUS2seuOugn04W2ZQLqGc0ut8nGe/taA== - dependencies: - "@babel/types" "7.0.0-beta.47" - -"@babel/helper-split-export-declaration@^7.4.4": - version "7.4.4" - resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.4.4.tgz#ff94894a340be78f53f06af038b205c49d993677" - integrity sha512-Ro/XkzLf3JFITkW6b+hNxzZ1n5OQ80NvIUdmHspih1XAhtN3vPTuUFT4eQnela+2MaZ5ulH+iyP513KJrxbN7Q== - dependencies: - "@babel/types" "^7.4.4" - -"@babel/helper-split-export-declaration@^7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.7.0.tgz#1365e74ea6c614deeb56ebffabd71006a0eb2300" - integrity sha512-HgYSI8rH08neWlAH3CcdkFg9qX9YsZysZI5GD8LjhQib/mM0jGOZOVkoUiiV2Hu978fRtjtsGsW6w0pKHUWtqA== - dependencies: - "@babel/types" "^7.7.0" - -"@babel/helper-wrap-function@^7.1.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.2.0.tgz#c4e0012445769e2815b55296ead43a958549f6fa" - integrity sha512-o9fP1BZLLSrYlxYEYyl2aS+Flun5gtjTIG8iln+XuEzQTs0PLagAGSXUcqruJwD5fM48jzIEggCKpIfWTcR7pQ== - dependencies: - "@babel/helper-function-name" "^7.1.0" - "@babel/template" "^7.1.0" - "@babel/traverse" "^7.1.0" - "@babel/types" "^7.2.0" - -"@babel/helper-wrap-function@^7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.7.0.tgz#15af3d3e98f8417a60554acbb6c14e75e0b33b74" - integrity sha512-sd4QjeMgQqzshSjecZjOp8uKfUtnpmCyQhKQrVJBBgeHAB/0FPi33h3AbVlVp07qQtMD4QgYSzaMI7VwncNK/w== - dependencies: - "@babel/helper-function-name" "^7.7.0" - "@babel/template" "^7.7.0" - "@babel/traverse" "^7.7.0" - "@babel/types" "^7.7.0" - -"@babel/helpers@^7.6.2": - version "7.6.2" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.6.2.tgz#681ffe489ea4dcc55f23ce469e58e59c1c045153" - integrity sha512-3/bAUL8zZxYs1cdX2ilEE0WobqbCmKWr/889lf2SS0PpDcpEIY8pb1CCyz0pEcX3pEb+MCbks1jIokz2xLtGTA== - dependencies: - "@babel/template" "^7.6.0" - "@babel/traverse" "^7.6.2" - "@babel/types" "^7.6.0" - -"@babel/helpers@^7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.7.0.tgz#359bb5ac3b4726f7c1fde0ec75f64b3f4275d60b" - integrity sha512-VnNwL4YOhbejHb7x/b5F39Zdg5vIQpUUNzJwx0ww1EcVRt41bbGRZWhAURrfY32T5zTT3qwNOQFWpn+P0i0a2g== - dependencies: - "@babel/template" "^7.7.0" - "@babel/traverse" "^7.7.0" - "@babel/types" "^7.7.0" - -"@babel/highlight@7.0.0-beta.47": - version "7.0.0-beta.47" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.0.0-beta.47.tgz#8fbc83fb2a21f0bd2b95cdbeb238cf9689cad494" - integrity sha512-d505K3Hth1eg0b2swfEF7oFMw3J9M8ceFg0s6dhCSxOOF+07WDvJ0HKT/YbK/Jk9wn8Wyr6HIRAUPKJ9Wfv8Rg== - dependencies: - chalk "^2.0.0" - esutils "^2.0.2" - js-tokens "^3.0.0" - -"@babel/highlight@^7.0.0": - version "7.5.0" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.5.0.tgz#56d11312bd9248fa619591d02472be6e8cb32540" - integrity sha512-7dV4eu9gBxoM0dAnj/BCFDW9LFU0zvTrkq0ugM7pnHEgguOEeOz1so2ZghEdzviYzQEED0r4EAgpsBChKy1TRQ== - dependencies: - chalk "^2.0.0" - esutils "^2.0.2" - js-tokens "^4.0.0" - -"@babel/parser@^7.0.0", "@babel/parser@^7.4.3", "@babel/parser@^7.6.0", "@babel/parser@^7.6.3", "@babel/parser@^7.6.4": - version "7.6.4" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.6.4.tgz#cb9b36a7482110282d5cb6dd424ec9262b473d81" - integrity sha512-D8RHPW5qd0Vbyo3qb+YjO5nvUVRTXFLQ/FsDxJU2Nqz4uB5EnUN0ZQSEYpvTIbRuttig1XbHWU5oMeQwQSAA+A== - -"@babel/parser@^7.7.0", "@babel/parser@^7.7.2": - version "7.7.3" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.7.3.tgz#5fad457c2529de476a248f75b0f090b3060af043" - integrity sha512-bqv+iCo9i+uLVbI0ILzKkvMorqxouI+GbV13ivcARXn9NNEabi2IEz912IgNpT/60BNXac5dgcfjb94NjsF33A== - -"@babel/plugin-external-helpers@^7.0.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-external-helpers/-/plugin-external-helpers-7.2.0.tgz#7f4cb7dee651cd380d2034847d914288467a6be4" - integrity sha512-QFmtcCShFkyAsNtdCM3lJPmRe1iB+vPZymlB4LnDIKEBj2yKQLQKtoxXxJ8ePT5fwMl4QGg303p4mB0UsSI2/g== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-proposal-async-generator-functions@^7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.7.0.tgz#83ef2d6044496b4c15d8b4904e2219e6dccc6971" - integrity sha512-ot/EZVvf3mXtZq0Pd0+tSOfGWMizqmOohXmNZg6LNFjHOV+wOPv7BvVYh8oPR8LhpIP3ye8nNooKL50YRWxpYA== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-remap-async-to-generator" "^7.7.0" - "@babel/plugin-syntax-async-generators" "^7.2.0" - -"@babel/plugin-proposal-class-properties@7.0.0-beta.47": - version "7.0.0-beta.47" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.0.0-beta.47.tgz#08c1a1dfc92d0f5c37b39096c6fb883e1ca4b0f5" - integrity sha512-6yuCiF+ZZHPLgAa+0a6/teNeAMsWqY6AVtZA4NhCWnwP4OH0JrRaY7rwvFCJSqNGurf8rF65W9IucM/l0+HOCg== - dependencies: - "@babel/helper-function-name" "7.0.0-beta.47" - "@babel/helper-plugin-utils" "7.0.0-beta.47" - "@babel/helper-replace-supers" "7.0.0-beta.47" - "@babel/plugin-syntax-class-properties" "7.0.0-beta.47" - -"@babel/plugin-proposal-class-properties@^7.0.0": - version "7.5.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.5.5.tgz#a974cfae1e37c3110e71f3c6a2e48b8e71958cd4" - integrity sha512-AF79FsnWFxjlaosgdi421vmYG6/jg79bVD0dpD44QdgobzHKuLZ6S3vl8la9qIeSwGi8i1fS0O1mfuDAAdo1/A== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.5.5" - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-proposal-dynamic-import@^7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.7.0.tgz#dc02a8bad8d653fb59daf085516fa416edd2aa7f" - integrity sha512-7poL3Xi+QFPC7sGAzEIbXUyYzGJwbc2+gSD0AkiC5k52kH2cqHdqxm5hNFfLW3cRSTcx9bN0Fl7/6zWcLLnKAQ== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-syntax-dynamic-import" "^7.2.0" - -"@babel/plugin-proposal-export-default-from@^7.0.0": - version "7.5.2" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-default-from/-/plugin-proposal-export-default-from-7.5.2.tgz#2c0ac2dcc36e3b2443fead2c3c5fc796fb1b5145" - integrity sha512-wr9Itk05L1/wyyZKVEmXWCdcsp/e185WUNl6AfYZeEKYaUPPvHXRDqO5K1VH7/UamYqGJowFRuCv30aDYZawsg== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-syntax-export-default-from" "^7.2.0" - -"@babel/plugin-proposal-json-strings@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.2.0.tgz#568ecc446c6148ae6b267f02551130891e29f317" - integrity sha512-MAFV1CA/YVmYwZG0fBQyXhmj0BHCB5egZHCKWIFVv/XCxAeVGIHfos3SwDck4LvCllENIAg7xMKOG5kH0dzyUg== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-syntax-json-strings" "^7.2.0" - -"@babel/plugin-proposal-nullish-coalescing-operator@^7.0.0": - version "7.4.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.4.4.tgz#41c360d59481d88e0ce3a3f837df10121a769b39" - integrity sha512-Amph7Epui1Dh/xxUxS2+K22/MUi6+6JVTvy3P58tja3B6yKTSjwwx0/d83rF7551D6PVSSoplQb8GCwqec7HRw== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-syntax-nullish-coalescing-operator" "^7.2.0" - -"@babel/plugin-proposal-object-rest-spread@7.0.0-beta.47": - version "7.0.0-beta.47" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.0.0-beta.47.tgz#e1529fddc88e948868ee1d0edaa27ebd9502322d" - integrity sha512-ujUjQUyTxUWHfixRD7Y5Nm8VCgHSf6YgbM37LEnojKp5lPahZO42qJfDty+Kh0tEanpI5H8BLPkJbFSzx6TNEw== - dependencies: - "@babel/helper-plugin-utils" "7.0.0-beta.47" - "@babel/plugin-syntax-object-rest-spread" "7.0.0-beta.47" - -"@babel/plugin-proposal-object-rest-spread@^7.0.0": - version "7.5.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.5.5.tgz#61939744f71ba76a3ae46b5eea18a54c16d22e58" - integrity sha512-F2DxJJSQ7f64FyTVl5cw/9MWn6naXGdk3Q3UhDbFEEHv+EilCPoeRD3Zh/Utx1CJz4uyKlQ4uH+bJPbEhMV7Zw== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-syntax-object-rest-spread" "^7.2.0" - -"@babel/plugin-proposal-object-rest-spread@^7.6.2": - version "7.6.2" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.6.2.tgz#8ffccc8f3a6545e9f78988b6bf4fe881b88e8096" - integrity sha512-LDBXlmADCsMZV1Y9OQwMc0MyGZ8Ta/zlD9N67BfQT8uYwkRswiu2hU6nJKrjrt/58aH/vqfQlR/9yId/7A2gWw== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-syntax-object-rest-spread" "^7.2.0" - -"@babel/plugin-proposal-optional-catch-binding@^7.0.0", "@babel/plugin-proposal-optional-catch-binding@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.2.0.tgz#135d81edb68a081e55e56ec48541ece8065c38f5" - integrity sha512-mgYj3jCcxug6KUcX4OBoOJz3CMrwRfQELPQ5560F70YQUBZB7uac9fqaWamKR1iWUzGiK2t0ygzjTScZnVz75g== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-syntax-optional-catch-binding" "^7.2.0" - -"@babel/plugin-proposal-optional-chaining@7.0.0-beta.47": - version "7.0.0-beta.47" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.0.0-beta.47.tgz#099e5720121f91eb36544575f98d44cd57865ea5" - integrity sha512-5jlVmdC1Lv874h2553xAp50jVv3L/23KksOLUZdF/9+ZdbAzOlhX6spHiVy/jjfU9G1MFZtZTlxhV5roGkqZvg== - dependencies: - "@babel/helper-plugin-utils" "7.0.0-beta.47" - "@babel/plugin-syntax-optional-chaining" "7.0.0-beta.47" - -"@babel/plugin-proposal-optional-chaining@^7.0.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.2.0.tgz#ae454f4c21c6c2ce8cb2397dc332ae8b420c5441" - integrity sha512-ea3Q6edZC/55wEBVZAEz42v528VulyO0eir+7uky/sT4XRcdkWJcFi1aPtitTlwUzGnECWJNExWww1SStt+yWw== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-syntax-optional-chaining" "^7.2.0" - -"@babel/plugin-proposal-unicode-property-regex@^7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.7.0.tgz#549fe1717a1bd0a2a7e63163841cb37e78179d5d" - integrity sha512-mk34H+hp7kRBWJOOAR0ZMGCydgKMD4iN9TpDRp3IIcbunltxEY89XSimc6WbtSLCDrwcdy/EEw7h5CFCzxTchw== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.7.0" - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-syntax-async-generators@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.2.0.tgz#69e1f0db34c6f5a0cf7e2b3323bf159a76c8cb7f" - integrity sha512-1ZrIRBv2t0GSlcwVoQ6VgSLpLgiN/FVQUzt9znxo7v2Ov4jJrs8RY8tv0wvDmFN3qIdMKWrmMMW6yZ0G19MfGg== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-syntax-class-properties@7.0.0-beta.47": - version "7.0.0-beta.47" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.0.0-beta.47.tgz#de52bed12fd472c848e1562f57dd4a202fe27f11" - integrity sha512-vLoAuLSjHSenX3TQmri6ttQWZp3rEtGcRp4LgYEBQ012fN5h+KmcssvkCAqm6V6ozS5KzUWpBlZ6t7YhZG6oBw== - dependencies: - "@babel/helper-plugin-utils" "7.0.0-beta.47" - -"@babel/plugin-syntax-class-properties@^7.0.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.2.0.tgz#23b3b7b9bcdabd73672a9149f728cd3be6214812" - integrity sha512-UxYaGXYQ7rrKJS/PxIKRkv3exi05oH7rokBAsmCSsCxz1sVPZ7Fu6FzKoGgUvmY+0YgSkYHgUoCh5R5bCNBQlw== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-syntax-dynamic-import@^7.0.0", "@babel/plugin-syntax-dynamic-import@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.2.0.tgz#69c159ffaf4998122161ad8ebc5e6d1f55df8612" - integrity sha512-mVxuJ0YroI/h/tbFTPGZR8cv6ai+STMKNBq0f8hFxsxWjl94qqhsb+wXbpNMDPU3cfR1TIsVFzU3nXyZMqyK4w== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-syntax-export-default-from@^7.0.0", "@babel/plugin-syntax-export-default-from@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-export-default-from/-/plugin-syntax-export-default-from-7.2.0.tgz#edd83b7adc2e0d059e2467ca96c650ab6d2f3820" - integrity sha512-c7nqUnNST97BWPtoe+Ssi+fJukc9P9/JMZ71IOMNQWza2E+Psrd46N6AEvtw6pqK+gt7ChjXyrw4SPDO79f3Lw== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-syntax-flow@7.0.0-beta.47": - version "7.0.0-beta.47" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.0.0-beta.47.tgz#9d0b09b9af6fec87a7b22e406bf948089d58c188" - integrity sha512-+3ZLKNV8tSDnTWL4QRNx5uZB/hUzY71WcgCwoXWy+8ma7EjZ3e3vbR69VR8dJwG1DqGsug6ZzM+afR0G4gKgPA== - dependencies: - "@babel/helper-plugin-utils" "7.0.0-beta.47" - -"@babel/plugin-syntax-flow@^7.0.0", "@babel/plugin-syntax-flow@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.2.0.tgz#a765f061f803bc48f240c26f8747faf97c26bf7c" - integrity sha512-r6YMuZDWLtLlu0kqIim5o/3TNRAlWb073HwT3e2nKf9I8IIvOggPrnILYPsrrKilmn/mYEMCf/Z07w3yQJF6dg== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-syntax-json-strings@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.2.0.tgz#72bd13f6ffe1d25938129d2a186b11fd62951470" - integrity sha512-5UGYnMSLRE1dqqZwug+1LISpA403HzlSfsg6P9VXU6TBjcSHeNlw4DxDx7LgpF+iKZoOG/+uzqoRHTdcUpiZNg== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-syntax-jsx@7.0.0-beta.47": - version "7.0.0-beta.47" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.0.0-beta.47.tgz#f3849d94288695d724bd205b4f6c3c99e4ec24a4" - integrity sha512-5scuJzIYZY8M+A1ra8mcKANIwB5TtsRD6Aw94xZxfvnjhhVMFR5RYE9HshVlBrZVY+r3cJDNIQLJMC/fGJHImA== - dependencies: - "@babel/helper-plugin-utils" "7.0.0-beta.47" - -"@babel/plugin-syntax-jsx@^7.0.0", "@babel/plugin-syntax-jsx@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.2.0.tgz#0b85a3b4bc7cdf4cc4b8bf236335b907ca22e7c7" - integrity sha512-VyN4QANJkRW6lDBmENzRszvZf3/4AXaj9YR7GwrWeeN9tEBPuXbmDYVU9bYBN0D70zCWVwUy0HWq2553VCb6Hw== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-syntax-nullish-coalescing-operator@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.2.0.tgz#f75083dfd5ade73e783db729bbd87e7b9efb7624" - integrity sha512-lRCEaKE+LTxDQtgbYajI04ddt6WW0WJq57xqkAZ+s11h4YgfRHhVA/Y2VhfPzzFD4qeLHWg32DMp9HooY4Kqlg== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-syntax-object-rest-spread@7.0.0-beta.47": - version "7.0.0-beta.47" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.0.0-beta.47.tgz#21da514d94c138b2261ca09f0dec9abadce16185" - integrity sha512-UOGQCmzvNlZMQOuys7xPiTa2EjTT3xHuhUghcdJnYikqGV43obpIIaP+VDCWPvIT8g0QDIvmRWx5UefvkWXN+w== - dependencies: - "@babel/helper-plugin-utils" "7.0.0-beta.47" - -"@babel/plugin-syntax-object-rest-spread@^7.0.0", "@babel/plugin-syntax-object-rest-spread@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.2.0.tgz#3b7a3e733510c57e820b9142a6579ac8b0dfad2e" - integrity sha512-t0JKGgqk2We+9may3t0xDdmneaXmyxq0xieYcKHxIsrJO64n1OiMWNUtc5gQK1PA0NpdCRrtZp4z+IUaKugrSA== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-syntax-optional-catch-binding@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.2.0.tgz#a94013d6eda8908dfe6a477e7f9eda85656ecf5c" - integrity sha512-bDe4xKNhb0LI7IvZHiA13kff0KEfaGX/Hv4lMA9+7TEc63hMNvfKo6ZFpXhKuEp+II/q35Gc4NoMeDZyaUbj9w== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-syntax-optional-chaining@7.0.0-beta.47": - version "7.0.0-beta.47" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.0.0-beta.47.tgz#f1febe859d9dde26f2b2e1f20cf679925d1fab23" - integrity sha512-lt6JV/D7QeAEf3qqUT4JTPkbU6vNCfeMW7BB7JD+HYivITkmXuGIVl7w4JrRB9LkfjkYE5vgiz3Nc733AD7v8w== - dependencies: - "@babel/helper-plugin-utils" "7.0.0-beta.47" - -"@babel/plugin-syntax-optional-chaining@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.2.0.tgz#a59d6ae8c167e7608eaa443fda9fa8fa6bf21dff" - integrity sha512-HtGCtvp5Uq/jH/WNUPkK6b7rufnCPLLlDAFN7cmACoIjaOOiXxUt3SswU5loHqrhtqTsa/WoLQ1OQ1AGuZqaWA== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-syntax-top-level-await@^7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.7.0.tgz#f5699549f50bbe8d12b1843a4e82f0a37bb65f4d" - integrity sha512-hi8FUNiFIY1fnUI2n1ViB1DR0R4QeK4iHcTlW6aJkrPoTdb8Rf1EMQ6GT3f67DDkYyWgew9DFoOZ6gOoEsdzTA== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-syntax-typescript@^7.2.0": - version "7.3.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.3.3.tgz#a7cc3f66119a9f7ebe2de5383cce193473d65991" - integrity sha512-dGwbSMA1YhVS8+31CnPR7LB4pcbrzcV99wQzby4uAfrkZPYZlQ7ImwdpzLqi6Z6IL02b8IAL379CaMwo0x5Lag== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-transform-arrow-functions@7.0.0-beta.47": - version "7.0.0-beta.47" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.0.0-beta.47.tgz#d6eecda4c652b909e3088f0983ebaf8ec292984b" - integrity sha512-xiU+7RJAsqx+iZqWSQQWBu9ZDTruWimkg4puDSdRVfEwgZQdOtiU2LuO0+xGFyitJPHkKuje0WvK1tFu1dmxCw== - dependencies: - "@babel/helper-plugin-utils" "7.0.0-beta.47" - -"@babel/plugin-transform-arrow-functions@^7.0.0", "@babel/plugin-transform-arrow-functions@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.2.0.tgz#9aeafbe4d6ffc6563bf8f8372091628f00779550" - integrity sha512-ER77Cax1+8/8jCB9fo4Ud161OZzWN5qawi4GusDuRLcDbDG+bIGYY20zb2dfAFdTRGzrfq2xZPvF0R64EHnimg== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-transform-async-to-generator@^7.0.0": - version "7.5.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.5.0.tgz#89a3848a0166623b5bc481164b5936ab947e887e" - integrity sha512-mqvkzwIGkq0bEF1zLRRiTdjfomZJDV33AH3oQzHVGkI2VzEmXLpKKOBvEVaFZBJdN0XTyH38s9j/Kiqr68dggg== - dependencies: - "@babel/helper-module-imports" "^7.0.0" - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-remap-async-to-generator" "^7.1.0" - -"@babel/plugin-transform-async-to-generator@^7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.7.0.tgz#e2b84f11952cf5913fe3438b7d2585042772f492" - integrity sha512-vLI2EFLVvRBL3d8roAMqtVY0Bm9C1QzLkdS57hiKrjUBSqsQYrBsMCeOg/0KK7B0eK9V71J5mWcha9yyoI2tZw== - dependencies: - "@babel/helper-module-imports" "^7.7.0" - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-remap-async-to-generator" "^7.7.0" - -"@babel/plugin-transform-block-scoped-functions@^7.0.0", "@babel/plugin-transform-block-scoped-functions@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.2.0.tgz#5d3cc11e8d5ddd752aa64c9148d0db6cb79fd190" - integrity sha512-ntQPR6q1/NKuphly49+QiQiTN0O63uOwjdD6dhIjSWBI5xlrbUFh720TIpzBhpnrLfv2tNH/BXvLIab1+BAI0w== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-transform-block-scoping@7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.0.0.tgz#1745075edffd7cdaf69fab2fb6f9694424b7e9bc" - integrity sha512-GWEMCrmHQcYWISilUrk9GDqH4enf3UmhOEbNbNrlNAX1ssH3MsS1xLOS6rdjRVPgA7XXVPn87tRkdTEoA/dxEg== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - lodash "^4.17.10" - -"@babel/plugin-transform-block-scoping@7.0.0-beta.47": - version "7.0.0-beta.47" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.0.0-beta.47.tgz#b737cc58a81bea57efd5bda0baef9a43a25859ad" - integrity sha512-V/u3Zdy40KjVQeyYUaQnCGiHQbRNJoc6IEtNDERltuW9vYPHS1n6YGc+EHKi8JVYT4kE6UHOjD+BrbCCV4kjRw== - dependencies: - "@babel/helper-plugin-utils" "7.0.0-beta.47" - lodash "^4.17.5" - -"@babel/plugin-transform-block-scoping@^7.0.0": - version "7.5.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.5.5.tgz#a35f395e5402822f10d2119f6f8e045e3639a2ce" - integrity sha512-82A3CLRRdYubkG85lKwhZB0WZoHxLGsJdux/cOVaJCJpvYFl1LVzAIFyRsa7CvXqW8rBM4Zf3Bfn8PHt5DP0Sg== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - lodash "^4.17.13" - -"@babel/plugin-transform-block-scoping@^7.6.3": - version "7.6.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.6.3.tgz#6e854e51fbbaa84351b15d4ddafe342f3a5d542a" - integrity sha512-7hvrg75dubcO3ZI2rjYTzUrEuh1E9IyDEhhB6qfcooxhDA33xx2MasuLVgdxzcP6R/lipAC6n9ub9maNW6RKdw== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - lodash "^4.17.13" - -"@babel/plugin-transform-classes@7.0.0-beta.47": - version "7.0.0-beta.47" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.0.0-beta.47.tgz#7aff9cbe7b26fd94d7a9f97fa90135ef20c93fb6" - integrity sha512-hzW/jL6TPBMHJXeXwzuxMN0PFAfjVD0UzATHrFSejY5A7SvhWWrv1cZ3K0/SzCXJ9LpMdxCNiREvVjeD/Tyx2g== - dependencies: - "@babel/helper-annotate-as-pure" "7.0.0-beta.47" - "@babel/helper-define-map" "7.0.0-beta.47" - "@babel/helper-function-name" "7.0.0-beta.47" - "@babel/helper-optimise-call-expression" "7.0.0-beta.47" - "@babel/helper-plugin-utils" "7.0.0-beta.47" - "@babel/helper-replace-supers" "7.0.0-beta.47" - "@babel/helper-split-export-declaration" "7.0.0-beta.47" - globals "^11.1.0" - -"@babel/plugin-transform-classes@^7.0.0": - version "7.5.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.5.5.tgz#d094299d9bd680a14a2a0edae38305ad60fb4de9" - integrity sha512-U2htCNK/6e9K7jGyJ++1p5XRU+LJjrwtoiVn9SzRlDT2KubcZ11OOwy3s24TjHxPgxNwonCYP7U2K51uVYCMDg== - dependencies: - "@babel/helper-annotate-as-pure" "^7.0.0" - "@babel/helper-define-map" "^7.5.5" - "@babel/helper-function-name" "^7.1.0" - "@babel/helper-optimise-call-expression" "^7.0.0" - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-replace-supers" "^7.5.5" - "@babel/helper-split-export-declaration" "^7.4.4" - globals "^11.1.0" - -"@babel/plugin-transform-classes@^7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.7.0.tgz#b411ecc1b8822d24b81e5d184f24149136eddd4a" - integrity sha512-/b3cKIZwGeUesZheU9jNYcwrEA7f/Bo4IdPmvp7oHgvks2majB5BoT5byAql44fiNQYOPzhk2w8DbgfuafkMoA== - dependencies: - "@babel/helper-annotate-as-pure" "^7.7.0" - "@babel/helper-define-map" "^7.7.0" - "@babel/helper-function-name" "^7.7.0" - "@babel/helper-optimise-call-expression" "^7.7.0" - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-replace-supers" "^7.7.0" - "@babel/helper-split-export-declaration" "^7.7.0" - globals "^11.1.0" - -"@babel/plugin-transform-computed-properties@7.0.0-beta.47": - version "7.0.0-beta.47" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.0.0-beta.47.tgz#56ef2a021769a2b65e90a3e12fd10b791da9f3e0" - integrity sha512-V78qyzmjj4aq/tjpkMFbV5gPtrx7xdclW1Rn6vV9hIwMSMbtstYEXF4msy614MofvYj6gYbPbNfyhXFIUvz/xw== - dependencies: - "@babel/helper-plugin-utils" "7.0.0-beta.47" - -"@babel/plugin-transform-computed-properties@^7.0.0", "@babel/plugin-transform-computed-properties@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.2.0.tgz#83a7df6a658865b1c8f641d510c6f3af220216da" - integrity sha512-kP/drqTxY6Xt3NNpKiMomfgkNn4o7+vKxK2DDKcBG9sHj51vHqMBGy8wbDS/J4lMxnqs153/T3+DmCEAkC5cpA== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-transform-destructuring@7.0.0-beta.47": - version "7.0.0-beta.47" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.0.0-beta.47.tgz#452b607775fd1c4d10621997837189efc0a6d428" - integrity sha512-3AaXC9H7qPybJbSs/QMhhj9EZF9MYrb/HRytwki1tckaYifqCJquENIZxDAYmwsWIGIHiq34WqwPRMIsz/b5uQ== - dependencies: - "@babel/helper-plugin-utils" "7.0.0-beta.47" - -"@babel/plugin-transform-destructuring@^7.0.0": - version "7.5.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.5.0.tgz#f6c09fdfe3f94516ff074fe877db7bc9ef05855a" - integrity sha512-YbYgbd3TryYYLGyC7ZR+Tq8H/+bCmwoaxHfJHupom5ECstzbRLTch6gOQbhEY9Z4hiCNHEURgq06ykFv9JZ/QQ== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-transform-destructuring@^7.6.0": - version "7.6.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.6.0.tgz#44bbe08b57f4480094d57d9ffbcd96d309075ba6" - integrity sha512-2bGIS5P1v4+sWTCnKNDZDxbGvEqi0ijeqM/YqHtVGrvG2y0ySgnEEhXErvE9dA0bnIzY9bIzdFK0jFA46ASIIQ== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-transform-dotall-regex@^7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.7.0.tgz#c5c9ecacab3a5e0c11db6981610f0c32fd698b3b" - integrity sha512-3QQlF7hSBnSuM1hQ0pS3pmAbWLax/uGNCbPBND9y+oJ4Y776jsyujG2k0Sn2Aj2a0QwVOiOFL5QVPA7spjvzSA== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.7.0" - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-transform-duplicate-keys@^7.5.0": - version "7.5.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.5.0.tgz#c5dbf5106bf84cdf691222c0974c12b1df931853" - integrity sha512-igcziksHizyQPlX9gfSjHkE2wmoCH3evvD2qR5w29/Dk0SMKE/eOI7f1HhBdNhR/zxJDqrgpoDTq5YSLH/XMsQ== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-transform-exponentiation-operator@7.0.0-beta.47": - version "7.0.0-beta.47" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.0.0-beta.47.tgz#930e1abf5db9f4db5b63dbf97f3581ad0be1e907" - integrity sha512-vyGG3kLIXpMuaPL485aqowdWFrxCxXtbzMXy9p1QTK5Q/+9UHpK9XoAVJZGknnsm091m0Ss7spo8uHaxbzYVog== - dependencies: - "@babel/helper-builder-binary-assignment-operator-visitor" "7.0.0-beta.47" - "@babel/helper-plugin-utils" "7.0.0-beta.47" - -"@babel/plugin-transform-exponentiation-operator@^7.0.0", "@babel/plugin-transform-exponentiation-operator@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.2.0.tgz#a63868289e5b4007f7054d46491af51435766008" - integrity sha512-umh4hR6N7mu4Elq9GG8TOu9M0bakvlsREEC+ialrQN6ABS4oDQ69qJv1VtR3uxlKMCQMCvzk7vr17RHKcjx68A== - dependencies: - "@babel/helper-builder-binary-assignment-operator-visitor" "^7.1.0" - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-transform-flow-strip-types@7.0.0-beta.47": - version "7.0.0-beta.47" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.0.0-beta.47.tgz#fa45811094c10d70c84efdd0eac62ebd2a634bf7" - integrity sha512-X/8Gd4CxdBx7LOtW2wPSzr83bYyndqYbnJoUEosPJXOG2aRmgVo4hn+wk97vtDH+hMP7HsTApVBffrZNXS3erA== - dependencies: - "@babel/helper-plugin-utils" "7.0.0-beta.47" - "@babel/plugin-syntax-flow" "7.0.0-beta.47" - -"@babel/plugin-transform-flow-strip-types@^7.0.0": - version "7.4.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.4.4.tgz#d267a081f49a8705fc9146de0768c6b58dccd8f7" - integrity sha512-WyVedfeEIILYEaWGAUWzVNyqG4sfsNooMhXWsu/YzOvVGcsnPb5PguysjJqI3t3qiaYj0BR8T2f5njdjTGe44Q== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-syntax-flow" "^7.2.0" - -"@babel/plugin-transform-for-of@7.0.0-beta.47": - version "7.0.0-beta.47" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.0.0-beta.47.tgz#527d5dc24e4a4ad0fc1d0a3990d29968cb984e76" - integrity sha512-tfH5OMzV9fWLYJTzWDhoRJKr8kvBZWH26jiCgM0ayNq75ES/X947MqMNAgBjJdTAVEV2kOyks2ItgNAJT4rOUw== - dependencies: - "@babel/helper-plugin-utils" "7.0.0-beta.47" - -"@babel/plugin-transform-for-of@^7.0.0", "@babel/plugin-transform-for-of@^7.4.4": - version "7.4.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.4.4.tgz#0267fc735e24c808ba173866c6c4d1440fc3c556" - integrity sha512-9T/5Dlr14Z9TIEXLXkt8T1DU7F24cbhwhMNUziN3hB1AXoZcdzPcTiKGRn/6iOymDqtTKWnr/BtRKN9JwbKtdQ== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-transform-function-name@7.0.0-beta.47": - version "7.0.0-beta.47" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.0.0-beta.47.tgz#fb443c81cc77f3206a863b730b35c8c553ce5041" - integrity sha512-/5I/f8NCouugsRT6ORB1UjCP3N+Rgv/OB6SzmaeIUEpYYPM6D7WQ+4BaRYXQn4eqtOJmTgxDXYa8FgYtoeqP9A== - dependencies: - "@babel/helper-function-name" "7.0.0-beta.47" - "@babel/helper-plugin-utils" "7.0.0-beta.47" - -"@babel/plugin-transform-function-name@^7.0.0": - version "7.4.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.4.4.tgz#e1436116abb0610c2259094848754ac5230922ad" - integrity sha512-iU9pv7U+2jC9ANQkKeNF6DrPy4GBa4NWQtl6dHB4Pb3izX2JOEvDTFarlNsBj/63ZEzNNIAMs3Qw4fNCcSOXJA== - dependencies: - "@babel/helper-function-name" "^7.1.0" - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-transform-function-name@^7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.7.0.tgz#0fa786f1eef52e3b7d4fc02e54b2129de8a04c2a" - integrity sha512-P5HKu0d9+CzZxP5jcrWdpe7ZlFDe24bmqP6a6X8BHEBl/eizAsY8K6LX8LASZL0Jxdjm5eEfzp+FIrxCm/p8bA== - dependencies: - "@babel/helper-function-name" "^7.7.0" - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-transform-literals@7.0.0-beta.47": - version "7.0.0-beta.47" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.0.0-beta.47.tgz#448fad196f062163684a38f10f14e83315892e9c" - integrity sha512-PxBw+52qWypwR76YfS2FlW4wZfp61SjIyt3OSPZeWnf0zVQWNVrlRRunJ7lBYudDYvyMwStAE/VynZ0fHtPgng== - dependencies: - "@babel/helper-plugin-utils" "7.0.0-beta.47" - -"@babel/plugin-transform-literals@^7.0.0", "@babel/plugin-transform-literals@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.2.0.tgz#690353e81f9267dad4fd8cfd77eafa86aba53ea1" - integrity sha512-2ThDhm4lI4oV7fVQ6pNNK+sx+c/GM5/SaML0w/r4ZB7sAneD/piDJtwdKlNckXeyGK7wlwg2E2w33C/Hh+VFCg== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-transform-member-expression-literals@^7.0.0", "@babel/plugin-transform-member-expression-literals@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.2.0.tgz#fa10aa5c58a2cb6afcf2c9ffa8cb4d8b3d489a2d" - integrity sha512-HiU3zKkSU6scTidmnFJ0bMX8hz5ixC93b4MHMiYebmk2lUVNGOboPsqQvx5LzooihijUoLR/v7Nc1rbBtnc7FA== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-transform-modules-amd@^7.5.0": - version "7.5.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.5.0.tgz#ef00435d46da0a5961aa728a1d2ecff063e4fb91" - integrity sha512-n20UsQMKnWrltocZZm24cRURxQnWIvsABPJlw/fvoy9c6AgHZzoelAIzajDHAQrDpuKFFPPcFGd7ChsYuIUMpg== - dependencies: - "@babel/helper-module-transforms" "^7.1.0" - "@babel/helper-plugin-utils" "^7.0.0" - babel-plugin-dynamic-import-node "^2.3.0" - -"@babel/plugin-transform-modules-commonjs@7.0.0-beta.47": - version "7.0.0-beta.47" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.0.0-beta.47.tgz#dfe5c6d867aa9614e55f7616736073edb3aab887" - integrity sha512-MYoLyexybBJ9ODWWMsMFzxAQey68RzhQNPjfNAYPhPPB3X160EZ5qOjWxRS2rYNvuYAxs6guy5OdrDpESqFSrQ== - dependencies: - "@babel/helper-module-transforms" "7.0.0-beta.47" - "@babel/helper-plugin-utils" "7.0.0-beta.47" - "@babel/helper-simple-access" "7.0.0-beta.47" - -"@babel/plugin-transform-modules-commonjs@^7.0.0": - version "7.5.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.5.0.tgz#425127e6045231360858eeaa47a71d75eded7a74" - integrity sha512-xmHq0B+ytyrWJvQTc5OWAC4ii6Dhr0s22STOoydokG51JjWhyYo5mRPXoi+ZmtHQhZZwuXNN+GG5jy5UZZJxIQ== - dependencies: - "@babel/helper-module-transforms" "^7.4.4" - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-simple-access" "^7.1.0" - babel-plugin-dynamic-import-node "^2.3.0" - -"@babel/plugin-transform-modules-commonjs@^7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.7.0.tgz#3e5ffb4fd8c947feede69cbe24c9554ab4113fe3" - integrity sha512-KEMyWNNWnjOom8vR/1+d+Ocz/mILZG/eyHHO06OuBQ2aNhxT62fr4y6fGOplRx+CxCSp3IFwesL8WdINfY/3kg== - dependencies: - "@babel/helper-module-transforms" "^7.7.0" - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-simple-access" "^7.7.0" - babel-plugin-dynamic-import-node "^2.3.0" - -"@babel/plugin-transform-modules-systemjs@^7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.7.0.tgz#9baf471213af9761c1617bb12fd278e629041417" - integrity sha512-ZAuFgYjJzDNv77AjXRqzQGlQl4HdUM6j296ee4fwKVZfhDR9LAGxfvXjBkb06gNETPnN0sLqRm9Gxg4wZH6dXg== - dependencies: - "@babel/helper-hoist-variables" "^7.7.0" - "@babel/helper-plugin-utils" "^7.0.0" - babel-plugin-dynamic-import-node "^2.3.0" - -"@babel/plugin-transform-modules-umd@^7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.7.0.tgz#d62c7da16670908e1d8c68ca0b5d4c0097b69966" - integrity sha512-u7eBA03zmUswQ9LQ7Qw0/ieC1pcAkbp5OQatbWUzY1PaBccvuJXUkYzoN1g7cqp7dbTu6Dp9bXyalBvD04AANA== - dependencies: - "@babel/helper-module-transforms" "^7.7.0" - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-transform-named-capturing-groups-regex@^7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.7.0.tgz#358e6fd869b9a4d8f5cbc79e4ed4fc340e60dcaf" - integrity sha512-+SicSJoKouPctL+j1pqktRVCgy+xAch1hWWTMy13j0IflnyNjaoskj+DwRQFimHbLqO3sq2oN2CXMvXq3Bgapg== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.7.0" - -"@babel/plugin-transform-new-target@^7.4.4": - version "7.4.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.4.4.tgz#18d120438b0cc9ee95a47f2c72bc9768fbed60a5" - integrity sha512-r1z3T2DNGQwwe2vPGZMBNjioT2scgWzK9BCnDEh+46z8EEwXBq24uRzd65I7pjtugzPSj921aM15RpESgzsSuA== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-transform-object-assign@7.0.0-beta.47": - version "7.0.0-beta.47" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-assign/-/plugin-transform-object-assign-7.0.0-beta.47.tgz#aaf0e4593c1e9b1ceb48fc8770736a029b17ed64" - integrity sha512-5Cc/5TsUjxiAuEQ4WUu+ccP0RI2/qcZWEZA7U87RH26rnhc0NDBZfUbEf1RGM5gBFLFVNzUAoFX8kRykHvl/nQ== - dependencies: - "@babel/helper-plugin-utils" "7.0.0-beta.47" - -"@babel/plugin-transform-object-assign@^7.0.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-assign/-/plugin-transform-object-assign-7.2.0.tgz#6fdeea42be17040f119e38e23ea0f49f31968bde" - integrity sha512-nmE55cZBPFgUktbF2OuoZgPRadfxosLOpSgzEPYotKSls9J4pEPcembi8r78RU37Rph6UApCpNmsQA4QMWK9Ng== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-transform-object-super@^7.0.0", "@babel/plugin-transform-object-super@^7.5.5": - version "7.5.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.5.5.tgz#c70021df834073c65eb613b8679cc4a381d1a9f9" - integrity sha512-un1zJQAhSosGFBduPgN/YFNvWVpRuHKU7IHBglLoLZsGmruJPOo6pbInneflUdmq7YvSVqhpPs5zdBvLnteltQ== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-replace-supers" "^7.5.5" - -"@babel/plugin-transform-parameters@7.0.0-beta.47": - version "7.0.0-beta.47" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.0.0-beta.47.tgz#46a4236040a6552a5f165fb3ddd60368954b0ddd" - integrity sha512-UzQG8draO+30Y8eNEREuGBfmEHLL7WFxOjmTBbaTrbdOrm/znCUThqcuNz8cyn2nrZbln7M/loQ3stjf9Pt9fQ== - dependencies: - "@babel/helper-call-delegate" "7.0.0-beta.47" - "@babel/helper-get-function-arity" "7.0.0-beta.47" - "@babel/helper-plugin-utils" "7.0.0-beta.47" - -"@babel/plugin-transform-parameters@^7.0.0", "@babel/plugin-transform-parameters@^7.4.4": - version "7.4.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.4.4.tgz#7556cf03f318bd2719fe4c922d2d808be5571e16" - integrity sha512-oMh5DUO1V63nZcu/ZVLQFqiihBGo4OpxJxR1otF50GMeCLiRx5nUdtokd+u9SuVJrvvuIh9OosRFPP4pIPnwmw== - dependencies: - "@babel/helper-call-delegate" "^7.4.4" - "@babel/helper-get-function-arity" "^7.0.0" - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-transform-property-literals@^7.0.0", "@babel/plugin-transform-property-literals@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.2.0.tgz#03e33f653f5b25c4eb572c98b9485055b389e905" - integrity sha512-9q7Dbk4RhgcLp8ebduOpCbtjh7C0itoLYHXd9ueASKAG/is5PQtMR5VJGka9NKqGhYEGn5ITahd4h9QeBMylWQ== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-transform-react-display-name@7.0.0-beta.47": - version "7.0.0-beta.47" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.0.0-beta.47.tgz#7a45c1703b8b33f252148ecf1b50dd54809de952" - integrity sha512-Rw1KWihSkGHbqHiQuiFu/beMakDtobW3eLSABw1w3BvRIc/UhBXxwyIxa/q/R9hWFBholAjmx9cKey8FnZPykw== - dependencies: - "@babel/helper-plugin-utils" "7.0.0-beta.47" - -"@babel/plugin-transform-react-display-name@^7.0.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.2.0.tgz#ebfaed87834ce8dc4279609a4f0c324c156e3eb0" - integrity sha512-Htf/tPa5haZvRMiNSQSFifK12gtr/8vwfr+A9y69uF0QcU77AVu4K7MiHEkTxF7lQoHOL0F9ErqgfNEAKgXj7A== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-transform-react-jsx-source@7.0.0-beta.47": - version "7.0.0-beta.47" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.0.0-beta.47.tgz#da8c01704b896409eae168a15045216e72d278dc" - integrity sha512-oZ6D9z+qql+tz7PjGp1CaxepxqDQQTusyjeKsWr7NdEa0v2j3sWLkfK4Aa7kU9BT0+j+r/LN4u33UBkBNVoVvw== - dependencies: - "@babel/helper-plugin-utils" "7.0.0-beta.47" - "@babel/plugin-syntax-jsx" "7.0.0-beta.47" - -"@babel/plugin-transform-react-jsx-source@^7.0.0": - version "7.5.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.5.0.tgz#583b10c49cf057e237085bcbd8cc960bd83bd96b" - integrity sha512-58Q+Jsy4IDCZx7kqEZuSDdam/1oW8OdDX8f+Loo6xyxdfg1yF0GE2XNJQSTZCaMol93+FBzpWiPEwtbMloAcPg== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-syntax-jsx" "^7.2.0" - -"@babel/plugin-transform-react-jsx@7.0.0-beta.47": - version "7.0.0-beta.47" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.0.0-beta.47.tgz#98c99a69be748d966c0aea08b5ca942ba3fc9ed1" - integrity sha512-HGian2BbCsyAqs6LntVVRpjXG9TkzhHfTynjUoMxOFL29doKEy/0s96SMvmbBSR/wMRKMd1OPvCiEYYxqZtr3g== - dependencies: - "@babel/helper-builder-react-jsx" "7.0.0-beta.47" - "@babel/helper-plugin-utils" "7.0.0-beta.47" - "@babel/plugin-syntax-jsx" "7.0.0-beta.47" - -"@babel/plugin-transform-react-jsx@^7.0.0": - version "7.3.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.3.0.tgz#f2cab99026631c767e2745a5368b331cfe8f5290" - integrity sha512-a/+aRb7R06WcKvQLOu4/TpjKOdvVEKRLWFpKcNuHhiREPgGRB4TQJxq07+EZLS8LFVYpfq1a5lDUnuMdcCpBKg== - dependencies: - "@babel/helper-builder-react-jsx" "^7.3.0" - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-syntax-jsx" "^7.2.0" - -"@babel/plugin-transform-regenerator@7.0.0-beta.47": - version "7.0.0-beta.47" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.0.0-beta.47.tgz#86500e1c404055fb98fc82b73b09bd053cacb516" - integrity sha512-JEPIiJyqYRfjOYUTZguLkb2HTwudReqLyOljpOXnJ/1ymwsiof4D6ul611DGlMxJMZJGQ6TBi59iY9GoJ6j4Iw== - dependencies: - regenerator-transform "^0.12.3" - -"@babel/plugin-transform-regenerator@^7.0.0": - version "7.4.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.4.5.tgz#629dc82512c55cee01341fb27bdfcb210354680f" - integrity sha512-gBKRh5qAaCWntnd09S8QC7r3auLCqq5DI6O0DlfoyDjslSBVqBibrMdsqO+Uhmx3+BlOmE/Kw1HFxmGbv0N9dA== - dependencies: - regenerator-transform "^0.14.0" - -"@babel/plugin-transform-regenerator@^7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.7.0.tgz#f1b20b535e7716b622c99e989259d7dd942dd9cc" - integrity sha512-AXmvnC+0wuj/cFkkS/HFHIojxH3ffSXE+ttulrqWjZZRaUOonfJc60e1wSNT4rV8tIunvu/R3wCp71/tLAa9xg== - dependencies: - regenerator-transform "^0.14.0" - -"@babel/plugin-transform-reserved-words@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.2.0.tgz#4792af87c998a49367597d07fedf02636d2e1634" - integrity sha512-fz43fqW8E1tAB3DKF19/vxbpib1fuyCwSPE418ge5ZxILnBhWyhtPgz8eh1RCGGJlwvksHkyxMxh0eenFi+kFw== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-transform-runtime@^7.0.0": - version "7.5.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.5.5.tgz#a6331afbfc59189d2135b2e09474457a8e3d28bc" - integrity sha512-6Xmeidsun5rkwnGfMOp6/z9nSzWpHFNVr2Jx7kwoq4mVatQfQx5S56drBgEHF+XQbKOdIaOiMIINvp/kAwMN+w== - dependencies: - "@babel/helper-module-imports" "^7.0.0" - "@babel/helper-plugin-utils" "^7.0.0" - resolve "^1.8.1" - semver "^5.5.1" - -"@babel/plugin-transform-shorthand-properties@7.0.0-beta.47": - version "7.0.0-beta.47" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.0.0-beta.47.tgz#00be44c4fad8fe2c00ed18ea15ea3c88dd519dbb" - integrity sha512-+o7/yb0Nrk4Gg/tnBgfBf+G1uGZbtkSluUnj8RyD37ajpDlWmysDjFEHSfktKcuD8YHeGz2M9AYNGcClk1fr/g== - dependencies: - "@babel/helper-plugin-utils" "7.0.0-beta.47" - -"@babel/plugin-transform-shorthand-properties@^7.0.0", "@babel/plugin-transform-shorthand-properties@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.2.0.tgz#6333aee2f8d6ee7e28615457298934a3b46198f0" - integrity sha512-QP4eUM83ha9zmYtpbnyjTLAGKQritA5XW/iG9cjtuOI8s1RuL/3V6a3DeSHfKutJQ+ayUfeZJPcnCYEQzaPQqg== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-transform-spread@7.0.0-beta.47": - version "7.0.0-beta.47" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.0.0-beta.47.tgz#3feadb02292ed1e9b75090d651b9df88a7ab5c50" - integrity sha512-LFAozFdfT4bE2AQw2BnjzLufTX4GBsTUHUGRhT8XNoDYuGnV+7k9Yj6JU3/7csJc9u6W91PArYgoO+D56CMw6Q== - dependencies: - "@babel/helper-plugin-utils" "7.0.0-beta.47" - -"@babel/plugin-transform-spread@^7.0.0": - version "7.2.2" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.2.2.tgz#3103a9abe22f742b6d406ecd3cd49b774919b406" - integrity sha512-KWfky/58vubwtS0hLqEnrWJjsMGaOeSBn90Ezn5Jeg9Z8KKHmELbP1yGylMlm5N6TPKeY9A2+UaSYLdxahg01w== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-transform-spread@^7.6.2": - version "7.6.2" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.6.2.tgz#fc77cf798b24b10c46e1b51b1b88c2bf661bb8dd" - integrity sha512-DpSvPFryKdK1x+EDJYCy28nmAaIMdxmhot62jAXF/o99iA33Zj2Lmcp3vDmz+MUh0LNYVPvfj5iC3feb3/+PFg== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-transform-sticky-regex@7.0.0-beta.47": - version "7.0.0-beta.47" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.0.0-beta.47.tgz#c0aa347d76b5dc87d3b37ac016ada3f950605131" - integrity sha512-+Rc6NihGoXcwAqAxbiumvzOYxRR0aUg1ZExfyHnI5QnQf0sf4xAfgT/YpGvEgLd5Ci0rka+IWSj54PhzZkhuTg== - dependencies: - "@babel/helper-plugin-utils" "7.0.0-beta.47" - "@babel/helper-regex" "7.0.0-beta.47" - -"@babel/plugin-transform-sticky-regex@^7.0.0", "@babel/plugin-transform-sticky-regex@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.2.0.tgz#a1e454b5995560a9c1e0d537dfc15061fd2687e1" - integrity sha512-KKYCoGaRAf+ckH8gEL3JHUaFVyNHKe3ASNsZ+AlktgHevvxGigoIttrEJb8iKN03Q7Eazlv1s6cx2B2cQ3Jabw== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-regex" "^7.0.0" - -"@babel/plugin-transform-template-literals@7.0.0-beta.47": - version "7.0.0-beta.47" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.0.0-beta.47.tgz#5f7b5badf64c4c5da79026aeab03001e62a6ee5f" - integrity sha512-ORfrfN/gQoRuI+xf+kOa2i/yvXfedFRgH+KtgoIrpUQom7OhexxzD280x80LMCIkdaVGzYhvlC3kdJkFMWAfUg== - dependencies: - "@babel/helper-annotate-as-pure" "7.0.0-beta.47" - "@babel/helper-plugin-utils" "7.0.0-beta.47" - -"@babel/plugin-transform-template-literals@^7.0.0", "@babel/plugin-transform-template-literals@^7.4.4": - version "7.4.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.4.4.tgz#9d28fea7bbce637fb7612a0750989d8321d4bcb0" - integrity sha512-mQrEC4TWkhLN0z8ygIvEL9ZEToPhG5K7KDW3pzGqOfIGZ28Jb0POUkeWcoz8HnHvhFy6dwAT1j8OzqN8s804+g== - dependencies: - "@babel/helper-annotate-as-pure" "^7.0.0" - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-transform-typeof-symbol@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.2.0.tgz#117d2bcec2fbf64b4b59d1f9819894682d29f2b2" - integrity sha512-2LNhETWYxiYysBtrBTqL8+La0jIoQQnIScUJc74OYvUGRmkskNY4EzLCnjHBzdmb38wqtTaixpo1NctEcvMDZw== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-transform-typescript@^7.0.0": - version "7.5.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.5.5.tgz#6d862766f09b2da1cb1f7d505fe2aedab6b7d4b8" - integrity sha512-pehKf4m640myZu5B2ZviLaiBlxMCjSZ1qTEO459AXKX5GnPueyulJeCqZFs1nz/Ya2dDzXQ1NxZ/kKNWyD4h6w== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.5.5" - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-syntax-typescript" "^7.2.0" - -"@babel/plugin-transform-unicode-regex@7.0.0-beta.47": - version "7.0.0-beta.47" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.0.0-beta.47.tgz#efed0b2f1dfbf28283502234a95b4be88f7fdcb6" - integrity sha512-44nWn421tMVZ/A4+1uppzoAO7nrlwWzefMr9JUi5G+tXl0DLEtWy+F7L6zCVw19C4OAOA6WlolVro5CEs6g6AQ== - dependencies: - "@babel/helper-plugin-utils" "7.0.0-beta.47" - "@babel/helper-regex" "7.0.0-beta.47" - regexpu-core "^4.1.3" - -"@babel/plugin-transform-unicode-regex@^7.0.0": - version "7.4.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.4.4.tgz#ab4634bb4f14d36728bf5978322b35587787970f" - integrity sha512-il+/XdNw01i93+M9J9u4T7/e/Ue/vWfNZE4IRUQjplu2Mqb/AFTDimkw2tdEdSH50wuQXZAbXSql0UphQke+vA== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-regex" "^7.4.4" - regexpu-core "^4.5.4" - -"@babel/plugin-transform-unicode-regex@^7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.7.0.tgz#743d9bcc44080e3cc7d49259a066efa30f9187a3" - integrity sha512-RrThb0gdrNwFAqEAAx9OWgtx6ICK69x7i9tCnMdVrxQwSDp/Abu9DXFU5Hh16VP33Rmxh04+NGW28NsIkFvFKA== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.7.0" - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/preset-env@^7.7.1": - version "7.7.1" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.7.1.tgz#04a2ff53552c5885cf1083e291c8dd5490f744bb" - integrity sha512-/93SWhi3PxcVTDpSqC+Dp4YxUu3qZ4m7I76k0w73wYfn7bGVuRIO4QUz95aJksbS+AD1/mT1Ie7rbkT0wSplaA== - dependencies: - "@babel/helper-module-imports" "^7.7.0" - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-proposal-async-generator-functions" "^7.7.0" - "@babel/plugin-proposal-dynamic-import" "^7.7.0" - "@babel/plugin-proposal-json-strings" "^7.2.0" - "@babel/plugin-proposal-object-rest-spread" "^7.6.2" - "@babel/plugin-proposal-optional-catch-binding" "^7.2.0" - "@babel/plugin-proposal-unicode-property-regex" "^7.7.0" - "@babel/plugin-syntax-async-generators" "^7.2.0" - "@babel/plugin-syntax-dynamic-import" "^7.2.0" - "@babel/plugin-syntax-json-strings" "^7.2.0" - "@babel/plugin-syntax-object-rest-spread" "^7.2.0" - "@babel/plugin-syntax-optional-catch-binding" "^7.2.0" - "@babel/plugin-syntax-top-level-await" "^7.7.0" - "@babel/plugin-transform-arrow-functions" "^7.2.0" - "@babel/plugin-transform-async-to-generator" "^7.7.0" - "@babel/plugin-transform-block-scoped-functions" "^7.2.0" - "@babel/plugin-transform-block-scoping" "^7.6.3" - "@babel/plugin-transform-classes" "^7.7.0" - "@babel/plugin-transform-computed-properties" "^7.2.0" - "@babel/plugin-transform-destructuring" "^7.6.0" - "@babel/plugin-transform-dotall-regex" "^7.7.0" - "@babel/plugin-transform-duplicate-keys" "^7.5.0" - "@babel/plugin-transform-exponentiation-operator" "^7.2.0" - "@babel/plugin-transform-for-of" "^7.4.4" - "@babel/plugin-transform-function-name" "^7.7.0" - "@babel/plugin-transform-literals" "^7.2.0" - "@babel/plugin-transform-member-expression-literals" "^7.2.0" - "@babel/plugin-transform-modules-amd" "^7.5.0" - "@babel/plugin-transform-modules-commonjs" "^7.7.0" - "@babel/plugin-transform-modules-systemjs" "^7.7.0" - "@babel/plugin-transform-modules-umd" "^7.7.0" - "@babel/plugin-transform-named-capturing-groups-regex" "^7.7.0" - "@babel/plugin-transform-new-target" "^7.4.4" - "@babel/plugin-transform-object-super" "^7.5.5" - "@babel/plugin-transform-parameters" "^7.4.4" - "@babel/plugin-transform-property-literals" "^7.2.0" - "@babel/plugin-transform-regenerator" "^7.7.0" - "@babel/plugin-transform-reserved-words" "^7.2.0" - "@babel/plugin-transform-shorthand-properties" "^7.2.0" - "@babel/plugin-transform-spread" "^7.6.2" - "@babel/plugin-transform-sticky-regex" "^7.2.0" - "@babel/plugin-transform-template-literals" "^7.4.4" - "@babel/plugin-transform-typeof-symbol" "^7.2.0" - "@babel/plugin-transform-unicode-regex" "^7.7.0" - "@babel/types" "^7.7.1" - browserslist "^4.6.0" - core-js-compat "^3.1.1" - invariant "^2.2.2" - js-levenshtein "^1.1.3" - semver "^5.5.0" - -"@babel/register@^7.0.0": - version "7.6.2" - resolved "https://registry.yarnpkg.com/@babel/register/-/register-7.6.2.tgz#25765a922202cb06f8bdac5a3b1e70cd6bf3dd45" - integrity sha512-xgZk2LRZvt6i2SAUWxc7ellk4+OYRgS3Zpsnr13nMS1Qo25w21Uu8o6vTOAqNaxiqrnv30KTYzh9YWY2k21CeQ== - dependencies: - find-cache-dir "^2.0.0" - lodash "^4.17.13" - mkdirp "^0.5.1" - pirates "^4.0.0" - source-map-support "^0.5.9" - -"@babel/register@^7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/register/-/register-7.7.0.tgz#4e23ecf840296ef79c605baaa5c89e1a2426314b" - integrity sha512-HV3GJzTvSoyOMWGYn2TAh6uL6g+gqKTgEZ99Q3+X9UURT1VPT/WcU46R61XftIc5rXytcOHZ4Z0doDlsjPomIg== - dependencies: - find-cache-dir "^2.0.0" - lodash "^4.17.13" - make-dir "^2.1.0" - pirates "^4.0.0" - source-map-support "^0.5.16" - -"@babel/runtime@^7.0.0": - version "7.6.0" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.6.0.tgz#4fc1d642a9fd0299754e8b5de62c631cf5568205" - integrity sha512-89eSBLJsxNxOERC0Op4vd+0Bqm6wRMqMbFtV3i0/fbaWw/mJ8Q3eBvgX0G4SyrOOLCtbu98HspF8o09MRT+KzQ== - dependencies: - regenerator-runtime "^0.13.2" - -"@babel/template@7.0.0-beta.47": - version "7.0.0-beta.47" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.0.0-beta.47.tgz#0473970a7c0bee7a1a18c1ca999d3ba5e5bad83d" - integrity sha512-mAzrOCLwOb4jAobHi0kTwIkoamP1Do28c6zxvrDXjYSJFZHz6KGuzMaT0AV7ZCq7M3si7QypVVMVX2bE6IsuOg== - dependencies: - "@babel/code-frame" "7.0.0-beta.47" - "@babel/types" "7.0.0-beta.47" - babylon "7.0.0-beta.47" - lodash "^4.17.5" - -"@babel/template@^7.0.0", "@babel/template@^7.1.0", "@babel/template@^7.4.0", "@babel/template@^7.4.4", "@babel/template@^7.6.0": - version "7.6.0" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.6.0.tgz#7f0159c7f5012230dad64cca42ec9bdb5c9536e6" - integrity sha512-5AEH2EXD8euCk446b7edmgFdub/qfH1SN6Nii3+fyXP807QRx9Q73A2N5hNwRRslC2H9sNzaFhsPubkS4L8oNQ== - dependencies: - "@babel/code-frame" "^7.0.0" - "@babel/parser" "^7.6.0" - "@babel/types" "^7.6.0" - -"@babel/template@^7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.7.0.tgz#4fadc1b8e734d97f56de39c77de76f2562e597d0" - integrity sha512-OKcwSYOW1mhWbnTBgQY5lvg1Fxg+VyfQGjcBduZFljfc044J5iDlnDSfhQ867O17XHiSCxYHUxHg2b7ryitbUQ== - dependencies: - "@babel/code-frame" "^7.0.0" - "@babel/parser" "^7.7.0" - "@babel/types" "^7.7.0" - -"@babel/traverse@7.0.0-beta.47": - version "7.0.0-beta.47" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.0.0-beta.47.tgz#0e57fdbb9ff3a909188b6ebf1e529c641e6c82a4" - integrity sha512-kYGGs//OnUnei+9TTldxlgf7llprj7VUeDKtG50+g+0k1g0yZyrkEgbyFheYFdnudR8IDEHOEXVsUuY82r5Aiw== - dependencies: - "@babel/code-frame" "7.0.0-beta.47" - "@babel/generator" "7.0.0-beta.47" - "@babel/helper-function-name" "7.0.0-beta.47" - "@babel/helper-split-export-declaration" "7.0.0-beta.47" - "@babel/types" "7.0.0-beta.47" - babylon "7.0.0-beta.47" - debug "^3.1.0" - globals "^11.1.0" - invariant "^2.2.0" - lodash "^4.17.5" - -"@babel/traverse@^7.0.0", "@babel/traverse@^7.1.0", "@babel/traverse@^7.4.3", "@babel/traverse@^7.4.4", "@babel/traverse@^7.5.5", "@babel/traverse@^7.6.2", "@babel/traverse@^7.6.3": - version "7.6.3" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.6.3.tgz#66d7dba146b086703c0fb10dd588b7364cec47f9" - integrity sha512-unn7P4LGsijIxaAJo/wpoU11zN+2IaClkQAxcJWBNCMS6cmVh802IyLHNkAjQ0iYnRS3nnxk5O3fuXW28IMxTw== - dependencies: - "@babel/code-frame" "^7.5.5" - "@babel/generator" "^7.6.3" - "@babel/helper-function-name" "^7.1.0" - "@babel/helper-split-export-declaration" "^7.4.4" - "@babel/parser" "^7.6.3" - "@babel/types" "^7.6.3" - debug "^4.1.0" - globals "^11.1.0" - lodash "^4.17.13" - -"@babel/traverse@^7.7.0", "@babel/traverse@^7.7.2": - version "7.7.2" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.7.2.tgz#ef0a65e07a2f3c550967366b3d9b62a2dcbeae09" - integrity sha512-TM01cXib2+rgIZrGJOLaHV/iZUAxf4A0dt5auY6KNZ+cm6aschuJGqKJM3ROTt3raPUdIDk9siAufIFEleRwtw== - dependencies: - "@babel/code-frame" "^7.5.5" - "@babel/generator" "^7.7.2" - "@babel/helper-function-name" "^7.7.0" - "@babel/helper-split-export-declaration" "^7.7.0" - "@babel/parser" "^7.7.2" - "@babel/types" "^7.7.2" - debug "^4.1.0" - globals "^11.1.0" - lodash "^4.17.13" - -"@babel/types@7.0.0-beta.47": - version "7.0.0-beta.47" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.0.0-beta.47.tgz#e6fcc1a691459002c2671d558a586706dddaeef8" - integrity sha512-MOP5pOosg7JETrVGg8OQyzmUmbyoSopT5j2HlblHsto89mPz3cmxzn1IA4UNUmnWKgeticSwfhS+Gdy25IIlBQ== - dependencies: - esutils "^2.0.2" - lodash "^4.17.5" - to-fast-properties "^2.0.0" - -"@babel/types@^7.0.0", "@babel/types@^7.2.0", "@babel/types@^7.3.0", "@babel/types@^7.4.0", "@babel/types@^7.4.4", "@babel/types@^7.5.5", "@babel/types@^7.6.0", "@babel/types@^7.6.3": - version "7.6.3" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.6.3.tgz#3f07d96f854f98e2fbd45c64b0cb942d11e8ba09" - integrity sha512-CqbcpTxMcpuQTMhjI37ZHVgjBkysg5icREQIEZ0eG1yCNwg3oy+5AaLiOKmjsCj6nqOsa6Hf0ObjRVwokb7srA== - dependencies: - esutils "^2.0.2" - lodash "^4.17.13" - to-fast-properties "^2.0.0" - -"@babel/types@^7.7.0", "@babel/types@^7.7.1", "@babel/types@^7.7.2": - version "7.7.2" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.7.2.tgz#550b82e5571dcd174af576e23f0adba7ffc683f7" - integrity sha512-YTf6PXoh3+eZgRCBzzP25Bugd2ngmpQVrk7kXX0i5N9BO7TFBtIgZYs7WtxtOGs8e6A4ZI7ECkbBCEHeXocvOA== - dependencies: - esutils "^2.0.2" - lodash "^4.17.13" - to-fast-properties "^2.0.0" - -"@mrmlnc/readdir-enhanced@^2.2.1": - version "2.2.1" - resolved "https://registry.yarnpkg.com/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz#524af240d1a360527b730475ecfa1344aa540dde" - integrity sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g== - dependencies: - call-me-maybe "^1.0.1" - glob-to-regexp "^0.3.0" - -"@nodelib/fs.stat@^1.1.2": - version "1.1.3" - resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz#2b5a3ab3f918cca48a8c754c08168e3f03eba61b" - integrity sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw== - -"@react-navigation/core@~3.4.1": - version "3.4.2" - resolved "https://registry.yarnpkg.com/@react-navigation/core/-/core-3.4.2.tgz#bec563e94fde40fbab3730cdc97f22afbb2a1498" - integrity sha512-7G+iDzLSTeOUU4vVZeRZKJ+Bd7ds7ZxYNqZcB8i0KlBeQEQfR74Ounfu/p0KIEq2RiNnaE3QT7WVP3C87sebzw== - dependencies: - hoist-non-react-statics "^3.3.0" - path-to-regexp "^1.7.0" - query-string "^6.4.2" - react-is "^16.8.6" - -"@react-navigation/native@~3.5.0": - version "3.5.0" - resolved "https://registry.yarnpkg.com/@react-navigation/native/-/native-3.5.0.tgz#f5d16e0845ac26d1147d1caa481f18a00740e7ae" - integrity sha512-TmGOis++ejEXG3sqNJhCSKqB0/qLu3FQgDtO959qpqif36R/diR8SQwJqeSdofoEiK3CepdhFlTCeHdS1/+MsQ== - dependencies: - hoist-non-react-statics "^3.0.1" - react-native-safe-area-view "^0.14.1" - react-native-screens "^1.0.0 || ^1.0.0-alpha" - -abbrev@1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" - integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== - -absolute-path@^0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/absolute-path/-/absolute-path-0.0.0.tgz#a78762fbdadfb5297be99b15d35a785b2f095bf7" - integrity sha1-p4di+9rftSl76ZsV01p4Wy8JW/c= - -accepts@~1.3.5, accepts@~1.3.7: - version "1.3.7" - resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd" - integrity sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA== - dependencies: - mime-types "~2.1.24" - negotiator "0.6.2" - -ajv@^6.5.5: - version "6.10.2" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.10.2.tgz#d3cea04d6b017b2894ad69040fec8b623eb4bd52" - integrity sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw== - dependencies: - fast-deep-equal "^2.0.1" - fast-json-stable-stringify "^2.0.0" - json-schema-traverse "^0.4.1" - uri-js "^4.2.2" - -ansi-align@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-2.0.0.tgz#c36aeccba563b89ceb556f3690f0b1d9e3547f7f" - integrity sha1-w2rsy6VjuJzrVW82kPCx2eNUf38= - dependencies: - string-width "^2.0.0" - -ansi-colors@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-1.1.0.tgz#6374b4dd5d4718ff3ce27a671a3b1cad077132a9" - integrity sha512-SFKX67auSNoVR38N3L+nvsPjOE0bybKTYbkf5tRvushrAPQ9V75huw0ZxBkKVeRU9kqH3d6HA4xTckbwZ4ixmA== - dependencies: - ansi-wrap "^0.1.0" - -ansi-cyan@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/ansi-cyan/-/ansi-cyan-0.1.1.tgz#538ae528af8982f28ae30d86f2f17456d2609873" - integrity sha1-U4rlKK+JgvKK4w2G8vF0VtJgmHM= - dependencies: - ansi-wrap "0.1.0" - -ansi-escapes@^3.0.0, ansi-escapes@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.2.0.tgz#8780b98ff9dbf5638152d1f1fe5c1d7b4442976b" - integrity sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ== - -ansi-gray@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/ansi-gray/-/ansi-gray-0.1.1.tgz#2962cf54ec9792c48510a3deb524436861ef7251" - integrity sha1-KWLPVOyXksSFEKPetSRDaGHvclE= - dependencies: - ansi-wrap "0.1.0" - -ansi-red@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/ansi-red/-/ansi-red-0.1.1.tgz#8c638f9d1080800a353c9c28c8a81ca4705d946c" - integrity sha1-jGOPnRCAgAo1PJwoyKgcpHBdlGw= - dependencies: - ansi-wrap "0.1.0" - -ansi-regex@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" - integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8= - -ansi-regex@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" - integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg= - -ansi-regex@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" - integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg== - -ansi-styles@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" - integrity sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4= - -ansi-styles@^3.2.0, ansi-styles@^3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" - integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== - dependencies: - color-convert "^1.9.0" - -ansi-wrap@0.1.0, ansi-wrap@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/ansi-wrap/-/ansi-wrap-0.1.0.tgz#a82250ddb0015e9a27ca82e82ea603bbfa45efaf" - integrity sha1-qCJQ3bABXponyoLoLqYDu/pF768= - -ansi@^0.3.0, ansi@~0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/ansi/-/ansi-0.3.1.tgz#0c42d4fb17160d5a9af1e484bace1c66922c1b21" - integrity sha1-DELU+xcWDVqa8eSEus4cZpIsGyE= - -anymatch@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" - integrity sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw== - dependencies: - micromatch "^3.1.4" - normalize-path "^2.1.1" - -appdmg@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/appdmg/-/appdmg-0.6.0.tgz#81b3beab624ab458e6104d87c5cfa4b172203821" - integrity sha512-vDz8cMf5c6BfoS72OmmHzzuxG5DFVDM6YCAkscjYh3GASGEBBRCZ10Bn515ZPSPHOpfI9Xu3MlApbd49C58pJg== - dependencies: - async "^1.4.2" - ds-store "^0.1.5" - execa "^1.0.0" - fs-temp "^1.0.0" - fs-xattr "^0.3.0" - image-size "^0.7.4" - is-my-json-valid "^2.20.0" - minimist "^1.1.3" - parse-color "^1.0.0" - path-exists "^4.0.0" - repeat-string "^1.5.4" - -append-transform@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/append-transform/-/append-transform-1.0.0.tgz#046a52ae582a228bd72f58acfbe2967c678759ab" - integrity sha512-P009oYkeHyU742iSZJzZZywj4QRJdnTWffaKuJQLablCZ1uz6/cW4yaRgcDaoQ+uwOxxnt0gRUcwfsNP2ri0gw== - dependencies: - default-require-extensions "^2.0.0" - -aproba@^1.0.3: - version "1.2.0" - resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" - integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw== - -archy@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/archy/-/archy-1.0.0.tgz#f9c8c13757cc1dd7bc379ac77b2c62a5c2868c40" - integrity sha1-+cjBN1fMHde8N5rHeyxipcKGjEA= - -are-we-there-yet@~1.1.2: - version "1.1.5" - resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz#4b35c2944f062a8bfcda66410760350fe9ddfc21" - integrity sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w== - dependencies: - delegates "^1.0.0" - readable-stream "^2.0.6" - -argparse@^1.0.7: - version "1.0.10" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" - integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== - dependencies: - sprintf-js "~1.0.2" - -aria-query@^0.7.0: - version "0.7.1" - resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-0.7.1.tgz#26cbb5aff64144b0a825be1846e0b16cfa00b11e" - integrity sha1-Jsu1r/ZBRLCoJb4YRuCxbPoAsR4= - dependencies: - ast-types-flow "0.0.7" - commander "^2.11.0" - -arr-diff@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-1.1.0.tgz#687c32758163588fef7de7b36fabe495eb1a399a" - integrity sha1-aHwydYFjWI/vfeezb6vklesaOZo= - dependencies: - arr-flatten "^1.0.1" - array-slice "^0.2.3" - -arr-diff@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-2.0.0.tgz#8f3b827f955a8bd669697e4a4256ac3ceae356cf" - integrity sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8= - dependencies: - arr-flatten "^1.0.1" - -arr-diff@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" - integrity sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA= - -arr-flatten@^1.0.1, arr-flatten@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" - integrity sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg== - -arr-union@^2.0.1: - version "2.1.0" - resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-2.1.0.tgz#20f9eab5ec70f5c7d215b1077b1c39161d292c7d" - integrity sha1-IPnqtexw9cfSFbEHexw5Fh0pLH0= - -arr-union@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" - integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ= - -array-buffer-from-string@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/array-buffer-from-string/-/array-buffer-from-string-0.1.0.tgz#3b14351f86149d84efc612c5ada7ed85169d7b07" - integrity sha1-OxQ1H4YUnYTvxhLFrafthRadewc= - -array-differ@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/array-differ/-/array-differ-1.0.0.tgz#eff52e3758249d33be402b8bb8e564bb2b5d4031" - integrity sha1-7/UuN1gknTO+QCuLuOVkuytdQDE= - -array-filter@~0.0.0: - version "0.0.1" - resolved "https://registry.yarnpkg.com/array-filter/-/array-filter-0.0.1.tgz#7da8cf2e26628ed732803581fd21f67cacd2eeec" - integrity sha1-fajPLiZijtcygDWB/SH2fKzS7uw= - -array-includes@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.0.3.tgz#184b48f62d92d7452bb31b323165c7f8bd02266d" - integrity sha1-GEtI9i2S10UrsxsyMWXH+L0CJm0= - dependencies: - define-properties "^1.1.2" - es-abstract "^1.7.0" - -array-map@~0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/array-map/-/array-map-0.0.0.tgz#88a2bab73d1cf7bcd5c1b118a003f66f665fa662" - integrity sha1-iKK6tz0c97zVwbEYoAP2b2ZfpmI= - -array-reduce@~0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/array-reduce/-/array-reduce-0.0.0.tgz#173899d3ffd1c7d9383e4479525dbe278cab5f2b" - integrity sha1-FziZ0//Rx9k4PkR5Ul2+J4yrXys= - -array-slice@^0.2.3: - version "0.2.3" - resolved "https://registry.yarnpkg.com/array-slice/-/array-slice-0.2.3.tgz#dd3cfb80ed7973a75117cdac69b0b99ec86186f5" - integrity sha1-3Tz7gO15c6dRF82sabC5nshhhvU= - -array-union@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" - integrity sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk= - dependencies: - array-uniq "^1.0.1" - -array-uniq@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" - integrity sha1-r2rId6Jcx/dOBYiUdThY39sk/bY= - -array-unique@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53" - integrity sha1-odl8yvy8JiXMcPrc6zalDFiwGlM= - -array-unique@^0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" - integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg= - -arrify@^1.0.0, arrify@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" - integrity sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0= - -art@^0.10.0: - version "0.10.3" - resolved "https://registry.yarnpkg.com/art/-/art-0.10.3.tgz#b01d84a968ccce6208df55a733838c96caeeaea2" - integrity sha512-HXwbdofRTiJT6qZX/FnchtldzJjS3vkLJxQilc3Xj+ma2MXjY4UAyQ0ls1XZYVnDvVIBiFZbC6QsvtW86TD6tQ== - -asap@~2.0.3: - version "2.0.6" - resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" - integrity sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY= - -asn1@~0.2.3: - version "0.2.4" - resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.4.tgz#8d2475dfab553bb33e77b54e59e880bb8ce23136" - integrity sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg== - dependencies: - safer-buffer "~2.1.0" - -assert-plus@1.0.0, assert-plus@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" - integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU= - -assert@^1.4.1: - version "1.5.0" - resolved "https://registry.yarnpkg.com/assert/-/assert-1.5.0.tgz#55c109aaf6e0aefdb3dc4b71240c70bf574b18eb" - integrity sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA== - dependencies: - object-assign "^4.1.1" - util "0.10.3" - -assign-symbols@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" - integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c= - -ast-types-flow@0.0.7: - version "0.0.7" - resolved "https://registry.yarnpkg.com/ast-types-flow/-/ast-types-flow-0.0.7.tgz#f70b735c6bca1a5c9c22d982c3e39e7feba3bdad" - integrity sha1-9wtzXGvKGlycItmCw+Oef+ujva0= - -async-limiter@~1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd" - integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ== - -async@^1.4.2: - version "1.5.2" - resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" - integrity sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo= - -async@^2.4.0, async@^2.6.0: - version "2.6.3" - resolved "https://registry.yarnpkg.com/async/-/async-2.6.3.tgz#d72625e2344a3656e3a3ad4fa749fa83299d82ff" - integrity sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg== - dependencies: - lodash "^4.17.14" - -asynckit@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" - integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= - -atob@^2.1.1: - version "2.1.2" - resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" - integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== - -aws-sign2@~0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" - integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg= - -aws4@^1.8.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.8.0.tgz#f0e003d9ca9e7f59c7a508945d7b2ef9a04a542f" - integrity sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ== - -axobject-query@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-0.1.0.tgz#62f59dbc59c9f9242759ca349960e7a2fe3c36c0" - integrity sha1-YvWdvFnJ+SQnWco0mWDnov48NsA= - dependencies: - ast-types-flow "0.0.7" - -babel-plugin-dynamic-import-node@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.0.tgz#f00f507bdaa3c3e3ff6e7e5e98d90a7acab96f7f" - integrity sha512-o6qFkpeQEBxcqt0XYlWzAVxNCSCZdUgcR8IRlhD/8DylxjjO4foPcvTW0GGKa/cVt3rvxZ7o5ippJ+/0nvLhlQ== - dependencies: - object.assign "^4.1.0" - -babel-plugin-syntax-trailing-function-commas@^7.0.0-beta.0: - version "7.0.0-beta.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-7.0.0-beta.0.tgz#aa213c1435e2bffeb6fca842287ef534ad05d5cf" - integrity sha512-Xj9XuRuz3nTSbaTXWv3itLOcxyF4oPD8douBBmj7U9BBC6nEBYfyOJYQMf/8PJAFotC62UY5dFfIGEPr7WswzQ== - -babel-preset-fbjs@^3.0.1, babel-preset-fbjs@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/babel-preset-fbjs/-/babel-preset-fbjs-3.2.0.tgz#c0e6347d3e0379ed84b3c2434d3467567aa05297" - integrity sha512-5Jo+JeWiVz2wHUUyAlvb/sSYnXNig9r+HqGAOSfh5Fzxp7SnAaR/tEGRJ1ZX7C77kfk82658w6R5Z+uPATTD9g== - dependencies: - "@babel/plugin-proposal-class-properties" "^7.0.0" - "@babel/plugin-proposal-object-rest-spread" "^7.0.0" - "@babel/plugin-syntax-class-properties" "^7.0.0" - "@babel/plugin-syntax-flow" "^7.0.0" - "@babel/plugin-syntax-jsx" "^7.0.0" - "@babel/plugin-syntax-object-rest-spread" "^7.0.0" - "@babel/plugin-transform-arrow-functions" "^7.0.0" - "@babel/plugin-transform-block-scoped-functions" "^7.0.0" - "@babel/plugin-transform-block-scoping" "^7.0.0" - "@babel/plugin-transform-classes" "^7.0.0" - "@babel/plugin-transform-computed-properties" "^7.0.0" - "@babel/plugin-transform-destructuring" "^7.0.0" - "@babel/plugin-transform-flow-strip-types" "^7.0.0" - "@babel/plugin-transform-for-of" "^7.0.0" - "@babel/plugin-transform-function-name" "^7.0.0" - "@babel/plugin-transform-literals" "^7.0.0" - "@babel/plugin-transform-member-expression-literals" "^7.0.0" - "@babel/plugin-transform-modules-commonjs" "^7.0.0" - "@babel/plugin-transform-object-super" "^7.0.0" - "@babel/plugin-transform-parameters" "^7.0.0" - "@babel/plugin-transform-property-literals" "^7.0.0" - "@babel/plugin-transform-react-display-name" "^7.0.0" - "@babel/plugin-transform-react-jsx" "^7.0.0" - "@babel/plugin-transform-shorthand-properties" "^7.0.0" - "@babel/plugin-transform-spread" "^7.0.0" - "@babel/plugin-transform-template-literals" "^7.0.0" - babel-plugin-syntax-trailing-function-commas "^7.0.0-beta.0" - -babel-preset-react-native@^5.0.2: - version "5.0.2" - resolved "https://registry.yarnpkg.com/babel-preset-react-native/-/babel-preset-react-native-5.0.2.tgz#dfed62379712a9c017ff99ce4fbeac1e11d42285" - integrity sha512-Ua5JeQ1yGK8UoydMPzE2Ghq5raOKxXzpyApYDuHi4etIbXi5+GnCin19Nu+1obLQCf2Dxy9Y/GZwI0rnNOjggA== - dependencies: - "@babel/plugin-proposal-class-properties" "7.0.0-beta.47" - "@babel/plugin-proposal-object-rest-spread" "7.0.0-beta.47" - "@babel/plugin-proposal-optional-chaining" "7.0.0-beta.47" - "@babel/plugin-transform-arrow-functions" "7.0.0-beta.47" - "@babel/plugin-transform-block-scoping" "7.0.0-beta.47" - "@babel/plugin-transform-classes" "7.0.0-beta.47" - "@babel/plugin-transform-computed-properties" "7.0.0-beta.47" - "@babel/plugin-transform-destructuring" "7.0.0-beta.47" - "@babel/plugin-transform-exponentiation-operator" "7.0.0-beta.47" - "@babel/plugin-transform-flow-strip-types" "7.0.0-beta.47" - "@babel/plugin-transform-for-of" "7.0.0-beta.47" - "@babel/plugin-transform-function-name" "7.0.0-beta.47" - "@babel/plugin-transform-literals" "7.0.0-beta.47" - "@babel/plugin-transform-modules-commonjs" "7.0.0-beta.47" - "@babel/plugin-transform-object-assign" "7.0.0-beta.47" - "@babel/plugin-transform-parameters" "7.0.0-beta.47" - "@babel/plugin-transform-react-display-name" "7.0.0-beta.47" - "@babel/plugin-transform-react-jsx" "7.0.0-beta.47" - "@babel/plugin-transform-react-jsx-source" "7.0.0-beta.47" - "@babel/plugin-transform-regenerator" "7.0.0-beta.47" - "@babel/plugin-transform-shorthand-properties" "7.0.0-beta.47" - "@babel/plugin-transform-spread" "7.0.0-beta.47" - "@babel/plugin-transform-sticky-regex" "7.0.0-beta.47" - "@babel/plugin-transform-template-literals" "7.0.0-beta.47" - "@babel/plugin-transform-unicode-regex" "7.0.0-beta.47" - "@babel/template" "7.0.0-beta.47" - metro-babel7-plugin-react-transform "^0.39.1" - -babylon@7.0.0-beta.47: - version "7.0.0-beta.47" - resolved "https://registry.yarnpkg.com/babylon/-/babylon-7.0.0-beta.47.tgz#6d1fa44f0abec41ab7c780481e62fd9aafbdea80" - integrity sha512-+rq2cr4GDhtToEzKFD6KZZMDBXhjFAr9JjPw9pAppZACeEWqNM294j+NdBzkSHYXwzzBmVjZ3nEVJlOhbR2gOQ== - -balanced-match@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" - integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c= - -base-64@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/base-64/-/base-64-0.1.0.tgz#780a99c84e7d600260361511c4877613bf24f6bb" - integrity sha1-eAqZyE59YAJgNhURxId2E78k9rs= - -base32-encode@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/base32-encode/-/base32-encode-0.1.1.tgz#7510f6aa44e2c695b7efcb2673a454f8f8505ea0" - integrity sha512-jjc+6TC8PXrsxJ4CQr9ibioNhhAM1p/RvS9hy3Q+cxPphvXmLnFSkXoen2XXzNBrYjdmzajRtbFDl1x28F5F4A== - -base64-js@0.0.8: - version "0.0.8" - resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-0.0.8.tgz#1101e9544f4a76b1bc3b26d452ca96d7a35e7978" - integrity sha1-EQHpVE9KdrG8OybUUsqW16NeeXg= - -base64-js@1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.1.2.tgz#d6400cac1c4c660976d90d07a04351d89395f5e8" - integrity sha1-1kAMrBxMZgl22Q0HoENR2JOV9eg= - -base64-js@^1.0.2, base64-js@^1.1.2, base64-js@^1.2.3: - version "1.3.1" - resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.1.tgz#58ece8cb75dd07e71ed08c736abc5fac4dbf8df1" - integrity sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g== - -base@^0.11.1: - version "0.11.2" - resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f" - integrity sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg== - dependencies: - cache-base "^1.0.1" - class-utils "^0.3.5" - component-emitter "^1.2.1" - define-property "^1.0.0" - isobject "^3.0.1" - mixin-deep "^1.2.0" - pascalcase "^0.1.1" - -basic-auth@~2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/basic-auth/-/basic-auth-2.0.1.tgz#b998279bf47ce38344b4f3cf916d4679bbf51e3a" - integrity sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg== - dependencies: - safe-buffer "5.1.2" - -bcrypt-pbkdf@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" - integrity sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4= - dependencies: - tweetnacl "^0.14.3" - -big-integer@^1.6.7: - version "1.6.45" - resolved "https://registry.yarnpkg.com/big-integer/-/big-integer-1.6.45.tgz#1bf2fa1271bfd20d4c52c3d6c6f08cab8d91c77e" - integrity sha512-nmb9E7oEtVJ7SmSCH/DeJobXyuRmaofkpoQSimMFu3HKJ5MADtM825SPLhDuWhZ6TElLAQtgJbQmBZuHIRlZoA== - -"bignumber.js@git+https://github.com/status-im/bignumber.js.git#v4.0.2-status": - version "4.0.2" - resolved "git+https://github.com/status-im/bignumber.js.git#cc066a0a3d6bfe0c436c9957f4ea8344bf963c89" - -binaryextensions@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/binaryextensions/-/binaryextensions-2.1.2.tgz#c83c3d74233ba7674e4f313cb2a2b70f54e94b7c" - integrity sha512-xVNN69YGDghOqCCtA6FI7avYrr02mTJjOgB0/f1VPD3pJC8QEvjTKWc4epDx8AqxxA75NI0QpVM2gPJXUbE4Tg== - -bn.js@4.11.6: - version "4.11.6" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.6.tgz#53344adb14617a13f6e8dd2ce28905d1c0ba3215" - integrity sha1-UzRK2xRhehP26N0s4okF0cC6MhU= - -bn.js@4.11.8, bn.js@^4.11.6, bn.js@^4.4.0: - version "4.11.8" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.8.tgz#2cde09eb5ee341f484746bb0309b3253b1b1442f" - integrity sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA== - -boxen@^1.2.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/boxen/-/boxen-1.3.0.tgz#55c6c39a8ba58d9c61ad22cd877532deb665a20b" - integrity sha512-TNPjfTr432qx7yOjQyaXm3dSR0MH9vXp7eT1BFSl/C51g+EFnOR9hTg1IreahGBmDNCehscshe45f+C1TBZbLw== - dependencies: - ansi-align "^2.0.0" - camelcase "^4.0.0" - chalk "^2.0.1" - cli-boxes "^1.0.0" - string-width "^2.0.0" - term-size "^1.2.0" - widest-line "^2.0.0" - -bplist-creator@0.0.7: - version "0.0.7" - resolved "https://registry.yarnpkg.com/bplist-creator/-/bplist-creator-0.0.7.tgz#37df1536092824b87c42f957b01344117372ae45" - integrity sha1-N98VNgkoJLh8QvlXsBNEEXNyrkU= - dependencies: - stream-buffers "~2.2.0" - -bplist-creator@~0.0.3: - version "0.0.8" - resolved "https://registry.yarnpkg.com/bplist-creator/-/bplist-creator-0.0.8.tgz#56b2a6e79e9aec3fc33bf831d09347d73794e79c" - integrity sha512-Za9JKzD6fjLC16oX2wsXfc+qBEhJBJB1YPInoAQpMLhDuj5aVOv1baGeIQSq1Fr3OCqzvsoQcSBSwGId/Ja2PA== - dependencies: - stream-buffers "~2.2.0" - -bplist-parser@0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/bplist-parser/-/bplist-parser-0.1.1.tgz#d60d5dcc20cba6dc7e1f299b35d3e1f95dafbae6" - integrity sha1-1g1dzCDLptx+HymbNdPh+V2vuuY= - dependencies: - big-integer "^1.6.7" - -brace-expansion@^1.1.7: - version "1.1.11" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" - integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== - dependencies: - balanced-match "^1.0.0" - concat-map "0.0.1" - -braces@^1.8.2: - version "1.8.5" - resolved "https://registry.yarnpkg.com/braces/-/braces-1.8.5.tgz#ba77962e12dff969d6b76711e914b737857bf6a7" - integrity sha1-uneWLhLf+WnWt2cR6RS3N4V79qc= - dependencies: - expand-range "^1.8.1" - preserve "^0.2.0" - repeat-element "^1.1.2" - -braces@^2.3.1: - version "2.3.2" - resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" - integrity sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w== - dependencies: - arr-flatten "^1.1.0" - array-unique "^0.3.2" - extend-shallow "^2.0.1" - fill-range "^4.0.0" - isobject "^3.0.1" - repeat-element "^1.1.2" - snapdragon "^0.8.1" - snapdragon-node "^2.0.1" - split-string "^3.0.2" - to-regex "^3.0.1" - -brorand@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" - integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8= - -browserslist@^4.6.0, browserslist@^4.7.2: - version "4.7.2" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.7.2.tgz#1bb984531a476b5d389cedecb195b2cd69fb1348" - integrity sha512-uZavT/gZXJd2UTi9Ov7/Z340WOSQ3+m1iBVRUknf+okKxonL9P83S3ctiBDtuRmRu8PiCHjqyueqQ9HYlJhxiw== - dependencies: - caniuse-lite "^1.0.30001004" - electron-to-chromium "^1.3.295" - node-releases "^1.1.38" - -bser@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/bser/-/bser-2.1.0.tgz#65fc784bf7f87c009b973c12db6546902fa9c7b5" - integrity sha512-8zsjWrQkkBoLK6uxASk1nJ2SKv97ltiGDo6A3wA0/yRPz+CwmEyDo0hUrhIuukG2JHpAl3bvFIixw2/3Hi0DOg== - dependencies: - node-int64 "^0.4.0" - -buffer-alloc-unsafe@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz#bd7dc26ae2972d0eda253be061dba992349c19f0" - integrity sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg== - -buffer-alloc@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/buffer-alloc/-/buffer-alloc-1.2.0.tgz#890dd90d923a873e08e10e5fd51a57e5b7cce0ec" - integrity sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow== - dependencies: - buffer-alloc-unsafe "^1.1.0" - buffer-fill "^1.0.0" - -buffer-fill@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/buffer-fill/-/buffer-fill-1.0.0.tgz#f8f78b76789888ef39f205cd637f68e702122b2c" - integrity sha1-+PeLdniYiO858gXNY39o5wISKyw= - -buffer-from@^1.0.0, buffer-from@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" - integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== - -buffer-to-arraybuffer@^0.0.5: - version "0.0.5" - resolved "https://registry.yarnpkg.com/buffer-to-arraybuffer/-/buffer-to-arraybuffer-0.0.5.tgz#6064a40fa76eb43c723aba9ef8f6e1216d10511a" - integrity sha1-YGSkD6dutDxyOrqe+PbhIW0QURo= - -buffer@^3.6.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-3.6.0.tgz#a72c936f77b96bf52f5f7e7b467180628551defb" - integrity sha1-pyyTb3e5a/UvX357RnGAYoVR3vs= - dependencies: - base64-js "0.0.8" - ieee754 "^1.1.4" - isarray "^1.0.0" - -buffer@^5.4.3: - version "5.4.3" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.4.3.tgz#3fbc9c69eb713d323e3fc1a895eee0710c072115" - integrity sha512-zvj65TkFeIt3i6aj5bIvJDzjjQQGs4o/sNoezg1F1kYap9Nu2jcUdpwzRSJTHMMzG0H7bZkn4rNQpImhuxWX2A== - dependencies: - base64-js "^1.0.2" - ieee754 "^1.1.4" - -bytes@3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" - integrity sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg= - -cache-base@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" - integrity sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ== - dependencies: - collection-visit "^1.0.0" - component-emitter "^1.2.1" - get-value "^2.0.6" - has-value "^1.0.0" - isobject "^3.0.1" - set-value "^2.0.0" - to-object-path "^0.3.0" - union-value "^1.0.0" - unset-value "^1.0.0" - -caching-transform@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/caching-transform/-/caching-transform-3.0.2.tgz#601d46b91eca87687a281e71cef99791b0efca70" - integrity sha512-Mtgcv3lh3U0zRii/6qVgQODdPA4G3zhG+jtbCWj39RXuUFTMzH0vcdMtaJS1jPowd+It2Pqr6y3NJMQqOqCE2w== - dependencies: - hasha "^3.0.0" - make-dir "^2.0.0" - package-hash "^3.0.0" - write-file-atomic "^2.4.2" - -call-me-maybe@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/call-me-maybe/-/call-me-maybe-1.0.1.tgz#26d208ea89e37b5cbde60250a15f031c16a4d66b" - integrity sha1-JtII6onje1y95gJQoV8DHBak1ms= - -caller-callsite@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/caller-callsite/-/caller-callsite-2.0.0.tgz#847e0fce0a223750a9a027c54b33731ad3154134" - integrity sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ= - dependencies: - callsites "^2.0.0" - -caller-path@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-2.0.0.tgz#468f83044e369ab2010fac5f06ceee15bb2cb1f4" - integrity sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ= - dependencies: - caller-callsite "^2.0.0" - -callsites@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/callsites/-/callsites-2.0.0.tgz#06eb84f00eea413da86affefacbffb36093b3c50" - integrity sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA= - -camelcase@^4.0.0, camelcase@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd" - integrity sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0= - -camelcase@^5.0.0: - version "5.3.1" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" - integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== - -caniuse-lite@^1.0.30001004: - version "1.0.30001009" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001009.tgz#69b77997b882a7aee6af24c8d7d2fa27ee41f348" - integrity sha512-M3rEqHN6SaVjgo4bIik7HsGcWXsi+lI9WA0p51RPMFx5gXfduyOXWJrc0R4xBkSK1pgNf4CNgy5M+6H+WiEP8g== - -capture-exit@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/capture-exit/-/capture-exit-1.2.0.tgz#1c5fcc489fd0ab00d4f1ac7ae1072e3173fbab6f" - integrity sha1-HF/MSJ/QqwDU8ax64QcuMXP7q28= - dependencies: - rsvp "^3.3.3" - -capture-stack-trace@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/capture-stack-trace/-/capture-stack-trace-1.0.1.tgz#a6c0bbe1f38f3aa0b92238ecb6ff42c344d4135d" - integrity sha512-mYQLZnx5Qt1JgB1WEiMCf2647plpGeQ2NMR/5L0HNZzGQo4fuSPnK+wjfPnKZV0aiJDgzmWqqkV/g7JD+DW0qw== - -caseless@~0.12.0: - version "0.12.0" - resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" - integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= - -chalk@^1.1.1, chalk@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" - integrity sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg= - dependencies: - ansi-styles "^2.2.1" - escape-string-regexp "^1.0.2" - has-ansi "^2.0.0" - strip-ansi "^3.0.0" - supports-color "^2.0.0" - -chalk@^2.0.0, chalk@^2.0.1, chalk@^2.3.0, chalk@^2.4.1, chalk@^2.4.2: - version "2.4.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" - integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== - dependencies: - ansi-styles "^3.2.1" - escape-string-regexp "^1.0.5" - supports-color "^5.3.0" - -chance@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/chance/-/chance-1.1.3.tgz#414f08634ee479c7a316b569050ea20751b82dd3" - integrity sha512-XeJsdoVAzDb1WRPRuMBesRSiWpW1uNTo5Fd7mYxPJsAfgX71+jfuCOHOdbyBz2uAUZ8TwKcXgWk3DMedFfJkbg== - -chardet@^0.4.0: - version "0.4.2" - resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.4.2.tgz#b5473b33dc97c424e5d98dc87d55d4d8a29c8bf2" - integrity sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I= - -chardet@^0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" - integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== - -chownr@^1.1.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.2.tgz#a18f1e0b269c8a6a5d3c86eb298beb14c3dd7bf6" - integrity sha512-GkfeAQh+QNy3wquu9oIZr6SS5x7wGdSgNQvD10X3r+AZr1Oys22HW8kAmDMvNg2+Dm0TeGaEuO8gFwdBXxwO8A== - -ci-info@^1.5.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-1.6.0.tgz#2ca20dbb9ceb32d4524a683303313f0304b1e497" - integrity sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A== - -class-utils@^0.3.5: - version "0.3.6" - resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" - integrity sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg== - dependencies: - arr-union "^3.1.0" - define-property "^0.2.5" - isobject "^3.0.0" - static-extend "^0.1.1" - -cli-boxes@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-1.0.0.tgz#4fa917c3e59c94a004cd61f8ee509da651687143" - integrity sha1-T6kXw+WclKAEzWH47lCdplFocUM= - -cli-cursor@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5" - integrity sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU= - dependencies: - restore-cursor "^2.0.0" - -cli-table@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/cli-table/-/cli-table-0.3.1.tgz#f53b05266a8b1a0b934b3d0821e6e2dc5914ae23" - integrity sha1-9TsFJmqLGguTSz0IIebi3FkUriM= - dependencies: - colors "1.0.3" - -cli-width@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.0.tgz#ff19ede8a9a5e579324147b0c11f0fbcbabed639" - integrity sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk= - -cliui@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-3.2.0.tgz#120601537a916d29940f934da3b48d585a39213d" - integrity sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0= - dependencies: - string-width "^1.0.1" - strip-ansi "^3.0.1" - wrap-ansi "^2.0.0" - -cliui@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-5.0.0.tgz#deefcfdb2e800784aa34f46fa08e06851c7bbbc5" - integrity sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA== - dependencies: - string-width "^3.1.0" - strip-ansi "^5.2.0" - wrap-ansi "^5.1.0" - -clone-buffer@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/clone-buffer/-/clone-buffer-1.0.0.tgz#e3e25b207ac4e701af721e2cb5a16792cac3dc58" - integrity sha1-4+JbIHrE5wGvch4staFnksrD3Fg= - -clone-stats@^0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/clone-stats/-/clone-stats-0.0.1.tgz#b88f94a82cf38b8791d58046ea4029ad88ca99d1" - integrity sha1-uI+UqCzzi4eR1YBG6kAprYjKmdE= - -clone-stats@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/clone-stats/-/clone-stats-1.0.0.tgz#b3782dff8bb5474e18b9b6bf0fdfe782f8777680" - integrity sha1-s3gt/4u1R04Yuba/D9/ngvh3doA= - -clone@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" - integrity sha1-2jCcwmPfFZlMaIypAheco8fNfH4= - -clone@^2.1.1: - version "2.1.2" - resolved "https://registry.yarnpkg.com/clone/-/clone-2.1.2.tgz#1b7f4b9f591f1e8f83670401600345a02887435f" - integrity sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18= - -cloneable-readable@^1.0.0: - version "1.1.3" - resolved "https://registry.yarnpkg.com/cloneable-readable/-/cloneable-readable-1.1.3.tgz#120a00cb053bfb63a222e709f9683ea2e11d8cec" - integrity sha512-2EF8zTQOxYq70Y4XKtorQupqF0m49MBz2/yf5Bj+MHjvpG3Hy7sImifnqD6UA+TKYxeSV+u6qqQPawN5UvnpKQ== - dependencies: - inherits "^2.0.1" - process-nextick-args "^2.0.0" - readable-stream "^2.3.5" - -code-point-at@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" - integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c= - -collection-visit@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" - integrity sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA= - dependencies: - map-visit "^1.0.0" - object-visit "^1.0.0" - -color-convert@^1.9.0: - version "1.9.3" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" - integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== - dependencies: - color-name "1.1.3" - -color-convert@~0.5.0: - version "0.5.3" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-0.5.3.tgz#bdb6c69ce660fadffe0b0007cc447e1b9f7282bd" - integrity sha1-vbbGnOZg+t/+CwAHzER+G59ygr0= - -color-name@1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" - integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= - -color-support@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/color-support/-/color-support-1.1.3.tgz#93834379a1cc9a0c61f82f52f0d04322251bd5a2" - integrity sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg== - -colors@1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/colors/-/colors-1.0.3.tgz#0433f44d809680fdeb60ed260f1b0c262e82a40b" - integrity sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs= - -combined-stream@^1.0.6, combined-stream@~1.0.6: - version "1.0.8" - resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" - integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== - dependencies: - delayed-stream "~1.0.0" - -commander@^2.11.0, commander@^2.9.0, commander@~2.20.0: - version "2.20.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.0.tgz#d58bb2b5c1ee8f87b0d340027e9e94e222c5a422" - integrity sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ== - -commander@~2.13.0: - version "2.13.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.13.0.tgz#6964bca67685df7c1f1430c584f07d7597885b9c" - integrity sha512-MVuS359B+YzaWqjCL/c+22gfryv+mCBPHAv3zyVI2GN8EY6IRP8VwtasXn8jyyhvvq84R4ImN1OKRtcbIasjYA== - -commondir@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" - integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs= - -component-emitter@^1.2.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" - integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg== - -compressible@~2.0.16: - version "2.0.17" - resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.17.tgz#6e8c108a16ad58384a977f3a482ca20bff2f38c1" - integrity sha512-BGHeLCK1GV7j1bSmQQAi26X+GgWcTjLr/0tzSvMCl3LH1w1IJ4PFSPoV5316b30cneTziC+B1a+3OjoSUcQYmw== - dependencies: - mime-db ">= 1.40.0 < 2" - -compression@^1.7.1: - version "1.7.4" - resolved "https://registry.yarnpkg.com/compression/-/compression-1.7.4.tgz#95523eff170ca57c29a0ca41e6fe131f41e5bb8f" - integrity sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ== - dependencies: - accepts "~1.3.5" - bytes "3.0.0" - compressible "~2.0.16" - debug "2.6.9" - on-headers "~1.0.2" - safe-buffer "5.1.2" - vary "~1.1.2" - -concat-map@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" - integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= - -concat-stream@^1.6.0: - version "1.6.2" - resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" - integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== - dependencies: - buffer-from "^1.0.0" - inherits "^2.0.3" - readable-stream "^2.2.2" - typedarray "^0.0.6" - -configstore@^3.0.0: - version "3.1.2" - resolved "https://registry.yarnpkg.com/configstore/-/configstore-3.1.2.tgz#c6f25defaeef26df12dd33414b001fe81a543f8f" - integrity sha512-vtv5HtGjcYUgFrXc6Kx747B83MRRVS5R1VTEQoXvuP+kMI+if6uywV0nDGoiydJRy4yk7h9od5Og0kxx4zUXmw== - dependencies: - dot-prop "^4.1.0" - graceful-fs "^4.1.2" - make-dir "^1.0.0" - unique-string "^1.0.0" - write-file-atomic "^2.0.0" - xdg-basedir "^3.0.0" - -connect@^3.6.5: - version "3.7.0" - resolved "https://registry.yarnpkg.com/connect/-/connect-3.7.0.tgz#5d49348910caa5e07a01800b030d0c35f20484f8" - integrity sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ== - dependencies: - debug "2.6.9" - finalhandler "1.1.2" - parseurl "~1.3.3" - utils-merge "1.0.1" - -console-control-strings@^1.0.0, console-control-strings@~1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" - integrity sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4= - -convert-source-map@^1.1.0, convert-source-map@^1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.6.0.tgz#51b537a8c43e0f04dec1993bffcdd504e758ac20" - integrity sha512-eFu7XigvxdZ1ETfbgPBohgyQ/Z++C0eEhTor0qRwBw9unw+L0/6V8wkSuGgzdThkiS5lSpdptOQPD8Ak40a+7A== - dependencies: - safe-buffer "~5.1.1" - -convert-source-map@^1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.7.0.tgz#17a2cb882d7f77d3490585e2ce6c524424a3a442" - integrity sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA== - dependencies: - safe-buffer "~5.1.1" - -copy-descriptor@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" - integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= - -core-js-compat@^3.1.1: - version "3.4.1" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.4.1.tgz#e12c5a3ef9fcb50fd9d9a32805bfe674f9139246" - integrity sha512-YdeJI26gLc0CQJ9asLE5obEgBz2I0+CIgnoTbS2T0d5IPQw/OCgCIFR527RmpduxjrB3gSEHoGOCTq9sigOyfw== - dependencies: - browserslist "^4.7.2" - semver "^6.3.0" - -core-js@^1.0.0: - version "1.2.7" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-1.2.7.tgz#652294c14651db28fa93bd2d5ff2983a4f08c636" - integrity sha1-ZSKUwUZR2yj6k70tX/KYOk8IxjY= - -core-js@^2.2.2, core-js@^2.4.1: - version "2.6.9" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.9.tgz#6b4b214620c834152e179323727fc19741b084f2" - integrity sha512-HOpZf6eXmnl7la+cUdMnLvUxKNqLUzJvgIziQ0DiF3JwSImNphIqdGqzj6hIKyX04MmV0poclQ7+wjWvxQyR2A== - -core-util-is@1.0.2, core-util-is@~1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" - integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= - -cosmiconfig@^5.0.5: - version "5.2.1" - resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.2.1.tgz#040f726809c591e77a17c0a3626ca45b4f168b1a" - integrity sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA== - dependencies: - import-fresh "^2.0.0" - is-directory "^0.3.1" - js-yaml "^3.13.1" - parse-json "^4.0.0" - -coveralls@^3.0.7: - version "3.0.7" - resolved "https://registry.yarnpkg.com/coveralls/-/coveralls-3.0.7.tgz#1eca48e47976e9573d6a2f18b97c2fea4026f34a" - integrity sha512-mUuH2MFOYB2oBaA4D4Ykqi9LaEYpMMlsiOMJOrv358yAjP6enPIk55fod2fNJ8AvwoYXStWQls37rA+s5e7boA== - dependencies: - growl "~> 1.10.0" - js-yaml "^3.13.1" - lcov-parse "^0.0.10" - log-driver "^1.2.7" - minimist "^1.2.0" - request "^2.86.0" - -cp-file@^6.2.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/cp-file/-/cp-file-6.2.0.tgz#40d5ea4a1def2a9acdd07ba5c0b0246ef73dc10d" - integrity sha512-fmvV4caBnofhPe8kOcitBwSn2f39QLjnAnGq3gO9dfd75mUytzKNZB1hde6QHunW2Rt+OwuBOMc3i1tNElbszA== - dependencies: - graceful-fs "^4.1.2" - make-dir "^2.0.0" - nested-error-stacks "^2.0.0" - pify "^4.0.1" - safe-buffer "^5.0.1" - -create-error-class@^3.0.0: - version "3.0.2" - resolved "https://registry.yarnpkg.com/create-error-class/-/create-error-class-3.0.2.tgz#06be7abef947a3f14a30fd610671d401bca8b7b6" - integrity sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y= - dependencies: - capture-stack-trace "^1.0.0" - -create-react-class@^15.6.2, create-react-class@^15.6.3: - version "15.6.3" - resolved "https://registry.yarnpkg.com/create-react-class/-/create-react-class-15.6.3.tgz#2d73237fb3f970ae6ebe011a9e66f46dbca80036" - integrity sha512-M+/3Q6E6DLO6Yx3OwrWjwHBnvfXXYA7W+dFjt/ZDBemHO1DDZhsalX/NUtnTYclN6GfnBDRh4qRHjcDHmlJBJg== - dependencies: - fbjs "^0.8.9" - loose-envify "^1.3.1" - object-assign "^4.1.1" - -cross-spawn@^4: - version "4.0.2" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-4.0.2.tgz#7b9247621c23adfdd3856004a823cbe397424d41" - integrity sha1-e5JHYhwjrf3ThWAEqCPL45dCTUE= - dependencies: - lru-cache "^4.0.1" - which "^1.2.9" - -cross-spawn@^5.0.1, cross-spawn@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" - integrity sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk= - dependencies: - lru-cache "^4.0.1" - shebang-command "^1.2.0" - which "^1.2.9" - -cross-spawn@^6.0.0, cross-spawn@^6.0.5: - version "6.0.5" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" - integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== - dependencies: - nice-try "^1.0.4" - path-key "^2.0.1" - semver "^5.5.0" - shebang-command "^1.2.0" - which "^1.2.9" - -crypto-random-string@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-1.0.0.tgz#a230f64f568310e1498009940790ec99545bca7e" - integrity sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4= - -damerau-levenshtein@^1.0.0: - version "1.0.5" - resolved "https://registry.yarnpkg.com/damerau-levenshtein/-/damerau-levenshtein-1.0.5.tgz#780cf7144eb2e8dbd1c3bb83ae31100ccc31a414" - integrity sha512-CBCRqFnpu715iPmw1KrdOrzRqbdFwQTwAWyyyYS42+iAgHCuXZ+/TdMgQkUENPomxEz9z1BEzuQU2Xw0kUuAgA== - -dargs@^6.0.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/dargs/-/dargs-6.1.0.tgz#1f3b9b56393ecf8caa7cbfd6c31496ffcfb9b272" - integrity sha512-5dVBvpBLBnPwSsYXqfybFyehMmC/EenKEcf23AhCTgTf48JFBbmJKqoZBsERDnjL0FyiVTYWdFsRfTLHxLyKdQ== - -dashdash@^1.12.0: - version "1.14.1" - resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" - integrity sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA= - dependencies: - assert-plus "^1.0.0" - -dateformat@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-3.0.3.tgz#a6e37499a4d9a9cf85ef5872044d62901c9889ae" - integrity sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q== - -debounce@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/debounce/-/debounce-1.2.0.tgz#44a540abc0ea9943018dc0eaa95cce87f65cd131" - integrity sha512-mYtLl1xfZLi1m4RtQYlZgJUNQjl4ZxVnHzIR8nLLgi4q1YT8o/WM+MK/f8yfcc9s5Ir5zRaPZyZU6xs1Syoocg== - -debug@2.6.9, debug@^2.2.0, debug@^2.3.3: - version "2.6.9" - resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" - integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== - dependencies: - ms "2.0.0" - -debug@^3.1.0, debug@^3.2.6: - version "3.2.6" - resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b" - integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ== - dependencies: - ms "^2.1.1" - -debug@^4.1.0, debug@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" - integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw== - dependencies: - ms "^2.1.1" - -decamelize@^1.1.1, decamelize@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" - integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= - -decode-uri-component@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" - integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU= - -decompress-response@^3.2.0, decompress-response@^3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-3.3.0.tgz#80a4dd323748384bfa248083622aedec982adff3" - integrity sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M= - dependencies: - mimic-response "^1.0.0" - -deep-extend@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" - integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== - -default-require-extensions@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/default-require-extensions/-/default-require-extensions-2.0.0.tgz#f5f8fbb18a7d6d50b21f641f649ebb522cfe24f7" - integrity sha1-9fj7sYp9bVCyH2QfZJ67Uiz+JPc= - dependencies: - strip-bom "^3.0.0" - -define-properties@^1.1.2, define-properties@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" - integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== - dependencies: - object-keys "^1.0.12" - -define-property@^0.2.5: - version "0.2.5" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116" - integrity sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY= - dependencies: - is-descriptor "^0.1.0" - -define-property@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6" - integrity sha1-dp66rz9KY6rTr56NMEybvnm/sOY= - dependencies: - is-descriptor "^1.0.0" - -define-property@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d" - integrity sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ== - dependencies: - is-descriptor "^1.0.2" - isobject "^3.0.1" - -delayed-stream@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" - integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk= - -delegates@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" - integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o= - -denodeify@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/denodeify/-/denodeify-1.2.1.tgz#3a36287f5034e699e7577901052c2e6c94251631" - integrity sha1-OjYof1A05pnnV3kBBSwubJQlFjE= - -depd@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" - integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= - -destroy@~1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" - integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA= - -detect-conflict@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/detect-conflict/-/detect-conflict-1.0.1.tgz#088657a66a961c05019db7c4230883b1c6b4176e" - integrity sha1-CIZXpmqWHAUBnbfEIwiDsca0F24= - -detect-libc@^1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" - integrity sha1-+hN8S9aY7fVc1c0CrFWfkaTEups= - -detect-newline@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-2.1.0.tgz#f41f1c10be4b00e87b5f13da680759f2c5bfd3e2" - integrity sha1-9B8cEL5LAOh7XxPaaAdZ8sW/0+I= - -diff@^3.5.0: - version "3.5.0" - resolved "https://registry.yarnpkg.com/diff/-/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12" - integrity sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA== - -dijkstrajs@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/dijkstrajs/-/dijkstrajs-1.0.1.tgz#d3cd81221e3ea40742cfcde556d4e99e98ddc71b" - integrity sha1-082BIh4+pAdCz83lVtTpnpjdxxs= - -dir-glob@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-2.0.0.tgz#0b205d2b6aef98238ca286598a8204d29d0a0034" - integrity sha512-37qirFDz8cA5fimp9feo43fSuRo2gHwaIn6dXL8Ber1dGwUosDrGZeCCXq57WnIqE4aQ+u3eQZzsk1yOzhdwag== - dependencies: - arrify "^1.0.1" - path-type "^3.0.0" - -dom-walk@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/dom-walk/-/dom-walk-0.1.1.tgz#672226dc74c8f799ad35307df936aba11acd6018" - integrity sha1-ZyIm3HTI95mtNTB9+TaroRrNYBg= - -dot-prop@^4.1.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-4.2.0.tgz#1f19e0c2e1aa0e32797c49799f2837ac6af69c57" - integrity sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ== - dependencies: - is-obj "^1.0.0" - -ds-store@^0.1.5: - version "0.1.6" - resolved "https://registry.yarnpkg.com/ds-store/-/ds-store-0.1.6.tgz#d1024ef746ed0c13f0f7fec85c7e858e8c4b7ca7" - integrity sha1-0QJO90btDBPw9/7IXH6FjoxLfKc= - dependencies: - bplist-creator "~0.0.3" - macos-alias "~0.2.5" - tn1150 "^0.1.0" - -duplexer3@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2" - integrity sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI= - -ecc-jsbn@~0.1.1: - version "0.1.2" - resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" - integrity sha1-OoOpBOVDUyh4dMVkt1SThoSamMk= - dependencies: - jsbn "~0.1.0" - safer-buffer "^2.1.0" - -editions@^2.1.3: - version "2.2.0" - resolved "https://registry.yarnpkg.com/editions/-/editions-2.2.0.tgz#dacd0c2a9441ebef592bba316a6264febb337f35" - integrity sha512-RYg3iEA2BDLCNVe8PUkD+ox5vAKxB9XS/mAhx1bdxGCF0CpX077C0pyTA9t5D6idCYA3avl5/XDHKPsHFrygfw== - dependencies: - errlop "^1.1.2" - semver "^6.3.0" - -ee-first@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" - integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= - -ejs@^2.5.9: - version "2.7.1" - resolved "https://registry.yarnpkg.com/ejs/-/ejs-2.7.1.tgz#5b5ab57f718b79d4aca9254457afecd36fa80228" - integrity sha512-kS/gEPzZs3Y1rRsbGX4UOSjtP/CeJP0CxSNZHYxGfVM/VgLcv0ZqM7C45YyTj2DI2g7+P9Dd24C+IMIg6D0nYQ== - -electron-to-chromium@^1.3.295: - version "1.3.306" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.306.tgz#e8265301d053d5f74e36cb876486830261fbe946" - integrity sha512-frDqXvrIROoYvikSKTIKbHbzO6M3/qC6kCIt/1FOa9kALe++c4VAJnwjSFvf1tYLEUsP2n9XZ4XSCyqc3l7A/A== - -elliptic@^6.4.0: - version "6.5.1" - resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.1.tgz#c380f5f909bf1b9b4428d028cd18d3b0efd6b52b" - integrity sha512-xvJINNLbTeWQjrl6X+7eQCrIy/YPv5XCpKW6kB5mKvtnGILoLDcySuwomfdzt0BMdLNVnuRNTuzKNHj0bva1Cg== - dependencies: - bn.js "^4.4.0" - brorand "^1.0.1" - hash.js "^1.0.0" - hmac-drbg "^1.0.0" - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - minimalistic-crypto-utils "^1.0.0" - -emoji-regex@^6.1.0: - version "6.5.1" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-6.5.1.tgz#9baea929b155565c11ea41c6626eaa65cef992c2" - integrity sha512-PAHp6TxrCy7MGMFidro8uikr+zlJJKJ/Q6mm2ExZ7HwkyR9lSVFfE3kt36qcwa24BQL7y0G9axycGjK1A/0uNQ== - -emoji-regex@^7.0.1: - version "7.0.3" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" - integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== - -emojilib@^2.2.9: - version "2.4.0" - resolved "https://registry.yarnpkg.com/emojilib/-/emojilib-2.4.0.tgz#ac518a8bb0d5f76dda57289ccb2fdf9d39ae721e" - integrity sha512-5U0rVMU5Y2n2+ykNLQqMoqklN9ICBT/KsvC1Gz6vqHbz2AXXGkG+Pm5rMWk/8Vjrr/mY9985Hi8DYzn1F09Nyw== - -encodeurl@~1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" - integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= - -encoding@^0.1.11: - version "0.1.12" - resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.12.tgz#538b66f3ee62cd1ab51ec323829d1f9480c74beb" - integrity sha1-U4tm8+5izRq1HsMjgp0flIDHS+s= - dependencies: - iconv-lite "~0.4.13" - -end-of-stream@^1.1.0: - version "1.4.4" - resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" - integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== - dependencies: - once "^1.4.0" - -envinfo@^5.7.0: - version "5.12.1" - resolved "https://registry.yarnpkg.com/envinfo/-/envinfo-5.12.1.tgz#83068c33e0972eb657d6bc69a6df30badefb46ef" - integrity sha512-pwdo0/G3CIkQ0y6PCXq4RdkvId2elvtPCJMG0konqlrfkWQbf1DWeH9K2b/cvu2YgGvPPTOnonZxXM1gikFu1w== - -errlop@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/errlop/-/errlop-1.1.2.tgz#a99a48f37aa264d614e342ffdbbaa49eec9220e0" - integrity sha512-djkRp+urJ+SmqDBd7F6LUgm4Be1TTYBxia2bhjNdFBuBDQtJDHExD2VbxR6eyst3h1TZy3qPRCdqb6FBoFttTA== - dependencies: - editions "^2.1.3" - -error-ex@^1.2.0, error-ex@^1.3.1: - version "1.3.2" - resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" - integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== - dependencies: - is-arrayish "^0.2.1" - -error@^7.0.2: - version "7.2.0" - resolved "https://registry.yarnpkg.com/error/-/error-7.2.0.tgz#80c989885635b41df9309d145834a4f125ae2245" - integrity sha512-M6t3j3Vt3uDicrViMP5fLq2AeADNrCVFD8Oj4Qt2MHsX0mPYG7D5XdnEfSdRpaHQzjAJ19wu+I1mw9rQYMTAPg== - dependencies: - string-template "~0.2.1" - -errorhandler@^1.5.0: - version "1.5.1" - resolved "https://registry.yarnpkg.com/errorhandler/-/errorhandler-1.5.1.tgz#b9ba5d17cf90744cd1e851357a6e75bf806a9a91" - integrity sha512-rcOwbfvP1WTViVoUjcfZicVzjhjTuhSMntHh6mW3IrEiyE6mJyXvsToJUJGlGlw/2xU9P5whlWNGlIDVeCiT4A== - dependencies: - accepts "~1.3.7" - escape-html "~1.0.3" - -es-abstract@^1.13.0, es-abstract@^1.7.0: - version "1.14.1" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.14.1.tgz#6e8d84b445ec9c610781e74a6d52cc31aac5b4ca" - integrity sha512-cp/Tb1oA/rh2X7vqeSOvM+TSo3UkJLX70eNihgVEvnzwAgikjkTFr/QVgRCaxjm0knCNQzNoxxxcw2zO2LJdZA== - dependencies: - es-to-primitive "^1.2.0" - function-bind "^1.1.1" - has "^1.0.3" - has-symbols "^1.0.0" - is-callable "^1.1.4" - is-regex "^1.0.4" - object-inspect "^1.6.0" - object-keys "^1.1.1" - string.prototype.trimleft "^2.0.0" - string.prototype.trimright "^2.0.0" - -es-to-primitive@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.0.tgz#edf72478033456e8dda8ef09e00ad9650707f377" - integrity sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg== - dependencies: - is-callable "^1.1.4" - is-date-object "^1.0.1" - is-symbol "^1.0.2" - -es6-error@^4.0.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/es6-error/-/es6-error-4.1.1.tgz#9e3af407459deed47e9a91f9b885a84eb05c561d" - integrity sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg== - -escape-html@~1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" - integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= - -escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" - integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= - -eslint-plugin-jsx-a11y@5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-5.1.1.tgz#5c96bb5186ca14e94db1095ff59b3e2bd94069b1" - integrity sha512-5I9SpoP7gT4wBFOtXT8/tXNPYohHBVfyVfO17vkbC7r9kEIxYJF12D3pKqhk8+xnk12rfxKClS3WCFpVckFTPQ== - dependencies: - aria-query "^0.7.0" - array-includes "^3.0.3" - ast-types-flow "0.0.7" - axobject-query "^0.1.0" - damerau-levenshtein "^1.0.0" - emoji-regex "^6.1.0" - jsx-ast-utils "^1.4.0" - -esprima@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" - integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== - -esutils@^2.0.0, esutils@^2.0.2: - version "2.0.3" - resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" - integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== - -etag@~1.8.1: - version "1.8.1" - resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" - integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= - -eth-lib@0.2.7: - version "0.2.7" - resolved "https://registry.yarnpkg.com/eth-lib/-/eth-lib-0.2.7.tgz#2f93f17b1e23aec3759cd4a3fe20c1286a3fc1ca" - integrity sha1-L5Pxex4jrsN1nNSj/iDBKGo/wco= - dependencies: - bn.js "^4.11.6" - elliptic "^6.4.0" - xhr-request-promise "^0.1.2" - -eth-phishing-detect@^1.1.13: - version "1.1.13" - resolved "https://registry.yarnpkg.com/eth-phishing-detect/-/eth-phishing-detect-1.1.13.tgz#ed718b933c8a69fef0cefa6604538824b472dbea" - integrity sha512-1KQcKvAQIjJgFMVwxaw2+BlzM9Momzl0e+/torPdMjg7WGq6LmCIS7ddg84diH5zIQp9quGyRVIEawCCuErgVQ== - dependencies: - fast-levenshtein "^2.0.6" - -ethereum-bloom-filters@^1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/ethereum-bloom-filters/-/ethereum-bloom-filters-1.0.6.tgz#9cdebb3ec20de96ec4a434c6bad6ea5a513037aa" - integrity sha512-dE9CGNzgOOsdh7msZirvv8qjHtnHpvBlKe2647kM8v+yeF71IRso55jpojemvHV+jMjr48irPWxMRaHuOWzAFA== - dependencies: - js-sha3 "^0.8.0" - -ethjs-unit@0.1.6: - version "0.1.6" - resolved "https://registry.yarnpkg.com/ethjs-unit/-/ethjs-unit-0.1.6.tgz#c665921e476e87bce2a9d588a6fe0405b2c41699" - integrity sha1-xmWSHkduh7ziqdWIpv4EBbLEFpk= - dependencies: - bn.js "4.11.6" - number-to-bn "1.7.0" - -event-target-shim@^1.0.5: - version "1.1.1" - resolved "https://registry.yarnpkg.com/event-target-shim/-/event-target-shim-1.1.1.tgz#a86e5ee6bdaa16054475da797ccddf0c55698491" - integrity sha1-qG5e5r2qFgVEddp5fM3fDFVphJE= - -eventemitter3@^3.0.0: - version "3.1.2" - resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-3.1.2.tgz#2d3d48f9c346698fce83a85d7d664e98535df6e7" - integrity sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q== - -events@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/events/-/events-1.1.1.tgz#9ebdb7635ad099c70dcc4c2a1f5004288e8bd924" - integrity sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ= - -exec-sh@^0.2.0: - version "0.2.2" - resolved "https://registry.yarnpkg.com/exec-sh/-/exec-sh-0.2.2.tgz#2a5e7ffcbd7d0ba2755bdecb16e5a427dfbdec36" - integrity sha512-FIUCJz1RbuS0FKTdaAafAByGS0CPvU3R0MeHxgtl+djzCc//F8HakL8GzmVNZanasTbTAY/3DRFA0KpVqj/eAw== - dependencies: - merge "^1.2.0" - -execa@^0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-0.7.0.tgz#944becd34cc41ee32a63a9faf27ad5a65fc59777" - integrity sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c= - dependencies: - cross-spawn "^5.0.1" - get-stream "^3.0.0" - is-stream "^1.1.0" - npm-run-path "^2.0.0" - p-finally "^1.0.0" - signal-exit "^3.0.0" - strip-eof "^1.0.0" - -execa@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8" - integrity sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA== - dependencies: - cross-spawn "^6.0.0" - get-stream "^4.0.0" - is-stream "^1.1.0" - npm-run-path "^2.0.0" - p-finally "^1.0.0" - signal-exit "^3.0.0" - strip-eof "^1.0.0" - -expand-brackets@^0.1.4: - version "0.1.5" - resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-0.1.5.tgz#df07284e342a807cd733ac5af72411e581d1177b" - integrity sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s= - dependencies: - is-posix-bracket "^0.1.0" - -expand-brackets@^2.1.4: - version "2.1.4" - resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" - integrity sha1-t3c14xXOMPa27/D4OwQVGiJEliI= - dependencies: - debug "^2.3.3" - define-property "^0.2.5" - extend-shallow "^2.0.1" - posix-character-classes "^0.1.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" - -expand-range@^1.8.1: - version "1.8.2" - resolved "https://registry.yarnpkg.com/expand-range/-/expand-range-1.8.2.tgz#a299effd335fe2721ebae8e257ec79644fc85337" - integrity sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc= - dependencies: - fill-range "^2.1.0" - -extend-shallow@^1.1.2: - version "1.1.4" - resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-1.1.4.tgz#19d6bf94dfc09d76ba711f39b872d21ff4dd9071" - integrity sha1-Gda/lN/AnXa6cR85uHLSH/TdkHE= - dependencies: - kind-of "^1.1.0" - -extend-shallow@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" - integrity sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8= - dependencies: - is-extendable "^0.1.0" - -extend-shallow@^3.0.0, extend-shallow@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8" - integrity sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg= - dependencies: - assign-symbols "^1.0.0" - is-extendable "^1.0.1" - -extend@~3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" - integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== - -external-editor@^2.0.4: - version "2.2.0" - resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-2.2.0.tgz#045511cfd8d133f3846673d1047c154e214ad3d5" - integrity sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A== - dependencies: - chardet "^0.4.0" - iconv-lite "^0.4.17" - tmp "^0.0.33" - -external-editor@^3.0.3: - version "3.1.0" - resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.1.0.tgz#cb03f740befae03ea4d283caed2741a83f335495" - integrity sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew== - dependencies: - chardet "^0.7.0" - iconv-lite "^0.4.24" - tmp "^0.0.33" - -extglob@^0.3.1: - version "0.3.2" - resolved "https://registry.yarnpkg.com/extglob/-/extglob-0.3.2.tgz#2e18ff3d2f49ab2765cec9023f011daa8d8349a1" - integrity sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE= - dependencies: - is-extglob "^1.0.0" - -extglob@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" - integrity sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw== - dependencies: - array-unique "^0.3.2" - define-property "^1.0.0" - expand-brackets "^2.1.4" - extend-shallow "^2.0.1" - fragment-cache "^0.2.1" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" - -extsprintf@1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" - integrity sha1-lpGEQOMEGnpBT4xS48V06zw+HgU= - -extsprintf@^1.2.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f" - integrity sha1-4mifjzVvrWLMplo6kcXfX5VRaS8= - -fancy-log@^1.3.2: - version "1.3.3" - resolved "https://registry.yarnpkg.com/fancy-log/-/fancy-log-1.3.3.tgz#dbc19154f558690150a23953a0adbd035be45fc7" - integrity sha512-k9oEhlyc0FrVh25qYuSELjr8oxsCoc4/LEZfg2iJJrfEk/tZL9bCoJE47gqAvI2m/AUjluCS4+3I0eTx8n3AEw== - dependencies: - ansi-gray "^0.1.1" - color-support "^1.1.3" - parse-node-version "^1.0.0" - time-stamp "^1.0.0" - -fast-deep-equal@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz#7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49" - integrity sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk= - -fast-glob@^2.0.2: - version "2.2.7" - resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-2.2.7.tgz#6953857c3afa475fff92ee6015d52da70a4cd39d" - integrity sha512-g1KuQwHOZAmOZMuBtHdxDtju+T2RT8jgCC9aANsbpdiDDTSnjgfuVsIBNKbUeJI3oKMRExcfNDtJl4OhbffMsw== - dependencies: - "@mrmlnc/readdir-enhanced" "^2.2.1" - "@nodelib/fs.stat" "^1.1.2" - glob-parent "^3.1.0" - is-glob "^4.0.0" - merge2 "^1.2.3" - micromatch "^3.1.10" - -fast-json-stable-stringify@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2" - integrity sha1-1RQsDK7msRifh9OnYREGT4bIu/I= - -fast-levenshtein@^2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" - integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= - -fb-watchman@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.0.tgz#54e9abf7dfa2f26cd9b1636c588c1afc05de5d58" - integrity sha1-VOmr99+i8mzZsWNsWIwa/AXeXVg= - dependencies: - bser "^2.0.0" - -fbjs-css-vars@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/fbjs-css-vars/-/fbjs-css-vars-1.0.2.tgz#216551136ae02fe255932c3ec8775f18e2c078b8" - integrity sha512-b2XGFAFdWZWg0phtAWLHCk836A1Xann+I+Dgd3Gk64MHKZO44FfoD1KxyvbSh0qZsIoXQGGlVztIY+oitJPpRQ== - -fbjs-scripts@^1.0.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/fbjs-scripts/-/fbjs-scripts-1.2.0.tgz#069a0c0634242d10031c6460ef1fccefcdae8b27" - integrity sha512-5krZ8T0Bf8uky0abPoCLrfa7Orxd8UH4Qq8hRUF2RZYNMu+FmEOrBc7Ib3YVONmxTXTlLAvyrrdrVmksDb2OqQ== - dependencies: - "@babel/core" "^7.0.0" - ansi-colors "^1.0.1" - babel-preset-fbjs "^3.2.0" - core-js "^2.4.1" - cross-spawn "^5.1.0" - fancy-log "^1.3.2" - object-assign "^4.0.1" - plugin-error "^0.1.2" - semver "^5.1.0" - through2 "^2.0.0" - -fbjs@^0.8.9: - version "0.8.17" - resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-0.8.17.tgz#c4d598ead6949112653d6588b01a5cdcd9f90fdd" - integrity sha1-xNWY6taUkRJlPWWIsBpc3Nn5D90= - dependencies: - core-js "^1.0.0" - isomorphic-fetch "^2.1.1" - loose-envify "^1.0.0" - object-assign "^4.1.0" - promise "^7.1.1" - setimmediate "^1.0.5" - ua-parser-js "^0.7.18" - -fbjs@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-1.0.0.tgz#52c215e0883a3c86af2a7a776ed51525ae8e0a5a" - integrity sha512-MUgcMEJaFhCaF1QtWGnmq9ZDRAzECTCRAF7O6UZIlAlkTs1SasiX9aP0Iw7wfD2mJ7wDTNfg2w7u5fSCwJk1OA== - dependencies: - core-js "^2.4.1" - fbjs-css-vars "^1.0.0" - isomorphic-fetch "^2.1.1" - loose-envify "^1.0.0" - object-assign "^4.1.0" - promise "^7.1.1" - setimmediate "^1.0.5" - ua-parser-js "^0.7.18" - -figures@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962" - integrity sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI= - dependencies: - escape-string-regexp "^1.0.5" - -filename-regex@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.1.tgz#c1c4b9bee3e09725ddb106b75c1e301fe2f18b26" - integrity sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY= - -fill-range@^2.1.0: - version "2.2.4" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-2.2.4.tgz#eb1e773abb056dcd8df2bfdf6af59b8b3a936565" - integrity sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q== - dependencies: - is-number "^2.1.0" - isobject "^2.0.0" - randomatic "^3.0.0" - repeat-element "^1.1.2" - repeat-string "^1.5.2" - -fill-range@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" - integrity sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc= - dependencies: - extend-shallow "^2.0.1" - is-number "^3.0.0" - repeat-string "^1.6.1" - to-regex-range "^2.1.0" - -finalhandler@1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d" - integrity sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA== - dependencies: - debug "2.6.9" - encodeurl "~1.0.2" - escape-html "~1.0.3" - on-finished "~2.3.0" - parseurl "~1.3.3" - statuses "~1.5.0" - unpipe "~1.0.0" - -find-cache-dir@^2.0.0, find-cache-dir@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-2.1.0.tgz#8d0f94cd13fe43c6c7c261a0d86115ca918c05f7" - integrity sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ== - dependencies: - commondir "^1.0.1" - make-dir "^2.0.0" - pkg-dir "^3.0.0" - -find-up@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" - integrity sha1-RdG35QbHF93UgndaK3eSCjwMV6c= - dependencies: - locate-path "^2.0.0" - -find-up@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" - integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== - dependencies: - locate-path "^3.0.0" - -first-chunk-stream@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/first-chunk-stream/-/first-chunk-stream-2.0.0.tgz#1bdecdb8e083c0664b91945581577a43a9f31d70" - integrity sha1-G97NuOCDwGZLkZRVgVd6Q6nzHXA= - dependencies: - readable-stream "^2.0.2" - -fmix@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/fmix/-/fmix-0.1.0.tgz#c7bbf124dec42c9d191cfb947d0a9778dd986c0c" - integrity sha1-x7vxJN7ELJ0ZHPuUfQqXeN2YbAw= - dependencies: - imul "^1.0.0" - -for-each@^0.3.3: - version "0.3.3" - resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.3.tgz#69b447e88a0a5d32c3e7084f3f1710034b21376e" - integrity sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw== - dependencies: - is-callable "^1.1.3" - -for-in@^1.0.1, for-in@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" - integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA= - -for-own@^0.1.4: - version "0.1.5" - resolved "https://registry.yarnpkg.com/for-own/-/for-own-0.1.5.tgz#5265c681a4f294dabbf17c9509b6763aa84510ce" - integrity sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4= - dependencies: - for-in "^1.0.1" - -foreground-child@^1.5.6: - version "1.5.6" - resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-1.5.6.tgz#4fd71ad2dfde96789b980a5c0a295937cb2f5ce9" - integrity sha1-T9ca0t/elnibmApcCilZN8svXOk= - dependencies: - cross-spawn "^4" - signal-exit "^3.0.0" - -forever-agent@~0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" - integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE= - -form-data@~2.3.2: - version "2.3.3" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" - integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ== - dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.6" - mime-types "^2.1.12" - -fragment-cache@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" - integrity sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk= - dependencies: - map-cache "^0.2.2" - -fresh@0.5.2: - version "0.5.2" - resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" - integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= - -fs-extra@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-1.0.0.tgz#cd3ce5f7e7cb6145883fcae3191e9877f8587950" - integrity sha1-zTzl9+fLYUWIP8rjGR6Yd/hYeVA= - dependencies: - graceful-fs "^4.1.2" - jsonfile "^2.1.0" - klaw "^1.0.0" - -fs-extra@^4.0.1: - version "4.0.3" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-4.0.3.tgz#0d852122e5bc5beb453fb028e9c0c9bf36340c94" - integrity sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg== - dependencies: - graceful-fs "^4.1.2" - jsonfile "^4.0.0" - universalify "^0.1.0" - -fs-minipass@^1.2.5: - version "1.2.6" - resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.6.tgz#2c5cc30ded81282bfe8a0d7c7c1853ddeb102c07" - integrity sha512-crhvyXcMejjv3Z5d2Fa9sf5xLYVCF5O1c71QxbVnbLsmYMBEvDAftewesN/HhY03YRoA7zOMxjNGrF5svGaaeQ== - dependencies: - minipass "^2.2.1" - -fs-temp@^1.0.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/fs-temp/-/fs-temp-1.1.2.tgz#cc52f038bbefe510f6bcd09ec592b79d0f69253f" - integrity sha1-zFLwOLvv5RD2vNCexZK3nQ9pJT8= - dependencies: - random-path "^0.1.0" - -fs-xattr@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/fs-xattr/-/fs-xattr-0.3.0.tgz#019642eacc49f343061af19de4c13543895589ad" - integrity sha512-BixjoRM9etRFyWOtJRcflfu5HqBWLGTYbeHiL196VRUcc/nYgS2px6w4yVaj3XmrN1bk4rZBH82A8u5Z64YcXQ== - -fs.realpath@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" - integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= - -fsevents@^1.2.3: - version "1.2.9" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.9.tgz#3f5ed66583ccd6f400b5a00db6f7e861363e388f" - integrity sha512-oeyj2H3EjjonWcFjD5NvZNE9Rqe4UW+nQBU2HNeKw0koVLEFIhtyETyAakeAM3de7Z/SW5kcA+fZUait9EApnw== - dependencies: - nan "^2.12.1" - node-pre-gyp "^0.12.0" - -function-bind@^1.0.2, function-bind@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" - integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== - -functional-red-black-tree@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" - integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= - -gauge@~1.2.5: - version "1.2.7" - resolved "https://registry.yarnpkg.com/gauge/-/gauge-1.2.7.tgz#e9cec5483d3d4ee0ef44b60a7d99e4935e136d93" - integrity sha1-6c7FSD09TuDvRLYKfZnkk14TbZM= - dependencies: - ansi "^0.3.0" - has-unicode "^2.0.0" - lodash.pad "^4.1.0" - lodash.padend "^4.1.0" - lodash.padstart "^4.1.0" - -gauge@~2.7.3: - version "2.7.4" - resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" - integrity sha1-LANAXHU4w51+s3sxcCLjJfsBi/c= - dependencies: - aproba "^1.0.3" - console-control-strings "^1.0.0" - has-unicode "^2.0.0" - object-assign "^4.1.0" - signal-exit "^3.0.0" - string-width "^1.0.1" - strip-ansi "^3.0.1" - wide-align "^1.1.0" - -generate-function@^2.0.0: - version "2.3.1" - resolved "https://registry.yarnpkg.com/generate-function/-/generate-function-2.3.1.tgz#f069617690c10c868e73b8465746764f97c3479f" - integrity sha512-eeB5GfMNeevm/GRYq20ShmsaGcmI81kIX2K9XQx5miC8KdHaC6Jm0qQ8ZNeGOi7wYB8OsdxKs+Y2oVuTFuVwKQ== - dependencies: - is-property "^1.0.2" - -generate-object-property@^1.1.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/generate-object-property/-/generate-object-property-1.2.0.tgz#9c0e1c40308ce804f4783618b937fa88f99d50d0" - integrity sha1-nA4cQDCM6AT0eDYYuTf6iPmdUNA= - dependencies: - is-property "^1.0.0" - -get-caller-file@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.3.tgz#f978fa4c90d1dfe7ff2d6beda2a515e713bdcf4a" - integrity sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w== - -get-caller-file@^2.0.1: - version "2.0.5" - resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" - integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== - -get-stream@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" - integrity sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ= - -get-stream@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" - integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== - dependencies: - pump "^3.0.0" - -get-value@^2.0.3, get-value@^2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" - integrity sha1-3BXKHGcjh8p2vTesCjlbogQqLCg= - -getpass@^0.1.1: - version "0.1.7" - resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" - integrity sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo= - dependencies: - assert-plus "^1.0.0" - -gh-got@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/gh-got/-/gh-got-6.0.0.tgz#d74353004c6ec466647520a10bd46f7299d268d0" - integrity sha512-F/mS+fsWQMo1zfgG9MD8KWvTWPPzzhuVwY++fhQ5Ggd+0P+CAMHtzMZhNxG+TqGfHDChJKsbh6otfMGqO2AKBw== - dependencies: - got "^7.0.0" - is-plain-obj "^1.1.0" - -github-username@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/github-username/-/github-username-4.1.0.tgz#cbe280041883206da4212ae9e4b5f169c30bf417" - integrity sha1-y+KABBiDIG2kISrp5LXxacML9Bc= - dependencies: - gh-got "^6.0.0" - -glob-base@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/glob-base/-/glob-base-0.3.0.tgz#dbb164f6221b1c0b1ccf82aea328b497df0ea3c4" - integrity sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q= - dependencies: - glob-parent "^2.0.0" - is-glob "^2.0.0" - -glob-parent@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-2.0.0.tgz#81383d72db054fcccf5336daa902f182f6edbb28" - integrity sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg= - dependencies: - is-glob "^2.0.0" - -glob-parent@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" - integrity sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4= - dependencies: - is-glob "^3.1.0" - path-dirname "^1.0.0" - -glob-to-regexp@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz#8c5a1494d2066c570cc3bfe4496175acc4d502ab" - integrity sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs= - -glob@^7.0.0, glob@^7.0.3, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3: - version "7.1.4" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.4.tgz#aa608a2f6c577ad357e1ae5a5c26d9a8d1969255" - integrity sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.0.4" - once "^1.3.0" - path-is-absolute "^1.0.0" - -global-dirs@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-0.1.1.tgz#b319c0dd4607f353f3be9cca4c72fc148c49f445" - integrity sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU= - dependencies: - ini "^1.3.4" - -global@^4.3.0: - version "4.4.0" - resolved "https://registry.yarnpkg.com/global/-/global-4.4.0.tgz#3e7b105179006a323ed71aafca3e9c57a5cc6406" - integrity sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w== - dependencies: - min-document "^2.19.0" - process "^0.11.10" - -global@~4.3.0: - version "4.3.2" - resolved "https://registry.yarnpkg.com/global/-/global-4.3.2.tgz#e76989268a6c74c38908b1305b10fc0e394e9d0f" - integrity sha1-52mJJopsdMOJCLEwWxD8DjlOnQ8= - dependencies: - min-document "^2.19.0" - process "~0.5.1" - -globals@^11.1.0: - version "11.12.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" - integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== - -globby@^8.0.1: - version "8.0.2" - resolved "https://registry.yarnpkg.com/globby/-/globby-8.0.2.tgz#5697619ccd95c5275dbb2d6faa42087c1a941d8d" - integrity sha512-yTzMmKygLp8RUpG1Ymu2VXPSJQZjNAZPD4ywgYEaG7e4tBJeUQBO8OpXrf1RCNcEs5alsoJYPAMiIHP0cmeC7w== - dependencies: - array-union "^1.0.1" - dir-glob "2.0.0" - fast-glob "^2.0.2" - glob "^7.1.2" - ignore "^3.3.5" - pify "^3.0.0" - slash "^1.0.0" - -"google-breakpad@git+https://github.com/status-im/google-breakpad.git#v0.9.0": - version "1.0.0" - resolved "git+https://github.com/status-im/google-breakpad.git#9fcfdc23010ce2b0742d276e2959ab13e7cf0dc7" - -got@^6.7.1: - version "6.7.1" - resolved "https://registry.yarnpkg.com/got/-/got-6.7.1.tgz#240cd05785a9a18e561dc1b44b41c763ef1e8db0" - integrity sha1-JAzQV4WpoY5WHcG0S0HHY+8ejbA= - dependencies: - create-error-class "^3.0.0" - duplexer3 "^0.1.4" - get-stream "^3.0.0" - is-redirect "^1.0.0" - is-retry-allowed "^1.0.0" - is-stream "^1.0.0" - lowercase-keys "^1.0.0" - safe-buffer "^5.0.1" - timed-out "^4.0.0" - unzip-response "^2.0.1" - url-parse-lax "^1.0.0" - -got@^7.0.0: - version "7.1.0" - resolved "https://registry.yarnpkg.com/got/-/got-7.1.0.tgz#05450fd84094e6bbea56f451a43a9c289166385a" - integrity sha512-Y5WMo7xKKq1muPsxD+KmrR8DH5auG7fBdDVueZwETwV6VytKyU9OX/ddpq2/1hp1vIPvVb4T81dKQz3BivkNLw== - dependencies: - decompress-response "^3.2.0" - duplexer3 "^0.1.4" - get-stream "^3.0.0" - is-plain-obj "^1.1.0" - is-retry-allowed "^1.0.0" - is-stream "^1.0.0" - isurl "^1.0.0-alpha5" - lowercase-keys "^1.0.0" - p-cancelable "^0.3.0" - p-timeout "^1.1.1" - safe-buffer "^5.0.1" - timed-out "^4.0.0" - url-parse-lax "^1.0.0" - url-to-options "^1.0.1" - -graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.3, graceful-fs@^4.1.6, graceful-fs@^4.1.9: - version "4.2.2" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.2.tgz#6f0952605d0140c1cfdb138ed005775b92d67b02" - integrity sha512-IItsdsea19BoLC7ELy13q1iJFNmd7ofZH5+X/pJr90/nRoPEX0DJo1dHDbgtYWOhJhcCgMDTOw84RZ72q6lB+Q== - -grouped-queue@^0.3.3: - version "0.3.3" - resolved "https://registry.yarnpkg.com/grouped-queue/-/grouped-queue-0.3.3.tgz#c167d2a5319c5a0e0964ef6a25b7c2df8996c85c" - integrity sha1-wWfSpTGcWg4JZO9qJbfC34mWyFw= - dependencies: - lodash "^4.17.2" - -"growl@~> 1.10.0": - version "1.10.5" - resolved "https://registry.yarnpkg.com/growl/-/growl-1.10.5.tgz#f2735dc2283674fa67478b10181059355c369e5e" - integrity sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA== - -growly@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/growly/-/growly-1.3.0.tgz#f10748cbe76af964b7c96c93c6bcc28af120c081" - integrity sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE= - -hammerjs@^2.0.8: - version "2.0.8" - resolved "https://registry.yarnpkg.com/hammerjs/-/hammerjs-2.0.8.tgz#04ef77862cff2bb79d30f7692095930222bf60f1" - integrity sha1-BO93hiz/K7edMPdpIJWTAiK/YPE= - -handlebars@^4.1.2: - version "4.2.0" - resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.2.0.tgz#57ce8d2175b9bbb3d8b3cf3e4217b1aec8ddcb2e" - integrity sha512-Kb4xn5Qh1cxAKvQnzNWZ512DhABzyFNmsaJf3OAkWNa4NkaqWcNI8Tao8Tasi0/F4JD9oyG0YxuFyvyR57d+Gw== - dependencies: - neo-async "^2.6.0" - optimist "^0.6.1" - source-map "^0.6.1" - optionalDependencies: - uglify-js "^3.1.4" - -har-schema@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" - integrity sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI= - -har-validator@~5.1.0: - version "5.1.3" - resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.3.tgz#1ef89ebd3e4996557675eed9893110dc350fa080" - integrity sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g== - dependencies: - ajv "^6.5.5" - har-schema "^2.0.0" - -has-ansi@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" - integrity sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE= - dependencies: - ansi-regex "^2.0.0" - -has-flag@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" - integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= - -has-symbol-support-x@^1.4.1: - version "1.4.2" - resolved "https://registry.yarnpkg.com/has-symbol-support-x/-/has-symbol-support-x-1.4.2.tgz#1409f98bc00247da45da67cee0a36f282ff26455" - integrity sha512-3ToOva++HaW+eCpgqZrCfN51IPB+7bJNVT6CUATzueB5Heb8o6Nam0V3HG5dlDvZU1Gn5QLcbahiKw/XVk5JJw== - -has-symbols@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.0.tgz#ba1a8f1af2a0fc39650f5c850367704122063b44" - integrity sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q= - -has-to-string-tag-x@^1.2.0: - version "1.4.1" - resolved "https://registry.yarnpkg.com/has-to-string-tag-x/-/has-to-string-tag-x-1.4.1.tgz#a045ab383d7b4b2012a00148ab0aa5f290044d4d" - integrity sha512-vdbKfmw+3LoOYVr+mtxHaX5a96+0f3DljYd8JOqvOLsf5mw2Otda2qCDT9qRqLAhrjyQ0h7ual5nOiASpsGNFw== - dependencies: - has-symbol-support-x "^1.4.1" - -has-unicode@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" - integrity sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk= - -has-value@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f" - integrity sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8= - dependencies: - get-value "^2.0.3" - has-values "^0.1.4" - isobject "^2.0.0" - -has-value@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177" - integrity sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc= - dependencies: - get-value "^2.0.6" - has-values "^1.0.0" - isobject "^3.0.0" - -has-values@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771" - integrity sha1-bWHeldkd/Km5oCCJrThL/49it3E= - -has-values@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f" - integrity sha1-lbC2P+whRmGab+V/51Yo1aOe/k8= - dependencies: - is-number "^3.0.0" - kind-of "^4.0.0" - -has@^1.0.1, has@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" - integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== - dependencies: - function-bind "^1.1.1" - -hash.js@^1.0.0, hash.js@^1.0.3: - version "1.1.7" - resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" - integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== - dependencies: - inherits "^2.0.3" - minimalistic-assert "^1.0.1" - -hasha@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/hasha/-/hasha-3.0.0.tgz#52a32fab8569d41ca69a61ff1a214f8eb7c8bd39" - integrity sha1-UqMvq4Vp1BymmmH/GiFPjrfIvTk= - dependencies: - is-stream "^1.0.1" - -hi-base32@^0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/hi-base32/-/hi-base32-0.5.0.tgz#61329f76a31f31008533f1c36f2473e259d64571" - integrity sha512-DDRmxSyoYuvjUb9EnXdoiMChBZ7ZcUVJsK5Frd3kqMhuBxvmZdnBeynAVfj7/ECbn++CekcoprvC/rprHPAtow== - -hmac-drbg@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" - integrity sha1-0nRXAQJabHdabFRXk+1QL8DGSaE= - dependencies: - hash.js "^1.0.3" - minimalistic-assert "^1.0.0" - minimalistic-crypto-utils "^1.0.1" - -hoist-non-react-statics@^2.3.1, hoist-non-react-statics@^2.5.0: - version "2.5.5" - resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-2.5.5.tgz#c5903cf409c0dfd908f388e619d86b9c1174cb47" - integrity sha512-rqcy4pJo55FTTLWt+bU8ukscqHeE/e9KWvsOW2b/a3afxQZhwkQdT1rPPCJ0rYXdj4vNcasY8zHTH+jF/qStxw== - -hoist-non-react-statics@^3.0.1, hoist-non-react-statics@^3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.0.tgz#b09178f0122184fb95acf525daaecb4d8f45958b" - integrity sha512-0XsbTXxgiaCDYDIWFcwkmerZPSwywfUqYmwT4jzewKTQSWoE6FCMoUVOeBJWK3E/CrWbxRG3m5GzY4lnIwGRBA== - dependencies: - react-is "^16.7.0" - -hosted-git-info@^2.1.4: - version "2.8.4" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.4.tgz#44119abaf4bc64692a16ace34700fed9c03e2546" - integrity sha512-pzXIvANXEFrc5oFFXRMkbLPQ2rXRoDERwDLyrcUxGhaZhgP54BBSl9Oheh7Vv0T090cszWBxPjkQQ5Sq1PbBRQ== - -http-errors@~1.7.2: - version "1.7.3" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.3.tgz#6c619e4f9c60308c38519498c14fbb10aacebb06" - integrity sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw== - dependencies: - depd "~1.1.2" - inherits "2.0.4" - setprototypeof "1.1.1" - statuses ">= 1.5.0 < 2" - toidentifier "1.0.0" - -http-signature@~1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" - integrity sha1-muzZJRFHcvPZW2WmCruPfBj7rOE= - dependencies: - assert-plus "^1.0.0" - jsprim "^1.2.2" - sshpk "^1.7.0" - -i18n-js@^3.5.0: - version "3.5.0" - resolved "https://registry.yarnpkg.com/i18n-js/-/i18n-js-3.5.0.tgz#e2c41e1f90405d691d33ddce260f3dff9743215e" - integrity sha512-XosH7plfEisWo5XEYxkdlwONsDVQ3sYI3ZoKXcjXdyq+9eVNIJg2h2oPsgadfqcXxpPHMVMNBgmiyW3aEJXg1g== - -iconv-lite@^0.4.17, iconv-lite@^0.4.24, iconv-lite@^0.4.4, iconv-lite@~0.4.13: - version "0.4.24" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" - integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== - dependencies: - safer-buffer ">= 2.1.2 < 3" - -"identicon.js@git+https://github.com/status-im/identicon.js.git#v1.2.1-status": - version "1.2.1" - resolved "git+https://github.com/status-im/identicon.js.git#4cd179daaf6f01384502b4b2c1876f982db0f57e" - -ieee754@^1.1.4: - version "1.1.13" - resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.13.tgz#ec168558e95aa181fd87d37f55c32bbcb6708b84" - integrity sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg== - -ignore-walk@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.1.tgz#a83e62e7d272ac0e3b551aaa82831a19b69f82f8" - integrity sha512-DTVlMx3IYPe0/JJcYP7Gxg7ttZZu3IInhuEhbchuqneY9wWe5Ojy2mXLBaQFUQmo0AW2r3qG7m1mg86js+gnlQ== - dependencies: - minimatch "^3.0.4" - -ignore@^3.3.5: - version "3.3.10" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.10.tgz#0a97fb876986e8081c631160f8f9f389157f0043" - integrity sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug== - -image-size@^0.6.0: - version "0.6.3" - resolved "https://registry.yarnpkg.com/image-size/-/image-size-0.6.3.tgz#e7e5c65bb534bd7cdcedd6cb5166272a85f75fb2" - integrity sha512-47xSUiQioGaB96nqtp5/q55m0aBQSQdyIloMOc/x+QVTDZLNmXE892IIDrJ0hM1A5vcNUDD5tDffkSP5lCaIIA== - -image-size@^0.7.4: - version "0.7.5" - resolved "https://registry.yarnpkg.com/image-size/-/image-size-0.7.5.tgz#269f357cf5797cb44683dfa99790e54c705ead04" - integrity sha512-Hiyv+mXHfFEP7LzUL/llg9RwFxxY+o9N3JVLIeG5E7iFIFAalxvRU9UZthBdYDEVnzHMgjnKJPPpay5BWf1g9g== - -import-fresh@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-2.0.0.tgz#d81355c15612d386c61f9ddd3922d4304822a546" - integrity sha1-2BNVwVYS04bGH53dOSLUMEgipUY= - dependencies: - caller-path "^2.0.0" - resolve-from "^3.0.0" - -import-lazy@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-2.1.0.tgz#05698e3d45c88e8d7e9d92cb0584e77f096f3e43" - integrity sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM= - -imul@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/imul/-/imul-1.0.1.tgz#9d5867161e8b3de96c2c38d5dc7cb102f35e2ac9" - integrity sha1-nVhnFh6LPelsLDjV3HyxAvNeKsk= - -imurmurhash@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" - integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= - -inflight@^1.0.4: - version "1.0.6" - resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" - integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= - dependencies: - once "^1.3.0" - wrappy "1" - -inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.3: - version "2.0.4" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" - integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== - -inherits@2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1" - integrity sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE= - -ini@^1.3.4, ini@~1.3.0: - version "1.3.5" - resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" - integrity sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw== - -inquirer@^3.0.6: - version "3.3.0" - resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-3.3.0.tgz#9dd2f2ad765dcab1ff0443b491442a20ba227dc9" - integrity sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ== - dependencies: - ansi-escapes "^3.0.0" - chalk "^2.0.0" - cli-cursor "^2.1.0" - cli-width "^2.0.0" - external-editor "^2.0.4" - figures "^2.0.0" - lodash "^4.3.0" - mute-stream "0.0.7" - run-async "^2.2.0" - rx-lite "^4.0.8" - rx-lite-aggregates "^4.0.8" - string-width "^2.1.0" - strip-ansi "^4.0.0" - through "^2.3.6" - -inquirer@^6.0.0: - version "6.5.2" - resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-6.5.2.tgz#ad50942375d036d327ff528c08bd5fab089928ca" - integrity sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ== - dependencies: - ansi-escapes "^3.2.0" - chalk "^2.4.2" - cli-cursor "^2.1.0" - cli-width "^2.0.0" - external-editor "^3.0.3" - figures "^2.0.0" - lodash "^4.17.12" - mute-stream "0.0.7" - run-async "^2.2.0" - rxjs "^6.4.0" - string-width "^2.1.0" - strip-ansi "^5.1.0" - through "^2.3.6" - -interpret@^1.0.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.2.0.tgz#d5061a6224be58e8083985f5014d844359576296" - integrity sha512-mT34yGKMNceBQUoVn7iCDKDntA7SC6gycMAWzGx1z/CMCTV7b2AAtXlo3nRyHZ1FelRkQbQjprHSYGwzLtkVbw== - -invariant@2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.0.tgz#c8d7e847366a49cc18b622f058a689d481e895f2" - integrity sha1-yNfoRzZqScwYtiLwWKaJ1IHolfI= - dependencies: - loose-envify "^1.0.0" - -invariant@^2.2.0, invariant@^2.2.2, invariant@^2.2.4: - version "2.2.4" - resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" - integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA== - dependencies: - loose-envify "^1.0.0" - -invert-kv@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6" - integrity sha1-EEqOSqym09jNFXqO+L+rLXo//bY= - -is-accessor-descriptor@^0.1.6: - version "0.1.6" - resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6" - integrity sha1-qeEss66Nh2cn7u84Q/igiXtcmNY= - dependencies: - kind-of "^3.0.2" - -is-accessor-descriptor@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656" - integrity sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ== - dependencies: - kind-of "^6.0.0" - -is-arrayish@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" - integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= - -is-buffer@^1.1.5: - version "1.1.6" - resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" - integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== - -is-callable@^1.1.3, is-callable@^1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.4.tgz#1e1adf219e1eeb684d691f9d6a05ff0d30a24d75" - integrity sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA== - -is-ci@^1.0.10: - version "1.2.1" - resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-1.2.1.tgz#e3779c8ee17fccf428488f6e281187f2e632841c" - integrity sha512-s6tfsaQaQi3JNciBH6shVqEDvhGut0SUXr31ag8Pd8BBbVVlcGfWhpPmEOoM6RJ5TFhbypvf5yyRw/VXW1IiWg== - dependencies: - ci-info "^1.5.0" - -is-data-descriptor@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" - integrity sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y= - dependencies: - kind-of "^3.0.2" - -is-data-descriptor@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7" - integrity sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ== - dependencies: - kind-of "^6.0.0" - -is-date-object@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.1.tgz#9aa20eb6aeebbff77fbd33e74ca01b33581d3a16" - integrity sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY= - -is-descriptor@^0.1.0: - version "0.1.6" - resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca" - integrity sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg== - dependencies: - is-accessor-descriptor "^0.1.6" - is-data-descriptor "^0.1.4" - kind-of "^5.0.0" - -is-descriptor@^1.0.0, is-descriptor@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec" - integrity sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg== - dependencies: - is-accessor-descriptor "^1.0.0" - is-data-descriptor "^1.0.0" - kind-of "^6.0.2" - -is-directory@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/is-directory/-/is-directory-0.3.1.tgz#61339b6f2475fc772fd9c9d83f5c8575dc154ae1" - integrity sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE= - -is-dotfile@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/is-dotfile/-/is-dotfile-1.0.3.tgz#a6a2f32ffd2dfb04f5ca25ecd0f6b83cf798a1e1" - integrity sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE= - -is-equal-shallow@^0.1.3: - version "0.1.3" - resolved "https://registry.yarnpkg.com/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz#2238098fc221de0bcfa5d9eac4c45d638aa1c534" - integrity sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ= - dependencies: - is-primitive "^2.0.0" - -is-extendable@^0.1.0, is-extendable@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" - integrity sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik= - -is-extendable@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4" - integrity sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA== - dependencies: - is-plain-object "^2.0.4" - -is-extglob@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0" - integrity sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA= - -is-extglob@^2.1.0, is-extglob@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" - integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= - -is-fullwidth-code-point@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" - integrity sha1-754xOG8DGn8NZDr4L95QxFfvAMs= - dependencies: - number-is-nan "^1.0.0" - -is-fullwidth-code-point@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" - integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= - -is-function@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-function/-/is-function-1.0.1.tgz#12cfb98b65b57dd3d193a3121f5f6e2f437602b5" - integrity sha1-Es+5i2W1fdPRk6MSH19uL0N2ArU= - -is-glob@^2.0.0, is-glob@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863" - integrity sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM= - dependencies: - is-extglob "^1.0.0" - -is-glob@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" - integrity sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo= - dependencies: - is-extglob "^2.1.0" - -is-glob@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" - integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== - dependencies: - is-extglob "^2.1.1" - -is-hex-prefixed@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-hex-prefixed/-/is-hex-prefixed-1.0.0.tgz#7d8d37e6ad77e5d127148913c573e082d777f554" - integrity sha1-fY035q135dEnFIkTxXPggtd39VQ= - -is-installed-globally@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.1.0.tgz#0dfd98f5a9111716dd535dda6492f67bf3d25a80" - integrity sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA= - dependencies: - global-dirs "^0.1.0" - is-path-inside "^1.0.0" - -is-my-ip-valid@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-my-ip-valid/-/is-my-ip-valid-1.0.0.tgz#7b351b8e8edd4d3995d4d066680e664d94696824" - integrity sha512-gmh/eWXROncUzRnIa1Ubrt5b8ep/MGSnfAUI3aRp+sqTCs1tv1Isl8d8F6JmkN3dXKc3ehZMrtiPN9eL03NuaQ== - -is-my-json-valid@^2.20.0: - version "2.20.0" - resolved "https://registry.yarnpkg.com/is-my-json-valid/-/is-my-json-valid-2.20.0.tgz#1345a6fca3e8daefc10d0fa77067f54cedafd59a" - integrity sha512-XTHBZSIIxNsIsZXg7XB5l8z/OBFosl1Wao4tXLpeC7eKU4Vm/kdop2azkPqULwnfGQjmeDIyey9g7afMMtdWAA== - dependencies: - generate-function "^2.0.0" - generate-object-property "^1.1.0" - is-my-ip-valid "^1.0.0" - jsonpointer "^4.0.0" - xtend "^4.0.0" - -is-npm@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-1.0.0.tgz#f2fb63a65e4905b406c86072765a1a4dc793b9f4" - integrity sha1-8vtjpl5JBbQGyGBydloaTceTufQ= - -is-number@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f" - integrity sha1-Afy7s5NGOlSPL0ZszhbezknbkI8= - dependencies: - kind-of "^3.0.2" - -is-number@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" - integrity sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU= - dependencies: - kind-of "^3.0.2" - -is-number@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-4.0.0.tgz#0026e37f5454d73e356dfe6564699867c6a7f0ff" - integrity sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ== - -is-obj@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" - integrity sha1-PkcprB9f3gJc19g6iW2rn09n2w8= - -is-object@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-object/-/is-object-1.0.1.tgz#8952688c5ec2ffd6b03ecc85e769e02903083470" - integrity sha1-iVJojF7C/9awPsyF52ngKQMINHA= - -is-path-inside@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-1.0.1.tgz#8ef5b7de50437a3fdca6b4e865ef7aa55cb48036" - integrity sha1-jvW33lBDej/cprToZe96pVy0gDY= - dependencies: - path-is-inside "^1.0.1" - -is-plain-obj@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" - integrity sha1-caUMhCnfync8kqOQpKA7OfzVHT4= - -is-plain-object@^2.0.3, is-plain-object@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" - integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== - dependencies: - isobject "^3.0.1" - -is-posix-bracket@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz#3334dc79774368e92f016e6fbc0a88f5cd6e6bc4" - integrity sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q= - -is-primitive@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-primitive/-/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575" - integrity sha1-IHurkWOEmcB7Kt8kCkGochADRXU= - -is-promise@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa" - integrity sha1-eaKp7OfwlugPNtKy87wWwf9L8/o= - -is-property@^1.0.0, is-property@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-property/-/is-property-1.0.2.tgz#57fe1c4e48474edd65b09911f26b1cd4095dda84" - integrity sha1-V/4cTkhHTt1lsJkR8msc1Ald2oQ= - -is-redirect@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-redirect/-/is-redirect-1.0.0.tgz#1d03dded53bd8db0f30c26e4f95d36fc7c87dc24" - integrity sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ= - -is-regex@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.4.tgz#5517489b547091b0930e095654ced25ee97e9491" - integrity sha1-VRdIm1RwkbCTDglWVM7SXul+lJE= - dependencies: - has "^1.0.1" - -is-retry-allowed@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz#11a060568b67339444033d0125a61a20d564fb34" - integrity sha1-EaBgVotnM5REAz0BJaYaINVk+zQ= - -is-scoped@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-scoped/-/is-scoped-1.0.0.tgz#449ca98299e713038256289ecb2b540dc437cb30" - integrity sha1-RJypgpnnEwOCViieyytUDcQ3yzA= - dependencies: - scoped-regex "^1.0.0" - -is-stream@^1.0.0, is-stream@^1.0.1, is-stream@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" - integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= - -is-symbol@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.2.tgz#a055f6ae57192caee329e7a860118b497a950f38" - integrity sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw== - dependencies: - has-symbols "^1.0.0" - -is-typedarray@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" - integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= - -is-utf8@^0.2.0: - version "0.2.1" - resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" - integrity sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI= - -is-windows@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" - integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== - -is-wsl@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d" - integrity sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0= - -isarray@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" - integrity sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8= - -isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" - integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= - -isarray@^2.0.1: - version "2.0.5" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.5.tgz#8af1e4c1221244cc62459faf38940d4e644a5723" - integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw== - -isbinaryfile@^3.0.2: - version "3.0.3" - resolved "https://registry.yarnpkg.com/isbinaryfile/-/isbinaryfile-3.0.3.tgz#5d6def3edebf6e8ca8cae9c30183a804b5f8be80" - integrity sha512-8cJBL5tTd2OS0dM4jz07wQd5g0dCCqIhUxPIGtZfa5L6hWlvV5MHTITy/DBAsF+Oe2LS1X3krBUhNwaGUWpWxw== - dependencies: - buffer-alloc "^1.2.0" - -isexe@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" - integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= - -isobject@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" - integrity sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk= - dependencies: - isarray "1.0.0" - -isobject@^3.0.0, isobject@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" - integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= - -isomorphic-fetch@^2.1.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz#611ae1acf14f5e81f729507472819fe9733558a9" - integrity sha1-YRrhrPFPXoH3KVB0coGf6XM1WKk= - dependencies: - node-fetch "^1.0.1" - whatwg-fetch ">=0.10.0" - -isstream@~0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" - integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= - -istanbul-lib-coverage@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.5.tgz#675f0ab69503fad4b1d849f736baaca803344f49" - integrity sha512-8aXznuEPCJvGnMSRft4udDRDtb1V3pkQkMMI5LI+6HuQz5oQ4J2UFn1H82raA3qJtyOLkkwVqICBQkjnGtn5mA== - -istanbul-lib-hook@^2.0.7: - version "2.0.7" - resolved "https://registry.yarnpkg.com/istanbul-lib-hook/-/istanbul-lib-hook-2.0.7.tgz#c95695f383d4f8f60df1f04252a9550e15b5b133" - integrity sha512-vrRztU9VRRFDyC+aklfLoeXyNdTfga2EI3udDGn4cZ6fpSXpHLV9X6CHvfoMCPtggg8zvDDmC4b9xfu0z6/llA== - dependencies: - append-transform "^1.0.0" - -istanbul-lib-instrument@^3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-3.3.0.tgz#a5f63d91f0bbc0c3e479ef4c5de027335ec6d630" - integrity sha512-5nnIN4vo5xQZHdXno/YDXJ0G+I3dAm4XgzfSVTPLQpj/zAV2dV6Juy0yaf10/zrJOJeHoN3fraFe+XRq2bFVZA== - dependencies: - "@babel/generator" "^7.4.0" - "@babel/parser" "^7.4.3" - "@babel/template" "^7.4.0" - "@babel/traverse" "^7.4.3" - "@babel/types" "^7.4.0" - istanbul-lib-coverage "^2.0.5" - semver "^6.0.0" - -istanbul-lib-report@^2.0.8: - version "2.0.8" - resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-2.0.8.tgz#5a8113cd746d43c4889eba36ab10e7d50c9b4f33" - integrity sha512-fHBeG573EIihhAblwgxrSenp0Dby6tJMFR/HvlerBsrCTD5bkUuoNtn3gVh29ZCS824cGGBPn7Sg7cNk+2xUsQ== - dependencies: - istanbul-lib-coverage "^2.0.5" - make-dir "^2.1.0" - supports-color "^6.1.0" - -istanbul-lib-source-maps@^3.0.6: - version "3.0.6" - resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-3.0.6.tgz#284997c48211752ec486253da97e3879defba8c8" - integrity sha512-R47KzMtDJH6X4/YW9XTx+jrLnZnscW4VpNN+1PViSYTejLVPWv7oov+Duf8YQSPyVRUvueQqz1TcsC6mooZTXw== - dependencies: - debug "^4.1.1" - istanbul-lib-coverage "^2.0.5" - make-dir "^2.1.0" - rimraf "^2.6.3" - source-map "^0.6.1" - -istanbul-reports@^2.2.4: - version "2.2.6" - resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-2.2.6.tgz#7b4f2660d82b29303a8fe6091f8ca4bf058da1af" - integrity sha512-SKi4rnMyLBKe0Jy2uUdx28h8oG7ph2PPuQPvIAh31d+Ci+lSiEu4C+h3oBPuJ9+mPKhOyW0M8gY4U5NM1WLeXA== - dependencies: - handlebars "^4.1.2" - -istextorbinary@^2.2.1: - version "2.5.1" - resolved "https://registry.yarnpkg.com/istextorbinary/-/istextorbinary-2.5.1.tgz#14a33824cf6b9d5d7743eac1be2bd2c310d0ccbd" - integrity sha512-pv/JNPWnfpwGjPx7JrtWTwsWsxkrK3fNzcEVnt92YKEIErps4Fsk49+qzCe9iQF2hjqK8Naqf8P9kzoeCuQI1g== - dependencies: - binaryextensions "^2.1.2" - editions "^2.1.3" - textextensions "^2.4.0" - -isurl@^1.0.0-alpha5: - version "1.0.0" - resolved "https://registry.yarnpkg.com/isurl/-/isurl-1.0.0.tgz#b27f4f49f3cdaa3ea44a0a5b7f3462e6edc39d67" - integrity sha512-1P/yWsxPlDtn7QeRD+ULKQPaIaN6yF368GZ2vDfv0AL0NwpStafjWCDDdn0k8wgFMWpVAqG7oJhxHnlud42i9w== - dependencies: - has-to-string-tag-x "^1.2.0" - is-object "^1.0.1" - -jest-docblock@23.2.0, jest-docblock@^23.2.0: - version "23.2.0" - resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-23.2.0.tgz#f085e1f18548d99fdd69b20207e6fd55d91383a7" - integrity sha1-8IXh8YVI2Z/dabICB+b9VdkTg6c= - dependencies: - detect-newline "^2.1.0" - -jest-haste-map@23.5.0: - version "23.5.0" - resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-23.5.0.tgz#d4ca618188bd38caa6cb20349ce6610e194a8065" - integrity sha512-bt9Swigb6KZ6ZQq/fQDUwdUeHenVvZ6G/lKwJjwRGp+Fap8D4B3bND3FaeJg7vXVsLX8hXshRArbVxLop/5wLw== - dependencies: - fb-watchman "^2.0.0" - graceful-fs "^4.1.11" - invariant "^2.2.4" - jest-docblock "^23.2.0" - jest-serializer "^23.0.1" - jest-worker "^23.2.0" - micromatch "^2.3.11" - sane "^2.0.0" - -jest-serializer@23.0.1, jest-serializer@^23.0.1: - version "23.0.1" - resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-23.0.1.tgz#a3776aeb311e90fe83fab9e533e85102bd164165" - integrity sha1-o3dq6zEekP6D+rnlM+hRAr0WQWU= - -jest-worker@23.2.0, jest-worker@^23.2.0: - version "23.2.0" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-23.2.0.tgz#faf706a8da36fae60eb26957257fa7b5d8ea02b9" - integrity sha1-+vcGqNo2+uYOsmlXJX+ntdjqArk= - dependencies: - merge-stream "^1.0.1" - -js-levenshtein@^1.1.3: - version "1.1.6" - resolved "https://registry.yarnpkg.com/js-levenshtein/-/js-levenshtein-1.1.6.tgz#c6cee58eb3550372df8deb85fad5ce66ce01d59d" - integrity sha512-X2BB11YZtrRqY4EnQcLX5Rh373zbK4alC1FW7D7MBhL2gtcC17cTnr6DmfHZeS0s2rTHjUTMMHfG7gO8SSdw+g== - -js-sha3@^0.8.0: - version "0.8.0" - resolved "https://registry.yarnpkg.com/js-sha3/-/js-sha3-0.8.0.tgz#b9b7a5da73afad7dedd0f8c463954cbde6818840" - integrity sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q== - -js-tokens@^3.0.0: - version "3.0.2" - resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" - integrity sha1-mGbfOVECEw449/mWvOtlRDIJwls= - -"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" - integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== - -js-yaml@^3.13.1: - version "3.13.1" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.13.1.tgz#aff151b30bfdfa8e49e05da22e7415e9dfa37847" - integrity sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw== - dependencies: - argparse "^1.0.7" - esprima "^4.0.0" - -jsbn@~0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" - integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM= - -jsesc@^2.5.1: - version "2.5.2" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" - integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== - -jsesc@~0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" - integrity sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0= - -json-parse-better-errors@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" - integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== - -json-schema-traverse@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" - integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== - -json-schema@0.2.3: - version "0.2.3" - resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" - integrity sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM= - -json-stable-stringify@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz#9a759d39c5f2ff503fd5300646ed445f88c4f9af" - integrity sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8= - dependencies: - jsonify "~0.0.0" - -json-stringify-safe@~5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" - integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= - -json5@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/json5/-/json5-2.1.0.tgz#e7a0c62c48285c628d20a10b85c89bb807c32850" - integrity sha512-8Mh9h6xViijj36g7Dxi+Y4S6hNGV96vcJZr/SrlHh1LR/pEn/8j/+qIBbs44YKl69Lrfctp4QD+AdWLTMqEZAQ== - dependencies: - minimist "^1.2.0" - -jsonfile@^2.1.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-2.4.0.tgz#3736a2b428b87bbda0cc83b53fa3d633a35c2ae8" - integrity sha1-NzaitCi4e72gzIO1P6PWM6NcKug= - optionalDependencies: - graceful-fs "^4.1.6" - -jsonfile@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" - integrity sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss= - optionalDependencies: - graceful-fs "^4.1.6" - -jsonify@~0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73" - integrity sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM= - -jsonpointer@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/jsonpointer/-/jsonpointer-4.0.1.tgz#4fd92cb34e0e9db3c89c8622ecf51f9b978c6cb9" - integrity sha1-T9kss04OnbPInIYi7PUfm5eMbLk= - -jsprim@^1.2.2: - version "1.4.1" - resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" - integrity sha1-MT5mvB5cwG5Di8G3SZwuXFastqI= - dependencies: - assert-plus "1.0.0" - extsprintf "1.3.0" - json-schema "0.2.3" - verror "1.10.0" - -jsx-ast-utils@^1.4.0: - version "1.4.1" - resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-1.4.1.tgz#3867213e8dd79bf1e8f2300c0cfc1efb182c0df1" - integrity sha1-OGchPo3Xm/Ho8jAMDPwe+xgsDfE= - -keymirror@0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/keymirror/-/keymirror-0.1.1.tgz#918889ea13f8d0a42e7c557250eee713adc95c35" - integrity sha1-kYiJ6hP40KQufFVyUO7nE63JXDU= - -kind-of@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-1.1.0.tgz#140a3d2d41a36d2efcfa9377b62c24f8495a5c44" - integrity sha1-FAo9LUGjbS78+pN3tiwk+ElaXEQ= - -kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: - version "3.2.2" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" - integrity sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ= - dependencies: - is-buffer "^1.1.5" - -kind-of@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" - integrity sha1-IIE989cSkosgc3hpGkUGb65y3Vc= - dependencies: - is-buffer "^1.1.5" - -kind-of@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d" - integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw== - -kind-of@^6.0.0, kind-of@^6.0.2: - version "6.0.2" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.2.tgz#01146b36a6218e64e58f3a8d66de5d7fc6f6d051" - integrity sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA== - -klaw@^1.0.0: - version "1.3.1" - resolved "https://registry.yarnpkg.com/klaw/-/klaw-1.3.1.tgz#4088433b46b3b1ba259d78785d8e96f73ba02439" - integrity sha1-QIhDO0azsbolnXh4XY6W9zugJDk= - optionalDependencies: - graceful-fs "^4.1.9" - -latest-version@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-3.1.0.tgz#a205383fea322b33b5ae3b18abee0dc2f356ee15" - integrity sha1-ogU4P+oyKzO1rjsYq+4NwvNW7hU= - dependencies: - package-json "^4.0.0" - -lcid@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/lcid/-/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835" - integrity sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU= - dependencies: - invert-kv "^1.0.0" - -lcov-parse@^0.0.10: - version "0.0.10" - resolved "https://registry.yarnpkg.com/lcov-parse/-/lcov-parse-0.0.10.tgz#1b0b8ff9ac9c7889250582b70b71315d9da6d9a3" - integrity sha1-GwuP+ayceIklBYK3C3ExXZ2m2aM= - -load-json-file@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-2.0.0.tgz#7947e42149af80d696cbf797bcaabcfe1fe29ca8" - integrity sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg= - dependencies: - graceful-fs "^4.1.2" - parse-json "^2.2.0" - pify "^2.0.0" - strip-bom "^3.0.0" - -load-json-file@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-4.0.0.tgz#2f5f45ab91e33216234fd53adab668eb4ec0993b" - integrity sha1-L19Fq5HjMhYjT9U62rZo607AmTs= - dependencies: - graceful-fs "^4.1.2" - parse-json "^4.0.0" - pify "^3.0.0" - strip-bom "^3.0.0" - -locate-path@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" - integrity sha1-K1aLJl7slExtnA3pw9u7ygNUzY4= - dependencies: - p-locate "^2.0.0" - path-exists "^3.0.0" - -locate-path@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" - integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A== - dependencies: - p-locate "^3.0.0" - path-exists "^3.0.0" - -lodash.flattendeep@^4.4.0: - version "4.4.0" - resolved "https://registry.yarnpkg.com/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz#fb030917f86a3134e5bc9bec0d69e0013ddfedb2" - integrity sha1-+wMJF/hqMTTlvJvsDWngAT3f7bI= - -lodash.pad@^4.1.0: - version "4.5.1" - resolved "https://registry.yarnpkg.com/lodash.pad/-/lodash.pad-4.5.1.tgz#4330949a833a7c8da22cc20f6a26c4d59debba70" - integrity sha1-QzCUmoM6fI2iLMIPaibE1Z3runA= - -lodash.padend@^4.1.0: - version "4.6.1" - resolved "https://registry.yarnpkg.com/lodash.padend/-/lodash.padend-4.6.1.tgz#53ccba047d06e158d311f45da625f4e49e6f166e" - integrity sha1-U8y6BH0G4VjTEfRdpiX05J5vFm4= - -lodash.padstart@^4.1.0: - version "4.6.1" - resolved "https://registry.yarnpkg.com/lodash.padstart/-/lodash.padstart-4.6.1.tgz#d2e3eebff0d9d39ad50f5cbd1b52a7bce6bb611b" - integrity sha1-0uPuv/DZ05rVD1y9G1KnvOa7YRs= - -lodash.throttle@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/lodash.throttle/-/lodash.throttle-4.1.1.tgz#c23e91b710242ac70c37f1e1cda9274cc39bf2f4" - integrity sha1-wj6RtxAkKscMN/HhzaknTMOb8vQ= - -lodash@^3.10.0: - version "3.10.1" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-3.10.1.tgz#5bf45e8e49ba4189e17d482789dfd15bd140b7b6" - integrity sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y= - -lodash@^4.17.10, lodash@^4.17.12, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.2, lodash@^4.17.5, lodash@^4.3.0, lodash@^4.6.1: - version "4.17.15" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548" - integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A== - -log-driver@^1.2.7: - version "1.2.7" - resolved "https://registry.yarnpkg.com/log-driver/-/log-driver-1.2.7.tgz#63b95021f0702fedfa2c9bb0a24e7797d71871d8" - integrity sha512-U7KCmLdqsGHBLeWqYlFA0V0Sl6P08EE1ZrmA9cxjUE0WVqT9qnyVDPz1kzpFEP0jdJuFnasWIfSd7fsaNXkpbg== - -log-symbols@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-2.2.0.tgz#5740e1c5d6f0dfda4ad9323b5332107ef6b4c40a" - integrity sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg== - dependencies: - chalk "^2.0.1" - -loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.3.1, loose-envify@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" - integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== - dependencies: - js-tokens "^3.0.0 || ^4.0.0" - -lowercase-keys@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz#6f9e30b47084d971a7c820ff15a6c5167b74c26f" - integrity sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA== - -lru-cache@^4.0.1: - version "4.1.5" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd" - integrity sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g== - dependencies: - pseudomap "^1.0.2" - yallist "^2.1.2" - -macos-alias@~0.2.5: - version "0.2.11" - resolved "https://registry.yarnpkg.com/macos-alias/-/macos-alias-0.2.11.tgz#feeea6c13ba119814a43fc43c470b31e59ef718a" - integrity sha1-/u6mwTuhGYFKQ/xDxHCzHlnvcYo= - dependencies: - nan "^2.4.0" - -make-dir@^1.0.0, make-dir@^1.1.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.3.0.tgz#79c1033b80515bd6d24ec9933e860ca75ee27f0c" - integrity sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ== - dependencies: - pify "^3.0.0" - -make-dir@^2.0.0, make-dir@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5" - integrity sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA== - dependencies: - pify "^4.0.1" - semver "^5.6.0" - -makeerror@1.0.x: - version "1.0.11" - resolved "https://registry.yarnpkg.com/makeerror/-/makeerror-1.0.11.tgz#e01a5c9109f2af79660e4e8b9587790184f5a96c" - integrity sha1-4BpckQnyr3lmDk6LlYd5AYT1qWw= - dependencies: - tmpl "1.0.x" - -map-cache@^0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" - integrity sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8= - -map-visit@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" - integrity sha1-7Nyo8TFE5mDxtb1B8S80edmN+48= - dependencies: - object-visit "^1.0.0" - -math-random@^1.0.1: - version "1.0.4" - resolved "https://registry.yarnpkg.com/math-random/-/math-random-1.0.4.tgz#5dd6943c938548267016d4e34f057583080c514c" - integrity sha512-rUxjysqif/BZQH2yhd5Aaq7vXMSx9NdEsQcyA07uEzIvxgI7zIr33gGsh+RU0/XjmQpCW7RsVof1vlkvQVCK5A== - -mem-fs-editor@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/mem-fs-editor/-/mem-fs-editor-5.1.0.tgz#51972241640be8567680a04f7adaffe5fc603667" - integrity sha512-2Yt2GCYEbcotYbIJagmow4gEtHDqzpq5XN94+yAx/NT5+bGqIjkXnm3KCUQfE6kRfScGp9IZknScoGRKu8L78w== - dependencies: - commondir "^1.0.1" - deep-extend "^0.6.0" - ejs "^2.5.9" - glob "^7.0.3" - globby "^8.0.1" - isbinaryfile "^3.0.2" - mkdirp "^0.5.0" - multimatch "^2.0.0" - rimraf "^2.2.8" - through2 "^2.0.0" - vinyl "^2.0.1" - -mem-fs@^1.1.0: - version "1.1.3" - resolved "https://registry.yarnpkg.com/mem-fs/-/mem-fs-1.1.3.tgz#b8ae8d2e3fcb6f5d3f9165c12d4551a065d989cc" - integrity sha1-uK6NLj/Lb10/kWXBLUVRoGXZicw= - dependencies: - through2 "^2.0.0" - vinyl "^1.1.0" - vinyl-file "^2.0.0" - -mem@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/mem/-/mem-1.1.0.tgz#5edd52b485ca1d900fe64895505399a0dfa45f76" - integrity sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y= - dependencies: - mimic-fn "^1.0.0" - -merge-source-map@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/merge-source-map/-/merge-source-map-1.1.0.tgz#2fdde7e6020939f70906a68f2d7ae685e4c8c646" - integrity sha512-Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw== - dependencies: - source-map "^0.6.1" - -merge-stream@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-1.0.1.tgz#4041202d508a342ba00174008df0c251b8c135e1" - integrity sha1-QEEgLVCKNCugAXQAjfDCUbjBNeE= - dependencies: - readable-stream "^2.0.1" - -merge2@^1.2.3: - version "1.3.0" - resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.3.0.tgz#5b366ee83b2f1582c48f87e47cf1a9352103ca81" - integrity sha512-2j4DAdlBOkiSZIsaXk4mTE3sRS02yBHAtfy127xRV3bQUFqXkjHCHLW6Scv7DwNRbIWNHH8zpnz9zMaKXIdvYw== - -merge@^1.2.0: - version "1.2.1" - resolved "https://registry.yarnpkg.com/merge/-/merge-1.2.1.tgz#38bebf80c3220a8a487b6fcfb3941bb11720c145" - integrity sha512-VjFo4P5Whtj4vsLzsYBu5ayHhoHJ0UqNm7ibvShmbmoz7tGi0vXaoJbGdB+GmDMLUdg8DpQXEIeVDAe8MaABvQ== - -metro-babel-register@^0.48.1: - version "0.48.5" - resolved "https://registry.yarnpkg.com/metro-babel-register/-/metro-babel-register-0.48.5.tgz#ece8131f959a1f7acf37af83c8e5696bfd0a448e" - integrity sha512-bJCessd7THqEfXrKEoj284XVjg9AGYbGqZiyV622l6ex9TvtVi1lToDY0TuAAuDXOm+V4vQXV7/HvR6JPP0dTQ== - dependencies: - "@babel/core" "^7.0.0" - "@babel/plugin-proposal-class-properties" "^7.0.0" - "@babel/plugin-proposal-nullish-coalescing-operator" "^7.0.0" - "@babel/plugin-proposal-object-rest-spread" "^7.0.0" - "@babel/plugin-proposal-optional-catch-binding" "^7.0.0" - "@babel/plugin-proposal-optional-chaining" "^7.0.0" - "@babel/plugin-transform-async-to-generator" "^7.0.0" - "@babel/plugin-transform-flow-strip-types" "^7.0.0" - "@babel/plugin-transform-modules-commonjs" "^7.0.0" - "@babel/register" "^7.0.0" - core-js "^2.2.2" - escape-string-regexp "^1.0.5" - -metro-babel7-plugin-react-transform@0.48.5: - version "0.48.5" - resolved "https://registry.yarnpkg.com/metro-babel7-plugin-react-transform/-/metro-babel7-plugin-react-transform-0.48.5.tgz#312eb0adf3764357c79b79acc6eb92646051b349" - integrity sha512-S0cA0msHBGw7PSwB6nAsvtHEpQXVwzKBaE4AibLpaBiIVdWkYpIOok653zs9x+E9QvQgcghAnlVnDV+MDM+rSw== - dependencies: - "@babel/helper-module-imports" "^7.0.0" - -metro-babel7-plugin-react-transform@^0.39.1: - version "0.39.1" - resolved "https://registry.yarnpkg.com/metro-babel7-plugin-react-transform/-/metro-babel7-plugin-react-transform-0.39.1.tgz#deb851fa6904ed5b9f4e38f69e3f318a0fb670e6" - integrity sha512-7atigK+8EZ1DAWhpcw2a60OhCPihe9TsRHGOKUUwJjXmXDxmYxoxejh1kK5vJSaW38P45PkUBwnfNwISWFv4mQ== - dependencies: - "@babel/helper-module-imports" "7.0.0-beta.47" - lodash "^4.17.5" - -metro-cache@0.48.5: - version "0.48.5" - resolved "https://registry.yarnpkg.com/metro-cache/-/metro-cache-0.48.5.tgz#5ab3ad13c9df527f4196f0de096a3d496db97a6b" - integrity sha512-vlUf3A6+U3LXcf6wAn42N22q1h7MMoopA25w5KR4Flwd0xKVokxHwsTo9v06vpn4gqFtpXWCpEJSBaYRrWYJwg== - dependencies: - jest-serializer "23.0.1" - metro-core "0.48.5" - mkdirp "^0.5.1" - rimraf "^2.5.4" - -metro-config@0.48.5: - version "0.48.5" - resolved "https://registry.yarnpkg.com/metro-config/-/metro-config-0.48.5.tgz#05624064617eb648ee6e336951b60ac665230a45" - integrity sha512-b+EmFgBOAEUM5THjJ2EU6CJxnULLC5V1Q8S8dz4xX4v96eLIsRCLPrXgYKATHJTVi0qw99ATVRsOBZVZ77fwjg== - dependencies: - cosmiconfig "^5.0.5" - metro "0.48.5" - metro-cache "0.48.5" - metro-core "0.48.5" - pretty-format "^23.4.1" - -metro-core@0.48.5, metro-core@^0.48.1: - version "0.48.5" - resolved "https://registry.yarnpkg.com/metro-core/-/metro-core-0.48.5.tgz#eef57d0ea947cfd2e44d86b20592a321ca234b89" - integrity sha512-Yp0BOAHhxf/qdNkwJhemVdD2Y59iyaTjwxUimCmeD8u5VEL6mLgEC1S0KczyWEiAgX3Fs48rezCAcx3mo67wXg== - dependencies: - jest-haste-map "23.5.0" - lodash.throttle "^4.1.1" - metro-resolver "0.48.5" - wordwrap "^1.0.0" - -metro-memory-fs@^0.48.1: - version "0.48.5" - resolved "https://registry.yarnpkg.com/metro-memory-fs/-/metro-memory-fs-0.48.5.tgz#ae390f494ff0d54f2fb60531a3e4b83282a6b66d" - integrity sha512-dxN0dBtMOR1CvyRIOM/NE+uFirybWb4y2PZke0Z8bpYn6ttmv8ZF3PVdFxJf9v9irVBSOIPD0mD5zllxQkXzhg== - -metro-minify-uglify@0.48.5: - version "0.48.5" - resolved "https://registry.yarnpkg.com/metro-minify-uglify/-/metro-minify-uglify-0.48.5.tgz#c8e878ce31adc1f9af3550917da7028b9eb91bc1" - integrity sha512-tiHVYlUMuL91YjQPx9BzzzXy5jAAA5SWLqlvWfmM6m9faWtFeCv8Se27vVNuPDkOPYyL8qPCRhUpZMUhA0yN2g== - dependencies: - uglify-es "^3.1.9" - -metro-react-native-babel-preset@0.48.5: - version "0.48.5" - resolved "https://registry.yarnpkg.com/metro-react-native-babel-preset/-/metro-react-native-babel-preset-0.48.5.tgz#cafa1c3ea326a447a89031928b0932f38a65815c" - integrity sha512-ldG1bsusB5zlS1fhAiSLRjUA7I/Chn/dniaXTlkUpgiqyEAaDDmqhkDJ8gyZw3rhlLMVswlBd3o6I8yYti+57w== - dependencies: - "@babel/plugin-proposal-class-properties" "^7.0.0" - "@babel/plugin-proposal-export-default-from" "^7.0.0" - "@babel/plugin-proposal-nullish-coalescing-operator" "^7.0.0" - "@babel/plugin-proposal-object-rest-spread" "^7.0.0" - "@babel/plugin-proposal-optional-catch-binding" "^7.0.0" - "@babel/plugin-proposal-optional-chaining" "^7.0.0" - "@babel/plugin-syntax-dynamic-import" "^7.0.0" - "@babel/plugin-syntax-export-default-from" "^7.0.0" - "@babel/plugin-transform-arrow-functions" "^7.0.0" - "@babel/plugin-transform-block-scoping" "^7.0.0" - "@babel/plugin-transform-classes" "^7.0.0" - "@babel/plugin-transform-computed-properties" "^7.0.0" - "@babel/plugin-transform-destructuring" "^7.0.0" - "@babel/plugin-transform-exponentiation-operator" "^7.0.0" - "@babel/plugin-transform-flow-strip-types" "^7.0.0" - "@babel/plugin-transform-for-of" "^7.0.0" - "@babel/plugin-transform-function-name" "^7.0.0" - "@babel/plugin-transform-literals" "^7.0.0" - "@babel/plugin-transform-modules-commonjs" "^7.0.0" - "@babel/plugin-transform-object-assign" "^7.0.0" - "@babel/plugin-transform-parameters" "^7.0.0" - "@babel/plugin-transform-react-display-name" "^7.0.0" - "@babel/plugin-transform-react-jsx" "^7.0.0" - "@babel/plugin-transform-react-jsx-source" "^7.0.0" - "@babel/plugin-transform-regenerator" "^7.0.0" - "@babel/plugin-transform-runtime" "^7.0.0" - "@babel/plugin-transform-shorthand-properties" "^7.0.0" - "@babel/plugin-transform-spread" "^7.0.0" - "@babel/plugin-transform-sticky-regex" "^7.0.0" - "@babel/plugin-transform-template-literals" "^7.0.0" - "@babel/plugin-transform-typescript" "^7.0.0" - "@babel/plugin-transform-unicode-regex" "^7.0.0" - "@babel/template" "^7.0.0" - metro-babel7-plugin-react-transform "0.48.5" - react-transform-hmr "^1.0.4" - -metro-react-native-babel-preset@^0.57.0: - version "0.57.0" - resolved "https://registry.yarnpkg.com/metro-react-native-babel-preset/-/metro-react-native-babel-preset-0.57.0.tgz#bbbce26a20d9ca3fdc08f0df564bc982b82651b7" - integrity sha512-pvLh1QOwdxsjgYE2a+4aTKs3LSF3+t4jscxHtkND6wsJnKVVspLt8FkDaORa6zr3Fq12tVpEt5NJMdgtWqBpaA== - dependencies: - "@babel/plugin-proposal-class-properties" "^7.0.0" - "@babel/plugin-proposal-export-default-from" "^7.0.0" - "@babel/plugin-proposal-nullish-coalescing-operator" "^7.0.0" - "@babel/plugin-proposal-object-rest-spread" "^7.0.0" - "@babel/plugin-proposal-optional-catch-binding" "^7.0.0" - "@babel/plugin-proposal-optional-chaining" "^7.0.0" - "@babel/plugin-syntax-dynamic-import" "^7.0.0" - "@babel/plugin-syntax-export-default-from" "^7.0.0" - "@babel/plugin-syntax-flow" "^7.2.0" - "@babel/plugin-transform-arrow-functions" "^7.0.0" - "@babel/plugin-transform-block-scoping" "^7.0.0" - "@babel/plugin-transform-classes" "^7.0.0" - "@babel/plugin-transform-computed-properties" "^7.0.0" - "@babel/plugin-transform-destructuring" "^7.0.0" - "@babel/plugin-transform-exponentiation-operator" "^7.0.0" - "@babel/plugin-transform-flow-strip-types" "^7.0.0" - "@babel/plugin-transform-for-of" "^7.0.0" - "@babel/plugin-transform-function-name" "^7.0.0" - "@babel/plugin-transform-literals" "^7.0.0" - "@babel/plugin-transform-modules-commonjs" "^7.0.0" - "@babel/plugin-transform-object-assign" "^7.0.0" - "@babel/plugin-transform-parameters" "^7.0.0" - "@babel/plugin-transform-react-display-name" "^7.0.0" - "@babel/plugin-transform-react-jsx" "^7.0.0" - "@babel/plugin-transform-react-jsx-source" "^7.0.0" - "@babel/plugin-transform-regenerator" "^7.0.0" - "@babel/plugin-transform-runtime" "^7.0.0" - "@babel/plugin-transform-shorthand-properties" "^7.0.0" - "@babel/plugin-transform-spread" "^7.0.0" - "@babel/plugin-transform-sticky-regex" "^7.0.0" - "@babel/plugin-transform-template-literals" "^7.0.0" - "@babel/plugin-transform-typescript" "^7.0.0" - "@babel/plugin-transform-unicode-regex" "^7.0.0" - "@babel/template" "^7.0.0" - react-refresh "^0.4.0" - -metro-resolver@0.48.5: - version "0.48.5" - resolved "https://registry.yarnpkg.com/metro-resolver/-/metro-resolver-0.48.5.tgz#d2ff84afab13ec3962685953ebd03d878e1f4c36" - integrity sha512-lScSpLJKZMmNPRwvcY6zj28AwMOcI1M5bCCv+m06VWcISCTq1KlaKVwqLKmFgUtPkoFtFLD+PVKRKCRUxj1opg== - dependencies: - absolute-path "^0.0.0" - -metro-source-map@0.48.5: - version "0.48.5" - resolved "https://registry.yarnpkg.com/metro-source-map/-/metro-source-map-0.48.5.tgz#ab738f5cea4627fdae839d09237f85dd13d972ab" - integrity sha512-+BbcU9vfEl/XhMlVV0RwuHuEkai4lq7RmlQkxgoOoWl1u0yXCAPRZ5sqa326fPlJzElOR3cp0y7+Oc2nbIguyg== - dependencies: - source-map "^0.5.6" - -metro@0.48.5, metro@^0.48.1: - version "0.48.5" - resolved "https://registry.yarnpkg.com/metro/-/metro-0.48.5.tgz#94fb4476ea18d3cf2e96e5c37dc85a21b69b4bf1" - integrity sha512-aCarzjxdYqh+9I40bF+Hh1ayrwfPrnDwVOvpQg3VZFWU4wfeMiJb+tzeRN9p94cC/MKhBTOjRmUF3plzrHoe0w== - dependencies: - "@babel/core" "^7.0.0" - "@babel/generator" "^7.0.0" - "@babel/parser" "^7.0.0" - "@babel/plugin-external-helpers" "^7.0.0" - "@babel/template" "^7.0.0" - "@babel/traverse" "^7.0.0" - "@babel/types" "^7.0.0" - absolute-path "^0.0.0" - async "^2.4.0" - babel-preset-fbjs "^3.0.1" - chalk "^1.1.1" - concat-stream "^1.6.0" - connect "^3.6.5" - debug "^2.2.0" - denodeify "^1.2.1" - eventemitter3 "^3.0.0" - fbjs "^1.0.0" - fs-extra "^1.0.0" - graceful-fs "^4.1.3" - image-size "^0.6.0" - jest-docblock "23.2.0" - jest-haste-map "23.5.0" - jest-worker "23.2.0" - json-stable-stringify "^1.0.1" - lodash.throttle "^4.1.1" - merge-stream "^1.0.1" - metro-cache "0.48.5" - metro-config "0.48.5" - metro-core "0.48.5" - metro-minify-uglify "0.48.5" - metro-react-native-babel-preset "0.48.5" - metro-resolver "0.48.5" - metro-source-map "0.48.5" - mime-types "2.1.11" - mkdirp "^0.5.1" - node-fetch "^2.2.0" - nullthrows "^1.1.0" - react-transform-hmr "^1.0.4" - resolve "^1.5.0" - rimraf "^2.5.4" - serialize-error "^2.1.0" - source-map "^0.5.6" - temp "0.8.3" - throat "^4.1.0" - wordwrap "^1.0.0" - write-file-atomic "^1.2.0" - ws "^1.1.0" - xpipe "^1.0.5" - yargs "^9.0.0" - -micromatch@^2.3.11: - version "2.3.11" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565" - integrity sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU= - dependencies: - arr-diff "^2.0.0" - array-unique "^0.2.1" - braces "^1.8.2" - expand-brackets "^0.1.4" - extglob "^0.3.1" - filename-regex "^2.0.0" - is-extglob "^1.0.0" - is-glob "^2.0.1" - kind-of "^3.0.2" - normalize-path "^2.0.1" - object.omit "^2.0.0" - parse-glob "^3.0.4" - regex-cache "^0.4.2" - -micromatch@^3.1.10, micromatch@^3.1.4: - version "3.1.10" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" - integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg== - dependencies: - arr-diff "^4.0.0" - array-unique "^0.3.2" - braces "^2.3.1" - define-property "^2.0.2" - extend-shallow "^3.0.2" - extglob "^2.0.4" - fragment-cache "^0.2.1" - kind-of "^6.0.2" - nanomatch "^1.2.9" - object.pick "^1.3.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.2" - -mime-db@1.40.0: - version "1.40.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.40.0.tgz#a65057e998db090f732a68f6c276d387d4126c32" - integrity sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA== - -"mime-db@>= 1.40.0 < 2": - version "1.41.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.41.0.tgz#9110408e1f6aa1b34aef51f2c9df3caddf46b6a0" - integrity sha512-B5gxBI+2K431XW8C2rcc/lhppbuji67nf9v39eH8pkWoZDxnAL0PxdpH32KYRScniF8qDHBDlI+ipgg5WrCUYw== - -mime-db@~1.23.0: - version "1.23.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.23.0.tgz#a31b4070adaea27d732ea333740a64d0ec9a6659" - integrity sha1-oxtAcK2uon1zLqMzdApk0OyaZlk= - -mime-types@2.1.11: - version "2.1.11" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.11.tgz#c259c471bda808a85d6cd193b430a5fae4473b3c" - integrity sha1-wlnEcb2oCKhdbNGTtDCl+uRHOzw= - dependencies: - mime-db "~1.23.0" - -mime-types@^2.1.12, mime-types@~2.1.19, mime-types@~2.1.24: - version "2.1.24" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.24.tgz#b6f8d0b3e951efb77dedeca194cff6d16f676f81" - integrity sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ== - dependencies: - mime-db "1.40.0" - -mime@1.6.0, mime@^1.3.4: - version "1.6.0" - resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" - integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== - -mimic-fn@^1.0.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" - integrity sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ== - -mimic-response@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b" - integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ== - -min-document@^2.19.0: - version "2.19.0" - resolved "https://registry.yarnpkg.com/min-document/-/min-document-2.19.0.tgz#7bd282e3f5842ed295bb748cdd9f1ffa2c824685" - integrity sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU= - dependencies: - dom-walk "^0.1.0" - -minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" - integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== - -minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" - integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo= - -minimatch@^3.0.0, minimatch@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" - integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== - dependencies: - brace-expansion "^1.1.7" - -minimist@0.0.8: - version "0.0.8" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" - integrity sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0= - -minimist@^1.1.1, minimist@^1.1.3, minimist@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" - integrity sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ= - -minimist@~0.0.1: - version "0.0.10" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf" - integrity sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8= - -minipass@^2.2.1, minipass@^2.3.5: - version "2.5.0" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.5.0.tgz#dddb1d001976978158a05badfcbef4a771612857" - integrity sha512-9FwMVYhn6ERvMR8XFdOavRz4QK/VJV8elU1x50vYexf9lslDcWe/f4HBRxCPd185ekRSjU6CfYyJCECa/CQy7Q== - dependencies: - safe-buffer "^5.1.2" - yallist "^3.0.0" - -minizlib@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.2.1.tgz#dd27ea6136243c7c880684e8672bb3a45fd9b614" - integrity sha512-7+4oTUOWKg7AuL3vloEWekXY2/D20cevzsrNT2kGWm+39J9hGTCBv8VI5Pm5lXZ/o3/mdR4f8rflAPhnQb8mPA== - dependencies: - minipass "^2.2.1" - -mixin-deep@^1.2.0: - version "1.3.2" - resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.2.tgz#1120b43dc359a785dce65b55b82e257ccf479566" - integrity sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA== - dependencies: - for-in "^1.0.2" - is-extendable "^1.0.1" - -mkdirp@^0.5.0, mkdirp@^0.5.1: - version "0.5.1" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" - integrity sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM= - dependencies: - minimist "0.0.8" - -morgan@^1.9.0: - version "1.9.1" - resolved "https://registry.yarnpkg.com/morgan/-/morgan-1.9.1.tgz#0a8d16734a1d9afbc824b99df87e738e58e2da59" - integrity sha512-HQStPIV4y3afTiCYVxirakhlCfGkI161c76kKFca7Fk1JusM//Qeo1ej2XaMniiNeaZklMVrh3vTtIzpzwbpmA== - dependencies: - basic-auth "~2.0.0" - debug "2.6.9" - depd "~1.1.2" - on-finished "~2.3.0" - on-headers "~1.0.1" - -ms@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" - integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= - -ms@2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" - integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg== - -ms@^2.1.1: - version "2.1.2" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" - integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== - -multimatch@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/multimatch/-/multimatch-2.1.0.tgz#9c7906a22fb4c02919e2f5f75161b4cdbd4b2a2b" - integrity sha1-nHkGoi+0wCkZ4vX3UWG0zb1LKis= - dependencies: - array-differ "^1.0.0" - array-union "^1.0.1" - arrify "^1.0.0" - minimatch "^3.0.0" - -murmur-32@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/murmur-32/-/murmur-32-0.1.0.tgz#c1a79d4fc5fabf0405749d0aff77c41402055861" - integrity sha1-waedT8X6vwQFdJ0K/3fEFAIFWGE= - dependencies: - array-buffer-from-string "^0.1.0" - fmix "^0.1.0" - imul "^1.0.0" - -mute-stream@0.0.7: - version "0.0.7" - resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab" - integrity sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s= - -nan@^2.12.1, nan@^2.4.0: - version "2.14.0" - resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.0.tgz#7818f722027b2459a86f0295d434d1fc2336c52c" - integrity sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg== - -nanomatch@^1.2.9: - version "1.2.13" - resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" - integrity sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA== - dependencies: - arr-diff "^4.0.0" - array-unique "^0.3.2" - define-property "^2.0.2" - extend-shallow "^3.0.2" - fragment-cache "^0.2.1" - is-windows "^1.0.2" - kind-of "^6.0.2" - object.pick "^1.3.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" - -needle@^2.2.1: - version "2.4.0" - resolved "https://registry.yarnpkg.com/needle/-/needle-2.4.0.tgz#6833e74975c444642590e15a750288c5f939b57c" - integrity sha512-4Hnwzr3mi5L97hMYeNl8wRW/Onhy4nUKR/lVemJ8gJedxxUyBLm9kkrDColJvoSfwi0jCNhD+xCdOtiGDQiRZg== - dependencies: - debug "^3.2.6" - iconv-lite "^0.4.4" - sax "^1.2.4" - -negotiator@0.6.2: - version "0.6.2" - resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb" - integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw== - -neo-async@^2.6.0: - version "2.6.1" - resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.1.tgz#ac27ada66167fa8849a6addd837f6b189ad2081c" - integrity sha512-iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw== - -nested-error-stacks@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/nested-error-stacks/-/nested-error-stacks-2.1.0.tgz#0fbdcf3e13fe4994781280524f8b96b0cdff9c61" - integrity sha512-AO81vsIO1k1sM4Zrd6Hu7regmJN1NSiAja10gc4bX3F0wd+9rQmcuHQaHVQCYIEC8iFXnE+mavh23GOt7wBgug== - -"nfc-react-native@git+https://github.com/status-im/nfc-react-native.git#v0.3.8-status": - version "0.3.8" - resolved "git+https://github.com/status-im/nfc-react-native.git#ecdb55e470bb9fa569d26fcc8af4e5169511a4d3" - -nice-try@^1.0.4: - version "1.0.5" - resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" - integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== - -node-fetch@^1.0.1: - version "1.7.3" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-1.7.3.tgz#980f6f72d85211a5347c6b2bc18c5b84c3eb47ef" - integrity sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ== - dependencies: - encoding "^0.1.11" - is-stream "^1.0.1" - -node-fetch@^2.2.0: - version "2.6.0" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.0.tgz#e633456386d4aa55863f676a7ab0daa8fdecb0fd" - integrity sha512-8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA== - -node-int64@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" - integrity sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs= - -node-modules-regexp@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz#8d9dbe28964a4ac5712e9131642107c71e90ec40" - integrity sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA= - -node-notifier@^5.2.1: - version "5.4.3" - resolved "https://registry.yarnpkg.com/node-notifier/-/node-notifier-5.4.3.tgz#cb72daf94c93904098e28b9c590fd866e464bd50" - integrity sha512-M4UBGcs4jeOK9CjTsYwkvH6/MzuUmGCyTW+kCY7uO+1ZVr0+FHGdPdIf5CCLqAaxnRrWidyoQlNkMIIVwbKB8Q== - dependencies: - growly "^1.3.0" - is-wsl "^1.1.0" - semver "^5.5.0" - shellwords "^0.1.1" - which "^1.3.0" - -node-pre-gyp@^0.12.0: - version "0.12.0" - resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.12.0.tgz#39ba4bb1439da030295f899e3b520b7785766149" - integrity sha512-4KghwV8vH5k+g2ylT+sLTjy5wmUOb9vPhnM8NHvRf9dHmnW/CndrFXy2aRPaPST6dugXSdHXfeaHQm77PIz/1A== - dependencies: - detect-libc "^1.0.2" - mkdirp "^0.5.1" - needle "^2.2.1" - nopt "^4.0.1" - npm-packlist "^1.1.6" - npmlog "^4.0.2" - rc "^1.2.7" - rimraf "^2.6.1" - semver "^5.3.0" - tar "^4" - -node-releases@^1.1.38: - version "1.1.40" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.40.tgz#a94facfa8e2d612302601ca1361741d529c4515a" - integrity sha512-r4LPcC5b/bS8BdtWH1fbeK88ib/wg9aqmg6/s3ngNLn2Ewkn/8J6Iw3P9RTlfIAdSdvYvQl2thCY5Y+qTAQ2iQ== - dependencies: - semver "^6.3.0" - -nopt@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d" - integrity sha1-0NRoWv1UFRk8jHUFYC0NF81kR00= - dependencies: - abbrev "1" - osenv "^0.1.4" - -normalize-package-data@^2.3.2: - version "2.5.0" - resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" - integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== - dependencies: - hosted-git-info "^2.1.4" - resolve "^1.10.0" - semver "2 || 3 || 4 || 5" - validate-npm-package-license "^3.0.1" - -normalize-path@^2.0.1, normalize-path@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" - integrity sha1-GrKLVW4Zg2Oowab35vogE3/mrtk= - dependencies: - remove-trailing-separator "^1.0.1" - -npm-bundled@^1.0.1: - version "1.0.6" - resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.0.6.tgz#e7ba9aadcef962bb61248f91721cd932b3fe6bdd" - integrity sha512-8/JCaftHwbd//k6y2rEWp6k1wxVfpFzB6t1p825+cUb7Ym2XQfhwIC5KwhrvzZRJu+LtDE585zVaS32+CGtf0g== - -npm-packlist@^1.1.6: - version "1.4.4" - resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.4.4.tgz#866224233850ac534b63d1a6e76050092b5d2f44" - integrity sha512-zTLo8UcVYtDU3gdeaFu2Xu0n0EvelfHDGuqtNIn5RO7yQj4H1TqNdBc/yZjxnWA0PVB8D3Woyp0i5B43JwQ6Vw== - dependencies: - ignore-walk "^3.0.1" - npm-bundled "^1.0.1" - -npm-run-path@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" - integrity sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8= - dependencies: - path-key "^2.0.0" - -npmlog@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-2.0.4.tgz#98b52530f2514ca90d09ec5b22c8846722375692" - integrity sha1-mLUlMPJRTKkNCexbIsiEZyI3VpI= - dependencies: - ansi "~0.3.1" - are-we-there-yet "~1.1.2" - gauge "~1.2.5" - -npmlog@^4.0.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" - integrity sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg== - dependencies: - are-we-there-yet "~1.1.2" - console-control-strings "~1.1.0" - gauge "~2.7.3" - set-blocking "~2.0.0" - -nullthrows@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/nullthrows/-/nullthrows-1.1.1.tgz#7818258843856ae971eae4208ad7d7eb19a431b1" - integrity sha512-2vPPEi+Z7WqML2jZYddDIfy5Dqb0r2fze2zTxNNknZaFpVHU3mFB3R+DWeJWGVx0ecvttSGlJTI+WG+8Z4cDWw== - -number-is-nan@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" - integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0= - -number-to-bn@1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/number-to-bn/-/number-to-bn-1.7.0.tgz#bb3623592f7e5f9e0030b1977bd41a0c53fe1ea0" - integrity sha1-uzYjWS9+X54AMLGXe9QaDFP+HqA= - dependencies: - bn.js "4.11.6" - strip-hex-prefix "1.0.0" - -nyc@^14.1.1: - version "14.1.1" - resolved "https://registry.yarnpkg.com/nyc/-/nyc-14.1.1.tgz#151d64a6a9f9f5908a1b73233931e4a0a3075eeb" - integrity sha512-OI0vm6ZGUnoGZv/tLdZ2esSVzDwUC88SNs+6JoSOMVxA+gKMB8Tk7jBwgemLx4O40lhhvZCVw1C+OYLOBOPXWw== - dependencies: - archy "^1.0.0" - caching-transform "^3.0.2" - convert-source-map "^1.6.0" - cp-file "^6.2.0" - find-cache-dir "^2.1.0" - find-up "^3.0.0" - foreground-child "^1.5.6" - glob "^7.1.3" - istanbul-lib-coverage "^2.0.5" - istanbul-lib-hook "^2.0.7" - istanbul-lib-instrument "^3.3.0" - istanbul-lib-report "^2.0.8" - istanbul-lib-source-maps "^3.0.6" - istanbul-reports "^2.2.4" - js-yaml "^3.13.1" - make-dir "^2.1.0" - merge-source-map "^1.1.0" - resolve-from "^4.0.0" - rimraf "^2.6.3" - signal-exit "^3.0.2" - spawn-wrap "^1.4.2" - test-exclude "^5.2.3" - uuid "^3.3.2" - yargs "^13.2.2" - yargs-parser "^13.0.0" - -oauth-sign@~0.9.0: - version "0.9.0" - resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" - integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== - -object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" - integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= - -object-copy@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" - integrity sha1-fn2Fi3gb18mRpBupde04EnVOmYw= - dependencies: - copy-descriptor "^0.1.0" - define-property "^0.2.5" - kind-of "^3.0.3" - -object-inspect@^1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.6.0.tgz#c70b6cbf72f274aab4c34c0c82f5167bf82cf15b" - integrity sha512-GJzfBZ6DgDAmnuaM3104jR4s1Myxr3Y3zfIyN4z3UdqN69oSRacNK8UhnobDdC+7J2AHCjGwxQubNJfE70SXXQ== - -object-keys@^1.0.11, object-keys@^1.0.12, object-keys@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" - integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== - -object-visit@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb" - integrity sha1-95xEk68MU3e1n+OdOV5BBC3QRbs= - dependencies: - isobject "^3.0.0" - -object.assign@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.0.tgz#968bf1100d7956bb3ca086f006f846b3bc4008da" - integrity sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w== - dependencies: - define-properties "^1.1.2" - function-bind "^1.1.1" - has-symbols "^1.0.0" - object-keys "^1.0.11" - -object.omit@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/object.omit/-/object.omit-2.0.1.tgz#1a9c744829f39dbb858c76ca3579ae2a54ebd1fa" - integrity sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo= - dependencies: - for-own "^0.1.4" - is-extendable "^0.1.1" - -object.pick@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" - integrity sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c= - dependencies: - isobject "^3.0.1" - -on-finished@~2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" - integrity sha1-IPEzZIGwg811M3mSoWlxqi2QaUc= - dependencies: - ee-first "1.1.1" - -on-headers@~1.0.1, on-headers@~1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.2.tgz#772b0ae6aaa525c399e489adfad90c403eb3c28f" - integrity sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA== - -once@^1.3.0, once@^1.3.1, once@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" - integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= - dependencies: - wrappy "1" - -onetime@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4" - integrity sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ= - dependencies: - mimic-fn "^1.0.0" - -opn@^3.0.2: - version "3.0.3" - resolved "https://registry.yarnpkg.com/opn/-/opn-3.0.3.tgz#b6d99e7399f78d65c3baaffef1fb288e9b85243a" - integrity sha1-ttmec5n3jWXDuq/+8fsojpuFJDo= - dependencies: - object-assign "^4.0.1" - -optimist@^0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686" - integrity sha1-2j6nRob6IaGaERwybpDrFaAZZoY= - dependencies: - minimist "~0.0.1" - wordwrap "~0.0.2" - -options@>=0.0.5: - version "0.0.6" - resolved "https://registry.yarnpkg.com/options/-/options-0.0.6.tgz#ec22d312806bb53e731773e7cdaefcf1c643128f" - integrity sha1-7CLTEoBrtT5zF3Pnza788cZDEo8= - -os-homedir@^1.0.0, os-homedir@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" - integrity sha1-/7xJiDNuDoM94MFox+8VISGqf7M= - -os-locale@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-2.1.0.tgz#42bc2900a6b5b8bd17376c8e882b65afccf24bf2" - integrity sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA== - dependencies: - execa "^0.7.0" - lcid "^1.0.0" - mem "^1.1.0" - -os-tmpdir@^1.0.0, os-tmpdir@~1.0.1, os-tmpdir@~1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" - integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= - -osenv@^0.1.4: - version "0.1.5" - resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410" - integrity sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g== - dependencies: - os-homedir "^1.0.0" - os-tmpdir "^1.0.0" - -p-cancelable@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-0.3.0.tgz#b9e123800bcebb7ac13a479be195b507b98d30fa" - integrity sha512-RVbZPLso8+jFeq1MfNvgXtCRED2raz/dKpacfTNxsx6pLEpEomM7gah6VeHSYV3+vo0OAi4MkArtQcWWXuQoyw== - -p-finally@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" - integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= - -p-limit@^1.1.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" - integrity sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q== - dependencies: - p-try "^1.0.0" - -p-limit@^2.0.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.2.1.tgz#aa07a788cc3151c939b5131f63570f0dd2009537" - integrity sha512-85Tk+90UCVWvbDavCLKPOLC9vvY8OwEX/RtKF+/1OADJMVlFfEHOiMTPVyxg7mk/dKa+ipdHm0OUkTvCpMTuwg== - dependencies: - p-try "^2.0.0" - -p-locate@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" - integrity sha1-IKAQOyIqcMj9OcwuWAaA893l7EM= - dependencies: - p-limit "^1.1.0" - -p-locate@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" - integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ== - dependencies: - p-limit "^2.0.0" - -p-timeout@^1.1.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/p-timeout/-/p-timeout-1.2.1.tgz#5eb3b353b7fce99f101a1038880bb054ebbea386" - integrity sha1-XrOzU7f86Z8QGhA4iAuwVOu+o4Y= - dependencies: - p-finally "^1.0.0" - -p-try@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" - integrity sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M= - -p-try@^2.0.0, p-try@^2.1.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" - integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== - -package-hash@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/package-hash/-/package-hash-3.0.0.tgz#50183f2d36c9e3e528ea0a8605dff57ce976f88e" - integrity sha512-lOtmukMDVvtkL84rJHI7dpTYq+0rli8N2wlnqUcBuDWCfVhRUfOmnR9SsoHFMLpACvEV60dX7rd0rFaYDZI+FA== - dependencies: - graceful-fs "^4.1.15" - hasha "^3.0.0" - lodash.flattendeep "^4.4.0" - release-zalgo "^1.0.0" - -package-json@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/package-json/-/package-json-4.0.1.tgz#8869a0401253661c4c4ca3da6c2121ed555f5eed" - integrity sha1-iGmgQBJTZhxMTKPabCEh7VVfXu0= - dependencies: - got "^6.7.1" - registry-auth-token "^3.0.1" - registry-url "^3.0.3" - semver "^5.1.0" - -parse-color@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/parse-color/-/parse-color-1.0.0.tgz#7b748b95a83f03f16a94f535e52d7f3d94658619" - integrity sha1-e3SLlag/A/FqlPU15S1/PZRlhhk= - dependencies: - color-convert "~0.5.0" - -parse-glob@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/parse-glob/-/parse-glob-3.0.4.tgz#b2c376cfb11f35513badd173ef0bb6e3a388391c" - integrity sha1-ssN2z7EfNVE7rdFz7wu246OIORw= - dependencies: - glob-base "^0.3.0" - is-dotfile "^1.0.0" - is-extglob "^1.0.0" - is-glob "^2.0.0" - -parse-headers@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/parse-headers/-/parse-headers-2.0.2.tgz#9545e8a4c1ae5eaea7d24992bca890281ed26e34" - integrity sha512-/LypJhzFmyBIDYP9aDVgeyEb5sQfbfY5mnDq4hVhlQ69js87wXfmEI5V3xI6vvXasqebp0oCytYFLxsBVfCzSg== - dependencies: - for-each "^0.3.3" - string.prototype.trim "^1.1.2" - -parse-json@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" - integrity sha1-9ID0BDTvgHQfhGkJn43qGPVaTck= - dependencies: - error-ex "^1.2.0" - -parse-json@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" - integrity sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA= - dependencies: - error-ex "^1.3.1" - json-parse-better-errors "^1.0.1" - -parse-node-version@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/parse-node-version/-/parse-node-version-1.0.1.tgz#e2b5dbede00e7fa9bc363607f53327e8b073189b" - integrity sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA== - -parseurl@~1.3.3: - version "1.3.3" - resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" - integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== - -pascalcase@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" - integrity sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ= - -patch-package@^5.1.1: - version "5.1.2" - resolved "https://registry.yarnpkg.com/patch-package/-/patch-package-5.1.2.tgz#01753261026dbf6fb223cc0bbd2931a29da9dfc2" - integrity sha512-6NA7/hcAG/eZ6TcugOIkmRMA9wg/CVm+gyJpWJwc7Z8E0dkMeQwnVw5oDvhG+bEHBhsQLn+rF7PAx7p2QWnfNA== - dependencies: - chalk "^1.1.3" - cross-spawn "^5.1.0" - fs-extra "^4.0.1" - minimist "^1.2.0" - rimraf "^2.6.1" - slash "^1.0.0" - tmp "^0.0.31" - update-notifier "^2.2.0" - -path-dirname@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" - integrity sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA= - -path-exists@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" - integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= - -path-exists@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" - integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== - -path-is-absolute@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" - integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= - -path-is-inside@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" - integrity sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM= - -path-key@^2.0.0, path-key@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" - integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= - -path-parse@^1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" - integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw== - -path-to-regexp@^1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-1.7.0.tgz#59fde0f435badacba103a84e9d3bc64e96b9937d" - integrity sha1-Wf3g9DW62suhA6hOnTvGTpa5k30= - dependencies: - isarray "0.0.1" - -path-type@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/path-type/-/path-type-2.0.0.tgz#f012ccb8415b7096fc2daa1054c3d72389594c73" - integrity sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM= - dependencies: - pify "^2.0.0" - -path-type@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/path-type/-/path-type-3.0.0.tgz#cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f" - integrity sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg== - dependencies: - pify "^3.0.0" - -performance-now@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" - integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= - -pify@^2.0.0, pify@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" - integrity sha1-7RQaasBDqEnqWISY59yosVMw6Qw= - -pify@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" - integrity sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY= - -pify@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" - integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== - -pinkie-promise@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" - integrity sha1-ITXW36ejWMBprJsXh3YogihFD/o= - dependencies: - pinkie "^2.0.0" - -pinkie@^2.0.0: - version "2.0.4" - resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" - integrity sha1-clVrgM+g1IqXToDnckjoDtT3+HA= - -pirates@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.1.tgz#643a92caf894566f91b2b986d2c66950a8e2fb87" - integrity sha512-WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA== - dependencies: - node-modules-regexp "^1.0.0" - -pkg-dir@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-3.0.0.tgz#2749020f239ed990881b1f71210d51eb6523bea3" - integrity sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw== - dependencies: - find-up "^3.0.0" - -plist@2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/plist/-/plist-2.0.1.tgz#0a32ca9481b1c364e92e18dc55c876de9d01da8b" - integrity sha1-CjLKlIGxw2TpLhjcVch23p0B2os= - dependencies: - base64-js "1.1.2" - xmlbuilder "8.2.2" - xmldom "0.1.x" - -plist@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/plist/-/plist-3.0.1.tgz#a9b931d17c304e8912ef0ba3bdd6182baf2e1f8c" - integrity sha512-GpgvHHocGRyQm74b6FWEZZVRroHKE1I0/BTjAmySaohK+cUn+hZpbqXkc3KWgW3gQYkqcQej35FohcT0FRlkRQ== - dependencies: - base64-js "^1.2.3" - xmlbuilder "^9.0.7" - xmldom "0.1.x" - -plugin-error@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/plugin-error/-/plugin-error-0.1.2.tgz#3b9bb3335ccf00f425e07437e19276967da47ace" - integrity sha1-O5uzM1zPAPQl4HQ34ZJ2ln2kes4= - dependencies: - ansi-cyan "^0.1.1" - ansi-red "^0.1.1" - arr-diff "^1.0.1" - arr-union "^2.0.1" - extend-shallow "^1.1.2" - -pngjs@^3.3.0: - version "3.4.0" - resolved "https://registry.yarnpkg.com/pngjs/-/pngjs-3.4.0.tgz#99ca7d725965fb655814eaf65f38f12bbdbf555f" - integrity sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w== - -posix-character-classes@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" - integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs= - -prepend-http@^1.0.1: - version "1.0.4" - resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" - integrity sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw= - -preserve@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b" - integrity sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks= - -pretty-bytes@^5.1.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-5.3.0.tgz#f2849e27db79fb4d6cfe24764fc4134f165989f2" - integrity sha512-hjGrh+P926p4R4WbaB6OckyRtO0F0/lQBiT+0gnxjV+5kjPBrfVBFCsCLbMqVQeydvIoouYTCmmEURiH3R1Bdg== - -pretty-format@^23.4.1: - version "23.6.0" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-23.6.0.tgz#5eaac8eeb6b33b987b7fe6097ea6a8a146ab5760" - integrity sha512-zf9NV1NSlDLDjycnwm6hpFATCGl/K1lt0R/GdkAK2O5LN/rwJoB+Mh93gGJjut4YbmecbfgLWVGSTCr0Ewvvbw== - dependencies: - ansi-regex "^3.0.0" - ansi-styles "^3.2.0" - -pretty-format@^4.2.1: - version "4.3.1" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-4.3.1.tgz#530be5c42b3c05b36414a7a2a4337aa80acd0e8d" - integrity sha1-UwvlxCs8BbNkFKeipDN6qArNDo0= - -private@^0.1.6: - version "0.1.8" - resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff" - integrity sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg== - -process-nextick-args@^2.0.0, process-nextick-args@~2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" - integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== - -process@^0.11.10: - version "0.11.10" - resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" - integrity sha1-czIwDoQBYb2j5podHZGn1LwW8YI= - -process@~0.5.1: - version "0.5.2" - resolved "https://registry.yarnpkg.com/process/-/process-0.5.2.tgz#1638d8a8e34c2f440a91db95ab9aeb677fc185cf" - integrity sha1-FjjYqONML0QKkduVq5rrZ3/Bhc8= - -promise@^7.1.1: - version "7.3.1" - resolved "https://registry.yarnpkg.com/promise/-/promise-7.3.1.tgz#064b72602b18f90f29192b8b1bc418ffd1ebd3bf" - integrity sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg== - dependencies: - asap "~2.0.3" - -prop-types@^15.5.8, prop-types@^15.6.1, prop-types@^15.6.2, prop-types@^15.7.2: - version "15.7.2" - resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.7.2.tgz#52c41e75b8c87e72b9d9360e0206b99dcbffa6c5" - integrity sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ== - dependencies: - loose-envify "^1.4.0" - object-assign "^4.1.1" - react-is "^16.8.1" - -pseudomap@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" - integrity sha1-8FKijacOYYkX7wqKw0wa5aaChrM= - -psl@^1.1.24: - version "1.3.1" - resolved "https://registry.yarnpkg.com/psl/-/psl-1.3.1.tgz#d5aa3873a35ec450bc7db9012ad5a7246f6fc8bd" - integrity sha512-2KLd5fKOdAfShtY2d/8XDWVRnmp3zp40Qt6ge2zBPFARLXOGUf2fHD5eg+TV/5oxBtQKVhjUaKFsAaE4HnwfSA== - -pump@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" - integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== - dependencies: - end-of-stream "^1.1.0" - once "^1.3.1" - -punycode@^1.4.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" - integrity sha1-wNWmOycYgArY4esPpSachN1BhF4= - -punycode@^2.1.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" - integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== - -qrcode@^1.4.4: - version "1.4.4" - resolved "https://registry.yarnpkg.com/qrcode/-/qrcode-1.4.4.tgz#f0c43568a7e7510a55efc3b88d9602f71963ea83" - integrity sha512-oLzEC5+NKFou9P0bMj5+v6Z40evexeE29Z9cummZXZ9QXyMr3lphkURzxjXgPJC5azpxcshoDWV1xE46z+/c3Q== - dependencies: - buffer "^5.4.3" - buffer-alloc "^1.2.0" - buffer-from "^1.1.1" - dijkstrajs "^1.0.1" - isarray "^2.0.1" - pngjs "^3.3.0" - yargs "^13.2.4" - -qs@~6.5.2: - version "6.5.2" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" - integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA== - -query-string@^5.0.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/query-string/-/query-string-5.1.1.tgz#a78c012b71c17e05f2e3fa2319dd330682efb3cb" - integrity sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw== - dependencies: - decode-uri-component "^0.2.0" - object-assign "^4.1.0" - strict-uri-encode "^1.0.0" - -query-string@^6.4.2: - version "6.8.3" - resolved "https://registry.yarnpkg.com/query-string/-/query-string-6.8.3.tgz#fd9fb7ffb068b79062b43383685611ee47777d4b" - integrity sha512-llcxWccnyaWlODe7A9hRjkvdCKamEKTh+wH8ITdTc3OhchaqUZteiSCX/2ablWHVrkVIe04dntnaZJ7BdyW0lQ== - dependencies: - decode-uri-component "^0.2.0" - split-on-first "^1.0.0" - strict-uri-encode "^2.0.0" - -random-path@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/random-path/-/random-path-0.1.1.tgz#f8f4d36f75a134ca15fd39c7d7505fbf163b634c" - integrity sha1-+PTTb3WhNMoV/TnH11BfvxY7Y0w= - dependencies: - base32-encode "^0.1.0" - murmur-32 "^0.1.0" - -randomatic@^3.0.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-3.1.1.tgz#b776efc59375984e36c537b2f51a1f0aff0da1ed" - integrity sha512-TuDE5KxZ0J461RVjrJZCJc+J+zCkTb1MbH9AQUq68sMhOMcy9jLcb3BrZKgp9q9Ncltdg4QVqWrH02W2EFFVYw== - dependencies: - is-number "^4.0.0" - kind-of "^6.0.0" - math-random "^1.0.1" - -randombytes@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" - integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== - dependencies: - safe-buffer "^5.1.0" - -range-parser@~1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" - integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== - -rc@^1.0.1, rc@^1.1.6, rc@^1.2.7: - version "1.2.8" - resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" - integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== - dependencies: - deep-extend "^0.6.0" - ini "~1.3.0" - minimist "^1.2.0" - strip-json-comments "~2.0.1" - -react-clone-referenced-element@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/react-clone-referenced-element/-/react-clone-referenced-element-1.1.0.tgz#9cdda7f2aeb54fea791f3ab8c6ab96c7a77d0158" - integrity sha512-FKOsfKbBkPxYE8576EM6uAfHC4rnMpLyH6/TJUL4WcHUEB3EUn8AxPjnnV/IiwSSzsClvHYK+sDELKN/EJ0WYg== - -react-deep-force-update@^1.0.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/react-deep-force-update/-/react-deep-force-update-1.1.2.tgz#3d2ae45c2c9040cbb1772be52f8ea1ade6ca2ee1" - integrity sha512-WUSQJ4P/wWcusaH+zZmbECOk7H5N2pOIl0vzheeornkIMhu+qrNdGFm0bDZLCb0hSF0jf/kH1SgkNGfBdTc4wA== - -react-devtools-core@^3.4.2: - version "3.6.3" - resolved "https://registry.yarnpkg.com/react-devtools-core/-/react-devtools-core-3.6.3.tgz#977d95b684c6ad28205f0c62e1e12c5f16675814" - integrity sha512-+P+eFy/yo8Z/UH9J0DqHZuUM5+RI2wl249TNvMx3J2jpUomLQa4Zxl56GEotGfw3PIP1eI+hVf1s53FlUONStQ== - dependencies: - shell-quote "^1.6.1" - ws "^3.3.1" - -react-dom@^16.12.0: - version "16.12.0" - resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.12.0.tgz#0da4b714b8d13c2038c9396b54a92baea633fe11" - integrity sha512-LMxFfAGrcS3kETtQaCkTKjMiifahaMySFDn71fZUNpPHZQEzmk/GiAeIT8JSOrHB23fnuCOMruL2a8NYlw+8Gw== - dependencies: - loose-envify "^1.1.0" - object-assign "^4.1.1" - prop-types "^15.6.2" - scheduler "^0.18.0" - -react-is@^16.7.0, react-is@^16.8.1, react-is@^16.8.6: - version "16.9.0" - resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.9.0.tgz#21ca9561399aad0ff1a7701c01683e8ca981edcb" - integrity sha512-tJBzzzIgnnRfEm046qRcURvwQnZVXmuCbscxUO5RWrGTXpon2d4c8mI0D8WE6ydVIm29JiLB6+RslkIvym9Rjw== - -react-lifecycles-compat@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz#4f1a273afdfc8f3488a8c516bfda78f872352362" - integrity sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA== - -react-native-background-timer@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/react-native-background-timer/-/react-native-background-timer-2.1.1.tgz#9a2489681ab2f8033c213c73272e9d4c47572cd5" - integrity sha512-cuXIIv+dcG8a8qkTD8pMzeqOEZCO+UGKglZWIe1osve+yJslmCowYQff+bI9xa7NOt2w+Vtd4L3d9JonlSqODg== - -react-native-camera@^3.9.0: - version "3.9.0" - resolved "https://registry.yarnpkg.com/react-native-camera/-/react-native-camera-3.9.0.tgz#334d9d7be5476d673af4df954929958ecc36ed55" - integrity sha512-qUhog1yd7FQ9xRTxN1SP+T5f4uLuVY5eXx6mMlBCNsqvYSoKCWFHH1Kpil9fx7d2iOl/o09o/7kHNcSl9RkrkQ== - dependencies: - prop-types "^15.6.2" - -"react-native-config@git+https://github.com/status-im/react-native-config.git#v0.11.2-status": - version "0.11.2" - resolved "git+https://github.com/status-im/react-native-config.git#e705dac8ab459614906c060dcf699e5fe5c05d9d" - -react-native-dialogs@^0.0.20: - version "0.0.20" - resolved "https://registry.yarnpkg.com/react-native-dialogs/-/react-native-dialogs-0.0.20.tgz#f3fb48eadba9d83fb9d4e6d7eca573494a8cefaa" - integrity sha512-HeoU9d7wWUUAtxjcIJLaeIs/eYS2ZHTNh3kboeCKngLvfvgptd/7vZXwXdQ+xeOEek+cm95kDfMJQd2xnb+4wA== - -react-native-fetch-polyfill@^1.1.2: - version "1.1.3" - resolved "https://registry.yarnpkg.com/react-native-fetch-polyfill/-/react-native-fetch-polyfill-1.1.3.tgz#a02d9069a2f7108ca0b70b8469085c67cc02949c" - integrity sha512-zr5yXQftuGq+ABGa3n4ZE+vkL1lBsMSePkRINm3/6vlpbwnLXYoijwazTO/W8GjsV4LAgGmzuieZxKO/NxW19A== - -"react-native-fs@git+https://github.com/status-im/react-native-fs.git#v2.9.7-status": - version "2.9.7" - resolved "git+https://github.com/status-im/react-native-fs.git#e60e5cd6062e8c33379dd50f09b76f4f5024d5c0" - dependencies: - base-64 "^0.1.0" - utf8 "^2.1.1" - -react-native-gesture-handler@^1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/react-native-gesture-handler/-/react-native-gesture-handler-1.5.0.tgz#df7dc5285c152e0656db70f55200fa632c4f45af" - integrity sha512-YUOXHsGLajK1cFReQ4Xh0H9GUTxDW9cUZEVu1q+dVqur2urSKi63KklAFB2l8Neob9nl1E/w0c5hGcBP9FMCIA== - dependencies: - hammerjs "^2.0.8" - hoist-non-react-statics "^2.3.1" - invariant "^2.2.4" - prop-types "^15.7.2" - -react-native-image-crop-picker@^0.26.1: - version "0.26.1" - resolved "https://registry.yarnpkg.com/react-native-image-crop-picker/-/react-native-image-crop-picker-0.26.1.tgz#3499ff5d4a09c9a9e927eb4f6ff936015ff594f1" - integrity sha512-5JdOjQS2V5L/vfb8+jPTUYx4VZPLvhZTyCUjiG0BZCbh+N1L24Kj2C+8EOuWS7xXXHrz5Bpe/eq5lQO1Efc+Yw== - -react-native-image-resizer@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/react-native-image-resizer/-/react-native-image-resizer-1.1.0.tgz#90646bb6dbf0ccc81e53cba69130479e9198d88b" - integrity sha512-OgDOV/0J5ERy6qqu9PTSEiJmNkDrsJluqGM20Tj3JX1836VPO3oeIzQvd8pVdvBiuDq+Z6ZKrsy5SdxP8/O+Ig== - -"react-native-keychain@git+https://github.com/status-im/react-native-keychain.git#v.3.0.0-4-status": - version "3.0.0-rc.3" - resolved "git+https://github.com/status-im/react-native-keychain.git#5895bafa11e734325eaaffd56dda8ca50bfc5275" - -"react-native-languages@git+https://github.com/status-im/react-native-languages.git#v0.1.1-status": - version "3.0.2" - resolved "git+https://github.com/status-im/react-native-languages.git#60338ff3040b8af68d33233aebeb36db4d31aed0" - -"react-native-navigation-twopane@git+https://github.com/status-im/react-native-navigation-twopane.git#v0.0.2-status": - version "0.0.2" - resolved "git+https://github.com/status-im/react-native-navigation-twopane.git#04ed5fddfb46a6a3ee30776987acb4d3b11c27d4" - -react-native-os@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/react-native-os/-/react-native-os-1.1.0.tgz#bfbe1c44d8a5b14a6f3a3a405d8ada6f547a516e" - integrity sha1-v74cRNilsUpvOjpAXYrab1R6UW4= - -react-native-safe-area-view@^0.14.1: - version "0.14.6" - resolved "https://registry.yarnpkg.com/react-native-safe-area-view/-/react-native-safe-area-view-0.14.6.tgz#9a9d37d9f8f3887d60c4076eae7b5d2319539446" - integrity sha512-dbzuvaeHFV1VBpyMaC0gtJ2BqFt6ls/405A0t78YN1sXiTrVr3ki86Ysct8mzifWqLdvWzcWagE5wfMtdxnqoA== - dependencies: - hoist-non-react-statics "^2.3.1" - -"react-native-screens@^1.0.0 || ^1.0.0-alpha": - version "1.0.0-alpha.23" - resolved "https://registry.yarnpkg.com/react-native-screens/-/react-native-screens-1.0.0-alpha.23.tgz#25d7ea4d11bda4fcde2d1da7ae50271c6aa636e0" - integrity sha512-tOxHGQUN83MTmQB4ghoQkibqOdGiX4JQEmeyEv96MKWO/x8T2PJv84ECUos9hD3blPRQwVwSpAid1PPPhrVEaw== - dependencies: - debounce "^1.2.0" - -react-native-splash-screen@^3.0.6: - version "3.2.0" - resolved "https://registry.yarnpkg.com/react-native-splash-screen/-/react-native-splash-screen-3.2.0.tgz#d47ec8557b1ba988ee3ea98d01463081b60fff45" - integrity sha512-Ls9qiNZzW/OLFoI25wfjjAcrf2DZ975hn2vr6U9gyuxi2nooVbzQeFoQS5vQcbCt9QX5NY8ASEEAtlLdIa6KVg== - -react-native-tab-view@^1.2.0, react-native-tab-view@^1.4.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/react-native-tab-view/-/react-native-tab-view-1.4.1.tgz#f113cd87485808f0c991abec937f70fa380478b9" - integrity sha512-Bke8KkDcDhvB/z0AS7MnQKMD2p6Kwfc1rSKlMOvg9CC5CnClQ2QEnhPSbwegKDYhUkBI92iH/BYy7hNSm5kbUQ== - dependencies: - prop-types "^15.6.1" - -"react-native-webview-bridge@git+https://github.com/status-im/react-native-webview-bridge.git#0.33.16-status-rn049-desktop": - version "0.33.16" - resolved "git+https://github.com/status-im/react-native-webview-bridge.git#da824f59731af37b877e325204637d7c52e170f6" - dependencies: - invariant "2.2.0" - keymirror "0.1.1" - -"react-native@git+https://github.com/status-im/react-native-desktop.git#v0.57.8_11": - version "0.57.8" - resolved "git+https://github.com/status-im/react-native-desktop.git#6cf317a82ef82ad1102e292110928929c3b68aec" - dependencies: - "@babel/runtime" "^7.0.0" - absolute-path "^0.0.0" - art "^0.10.0" - base64-js "^1.1.2" - chalk "^1.1.1" - commander "^2.9.0" - compression "^1.7.1" - connect "^3.6.5" - create-react-class "^15.6.3" - debug "^2.2.0" - denodeify "^1.2.1" - envinfo "^5.7.0" - errorhandler "^1.5.0" - escape-string-regexp "^1.0.5" - event-target-shim "^1.0.5" - fbjs "^1.0.0" - fbjs-scripts "^1.0.0" - fs-extra "^1.0.0" - glob "^7.1.1" - graceful-fs "^4.1.3" - inquirer "^3.0.6" - lodash "^4.17.5" - metro "^0.48.1" - metro-babel-register "^0.48.1" - metro-core "^0.48.1" - metro-memory-fs "^0.48.1" - mime "^1.3.4" - minimist "^1.2.0" - mkdirp "^0.5.1" - morgan "^1.9.0" - node-fetch "^2.2.0" - node-notifier "^5.2.1" - npmlog "^2.0.4" - opn "^3.0.2" - optimist "^0.6.1" - plist "^3.0.0" - pretty-format "^4.2.1" - promise "^7.1.1" - prop-types "^15.5.8" - react-clone-referenced-element "^1.0.1" - react-devtools-core "^3.4.2" - react-timer-mixin "^0.13.2" - regenerator-runtime "^0.11.0" - rimraf "^2.5.4" - semver "^5.0.3" - serve-static "^1.13.1" - shell-quote "1.6.1" - stacktrace-parser "^0.1.3" - ws "^1.1.5" - xcode "^1.0.0" - xmldoc "^0.4.0" - yargs "^9.0.0" - yeoman-environment "^2.3.4" - yeoman-generator "^3.2.0" - -react-navigation-drawer@~1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/react-navigation-drawer/-/react-navigation-drawer-1.2.1.tgz#7bd5efeee7d2f611d3ebb0933e0c8e8eb7cafe52" - integrity sha512-T2kaBjY2c4/3I6noWFnaf/c18ntNH5DsST38i+pdc2NPxn5Yi5lkK+ZZTeKuHSFD4a7G0jWY9OGf1iRkHWLMAQ== - dependencies: - react-native-tab-view "^1.2.0" - -react-navigation-stack@~1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/react-navigation-stack/-/react-navigation-stack-1.4.0.tgz#69cdb029ea4ee5877d7e933b3117dc90bc841eb2" - integrity sha512-zEe9wCA0Ot8agarYb//0nSWYW1GM+1R0tY/nydUV0EizeJ27At0EklYVWvYEuYU6C48va6cu8OPL7QD/CcJACw== - -react-navigation-tabs@~1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/react-navigation-tabs/-/react-navigation-tabs-1.1.4.tgz#00a312250df3c519c60b7815a523ace5ee11163a" - integrity sha512-py2hLCRxPwXOzmY1W9XcY1rWXxdK6RGW/aXh56G9gIf8cpHNDhy/bJV4e46/JrVcse3ybFaN0liT09/DM/NdwQ== - dependencies: - hoist-non-react-statics "^2.5.0" - prop-types "^15.6.1" - react-lifecycles-compat "^3.0.4" - react-native-tab-view "^1.4.1" - -react-navigation@^3.11.0: - version "3.11.1" - resolved "https://registry.yarnpkg.com/react-navigation/-/react-navigation-3.11.1.tgz#ba696ad6b512088a97a20cc7e6a250c53dbddd26" - integrity sha512-n64HxLG5s5ucVFo1Gs+D9ujChhHDd98lpQ1p27wL7gq8V1PaRJMvsBEIsguhtc2rTIL/TWDynOesXQDG+Eg6FQ== - dependencies: - "@react-navigation/core" "~3.4.1" - "@react-navigation/native" "~3.5.0" - react-navigation-drawer "~1.2.1" - react-navigation-stack "~1.4.0" - react-navigation-tabs "~1.1.4" - -react-proxy@^1.1.7: - version "1.1.8" - resolved "https://registry.yarnpkg.com/react-proxy/-/react-proxy-1.1.8.tgz#9dbfd9d927528c3aa9f444e4558c37830ab8c26a" - integrity sha1-nb/Z2SdSjDqp9ETkVYw3gwq4wmo= - dependencies: - lodash "^4.6.1" - react-deep-force-update "^1.0.0" - -react-refresh@^0.4.0: - version "0.4.2" - resolved "https://registry.yarnpkg.com/react-refresh/-/react-refresh-0.4.2.tgz#54a277a6caaac2803d88f1d6f13c1dcfbd81e334" - integrity sha512-kv5QlFFSZWo7OlJFNYbxRtY66JImuP2LcrFgyJfQaf85gSP+byzG21UbDQEYjU7f//ny8rwiEkO6py2Y+fEgAQ== - -react-timer-mixin@^0.13.2: - version "0.13.4" - resolved "https://registry.yarnpkg.com/react-timer-mixin/-/react-timer-mixin-0.13.4.tgz#75a00c3c94c13abe29b43d63b4c65a88fc8264d3" - integrity sha512-4+ow23tp/Tv7hBM5Az5/Be/eKKF7DIvJ09voz5LyHGQaqqz9WV8YMs31eFvcYQs7d451LSg7kDJV70XYN/Ug/Q== - -react-transform-hmr@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/react-transform-hmr/-/react-transform-hmr-1.0.4.tgz#e1a40bd0aaefc72e8dfd7a7cda09af85066397bb" - integrity sha1-4aQL0Krvxy6N/Xp82gmvhQZjl7s= - dependencies: - global "^4.3.0" - react-proxy "^1.1.7" - -react@^16.12.0: - version "16.12.0" - resolved "https://registry.yarnpkg.com/react/-/react-16.12.0.tgz#0c0a9c6a142429e3614834d5a778e18aa78a0b83" - integrity sha512-fglqy3k5E+81pA8s+7K0/T3DBCF0ZDOher1elBFzF7O6arXJgzyu/FW+COxFvAWXJoJN9KIZbT2LXlukwphYTA== - dependencies: - loose-envify "^1.1.0" - object-assign "^4.1.1" - prop-types "^15.6.2" - -read-chunk@^3.0.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/read-chunk/-/read-chunk-3.2.0.tgz#2984afe78ca9bfbbdb74b19387bf9e86289c16ca" - integrity sha512-CEjy9LCzhmD7nUpJ1oVOE6s/hBkejlcJEgLQHVnQznOSilOPb+kpKktlLfFDK3/WP43+F80xkUTM2VOkYoSYvQ== - dependencies: - pify "^4.0.1" - with-open-file "^0.1.6" - -read-pkg-up@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-2.0.0.tgz#6b72a8048984e0c41e79510fd5e9fa99b3b549be" - integrity sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4= - dependencies: - find-up "^2.0.0" - read-pkg "^2.0.0" - -read-pkg-up@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-4.0.0.tgz#1b221c6088ba7799601c808f91161c66e58f8978" - integrity sha512-6etQSH7nJGsK0RbG/2TeDzZFa8shjQ1um+SwQQ5cwKy0dhSXdOncEhb1CPpvQG4h7FyOV6EB6YlV0yJvZQNAkA== - dependencies: - find-up "^3.0.0" - read-pkg "^3.0.0" - -read-pkg@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-2.0.0.tgz#8ef1c0623c6a6db0dc6713c4bfac46332b2368f8" - integrity sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg= - dependencies: - load-json-file "^2.0.0" - normalize-package-data "^2.3.2" - path-type "^2.0.0" - -read-pkg@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-3.0.0.tgz#9cbc686978fee65d16c00e2b19c237fcf6e38389" - integrity sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k= - dependencies: - load-json-file "^4.0.0" - normalize-package-data "^2.3.2" - path-type "^3.0.0" - -"readable-stream@2 || 3": - version "3.4.0" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.4.0.tgz#a51c26754658e0a3c21dbf59163bd45ba6f447fc" - integrity sha512-jItXPLmrSR8jmTRmRWJXCnGJsfy85mB3Wd/uINMXA65yrnFo0cPClFIUWzo2najVNSl+mx7/4W8ttlLWJe99pQ== - dependencies: - inherits "^2.0.3" - string_decoder "^1.1.1" - util-deprecate "^1.0.1" - -readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.6, readable-stream@^2.2.2, readable-stream@^2.3.5, readable-stream@~2.3.6: - version "2.3.6" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf" - integrity sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw== - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.3" - isarray "~1.0.0" - process-nextick-args "~2.0.0" - safe-buffer "~5.1.1" - string_decoder "~1.1.1" - util-deprecate "~1.0.1" - -rechoir@^0.6.2: - version "0.6.2" - resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384" - integrity sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q= - dependencies: - resolve "^1.1.6" - -regenerate-unicode-properties@^8.1.0: - version "8.1.0" - resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-8.1.0.tgz#ef51e0f0ea4ad424b77bf7cb41f3e015c70a3f0e" - integrity sha512-LGZzkgtLY79GeXLm8Dp0BVLdQlWICzBnJz/ipWUgo59qBaZ+BHtq51P2q1uVZlppMuUAT37SDk39qUbjTWB7bA== - dependencies: - regenerate "^1.4.0" - -regenerate@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.0.tgz#4a856ec4b56e4077c557589cae85e7a4c8869a11" - integrity sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg== - -regenerator-runtime@^0.11.0: - version "0.11.1" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" - integrity sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg== - -regenerator-runtime@^0.13.2: - version "0.13.3" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.3.tgz#7cf6a77d8f5c6f60eb73c5fc1955b2ceb01e6bf5" - integrity sha512-naKIZz2GQ8JWh///G7L3X6LaQUAMp2lvb1rvwwsURe/VXwD6VMfr+/1NuNw3ag8v2kY1aQ/go5SNn79O9JU7yw== - -regenerator-transform@^0.12.3: - version "0.12.4" - resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.12.4.tgz#aa9b6c59f4b97be080e972506c560b3bccbfcff0" - integrity sha512-p2I0fY+TbSLD2/VFTFb/ypEHxs3e3AjU0DzttdPqk2bSmDhfSh5E54b86Yc6XhUa5KykK1tgbvZ4Nr82oCJWkQ== - dependencies: - private "^0.1.6" - -regenerator-transform@^0.14.0: - version "0.14.1" - resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.14.1.tgz#3b2fce4e1ab7732c08f665dfdb314749c7ddd2fb" - integrity sha512-flVuee02C3FKRISbxhXl9mGzdbWUVHubl1SMaknjxkFB1/iqpJhArQUvRxOOPEc/9tAiX0BaQ28FJH10E4isSQ== - dependencies: - private "^0.1.6" - -regex-cache@^0.4.2: - version "0.4.4" - resolved "https://registry.yarnpkg.com/regex-cache/-/regex-cache-0.4.4.tgz#75bdc58a2a1496cec48a12835bc54c8d562336dd" - integrity sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ== - dependencies: - is-equal-shallow "^0.1.3" - -regex-not@^1.0.0, regex-not@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c" - integrity sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A== - dependencies: - extend-shallow "^3.0.2" - safe-regex "^1.1.0" - -regexpu-core@^4.1.3, regexpu-core@^4.5.4: - version "4.5.5" - resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.5.5.tgz#aaffe61c2af58269b3e516b61a73790376326411" - integrity sha512-FpI67+ky9J+cDizQUJlIlNZFKual/lUkFr1AG6zOCpwZ9cLrg8UUVakyUQJD7fCDIe9Z2nwTQJNPyonatNmDFQ== - dependencies: - regenerate "^1.4.0" - regenerate-unicode-properties "^8.1.0" - regjsgen "^0.5.0" - regjsparser "^0.6.0" - unicode-match-property-ecmascript "^1.0.4" - unicode-match-property-value-ecmascript "^1.1.0" - -regexpu-core@^4.6.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.6.0.tgz#2037c18b327cfce8a6fea2a4ec441f2432afb8b6" - integrity sha512-YlVaefl8P5BnFYOITTNzDvan1ulLOiXJzCNZxduTIosN17b87h3bvG9yHMoHaRuo88H4mQ06Aodj5VtYGGGiTg== - dependencies: - regenerate "^1.4.0" - regenerate-unicode-properties "^8.1.0" - regjsgen "^0.5.0" - regjsparser "^0.6.0" - unicode-match-property-ecmascript "^1.0.4" - unicode-match-property-value-ecmascript "^1.1.0" - -registry-auth-token@^3.0.1: - version "3.4.0" - resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-3.4.0.tgz#d7446815433f5d5ed6431cd5dca21048f66b397e" - integrity sha512-4LM6Fw8eBQdwMYcES4yTnn2TqIasbXuwDx3um+QRs7S55aMKCBKBxvPXl2RiUjHwuJLTyYfxSpmfSAjQpcuP+A== - dependencies: - rc "^1.1.6" - safe-buffer "^5.0.1" - -registry-url@^3.0.3: - version "3.1.0" - resolved "https://registry.yarnpkg.com/registry-url/-/registry-url-3.1.0.tgz#3d4ef870f73dde1d77f0cf9a381432444e174942" - integrity sha1-PU74cPc93h138M+aOBQyRE4XSUI= - dependencies: - rc "^1.0.1" - -regjsgen@^0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.5.0.tgz#a7634dc08f89209c2049adda3525711fb97265dd" - integrity sha512-RnIrLhrXCX5ow/E5/Mh2O4e/oa1/jW0eaBKTSy3LaCj+M3Bqvm97GWDp2yUtzIs4LEn65zR2yiYGFqb2ApnzDA== - -regjsparser@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.6.0.tgz#f1e6ae8b7da2bae96c99399b868cd6c933a2ba9c" - integrity sha512-RQ7YyokLiQBomUJuUG8iGVvkgOLxwyZM8k6d3q5SAXpg4r5TZJZigKFvC6PpD+qQ98bCDC5YelPeA3EucDoNeQ== - dependencies: - jsesc "~0.5.0" - -release-zalgo@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/release-zalgo/-/release-zalgo-1.0.0.tgz#09700b7e5074329739330e535c5a90fb67851730" - integrity sha1-CXALflB0Mpc5Mw5TXFqQ+2eFFzA= - dependencies: - es6-error "^4.0.1" - -remove-trailing-separator@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" - integrity sha1-wkvOKig62tW8P1jg1IJJuSN52O8= - -repeat-element@^1.1.2: - version "1.1.3" - resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.3.tgz#782e0d825c0c5a3bb39731f84efee6b742e6b1ce" - integrity sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g== - -repeat-string@^1.5.2, repeat-string@^1.5.4, repeat-string@^1.6.1: - version "1.6.1" - resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" - integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc= - -replace-ext@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/replace-ext/-/replace-ext-0.0.1.tgz#29bbd92078a739f0bcce2b4ee41e837953522924" - integrity sha1-KbvZIHinOfC8zitO5B6DeVNSKSQ= - -replace-ext@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/replace-ext/-/replace-ext-1.0.0.tgz#de63128373fcbf7c3ccfa4de5a480c45a67958eb" - integrity sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs= - -request@^2.86.0: - version "2.88.0" - resolved "https://registry.yarnpkg.com/request/-/request-2.88.0.tgz#9c2fca4f7d35b592efe57c7f0a55e81052124fef" - integrity sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg== - dependencies: - aws-sign2 "~0.7.0" - aws4 "^1.8.0" - caseless "~0.12.0" - combined-stream "~1.0.6" - extend "~3.0.2" - forever-agent "~0.6.1" - form-data "~2.3.2" - har-validator "~5.1.0" - http-signature "~1.2.0" - is-typedarray "~1.0.0" - isstream "~0.1.2" - json-stringify-safe "~5.0.1" - mime-types "~2.1.19" - oauth-sign "~0.9.0" - performance-now "^2.1.0" - qs "~6.5.2" - safe-buffer "^5.1.2" - tough-cookie "~2.4.3" - tunnel-agent "^0.6.0" - uuid "^3.3.2" - -require-directory@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" - integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= - -require-main-filename@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1" - integrity sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE= - -require-main-filename@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" - integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== - -resolve-from@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748" - integrity sha1-six699nWiBvItuZTM17rywoYh0g= - -resolve-from@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" - integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== - -resolve-url@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" - integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= - -resolve@^1.1.6, resolve@^1.10.0, resolve@^1.3.2, resolve@^1.5.0, resolve@^1.8.1: - version "1.12.0" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.12.0.tgz#3fc644a35c84a48554609ff26ec52b66fa577df6" - integrity sha512-B/dOmuoAik5bKcD6s6nXDCjzUKnaDvdkRyAk6rsmsKLipWj4797iothd7jmmUhWTfinVMU+wc56rYKsit2Qy4w== - dependencies: - path-parse "^1.0.6" - -restore-cursor@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf" - integrity sha1-n37ih/gv0ybU/RYpI9YhKe7g368= - dependencies: - onetime "^2.0.0" - signal-exit "^3.0.2" - -ret@~0.1.10: - version "0.1.15" - resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" - integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg== - -rimraf@^2.2.8, rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.2, rimraf@^2.6.3: - version "2.7.1" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" - integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== - dependencies: - glob "^7.1.3" - -rimraf@~2.2.6: - version "2.2.8" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.2.8.tgz#e439be2aaee327321952730f99a8929e4fc50582" - integrity sha1-5Dm+Kq7jJzIZUnMPmaiSnk/FBYI= - -"rn-snoopy@git+https://github.com/status-im/rn-snoopy.git#v2.0.2-status": - version "2.0.2" - resolved "git+https://github.com/status-im/rn-snoopy.git#f23dc13469c6c2a694649f658cdc1d1eaf8def64" - dependencies: - eslint-plugin-jsx-a11y "5.1.1" - lodash "^3.10.0" - rxjs "5.5.2" - -rsvp@^3.3.3: - version "3.6.2" - resolved "https://registry.yarnpkg.com/rsvp/-/rsvp-3.6.2.tgz#2e96491599a96cde1b515d5674a8f7a91452926a" - integrity sha512-OfWGQTb9vnwRjwtA2QwpG2ICclHC3pgXZO5xt8H2EfgDquO0qVdSb5T88L4qJVAEugbS56pAuV4XZM58UX8ulw== - -run-async@^2.0.0, run-async@^2.2.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.3.0.tgz#0371ab4ae0bdd720d4166d7dfda64ff7a445a6c0" - integrity sha1-A3GrSuC91yDUFm19/aZP96RFpsA= - dependencies: - is-promise "^2.1.0" - -rx-lite-aggregates@^4.0.8: - version "4.0.8" - resolved "https://registry.yarnpkg.com/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz#753b87a89a11c95467c4ac1626c4efc4e05c67be" - integrity sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74= - dependencies: - rx-lite "*" - -rx-lite@*, rx-lite@^4.0.8: - version "4.0.8" - resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-4.0.8.tgz#0b1e11af8bc44836f04a6407e92da42467b79444" - integrity sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ= - -rxjs@5.5.2: - version "5.5.2" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-5.5.2.tgz#28d403f0071121967f18ad665563255d54236ac3" - integrity sha512-oRYoIKWBU3Ic37fLA5VJu31VqQO4bWubRntcHSJ+cwaDQBwdnZ9x4zmhJfm/nFQ2E82/I4loSioHnACamrKGgA== - dependencies: - symbol-observable "^1.0.1" - -rxjs@^6.4.0: - version "6.5.3" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.5.3.tgz#510e26317f4db91a7eb1de77d9dd9ba0a4899a3a" - integrity sha512-wuYsAYYFdWTAnAaPoKGNhfpWwKZbJW+HgAJ+mImp+Epl7BG8oNWBCTyRM8gba9k4lk8BgWdoYm21Mo/RYhhbgA== - dependencies: - tslib "^1.9.0" - -safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: - version "5.1.2" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" - integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== - -safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.2, safe-buffer@~5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.0.tgz#b74daec49b1148f88c64b68d49b1e815c1f2f519" - integrity sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg== - -safe-regex@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" - integrity sha1-QKNmnzsHfR6UPURinhV91IAjvy4= - dependencies: - ret "~0.1.10" - -"safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: - version "2.1.2" - resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" - integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== - -sane@^2.0.0: - version "2.5.2" - resolved "https://registry.yarnpkg.com/sane/-/sane-2.5.2.tgz#b4dc1861c21b427e929507a3e751e2a2cb8ab3fa" - integrity sha1-tNwYYcIbQn6SlQej51HiosuKs/o= - dependencies: - anymatch "^2.0.0" - capture-exit "^1.2.0" - exec-sh "^0.2.0" - fb-watchman "^2.0.0" - micromatch "^3.1.4" - minimist "^1.1.1" - walker "~1.0.5" - watch "~0.18.0" - optionalDependencies: - fsevents "^1.2.3" - -sax@^1.2.4: - version "1.2.4" - resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" - integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== - -sax@~1.1.1: - version "1.1.6" - resolved "https://registry.yarnpkg.com/sax/-/sax-1.1.6.tgz#5d616be8a5e607d54e114afae55b7eaf2fcc3240" - integrity sha1-XWFr6KXmB9VOEUr65Vt+ry/MMkA= - -scheduler@^0.18.0: - version "0.18.0" - resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.18.0.tgz#5901ad6659bc1d8f3fdaf36eb7a67b0d6746b1c4" - integrity sha512-agTSHR1Nbfi6ulI0kYNK0203joW2Y5W4po4l+v03tOoiJKpTBbxpNhWDvqc/4IcOw+KLmSiQLTasZ4cab2/UWQ== - dependencies: - loose-envify "^1.1.0" - object-assign "^4.1.1" - -scoped-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/scoped-regex/-/scoped-regex-1.0.0.tgz#a346bb1acd4207ae70bd7c0c7ca9e566b6baddb8" - integrity sha1-o0a7Gs1CB65wvXwMfKnlZra63bg= - -semver-diff@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/semver-diff/-/semver-diff-2.1.0.tgz#4bbb8437c8d37e4b0cf1a68fd726ec6d645d6d36" - integrity sha1-S7uEN8jTfksM8aaP1ybsbWRdbTY= - dependencies: - semver "^5.0.3" - -"semver@2 || 3 || 4 || 5", semver@^5.0.3, semver@^5.1.0, semver@^5.3.0, semver@^5.4.1, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0: - version "5.7.1" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" - integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== - -semver@^6.0.0, semver@^6.3.0: - version "6.3.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" - integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== - -send@0.17.1: - version "0.17.1" - resolved "https://registry.yarnpkg.com/send/-/send-0.17.1.tgz#c1d8b059f7900f7466dd4938bdc44e11ddb376c8" - integrity sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg== - dependencies: - debug "2.6.9" - depd "~1.1.2" - destroy "~1.0.4" - encodeurl "~1.0.2" - escape-html "~1.0.3" - etag "~1.8.1" - fresh "0.5.2" - http-errors "~1.7.2" - mime "1.6.0" - ms "2.1.1" - on-finished "~2.3.0" - range-parser "~1.2.1" - statuses "~1.5.0" - -serialize-error@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/serialize-error/-/serialize-error-2.1.0.tgz#50b679d5635cdf84667bdc8e59af4e5b81d5f60a" - integrity sha1-ULZ51WNc34Rme9yOWa9OW4HV9go= - -serve-static@^1.13.1: - version "1.14.1" - resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.14.1.tgz#666e636dc4f010f7ef29970a88a674320898b2f9" - integrity sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg== - dependencies: - encodeurl "~1.0.2" - escape-html "~1.0.3" - parseurl "~1.3.3" - send "0.17.1" - -set-blocking@^2.0.0, set-blocking@~2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" - integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= - -set-value@^2.0.0, set-value@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.1.tgz#a18d40530e6f07de4228c7defe4227af8cad005b" - integrity sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw== - dependencies: - extend-shallow "^2.0.1" - is-extendable "^0.1.1" - is-plain-object "^2.0.3" - split-string "^3.0.1" - -setimmediate@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" - integrity sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU= - -setprototypeof@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.1.tgz#7e95acb24aa92f5885e0abef5ba131330d4ae683" - integrity sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw== - -shebang-command@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" - integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo= - dependencies: - shebang-regex "^1.0.0" - -shebang-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" - integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM= - -shell-quote@1.6.1: - version "1.6.1" - resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.6.1.tgz#f4781949cce402697127430ea3b3c5476f481767" - integrity sha1-9HgZSczkAmlxJ0MOo7PFR29IF2c= - dependencies: - array-filter "~0.0.0" - array-map "~0.0.0" - array-reduce "~0.0.0" - jsonify "~0.0.0" - -shell-quote@^1.6.1: - version "1.7.2" - resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.7.2.tgz#67a7d02c76c9da24f99d20808fcaded0e0e04be2" - integrity sha512-mRz/m/JVscCrkMyPqHc/bczi3OQHkLTqXHEFu0zDhK/qfv3UcOA4SVmRCLmos4bhjr9ekVQubj/R7waKapmiQg== - -shelljs@^0.8.0: - version "0.8.3" - resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.8.3.tgz#a7f3319520ebf09ee81275b2368adb286659b097" - integrity sha512-fc0BKlAWiLpwZljmOvAOTE/gXawtCoNrP5oaY7KIaQbbyHeQVg01pSEuEGvGh3HEdBU4baCD7wQBwADmM/7f7A== - dependencies: - glob "^7.0.0" - interpret "^1.0.0" - rechoir "^0.6.2" - -shellwords@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/shellwords/-/shellwords-0.1.1.tgz#d6b9181c1a48d397324c84871efbcfc73fc0654b" - integrity sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww== - -signal-exit@^3.0.0, signal-exit@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" - integrity sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0= - -simple-concat@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/simple-concat/-/simple-concat-1.0.0.tgz#7344cbb8b6e26fb27d66b2fc86f9f6d5997521c6" - integrity sha1-c0TLuLbib7J9ZrL8hvn21Zl1IcY= - -simple-get@^2.7.0: - version "2.8.1" - resolved "https://registry.yarnpkg.com/simple-get/-/simple-get-2.8.1.tgz#0e22e91d4575d87620620bc91308d57a77f44b5d" - integrity sha512-lSSHRSw3mQNUGPAYRqo7xy9dhKmxFXIjLjp4KHpf99GEH2VH7C3AM+Qfx6du6jhfUi6Vm7XnbEVEf7Wb6N8jRw== - dependencies: - decompress-response "^3.3.0" - once "^1.3.1" - simple-concat "^1.0.0" - -simple-plist@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/simple-plist/-/simple-plist-0.2.1.tgz#71766db352326928cf3a807242ba762322636723" - integrity sha1-cXZts1IyaSjPOoByQrp2IyJjZyM= - dependencies: - bplist-creator "0.0.7" - bplist-parser "0.1.1" - plist "2.0.1" - -slash@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" - integrity sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU= - -slide@^1.1.5: - version "1.1.6" - resolved "https://registry.yarnpkg.com/slide/-/slide-1.1.6.tgz#56eb027d65b4d2dce6cb2e2d32c4d4afc9e1d707" - integrity sha1-VusCfWW00tzmyy4tMsTUr8nh1wc= - -snapdragon-node@^2.0.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" - integrity sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw== - dependencies: - define-property "^1.0.0" - isobject "^3.0.0" - snapdragon-util "^3.0.1" - -snapdragon-util@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2" - integrity sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ== - dependencies: - kind-of "^3.2.0" - -snapdragon@^0.8.1: - version "0.8.2" - resolved "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d" - integrity sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg== - dependencies: - base "^0.11.1" - debug "^2.2.0" - define-property "^0.2.5" - extend-shallow "^2.0.1" - map-cache "^0.2.2" - source-map "^0.5.6" - source-map-resolve "^0.5.0" - use "^3.1.0" - -source-map-resolve@^0.5.0: - version "0.5.2" - resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.2.tgz#72e2cc34095543e43b2c62b2c4c10d4a9054f259" - integrity sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA== - dependencies: - atob "^2.1.1" - decode-uri-component "^0.2.0" - resolve-url "^0.2.1" - source-map-url "^0.4.0" - urix "^0.1.0" - -source-map-support@^0.5.16: - version "0.5.16" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.16.tgz#0ae069e7fe3ba7538c64c98515e35339eac5a042" - integrity sha512-efyLRJDr68D9hBBNIPWFjhpFzURh+KJykQwvMyW5UiZzYwoF6l4YMMDIJJEyFWxWCqfyxLzz6tSfUFR+kXXsVQ== - dependencies: - buffer-from "^1.0.0" - source-map "^0.6.0" - -source-map-support@^0.5.9: - version "0.5.13" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.13.tgz#31b24a9c2e73c2de85066c0feb7d44767ed52932" - integrity sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w== - dependencies: - buffer-from "^1.0.0" - source-map "^0.6.0" - -source-map-url@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3" - integrity sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM= - -source-map@^0.5.0, source-map@^0.5.6: - version "0.5.7" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" - integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= - -source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" - integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== - -spawn-wrap@^1.4.2: - version "1.4.3" - resolved "https://registry.yarnpkg.com/spawn-wrap/-/spawn-wrap-1.4.3.tgz#81b7670e170cca247d80bf5faf0cfb713bdcf848" - integrity sha512-IgB8md0QW/+tWqcavuFgKYR/qIRvJkRLPJDFaoXtLLUaVcCDK0+HeFTkmQHj3eprcYhc+gOl0aEA1w7qZlYezw== - dependencies: - foreground-child "^1.5.6" - mkdirp "^0.5.0" - os-homedir "^1.0.1" - rimraf "^2.6.2" - signal-exit "^3.0.2" - which "^1.3.0" - -spdx-correct@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.0.tgz#fb83e504445268f154b074e218c87c003cd31df4" - integrity sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q== - dependencies: - spdx-expression-parse "^3.0.0" - spdx-license-ids "^3.0.0" - -spdx-exceptions@^2.1.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz#2ea450aee74f2a89bfb94519c07fcd6f41322977" - integrity sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA== - -spdx-expression-parse@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz#99e119b7a5da00e05491c9fa338b7904823b41d0" - integrity sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg== - dependencies: - spdx-exceptions "^2.1.0" - spdx-license-ids "^3.0.0" - -spdx-license-ids@^3.0.0: - version "3.0.5" - resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz#3694b5804567a458d3c8045842a6358632f62654" - integrity sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q== - -split-on-first@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/split-on-first/-/split-on-first-1.1.0.tgz#f610afeee3b12bce1d0c30425e76398b78249a5f" - integrity sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw== - -split-string@^3.0.1, split-string@^3.0.2: - version "3.1.0" - resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" - integrity sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw== - dependencies: - extend-shallow "^3.0.0" - -sprintf-js@~1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" - integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= - -sshpk@^1.7.0: - version "1.16.1" - resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.16.1.tgz#fb661c0bef29b39db40769ee39fa70093d6f6877" - integrity sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg== - dependencies: - asn1 "~0.2.3" - assert-plus "^1.0.0" - bcrypt-pbkdf "^1.0.0" - dashdash "^1.12.0" - ecc-jsbn "~0.1.1" - getpass "^0.1.1" - jsbn "~0.1.0" - safer-buffer "^2.0.2" - tweetnacl "~0.14.0" - -stacktrace-parser@^0.1.3: - version "0.1.7" - resolved "https://registry.yarnpkg.com/stacktrace-parser/-/stacktrace-parser-0.1.7.tgz#9ed005638a5e79dcf256611da1dfb4871e6fd14d" - integrity sha512-Evm+NuZ2ZTwGazsbsZC+EV1EGsvyxgIvtNwbyFfeXaq/8L78M5Kdh0qpmQaTkUpbOAKbbPP7c7qZa7u8XFsrUA== - dependencies: - type-fest "^0.7.1" - -static-extend@^0.1.1: - version "0.1.2" - resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" - integrity sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY= - dependencies: - define-property "^0.2.5" - object-copy "^0.1.0" - -"status-conan@git+https://github.com/status-im/status-conan.git#v1.0.0": - version "1.0.0" - resolved "git+https://github.com/status-im/status-conan.git#47a1b8264cd321ed3122762e9a07a6df1dea5d8e" - -"statuses@>= 1.5.0 < 2", statuses@~1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" - integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= - -stream-buffers@~2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/stream-buffers/-/stream-buffers-2.2.0.tgz#91d5f5130d1cef96dcfa7f726945188741d09ee4" - integrity sha1-kdX1Ew0c75bc+n9yaUUYh0HQnuQ= - -strict-uri-encode@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713" - integrity sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM= - -strict-uri-encode@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz#b9c7330c7042862f6b142dc274bbcc5866ce3546" - integrity sha1-ucczDHBChi9rFC3CdLvMWGbONUY= - -string-template@~0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/string-template/-/string-template-0.2.1.tgz#42932e598a352d01fc22ec3367d9d84eec6c9add" - integrity sha1-QpMuWYo1LQH8IuwzZ9nYTuxsmt0= - -string-width@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" - integrity sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M= - dependencies: - code-point-at "^1.0.0" - is-fullwidth-code-point "^1.0.0" - strip-ansi "^3.0.0" - -"string-width@^1.0.2 || 2", string-width@^2.0.0, string-width@^2.1.0, string-width@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" - integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== - dependencies: - is-fullwidth-code-point "^2.0.0" - strip-ansi "^4.0.0" - -string-width@^3.0.0, string-width@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" - integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w== - dependencies: - emoji-regex "^7.0.1" - is-fullwidth-code-point "^2.0.0" - strip-ansi "^5.1.0" - -string.prototype.trim@^1.1.2: - version "1.2.0" - resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.0.tgz#75a729b10cfc1be439543dae442129459ce61e3d" - integrity sha512-9EIjYD/WdlvLpn987+ctkLf0FfvBefOCuiEr2henD8X+7jfwPnyvTdmW8OJhj5p+M0/96mBdynLWkxUr+rHlpg== - dependencies: - define-properties "^1.1.3" - es-abstract "^1.13.0" - function-bind "^1.1.1" - -string.prototype.trimleft@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/string.prototype.trimleft/-/string.prototype.trimleft-2.0.0.tgz#68b6aa8e162c6a80e76e3a8a0c2e747186e271ff" - integrity sha1-aLaqjhYsaoDnbjqKDC50cYbicf8= - dependencies: - define-properties "^1.1.2" - function-bind "^1.0.2" - -string.prototype.trimright@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/string.prototype.trimright/-/string.prototype.trimright-2.0.0.tgz#ab4a56d802a01fbe7293e11e84f24dc8164661dd" - integrity sha1-q0pW2AKgH75yk+EehPJNyBZGYd0= - dependencies: - define-properties "^1.1.2" - function-bind "^1.0.2" - -string_decoder@^1.1.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" - integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== - dependencies: - safe-buffer "~5.2.0" - -string_decoder@~1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" - integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== - dependencies: - safe-buffer "~5.1.0" - -strip-ansi@^3.0.0, strip-ansi@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" - integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8= - dependencies: - ansi-regex "^2.0.0" - -strip-ansi@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" - integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8= - dependencies: - ansi-regex "^3.0.0" - -strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" - integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== - dependencies: - ansi-regex "^4.1.0" - -strip-bom-stream@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/strip-bom-stream/-/strip-bom-stream-2.0.0.tgz#f87db5ef2613f6968aa545abfe1ec728b6a829ca" - integrity sha1-+H217yYT9paKpUWr/h7HKLaoKco= - dependencies: - first-chunk-stream "^2.0.0" - strip-bom "^2.0.0" - -strip-bom@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e" - integrity sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4= - dependencies: - is-utf8 "^0.2.0" - -strip-bom@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" - integrity sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM= - -strip-eof@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" - integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8= - -strip-hex-prefix@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/strip-hex-prefix/-/strip-hex-prefix-1.0.0.tgz#0c5f155fef1151373377de9dbb588da05500e36f" - integrity sha1-DF8VX+8RUTczd96du1iNoFUA428= - dependencies: - is-hex-prefixed "1.0.0" - -strip-json-comments@~2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" - integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= - -supports-color@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" - integrity sha1-U10EXOa2Nj+kARcIRimZXp3zJMc= - -supports-color@^5.3.0: - version "5.5.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" - integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== - dependencies: - has-flag "^3.0.0" - -supports-color@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-6.1.0.tgz#0764abc69c63d5ac842dd4867e8d025e880df8f3" - integrity sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ== - dependencies: - has-flag "^3.0.0" - -symbol-observable@^1.0.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.2.0.tgz#c22688aed4eab3cdc2dfeacbb561660560a00804" - integrity sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ== - -tar@^4: - version "4.4.10" - resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.10.tgz#946b2810b9a5e0b26140cf78bea6b0b0d689eba1" - integrity sha512-g2SVs5QIxvo6OLp0GudTqEf05maawKUxXru104iaayWA09551tFCTI8f1Asb4lPfkBr91k07iL4c11XO3/b0tA== - dependencies: - chownr "^1.1.1" - fs-minipass "^1.2.5" - minipass "^2.3.5" - minizlib "^1.2.1" - mkdirp "^0.5.0" - safe-buffer "^5.1.2" - yallist "^3.0.3" - -temp@0.8.3: - version "0.8.3" - resolved "https://registry.yarnpkg.com/temp/-/temp-0.8.3.tgz#e0c6bc4d26b903124410e4fed81103014dfc1f59" - integrity sha1-4Ma8TSa5AxJEEOT+2BEDAU38H1k= - dependencies: - os-tmpdir "^1.0.0" - rimraf "~2.2.6" - -term-size@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/term-size/-/term-size-1.2.0.tgz#458b83887f288fc56d6fffbfad262e26638efa69" - integrity sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk= - dependencies: - execa "^0.7.0" - -test-exclude@^5.2.3: - version "5.2.3" - resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-5.2.3.tgz#c3d3e1e311eb7ee405e092dac10aefd09091eac0" - integrity sha512-M+oxtseCFO3EDtAaGH7iiej3CBkzXqFMbzqYAACdzKui4eZA+pq3tZEwChvOdNfa7xxy8BfbmgJSIr43cC/+2g== - dependencies: - glob "^7.1.3" - minimatch "^3.0.4" - read-pkg-up "^4.0.0" - require-main-filename "^2.0.0" - -text-table@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" - integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= - -textextensions@^2.4.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/textextensions/-/textextensions-2.5.0.tgz#e21d3831dafa37513dd80666dff541414e314293" - integrity sha512-1IkVr355eHcomgK7fgj1Xsokturx6L5S2JRT5WcRdA6v5shk9sxWuO/w/VbpQexwkXJMQIa/j1dBi3oo7+HhcA== - -throat@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/throat/-/throat-4.1.0.tgz#89037cbc92c56ab18926e6ba4cbb200e15672a6a" - integrity sha1-iQN8vJLFarGJJua6TLsgDhVnKmo= - -through2@^2.0.0: - version "2.0.5" - resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" - integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ== - dependencies: - readable-stream "~2.3.6" - xtend "~4.0.1" - -through2@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/through2/-/through2-3.0.1.tgz#39276e713c3302edf9e388dd9c812dd3b825bd5a" - integrity sha512-M96dvTalPT3YbYLaKaCuwu+j06D/8Jfib0o/PxbVt6Amhv3dUAtW6rTV1jPgJSBG83I/e04Y6xkVdVhSRhi0ww== - dependencies: - readable-stream "2 || 3" - -through@^2.3.6: - version "2.3.8" - resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" - integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= - -time-stamp@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/time-stamp/-/time-stamp-1.1.0.tgz#764a5a11af50561921b133f3b44e618687e0f5c3" - integrity sha1-dkpaEa9QVhkhsTPztE5hhofg9cM= - -timed-out@^4.0.0, timed-out@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-4.0.1.tgz#f32eacac5a175bea25d7fab565ab3ed8741ef56f" - integrity sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8= - -tmp@^0.0.31: - version "0.0.31" - resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.31.tgz#8f38ab9438e17315e5dbd8b3657e8bfb277ae4a7" - integrity sha1-jzirlDjhcxXl29izZX6L+yd65Kc= - dependencies: - os-tmpdir "~1.0.1" - -tmp@^0.0.33: - version "0.0.33" - resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" - integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw== - dependencies: - os-tmpdir "~1.0.2" - -tmpl@1.0.x: - version "1.0.4" - resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.4.tgz#23640dd7b42d00433911140820e5cf440e521dd1" - integrity sha1-I2QN17QtAEM5ERQIIOXPRA5SHdE= - -tn1150@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/tn1150/-/tn1150-0.1.0.tgz#673503d24d56b87de8b8c77fee3fc0853d59a18d" - integrity sha1-ZzUD0k1WuH3ouMd/7j/AhT1ZoY0= - dependencies: - unorm "^1.4.1" - -to-fast-properties@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" - integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= - -to-object-path@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af" - integrity sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68= - dependencies: - kind-of "^3.0.2" - -to-regex-range@^2.1.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38" - integrity sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg= - dependencies: - is-number "^3.0.0" - repeat-string "^1.6.1" - -to-regex@^3.0.1, to-regex@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce" - integrity sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw== - dependencies: - define-property "^2.0.2" - extend-shallow "^3.0.2" - regex-not "^1.0.2" - safe-regex "^1.1.0" - -toidentifier@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553" - integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw== - -tough-cookie@~2.4.3: - version "2.4.3" - resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.4.3.tgz#53f36da3f47783b0925afa06ff9f3b165280f781" - integrity sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ== - dependencies: - psl "^1.1.24" - punycode "^1.4.1" - -trim-right@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" - integrity sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM= - -tslib@^1.9.0: - version "1.10.0" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.10.0.tgz#c3c19f95973fb0a62973fb09d90d961ee43e5c8a" - integrity sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ== - -tunnel-agent@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" - integrity sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0= - dependencies: - safe-buffer "^5.0.1" - -tweetnacl@^0.14.3, tweetnacl@~0.14.0: - version "0.14.5" - resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" - integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q= - -type-fest@^0.7.1: - version "0.7.1" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.7.1.tgz#8dda65feaf03ed78f0a3f9678f1869147f7c5c48" - integrity sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg== - -typedarray@^0.0.6: - version "0.0.6" - resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" - integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= - -ua-parser-js@^0.7.18: - version "0.7.20" - resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.20.tgz#7527178b82f6a62a0f243d1f94fd30e3e3c21098" - integrity sha512-8OaIKfzL5cpx8eCMAhhvTlft8GYF8b2eQr6JkCyVdrgjcytyOmPCXrqXFcUnhonRpLlh5yxEZVohm6mzaowUOw== - -uglify-es@^3.1.9: - version "3.3.9" - resolved "https://registry.yarnpkg.com/uglify-es/-/uglify-es-3.3.9.tgz#0c1c4f0700bed8dbc124cdb304d2592ca203e677" - integrity sha512-r+MU0rfv4L/0eeW3xZrd16t4NZfK8Ld4SWVglYBb7ez5uXFWHuVRs6xCTrf1yirs9a4j4Y27nn7SRfO6v67XsQ== - dependencies: - commander "~2.13.0" - source-map "~0.6.1" - -uglify-js@^3.1.4: - version "3.6.0" - resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.6.0.tgz#704681345c53a8b2079fb6cec294b05ead242ff5" - integrity sha512-W+jrUHJr3DXKhrsS7NUVxn3zqMOFn0hL/Ei6v0anCIMoKC93TjcflTagwIHLW7SfMFfiQuktQyFVCFHGUE0+yg== - dependencies: - commander "~2.20.0" - source-map "~0.6.1" - -ultron@1.0.x: - version "1.0.2" - resolved "https://registry.yarnpkg.com/ultron/-/ultron-1.0.2.tgz#ace116ab557cd197386a4e88f4685378c8b2e4fa" - integrity sha1-rOEWq1V80Zc4ak6I9GhTeMiy5Po= - -ultron@~1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/ultron/-/ultron-1.1.1.tgz#9fe1536a10a664a65266a1e3ccf85fd36302bc9c" - integrity sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og== - -underscore@1.9.1: - version "1.9.1" - resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.9.1.tgz#06dce34a0e68a7babc29b365b8e74b8925203961" - integrity sha512-5/4etnCkd9c8gwgowi5/om/mYO5ajCaOgdzj/oW+0eQV9WxKBDZw5+ycmKmeaTXjInS/W0BzpGLo2xR2aBwZdg== - -unicode-canonical-property-names-ecmascript@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz#2619800c4c825800efdd8343af7dd9933cbe2818" - integrity sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ== - -unicode-match-property-ecmascript@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz#8ed2a32569961bce9227d09cd3ffbb8fed5f020c" - integrity sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg== - dependencies: - unicode-canonical-property-names-ecmascript "^1.0.4" - unicode-property-aliases-ecmascript "^1.0.4" - -unicode-match-property-value-ecmascript@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.1.0.tgz#5b4b426e08d13a80365e0d657ac7a6c1ec46a277" - integrity sha512-hDTHvaBk3RmFzvSl0UVrUmC3PuW9wKVnpoUDYH0JDkSIovzw+J5viQmeYHxVSBptubnr7PbH2e0fnpDRQnQl5g== - -unicode-property-aliases-ecmascript@^1.0.4: - version "1.0.5" - resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.0.5.tgz#a9cc6cc7ce63a0a3023fc99e341b94431d405a57" - integrity sha512-L5RAqCfXqAwR3RriF8pM0lU0w4Ryf/GgzONwi6KnL1taJQa7x1TCxdJnILX59WIGOwR57IVxn7Nej0fz1Ny6fw== - -union-value@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.1.tgz#0b6fe7b835aecda61c6ea4d4f02c14221e109847" - integrity sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg== - dependencies: - arr-union "^3.1.0" - get-value "^2.0.6" - is-extendable "^0.1.1" - set-value "^2.0.1" - -unique-string@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-1.0.0.tgz#9e1057cca851abb93398f8b33ae187b99caec11a" - integrity sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo= - dependencies: - crypto-random-string "^1.0.0" - -universalify@^0.1.0: - version "0.1.2" - resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" - integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== - -unorm@^1.4.1: - version "1.6.0" - resolved "https://registry.yarnpkg.com/unorm/-/unorm-1.6.0.tgz#029b289661fba714f1a9af439eb51d9b16c205af" - integrity sha512-b2/KCUlYZUeA7JFUuRJZPUtr4gZvBh7tavtv4fvk4+KV9pfGiR6CQAQAWl49ZpR3ts2dk4FYkP7EIgDJoiOLDA== - -unpipe@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" - integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw= - -unset-value@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" - integrity sha1-g3aHP30jNRef+x5vw6jtDfyKtVk= - dependencies: - has-value "^0.3.1" - isobject "^3.0.0" - -untildify@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/untildify/-/untildify-3.0.3.tgz#1e7b42b140bcfd922b22e70ca1265bfe3634c7c9" - integrity sha512-iSk/J8efr8uPT/Z4eSUywnqyrQU7DSdMfdqK4iWEaUVVmcP5JcnpRqmVMwcwcnmI1ATFNgC5V90u09tBynNFKA== - -unzip-response@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/unzip-response/-/unzip-response-2.0.1.tgz#d2f0f737d16b0615e72a6935ed04214572d56f97" - integrity sha1-0vD3N9FrBhXnKmk17QQhRXLVb5c= - -update-notifier@^2.2.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-2.5.0.tgz#d0744593e13f161e406acb1d9408b72cad08aff6" - integrity sha512-gwMdhgJHGuj/+wHJJs9e6PcCszpxR1b236igrOkUofGhqJuG+amlIKwApH1IW1WWl7ovZxsX49lMBWLxSdm5Dw== - dependencies: - boxen "^1.2.1" - chalk "^2.0.1" - configstore "^3.0.0" - import-lazy "^2.1.0" - is-ci "^1.0.10" - is-installed-globally "^0.1.0" - is-npm "^1.0.0" - latest-version "^3.0.0" - semver-diff "^2.0.0" - xdg-basedir "^3.0.0" - -uri-js@^4.2.2: - version "4.2.2" - resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.2.2.tgz#94c540e1ff772956e2299507c010aea6c8838eb0" - integrity sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ== - dependencies: - punycode "^2.1.0" - -urix@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" - integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI= - -url-parse-lax@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-1.0.0.tgz#7af8f303645e9bd79a272e7a14ac68bc0609da73" - integrity sha1-evjzA2Rem9eaJy56FKxovAYJ2nM= - dependencies: - prepend-http "^1.0.1" - -url-set-query@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/url-set-query/-/url-set-query-1.0.0.tgz#016e8cfd7c20ee05cafe7795e892bd0702faa339" - integrity sha1-AW6M/Xwg7gXK/neV6JK9BwL6ozk= - -url-to-options@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/url-to-options/-/url-to-options-1.0.1.tgz#1505a03a289a48cbd7a434efbaeec5055f5633a9" - integrity sha1-FQWgOiiaSMvXpDTvuu7FBV9WM6k= - -use@^3.1.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" - integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ== - -utf8@3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/utf8/-/utf8-3.0.0.tgz#f052eed1364d696e769ef058b183df88c87f69d1" - integrity sha512-E8VjFIQ/TyQgp+TZfS6l8yp/xWppSAHzidGiRrqe4bK4XP9pTRyKFgGJpO3SN7zdX4DeomTrwaseCHovfpFcqQ== - -utf8@^2.1.1: - version "2.1.2" - resolved "https://registry.yarnpkg.com/utf8/-/utf8-2.1.2.tgz#1fa0d9270e9be850d9b05027f63519bf46457d96" - integrity sha1-H6DZJw6b6FDZsFAn9jUZv0ZFfZY= - -util-deprecate@^1.0.1, util-deprecate@~1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" - integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= - -util@0.10.3: - version "0.10.3" - resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9" - integrity sha1-evsa/lCAUkZInj23/g7TeTNqwPk= - dependencies: - inherits "2.0.1" - -utils-merge@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" - integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= - -uuid@^3.3.2: - version "3.3.3" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.3.3.tgz#4568f0216e78760ee1dbf3a4d2cf53e224112866" - integrity sha512-pW0No1RGHgzlpHJO1nsVrHKpOEIxkGg1xB+v0ZmdNH5OAeAwzAVrCnI2/6Mtx+Uys6iaylxa+D3g4j63IKKjSQ== - -validate-npm-package-license@^3.0.1: - version "3.0.4" - resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" - integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== - dependencies: - spdx-correct "^3.0.0" - spdx-expression-parse "^3.0.0" - -vary@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" - integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= - -verror@1.10.0: - version "1.10.0" - resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" - integrity sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA= - dependencies: - assert-plus "^1.0.0" - core-util-is "1.0.2" - extsprintf "^1.2.0" - -vinyl-file@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/vinyl-file/-/vinyl-file-2.0.0.tgz#a7ebf5ffbefda1b7d18d140fcb07b223efb6751a" - integrity sha1-p+v1/779obfRjRQPyweyI++2dRo= - dependencies: - graceful-fs "^4.1.2" - pify "^2.3.0" - pinkie-promise "^2.0.0" - strip-bom "^2.0.0" - strip-bom-stream "^2.0.0" - vinyl "^1.1.0" - -vinyl@^1.1.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-1.2.0.tgz#5c88036cf565e5df05558bfc911f8656df218884" - integrity sha1-XIgDbPVl5d8FVYv8kR+GVt8hiIQ= - dependencies: - clone "^1.0.0" - clone-stats "^0.0.1" - replace-ext "0.0.1" - -vinyl@^2.0.1: - version "2.2.0" - resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-2.2.0.tgz#d85b07da96e458d25b2ffe19fece9f2caa13ed86" - integrity sha512-MBH+yP0kC/GQ5GwBqrTPTzEfiiLjta7hTtvQtbxBgTeSXsmKQRQecjibMbxIXzVT3Y9KJK+drOz1/k+vsu8Nkg== - dependencies: - clone "^2.1.1" - clone-buffer "^1.0.0" - clone-stats "^1.0.0" - cloneable-readable "^1.0.0" - remove-trailing-separator "^1.0.1" - replace-ext "^1.0.0" - -walker@~1.0.5: - version "1.0.7" - resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.7.tgz#2f7f9b8fd10d677262b18a884e28d19618e028fb" - integrity sha1-L3+bj9ENZ3JisYqITijRlhjgKPs= - dependencies: - makeerror "1.0.x" - -watch@~0.18.0: - version "0.18.0" - resolved "https://registry.yarnpkg.com/watch/-/watch-0.18.0.tgz#28095476c6df7c90c963138990c0a5423eb4b986" - integrity sha1-KAlUdsbffJDJYxOJkMClQj60uYY= - dependencies: - exec-sh "^0.2.0" - minimist "^1.2.0" - -web3-utils@^1.2.4: - version "1.2.4" - resolved "https://registry.yarnpkg.com/web3-utils/-/web3-utils-1.2.4.tgz#96832a39a66b05bf8862a5b0bdad2799d709d951" - integrity sha512-+S86Ip+jqfIPQWvw2N/xBQq5JNqCO0dyvukGdJm8fEWHZbckT4WxSpHbx+9KLEWY4H4x9pUwnoRkK87pYyHfgQ== - dependencies: - bn.js "4.11.8" - eth-lib "0.2.7" - ethereum-bloom-filters "^1.0.6" - ethjs-unit "0.1.6" - number-to-bn "1.7.0" - randombytes "^2.1.0" - underscore "1.9.1" - utf8 "3.0.0" - -whatwg-fetch@>=0.10.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-3.0.0.tgz#fc804e458cc460009b1a2b966bc8817d2578aefb" - integrity sha512-9GSJUgz1D4MfyKU7KRqwOjXCXTqWdFNvEr7eUBYchQiVc744mqK/MzXPNR2WsPkmkOa4ywfg8C2n8h+13Bey1Q== - -which-module@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" - integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= - -which@^1.2.9, which@^1.3.0: - version "1.3.1" - resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" - integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== - dependencies: - isexe "^2.0.0" - -wide-align@^1.1.0: - version "1.1.3" - resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457" - integrity sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA== - dependencies: - string-width "^1.0.2 || 2" - -widest-line@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-2.0.1.tgz#7438764730ec7ef4381ce4df82fb98a53142a3fc" - integrity sha512-Ba5m9/Fa4Xt9eb2ELXt77JxVDV8w7qQrH0zS/TWSJdLyAwQjWoOzpzj5lwVftDz6n/EOu3tNACS84v509qwnJA== - dependencies: - string-width "^2.1.1" - -with-open-file@^0.1.6: - version "0.1.6" - resolved "https://registry.yarnpkg.com/with-open-file/-/with-open-file-0.1.6.tgz#0bc178ecab75f6baac8ae11c85e07445d690ea50" - integrity sha512-SQS05JekbtwQSgCYlBsZn/+m2gpn4zWsqpCYIrCHva0+ojXcnmUEPsBN6Ipoz3vmY/81k5PvYEWSxER2g4BTqA== - dependencies: - p-finally "^1.0.0" - p-try "^2.1.0" - pify "^4.0.1" - -wordwrap@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" - integrity sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus= - -wordwrap@~0.0.2: - version "0.0.3" - resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107" - integrity sha1-o9XabNXAvAAI03I0u68b7WMFkQc= - -wrap-ansi@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85" - integrity sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU= - dependencies: - string-width "^1.0.1" - strip-ansi "^3.0.1" - -wrap-ansi@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-5.1.0.tgz#1fd1f67235d5b6d0fee781056001bfb694c03b09" - integrity sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q== - dependencies: - ansi-styles "^3.2.0" - string-width "^3.0.0" - strip-ansi "^5.0.0" - -wrappy@1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" - integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= - -write-file-atomic@^1.2.0: - version "1.3.4" - resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-1.3.4.tgz#f807a4f0b1d9e913ae7a48112e6cc3af1991b45f" - integrity sha1-+Aek8LHZ6ROuekgRLmzDrxmRtF8= - dependencies: - graceful-fs "^4.1.11" - imurmurhash "^0.1.4" - slide "^1.1.5" - -write-file-atomic@^2.0.0, write-file-atomic@^2.4.2: - version "2.4.3" - resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-2.4.3.tgz#1fd2e9ae1df3e75b8d8c367443c692d4ca81f481" - integrity sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ== - dependencies: - graceful-fs "^4.1.11" - imurmurhash "^0.1.4" - signal-exit "^3.0.2" - -ws@^1.1.0, ws@^1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/ws/-/ws-1.1.5.tgz#cbd9e6e75e09fc5d2c90015f21f0c40875e0dd51" - integrity sha512-o3KqipXNUdS7wpQzBHSe180lBGO60SoK0yVo3CYJgb2MkobuWuBX6dhkYP5ORCLd55y+SaflMOV5fqAB53ux4w== - dependencies: - options ">=0.0.5" - ultron "1.0.x" - -ws@^3.3.1: - version "3.3.3" - resolved "https://registry.yarnpkg.com/ws/-/ws-3.3.3.tgz#f1cf84fe2d5e901ebce94efaece785f187a228f2" - integrity sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA== - dependencies: - async-limiter "~1.0.0" - safe-buffer "~5.1.0" - ultron "~1.1.0" - -xcode@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/xcode/-/xcode-1.1.0.tgz#9fcb63f417a9af377bfb743a5c22afce4e1da964" - integrity sha512-hllHFtfsNu5WbVzj8KbGNdI3NgOYmTLZqyF4a9c9J1aGMhAdxmLLsXlpG0Bz8fEtKh6I3pyargRXN0ZlLpcF5w== - dependencies: - simple-plist "^0.2.1" - uuid "^3.3.2" - -xdg-basedir@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-3.0.0.tgz#496b2cc109eca8dbacfe2dc72b603c17c5870ad4" - integrity sha1-SWsswQnsqNus/i3HK2A8F8WHCtQ= - -xhr-request-promise@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/xhr-request-promise/-/xhr-request-promise-0.1.2.tgz#343c44d1ee7726b8648069682d0f840c83b4261d" - integrity sha1-NDxE0e53JrhkgGloLQ+EDIO0Jh0= - dependencies: - xhr-request "^1.0.1" - -xhr-request@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/xhr-request/-/xhr-request-1.1.0.tgz#f4a7c1868b9f198723444d82dcae317643f2e2ed" - integrity sha512-Y7qzEaR3FDtL3fP30k9wO/e+FBnBByZeybKOhASsGP30NIkRAAkKD/sCnLvgEfAIEC1rcmK7YG8f4oEnIrrWzA== - dependencies: - buffer-to-arraybuffer "^0.0.5" - object-assign "^4.1.1" - query-string "^5.0.1" - simple-get "^2.7.0" - timed-out "^4.0.1" - url-set-query "^1.0.0" - xhr "^2.0.4" - -xhr@^2.0.4: - version "2.5.0" - resolved "https://registry.yarnpkg.com/xhr/-/xhr-2.5.0.tgz#bed8d1676d5ca36108667692b74b316c496e49dd" - integrity sha512-4nlO/14t3BNUZRXIXfXe+3N6w3s1KoxcJUUURctd64BLRe67E4gRwp4PjywtDY72fXpZ1y6Ch0VZQRY/gMPzzQ== - dependencies: - global "~4.3.0" - is-function "^1.0.1" - parse-headers "^2.0.0" - xtend "^4.0.0" - -xmlbuilder@8.2.2: - version "8.2.2" - resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-8.2.2.tgz#69248673410b4ba42e1a6136551d2922335aa773" - integrity sha1-aSSGc0ELS6QuGmE2VR0pIjNap3M= - -xmlbuilder@^9.0.7: - version "9.0.7" - resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-9.0.7.tgz#132ee63d2ec5565c557e20f4c22df9aca686b10d" - integrity sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0= - -xmldoc@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/xmldoc/-/xmldoc-0.4.0.tgz#d257224be8393eaacbf837ef227fd8ec25b36888" - integrity sha1-0lciS+g5PqrL+DfvIn/Y7CWzaIg= - dependencies: - sax "~1.1.1" - -xmldom@0.1.x: - version "0.1.27" - resolved "https://registry.yarnpkg.com/xmldom/-/xmldom-0.1.27.tgz#d501f97b3bdb403af8ef9ecc20573187aadac0e9" - integrity sha1-1QH5ezvbQDr4757MIFcxh6rawOk= - -xpipe@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/xpipe/-/xpipe-1.0.5.tgz#8dd8bf45fc3f7f55f0e054b878f43a62614dafdf" - integrity sha1-jdi/Rfw/f1Xw4FS4ePQ6YmFNr98= - -xtend@^4.0.0, xtend@~4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" - integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== - -y18n@^3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41" - integrity sha1-bRX7qITAhnnA136I53WegR4H+kE= - -y18n@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b" - integrity sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w== - -yallist@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" - integrity sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI= - -yallist@^3.0.0, yallist@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.0.3.tgz#b4b049e314be545e3ce802236d6cd22cd91c3de9" - integrity sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A== - -yargs-parser@^13.0.0, yargs-parser@^13.1.1: - version "13.1.1" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.1.tgz#d26058532aa06d365fe091f6a1fc06b2f7e5eca0" - integrity sha512-oVAVsHz6uFrg3XQheFII8ESO2ssAf9luWuAd6Wexsu4F3OtIW0o8IribPXYrD4WC24LWtPrJlGy87y5udK+dxQ== - dependencies: - camelcase "^5.0.0" - decamelize "^1.2.0" - -yargs-parser@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-7.0.0.tgz#8d0ac42f16ea55debd332caf4c4038b3e3f5dfd9" - integrity sha1-jQrELxbqVd69MyyvTEA4s+P139k= - dependencies: - camelcase "^4.1.0" - -yargs@^13.2.2, yargs@^13.2.4: - version "13.3.0" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.3.0.tgz#4c657a55e07e5f2cf947f8a366567c04a0dedc83" - integrity sha512-2eehun/8ALW8TLoIl7MVaRUrg+yCnenu8B4kBlRxj3GJGDKU1Og7sMXPNm1BYyM1DOJmTZ4YeN/Nwxv+8XJsUA== - dependencies: - cliui "^5.0.0" - find-up "^3.0.0" - get-caller-file "^2.0.1" - require-directory "^2.1.1" - require-main-filename "^2.0.0" - set-blocking "^2.0.0" - string-width "^3.0.0" - which-module "^2.0.0" - y18n "^4.0.0" - yargs-parser "^13.1.1" - -yargs@^9.0.0: - version "9.0.1" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-9.0.1.tgz#52acc23feecac34042078ee78c0c007f5085db4c" - integrity sha1-UqzCP+7Kw0BCB47njAwAf1CF20w= - dependencies: - camelcase "^4.1.0" - cliui "^3.2.0" - decamelize "^1.1.1" - get-caller-file "^1.0.1" - os-locale "^2.0.0" - read-pkg-up "^2.0.0" - require-directory "^2.1.1" - require-main-filename "^1.0.1" - set-blocking "^2.0.0" - string-width "^2.0.0" - which-module "^2.0.0" - y18n "^3.2.1" - yargs-parser "^7.0.0" - -yeoman-environment@^2.0.5, yeoman-environment@^2.3.4: - version "2.4.0" - resolved "https://registry.yarnpkg.com/yeoman-environment/-/yeoman-environment-2.4.0.tgz#4829445dc1306b02d9f5f7027cd224bf77a8224d" - integrity sha512-SsvoL0RNAFIX69eFxkUhwKUN2hG1UwUjxrcP+T2ytwdhqC/kHdnFOH2SXdtSN1Ju4aO4xuimmzfRoheYY88RuA== - dependencies: - chalk "^2.4.1" - cross-spawn "^6.0.5" - debug "^3.1.0" - diff "^3.5.0" - escape-string-regexp "^1.0.2" - globby "^8.0.1" - grouped-queue "^0.3.3" - inquirer "^6.0.0" - is-scoped "^1.0.0" - lodash "^4.17.10" - log-symbols "^2.2.0" - mem-fs "^1.1.0" - strip-ansi "^4.0.0" - text-table "^0.2.0" - untildify "^3.0.3" - -yeoman-generator@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/yeoman-generator/-/yeoman-generator-3.2.0.tgz#02077d2d7ff28fedc1ed7dad7f9967fd7c3604cc" - integrity sha512-iR/qb2je3GdXtSfxgvOXxUW0Cp8+C6LaZaNlK2BAICzFNzwHtM10t/QBwz5Ea9nk6xVDQNj4Q889TjCXGuIv8w== - dependencies: - async "^2.6.0" - chalk "^2.3.0" - cli-table "^0.3.1" - cross-spawn "^6.0.5" - dargs "^6.0.0" - dateformat "^3.0.3" - debug "^4.1.0" - detect-conflict "^1.0.0" - error "^7.0.2" - find-up "^3.0.0" - github-username "^4.0.0" - istextorbinary "^2.2.1" - lodash "^4.17.10" - make-dir "^1.1.0" - mem-fs-editor "^5.0.0" - minimist "^1.2.0" - pretty-bytes "^5.1.0" - read-chunk "^3.0.0" - read-pkg-up "^4.0.0" - rimraf "^2.6.2" - run-async "^2.0.0" - shelljs "^0.8.0" - text-table "^0.2.0" - through2 "^3.0.0" - yeoman-environment "^2.0.5" diff --git a/desktop/main.cpp b/desktop/main.cpp deleted file mode 100644 index 15b16ed04a..0000000000 --- a/desktop/main.cpp +++ /dev/null @@ -1,545 +0,0 @@ -/** - * Copyright (C) 2016, Canonical Ltd. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - */ - -// #define BUILD_FOR_BUNDLE - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include "attachedproperties.h" -#include "reactitem.h" -#include "rootview.h" -#include "utilities.h" - -#include "exceptionglobalhandler.h" - -#include "appconfig.h" -Q_DECLARE_LOGGING_CATEGORY(JSSERVER) -Q_DECLARE_LOGGING_CATEGORY(STATUS) -Q_LOGGING_CATEGORY(JSSERVER, "jsserver") -Q_LOGGING_CATEGORY(STATUS, "status") - -static QStringList consoleOutputStrings; -static QMutex consoleOutputMutex; - -#ifdef BUILD_FOR_BUNDLE -bool nodeJsServerStarted = false; -QProcess *g_nodeJsServerProcess = nullptr; -#define NODEJS_SERVER_NAME "ubuntu-server" -#endif - -const int MAIN_WINDOW_WIDTH = 1024; -const int MAIN_WINDOW_HEIGHT = 768; -const QString CRASH_REPORT_EXECUTABLE = QStringLiteral("reportApp"); - -const char *ENABLE_LOG_FILE_ENV_VAR_NAME = "STATUS_LOG_FILE_ENABLED"; -const char *LOG_FILE_PATH_ENV_VAR_NAME = "STATUS_LOG_PATH"; - -// TODO: some way to change while running -class ReactNativeProperties : public QObject { - Q_OBJECT - Q_PROPERTY( - bool liveReload READ liveReload WRITE setLiveReload NOTIFY liveReloadChanged) - Q_PROPERTY( - QUrl codeLocation READ codeLocation WRITE setCodeLocation NOTIFY codeLocationChanged) - Q_PROPERTY( - QString pluginsPath READ pluginsPath WRITE setPluginsPath NOTIFY pluginsPathChanged) - Q_PROPERTY( - QString executor READ executor WRITE setExecutor NOTIFY executorChanged) - Q_PROPERTY( - QVariantMap initialProps READ initialProps WRITE setInitialProps NOTIFY initialPropsChanged) -public: - ReactNativeProperties(QObject *parent = nullptr) : QObject(parent) { - m_codeLocation = m_packagerTemplate.arg(m_packagerHost).arg(m_packagerPort); - } - bool liveReload() const { return m_liveReload; } - void setLiveReload(bool liveReload) { - if (m_liveReload == liveReload) - return; - m_liveReload = liveReload; - Q_EMIT liveReloadChanged(); - } - QUrl codeLocation() const { return m_codeLocation; } - void setCodeLocation(const QUrl &codeLocation) { - if (m_codeLocation == codeLocation) - return; - m_codeLocation = codeLocation; - Q_EMIT codeLocationChanged(); - } - QString pluginsPath() const { return m_pluginsPath; } - void setPluginsPath(const QString &pluginsPath) { - if (m_pluginsPath == pluginsPath) - return; - m_pluginsPath = pluginsPath; - Q_EMIT pluginsPathChanged(); - } - QString executor() const { return m_executor; } - void setExecutor(const QString &executor) { - if (m_executor == executor) - return; - m_executor = executor; - Q_EMIT executorChanged(); - } - QVariantMap initialProps() const { return m_initialProps; } - void setInitialProps(const QVariantMap &initialProps) { - if (m_initialProps == initialProps) - return; - m_initialProps = initialProps; - Q_EMIT initialPropsChanged(); - } - - QString packagerHost() const { return m_packagerHost; } - void setPackagerHost(const QString &packagerHost) { - if (m_packagerHost == packagerHost) - return; - m_packagerHost = packagerHost; - setCodeLocation(m_packagerTemplate.arg(m_packagerHost).arg(m_packagerPort)); - } - QString packagerPort() const { return m_packagerPort; } - void setPackagerPort(const QString &packagerPort) { - if (m_packagerPort == packagerPort) - return; - m_packagerPort = packagerPort; - setCodeLocation(m_packagerTemplate.arg(m_packagerHost).arg(m_packagerPort)); - } - void setLocalSource(const QString &source) { - if (m_localSource == source) - return; - - // overrides packager* - if (source.startsWith("file:")) { - setCodeLocation(source); - } else { - QFileInfo fi(source); - if (!fi.exists()) { - qCWarning(STATUS) << "Attempt to set non-existent local source file"; - return; - } - setCodeLocation(QUrl::fromLocalFile(fi.absoluteFilePath())); - setLiveReload(false); - } - } - -Q_SIGNALS: - void liveReloadChanged(); - void codeLocationChanged(); - void pluginsPathChanged(); - void executorChanged(); - void initialPropsChanged(); - -private: - bool m_liveReload = false; - QString m_packagerHost = "localhost"; - QString m_packagerPort = "8081"; - QString m_localSource; - QString m_packagerTemplate = - "http://%1:%2/index.desktop.bundle?platform=desktop&dev=true"; - QUrl m_codeLocation; - QString m_pluginsPath; -#ifdef BUILD_FOR_BUNDLE - QString m_executor = "RemoteServerConnection"; -#else - QString m_executor = "LocalServerConnection"; -#endif - QVariantMap m_initialProps; -}; - -void saveMessage(QtMsgType type, const QMessageLogContext &context, - const QString &msg); -void writeLogsToFile(); -void writeLogFromJSServer(const QString &msg); -void writeSingleLineLogFromJSServer(const QString &msg); - -#ifdef BUILD_FOR_BUNDLE - -void killZombieJsServer(); -bool runNodeJsServer(); - -#endif - -void loadFontsFromResources() { - QDirIterator it(":", QDirIterator::Subdirectories); - while (it.hasNext()) { - QString resourceFile = it.next(); - if (resourceFile.endsWith(".otf", Qt::CaseInsensitive) || - resourceFile.endsWith(".ttf", Qt::CaseInsensitive)) { - qint32 fontId = QFontDatabase::addApplicationFont(resourceFile); - if (Q_UNLIKELY(fontId == -1)) { - qCDebug(STATUS) << "Unable to install font" << resourceFile; - } - } - } -} - -void exceptionPostHandledCallback() { -#ifdef BUILD_FOR_BUNDLE - if (g_nodeJsServerProcess) { - g_nodeJsServerProcess->kill(); - } -#endif -} - -bool redirectLogIntoFile() { -#ifdef BUILD_FOR_BUNDLE - return true; -#else - return qEnvironmentVariable(ENABLE_LOG_FILE_ENV_VAR_NAME, "") == - QStringLiteral("1"); -#endif -} - -QString getDataStoragePath() { - QString statusDataDir = qgetenv("STATUS_DATA_DIR"); - QString dataStoragePath; - if (!statusDataDir.isEmpty()) { - dataStoragePath = statusDataDir; - } else { - dataStoragePath = QStandardPaths::writableLocation(QStandardPaths::AppLocalDataLocation); - } - QDir dir(dataStoragePath); - if (!dir.exists()) { - dir.mkpath("."); - } - return dataStoragePath; -} - -int main(int argc, char **argv) { - QGuiApplication::setAttribute(Qt::AA_EnableHighDpiScaling); - QApplication app(argc, argv); - - QCoreApplication::setApplicationName("Status"); - - // Init AppConfig - AppConfig::inst().getValue(AppConfig::LOGGING_ENABLED); - - QString appPath = QCoreApplication::applicationDirPath(); - QString dataStoragePath = getDataStoragePath(); -#ifdef BUILD_FOR_BUNDLE - if (qgetenv("STATUS_DATA_DIR").isEmpty()) { - killZombieJsServer(); - } -#else - dataStoragePath = ""; -#endif - - ExceptionGlobalHandler exceptionHandler( - appPath + QDir::separator() + CRASH_REPORT_EXECUTABLE, - exceptionPostHandledCallback, dataStoragePath); - - Q_INIT_RESOURCE(react_resources); - - loadFontsFromResources(); - if (redirectLogIntoFile()) { - qInstallMessageHandler(saveMessage); - } - - //qCDebug(STATUS) << "###STATUS_NO_LOGGING"; - - -#ifdef BUILD_FOR_BUNDLE - if (!runNodeJsServer()) { - if (g_nodeJsServerProcess->state() == QProcess::NotRunning) { - // If we failed to start the Node.js server (happens on Windows if the Node.js server process was previously running), let's do a final attempt - delete g_nodeJsServerProcess; - if (!runNodeJsServer()) { - return 1; - } - } - } - - app.setWindowIcon(QIcon(":/icon.png")); -#endif - - QQuickView view; - ReactNativeProperties *rnp = new ReactNativeProperties(&view); - QProcessEnvironment env = QProcessEnvironment::systemEnvironment(); - QVariantMap initialProps; - QString statusNodePort = env.value("STATUS_NODE_PORT"); - QString statusDataDir = env.value("STATUS_DATA_DIR"); - if (!statusNodePort.isEmpty()) { - initialProps["STATUS_NODE_PORT"] = statusNodePort; - } - if (!statusDataDir.isEmpty()) { - initialProps["STATUS_DATA_DIR"] = statusDataDir; - } - - rnp->setInitialProps(initialProps); - -#ifdef BUILD_FOR_BUNDLE - rnp->setCodeLocation("file:" + QGuiApplication::applicationDirPath() + - "/assets"); -#endif - - utilities::registerReactTypes(); - - QCommandLineParser p; - p.setApplicationDescription("React Native host application"); - p.addHelpOption(); - p.addOptions({ - {{"R", "live-reload"}, "Enable live reload."}, - {{"H", "host"}, "Set packager host address.", rnp->packagerHost()}, - {{"P", "port"}, "Set packager port number.", rnp->packagerPort()}, - {{"L", "local"}, "Set path to the local packaged source", "not set"}, - {{"M", "plugins-path"}, "Set path to node modules", "./plugins"}, - {{"E", "executor"}, "Set Javascript executor", rnp->executor()}, - }); - p.process(app); - rnp->setLiveReload(p.isSet("live-reload")); - if (p.isSet("host")) - rnp->setPackagerHost(p.value("host")); - if (p.isSet("port")) - rnp->setPackagerPort(p.value("port")); - if (p.isSet("local")) - rnp->setLocalSource(p.value("local")); - if (p.isSet("plugins-path")) - rnp->setPluginsPath(p.value("plugins-path")); - if (p.isSet("executor")) - rnp->setExecutor(p.value("executor")); - - view.rootContext()->setContextProperty("ReactNativeProperties", rnp); - view.setSource(QUrl("qrc:///main.qml")); - view.setResizeMode(QQuickView::SizeRootObjectToView); - view.resize(MAIN_WINDOW_WIDTH, MAIN_WINDOW_HEIGHT); - view.show(); - - QTimer flushLogsToFileTimer; - if (redirectLogIntoFile()) { - flushLogsToFileTimer.setInterval(500); - QObject::connect(&flushLogsToFileTimer, &QTimer::timeout, - [=]() { writeLogsToFile(); }); - flushLogsToFileTimer.start(); - } - - return app.exec(); -} - -QString getLogFilePath() { - QString logFilePath; -#ifdef BUILD_FOR_BUNDLE - logFilePath = getDataStoragePath() + QDir::separator() + "Status.log"; -#else - logFilePath = qEnvironmentVariable(LOG_FILE_PATH_ENV_VAR_NAME, ""); - if (logFilePath.isEmpty()) { - logFilePath = getDataStoragePath() + QDir::separator() + "StatusDev.log"; - } -#endif - return logFilePath; -} - -void writeLogsToFile() { - QMutexLocker locker(&consoleOutputMutex); - if(consoleOutputStrings.isEmpty()) - return; - - QFile logFile(getLogFilePath()); - if (logFile.open(QIODevice::WriteOnly | QIODevice::Append)) { - for (QString message : consoleOutputStrings) { - logFile.write(message.toStdString().c_str()); - } - consoleOutputStrings.clear(); - - logFile.flush(); - logFile.close(); - } -} - -#ifdef BUILD_FOR_BUNDLE - -#ifdef Q_OS_WIN - -#include -#include - -bool IsProcessRunning(const wchar_t *processName) { - bool exists = false; - PROCESSENTRY32 entry = { sizeof(PROCESSENTRY32) }; - - HANDLE snapshot = ::CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0); - if (snapshot != NULL) { - if (::Process32First(snapshot, &entry)) { - do { - if (!wcsicmp(entry.szExeFile, processName)) { - exists = true; - break; - } - } while (::Process32Next(snapshot, &entry)); - } - - ::CloseHandle(snapshot); - } - return exists; -} - -#endif - -void killZombieJsServer() { - // Ensure that a zombie Node.js server process is not still running in the background before we spawn a new one - QString cmd; -#ifdef Q_OS_LINUX - cmd = QString("pkill -f %1").arg(NODEJS_SERVER_NAME); -#elif defined(Q_OS_MAC) - cmd = QString("killall -9 %1").arg(NODEJS_SERVER_NAME); -#elif defined(Q_OS_WIN) -#define _CAT(A, B) A##B -#define _W(A) _CAT(L, #A) - WCHAR exeName[_MAX_PATH]; - wsprintf(exeName, L"%s.exe", _W(NODEJS_SERVER_NAME)); - if (IsProcessRunning(exeName)) { - qCDebug(STATUS) << NODEJS_SERVER_NAME << "is running, killing it"; - ::ShellExecuteW(NULL, NULL, L"tskill", _W(NODEJS_SERVER_NAME), NULL, SW_HIDE); - } else { - qCDebug(STATUS) << NODEJS_SERVER_NAME << "is not running"; - } -#endif - - if (!cmd.isEmpty()) { - qCDebug(STATUS) << "Running " << cmd; - QByteArray cmdArray = cmd.toLocal8Bit(); - system(cmdArray.data()); - } -} - -bool runNodeJsServer() { - g_nodeJsServerProcess = new QProcess(); - g_nodeJsServerProcess->setWorkingDirectory(getDataStoragePath()); - g_nodeJsServerProcess->setProgram(QGuiApplication::applicationDirPath() + QDir::separator() + NODEJS_SERVER_NAME); - QString port = qgetenv("REACT_SERVER_PORT"); - if (!port.isEmpty()) { - QStringList arguments = (QStringList() << "--port" << port); - g_nodeJsServerProcess->setArguments(arguments); - } - QObject::connect(g_nodeJsServerProcess, &QProcess::errorOccurred, - [=](QProcess::ProcessError) { - qCWarning(JSSERVER) << "process name: " - << qUtf8Printable(g_nodeJsServerProcess->program()); - qCWarning(JSSERVER) << "process error: " - << qUtf8Printable(g_nodeJsServerProcess->errorString()); - }); - - QObject::connect( - g_nodeJsServerProcess, &QProcess::readyReadStandardOutput, [=] { - writeLogFromJSServer(g_nodeJsServerProcess->readAllStandardOutput().trimmed()); - }); - QObject::connect( - g_nodeJsServerProcess, &QProcess::readyReadStandardError, [=] { - QString output = - g_nodeJsServerProcess->readAllStandardError().trimmed(); - writeLogFromJSServer(output); - if (output.contains("Server starting")) { - nodeJsServerStarted = true; - } - }); - - QObject::connect(QGuiApplication::instance(), &QCoreApplication::aboutToQuit, - [=]() { - qCDebug(STATUS) << "Kill node.js server process"; - g_nodeJsServerProcess->kill(); - }); - - qCDebug(STATUS) << "starting node.js server process..."; - g_nodeJsServerProcess->start(); - qCDebug(STATUS) << "wait for started..."; - - if (g_nodeJsServerProcess->waitForReadyRead(10000)) { - // We know that the process started, now wait until it communicates that it has started - while (!nodeJsServerStarted) { - QGuiApplication::processEvents(); - } - qCDebug(STATUS) << "waiting finished"; - - return true; - } else { - qCDebug(STATUS) << "failed to start process"; - } - - return false; -} - -#endif - -void writeLogFromJSServer(const QString &msg) { - if (msg.contains("\\n")) { - QStringList lines = msg.split("\\n"); - foreach (const QString &line, lines) { - writeSingleLineLogFromJSServer(line); - } - } else { - writeSingleLineLogFromJSServer(msg); - } -} - -QString extractJSServerMessage(const QString& msg, int prefixLength) { - return msg.mid(prefixLength); -} - -void writeSingleLineLogFromJSServer(const QString &msg) { - if (msg.startsWith("TRACE ")) - qCDebug(JSSERVER) << qUtf8Printable(extractJSServerMessage(msg, 6)); - else if (msg.startsWith("DEBUG ")) - qCDebug(JSSERVER) << qUtf8Printable(extractJSServerMessage(msg, 6)); - else if (msg.startsWith("INFO ")) - qCInfo(JSSERVER) << qUtf8Printable(extractJSServerMessage(msg, 5)); - else if (msg.startsWith("WARN ")) - qCWarning(JSSERVER) << qUtf8Printable(extractJSServerMessage(msg, 5)); - else if (msg.startsWith("ERROR ")) - qCWarning(JSSERVER) << qUtf8Printable(extractJSServerMessage(msg, 6)); - else if (msg.startsWith("FATAL ")) - qCCritical(JSSERVER) << qUtf8Printable(extractJSServerMessage(msg, 6)); - else - qCDebug(JSSERVER) << qUtf8Printable(msg); -} - -void appendConsoleString(const QString &msg) { - QMutexLocker locker(&consoleOutputMutex); - consoleOutputStrings << msg; -} - -void saveMessage(QtMsgType type, const QMessageLogContext &context, - const QString &msg) { - - Q_UNUSED(context); - QByteArray localMsg = msg.toLocal8Bit(); - QString message = localMsg + "\n"; - QString timestamp = QDateTime::currentDateTime().toString("hh:mm:ss.zzz"); - QString typeStr; - - switch (type) { - case QtDebugMsg: - typeStr = "D"; - break; - case QtInfoMsg: - typeStr = "I"; - break; - case QtWarningMsg: - typeStr = "W"; - break; - case QtCriticalMsg: - typeStr = "C"; - break; - case QtFatalMsg: - typeStr = "F"; - } - appendConsoleString(QString("%1 - %2 - [%3] - %4").arg(timestamp, typeStr, context.category, message)); - if (type == QtFatalMsg) { - writeLogsToFile(); - abort(); - } -} - -#include "main.moc" - diff --git a/desktop/reportApp/CMakeLists.txt b/desktop/reportApp/CMakeLists.txt deleted file mode 100644 index c766f07dd2..0000000000 --- a/desktop/reportApp/CMakeLists.txt +++ /dev/null @@ -1,27 +0,0 @@ -# Copyright (c) 2017-present, Status Research and Development GmbH. -# All rights reserved. -# -# This source code is licensed under the BSD-style license found in the -# LICENSE file in the root directory of this source tree. An additional grant -# of patent rights can be found in the PATENTS file in the same directory. - -set(CMAKE_AUTOMOC ON) -set(CMAKE_AUTORCC ON) -set(CMAKE_INCLUDE_CURRENT_DIR ON) - -set(APP_NAME "reportApp") - -set(MAIN_CPP_SOURCE reportpublisher.cpp - main.cpp) - -add_executable( - ${APP_NAME} - ${MAIN_CPP_SOURCE} - main.qrc -) - -set(USED_QT_MODULES Core Qml Quick WebSockets Widgets Svg) - -qt5_use_modules(${APP_NAME} ${USED_QT_MODULES}) - -set(REACT_NATIVE_DESKTOP_EXTERNAL_PROJECT_DEPS ${REACT_NATIVE_DESKTOP_EXTERNAL_PROJECT_DEPS} reportApp PARENT_SCOPE) diff --git a/desktop/reportApp/main.cpp b/desktop/reportApp/main.cpp deleted file mode 100644 index d319079cd7..0000000000 --- a/desktop/reportApp/main.cpp +++ /dev/null @@ -1,49 +0,0 @@ -/** - * Copyright (c) 2017-present, Status Research and Development GmbH. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - */ - -#include -#include -#include -#include - -#include "reportpublisher.h" - -const int MAIN_WINDOW_WIDTH = 1024; -const int MAIN_WINDOW_HEIGHT = 768; -const int INPUT_ARGUMENTS_COUNT = 6; - -const int MINIDUMP_FILE_PATH_ARG_INDEX = 1; -const int CRASHED_EXECUTABLE_PATH_ARG_INDEX = 2; -const int LOGS_PATH_INDEX = 5; - -int main(int argc, char **argv) { - - QGuiApplication::setAttribute(Qt::AA_EnableHighDpiScaling); - QGuiApplication app(argc, argv); - - if (argc != INPUT_ARGUMENTS_COUNT) { - return 1; - } - - app.setApplicationName("Crash Report"); - - ReportPublisher reportPublisher(argv[MINIDUMP_FILE_PATH_ARG_INDEX], - argv[CRASHED_EXECUTABLE_PATH_ARG_INDEX], - argv[LOGS_PATH_INDEX]); - - QQuickView view; - view.rootContext()->setContextProperty("reportPublisher", &reportPublisher); - view.setSource(QUrl("qrc:///main.qml")); - view.setResizeMode(QQuickView::SizeRootObjectToView); - view.resize(MAIN_WINDOW_WIDTH, MAIN_WINDOW_HEIGHT); - view.show(); - - return app.exec(); -} diff --git a/desktop/reportApp/main.qml b/desktop/reportApp/main.qml deleted file mode 100644 index 77880b45ab..0000000000 --- a/desktop/reportApp/main.qml +++ /dev/null @@ -1,77 +0,0 @@ -/** - * Copyright (c) 2017-present, Status Research and Development GmbH. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - */ - -import QtQuick 2.4 -import QtQuick.Controls 2.2 -import QtQuick.Layouts 1.3 - -Rectangle { - id: root - width: 384 - height: 640 - - ColumnLayout { - anchors.centerIn: parent - Text { - Layout.alignment: Qt.AlignCenter - text: "Oh, no! Status application just crashed!" - font.bold: true - font.pointSize: 25 - } - Text { - Layout.alignment: Qt.AlignCenter - Layout.topMargin: 20 - text: "Please report us crash.dmp and Status executable files to allow us fix the issue!" - font.bold: true - font.pointSize: 20 - } - RowLayout { - Layout.alignment: Qt.AlignCenter - Layout.topMargin: 40 - spacing: 25 - - Button { - Layout.minimumWidth: 150 - text: "Report (highly appreciated)" - onClicked: reportPublisher.submit() - } - - Button { - text: "Restart and Quit" - onClicked: reportPublisher.restartAndQuit() - } - - Button { - text: "Just Quit" - onClicked: reportPublisher.quit() - } - } - RowLayout { - Layout.alignment: Qt.AlignCenter - Layout.topMargin: 100 - - TextEdit { - readOnly: true - Layout.maximumWidth: 500 - wrapMode: TextEdit.Wrap - selectByMouse: true - font.pointSize: 12 - textFormat: TextEdit.RichText - text: "

" - } - - Button { - text: "View" - onClicked: reportPublisher.showDirectory() - } - } - } -} - diff --git a/desktop/reportApp/main.qrc b/desktop/reportApp/main.qrc deleted file mode 100644 index 79babe091c..0000000000 --- a/desktop/reportApp/main.qrc +++ /dev/null @@ -1,5 +0,0 @@ - - - main.qml - - diff --git a/desktop/reportApp/reportpublisher.cpp b/desktop/reportApp/reportpublisher.cpp deleted file mode 100644 index 8eff462610..0000000000 --- a/desktop/reportApp/reportpublisher.cpp +++ /dev/null @@ -1,111 +0,0 @@ -/** - * Copyright (c) 2017-present, Status Research and Development GmbH. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - */ - -#include "reportpublisher.h" - -#include -#include -#include -#include -#include -#include -#include -#include - -const QString REPORT_SUBMIT_URL = - QStringLiteral("https://goo.gl/forms/0705ZN0EMW3xLDpI2"); - -ReportPublisher::ReportPublisher(QString minidumpFilePath, - QString crashedExecutablePath, - QString logsPath, QObject *parent) - : QObject(parent), m_minidumpFilePath(minidumpFilePath), - m_logsPath(logsPath), m_crashedExecutablePath(crashedExecutablePath) {} - -void ReportPublisher::submit() { - QDesktopServices::openUrl(QUrl(REPORT_SUBMIT_URL)); - showDirectory(); -} - -void ReportPublisher::restartAndQuit() { - QString appPath = m_crashedExecutablePath; - -#if defined(Q_OS_MACOS) || defined(Q_OS_LINUX) - QFileInfo crashedExecutableFileInfo(m_crashedExecutablePath); - QString fullPath = crashedExecutableFileInfo.dir().absolutePath(); - #ifdef Q_OS_MACOS - const QString bundleExtension = QStringLiteral(".app"); - const QString cmdTemplate = QStringLiteral("open \"%1\""); - #else - const QString bundleExtension = QStringLiteral(".AppImage"); - const QString cmdTemplate = QStringLiteral("\"%1\""); - #endif - if (fullPath.contains(bundleExtension)) { - appPath = fullPath.left(fullPath.indexOf(bundleExtension) + - bundleExtension.size()); - } - QString cmd = QString(cmdTemplate).arg(appPath); -#else - QString cmd = QString("\"%1\"").arg(appPath);; -#endif - - QProcess::startDetached(cmd); - - qApp->quit(); -} - -void ReportPublisher::quit() { qApp->quit(); } - -void ReportPublisher::showDirectory() { - QString dataStoragePath = resolveDataStoragePath(); - if (!m_logFilesPrepared) { - m_logFilesPrepared = prepareReportFiles(dataStoragePath); - } - - QDesktopServices::openUrl(QUrl::fromLocalFile(dataStoragePath)); -} - -bool ReportPublisher::prepareReportFiles(QString reportDirPath) { - QFileInfo minidumpFileInfo(m_minidumpFilePath); - QFileInfo crashedExecutableFileInfo(m_crashedExecutablePath); - if (!minidumpFileInfo.exists() || !crashedExecutableFileInfo.exists()) - return false; - - return QFile::copy(m_minidumpFilePath, - reportDirPath + QDir::separator() + "crash.dmp") && - QFile::copy(m_crashedExecutablePath, - reportDirPath + QDir::separator() + - crashedExecutableFileInfo.fileName()) && - prepareLogFiles(reportDirPath); -} - -bool ReportPublisher::prepareLogFiles(QString reportDirPath) { - if (reportDirPath.isEmpty()) - return true; - - QDirIterator filesIterator(m_logsPath, QStringList() << "*.log", QDir::Files); - while (filesIterator.hasNext()) { - QFileInfo logFile(filesIterator.next()); - QFile::copy(logFile.absoluteFilePath(), - reportDirPath + QDir::separator() + logFile.fileName()); - } - return true; -} - -QString ReportPublisher::resolveDataStoragePath() { - QFileInfo minidumpFileInfo(m_minidumpFilePath); - QString dataStoragePath = - QStandardPaths::writableLocation(QStandardPaths::AppLocalDataLocation) + - QDir::separator() + minidumpFileInfo.baseName(); - QDir dir(dataStoragePath); - if (!dir.exists()) { - dir.mkpath("."); - } - return dir.path(); -} diff --git a/desktop/reportApp/reportpublisher.h b/desktop/reportApp/reportpublisher.h deleted file mode 100644 index 695dbd3445..0000000000 --- a/desktop/reportApp/reportpublisher.h +++ /dev/null @@ -1,40 +0,0 @@ -/** - * Copyright (c) 2017-present, Status Research and Development GmbH. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - */ - -#ifndef REPORTPUBLISHER -#define REPORTPUBLISHER - -#include -#include - -class ReportPublisher : public QObject { - Q_OBJECT - -public: - ReportPublisher(QString minidumpFilePath, QString crashedExecutablePath, - QString logsPath, QObject *parent = 0); - - Q_INVOKABLE void submit(); - Q_INVOKABLE void restartAndQuit(); - Q_INVOKABLE void quit(); - Q_INVOKABLE void showDirectory(); - Q_INVOKABLE QString resolveDataStoragePath(); - -private: - bool prepareReportFiles(QString reportDirPath); - bool prepareLogFiles(QString reportDirPath); - - QString m_minidumpFilePath; - QString m_crashedExecutablePath; - QString m_logsPath; - bool m_logFilesPrepared = false; -}; - -#endif // REPORTPUBLISHER diff --git a/desktop/resources/add.png b/desktop/resources/add.png deleted file mode 100644 index 21b37f431d93d1789cf171e684e19cb1096ad181..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 132 zcmeAS@N?(olHy`uVBq!ia0vp^DnP8t!2%>3LYub%DQ`~~$B>F!$q5pyiy8Di5;~Um z8UC027kqdH+XhG8#caJi%|a4V0T1dnIR3uq^0?Ex?#O`(D@hmA^}Wj$2R3H}UkO_K gL7sJSg8>6WNPEG`37?L<1{%xY>FVdQ&MBb@0Ogh~IsgCw diff --git a/desktop/resources/add_contact.png b/desktop/resources/add_contact.png deleted file mode 100644 index b6dde36dd0510fe28eaf50b0cbbe2b2a3ee2f135..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 317 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 diff --git a/desktop/resources/browser.png b/desktop/resources/browser.png deleted file mode 100644 index c9349a2005ed77f61b62fa116fda3e7f85a77461..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 431 zcmV;g0Z{&lP)!O9?J5HU!Y1VR|h3~C0;KCHU7BR{&|P5z6elkO@@1^%E7 z&>-w^IB>vW1L5*M$ix8ov6!HGVLl5WFR*J5%p3w73^eEWL~Xd6TQEz=s>SGnwFcS0`69C77OD1`y=_a7B0fL|dc^%bz;J}^&`D{Z)HGLwlI896X!@F!xAi2mEJ Z><5YmWX8(?KSBTi002ovPDHLkV1hp}wz&WR diff --git a/desktop/resources/camera.png b/desktop/resources/camera.png deleted file mode 100644 index eae2bedfbf412024075454888e411d718f8a5e21..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 350 zcmV-k0iphhP)3c(Cx;N@(;OnjTde#TE(*r{S0L;$ZDKss^lN)}Wj1ZK6$<$80#7bF}R9 znm)fsqcG9Ik8li8L9?E+ujflH!=M!@>$sc(yGUB98AHS^4#qSrRWi|jqN7KdOVmUf z)j33(GI4P5thbVgg1cL)RnYY)CkoZk^le6;iHY(?5;D@c8MQOteo-Sss#!Sllgjat zjeKNton4cE`sx(%sihvCVZYHrO$S7@L%5-m-UiDLFR;)S~gH w;ub%ddZJJo?zm2zzi94OfJ)e!|M9DM0^>|=WcSDJlK=n!07*qoM6N<$g1E7qYPMOnuAGA=(O!fJltoo?St~)kF%F83Wz@%oQG@{i!)qEyj}!xdUfbz* zeIq}Xxd_MYSvYzX^9n8;U879ZfdMpS>0r^d2UFNp0@>;#Wp>5TbQeZ(p#>({wox)M z*$a35t^-qeGUg=H3JN&Z!sQ%q{!S&BsZWTkR|v0QbhoF|y{LtJ<-`!;m%&lMT(k_Bc9@9R7RoO`jhGt^j+$Rl7QC13Z@W g6A`jN|Lr4t0zV)>(w~;OM*si-07*qoM6N<$f?CI+>i_@% diff --git a/desktop/resources/change.png b/desktop/resources/change.png deleted file mode 100644 index 143002657ff7eaea5d96cd79f68a82f3cb00d023..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 281 zcmV+!0p|XRP)>zfK64HTm0HshuIxrQO4x|&)fpnlw0Fx8TI*;+9yI1C0-u@E(kQoZ( zNuijYp3!>@)6o(!3x-h}ro%vUmNk=OUGsr##>o6!hJ6NN6Cjo5H&0@cta+EmaE=6B6S-h$l)`Ys%%<}w{3&@hS^q%8zs+0&?tE6DR2SPk37CZRemtw z>u-t=0-eMQ`M}3o1@enzUpSRmayMnv)CQDbS}5&;b=)y0;D+AgHwL_ZsUaWeQD2+n fN_TF>{;gy$SQGB*4~e=R00000NkvXXu0mjf5a4(E diff --git a/desktop/resources/check.png b/desktop/resources/check.png deleted file mode 100644 index acfb992f60814405345f69913a2baeae6bef393b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 141 zcmeAS@N?(olHy`uVBq!ia0vp^Dj>|k0wldT1B8K8h^LEVNX4zUm%O8 z&04(by;KczU> oP4xevUalR|y@@?R2507HPFIUc-z8Q22WUQnr>mdKI;Vst0MZmLRsaA1 diff --git a/desktop/resources/close.png b/desktop/resources/close.png deleted file mode 100644 index 65e1b4f73506b7dd6063d69f0bb51af646768b32..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 190 zcmeAS@N?(olHy`uVBq!ia0vp^Dj>|k1|%Oc%$NbBT0LDHLn;{GUSniqG2n5zcxTUE z$ExNh%kCy^%9YvixW9C8Wb1EB*X>g^(LON oUbVKeUXd$)dgKkQrBi+}B#5^#H|I(n06K`l)78&qol`;+0HK>k+yDRo diff --git a/desktop/resources/commands.png b/desktop/resources/commands.png deleted file mode 100644 index 06d320983f12c85e3c02d1780ecb9c2113ce9ed4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 260 zcmV+f0sH=mP)kYy%41_&`N62Pn1F`|#05+hTc!Z45QHrP&1T?nuKuDloe&+PG@!1C0^$$Wg0l}i2 z0E3NjFsqPsW^g*F48tgtF^6ax6%&GgxI~53;LQSztB+&@e+df$VW$Dg>HPMXMv#j) zLoaCB)T9ZNvUI&5?yYNKHO1>=wv($tX=HqHzQXks{|EX&+t?dHlqquqC>MJZh)45M zIZU4&TC(=cOK$~h&)mBP)txS7`DChDwclC(9D7h9r0(=xKcpMm#|?virsVbj0000< KMNUMnLSTXq;%!L) diff --git a/desktop/resources/copy.png b/desktop/resources/copy.png deleted file mode 100644 index 9c19da8d237f68ffab465f9de4e7119fdc00efcb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 229 zcmV^P)wczl+;aC$x9mtBMfo;frEafnFG6X2wv z(7_}mM5(EKePfL6WhOG{3x-!lt#Xi8O}`Av@gp1PjGwoG&iI)?b^J`$uJJR0>cJ{V zwg{x$HSVeLX8VKGv+EW~mI`S~mUMy9U~OifKQL{(QT*uWr@?#$ZC`oKb3OGAg@_{{*v zL`I8qZCqU32MWzX0wNgtHZN>C#8fbcS5!o-;c?E;(8AT+_f=m^YG(P(yJp|kwLP@u zxLqjoo;#T{WW!z7bwyum^1uJS7b9SC`rpkqJ&n?J@vpsKF8)06`g7Jk?h@<$<(D-- zM9BXvm9tIZvy!j=yZk_S-Q6{xO8>Y{Rd;XU0Y)%` Mr>mdKI;Vst02?aQCIA2c diff --git a/desktop/resources/corner_left_top.png b/desktop/resources/corner_left_top.png deleted file mode 100644 index 1a0a4e57f825570d0433da1e0f026277f4261d9f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 614 zcmeAS@N?(olHy`uVBq!ia0vp^At21b1|(&&1r7o!#^NA%Cx&(BWL`2bFe!MtIEGX( zzP)SRC+sNUnkeOXDo(A5cLS%H6Njd>VxuSzr;3NL;AU1KIZ2gg`X-6h=jJ4CvQwRU zYgP5`rT?C6lij(E-PmvW<)bq9&eT|aK6&QYTh=cz!i9 zP3UFbnsk9*q#;LUg=ll#0)~{w4r?X8FtaL1vu7P$Ag{r2(;`5d?XLsliDQjXhA-H; z9L)Gegc1LkVt+Hvm45C2UfL<4aoyf2=Xz&vDt<0gU0W8pW5&DC97>IL-}KSlWDSPkf+?$VqkM~2=S<(HqHIeX^rne{Vo&n(}qAM(&K;lsW&Hnw%=I|IJoQ)&M8 zZ{-vF`T6?a;x_y}EGiMh%4LITkO~UKfhl7#c6r=Peo#O=WCW6-IUApdg6Z*;b&&+)3;xftul|! zpMN(eaq@v(&i8X}33C;|5y+9W-c(_`SLa}-7t8%`njxgN@xNAzwY@K diff --git a/desktop/resources/corner_right_top.png b/desktop/resources/corner_right_top.png deleted file mode 100644 index 6eaca3cd9a0dec8e76564134eb952fcb912091c8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 537 zcmeAS@N?(olHy`uVBq!ia0vp^At21b1|(&&1r7o!#^NA%Cx&(BWL^Tsv?* zXZ*g-Ts`~!*Zj*z>z<{DKd`&J`<-z6Vc(l zMvHT8TwL4-3e7?SA{hEMFKjx*R4|8ER79-dan6bb8yIBLompF1A6Q5a87)1>|DKV# z8N1Ht^Bs5D#$DB~F3hSfd(rbbX7h(@JF^~|Z{B5j)>KPihih4E;>W3b&&8#_H`w0v Wq-bCKYP)m;@Y92b+V{$s`O1l`sjFPziAB3P+)2DfGC5+k5}E+;?f3q`i5j<2*_#;hAA=%a+UEZn1}-a=OFGhs_#o&E{uFrkyIyIsGk Y3seNqy@p7<-v9sr07*qoM6N<$f`|)mvH$=8 diff --git a/desktop/resources/delete.png b/desktop/resources/delete.png deleted file mode 100644 index 5c5ed9404e3a678d3b5f03fbc15ce9d8cc2d8ab9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 307 zcmV-30nGl1P)~#qGij=uGbP-yOiJxf;KPI`wW8K3_MnNbhYb9$)C+z;2{{$G$jbl#002ovPDHLk FV1nY!h7|w+ diff --git a/desktop/resources/desktop.png b/desktop/resources/desktop.png deleted file mode 100644 index 2b03362c96838bcae015f4c607fe4f5b80fed34f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176 zcmeAS@N?(olHy`uVBq!ia0vp^DnP8t!2%>3LYub%sd7&j$B>F!$q5pyiy8Q2BtA(> zbu{tq;1x``asI=6mL2mP8Fo9q_B3K+`JVh;#HGkCP%fGwwD)K;Z$NSftH5He0?8{5 zTO2K}_Dh*$U0C6`#ayFtA!F2vx9Xc}T*Brz7(BCYHJE3`_P1G*<)hS3gSsu}WLU2- ZF<2d8-e@_|Spnz-22WQ%mvv4FO#lK%I!gcm diff --git a/desktop/resources/download.png b/desktop/resources/download.png deleted file mode 100644 index 0da5eaa1cd4dc7c5802743928bd9b6ca216ac3dc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 208 zcmeAS@N?(olHy`uVBq!ia0vp^Dj>|k0wldT1B8LpbWaz@kcwMxuN>rUP~c&`V9%ty zVP>9_`Ndv|#z2E636WsNohxei+??VWf*a?FNg8fR)XCxQl5vs!C9dK)fnDQ_$gu;5 zb|mqi%w5J6#jXB*&iC(Ki+^6Km@#Yd(h$|+WpW0FUng*e7%om&7`5ih_KA~cPnB=` zvpg&^{OmSvRo{cW&#o&i*euC=FgL0}Z|k0wldT1B8K8tfz}(NX4z>1PRu~2_ih)6V40t zhuSc?mNKEo81LxBcdZU-kYFdTSiw(4r|pE{sL44$rjF6*2UngD-eG6(3LYub%sUS}m$B>F!Z!aGdWDpQ=zF3lF zy@1&&UFM8Y%njR_f0*uRGD;-hSLKlNadUP3mUw20ky@4k>rp4o%hk)mp3R)pJ9A~X o;S%P>As-|bDtublvvDWe!%(vod}=;+K+_pKUHx3vIVCg!00^iqlK=n! diff --git a/desktop/resources/edit.png b/desktop/resources/edit.png deleted file mode 100644 index f2e54d497cdf396d407853828c1080e705b33ab7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 296 zcmV+@0oVSCP)#SQ{H%G=31`|ID*82;-D%6v>Eeh$bao%4)sBTJnKVgiq|(H z6noLaYz$3?ni&~VFcPFBQu4OnBclk||tQ0b-W;8iZp=)>^1NlhlK!=HY zSFKNZ?!=S8hx#taZKiK2nS{?283EH=DIg3$4;Mx>LoFNScTn6bw#wKv{hNW=QClil ux3LYub%DQ`~~$B>F!$q5pyixYk@v$nAb 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 diff --git a/desktop/resources/flash.png b/desktop/resources/flash.png deleted file mode 100644 index d2486fa6c06acfe4a73c002418a842abe34b8a7c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 325 zcmV-L0lNN)P)w;3U9a(^4EF}%L2bT=th zkhi_tYZ>jQNt<>wTgUnadHe4upc0K4Q{BUw;2e;%g7UGv|6ba>l;(~`PN?3#oqu0n X^!A*&=lE7-00000NkvXXu0mjfB)E#l diff --git a/desktop/resources/flash_active.png b/desktop/resources/flash_active.png deleted file mode 100644 index 15bbb77c8e659700a316f57874d04ccdd2bd6010..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 272 zcmV+r0q_2aP)+ErEGQ2G!D*TEgCTuc%#7M5#~BJb=rS{etA^=b4B@03`WrgPp>e?wYVFXUPq>bC z#w3gG@D_>oddL`lH#G90Q;}J_9SSQDXJ!O#p5W06nub5DFn;gdcf}I$Mu`@o?3eI( z^Ae-<;&Mp*Z~G6XmwzR}qO2TpHc$^$M2oVPP@{#?zI*>3T$a;AQ${Te!s)y7_i+a} W%XC diff --git a/desktop/resources/group_chat.png b/desktop/resources/group_chat.png deleted file mode 100644 index 27cf5107b3e386a8e21dfadd25f235296db8b03b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 386 zcmV-|0e$|7P)JJZmjEf7+M@!%(A%8`$%Xl{iOMGu%hh0E=b*Sk z;JU}3uxa<;&fVS-0f-Em-W-9X zjXoHY6=s(+a0tIRKJb=1F*638Y`Vt#c^G!UAj_4avCZ7tH-7QAvhv|iL3?v7PYhU{ g!x70odBqdNKThxn;4o4GuK)l507*qoM6N<$f)K8%9{>OV diff --git a/desktop/resources/help.png b/desktop/resources/help.png deleted file mode 100644 index f0e3656711fe8867503a34795be4343d71b44e66..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 436 zcmV;l0ZaagP);k{5g5T6lnvqy>VBYL9!GHc+sZ$VLC5KYqyT@= z6f`VWY}m15gM-ERI>;;l<>N79I1BU906DZm!VQBKTFC)O#cyo0r-jy)v57 z>{!t5t<1~T2u@+bNG`@i<&UEJ%H_tCcviFzP74jd(-!!}2f?GlXHq;j(sK6p5ICBs zN|=tAvfs;@0r1%wIr?1l&-jU8!#PKM@pe;nl_hd+1T^m(D02H2gHO4mkMxcDbx eO#=P5U)c{03`C!#&)_Bi0000 diff --git a/desktop/resources/history.png b/desktop/resources/history.png deleted file mode 100644 index c8e753b116bdf16dd24662a40e8eb0b771f1fa73..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 206 zcmeAS@N?(olHy`uVBq!ia0vp^DnP8t!2%>3LYub%si~eWjv*Dd-cGy7+n~VXlF#Cn z07SwPM^C1Rm`&h4!eVN8EXc#)&z8SSDhu{5VV&@TpS8c$ll^R>j8KuY+YYH?CXVm6 zm}taoFT9krlH26Pp3bZMv9E;KvpAQ1s$665`m!!S<<2a2DYe{)%|}fOePe#FzqvB| z%Co@3^-CSMB}=|F*y>(=Xsvll^YgEtwQoD0yq}gN6S6URX{VW@F3^Dtp00i_>zopr E06bYw$N&HU diff --git a/desktop/resources/home.png b/desktop/resources/home.png deleted file mode 100644 index 19ddc6d532d1ff06b1396caa3fa7d76a4dca2f32..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 414 zcmV;P0b%}$P)A_smu9D5G1a=u= zV<8^sXM3y^EzsTaHLW~z$%#nYp@vvekzu}&He%2q>k<2yI5mE92ng^^%O%fgCO%xT zyMIb6Mz=|>X3KCap+qBjrKxMs_Z|ueoSBYFDw?60@8_!q$NgPVdQ_>1xL^B5WWpb< z`5mBG+SI6~vpb92E)3U0rVjz;;ZBVIhgz z1ep!Z?=dA6W5xWr@s~b72=oEit?|=9%&>6jC&Fii{>Mx40~-ZVg2xbUY5)KL07*qo IM6N<$f-Nn#2><{9 diff --git a/desktop/resources/home_1.png b/desktop/resources/home_1.png deleted file mode 100644 index afb65ba21ef7e0486e46af7bdd04ce6dc04d685f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 302 zcmV+}0nz@6P)Nklfe{>m5xN0v&=F(=H)uCu1V?ZLMzHUp)u==R{`5VYe1YMT3l{`#YZ@K_ z13c<0FbxLcO&N%SU%?EqE|pKICx;i%9=eQ@oA+EUMLzqw$}CFqBmzoXJEbUZ=wa1a z{Q0C3N&e8#89Ih) z5;h(VXwlAX)olFcI+yEz$90El>QxulFE*b2Fm|WjR1orkMk>_SJ9h-KlkAiTNKJw; zsbL5^0iJoEmZZ%FvfPl=iGNwz1AOMA^S2+g53kKLNQV+=ZvX%Q07*qoM6N<$f??l! ALI3~& diff --git a/desktop/resources/ic_background.png b/desktop/resources/ic_background.png deleted file mode 100644 index 0265779ac7f7ea98f9cd3b1dd8c6574b3308f2f2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 98 zcmeAS@N?(olHy`uVBq!ia0vp^i$Iu>8A$%HX^8+*%mF?juFeVfmzl3x2;@q6x;TbZ t#JxSp$P45hQuw`m+i`Xsb_Rw9X5KdpjP2(a1_Q+zJYD@<);T3K0RU?y8QK5< diff --git a/desktop/resources/ic_foreground.png b/desktop/resources/ic_foreground.png deleted file mode 100644 index ef8ffe231a9a5009a0afcbcf94f452c8b5fa3d68..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 730 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 diff --git a/desktop/resources/icon_avatar.png b/desktop/resources/icon_avatar.png deleted file mode 100644 index d28594fcf1025e53d42a910d3277b20119b7883c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2282 zcmV;T)K-vSQY&E*KZ8oB3SG0D!_o~gDXt;~ z+6t*51}@JS|H(4XI^dH)E6`Z- zxfz%dE;|LB08W;C4gkM*&YrCYFO#KUk@zOyGr(ft6Tq}Gm!1ya?<{lvZQu_;7qH7Y z`$kqAGZ8Eje+=jV<^xeU{5G%~_#YUwQC$5=7B)$XK155=z>zv&=`kFCN6>d&yK{ESW#F0_MB-)W z8|4fz%Q^d>((?`Dl<7dlZq8DyF~+pEwl-b7=v#~-58yq$4GredfddEneMYkw=j;}d z_#^1(tOIyx1dq}NqjWI@~b!`+S-INy#kdLCITcmZZF~-yyH*nvGYFSr$?vh}U z_(Q-_bW*;d)}UIaJOq9v<3Bp1(Exs>mdOMgP%TS?Heh56KNh|_owH|Zjh4^no0BB{ zAD1L-$mjFTwZ;z`I>XPRHWeJwF$;n7z_Yam1BjxA^~RLVc$9@POpBt1^;vL0wVVeQ z291|m_-=F%zPs8<`&jrpu1wis1TDK!ZFj@4;I{Dn%Pazk$ZX)o8mhQ4)R6^>n%V#& zk+=a(qa?ttEFvUHbj#IHN5C#r+r1)jLxd*YZUA1&Dm$3V`M+NcbpQlSFQFReM?gzB zw??(XhB4Ss9-l76d}%@ktc1ZR*=QaaaYkTI+o7a5q+=Z_g zqq8CJ&Hm}rr#-uG-@Z$)FA-^nXn`?)vvcmnjB;Hg1Q(y-TWhUVM3xl_g%0m&(oWH| z7Ygxh2M^lE0fMln!e~tfi&phFmV!1Ey(`OOG4FQ^uIz7-NnAc<*OypIx4haImcEWJRqbPWBnwnZ#Zf|1P-*Gu`Pl%ZYMNK0F?*;w~+!2WM&+j0B?Zbp)n^%(6AiUw5E7`^xD#sz{BW5+LzL>$>;MoMNu>x zUEatNgGrLS(%ajc>Q5Dke}XQk{m41Hym)-H;2FR_fOi0eS`1)U62UNc5O@ptK&jJc z#9~@Fu|6E%7_3VFR|uRpq8iqZwpER1dH5l46!ko=tvkc)u@>ci6xA{Uk4__^@;K;OJ}0+LlD(rNGaD3#fzVs_BlPw8 z9W>Lh$~jxn8zq%rS|nZ!Y()nqe*soFXS-7~t^vWX@qKhs@D|#tU6q!v#vncieO8JK z)-M1nORYimK(JJO54A9Z+LD%}9Sv5y1z-wl&|ZaZ$r%JT0Y7lg{wsBb6UTZ#@NM90 z=s5ip`e;2}oB^dlt(!cq2Ob5!30xZv_o9>SozB^+jAkNnjAkm@81{FaM@LTUYjGK6 zwT)*c+JP(qN~e~`7`u(9_zlC`cSdjHDYZMiiatV5WMY=fdS{wQ+=`}E76aA#t@_Y` zM3-~+KvvwK4uVS|5;rmaR=mk07*qoM6N<$ Eg00Rb^#A|> diff --git a/desktop/resources/icon_check_on.png b/desktop/resources/icon_check_on.png deleted file mode 100644 index d8318e7fcb15d7fe9b2cdfea6b7c439efa370283..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 316 zcmV-C0mJ@@P)Px#_DMuRR5%gslB)^=Q4oe#@xp?Lh(+AuOBjt-t3`v!VzL;_MzdfxSWJS^Xc3#q z>Jtcp;AQ=e?7(Q&D#{T#$k{K?`5bOc5S$U#F`?fB#t@a!U66u zhPW2ccY_`287saSt$EfAJ-C9zj3Q~4O$lLu)ptPl@MaM%1&6 zx}DM_KAPh`B%)r5yV1;QHGfFP>!PgUCjg7cTbb4?Jea1 O00000WbcEP)Px$ib+I4R9Fe^mQ8K~F${$h)NAw#9Hi}r1*_?TB94JnRpJAMfq=-2eG?aPDjI{P51yp1%zNtAx#VymRdDX z2?~BJrAwAcQc;4zcoh&PNGiZL76vJ*fx5al&X;Py!6xi4c3*360z$&9QgDob!F1KJ zN8o?iO$v$XF!czPs)4dF1kkaJJYmS8`gHIgmtb%~B8E2l`J|n0bnLak<;nSSty-aL zF#KK9#N;5-F%?ivp_V~y z!;WfG<8c)qXpQcH1}L%>Df0^$5mUevFa=D3q5?;@`Ul7jknREi0000Px$WJyFpR9Fe^*1bvuF%SpvnJpGPu<;4(eFIxdwK#-rPS6(+Ed&Ky3lA#`E1OmC znyoxs?d-%i@HG@H6t>tgK?8@bIgxXC>RKZ zf`Skz=RTwtwT-R8+VFRudfl_dOwYkVI=M*p^T+pXdQsao98`|(k44%evnVsyy?pV) z+|N2g_s}1hjiOj;W!|1gJNO4K;^jJmzGX-upZxi z#_84mitIkRH%8%IlM0Q|dEG%o*Xr+T!^Bsr1H&p~zNFW=s-APNz!a1!@EPx$Xh}ptR5%gcRIN?~K@9FUId%~UEcXgH*dQQ5+zAwqfZ-=ta3~0lQ(y^TfHy!P z7D2)xSkCbZV6nSmN;|npW-d!|gQUr()AsAvna*@UEyB!r8jf}?^A3m>6~aUx2Ds_1 zE?olUQ9g^Ve!3>{xtNgY(LD(}3Ib{cJSm7uPF=uVTB%g3Z zx0aMV0shxSeh??loMgHICw@;#Y5{||lD`8T=<95WPvvqi8*~`Y8r$wv*<%o3KK-oy Y0C^OI+_<Px#^hrcPR5%gcQ%eqlFc2-qcn3TPiHGnQa0RyB$*pb)3%!OeU9h4Xe2+M!lxbRw zD<^qjI`7Sgp%|msFbo+`0xi&eK%cQpNm+&<%z+CKGIIGc(}_U9Nv@#^PMpQUlYy)p zaSy)+I3YowF|pE_VeUe~J&4tF))){hCf54=bcTY96grbIZi_oPC|3?{z& z3~9C$fn@iimvC~=nvc8+@iTfpS)>47z_-TSf}guV)q~b?MXX_=9tpb@Nt)EM(6nGp zks8~i3S+uIFJxoypTJx0=$;^qNp8Qp*=&WYB>&nz*4pDAIFJ9@8@aEJWV6DyCjbBd M07*qoM6N<$g5D>C$^ZZW diff --git a/desktop/resources/icon_menu_group.png b/desktop/resources/icon_menu_group.png deleted file mode 100644 index 40e9b7dc416ad5006a3fb8b3f987451f850fe06b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1597 zcmV-D2EzG?P)Px)_en%SR9FeMR(otyWfVX6_O|O<){VV!f&!y+71$WaP#|H5Oo0svDp4>o5XGPp zl?04IBg)GJh*3J8tWS zaFVa*eZF7M{azeAWLmp%vt5#5C2&wEgPhLE+!^HiRxW#g3&(L%U#H{#D{yVu&NL8x zg)+zGaI$;}jF!qzmo9A9%Uiu+%Y5LZ9kLAZz5NKP!e&gGxpe6QPj8=|&g&V;Cd)Fv zX496BB(bwDB+CaRN!p-r)X7eMZ7y{x8mMr+Ngna;CT&hE*$~Ys*wWVE=k1~ zd-1Wqs!h%#hkj?iDa9{+12T*yJu@Q>-k3WZrcQni23Rd{^`CkcRxowe%jM3)2k$aN zG#>GiQ;j-;pko6Gq*CmP(oHJ*YUvC$Z14UIk|W z!%3R314?+iCvp>Mb&6v(=}16%3h76j$Dz)B6R1-Js@>B;W+Hcr)ll6d#{Sjqn9Ork zEDaYqT)AEcq9`hybVeKpl}rwwQx#07&s}xuj209C&o5fMc(ISg#NxWZ5{04VxVUR6 zv8$^a_Ut@d_vH@3DqI@-MsDHKXF#hb5YrY4^=o6Yn` zU6|Xc&50&Q1x5*FW#zW^K-=diPQfcC2bbL?l#eEwlD?!99Dz{&3pnQED8VrhM=YW% ziFWZG9OVeIAy)7M`4H4Z9F;g8lsYl-D;!om05LnJmq0cwwj9|y91&|2?ajWfuA8_E zgWdiBFUt}bjYioTZ;@>Y)&!KZF{k%!a}I5@v3u8%tJH5`IQe?aUZGY1@HMyGsjWWa z8hrX}Z94j+)=W)K4o)l_dm-08+$;#f2u+PflnW7D9kb~c*}Q#cf!S*LPz(f%y8Qlh zF(4YnU=Z?0I$-AXA~mPm@2}sx|8Qzuz1zYH_Jtz=dCsijvkrUqNQ`G4tU>u1^mS1U zbrMpxe*e?tP)OR}*5*kfT}$z1Gb~xS0OI4#iuoE|%=-@h3i!#?FoVGWgR=%f%D^PN zC*#1t^AN!Eufyww+YL={w>|Q(F35YjamKWwWGuiQ3ab#<7gSI^`FHHvv#zP7bp<|e zBEV7*5q<&{l&8ZBzx?J@L0K&p#XriC1M~-?QT@$Zc<8#|V)%;s+f|b>BrEIe$XxsA zaLx)`3Y!sJivnWXkGto!w6yMK>%)xy_9^>t$hBufT1qlluuHfm)cO86Q3c0O_FN8h zVb6bMHY8)0`by4f5qMS zc4w#0L<+5+H(#5B9lGyjOm2l5nwlXL3Mul?A&v31C-k-Xl0OEoxhv^!ok_er2lk}#m>Z1sA5yeNj)IYv#&7rMLs zd8|?!K5>qP*ABB0r&lPgJ0f~%Fmm5+fR4^SU41Mig3~T$8RpXtuc2#zrzo5$hSHK%X)&NW80|7DOTG5+8yCc2c2k($xZD#Wa0$Lnq zAu}!Y2N|EDEI^O*JpUH6mlQwWig#etc-sDPrnnm{zONiNk#=zlQ76zA#9h+!&ej?q vt-MOxzDGM%Kdaw6&SNL8itT>r-lP8lrp|ksUP&qW00000NkvXXu0mjfcA)oF diff --git a/desktop/resources/icon_money_white.png b/desktop/resources/icon_money_white.png deleted file mode 100755 index 6510ff9c0472db3801fafb22bf899458471123df..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 473 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 b+t1i51~mD#VR^UO00000NkvXXu0mjfP-~QE diff --git a/desktop/resources/info.png b/desktop/resources/info.png deleted file mode 100644 index 6d1080e39b8f2e2b96c6e6b202123a1876882090..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 384 zcmV-`0e}99P)LBTa5-7nXxPy)&>TDj z3o@Q~B4dW2zYY=<;Qb^7bZ23H4UiS=b_Qmu4jB<%;}@Z+-c2o-dyVSp{ZPT~XV?hb zLH?x0YS0Iaz(R9m

`qdadrfyrW@sDlLrc+RO;K0J54Zc4Rz zrdcl4e`G#0L)VXxk!V{KaSNmA%(x>BQL^-6r7mm%ytatf$AF5o?h=q=(iSt>Hc(0S z%szj-1Vl^5Gnx&c(hEQDdb1(U0vfDdh@WcOe@^>x)syWpX;``lMy-p`?6ROQ%_Xo7 z(W6nj4&(!SG**tU!~fBuEt~x%@XD=&e_5KR2F|eAU+iQ)^!Xx)23STs$e&?71atj~ eST;hx%l-iH%phTVSmb~J0000|k0wldT1B8K8v!{z=NX4z>1PNAWaSMYt=@sWc z%um@d{~*K785Kr74hJe`7;^D^*ED)z+stre0gJ(RyJn`7j7-H&Of9z=o|#M#-KJ6H z&Z~4*!6isRPpnYtO2ZU8DL39lxe5Kta-^hPDi5;h=CGd7`X(rFl9N+Ja!SJ+59YSN lDWboBOUk&t{Lh diff --git a/desktop/resources/keycard_logo.png b/desktop/resources/keycard_logo.png deleted file mode 100644 index 0546b5458bc6ca66a0d9459120c11562f0d5d096..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 675 zcmV;U0$lxxP)kRo@GIDs zkZjAAS(~-bLn8m^^SRQIgkWjK`G6(t6M&eg%TaOrjELtrPM7odP6!P`)41Cor&7Xa z)f_;pNZ`3|myM9^o=-rM@Ad-)3=w6dUKu?FBCD@_h=Q!F-ais1E<{1UtnDYwu?2KZ4|Tc~Iq`MGb%&B(tv4%NPkHz-uhNuG$fT zJge4HW#!b&ZqVj|&kzYWWqIzqYxs|P<)lpvdTRB+bymu}%x|4TFGx0KNPa;zTiIIc zT#g1@&^o|#r$J|k4x9#5iG`y9bcV2)atm-)n^r9=9mYhCtsq2dr+YJZt98@aiKPK0 zF!}dpCy3cDw2+X69^_sSH5Or-ifgr*tc@GSDDMS9iP^T9PzWkVa=f|cerJf0-h>cE zc@o%V^%~f071zqj54^@HraB8EKd|&EPy^jK{`#JmQ~X7(rN6?|=m(naoBaR)002ov JPDHLkV1m=nElmIb diff --git a/desktop/resources/language.png b/desktop/resources/language.png deleted file mode 100644 index 289bf5270f36a95fd95492cb2606441f80cef703..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 438 zcmV;n0ZIOeP)0wtsbI!HQ*9jqNl2hxFdknMmHD8Uja!99@?8Nf$&vp>6+5040U?mQR- z{vj$zXjnK*nBZWbaeJMlC4zK}Xd%whd~A@cWcM>PU9!zWK)@!m-4RV6tPb?_jtEj| zG17|uj2exKHmpuG6!Z%ENL5V>6aYzj;skh25`dzWO^HU320g#&f_$BQf9lK7k_P|D z2J0&%Mak$KWEBC-3qF{;xy9NI-wx9R^7&2_AQCTK`{yK%P1pt7Zvo0q`aL>GPc zq<=nLUmNlchS2;iX%eh|_M!O?NB4+6bsgz5H(MR7mWL}h{qjYiHpm=Qsp0SA1`QK_ gA}loI>m+{wU-9a~=$~|Z9smFU07*qoM6N<$f}h&LIRF3v diff --git a/desktop/resources/launch_logo.png b/desktop/resources/launch_logo.png deleted file mode 100644 index b6252c8da3008c6cb3edccf37bef5f0d3e440a7a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3801 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 KL9O21*#7~l3mIAf diff --git a/desktop/resources/link.png b/desktop/resources/link.png deleted file mode 100644 index 557c9bd19f0c408f9c2df46e5cfc0ff955b5377a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 329 zcmV-P0k-~$P)!&Cj$o6OmUtCcG zBs2^RR4};-B(d&}+9bA$(45tMV-F~AwmySdAR!R$vn!L${3bOd4`yFrb{ek48qx%1KegBfqwUn|C-1QYz$d5<9oW{1(X{V z4T+)K2$p5Dr8P)p%=Y7JYX5`2xM>%ik|{eO`udZn+VUuS?NEzT)Cc3ennQD1sP?P* b)*tl-t3Bo{g`x2m00000NkvXXu0mjf5lV|o diff --git a/desktop/resources/log_out.png b/desktop/resources/log_out.png deleted file mode 100644 index 370625beeb9b70833df56a3f07a9585eb89b4028..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 324 zcmV-K0lWT*P)}M#u<^K$Qn-MQzsz^{Y64@zo)I0{pRABqZ4L zAdeL*`~`Zm5i3R!v{$g0d?Zj+jB=@~=q`dDP33q{DuVbmN0HFISzp}CuK6gC#Uj0_ zerHlu>@ZEEuga>X&L`)KBZ8;T>SLA7?hzJrh6vyNKJP7mst(6Xl^Zfj_R zKG~eH$rcJK43ps-QnxTBX-FJ7BJ_I}rUbfS-02c8a4qs6VgfTvM0ey@Sth916kfNZ zbFQWx%wTM}QI=#w)xHYw@CdDM)?>c{+jb>&qO@Y^eHqU~URiOtmC$-PWzS#sdwT*> WE8i6=`vK_y0000003lAc1Tz8 zN&mW~CB=y7ZJ7fAzJa10-E6)}EE|qx+hN&9M2tu*+xk!*kwZQ!_7T`QIClCdW^#HkzNajfv@?) zsu^+T(E!EOYhp4qzAX}o4h}>coBNfG>mfugE@nBE%ug-k&v16T2e+b0JddzN7k^Gn z4v+e5Ex&w~TD^87Y%#5nU(vW8L*jAy!VfFLk9^^QNYv0JnC9#@b_uvE!m0UP!Pb6g z3b(RpeRzC3|LN-V{B9bV-!-@;9uF72>=C-??9T~F;p*q(vc*qk66WfR0UXGxvQ^vS z=Gx)dPg$Re;d3xpFt&Itj#9lAo6UlI#+IOihCG9-C_zCb*)Eo`S+nS1)~ae|uyg4xHGmfMyH2c=qwUTKcG zfIRPmqy2UY*FNyBSx2tzSW{E3WoGN7-+D{;_Z;`mp2kOkGeeZ@S2m4fkdRyQ_it;d zOFkZR3+432(gF?bQ*@VBe<;&j5?qbo@CeXfA(kVgj?IV8pq@*Q7Ib2fiik;1f3?wt z$_|)~t*P8f)OoE7L5#p&cI&+fcs&jWmOjxP%Lwhb>Va9mxSW+|u$2-OP+{in?GIXZ z+^2$v!F>gLh#*;mi44ag>TP1w1-}AA_*k^ZS*vTcO$ui{9;P*DMaP6fd>3#t`sO zWAvUkJ0Pm?cmm83A=w}={iO5-3C?gOWy>lxc>iQZIKNJ>Vx^$;mci(y7L}8_VqUnUO}ii zL>VJ37uGt!@ZFWOh3}(H`Y{s&Ns!H&{6yCiNknv?=C1CZ#HGi`ra~?#4XubyPkMxU zU*}#-1z+z4`XVMiORT(KJ_Wt=2Oud7u0oswOD4wMZYf!fo*%x&Bj~#?{jFfU^R0KV zYJI&_hq{?p{@zO#=yX}!+c+Nr#vfnaL0i&8Q@K0+$NRxYI zyW-5lm=ZwNCpj4hs69;XfbhB&^HCeP9Kiiir70Ix$3K-7Z&2XfT)zG;Ne#n_h+(>0 zG^7ST`1!7x2+eL+D?NY!YqnMrSSh`Ty9!gQWeOL6d^M!04kYYIwPMoQ;D~I8_QK99 z&*vJf^FZ`TU!TXqNi7oISBP;wd5Lj(*M&WFb?0E*6J< z;9`&zQ>F{9kj$2TE&n`&kBD@c9u@89Nr3qinZ#Iu#&=sE+OZ6yVufV9AOw+mHemqd zqt}@=;+2@Wh;SPtw``f!-HZQ{oIz1OrxZX>T^Q}(%eB^$RHWt={9s?~M_no?KdGSY zRvy1#b#5ee0S^tG{iT3?-)%jl7p86VR5`OjHN}6*+{|DWOS}*LvowwqZ?7^zQrhr3 zJ!t(u$C2Y|CV~*io4$TR_Ut(gO7BanULB`!Che1=E%7?-_q_D3UtZir9vJmWBeMJC z{g@^J0g8Tv?$kX)mksv{B5l%EN@72pOxM);`$p?PasQRh9>0t(Sk*%>;yxw5U2k&^ U+#Z^6S^T2|P&UrUDr;=Qe~>P;KmY&$ diff --git a/desktop/resources/mailserver.png b/desktop/resources/mailserver.png deleted file mode 100644 index 51389784c702113638dc6b9a58a3fcdc710347b1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 258 zcmV+d0sa1oP)MI&MqnO8@`>07*qo IM6N<$f@|4lkN^Mx diff --git a/desktop/resources/make_admin.png b/desktop/resources/make_admin.png deleted file mode 100644 index b2d9b8ecdc77b93c57546855047aa55043f93555..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 354 zcmV-o0iFJdP)Bt{h|$1X~!dvANMWa-s&0;L}Z5YUHVcKf9<#{oZJ}#F@sZYnNckE-|Rl zr5OWM7_J)mUVAtv26hf^u@*LT8`M!4f^V1W-CysbI$F@RTfRxZ{z)(37@`)}8o7b) zk&|`@J!!818Ag4eq5FhVWvj34Q3h=O#lD@07*qoM6N<$f}bpu AzyJUM diff --git a/desktop/resources/max.png b/desktop/resources/max.png deleted file mode 100644 index 096b9a0b35bfa1da7ac06f6602095e9d2cc1753d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 185 zcmeAS@N?(olHy`uVBq!ia0vp^DnP8t!2%>3LYudNC{Gv1kcwMxCm-Z(FyLUw7jY{% zys0zq7>6vQ{o0jkYL|W)eyf<;qRq)LdHv)M4oj*hvOgB%%`EBLupvR>^bWPh7Lt+| zJuX`GeO=9B-Mc%u^lHhfRmUO<=e(`(p6_;Q+iT7561iSqEZSFHig5p$p4)Z1Mxyq$ k!}1r`7cEqs^QT32s_2pv`>xj-0o}sj>FVdQ&MBb@0FHo5K>z>% diff --git a/desktop/resources/message.png b/desktop/resources/message.png deleted file mode 100644 index 74e7ef02a1f6655656a4e6f541d96881c085ebc9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 314 zcmV-A0mc4_P)Pi42C9NuG@h73x| zZHjz9#PoLPsoW;iC-Gzti3!QDPDnJ1c_CQ1nY>KU_@R@Woqr9l^v;gWoMN{ zba=#egz-gVaS_>(i~$?(2|9iWO`!T{FH4X)do9Yi7db&^l(`}uZ)*k=R5wt1Q~&?~ M07*qoM6N<$f>nBeX8-^I diff --git a/desktop/resources/mobile.png b/desktop/resources/mobile.png deleted file mode 100644 index 0a8e141fab5757f1a726addb827570f36d45baaa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 199 zcmeAS@N?(olHy`uVBq!ia0vp^DnP8t!2%>3LYub%sXk8^$B>F!Z>L@4ZBXEGInOK6 z*_+Ukw@CN|o6#ic1&R|^aNbZm_QJh7-sCLz_fqyfR$_ctrcQO_Q8II5Y-48?n=D!x z{Iq~2G3(Eh8%As^lg_PQBpR}v^{J{tRn1}rR!t8_uAmF@4*!HEtd-1im}Il*wvd|{ yORP%vv@5fI+fACV!6VDp@W%Q`zo;$y=E3LYub%DK}3S$B>F!Z!c`*WKiI7xp@0d z&V-ybP0l+XkKF32g} diff --git a/desktop/resources/network.png b/desktop/resources/network.png deleted file mode 100644 index 801c5fdc51b85ef662d32ac6808e43f76a89d8e5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 387 zcmV-}0et?6P)Nkl`tGOA1;9EALMB#b47{rkqRS2qfIokNL+uc#p8!PQz=E?72wGou%%0TYk@ftt4 h diff --git a/desktop/resources/next.png b/desktop/resources/next.png deleted file mode 100644 index 9bb116be24f2cc07e52a70c6b7d299ba719eff9d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 133 zcmeAS@N?(olHy`uVBq!ia0vp^DnP8t!2%>3LYub%DIZT4$B>F!Z!d4;Wl-Q@cFaGe zaguEVV~!M;3;(2Ujz7#X-y5nloexL^C|FGC-nC4t|J9`qW0^s;>*9wuJ^;;S@O1TaS?83{1OUEwE6)G` diff --git a/desktop/resources/notification.png b/desktop/resources/notification.png deleted file mode 100644 index a0a02e2152b8f026b6493d7f451e6fabba12b030..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 235 zcmVl~8+osX;yrwpafikiBc%5NvW!3DXh@&r5&D`L#eIzJTZ=_955Vtt zBsy1ycMiWS#My~92^pPTs0&r3Fj+#Ap27*&XWt!WXpM?1O7VZuEXz?_a?wq@N~s0T l-pKG4rbph?Oz-$dJOBzi`w-CBUi|<7002ovPDHLkV1n{_VYUDO diff --git a/desktop/resources/one_on_one_chat.png b/desktop/resources/one_on_one_chat.png deleted file mode 100644 index b94487fe60597a873b8d16a613334cee5153bc30..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 347 zcmV-h0i^zkP)gW5Jhhtqz)nh36X#U>Hr*c9e@Ms1PM4O4vK@)fdohcc|iH;w7VZLVdrEYdsfp&*l;O1LU@1LcyI*pgw}N_$wZa->#=EWm t+n!o(A6bUSF`)iFxgP@>OC&nt-KS7k9eBhfZu ut71TRyvg3_Y^$|*Jw+}$AeSB4PrLy_%K+_#&As;k0000|k0wldT1B8Lp3QrfukcwMxryk@zpupiOd2r$l z5BG%0Wz6mcTg==p&+_0+NYXzPSljmDC&QZyY)$M*LZ$-joa@f_JXo^8;=mK1ON&l@ zZPt9VCVdgp%A_9}D-_r#z6>c8eY!XJ&rf3y-9WySNgC`%o?F-@Rc|%-2=U%EUhHz) zsle}betQPrlX-d<|9shMyfvf8ykmOC`kbg;dc8}s=d$($n`S^s61>OSS; ZygQHZPBgaE+6r_tgQu&X%Q~loCIA^|S5g1~ diff --git a/desktop/resources/photo.png b/desktop/resources/photo.png deleted file mode 100644 index 762a6eae62b4e83884c792c0083d9110fc94a6f3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 366 zcmV-!0g?WRP)g13frJc3?P62NABy4A4=cHOS)^G*=6$$Jd}tH!4j{>WLgkYP8TwT@uK` z$Ox#+HjCS4g6QLly!+j?5ia9!!0GpRNatYo%H-A2QX9fF4cRy(j9GOL)Lb4c-~GM z!jfrx0SeVxpePzoLE~)x_gLw4Aj7QRB7ds^@tZtU^Yy_RF^CE?lzNR6OJ;+Rg{D;XP2eSN6{1>%(nZM>^2;PUBq30#l{blz=`d@r2ZtY^Mx+Ax_U;qFB M07*qoM6N<$f+O3W4FCWD diff --git a/desktop/resources/profile.png b/desktop/resources/profile.png deleted file mode 100644 index 9fd106826635b403a8d20d8af8bc6c9f26af3910..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 301 zcmV+|0n+}7P)gW5JiuKNI*g*L;?;P2gL!AfCF%X1SCWP4!ZpyohgsPCewcOvH9Cc&g^XNz3`(| z&=3%WftDf{b3qoT&cW0xOcu(;hdmYpSccds(?HW^x>>J75JC#Z#wYXj8b$=c>OmEP z(60K^OqCww5d^R9zki}>M)MsYSVuW%BY$F3m7bY?3`02={J?_b4;>E zRr&7kqBR0dzWcwjENwLC@{B1-xgBZA@#YRON+E;?MX&1=<*@YO6KjN>Ysz?=)ZFae zX*6chM3?_ekW*xixFd#?}yJFN>2OL00000NkvXXu0mjf^TUN` diff --git a/desktop/resources/public_chat.png b/desktop/resources/public_chat.png deleted file mode 100644 index e1a763907103623a1b0bb4361eb14401d8fcc1b1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 345 zcmV-f0jBA$HfwvQ}$pV5zk0Sf(O@5+ao0%VCK#k?6WHY+D z8M%qOIE#l^rszP?coxdAzaxby@FaaX^X{k5QDV~6$BxIfNsbDYXQ)?d%?{-1*zrV( rdK!OG-04ty{oh4QV%#j)N57^oU?41S-+LF^00000NkvXXu0mjfN0O0G diff --git a/desktop/resources/qr.png b/desktop/resources/qr.png deleted file mode 100644 index 2e03d17323c3f50d24236a1a310e9cb7a92b58bb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 210 zcmeAS@N?(olHy`uVBq!ia0vp^Dj>|k0wldT1B8LpOivfbkcwMxLvHgnDDb?|=sBcj zsB#Hdb+vk>WZc5A2RcU{ zT~1DmSZLO><8aT_%rB=-EXYc$b=hLdm*@3$cI5BtQiX?fCas@jUDEsE?3^7&JN`6G zT&Bpl_@2O;qC)Z9={1hM41dmY{BvguHGaML$+XvKrjX3|tA7PzjY#2{%3EWW1>!vj2;EQ4N1Cw;~4)EZ9(6Asl z^ytySqR4wDQA5su??A8>!iy&&Z#Yu6^HYb`%R<|(+(j{(4Kx(KE%ZvS(9Cg3o=5~5 zf{La;X$43038mdL6zGB-L&S$JL%lRl#C4|hR)!;@j8SpEpMr~sPtl~3>myR{5EWiq z#+CJfh;-7;p)I_KXiTj-Ph`@Qln?UlKaDc1^hr#MD|thg*zRd*4ezl^%#g}CBa6@F zu&K@LWFEG4a;Hx1Z)Yg7d+xs>EYO6~4&}F34B&$s;tSiR%ZV*%7A61y002ovPDHLk FV1kJLhEf0k diff --git a/desktop/resources/remove_contact.png b/desktop/resources/remove_contact.png deleted file mode 100644 index f801fd89f3c24ead80387ff6d38c2b351392c6fd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 304 zcmV-00nh%4P)5q~mfF=8h!Y9)W2ym_txDejG4VfMJZ2x(sM$reDl@1R<2bnD}K$Z^eWl7(Gyf zAavP$-l@?8IRwF}=jU%Ub2L#U@(iUMJ+HRhsVl!4)KN7f2BpNx0a!c22Fb^Ny>Kf8b$GD-@+*U7G4yc*EPx^_2Gs!!p<{g zyv-8xyKlTkcADsNp9y3YnPYXiWEIh6%j4}|C)ERRaPa->RxT?500003LYub%sg0g4jv*Ddk`p9Yuds0O@bYk7 zF?eBjxW4W86$7pmfzX~HiFIz81}p|oj7wB`rWhmc%6>hgq#4o zN!z~j{FZz+`LQXZ%Jw(u1q$XHSS8LSOE`tiS=%mk*&*`E^<=}g9-T!ES0#*$-ZIHd z^iDElD&{}Blk?HMpI5X>Wi-y;oe<(<$kCwY)aA%{V*%$B=_?JUti4h#JVFQ9js`Eb i^IgzqxVWK>f#FC%->b!_;hqgyyl?{p;`t!(|?KF7UBy zCXlpfG%XVG8;FXIk!i6U%{jOZzXF+8cQhRruXrp5jpl((z}_ES?4# znhtf+5tnc$wK~M_W~e&yW@5r%5|*fp(f1_El$_OTs$5|VZXwom?|VU#15hsl4B4&) z;8u9H2<4L$?wNZNd`BjF`lKKe^(-4Mu&B<8S}L}nj%k0P@FCU+)nf`1q_7OMt9`#e zaYs!3?G#*|%I=7iv^eA@Omjpf#I7#4Q6qPLk6BEc)tQXE8IP!TF8&WR8go|sb6qYi qf38;oRT$Z*?s`(W+q1EBwXPD0000HrCmfP_fc9$<1vNCs#x?c{T0_U+%<{c!4k zWEcqu!bFd0gJ>pX^?Fn-reoe<1R>O+R4SWssZcX4s7pC0WV`F+vMOm)?T+y z1tx>p^STp}u*CF=L1PnK5FT}D3)#>%p@voYjKj5{Kw%m2czSF~SR*Q@6IGAmJ1EDg aAJ-cLsHzrrWwi?c0000|k0wldT1B8LpRZkbkkcwN$2@AjE+t`4R z;Z)Db^osKzOI#WD}dE!4v1LrV5TTI+!YIk+e?X?k>M^j{MW?BEcHb~1a=^7F}++{Fwm44=O;-L#6I R#0~TygQu&X%Q~loCICxlV&VV* diff --git a/desktop/resources/send.png b/desktop/resources/send.png deleted file mode 100644 index 565006f41b7f96f8be6024db6c2bb7cba1c608c5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 144 zcmeAS@N?(olHy`uVBq!ia0vp^DnP8t!2%>3LYub%sc=sh$B>F!Z!cN%F(`1j9NfF} zjtn<?X#x|832@AYwXMXUM9vc0|_Rmv@NN sf!I5KD(GGw?TDR diff --git a/desktop/resources/share.png b/desktop/resources/share.png deleted file mode 100644 index f70ab8f28b62d651d2c56904d344e1165692b4cd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 202 zcmeAS@N?(olHy`uVBq!ia0vp^Dj>|k0wldT1B8LpL{AsTkcwMxuk>;@C>tyx!5^6esQ+2Nm$}8cE(nsshRm};;fYiOacvqedqSXJk!eB zf8s$#>3PL_>kd07E;nM#Ie}oVXH` z-DlW!Wly=AZ8+M~dQmR-z&`u?{EV;9oG{v`}inO`ahTh1OZgF=~;|TJyF#Ihfp#k|1!T#pb!YnZ0TlDA|y!GSDrbKmI*yP_Qo~DqHbL3*$LBpIEQi&twib$ zjvE=9&!AJ;y#P^5d^2R*JGOR3{bs*we2(+dmS3cMH<-)}0y>*OS!FYZjIWNp*gzoI zP(iGCWrwMFTpW=f);SdFIeM0iHQ9zjHg&`X7j>NCEA1riAP`j6Ez=pMH~-p3noLXO zlj9QVz*@lsblTxG;*or+b{G%{rsx-qZf?nLpt|LQp_mmr4axtqpFy>SckwsI;}4rV VI=VR!Onv|W002ovPDHLkV1nmnpiBS& diff --git a/desktop/resources/text.png b/desktop/resources/text.png deleted file mode 100644 index cab051f138267c367553d5566743d7e8077801e6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 132 zcmeAS@N?(olHy`uVBq!ia0vp^DnP8t!2%>3LYub%DQ`~~$B>F!Z>QYmWH8`hmObiQ z8tlGNS*13B>+IA24lTyQj|vY-=~x5`FZNjBx%aI|9_O<;D;`{bwduu;%p_A~L;YJ` g?B_ZzDeg;Q(D&_ZKO*{k9?)0@Pgg&ebxsLQ01F~5q5uE@ diff --git a/desktop/resources/tiny_arrow_down.png b/desktop/resources/tiny_arrow_down.png deleted file mode 100644 index 51ee3d99f816cf6c2a83c297e9a1b67eb9de1ef5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 179 zcmeAS@N?(olHy`uVBq!ia0vp^53mDH{QsVYww$B>F!$q5oh3ATr8*ccy8 zWjFYf{^R@uhdpgAfxOJC4o+|sbZ%zI>s3hoF3A&UVqvfcC@s)`Uh%&q*F&jK3za_Z zc$1OvgFUQ3&gWgbR{nwK-ApUQSacMg6f(C}7aV=x$sNVIV%l#Wt|P~qnGV;qeLbQr cpT)p%j`(F4GMV9U<%;F63$2|S zAIgPHR%%v=aki`5u55D9H%AQ?UO z-Dg1+C~1{W!(61ObqBU^k8A`}$#Wr74Ua0i3Ed@iizW-|rma&px@bwo!c+`Sv&7x} x$JOY*d~L64mj@oure&^34s-rQZ+rqj*cZs6EpN@vH3k3x002ovPDHLkV1jsBWNQEb diff --git a/desktop/resources/tiny_edit.png b/desktop/resources/tiny_edit.png deleted file mode 100644 index 60851f1aa88d2a265964f2aaa803d450542e98f9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 168 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM0wlfaz7_+id`}n0kcwN$2@(|x4s4kJ(59K` z9=RFp9AxX8}Qh0P7UDn zIB@V4gG>XnRwADoBd3RhlS&9v_3KL$C)wQFc3$`U)hCmltz)gTk8&w_e_1_8k|ljA zyGl;PgP(6^{&TqUS?j9@vl5g3h1ALAKBhYb^M0+ObE&thkk~LG@UuiE>0bA^ix2xKot4Hu! f)xN*K|ER2jcBhA-j>3DO%Naaf{an^LB{Ts5Hak|K diff --git a/desktop/resources/tiny_lock.png b/desktop/resources/tiny_lock.png deleted file mode 100644 index 842deab5a33e6ce708da1399ad5f38934b5fecd8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 179 zcmeAS@N?(olHy`uVBq!ia0vp^53mDH{QsVYww$B>F!$q5qc4m2vxU)XrC z(c&l*&u7Vh&JSzY7!OJPTIhAX`DLBcDbWL`coy(6ZxsEIt&#BK{07Ezx6gl=zmQ>n z8{3BBgapRJ^=)m9S1z3YASbtAg+O+M>Vp8D#(y_to2AWo{COEGOphe@x7T|JEc{`6 exaHy0yNvwSOYVO05|RbFg2B_(&t;ucLK6T1P(>>M diff --git a/desktop/resources/tiny_lock_broken.png b/desktop/resources/tiny_lock_broken.png deleted file mode 100644 index c1a89d012c6c73553641177d09baccbcc1ce0726..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 175 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM0wlfaz7_+iGEW!BkcwN$2@>lLG%C(t*m$tf z;wTf(XUTug4{O*M4@v!6=ykpMWu4P0(F3P=7Vt4|6#bB`k?`aE2F7!@&wrS|utDU! zK9GCCV1m>y$$N*HMMRT$SF^};DPE8dc4m&_@di^F6W`JIl4?A!?r<}F XI6tpzrnPh$&;<;hu6{1-oD!MlZ8WiU%&Ub8# zc*@4}Uh<#upY)3J2@Z4GJ|{d?*fHON_y0tNzy$l4pOsQS8yg)NWxSY7x|^$3=$|t_ zBK&y9Z;gc|^8>yt)N0Q-_;@-C&r^jP4n8u<&Nd(KI;`Sd%wWyHFv}}gd#(=W8=$oe Mp00i_>zopr06U#Js{jB1 diff --git a/desktop/resources/tiny_pending.png b/desktop/resources/tiny_pending.png deleted file mode 100644 index 912c8ac449537a3eae122d9e6f6ee5b450066216..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 181 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM0wlfaz7_+i8c!F;kcwN$2@ zQzll#@Z`KW^;+_u@t^b^=M@;9wHlsDnQ>BpEp4;m3nK|*3FD51Sv&ZzeVD(HA?KHm z2Fpz)p0K<#2@R_r+J-pWw6PhkV3Q5uWerf*Ot9#j>Bzpuk?XEFm&UYH1}79gR!Gip c4?Zfu&d?Pkv*CSh3&>Fnp00i_>zopr0N^S-jQ{`u diff --git a/desktop/resources/tiny_public.png b/desktop/resources/tiny_public.png deleted file mode 100644 index b763156f1b8644c2f62cbc779ef9099de247e3df..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 212 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM0wlfaz7_+i*`6+rAr-ftPKp+6G2n6SXHf}Z z64F}8cffIi0H?(YAlFG%fsym3{Ipd0*i+Zf>AVa#{{H2hFY|Q`fA?ax2!l4|z-D(3 zo`%E>&lfKwPu{3Xk}Pm}<{QEIV)l>c4arv1ANH}j1<5|>Y`N>}@xpw;agW)P>wmp` zx4C)a0|tSfJ>R02Z1I*%cAL53((3gS<%=)fy33=n$@@clDf2qk3LlmR)ww`tGI+ZB KxvX diff --git a/desktop/resources/tiny_settings.png b/desktop/resources/tiny_settings.png deleted file mode 100644 index 52d1b243628bb4d0cc4872a2d77456594c47f3a9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 199 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM0wlfaz7_+iK2I0NkcwN$2@-V*jSCrhk39}v zci@9Ox5aG-ZA>Z?>uT=lHguaQ zbXqOQawy|FRK<8F?!JG(;o1;hJ`KBu#u}AC){=N1hmWi$E`Rk<`fTXz+3?WzT*BV| wOgl-z_IIT$HvQJRk_lHAI2?UqYr@E|dhLdtrhC@w0bR!6>FVdQ&MBb@08D~MCIA2c diff --git a/desktop/resources/tiny_tribute_to_talk.png b/desktop/resources/tiny_tribute_to_talk.png deleted file mode 100644 index a4f970e105d374f69f1b1a63751dc0f1ca89744e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 249 zcmV?Y-i$4<9`f92mD=O| z0AA*0au{vuXJ{jlh(sbw^KTtM5QKuBKG^}pJgr7{4+thCb^qi6ZEX$k^nlvX+awAP zD9k*7(S*>6h9A3&@Wrk?_u{>rrU=O<=$7>XOAE+3tppMI00000NkvXXu0mjfaGGi# diff --git a/desktop/resources/tribute_to_talk.png b/desktop/resources/tribute_to_talk.png deleted file mode 100644 index 8bb9575d92dac9bef4b03e4c4380859b195aebdf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 404 zcmV;F0c-w=P)uw#M8_&&r6Al(}*hF;890dm3~J(ww8*x{h%{ov>pZBq*~$5%DAn+ThG)Oe^$ z{CrE5kpr&jzLS$rW*kJcr-k6)Zq9m%B2jK7HmZ`tC0dm{OVkI$gW}J9hFEh=qv&B@ zuY12(gVH3sp2lY*<(P&%xw8HsNN3H6Q@3s%xws>iiFU-{_J61NIyB>BoCL`&uldS)2b$U*gI4U|^UTAUSI zEB@w!VbiJDw0R;27&w^1h?_*u&`}YUWs8}71Eekk8NUbVSYa=IAee0tFhJjan!Yv8 yd-l$U{*UKtC&X2LRf2MKA|A1IJ#-85C)YQrjC93GmtpAu00003LYub%sT5Ba$B>F!Z>KnNF&J_%e=h#p z_}6j%E4goX%z`4tOm?1Hpu(|5%j3ZWo(YGG1EN?{C-!{X=HXV|?iUgLUQ1o(*_Hx^ z#rqFPG#;!>3z}i>o-}*w)5ni`XFn4CYuu^vWP!+9vGweeFYnzfts9U8w2#5l)z4*} HQ$iB}2+TWV diff --git a/desktop/resources/user_profile.png b/desktop/resources/user_profile.png deleted file mode 100644 index 2035b0066316a93edd29c356a9653226b9bc14da..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 395 zcmV;60d)R}P)=~*ifZD@kE!GXC%aCOQ*y{0ZIDEm(7M}LWbz(jWX0O5>)#QT>BVCvXRaCDo*QBD* zZPc1+%m4BjAyiI;zX1wg6#mw*M83sigwUl1YW6(|Sc_>-1auqTq(oF3>EQ|fgUHY6 zEt02n-rBCDIho-jd-th+0wt7TvqV;?PL&0D&oL)7v$&P+sC_&*Ml>Uf_$0-B>5>MT zuq)&3)Q1aH8R?p=5ha8vRgaRIj#f#Z%&$Tu(|*M diff --git a/desktop/resources/user_profile_1.png b/desktop/resources/user_profile_1.png deleted file mode 100644 index 2035b0066316a93edd29c356a9653226b9bc14da..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 395 zcmV;60d)R}P)=~*ifZD@kE!GXC%aCOQ*y{0ZIDEm(7M}LWbz(jWX0O5>)#QT>BVCvXRaCDo*QBD* zZPc1+%m4BjAyiI;zX1wg6#mw*M83sigwUl1YW6(|Sc_>-1auqTq(oF3>EQ|fgUHY6 zEt02n-rBCDIho-jd-th+0wt7TvqV;?PL&0D&oL)7v$&P+sC_&*Ml>Uf_$0-B>5>MT zuq)&3)Q1aH8R?p=5ha8vRgaRIj#f#Z%&$Tu(|*M diff --git a/desktop/resources/username.png b/desktop/resources/username.png deleted file mode 100644 index 819ea7d3e39672d4d04a2ccdf918cfaeb9c44eed..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 454 zcmV;%0XhDOP)v+l+dOOc-;*T8z0H($!UIopS1=W z79KMeESTY7@wfvs5Jdh23{dBRUKN-P?s*PqOd&H2G;xUOhV*Ux4)jhZYw>%R;NIsL zSu_Va+V9LdaxuHW78-5lX~?seffP}<4B8b^cl2vXO_BXTAq@e$;^yAO`w5_-gN+0g zlH0~`!2%DL-ewlAYrG!BDcV%XuNnBtBmx&VZJAD56t#iRpiHJMnPVqRmAX+GlqLZ( zi)3RuUM8LnG&|@ycZ%ng|0NlW7py zG3XsxM{oUMi3a(mn_cbl#&K|Is`7?^?fOHwovoci(at7uZ>iB1c{H!QMmA(T+`9NzMdS0Y=vpo{ViJ|pQGKgjoSJ^R+tbFU=DnC3LYub%seVrv$B>F!$q5py&axH;Z_+Ey zf0(baWBx&g>4qO&q#7GO-slNT*x|p)@x3IA0k0Q>_ucdW1ucPuYibEzrVXl69en8W(789$lUni>;6PECxR=QaZz_I%aO!frp{x3 z4u@TEYG6EEw}|J*@eh58^38`c{@QXaU|=}7&S&0j4jXl#(-=Hm{an^LB{Ts5h(Aa; diff --git a/desktop/resources/warning.png b/desktop/resources/warning.png deleted file mode 100644 index 05f8a6db8a1b8b27134e33bba5c9fa047e352113..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 381 zcmV-@0fPRCP)!- zYW&fXF^pzv5L$hKx9yX&syE1^26_eR5iwq%9hjE`mwxVy>on)|+Gb9d<0m zQTrOm1-n;Pj!DD+-c}tEOkk8-5A(4!rKQm9+x}u-;6tA;0+#^`aE1J3Y=B@*KM~uT b(EqXrSot7f3B8YQ00000NkvXXu0mjfAOxdj diff --git a/desktop/run-app.bat.in b/desktop/run-app.bat.in deleted file mode 100644 index f4dc903d55..0000000000 --- a/desktop/run-app.bat.in +++ /dev/null @@ -1,11 +0,0 @@ -@rem Copyright (c) 2017-present, Status Research and Development GmbH. -@rem All rights reserved. -@rem -@rem This source code is licensed under the BSD-style license found in the -@rem LICENSE file in the root directory of this source tree. An additional grant -@rem of patent rights can be found in the PATENTS file in the same directory. - - -@rem Run app locally -@CMAKE_BINARY_DIR@/bin/@APP_NAME@ - diff --git a/desktop/run-app.sh.in b/desktop/run-app.sh.in deleted file mode 100755 index 02bae1ad28..0000000000 --- a/desktop/run-app.sh.in +++ /dev/null @@ -1,74 +0,0 @@ -#!/usr/bin/env bash - -# Copyright (C) 2016, Canonical Ltd. -# All rights reserved. - -# This source code is licensed under the BSD-style license found in the -# LICENSE file in the root directory of this source tree. An additional grant -# of patent rights can be found in the PATENTS file in the same directory. - -args="" -on_device=0 -plugins_path="" -asset_path="share" -executor="" - -# Parse args -for arg in "$@" -do - IFS="=" read -a parts <<< "$arg" - if [[ $parts == "--on-device" ]]; then - on_device=1 - elif [[ $parts == "--plugins-path" ]]; then - plugins_path=${parts[1]} - args=$args" --plugins-path=./plugins" - elif [[ $parts == "--asset-path" ]]; then - asset_path=${parts[1]} - elif [[ $parts == "--executor" ]]; then - if [[ $on_device == 1 ]]; then - # Force net executor for now - executor="ReactNetExecutor" - else - executor=${parts[1]} - fi - args=$args" --executor=$executor" - else - args=$args" $parts" - fi -done - -# Handle defaults -if [[ -z "$executor" ]]; then - if [[ $on_device == 1 ]]; then - executor="ReactNetExecutor" - args=$args" --executor=ReactNetExecutor" - fi - - # The RN application selects pipe executor by default -fi - -# For net case, try and run executor; it is probably OK if this fails - it's -# just running elsewhere -if [[ "$executor" == "ReactNetExecutor" ]]; then - (node @CMAKE_BINARY_DIR@/bin/ubuntu-server.js 2>&1 > /dev/null) & -fi - -if [[ $on_device == 1 ]]; then - app_path="/home/phablet/@APP_NAME@" - -# Push binaries - adb push @CMAKE_BINARY_DIR@/bin/@APP_NAME@ "$app_path/@APP_NAME@" - [ -d "$plugins_path" ] && adb push "$plugins_path" "$app_path/plugins/" - [ -d "$asset_path" ] && adb push "$asset_path" "$app_path/share/" -# adb reverse --no-rebind tcp:8081 tcp:808 - -# Run app on device - react_host=`hostname -I` - - adb shell "cd $app_path && REACT_SERVER_HOST=$react_host ./@APP_NAME@ --host $react_host $args -- --desktop_file_hint=/usr/share/applications/webbrowser-app.desktop" -else -# Run app locally - # Note: Needed to add QT_XCB_GL_INTEGRATION=none when migrating to Nix, since running the app in debug mode inside Nix shell was failing at run time with "qt.glx: qglx_findConfig: Failed to finding matching FBConfig (1 1 1 0)\nCould not initialize GLX" - QT_XCB_GL_INTEGRATION=none @CMAKE_BINARY_DIR@/bin/@APP_NAME@ $args -fi - diff --git a/fiddle/src/status_im/react_native/js_dependencies.cljs b/fiddle/src/status_im/react_native/js_dependencies.cljs index 396d9f3e8f..ec4e430d4e 100644 --- a/fiddle/src/status_im/react_native/js_dependencies.cljs +++ b/fiddle/src/status_im/react_native/js_dependencies.cljs @@ -25,9 +25,6 @@ (def svg (fn [] #js {:default #js {}})) (def status-keycard (fn [] #js {:default #js {}})) -(def desktop-linking #js {:addEventListener (fn [])}) -(def desktop-shortcuts #js {:addEventListener (fn [])}) - (def snoopy (fn [] #js {:default #js {}})) (def snoopy-filter (fn [] #js {:default #js {}})) (def snoopy-bars (fn [] #js {:default #js {}})) @@ -42,7 +39,5 @@ (def keychain (fn [] #js {:setGenericPassword (constantly (.resolve js/Promise true))})) (def react-navigation #js {:NavigationActions #js {}}) -(def desktop-menu #js {}) -(def desktop-config #js {}) (def react-native-mail (fn [] #js {:mail #js {}})) (def react-native-navigation-twopane #js {}) diff --git a/fiddle/src/status_im/ui/components/react.cljs b/fiddle/src/status_im/ui/components/react.cljs index 5acae7d96b..bfeda454ac 100644 --- a/fiddle/src/status_im/ui/components/react.cljs +++ b/fiddle/src/status_im/ui/components/react.cljs @@ -92,7 +92,6 @@ (def dimensions nil) (def keyboard nil) (def linking nil) -(def desktop-notification nil) (def max-font-size-multiplier 1.25) diff --git a/mobile/js_files/metro.config.js b/metro.config.js similarity index 100% rename from mobile/js_files/metro.config.js rename to metro.config.js diff --git a/modules/react-native-desktop-config/desktop/CMakeLists.txt b/modules/react-native-desktop-config/desktop/CMakeLists.txt deleted file mode 100644 index cd4aa2e5c4..0000000000 --- a/modules/react-native-desktop-config/desktop/CMakeLists.txt +++ /dev/null @@ -1,7 +0,0 @@ -set(CMAKE_INCLUDE_CURRENT_DIR ON) - -set(REACT_NATIVE_DESKTOP_EXTERNAL_MODULES_TYPE_NAMES ${REACT_NATIVE_DESKTOP_EXTERNAL_MODULES_TYPE_NAMES} - \"DesktopConfig\" PARENT_SCOPE) - -set(REACT_NATIVE_DESKTOP_EXTERNAL_MODULES_SRC ${REACT_NATIVE_DESKTOP_EXTERNAL_MODULES_SRC} - ${CMAKE_CURRENT_SOURCE_DIR}/desktopconfig.cpp PARENT_SCOPE) diff --git a/modules/react-native-desktop-config/desktop/desktopconfig.cpp b/modules/react-native-desktop-config/desktop/desktopconfig.cpp deleted file mode 100644 index 392f851200..0000000000 --- a/modules/react-native-desktop-config/desktop/desktopconfig.cpp +++ /dev/null @@ -1,46 +0,0 @@ -#include "desktopconfig.h" -#include "bridge.h" - -#include -#include -#include "../../../desktop/appconfig.h" - -Q_LOGGING_CATEGORY(DESKTOPCONFIG, "DesktopConfig") - -namespace { -struct RegisterQMLMetaType { - RegisterQMLMetaType() { qRegisterMetaType(); } -} registerMetaType; -} // namespace - - -DesktopConfig::DesktopConfig(QObject *parent) - : QObject(parent) { -} - -DesktopConfig::~DesktopConfig() { -} - -void DesktopConfig::setBridge(Bridge *bridge) { - this->bridge = bridge; -} - -QString DesktopConfig::moduleName() { return "DesktopConfigManager"; } - -QList DesktopConfig::methodsToExport() { - return QList{}; -} - -QVariantMap DesktopConfig::constantsToExport() { return QVariantMap(); } - -void DesktopConfig::getValue(const QString& name, double callback) { - //qCDebug(DESKTOPCONFIG) << "### getValue" << name; - bridge->invokePromiseCallback(callback, QVariantList{AppConfig::inst().getValue(name)}); -} - -void DesktopConfig::setValue(const QString& name, const QVariant& value) { - //qCDebug(DESKTOPCONFIG) << "### setValue" << name << ": " << value; - AppConfig::inst().setValue(name, value); -} - - diff --git a/modules/react-native-desktop-config/desktop/desktopconfig.h b/modules/react-native-desktop-config/desktop/desktopconfig.h deleted file mode 100644 index e027076956..0000000000 --- a/modules/react-native-desktop-config/desktop/desktopconfig.h +++ /dev/null @@ -1,32 +0,0 @@ -#ifndef DESKTOPCONFIG_H -#define DESKTOPCONFIG_H - -#include "moduleinterface.h" -#include -#include - -Q_DECLARE_LOGGING_CATEGORY(CONFIG) - -class Bridge; -class DesktopConfig : public QObject, public ModuleInterface { - Q_OBJECT - Q_INTERFACES(ModuleInterface) - -public: - Q_INVOKABLE DesktopConfig(QObject* parent = 0); - virtual ~DesktopConfig(); - - void setBridge(Bridge* bridge) override; - - QString moduleName() override; - QList methodsToExport() override; - QVariantMap constantsToExport() override; - - Q_INVOKABLE void getValue(const QString& name, double callback); - Q_INVOKABLE void setValue(const QString& name, const QVariant& value); - -private: - Bridge* bridge = nullptr; -}; - -#endif // DESKTOPCONFIG_H diff --git a/modules/react-native-desktop-config/index.js b/modules/react-native-desktop-config/index.js deleted file mode 100644 index 90ed0275a3..0000000000 --- a/modules/react-native-desktop-config/index.js +++ /dev/null @@ -1,17 +0,0 @@ -'use strict'; - -const NativeModules = require('react-native').NativeModules; - -class DesktopConfig { - - static getValue(name, callbackFn) { - NativeModules.DesktopConfigManager.getValue(name, callbackFn); - } - - static setValue(name, value) { - NativeModules.DesktopConfigManager.setValue(name, value); - - } -} - -module.exports = DesktopConfig; diff --git a/modules/react-native-desktop-config/package.json b/modules/react-native-desktop-config/package.json deleted file mode 100644 index 17f2bd9e9a..0000000000 --- a/modules/react-native-desktop-config/package.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "private": true, - "nativePackage": true, - "name": "react-native-desktop-config", - "version": "1.0.0", - "description": "Configuration backend for Desktop", - "main": "index.js", - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" - }, - "author": "", - "license": "" -} diff --git a/modules/react-native-desktop-gesture-handler/desktop/CMakeLists.txt b/modules/react-native-desktop-gesture-handler/desktop/CMakeLists.txt deleted file mode 100644 index 2524fde7ff..0000000000 --- a/modules/react-native-desktop-gesture-handler/desktop/CMakeLists.txt +++ /dev/null @@ -1,9 +0,0 @@ -set(CMAKE_INCLUDE_CURRENT_DIR ON) - -set(REACT_NATIVE_DESKTOP_EXTERNAL_MODULES_TYPE_NAMES ${REACT_NATIVE_DESKTOP_EXTERNAL_MODULES_TYPE_NAMES} - \"GestureHandlerModule\" PARENT_SCOPE) - -set(REACT_NATIVE_DESKTOP_EXTERNAL_MODULES_SRC ${REACT_NATIVE_DESKTOP_EXTERNAL_MODULES_SRC} - ${CMAKE_CURRENT_SOURCE_DIR}/gesturehandlermodule.cpp PARENT_SCOPE) - -include(${CMAKE_ROOT}/Modules/ExternalProject.cmake) diff --git a/modules/react-native-desktop-gesture-handler/desktop/gesturehandlermodule.cpp b/modules/react-native-desktop-gesture-handler/desktop/gesturehandlermodule.cpp deleted file mode 100644 index a594a2dace..0000000000 --- a/modules/react-native-desktop-gesture-handler/desktop/gesturehandlermodule.cpp +++ /dev/null @@ -1,71 +0,0 @@ -/** - * Copyright (c) 2017-present, Status Research and Development GmbH. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - */ - -#include "gesturehandlermodule.h" -#include "bridge.h" -#include "eventdispatcher.h" - -#include -#include -#include - -namespace { -struct RegisterQMLMetaType { - RegisterQMLMetaType() { qRegisterMetaType(); } -} registerMetaType; -} // namespace - - -class GestureHandlerModulePrivate { -public: - Bridge* bridge = nullptr; -}; - -GestureHandlerModule::GestureHandlerModule(QObject* parent) : QObject(parent), d_ptr(new GestureHandlerModulePrivate) {} - -GestureHandlerModule::~GestureHandlerModule() {} - -void GestureHandlerModule::setBridge(Bridge* bridge) { - Q_D(GestureHandlerModule); - d->bridge = bridge; -} - -QString GestureHandlerModule::moduleName() { - return "RNGestureHandlerModule"; -} - -QList GestureHandlerModule::methodsToExport() { - return QList{}; -} - -QVariantMap GestureHandlerModule::constantsToExport() { - Q_D(GestureHandlerModule); - - QVariantMap directionValues{{"RIGHT", 1}, {"LEFT", 2}, {"UP", 4}, {"DOWN", 8}}; - - // QRect screenGeometry = screen->geometry(); - // QVariantMap screenValues{{"fontScale", 8}, - // {"width", screenGeometry.width()}, - // {"height", screenGeometry.height()}, - // {"scale", screen->devicePixelRatio()}}; - - // QVariantMap values{{"screen", screenValues}, {"window", windowValues}}; - - return QVariantMap{{"Direction", directionValues}}; -} - -void GestureHandlerModule::handleSetJSResponder(int viewTag, void* blockNativeResponder) {} - -void GestureHandlerModule::handleClearJSResponder() {} - -void GestureHandlerModule::createGestureHandler(const QString& handlerName, int handlerTag, void* config) {} -void GestureHandlerModule::attachGestureHandler(int handlerTag, int viewTag) {} -void GestureHandlerModule::updateGestureHandler(int handlerTag, void* config) {} -void GestureHandlerModule::dropGestureHandler(int handlerTag) {} diff --git a/modules/react-native-desktop-gesture-handler/desktop/gesturehandlermodule.h b/modules/react-native-desktop-gesture-handler/desktop/gesturehandlermodule.h deleted file mode 100644 index 0d0d2c32a2..0000000000 --- a/modules/react-native-desktop-gesture-handler/desktop/gesturehandlermodule.h +++ /dev/null @@ -1,47 +0,0 @@ -/** - * Copyright (c) 2017-present, Status Research and Development GmbH. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - */ - -#ifndef GESTUREHANDLER_H -#define GESTUREHANDLER_H - -#include "moduleinterface.h" - -#include - -class GestureHandlerModulePrivate; -class GestureHandlerModule : public QObject, public ModuleInterface { - Q_OBJECT - Q_INTERFACES(ModuleInterface) - - Q_DECLARE_PRIVATE(GestureHandlerModule) - -public: - Q_INVOKABLE GestureHandlerModule(QObject* parent = 0); - ~GestureHandlerModule(); - - void setBridge(Bridge* bridge) override; - - QString moduleName() override; - QList methodsToExport() override; - QVariantMap constantsToExport() override; - - Q_INVOKABLE void handleSetJSResponder(int viewTag, void* blockNativeResponder); - Q_INVOKABLE void handleClearJSResponder(); - Q_INVOKABLE void createGestureHandler(const QString& handlerName, int handlerTag, void* config); - Q_INVOKABLE void attachGestureHandler(int handlerTag, int viewTag); - Q_INVOKABLE void updateGestureHandler(int handlerTag, void* config); - Q_INVOKABLE void dropGestureHandler(int handlerTag); - - -private: - QScopedPointer d_ptr; -}; - -#endif // GESTUREHANDLER_H diff --git a/modules/react-native-desktop-gesture-handler/index.js b/modules/react-native-desktop-gesture-handler/index.js deleted file mode 100644 index 82276071aa..0000000000 --- a/modules/react-native-desktop-gesture-handler/index.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -var RNGestureHandlerModule = require('react-native').NativeModules.RNGestureHandlerModule; - -module.exports = RNGestureHandlerModule; diff --git a/modules/react-native-desktop-gesture-handler/package.json b/modules/react-native-desktop-gesture-handler/package.json deleted file mode 100644 index 11d321c131..0000000000 --- a/modules/react-native-desktop-gesture-handler/package.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "private": true, - "nativePackage": true, - "name": "react-native-desktop-gesture-handler", - "version": "1.0.0", - "description": "Mock for react-native-gesture-handler package", - "main": "index.js", - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" - }, - "author": "", - "license": "" -} diff --git a/modules/react-native-desktop-linking/desktop/CMakeLists.txt b/modules/react-native-desktop-linking/desktop/CMakeLists.txt deleted file mode 100644 index 1d917eb236..0000000000 --- a/modules/react-native-desktop-linking/desktop/CMakeLists.txt +++ /dev/null @@ -1,9 +0,0 @@ -set(CMAKE_INCLUDE_CURRENT_DIR ON) - -set(REACT_NATIVE_DESKTOP_EXTERNAL_MODULES_TYPE_NAMES ${REACT_NATIVE_DESKTOP_EXTERNAL_MODULES_TYPE_NAMES} - \"DesktopLinking\" PARENT_SCOPE) - -set(REACT_NATIVE_DESKTOP_EXTERNAL_MODULES_SRC ${REACT_NATIVE_DESKTOP_EXTERNAL_MODULES_SRC} - ${CMAKE_CURRENT_SOURCE_DIR}/desktoplinking.cpp PARENT_SCOPE) - -include(${CMAKE_ROOT}/Modules/ExternalProject.cmake) \ No newline at end of file diff --git a/modules/react-native-desktop-linking/desktop/desktoplinking.cpp b/modules/react-native-desktop-linking/desktop/desktoplinking.cpp deleted file mode 100644 index 4a64442728..0000000000 --- a/modules/react-native-desktop-linking/desktop/desktoplinking.cpp +++ /dev/null @@ -1,74 +0,0 @@ -#include "desktoplinking.h" -#include "bridge.h" -#include "eventdispatcher.h" - -#include -#include -#include -#include -#include - -Q_LOGGING_CATEGORY(LINKING, "RCTLinking") - -namespace { -struct RegisterQMLMetaType { - RegisterQMLMetaType() { qRegisterMetaType(); } -} registerMetaType; -} // namespace - -class DesktopLinkingPrivate { -public: - Bridge *bridge = nullptr; -}; - -DesktopLinking::DesktopLinking(QObject *parent) - : QObject(parent), d_ptr(new DesktopLinkingPrivate) { - - QCoreApplication::instance()->installEventFilter(this); - connect(this, &DesktopLinking::urlOpened, this, &DesktopLinking::handleURL); -} - -DesktopLinking::~DesktopLinking() { -} - -void DesktopLinking::setBridge(Bridge *bridge) { - Q_D(DesktopLinking); - d->bridge = bridge; -} - -QString DesktopLinking::moduleName() { return "DesktopLinking"; } - -QList DesktopLinking::methodsToExport() { - return QList{}; -} - -QVariantMap DesktopLinking::constantsToExport() { return QVariantMap(); } - -void DesktopLinking::handleURL(const QString url) { - Q_D(DesktopLinking); - qCDebug(LINKING) << "::handleURL - path:" << url; - d->bridge->eventDispatcher()->sendDeviceEvent("urlOpened", QVariantMap{{"url", url}}); -} - -bool DesktopLinking::eventFilter(QObject* obj, QEvent* event) { - if (event->type() == QEvent::FileOpen) - { - QFileOpenEvent* fileEvent = static_cast(event); - if (!fileEvent->url().isEmpty()) - { - auto m_lastUrl = fileEvent->url().toString(); - emit urlOpened(m_lastUrl); - } - else if (!fileEvent->file().isEmpty()) - { - emit fileOpened(fileEvent->file()); - } - - return false; - } - else - { - // standard event processing - return QObject::eventFilter(obj, event); - } -} \ No newline at end of file diff --git a/modules/react-native-desktop-linking/desktop/desktoplinking.h b/modules/react-native-desktop-linking/desktop/desktoplinking.h deleted file mode 100644 index 461e792efe..0000000000 --- a/modules/react-native-desktop-linking/desktop/desktoplinking.h +++ /dev/null @@ -1,41 +0,0 @@ -#ifndef DESKTOPLINKING_H -#define DESKTOPLINKING_H - -#include "moduleinterface.h" - -#include -#include - -Q_DECLARE_LOGGING_CATEGORY(LINKING) - -class DesktopLinkingPrivate; -class DesktopLinking : public QObject, public ModuleInterface { - Q_OBJECT - Q_INTERFACES(ModuleInterface) - - Q_DECLARE_PRIVATE(DesktopLinking) - -public: - Q_INVOKABLE DesktopLinking(QObject* parent = 0); - ~DesktopLinking(); - - void setBridge(Bridge* bridge) override; - - QString moduleName() override; - QList methodsToExport() override; - QVariantMap constantsToExport() override; - -signals: - void urlOpened(QString path); - void fileOpened(QString path); - -public slots: - void handleURL(const QString url); - -private: - QScopedPointer d_ptr; - bool eventFilter(QObject* obj, QEvent* event) override; - -}; - -#endif // DESKTOPLINKING_H diff --git a/modules/react-native-desktop-linking/index.js b/modules/react-native-desktop-linking/index.js deleted file mode 100644 index 6e2dd3735c..0000000000 --- a/modules/react-native-desktop-linking/index.js +++ /dev/null @@ -1,4 +0,0 @@ -'use strict'; - -const NativeModules = require('NativeModules'); -module.exports = NativeModules.DesktopLinking; \ No newline at end of file diff --git a/modules/react-native-desktop-linking/package.json b/modules/react-native-desktop-linking/package.json deleted file mode 100644 index dbc4fcdf72..0000000000 --- a/modules/react-native-desktop-linking/package.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "private": true, - "nativePackage": true, - "name": "react-native-desktop-linking", - "version": "1.0.0", - "description": "Handle status-im:// links", - "main": "index.js", - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" - }, - "author": "", - "license": "" -} \ No newline at end of file diff --git a/modules/react-native-desktop-menu/desktop/CMakeLists.txt b/modules/react-native-desktop-menu/desktop/CMakeLists.txt deleted file mode 100644 index f031325742..0000000000 --- a/modules/react-native-desktop-menu/desktop/CMakeLists.txt +++ /dev/null @@ -1,9 +0,0 @@ -set(CMAKE_INCLUDE_CURRENT_DIR ON) - -set(REACT_NATIVE_DESKTOP_EXTERNAL_MODULES_TYPE_NAMES ${REACT_NATIVE_DESKTOP_EXTERNAL_MODULES_TYPE_NAMES} - \"DesktopMenu\" PARENT_SCOPE) - -set(REACT_NATIVE_DESKTOP_EXTERNAL_MODULES_SRC ${REACT_NATIVE_DESKTOP_EXTERNAL_MODULES_SRC} - ${CMAKE_CURRENT_SOURCE_DIR}/desktopmenu.cpp PARENT_SCOPE) - -include(${CMAKE_ROOT}/Modules/ExternalProject.cmake) diff --git a/modules/react-native-desktop-menu/desktop/desktopmenu.cpp b/modules/react-native-desktop-menu/desktop/desktopmenu.cpp deleted file mode 100644 index e0c99c029d..0000000000 --- a/modules/react-native-desktop-menu/desktop/desktopmenu.cpp +++ /dev/null @@ -1,64 +0,0 @@ -#include "desktopmenu.h" -#include "bridge.h" - -#include -#include -#include -#include - -Q_LOGGING_CATEGORY(DESKTOPMENU, "DesktopMenu") - -namespace { -struct RegisterQMLMetaType { - RegisterQMLMetaType() { qRegisterMetaType(); } -} registerMetaType; -} // namespace - -class DesktopMenuPrivate { -public: - Bridge *bridge = nullptr; - void createMenu(const QStringList& items, double callback); -private: - void onTriggered(QAction* action); -}; - -void DesktopMenuPrivate::createMenu(const QStringList& items, double callback) { - QMenu* menu = new QMenu(); - for (const QString& name : items) { - menu->addAction(name); - } - QObject::connect(menu, &QMenu::triggered, [=](QAction* action) { - bridge->invokePromiseCallback(callback, QVariantList{action->text()}); - }); - QObject::connect(menu, &QMenu::triggered, menu, &QMenu::deleteLater); - menu->popup(QCursor::pos()); -} - -DesktopMenu::DesktopMenu(QObject *parent) - : QObject(parent), d_ptr(new DesktopMenuPrivate) { -} - -DesktopMenu::~DesktopMenu() { -} - -void DesktopMenu::setBridge(Bridge *bridge) { - Q_D(DesktopMenu); - - d->bridge = bridge; -} - -QString DesktopMenu::moduleName() { return "DesktopMenuManager"; } - -QList DesktopMenu::methodsToExport() { - return QList{}; -} - -QVariantMap DesktopMenu::constantsToExport() { return QVariantMap(); } - -void DesktopMenu::show(const QStringList& items, double callback) { - Q_D(DesktopMenu); - d_ptr->createMenu(items, callback); - -} - - diff --git a/modules/react-native-desktop-menu/desktop/desktopmenu.h b/modules/react-native-desktop-menu/desktop/desktopmenu.h deleted file mode 100644 index dff2fddbc6..0000000000 --- a/modules/react-native-desktop-menu/desktop/desktopmenu.h +++ /dev/null @@ -1,34 +0,0 @@ -#ifndef DESKTOPMENU_H -#define DESKTOPMENU_H - -#include "moduleinterface.h" - -#include -#include - -Q_DECLARE_LOGGING_CATEGORY(MENU) - -class DesktopMenuPrivate; -class DesktopMenu : public QObject, public ModuleInterface { - Q_OBJECT - Q_INTERFACES(ModuleInterface) - - Q_DECLARE_PRIVATE(DesktopMenu) - -public: - Q_INVOKABLE DesktopMenu(QObject* parent = 0); - virtual ~DesktopMenu(); - - void setBridge(Bridge* bridge) override; - - QString moduleName() override; - QList methodsToExport() override; - QVariantMap constantsToExport() override; - - Q_INVOKABLE void show(const QStringList& items, double callback); - -private: - QScopedPointer d_ptr; -}; - -#endif // DESKTOPMENU_H diff --git a/modules/react-native-desktop-menu/index.js b/modules/react-native-desktop-menu/index.js deleted file mode 100644 index fbc69bea6b..0000000000 --- a/modules/react-native-desktop-menu/index.js +++ /dev/null @@ -1,29 +0,0 @@ -'use strict'; - -type MenuItems = Array<{ - text?: string, - onPress?: ?Function, -}>; - -const NativeModules = require('react-native').NativeModules; - -class DesktopMenu { - - static show( - menuItems?: MenuItems - ): void { - var itemNames = menuItems.map(i => i.text); - var itemMap = new Map(); - for (let i = 0; i < menuItems.length; ++i) { - itemMap.set(menuItems[i].text, menuItems[i].onPress); - } - NativeModules.DesktopMenuManager.show( - itemNames, - (name) => { - (itemMap.get(name))(); - } - ); - } -} - -module.exports = DesktopMenu; diff --git a/modules/react-native-desktop-menu/package.json b/modules/react-native-desktop-menu/package.json deleted file mode 100644 index 7fe2fbee49..0000000000 --- a/modules/react-native-desktop-menu/package.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "private": true, - "nativePackage": true, - "name": "react-native-desktop-menu", - "version": "1.0.0", - "description": "Native popup and context menus for Desktop", - "main": "index.js", - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" - }, - "author": "", - "license": "" -} diff --git a/modules/react-native-desktop-notification/desktop/CMakeLists.txt b/modules/react-native-desktop-notification/desktop/CMakeLists.txt deleted file mode 100644 index 8b90fb2a3e..0000000000 --- a/modules/react-native-desktop-notification/desktop/CMakeLists.txt +++ /dev/null @@ -1,90 +0,0 @@ -set(CMAKE_INCLUDE_CURRENT_DIR ON) - -set(REACT_NATIVE_DESKTOP_EXTERNAL_MODULES_TYPE_NAMES ${REACT_NATIVE_DESKTOP_EXTERNAL_MODULES_TYPE_NAMES} - \"DesktopNotification\" PARENT_SCOPE) - -set(REACT_NATIVE_DESKTOP_EXTERNAL_MODULES_SRC ${REACT_NATIVE_DESKTOP_EXTERNAL_MODULES_SRC} - ${CMAKE_CURRENT_SOURCE_DIR}/desktopnotification.cpp PARENT_SCOPE) - -include(${CMAKE_ROOT}/Modules/ExternalProject.cmake) - -set(SN_PREFIX ${CMAKE_CURRENT_BINARY_DIR}/SnoreNotify_ep-prefix/src/SnoreNotify_ep) -if (WIN32) - set(SnoreNotifyWindowsToast_STATIC_LIB ${SN_PREFIX}/lib${SN_LIBPATHSUFFIX}/${CMAKE_STATIC_LIBRARY_PREFIX}snore_backend_windowstoast${CMAKE_STATIC_LIBRARY_SUFFIX}) - - set(SnoreNotify_LIBS ${SnoreNotifyWindowsToast_STATIC_LIB}) - - set(SnoreNotify_CMAKE_ARGS -DMINGW=1 -DBUILD_osxnotificationcenter=OFF -DBUILD_sound=OFF -DBUILD_speech=OFF -DBUILD_toasty=OFF - -DBUILD_freedesktop_backend=OFF -DBUILD_snarl=OFF -DBUILD_growl=OFF -DBUILD_trayicon=OFF -DBUILD_pushover_backend=OFF) -endif() - -set(SN_LIBPATHSUFFIX /${CMAKE_LIBRARY_ARCHITECTURE}) -if (UNIX AND NOT APPLE) - set(SnoreNotifyFreedesktop_STATIC_LIB ${SN_PREFIX}/lib${SN_LIBPATHSUFFIX}/${CMAKE_STATIC_LIBRARY_PREFIX}snore_backend_freedesktop${CMAKE_STATIC_LIBRARY_SUFFIX}) - - set(SnoreNotify_LIBS ${SnoreNotifyFreedesktop_STATIC_LIB}) - - set(SnoreNotify_CMAKE_ARGS -DBUILD_osxnotificationcenter=OFF -DBUILD_sound=OFF -DBUILD_speech=OFF -DBUILD_toasty=OFF - -DBUILD_snarl=OFF -DBUILD_growl=OFF -DBUILD_trayicon=OFF -DBUILD_pushover_backend=OFF) -endif() - -if (APPLE) - set(SnoreNotifyOSXNotificationCenter_STATIC_LIB ${SN_PREFIX}/lib${SN_LIBPATHSUFFIX}/${CMAKE_STATIC_LIBRARY_PREFIX}snore_backend_osxnotificationcenter${CMAKE_STATIC_LIBRARY_SUFFIX}) - set(SnoreNotify_LIBS ${SnoreNotifyOSXNotificationCenter_STATIC_LIB}) - set(SnoreNotify_CMAKE_ARGS -DBUILD_sound=OFF -DBUILD_speech=OFF -DBUILD_toasty=OFF -DBUILD_snarl=OFF -DBUILD_growl=OFF - -DBUILD_freedesktop_backend=OFF -DBUILD_trayicon=OFF -DBUILD_pushover_backend=OFF) -endif() - -set(SnoreNotify_INCLUDE_DIR ${SN_PREFIX}/include) -set(SnoreNotify_STATIC_LIB ${SN_PREFIX}/lib${SN_LIBPATHSUFFIX}/${CMAKE_STATIC_LIBRARY_PREFIX}snore-qt5${CMAKE_STATIC_LIBRARY_SUFFIX}) -set(SnoreNotifyBackend_STATIC_LIB ${SN_PREFIX}/lib${SN_LIBPATHSUFFIX}/${CMAKE_STATIC_LIBRARY_PREFIX}snore_backend_snore${CMAKE_STATIC_LIBRARY_SUFFIX}) -set(SnoreNotifyBackendSettings_STATIC_LIB ${SN_PREFIX}/lib${SN_LIBPATHSUFFIX}/${CMAKE_STATIC_LIBRARY_PREFIX}snore_settings_backend_snore${CMAKE_STATIC_LIBRARY_SUFFIX}) -set(SnoreNotifySettings_STATIC_LIB ${SN_PREFIX}/lib${SN_LIBPATHSUFFIX}/${CMAKE_STATIC_LIBRARY_PREFIX}snoresettings-qt5${CMAKE_STATIC_LIBRARY_SUFFIX}) -set(SnoreNotify_CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${SN_PREFIX} -DCMAKE_INSTALL_LIBDIR=lib${SN_LIBPATHSUFFIX} - -DSNORE_STATIC=ON -DBUILD_daemon=OFF -DBUILD_settings=OFF - -DBUILD_snoresend=OFF ${SnoreNotify_CMAKE_ARGS}) -set(SnoreNotify_CMAKE_ARGS ${SnoreNotify_CMAKE_ARGS} - "-DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}" - "-DCMAKE_C_COMPILER_AR=${CMAKE_C_COMPILER_AR}" - "-DCMAKE_C_COMPILER_RANLIB=${CMAKE_C_COMPILER_RANLIB}" - "-DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}" - "-DCMAKE_CXX_COMPILER_AR=${CMAKE_CXX_COMPILER_AR}" - "-DCMAKE_CXX_COMPILER_RANLIB=${CMAKE_CXX_COMPILER_RANLIB}" - "-DCMAKE_LINKER=${CMAKE_LINKER}") -if (CMAKE_CROSSCOMPILING) - set(SnoreNotify_CMAKE_ARGS ${SnoreNotify_CMAKE_ARGS} - "-DCMAKE_C_FLAGS=${CMAKE_C_FLAGS}" - "-DCMAKE_CXX_FLAGS=${CMAKE_CXX_FLAGS}" - "-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}" - "-DBUILD_SHARED_LIBS=${BUILD_SHARED_LIBS}" - # These are only useful if you're cross-compiling. - # They, however, will not hurt regardless. - "-DCMAKE_SYSTEM_NAME=${CMAKE_SYSTEM_NAME}" - "-DCMAKE_SYSTEM_PROCESSOR=${CMAKE_SYSTEM_PROCESSOR}" - "-DCMAKE_AR=${CMAKE_AR}" - "-DCMAKE_RC_COMPILER=${CMAKE_RC_COMPILER}" - "-DCMAKE_EXE_LINKER_FLAGS=${CMAKE_EXE_LINKER_FLAGS}" - "-DCMAKE_COMPILER_PREFIX=${CMAKE_COMPILER_PREFIX}" - "-DCMAKE_FIND_ROOT_PATH=${CMAKE_FIND_ROOT_PATH}") -endif() - -ExternalProject_Add(SnoreNotify_ep - URL $ENV{SNORENOTIFY_SOURCES} # The source is defined in /nix/desktop/macos/snorenotify/default.nix - CMAKE_ARGS ${SnoreNotify_CMAKE_ARGS} - BUILD_BYPRODUCTS ${SnoreNotify_STATIC_LIB} ${SnoreNotify_LIBS} ${SnoreNotifyBackend_STATIC_LIB} - ${SnoreNotifyBackendSettings_STATIC_LIB} ${SnoreNotifySettings_STATIC_LIB} -) - -set(REACT_NATIVE_DESKTOP_EXTERNAL_PROJECT_DEPS ${REACT_NATIVE_DESKTOP_EXTERNAL_PROJECT_DEPS} SnoreNotify_ep PARENT_SCOPE) - -if (APPLE) - set(SNORENOTIFY_DEPS_LIBS "-framework Cocoa") -endif() - -set(REACT_NATIVE_DESKTOP_EXTERNAL_MODULES_LIBS ${REACT_NATIVE_DESKTOP_EXTERNAL_MODULES_LIBS} - ${SnoreNotify_LIBS} ${SnoreNotify_STATIC_LIB} ${SnoreNotifyBackend_STATIC_LIB} - ${SnoreNotifyBackendSettings_STATIC_LIB} ${SnoreNotifySettings_STATIC_LIB} ${SNORENOTIFY_DEPS_LIBS} PARENT_SCOPE) - -set(REACT_NATIVE_DESKTOP_EXTERNAL_MODULES_INCLUDE_DIRS ${REACT_NATIVE_DESKTOP_EXTERNAL_MODULES_INCLUDE_DIRS} - ${SnoreNotify_INCLUDE_DIR} PARENT_SCOPE) - diff --git a/modules/react-native-desktop-notification/desktop/desktopnotification.cpp b/modules/react-native-desktop-notification/desktop/desktopnotification.cpp deleted file mode 100644 index a2d2984841..0000000000 --- a/modules/react-native-desktop-notification/desktop/desktopnotification.cpp +++ /dev/null @@ -1,126 +0,0 @@ -/** - * Copyright (c) 2017-present, Status Research and Development GmbH. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - */ - -#include "desktopnotification.h" -#include "bridge.h" -#include "eventdispatcher.h" - -#include "libsnore/application.h" -#include "libsnore/snore.h" - -#ifdef Q_OS_MAC -#include "libsnore/snore_static_plugins.h" -#endif - -#include -#include - -Q_LOGGING_CATEGORY(NOTIFICATION, "RCTNotification") - -#if defined(Q_OS_LINUX) || defined(Q_OS_WIN) -namespace SnorePlugin {} - - -using namespace SnorePlugin; -#if defined(Q_OS_LINUX) -Q_IMPORT_PLUGIN(Freedesktop) -#elif defined(Q_OS_WIN) -Q_IMPORT_PLUGIN(WindowsToast) -#endif -Q_IMPORT_PLUGIN(Snore) - -static void loadSnoreResources() -{ - // prevent multiple symbols - static const auto load = []() { - Q_INIT_RESOURCE(snore); - Q_INIT_RESOURCE(snore_notification); - }; - load(); -} - -Q_COREAPP_STARTUP_FUNCTION(loadSnoreResources) -#endif // defined(Q_OS_LINUX) || defined(Q_OS_WIN) - -namespace { -struct RegisterQMLMetaType { - RegisterQMLMetaType() { qRegisterMetaType(); } -} registerMetaType; - -const QString NewMessageAlert = QStringLiteral("NewMessage"); -} // namespace - -class DesktopNotificationPrivate { -public: - Bridge *bridge = nullptr; - Snore::Application snoreApp; -}; - -DesktopNotification::DesktopNotification(QObject *parent) - : QObject(parent), d_ptr(new DesktopNotificationPrivate) { - connect(qApp, &QGuiApplication::focusWindowChanged, this, [=](QWindow *focusWindow){ - m_appHasFocus = (focusWindow != nullptr); - }); - - if (Snore::SnoreCore::instance().pluginNames().isEmpty()) { - Snore::SnoreCore::instance().loadPlugins(Snore::SnorePlugin::Backend); - } - - qCDebug(NOTIFICATION) << "DesktopNotification::DesktopNotification List of all loaded Snore plugins:" - << Snore::SnoreCore::instance().pluginNames(); - - Snore::Icon icon(":/icon.png"); - d_ptr->snoreApp = Snore::Application(QCoreApplication::applicationName(), icon); - d_ptr->snoreApp.hints().setValue("windows-app-id", "StatusIm.Status.Desktop.1"); - d_ptr->snoreApp.addAlert(Snore::Alert(NewMessageAlert, icon)); - - Snore::SnoreCore::instance().registerApplication(d_ptr->snoreApp); - Snore::SnoreCore::instance().setDefaultApplication(d_ptr->snoreApp); - - qCDebug(NOTIFICATION) << "DesktopNotification::DesktopNotification Current notification backend:" - << Snore::SnoreCore::instance().primaryNotificationBackend(); -} - -DesktopNotification::~DesktopNotification() { - Snore::SnoreCore::instance().deregisterApplication(d_ptr->snoreApp); -} - -void DesktopNotification::setBridge(Bridge *bridge) { - Q_D(DesktopNotification); - d->bridge = bridge; -} - -QString DesktopNotification::moduleName() { return "DesktopNotification"; } - -QList DesktopNotification::methodsToExport() { - return QList{}; -} - -QVariantMap DesktopNotification::constantsToExport() { return QVariantMap(); } - -void DesktopNotification::displayNotification(QString title, QString body, bool prioritary) { - Q_D(DesktopNotification); - qCDebug(NOTIFICATION) << "::displayNotification"; - - if (m_appHasFocus) { - qCDebug(NOTIFICATION) << "Not displaying notification since an application window is active"; - return; - } - - Snore::Notification notification( - d_ptr->snoreApp, d_ptr->snoreApp.alerts()[NewMessageAlert], title, - body, Snore::Icon::defaultIcon(), - prioritary ? Snore::Notification::Prioritys::High : Snore::Notification::Prioritys::Normal); - Snore::SnoreCore::instance().broadcastNotification(notification); -} - -void DesktopNotification::setDockBadgeLabel(const QString label) { - Snore::SnoreCore::instance().setDockBadgeLabel(label); -} diff --git a/modules/react-native-desktop-notification/desktop/desktopnotification.h b/modules/react-native-desktop-notification/desktop/desktopnotification.h deleted file mode 100644 index ae928256b7..0000000000 --- a/modules/react-native-desktop-notification/desktop/desktopnotification.h +++ /dev/null @@ -1,45 +0,0 @@ -/** - * Copyright (c) 2017-present, Status Research and Development GmbH. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - */ - -#ifndef DESKTOPNOTIFICATION_H -#define DESKTOPNOTIFICATION_H - -#include "moduleinterface.h" - -#include -#include - -Q_DECLARE_LOGGING_CATEGORY(NOTIFICATION) - -class DesktopNotificationPrivate; -class DesktopNotification : public QObject, public ModuleInterface { - Q_OBJECT - Q_INTERFACES(ModuleInterface) - - Q_DECLARE_PRIVATE(DesktopNotification) - -public: - Q_INVOKABLE DesktopNotification(QObject* parent = 0); - ~DesktopNotification(); - - void setBridge(Bridge* bridge) override; - - QString moduleName() override; - QList methodsToExport() override; - QVariantMap constantsToExport() override; - - Q_INVOKABLE void displayNotification(QString title, QString body, bool prioritary); - Q_INVOKABLE void setDockBadgeLabel(const QString label); -private: - QScopedPointer d_ptr; - bool m_appHasFocus = false; -}; - -#endif // DESKTOPNOTIFICATION_H diff --git a/modules/react-native-desktop-notification/index.js b/modules/react-native-desktop-notification/index.js deleted file mode 100644 index fd66bbfe8a..0000000000 --- a/modules/react-native-desktop-notification/index.js +++ /dev/null @@ -1,4 +0,0 @@ -'use strict'; - -import { NativeModules } from 'react-native'; -module.exports = NativeModules.DesktopNotification; diff --git a/modules/react-native-desktop-notification/package.json b/modules/react-native-desktop-notification/package.json deleted file mode 100644 index 5d5ea1d175..0000000000 --- a/modules/react-native-desktop-notification/package.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "private": true, - "nativePackage": true, - "name": "react-native-desktop-notification", - "version": "1.0.0", - "description": "Send desktop notifications", - "main": "index.js", - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" - }, - "author": "", - "license": "" -} \ No newline at end of file diff --git a/modules/react-native-desktop-shortcuts/desktop/CMakeLists.txt b/modules/react-native-desktop-shortcuts/desktop/CMakeLists.txt deleted file mode 100644 index 7d7cd958bf..0000000000 --- a/modules/react-native-desktop-shortcuts/desktop/CMakeLists.txt +++ /dev/null @@ -1,9 +0,0 @@ -set(CMAKE_INCLUDE_CURRENT_DIR ON) - -set(REACT_NATIVE_DESKTOP_EXTERNAL_MODULES_TYPE_NAMES ${REACT_NATIVE_DESKTOP_EXTERNAL_MODULES_TYPE_NAMES} - \"DesktopShortcuts\" PARENT_SCOPE) - -set(REACT_NATIVE_DESKTOP_EXTERNAL_MODULES_SRC ${REACT_NATIVE_DESKTOP_EXTERNAL_MODULES_SRC} - ${CMAKE_CURRENT_SOURCE_DIR}/desktopshortcuts.cpp PARENT_SCOPE) - -include(${CMAKE_ROOT}/Modules/ExternalProject.cmake) diff --git a/modules/react-native-desktop-shortcuts/desktop/desktopshortcuts.cpp b/modules/react-native-desktop-shortcuts/desktop/desktopshortcuts.cpp deleted file mode 100644 index 8b4a63dbb4..0000000000 --- a/modules/react-native-desktop-shortcuts/desktop/desktopshortcuts.cpp +++ /dev/null @@ -1,83 +0,0 @@ -#include "desktopshortcuts.h" -#include "bridge.h" - -#include "eventdispatcher.h" -#include -#include -#include -#include -#include - -Q_LOGGING_CATEGORY(DESKTOPSHORTCUTS, "DesktopShortcuts") - -namespace { -struct RegisterQMLMetaType { - RegisterQMLMetaType() { qRegisterMetaType(); } -} registerMetaType; -} // namespace - -DesktopShortcuts::DesktopShortcuts(QObject *parent) - : QObject(parent) { - QCoreApplication::instance()->installEventFilter(this); - connect(this, &DesktopShortcuts::shortcutInvoked, this, &DesktopShortcuts::onShortcutInvoked); -} - -DesktopShortcuts::~DesktopShortcuts() { -} - -void DesktopShortcuts::setBridge(Bridge *bridge) { - this->bridge = bridge; -} - -QString DesktopShortcuts::moduleName() { return "DesktopShortcutsManager"; } - -QList DesktopShortcuts::methodsToExport() { - return QList{}; -} - -QVariantMap DesktopShortcuts::constantsToExport() { return QVariantMap(); } - -void DesktopShortcuts::registerShortcuts(const QStringList& shortcuts) { - //qCDebug(DESKTOPSHORTCUTS) << "registerShortcuts" << shortcuts << " " << shortcuts.size(); - this->registeredShortcuts = shortcuts; -} - -bool DesktopShortcuts::eventFilter(QObject* obj, QEvent* event) { - if (event->type() == QEvent::KeyPress) { - QKeyEvent* ke = static_cast(event); - - QString modifier; - - if (ke->modifiers() & Qt::ShiftModifier) { - modifier += "Shift+"; - } - if (ke->modifiers() & Qt::ControlModifier) { - modifier += "Ctrl+"; - } - if (ke->modifiers() & Qt::AltModifier) { - modifier += "Alt+"; - } - if (ke->modifiers() & Qt::MetaModifier) { - modifier += "Meta+"; - } - QString key = QKeySequence(ke->key()).toString(); - - //qCDebug(DESKTOPSHORTCUTS) << "### arrow " << key; - if (registeredShortcuts.contains(modifier+key)) { - emit shortcutInvoked(modifier+key); - return true; - } - else { - return false; - } - } - else { - return QObject::eventFilter(obj, event); - } -} - -void DesktopShortcuts::onShortcutInvoked(const QString& shortcut) { - //qCDebug(DESKTOPSHORTCUTS) << "onShortcutInvoked " << shortcut << " " << registeredShortcuts.size(); - bridge->eventDispatcher()->sendDeviceEvent("shortcutInvoked", QVariantList{shortcut}); -} - diff --git a/modules/react-native-desktop-shortcuts/desktop/desktopshortcuts.h b/modules/react-native-desktop-shortcuts/desktop/desktopshortcuts.h deleted file mode 100644 index 58cfb95635..0000000000 --- a/modules/react-native-desktop-shortcuts/desktop/desktopshortcuts.h +++ /dev/null @@ -1,41 +0,0 @@ -#ifndef DESKTOPSHORTCUTS_H -#define DESKTOPSHORTCUTS_H - -#include "moduleinterface.h" - -#include -#include - -Q_DECLARE_LOGGING_CATEGORY(SHORTCUTS) - -class DesktopShortcutsPrivate; -class DesktopShortcuts : public QObject, public ModuleInterface { - Q_OBJECT - Q_INTERFACES(ModuleInterface) - -public: - Q_INVOKABLE DesktopShortcuts(QObject* parent = 0); - virtual ~DesktopShortcuts(); - - void setBridge(Bridge* bridge) override; - - QString moduleName() override; - QList methodsToExport() override; - QVariantMap constantsToExport() override; - - Q_INVOKABLE void registerShortcuts(const QStringList& shortcuts); - -signals: - void shortcutInvoked(const QString& shortcut); - -public slots: - void onShortcutInvoked(const QString& shortcut); - -private: - Bridge* bridge; - - QStringList registeredShortcuts; - bool eventFilter(QObject* obj, QEvent* event) override; -}; - -#endif // DESKTOPSHORTCUTS_H diff --git a/modules/react-native-desktop-shortcuts/index.js b/modules/react-native-desktop-shortcuts/index.js deleted file mode 100644 index 06a0f56fda..0000000000 --- a/modules/react-native-desktop-shortcuts/index.js +++ /dev/null @@ -1,44 +0,0 @@ -'use strict'; - -const NativeModules = require('react-native').NativeModules; -const NativeEventEmitter = require('react-native').NativeEventEmitter; - -type Shortcuts = Array<{ - shortcut?: string, - onPress?: ?Function, -}>; - -class DesktopShortcuts { - constructor() { - this.shortcuts = new Map(); - this.eventEmitter = new NativeEventEmitter(NativeModules.DesktopShortcutsManager); - this.eventEmitter.addListener('shortcutInvoked', this.handleShortcut.bind(this)); - } - - handleShortcut(shortcut) { - var fn;// = this.shortcuts.get(shortcut); - for (var [key, value] of this.shortcuts) { - if (shortcut == key) { - fn = value; - break; - } - } - if (fn) { - fn(); - }; - } - - register(shortcuts: Shortcuts): void { - //console.log('### register(shortcuts)' + JSON.stringify(shortcuts)); - this.shortcuts = new Map(); - - var shortcutKeys = shortcuts.map(s => s.shortcut); - for (let i = 0; i < shortcuts.length; ++i) { - this.shortcuts.set(shortcuts[i].shortcut, shortcuts[i].onPress); - } - - NativeModules.DesktopShortcutsManager.registerShortcuts(shortcutKeys); - } -} - -module.exports = new DesktopShortcuts(); diff --git a/modules/react-native-desktop-shortcuts/package.json b/modules/react-native-desktop-shortcuts/package.json deleted file mode 100644 index 75bf6363e7..0000000000 --- a/modules/react-native-desktop-shortcuts/package.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "private": true, - "nativePackage": true, - "name": "react-native-desktop-shortcuts", - "version": "1.0.0", - "description": "App-global keyboard shortcuts for Desktop", - "main": "index.js", - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" - }, - "author": "", - "license": "" -} diff --git a/modules/react-native-status/desktop/CMakeLists.txt b/modules/react-native-status/desktop/CMakeLists.txt deleted file mode 100755 index 2ae6ae6475..0000000000 --- a/modules/react-native-status/desktop/CMakeLists.txt +++ /dev/null @@ -1,101 +0,0 @@ -set(CMAKE_INCLUDE_CURRENT_DIR ON) - -set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_CURRENT_SOURCE_DIR}) - -set(REACT_NATIVE_DESKTOP_EXTERNAL_MODULES_TYPE_NAMES ${REACT_NATIVE_DESKTOP_EXTERNAL_MODULES_TYPE_NAMES} - \"RCTStatus\" PARENT_SCOPE) - -set(REACT_NATIVE_DESKTOP_EXTERNAL_MODULES_SRC ${REACT_NATIVE_DESKTOP_EXTERNAL_MODULES_SRC} - ${CMAKE_CURRENT_SOURCE_DIR}/rctstatus.cpp PARENT_SCOPE) - -if (WIN32) - # - # Right now we only build status-go from source for Windows, since that needs to be cross-compiled with the toolchain in Conan - # - include(${CMAKE_ROOT}/Modules/ExternalProject.cmake) - include(JSONParser.cmake) - - find_package(Go REQUIRED) - - set(versionJSONFilePath "../../../status-go-version.json") - file(READ ${versionJSONFilePath} versionJSON) - sbeParseJson(json versionJSON) - set(owner ${json.owner}) - if(NOT owner) - set(owner "status-im") - message(WARNING "Repository owner name missing from ${versionJSONFilePath}, defaulting to ${owner}") - endif() - set(version ${json.version}) - if(NOT version) - message(FATAL_ERROR "Version name missing from ${versionJSONFilePath}") - endif() - if($ENV{STATUS_GO_SRC_OVERRIDE}) - message(INFO "CMake: Using local version of status-go from $ENV{STATUS_GO_SRC_OVERRIDE}") - set(commit "unknown") # This value is defined in https://github.com/status-im/status-react/blob/develop/nix/status-go/default.nix, in `srcData.shortRev` - else() - set(commit ${json.commit-sha1}) - endif() - if(NOT commit) - message(FATAL_ERROR "Commit SHA1 missing from ${versionJSONFilePath}") - endif() - - if (CUSTOM_STATUSGO_BUILD_DIR_PATH) - set(StatusGo_ROOT ${CUSTOM_STATUSGO_BUILD_DIR_PATH}) - else() - set(StatusGo_ROOT "${CMAKE_CURRENT_BINARY_DIR}/StatusGo") - endif() - set(StatusGo_PREFIX "${StatusGo_ROOT}/src/github.com/${owner}") - set(StatusGo_SOURCE_DIR "${StatusGo_PREFIX}/status-go") - set(StatusGo_INCLUDE_DIR "${StatusGo_SOURCE_DIR}/build/bin") - set(StatusGo_STATIC_LIB - "${StatusGo_SOURCE_DIR}/build/bin/${CMAKE_STATIC_LIBRARY_PREFIX}status${CMAKE_STATIC_LIBRARY_SUFFIX}") - - include_directories(${StatusGo_INCLUDE_DIR}) - - set(CONFIGURE_SCRIPT build-status-go.sh) - - ExternalProject_Add(StatusGo_ep - PREFIX ${StatusGo_PREFIX} - SOURCE_DIR ${StatusGo_SOURCE_DIR} - URL https://status-go.ams3.digitaloceanspaces.com/status-go-desktop-${version}.zip - https://github.com/${owner}/status-go/archive/${commit}.zip - BUILD_BYPRODUCTS ${StatusGo_STATIC_LIB} - CONFIGURE_COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/${CONFIGURE_SCRIPT} ${CMAKE_SYSTEM_NAME} ${GO_ROOT_PATH} ${StatusGo_ROOT} ${StatusGo_SOURCE_DIR} ${CMAKE_C_COMPILER} ${CMAKE_CXX_COMPILER} - BUILD_COMMAND "" - INSTALL_COMMAND "" - ) - - set(REACT_NATIVE_DESKTOP_EXTERNAL_PROJECT_DEPS ${REACT_NATIVE_DESKTOP_EXTERNAL_PROJECT_DEPS} StatusGo_ep PARENT_SCOPE) -else (WIN32) - # For Linux and Darwin just use the Nix build of status-go - set(StatusGo_INCLUDE_DIR $ENV{STATUS_GO_DESKTOP_INCLUDEDIR}) - if (APPLE) - set(StatusGo_PLATFORM "x86_64-darwin") - else() - set(StatusGo_PLATFORM "x86_64-linux") - endif() - set(StatusGo_STATIC_LIB - "$ENV{STATUS_GO_DESKTOP_LIBDIR}/${StatusGo_PLATFORM}/${CMAKE_STATIC_LIBRARY_PREFIX}status${CMAKE_STATIC_LIBRARY_SUFFIX}") - - include_directories(${StatusGo_INCLUDE_DIR}) - - message(STATUS "StatusGo_STATIC_LIB=${StatusGo_STATIC_LIB}") - message(STATUS "StatusGo_INCLUDE_DIR=${StatusGo_INCLUDE_DIR}") -endif (WIN32) - -if (APPLE) - set(STATUSGO_DEPS_LIBS "-framework Foundation" - "-framework CoreServices" - "-framework IOKit" - "-framework Security" pthread) -elseif (WIN32) - set(STATUSGO_DEPS_LIBS -lwinmm -lws2_32 -lsetupapi) -else() - set(STATUSGO_DEPS_LIBS pthread) -endif() - -set(REACT_NATIVE_DESKTOP_EXTERNAL_MODULES_LIBS ${REACT_NATIVE_DESKTOP_EXTERNAL_MODULES_LIBS} - ${StatusGo_STATIC_LIB} ${STATUSGO_DEPS_LIBS} PARENT_SCOPE) - -set(REACT_NATIVE_DESKTOP_EXTERNAL_MODULES_INCLUDE_DIRS ${REACT_NATIVE_DESKTOP_EXTERNAL_MODULES_INCLUDE_DIRS} - ${StatusGo_INCLUDE_DIR} PARENT_SCOPE) diff --git a/modules/react-native-status/desktop/FindGo.cmake b/modules/react-native-status/desktop/FindGo.cmake deleted file mode 100644 index 96de42dd88..0000000000 --- a/modules/react-native-status/desktop/FindGo.cmake +++ /dev/null @@ -1,35 +0,0 @@ -# This Source Code Form is subject to the terms of the Mozilla Public -# License, v. 2.0. If a copy of the MPL was not distributed with this -# file, You can obtain one at http://mozilla.org/MPL/2.0/. - -# The module defines the following variables: -# GO_FOUND - true if the Go was found -# GO_EXECUTABLE - path to the executable -# GO_VERSION - Go version number -# GO_PLATFORM - i.e. linux -# GO_ARCH - i.e. amd64 -# Example usage: -# find_package(Go 1.2 REQUIRED) - - -find_program(GO_EXECUTABLE go PATHS ENV GOROOT GOPATH GOBIN PATH_SUFFIXES bin) -if (GO_EXECUTABLE) - get_filename_component(GO_ROOT_PATH ${GO_EXECUTABLE} REALPATH) - get_filename_component(GO_ROOT_PATH ${GO_ROOT_PATH}/../.. REALPATH) - message(STATUS "GO_ROOT_PATH is set to: ${GO_ROOT_PATH}") - execute_process(COMMAND ${GO_EXECUTABLE} version OUTPUT_VARIABLE GO_VERSION_OUTPUT OUTPUT_STRIP_TRAILING_WHITESPACE) - if(GO_VERSION_OUTPUT MATCHES "go([0-9]+\\.[0-9]+\\.?[0-9]*)[a-zA-Z0-9]* ([^/]+)/(.*)") - set(GO_VERSION ${CMAKE_MATCH_1}) - set(GO_PLATFORM ${CMAKE_MATCH_2}) - set(GO_ARCH ${CMAKE_MATCH_3}) - elseif(GO_VERSION_OUTPUT MATCHES "go version devel .* ([^/]+)/(.*)$") - set(GO_VERSION "99-devel") - set(GO_PLATFORM ${CMAKE_MATCH_1}) - set(GO_ARCH ${CMAKE_MATCH_2}) - message("WARNING: Development version of Go being used, can't determine compatibility.") - endif() -endif() -mark_as_advanced(GO_EXECUTABLE) - -include(FindPackageHandleStandardArgs) -find_package_handle_standard_args(Go REQUIRED_VARS GO_EXECUTABLE GO_VERSION GO_PLATFORM GO_ARCH VERSION_VAR GO_VERSION) \ No newline at end of file diff --git a/modules/react-native-status/desktop/JSONParser.cmake b/modules/react-native-status/desktop/JSONParser.cmake deleted file mode 100644 index 5fc130ffa4..0000000000 --- a/modules/react-native-status/desktop/JSONParser.cmake +++ /dev/null @@ -1,300 +0,0 @@ -# https://github.com/sbellus/json-cmake/blob/master/JSONParser.cmake - -cmake_minimum_required(VERSION 3.1) - -if (DEFINED JSonParserGuard) - return() -endif() - -set(JSonParserGuard yes) - -macro(sbeParseJson prefix jsonString) - cmake_policy(PUSH) - - set(json_string "${${jsonString}}") - string(LENGTH "${json_string}" json_jsonLen) - set(json_index 0) - set(json_AllVariables ${prefix}) - set(json_ArrayNestingLevel 0) - set(json_MaxArrayNestingLevel 0) - - _sbeParse(${prefix}) - - unset(json_index) - unset(json_AllVariables) - unset(json_jsonLen) - unset(json_string) - unset(json_value) - unset(json_inValue) - unset(json_name) - unset(json_inName) - unset(json_newPrefix) - unset(json_reservedWord) - unset(json_arrayIndex) - unset(json_char) - unset(json_end) - unset(json_ArrayNestingLevel) - foreach(json_nestingLevel RANGE ${json_MaxArrayNestingLevel}) - unset(json_${json_nestingLevel}_arrayIndex) - endforeach() - unset(json_nestingLevel) - unset(json_MaxArrayNestingLevel) - - cmake_policy(POP) -endmacro() - -macro(sbeClearJson prefix) - foreach(json_var ${${prefix}}) - unset(${json_var}) - endforeach() - - unset(${prefix}) - unset(json_var) -endmacro() - -macro(sbePrintJson prefix) - foreach(json_var ${${prefix}}) - message("${json_var} = ${${json_var}}") - endforeach() -endmacro() - -macro(_sbeParse prefix) - - while(${json_index} LESS ${json_jsonLen}) - string(SUBSTRING "${json_string}" ${json_index} 1 json_char) - - if("\"" STREQUAL "${json_char}") - _sbeParseNameValue(${prefix}) - elseif("{" STREQUAL "${json_char}") - _sbeMoveToNextNonEmptyCharacter() - _sbeParseObject(${prefix}) - elseif("[" STREQUAL "${json_char}") - _sbeMoveToNextNonEmptyCharacter() - _sbeParseArray(${prefix}) - endif() - - if(${json_index} LESS ${json_jsonLen}) - string(SUBSTRING "${json_string}" ${json_index} 1 json_char) - else() - break() - endif() - - if ("}" STREQUAL "${json_char}" OR "]" STREQUAL "${json_char}") - break() - endif() - - _sbeMoveToNextNonEmptyCharacter() - endwhile() -endmacro() - -macro(_sbeParseNameValue prefix) - set(json_name "") - set(json_inName no) - - while(${json_index} LESS ${json_jsonLen}) - string(SUBSTRING "${json_string}" ${json_index} 1 json_char) - - # check if name ends - if("\"" STREQUAL "${json_char}" AND json_inName) - set(json_inName no) - _sbeMoveToNextNonEmptyCharacter() - if(NOT ${json_index} LESS ${json_jsonLen}) - break() - endif() - string(SUBSTRING "${json_string}" ${json_index} 1 json_char) - set(json_newPrefix ${prefix}.${json_name}) - set(json_name "") - - if(":" STREQUAL "${json_char}") - _sbeMoveToNextNonEmptyCharacter() - if(NOT ${json_index} LESS ${json_jsonLen}) - break() - endif() - string(SUBSTRING "${json_string}" ${json_index} 1 json_char) - - if("\"" STREQUAL "${json_char}") - _sbeParseValue(${json_newPrefix}) - break() - elseif("{" STREQUAL "${json_char}") - _sbeMoveToNextNonEmptyCharacter() - _sbeParseObject(${json_newPrefix}) - break() - elseif("[" STREQUAL "${json_char}") - _sbeMoveToNextNonEmptyCharacter() - _sbeParseArray(${json_newPrefix}) - break() - else() - # reserved word starts - _sbeParseReservedWord(${json_newPrefix}) - break() - endif() - else() - # name without value - list(APPEND ${json_AllVariables} ${json_newPrefix}) - set(${json_newPrefix} "") - break() - endif() - endif() - - if(json_inName) - # remove escapes - if("\\" STREQUAL "${json_char}") - math(EXPR json_index "${json_index} + 1") - if(NOT ${json_index} LESS ${json_jsonLen}) - break() - endif() - string(SUBSTRING "${json_string}" ${json_index} 1 json_char) - endif() - - set(json_name "${json_name}${json_char}") - endif() - - # check if name starts - if("\"" STREQUAL "${json_char}" AND NOT json_inName) - set(json_inName yes) - endif() - - _sbeMoveToNextNonEmptyCharacter() - endwhile() -endmacro() - -macro(_sbeParseReservedWord prefix) - set(json_reservedWord "") - set(json_end no) - while(${json_index} LESS ${json_jsonLen} AND NOT json_end) - string(SUBSTRING "${json_string}" ${json_index} 1 json_char) - - if("," STREQUAL "${json_char}" OR "}" STREQUAL "${json_char}" OR "]" STREQUAL "${json_char}") - set(json_end yes) - else() - set(json_reservedWord "${json_reservedWord}${json_char}") - math(EXPR json_index "${json_index} + 1") - endif() - endwhile() - - list(APPEND ${json_AllVariables} ${prefix}) - string(STRIP "${json_reservedWord}" json_reservedWord) - set(${prefix} ${json_reservedWord}) -endmacro() - -macro(_sbeParseValue prefix) - cmake_policy(SET CMP0054 NEW) # turn off implicit expansions in if statement - - set(json_value "") - set(json_inValue no) - - while(${json_index} LESS ${json_jsonLen}) - # fast path for copying strings - if (json_inValue) - # attempt to gobble up to 128 bytes of string - string(SUBSTRING "${json_string}" ${json_index} 128 try_gobble) - # consume a piece of string we can just straight copy before encountering \ or " - string(REGEX MATCH "^[^\"\\\\]+" simple_copy "${try_gobble}") - string(CONCAT json_value "${json_value}" "${simple_copy}") - string(LENGTH "${simple_copy}" copy_length) - math(EXPR json_index "${json_index} + ${copy_length}") - endif() - - string(SUBSTRING "${json_string}" ${json_index} 1 json_char) - - # check if json_value ends, it is ended by " - if("\"" STREQUAL "${json_char}" AND json_inValue) - set(json_inValue no) - - set(${prefix} ${json_value}) - list(APPEND ${json_AllVariables} ${prefix}) - _sbeMoveToNextNonEmptyCharacter() - break() - endif() - - if(json_inValue) - # if " is escaped consume - if("\\" STREQUAL "${json_char}") - math(EXPR json_index "${json_index} + 1") - if(NOT ${json_index} LESS ${json_jsonLen}) - break() - endif() - string(SUBSTRING "${json_string}" ${json_index} 1 json_char) - if(NOT "\"" STREQUAL "${json_char}") - # if it is not " then copy also escape character - set(json_char "\\${json_char}") - endif() - endif() - - _sbeAddEscapedCharacter("${json_char}") - endif() - - # check if value starts - if("\"" STREQUAL "${json_char}" AND NOT json_inValue) - set(json_inValue yes) - endif() - - math(EXPR json_index "${json_index} + 1") - endwhile() -endmacro() - -macro(_sbeAddEscapedCharacter char) - string(CONCAT json_value "${json_value}" "${char}") -endmacro() - -macro(_sbeParseObject prefix) - _sbeParse(${prefix}) - _sbeMoveToNextNonEmptyCharacter() -endmacro() - -macro(_sbeParseArray prefix) - math(EXPR json_ArrayNestingLevel "${json_ArrayNestingLevel} + 1") - set(json_${json_ArrayNestingLevel}_arrayIndex 0) - - set(${prefix} "") - list(APPEND ${json_AllVariables} ${prefix}) - - while(${json_index} LESS ${json_jsonLen}) - string(SUBSTRING "${json_string}" ${json_index} 1 json_char) - - if("\"" STREQUAL "${json_char}") - # simple value - list(APPEND ${prefix} ${json_${json_ArrayNestingLevel}_arrayIndex}) - _sbeParseValue(${prefix}_${json_${json_ArrayNestingLevel}_arrayIndex}) - elseif("{" STREQUAL "${json_char}") - # object - _sbeMoveToNextNonEmptyCharacter() - list(APPEND ${prefix} ${json_${json_ArrayNestingLevel}_arrayIndex}) - _sbeParseObject(${prefix}_${json_${json_ArrayNestingLevel}_arrayIndex}) - else() - list(APPEND ${prefix} ${json_${json_ArrayNestingLevel}_arrayIndex}) - _sbeParseReservedWord(${prefix}_${json_${json_ArrayNestingLevel}_arrayIndex}) - endif() - - if(NOT ${json_index} LESS ${json_jsonLen}) - break() - endif() - - string(SUBSTRING "${json_string}" ${json_index} 1 json_char) - - if("]" STREQUAL "${json_char}") - _sbeMoveToNextNonEmptyCharacter() - break() - elseif("," STREQUAL "${json_char}") - math(EXPR json_${json_ArrayNestingLevel}_arrayIndex "${json_${json_ArrayNestingLevel}_arrayIndex} + 1") - endif() - - _sbeMoveToNextNonEmptyCharacter() - endwhile() - - if(${json_MaxArrayNestingLevel} LESS ${json_ArrayNestingLevel}) - set(json_MaxArrayNestingLevel ${json_ArrayNestingLevel}) - endif() - math(EXPR json_ArrayNestingLevel "${json_ArrayNestingLevel} - 1") -endmacro() - -macro(_sbeMoveToNextNonEmptyCharacter) - math(EXPR json_index "${json_index} + 1") - if(${json_index} LESS ${json_jsonLen}) - string(SUBSTRING "${json_string}" ${json_index} 1 json_char) - while(${json_char} MATCHES "[ \t\n\r]" AND ${json_index} LESS ${json_jsonLen}) - math(EXPR json_index "${json_index} + 1") - string(SUBSTRING "${json_string}" ${json_index} 1 json_char) - endwhile() - endif() -endmacro() diff --git a/modules/react-native-status/desktop/build-status-go.sh b/modules/react-native-status/desktop/build-status-go.sh deleted file mode 100755 index db79f14ee2..0000000000 --- a/modules/react-native-status/desktop/build-status-go.sh +++ /dev/null @@ -1,19 +0,0 @@ -#!/usr/bin/env bash - -export GOROOT=$2 -export GOPATH=$3 -export PATH=$GOROOT/bin:$GOROOT:$GOPATH:$PATH -if [ "$1" = 'Windows' ]; then - export GOOS=windows - export GOARCH=amd64 - export CGO_ENABLED=1 -fi -export CC=$5 -export CC_FOR_TARGET=$5 -export CXX_FOR_TARGET=$6 - -cd $4/lib -go get ./ -cd .. - -make statusgo-library diff --git a/modules/react-native-status/desktop/rctstatus.cpp b/modules/react-native-status/desktop/rctstatus.cpp deleted file mode 100644 index 332e518269..0000000000 --- a/modules/react-native-status/desktop/rctstatus.cpp +++ /dev/null @@ -1,678 +0,0 @@ -/** - * Copyright (c) 2017-present, Status Research and Development GmbH. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - */ - -#include "rctstatus.h" -#include "bridge.h" -#include "eventdispatcher.h" - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include "libstatus.h" - -extern QString getDataStoragePath(); -extern QString getLogFilePath(); - -namespace { -struct RegisterQMLMetaType { - RegisterQMLMetaType() { qRegisterMetaType(); } -} registerMetaType; -} // namespace - -class RCTStatusPrivate { -public: - static Bridge *bridge; - static RCTStatus *rctStatus; -}; - -Bridge *RCTStatusPrivate::bridge = nullptr; -RCTStatus *RCTStatusPrivate::rctStatus = nullptr; - -Q_LOGGING_CATEGORY(RCTSTATUS, "RCTStatus") - -RCTStatus::RCTStatus(QObject *parent) - : QObject(parent), d_ptr(new RCTStatusPrivate) { - RCTStatusPrivate::rctStatus = this; - SetSignalEventCallback((void *)&RCTStatus::statusGoEventCallback); - connect(this, &RCTStatus::statusGoEvent, this, &RCTStatus::onStatusGoEvent); -} - -RCTStatus::~RCTStatus() {} - -void RCTStatus::setBridge(Bridge *bridge) { - Q_D(RCTStatus); - d->bridge = bridge; -} - -QString RCTStatus::moduleName() { return "Status"; } - -QList RCTStatus::methodsToExport() { - return QList{}; -} - -QVariantMap RCTStatus::constantsToExport() { return QVariantMap(); } - -void RCTStatus::shouldMoveToInternalStorage(double callbackId) { - Q_D(RCTStatus); - qCDebug(RCTSTATUS) << "::shouldMoveToInternalStorage call"; - - d->bridge->invokePromiseCallback(callbackId, QVariantList{QVariant()}); -} - -void RCTStatus::moveToInternalStorage(double callbackId) { - Q_D(RCTStatus); - qCDebug(RCTSTATUS) << "::moveToInternalStorage call"; - - d->bridge->invokePromiseCallback(callbackId, QVariantList{QVariant()}); -} - -QString RCTStatus::prepareDirAndUpdateConfig(QString configString) { - Q_D(RCTStatus); - qCDebug(RCTSTATUS) << "::prepareDirAndUpdateConfig call - configString:" - << configString; - - QJsonParseError jsonError; - const QJsonDocument &jsonDoc = - QJsonDocument::fromJson(configString.toUtf8(), &jsonError); - if (jsonError.error != QJsonParseError::NoError) { - qCWarning(RCTSTATUS) << jsonError.errorString(); - } - - QVariantMap configJSON = jsonDoc.toVariant().toMap(); - QVariantMap shhextConfig = configJSON["ShhextConfig"].toMap(); - qCDebug(RCTSTATUS) << "::startNode configString: " << configJSON; - - int networkId = configJSON["NetworkId"].toInt(); - QString relativeDataDirPath = configJSON["DataDir"].toString(); - if (!relativeDataDirPath.startsWith("/")) - relativeDataDirPath.prepend("/"); - - QString rootDirPath = getDataStoragePath(); - QDir rootDir(rootDirPath); - QString absDataDirPath = rootDirPath + relativeDataDirPath; - QDir dataDir(absDataDirPath); - if (!dataDir.exists()) { - dataDir.mkpath("."); - } - - d_gethLogFilePath = dataDir.absoluteFilePath("geth.log"); - configJSON["DataDir"] = absDataDirPath; - configJSON["KeyStoreDir"] = rootDir.absoluteFilePath("keystore"); - configJSON["LogFile"] = d_gethLogFilePath; - - shhextConfig["BackupDisabledDataDir"] = rootDirPath; - - configJSON["ShhExtConfig"] = shhextConfig; - - const QJsonDocument &updatedJsonDoc = QJsonDocument::fromVariant(configJSON); - qCInfo(RCTSTATUS) << "::startNode updated configString: " - << updatedJsonDoc.toVariant().toMap(); - return QString(updatedJsonDoc.toJson(QJsonDocument::Compact)); -} - -void RCTStatus::prepareDirAndUpdateConfig(QString configString, - double callbackId) { - Q_D(RCTStatus); - qCInfo(RCTSTATUS) << "::prepareDirAndUpdateConfig call - callbackId:" - << callbackId; - QtConcurrent::run( - [&](QString configString, double callbackId) { - QString updatedConfig = prepareDirAndUpdateConfig(configString); - d->bridge->invokePromiseCallback( - callbackId, QVariantList{updatedConfig.toUtf8().data()}); - }, - configString, callbackId); -} - -void RCTStatus::initKeystore() { - qCInfo(RCTSTATUS) << "::initKeystore call"; - QString rootDir = getDataStoragePath(); - const char *result = InitKeystore(rootDir.toUtf8().data()); - logStatusGoResult("::initKeystore InitKeystore", result); -} - -#include -#include -#include -#include -#include - -void showFileInGraphicalShell(QWidget *parent, const QFileInfo &fileInfo) { -// Mac, Windows support folder or file. -#ifdef Q_OS_WIN - const QString explorer = - QStandardPaths::findExecutable(QLatin1String("explorer.exe")); - if (explorer.isEmpty()) { - QMessageBox::warning( - parent, QApplication::translate("Core::Internal", - "Launching Windows Explorer Failed"), - QApplication::translate( - "Core::Internal", - "Could not find explorer.exe in path to launch Windows Explorer.")); - return; - } - QStringList param; - if (!fileInfo.isDir()) - param += QLatin1String("/select,"); - param += QDir::toNativeSeparators(fileInfo.canonicalFilePath()); - QProcess::startDetached(explorer, param); -#elif defined(Q_OS_MAC) - QStringList scriptArgs; - scriptArgs << QLatin1String("-e") - << QString::fromLatin1( - "tell application \"Finder\" to reveal POSIX file \"%1\"") - .arg(fileInfo.canonicalFilePath()); - QProcess::execute(QLatin1String("/usr/bin/osascript"), scriptArgs); - scriptArgs.clear(); - scriptArgs << QLatin1String("-e") - << QLatin1String("tell application \"Finder\" to activate"); - QProcess::execute(QLatin1String("/usr/bin/osascript"), scriptArgs); -#else - // we cannot select a file here, because no file browser really supports it... - const QString folder = fileInfo.isDir() ? fileInfo.absoluteFilePath() - : fileInfo.dir().absolutePath(); - QProcess browserProc; - browserProc.setProgram("xdg-open"); - browserProc.setArguments(QStringList(folder)); - bool success = browserProc.startDetached(); - const QString error = - QString::fromLocal8Bit(browserProc.readAllStandardError()); - success = success && error.isEmpty(); - if (!success) { - QMessageBox::warning(parent, "Launching Explorer Failed", error); - return; - } -#endif -} - -void RCTStatus::sendLogs(QString dbJSON, QString jsLogs, double callbackId) { - Q_D(RCTStatus); - - qCDebug(RCTSTATUS) << "::sendLogs call - logFilePath:" << getLogFilePath() - << "d_gethLogFilePath:" << d_gethLogFilePath - << "dbJSON:" << dbJSON; - - QString tmpDirName("Status.im"); - QDir tmpDir(QStandardPaths::writableLocation(QStandardPaths::TempLocation)); - if (!tmpDir.mkpath(tmpDirName)) { - qCWarning(RCTSTATUS) << "::sendLogs could not create temp dir:" - << tmpDirName; - return; - } - - // Check that at least 20MB are available for log generation - QStorageInfo storage(tmpDir); - if (storage.bytesAvailable() < 20 * 1024 * 1024) { - QMessageBox dlg; - dlg.warning(QApplication::activeWindow(), "Error", - QString("Insufficient storage space available in %1 for log " - "generation. Please free up some space.") - .arg(storage.rootPath()), - QMessageBox::Close); - return; - } - - QFile zipFile(tmpDir.absoluteFilePath(tmpDirName + QDir::separator() + - "Status-debug-logs.zip")); - QZipWriter zipWriter(&zipFile); - QFile gethLogFile(d_gethLogFilePath); - QFile logFile(getLogFilePath()); - zipWriter.addFile("db.json", dbJSON.toUtf8()); - zipWriter.addFile("js_logs.log", jsLogs.toUtf8()); - if (gethLogFile.exists()) { - zipWriter.addFile(QFileInfo(gethLogFile).fileName(), &gethLogFile); - } - if (logFile.exists()) { - zipWriter.addFile(QFileInfo(logFile).fileName(), &logFile); - } - zipWriter.close(); - - showFileInGraphicalShell(QApplication::activeWindow(), QFileInfo(zipFile)); -} - -void RCTStatus::exportLogs(double callbackId) { - Q_D(RCTStatus); - QtConcurrent::run( - [&](double callbackId) { - const char *result = ExportNodeLogs(); - logStatusGoResult("::exportLogs", result); - d->bridge->invokePromiseCallback(callbackId, QVariantList{result}); - }, - callbackId); -} - -void RCTStatus::addPeer(QString enode, double callbackId) { - Q_D(RCTStatus); - qCDebug(RCTSTATUS) << "::addPeer call - callbackId:" << callbackId; - QtConcurrent::run( - [&](QString enode, double callbackId) { - const char *result = AddPeer(enode.toUtf8().data()); - logStatusGoResult("::addPeer AddPeer", result); - d->bridge->invokePromiseCallback(callbackId, QVariantList{result}); - }, - enode, callbackId); -} - -void RCTStatus::saveAccountAndLogin(QString accountData, QString password, - QString config, QString subAccountsData) { - - Q_D(RCTStatus); - QString finalConfig = prepareDirAndUpdateConfig(config); - QtConcurrent::run( - [&](QString accountData, QString password, QString finalConfig, - QString subAccountsData) { - const char *result = SaveAccountAndLogin( - accountData.toUtf8().data(), password.toUtf8().data(), - finalConfig.toUtf8().data(), subAccountsData.toUtf8().data()); - logStatusGoResult("::saveAccountAndLogin", result); - }, - accountData, password, finalConfig, subAccountsData); -} - -// void RCTStatus::saveAccountAndLoginWithKeycard(QString accountData, -// QString password, QString -// config, -// QString chatKey) { -// Q_D(RCTStatus); -// QString finalConfig = prepareDirAndUpdateConfig(config); -// QtConcurrent::run( -// [&](QString accountData, QString password, QString finalConfig, -// QString chatKey) { -// const char *result = SaveAccountAndLoginWithKeycard( -// accountData.toUtf8().data(), password.toUtf8().data(), -// finalConfig.toUtf8().data(), chatKey.toUtf8().data()); -// logStatusGoResult("::saveAccountAndLoginWithKeycard", result); -// }, -// accountData, password, finalConfig, chatKey); -//} - -void RCTStatus::login(QString accountData, QString password) { - - Q_D(RCTStatus); - QtConcurrent::run( - [&](QString accountData, QString password) { - const char *result = - Login(accountData.toUtf8().data(), password.toUtf8().data()); - logStatusGoResult("::login", result); - }, - accountData, password); -} - -// void RCTStatus::loginWithKeycard(QString accountData, QString password, -// QString chatKey) { -// -// Q_D(RCTStatus); -// QtConcurrent::run( -// [&](QString accountData, QString password, QString chatKey) { -// const char *result = -// LoginWithKeycard(accountData.toUtf8().data(), -// password.toUtf8().data(), -// chatKey.toUtf8().data()); -// logStatusGoResult("::loginWithKeycard", result); -// }, -// accountData, password, chatKey); -//} - -void RCTStatus::logout() { - Q_D(RCTStatus); - QtConcurrent::run([&]() { - const char *result = Logout(); - logStatusGoResult("::logout", result); - }); -} - -void RCTStatus::openAccounts(double callbackId) { - Q_D(RCTStatus); - QtConcurrent::run( - [&](double callbackId) { - QString rootDir = getDataStoragePath(); - const char *result = OpenAccounts(rootDir.toUtf8().data()); - logStatusGoResult("::openAccounts", result); - d->bridge->invokePromiseCallback(callbackId, QVariantList{result}); - }, - callbackId); -} - -void RCTStatus::multiAccountStoreAccount(QString json, double callbackId) { - Q_D(RCTStatus); - QtConcurrent::run( - [&](QString json, double callbackId) { - const char *result = MultiAccountStoreAccount(json.toUtf8().data()); - logStatusGoResult("::multiAccountStoreAccount", result); - d->bridge->invokePromiseCallback(callbackId, QVariantList{result}); - }, - json, callbackId); -} - -void RCTStatus::multiAccountLoadAccount(QString json, double callbackId) { - Q_D(RCTStatus); - QtConcurrent::run( - [&](QString json, double callbackId) { - const char *result = MultiAccountLoadAccount(json.toUtf8().data()); - logStatusGoResult("::multiAccountLoadAccount", result); - d->bridge->invokePromiseCallback(callbackId, QVariantList{result}); - }, - json, callbackId); -} - -void RCTStatus::multiAccountReset(double callbackId) { - Q_D(RCTStatus); - QtConcurrent::run( - [&](double callbackId) { - const char *result = MultiAccountReset(); - logStatusGoResult("::multiAccountReset", result); - d->bridge->invokePromiseCallback(callbackId, QVariantList{result}); - }, - callbackId); -} - -void RCTStatus::multiAccountDeriveAddresses(QString json, double callbackId) { - Q_D(RCTStatus); - QtConcurrent::run( - [&](QString json, double callbackId) { - const char *result = MultiAccountDeriveAddresses(json.toUtf8().data()); - logStatusGoResult("::multiAccountDeriveAddresses", result); - d->bridge->invokePromiseCallback(callbackId, QVariantList{result}); - }, - json, callbackId); -} - -void RCTStatus::multiAccountStoreDerived(QString json, double callbackId) { - Q_D(RCTStatus); - QtConcurrent::run( - [&](QString json, double callbackId) { - const char *result = - MultiAccountStoreDerivedAccounts(json.toUtf8().data()); - logStatusGoResult("::multiAccountStoreDerived", result); - d->bridge->invokePromiseCallback(callbackId, QVariantList{result}); - }, - json, callbackId); -} - -void RCTStatus::multiAccountGenerateAndDeriveAddresses(QString json, - double callbackId) { - Q_D(RCTStatus); - QtConcurrent::run( - [&](QString json, double callbackId) { - const char *result = - MultiAccountGenerateAndDeriveAddresses(json.toUtf8().data()); - logStatusGoResult("::multiAccountGenerateAndDeriveAddresses", result); - d->bridge->invokePromiseCallback(callbackId, QVariantList{result}); - }, - json, callbackId); -} - -void RCTStatus::multiAccountImportMnemonic(QString json, double callbackId) { - Q_D(RCTStatus); - QtConcurrent::run( - [&](QString json, double callbackId) { - const char *result = MultiAccountImportMnemonic(json.toUtf8().data()); - logStatusGoResult("::multiAccountImportMnemonic", result); - d->bridge->invokePromiseCallback(callbackId, QVariantList{result}); - }, - json, callbackId); -} - -void RCTStatus::verify(QString address, QString password, double callbackId) { - Q_D(RCTStatus); - qCInfo(RCTSTATUS) << "::verify call - callbackId:" << callbackId; - QtConcurrent::run( - [&](QString address, QString password, double callbackId) { - QDir rootDir(getDataStoragePath()); - QString keystorePath = rootDir.absoluteFilePath("keystore"); - const char *result = VerifyAccountPassword(keystorePath.toUtf8().data(), - address.toUtf8().data(), - password.toUtf8().data()); - logStatusGoResult("::verify VerifyAccountPassword", result); - d->bridge->invokePromiseCallback(callbackId, QVariantList{result}); - }, - address, password, callbackId); -} - -void RCTStatus::sendTransaction(QString txArgsJSON, QString password, - double callbackId) { - Q_D(RCTStatus); - qCDebug(RCTSTATUS) << "::sendTransaction call - callbackId:" << callbackId; - QtConcurrent::run( - [&](QString txArgsJSON, QString password, double callbackId) { - const char *result = SendTransaction(txArgsJSON.toUtf8().data(), - password.toUtf8().data()); - logStatusGoResult("::sendTransaction SendTransaction", result); - d->bridge->invokePromiseCallback(callbackId, QVariantList{result}); - }, - txArgsJSON, password, callbackId); -} - -void RCTStatus::signMessage(QString rpcParams, double callbackId) { - Q_D(RCTStatus); - qCDebug(RCTSTATUS) << "::signMessage call - callbackId:" << callbackId; - QtConcurrent::run( - [&](QString rpcParams, double callbackId) { - const char *result = SignMessage(rpcParams.toUtf8().data()); - logStatusGoResult("::signMessage SignMessage", result); - d->bridge->invokePromiseCallback(callbackId, QVariantList{result}); - }, - rpcParams, callbackId); -} - -void RCTStatus::signTypedData(QString data, QString account, QString password, - double callbackId) { - - Q_D(RCTStatus); - qCDebug(RCTSTATUS) << "::signMessage call - callbackId:" << callbackId; - QtConcurrent::run( - [&](QString data, QString account, QString password, double callbackId) { - const char *result = - SignTypedData(data.toUtf8().data(), account.toUtf8().data(), - password.toUtf8().data()); - logStatusGoResult("::signTypedData signTypedData", result); - d->bridge->invokePromiseCallback(callbackId, QVariantList{result}); - }, - data, account, password, callbackId); -} -void RCTStatus::signGroupMembership(QString content, double callbackId) { - Q_D(RCTStatus); - qCDebug(RCTSTATUS) << "::signGroupMembership - callbackId:" << callbackId; - QtConcurrent::run( - [&](QString content, double callbackId) { - const char *result = SignGroupMembership(content.toUtf8().data()); - logStatusGoResult("::signGroupMembership SignGroupMembership", result); - d->bridge->invokePromiseCallback(callbackId, QVariantList{result}); - }, - content, callbackId); -} - -void RCTStatus::extractGroupMembershipSignatures(QString signatures, - double callbackId) { - Q_D(RCTStatus); - qCDebug(RCTSTATUS) << "::extractGroupMembershipSignatures - callbackId:" - << callbackId; - QtConcurrent::run( - [&](QString signatures, double callbackId) { - const char *result = - ExtractGroupMembershipSignatures(signatures.toUtf8().data()); - logStatusGoResult("::extractGroupMembershipSignatures " - "ExtractGroupMembershipSignatures", - result); - d->bridge->invokePromiseCallback(callbackId, QVariantList{result}); - }, - signatures, callbackId); -} - -void RCTStatus::setAdjustResize() {} - -void RCTStatus::setAdjustPan() {} - -void RCTStatus::setSoftInputMode(int i) {} - -void RCTStatus::clearCookies() {} - -void RCTStatus::clearStorageAPIs() {} - -void RCTStatus::callRPC(QString payload, double callbackId) { - Q_D(RCTStatus); - qCDebug(RCTSTATUS) << "::callRPC call - payload:" << payload.left(128) - << "callbackId:" << callbackId; - QtConcurrent::run( - [&](QString payload, double callbackId) { - const char *result = CallRPC(payload.toUtf8().data()); - logStatusGoResult("::callRPC CallRPC", result); - d->bridge->invokePromiseCallback(callbackId, QVariantList{result}); - }, - payload, callbackId); -} - -void RCTStatus::callPrivateRPC(QString payload, double callbackId) { - Q_D(RCTStatus); - qCDebug(RCTSTATUS) << "::callPrivateRPC call - payload:" << payload.left(128) - << "callbackId:" << callbackId; - QtConcurrent::run( - [&](QString payload, double callbackId) { - const char *result = CallPrivateRPC(payload.toUtf8().data()); - logStatusGoResult("::callPrivateRPC CallPrivateRPC", result); - d->bridge->invokePromiseCallback(callbackId, QVariantList{result}); - }, - payload, callbackId); -} - -void RCTStatus::closeApplication() {} - -void RCTStatus::connectionChange(QString type, bool isExpensive) { - Q_D(RCTStatus); - QtConcurrent::run( - [&](QString type, bool isExpensive) { - ConnectionChange(type.toUtf8().data(), isExpensive ? 1 : 0); - qCWarning(RCTSTATUS) << "::connectionChange"; - }, - type, isExpensive); -} - -void RCTStatus::appStateChange(QString type) { - Q_D(RCTStatus); - QtConcurrent::run( - [&](QString type) { - AppStateChange(type.toUtf8().data()); - qCWarning(RCTSTATUS) << "::appStateChange"; - }, - type); -} - -bool RCTStatus::JSCEnabled() { - qCDebug(RCTSTATUS) << "::JSCEnabled call"; - return false; -} - -void RCTStatus::statusGoEventCallback(const char *event) { - qCDebug(RCTSTATUS) << "::statusGoEventCallback call - event: " << event; - RCTStatusPrivate::rctStatus->emitStatusGoEvent(event); -} - -void RCTStatus::emitStatusGoEvent(QString event) { - qCDebug(RCTSTATUS) << "::emitStatusGoEvent call - event: " << event; - Q_EMIT statusGoEvent(event); -} - -void RCTStatus::onStatusGoEvent(QString event) { - qCDebug(RCTSTATUS) << "::onStatusGoEvent call - event: " - << event.toUtf8().data(); - RCTStatusPrivate::bridge->eventDispatcher()->sendDeviceEvent( - "gethEvent", QVariantMap{{"jsonEvent", event.toUtf8().data()}}); -} - -void RCTStatus::logStatusGoResult(const char *methodName, const char *result) { - QJsonParseError jsonError; - QJsonDocument jsonDoc = - QJsonDocument::fromJson(QString(result).toUtf8(), &jsonError); - if (jsonError.error != QJsonParseError::NoError) { - qCWarning(RCTSTATUS) << qUtf8Printable(jsonError.errorString()); - return; - } - - QString error = jsonDoc.toVariant().toMap().value("error").toString(); - if (error.isEmpty()) { - qCDebug(RCTSTATUS) << methodName << "succeeded"; - } else { - qCWarning(RCTSTATUS) << methodName << "- error:" << qUtf8Printable(error); - } -} - -void RCTStatus::getNodesFromContract(QString url, QString address, - double callbackId) { - Q_D(RCTStatus); - qCDebug(RCTSTATUS) << "::getNodesFromContract call - callbackId:" - << callbackId; - QtConcurrent::run( - [&](QString url, QString address, double callbackId) { - const char *result = - GetNodesFromContract(url.toUtf8().data(), address.toUtf8().data()); - logStatusGoResult("::getNodesFromContract GetNodesFromContract", - result); - d->bridge->invokePromiseCallback(callbackId, QVariantList{result}); - }, - url, address, callbackId); -} - -void RCTStatus::chaosModeUpdate(bool on, double callbackId) { - Q_D(RCTStatus); - qCDebug(RCTSTATUS) << "::chaosModeUpdate call - callbackId:" << callbackId; - QtConcurrent::run( - [&](bool on, double callbackId) { - const char *result = ChaosModeUpdate(on); - logStatusGoResult("::chaosModeUpdate ChaosModeUpdate", result); - d->bridge->invokePromiseCallback(callbackId, QVariantList{result}); - }, - on, callbackId); -} - -QString RCTStatus::generateAlias(QString publicKey) { - Q_D(RCTStatus); - qCDebug(RCTSTATUS) << "::generateAlias call"; - return ""; -} - -void RCTStatus::generateAliasAsync(QString publicKey, double callbackId) { - Q_D(RCTStatus); - qCDebug(RCTSTATUS) << "::generateAliasAsync call"; - QByteArray b = publicKey.toUtf8(); - const char *result = GenerateAlias({b.data(), b.length()}); - qCDebug(RCTSTATUS) << "::generateAliasAsync call result"<bridge->invokePromiseCallback(callbackId, QVariantList{result}); -} - -QString RCTStatus::identicon(QString publicKey) { - Q_D(RCTStatus); - qCDebug(RCTSTATUS) << "::identicon call"; - return ""; -} - -void RCTStatus::identiconAsync(QString publicKey, double callbackId) { - Q_D(RCTStatus); - qCDebug(RCTSTATUS) << "::identiconAsync call"; - QByteArray b = publicKey.toUtf8(); - const char *result = Identicon({b.data(), b.length()}); - qCDebug(RCTSTATUS) << "::identiconAsync call result"<bridge->invokePromiseCallback(callbackId, QVariantList{result}); -} - -void RCTStatus::generateAliasAndIdenticonAsync(QString publicKey, double callbackId) { - Q_D(RCTStatus); - qCDebug(RCTSTATUS) << "::generateAliasAndIdenticonAsync call"; - QByteArray pubKey = publicKey.toUtf8(); - const char *alias = GenerateAlias({pubKey.data(), pubKey.length()}); - const char *identicon = Identicon({pubKey.data(), pubKey.length()}); - d->bridge->invokePromiseCallback(callbackId, QVariantList{alias, identicon}); -} diff --git a/modules/react-native-status/desktop/rctstatus.h b/modules/react-native-status/desktop/rctstatus.h deleted file mode 100644 index c85a930998..0000000000 --- a/modules/react-native-status/desktop/rctstatus.h +++ /dev/null @@ -1,116 +0,0 @@ -/** - * Copyright (c) 2017-present, Status Research and Development GmbH. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - */ - -#ifndef RCTSTATUS_H -#define RCTSTATUS_H - -#include "moduleinterface.h" - -#include -#include - -Q_DECLARE_LOGGING_CATEGORY(RCTSTATUS) - -class RCTStatusPrivate; -class RCTStatus : public QObject, public ModuleInterface { - Q_OBJECT - Q_INTERFACES(ModuleInterface) - - Q_DECLARE_PRIVATE(RCTStatus) - -public: - Q_INVOKABLE RCTStatus(QObject *parent = 0); - ~RCTStatus(); - - void setBridge(Bridge *bridge) override; - - QString moduleName() override; - QList methodsToExport() override; - QVariantMap constantsToExport() override; - - Q_INVOKABLE void shouldMoveToInternalStorage(double callbackId); - Q_INVOKABLE void moveToInternalStorage(double callbackId); - Q_INVOKABLE void initKeystore(); - Q_INVOKABLE void sendLogs(QString dbJSON, QString jsLogs, double callbackId); - Q_INVOKABLE void exportLogs(double callbackId); - Q_INVOKABLE void addPeer(QString enode, double callbackId); - Q_INVOKABLE void prepareDirAndUpdateConfig(QString configString, - double callbackId); - Q_INVOKABLE void login(QString accountData, QString password); - // Q_INVOKABLE void loginWithKeycard(QString accountData, QString password, - // QString chatKey); - Q_INVOKABLE void saveAccountAndLogin(QString accountData, QString password, - QString config, QString subAccountsData); - // Q_INVOKABLE void saveAccountAndLoginWithKeycard(QString accountData, - // QString password, - // QString config, - // QString chatKey); - Q_INVOKABLE void logout(); - Q_INVOKABLE void openAccounts(double callbackId); - Q_INVOKABLE void multiAccountStoreAccount(QString json, double callbackId); - Q_INVOKABLE void multiAccountLoadAccount(QString json, double callbackId); - Q_INVOKABLE void multiAccountReset(double callbackId); - Q_INVOKABLE void multiAccountDeriveAddresses(QString json, double callbackId); - Q_INVOKABLE void multiAccountImportMnemonic(QString json, double callbackId); - Q_INVOKABLE void multiAccountStoreDerived(QString json, double callbackId); - Q_INVOKABLE void multiAccountGenerateAndDeriveAddresses(QString json, - double callbackId); - Q_INVOKABLE void verify(QString address, QString password, double callbackId); - Q_INVOKABLE void sendTransaction(QString txArgsJSON, QString password, - double callbackId); - Q_INVOKABLE void signMessage(QString rpcParams, double callbackId); - Q_INVOKABLE void signTypedData(QString data, QString account, - QString password, double callbackId); - - Q_INVOKABLE void signGroupMembership(QString content, double callbackId); - Q_INVOKABLE void extractGroupMembershipSignatures(QString signatures, - double callbackId); - Q_INVOKABLE void getNodesFromContract(QString url, QString address, - double callbackId); - Q_INVOKABLE void chaosModeUpdate(bool on, double callbackId); - - Q_INVOKABLE void setAdjustResize(); - Q_INVOKABLE void setAdjustPan(); - Q_INVOKABLE void setSoftInputMode(int i); - - Q_INVOKABLE void clearCookies(); - Q_INVOKABLE void clearStorageAPIs(); - Q_INVOKABLE void callRPC(QString payload, double callbackId); - Q_INVOKABLE void callPrivateRPC(QString payload, double callbackId); - Q_INVOKABLE void closeApplication(); - Q_INVOKABLE void connectionChange(QString type, bool isExpensive); - Q_INVOKABLE void appStateChange(QString type); - - Q_INVOKABLE static bool JSCEnabled(); - Q_INVOKABLE static void statusGoEventCallback(const char *event); - - Q_INVOKABLE QString identicon(QString publicKey); - Q_INVOKABLE void identiconAsync(QString publicKey, double callbackId); - Q_INVOKABLE QString generateAlias(QString publicKey); - Q_INVOKABLE void generateAliasAsync(QString publicKey, double callbackId); - Q_INVOKABLE void generateAliasAndIdenticonAsync(QString publicKey, double callbackId); - - void emitStatusGoEvent(QString event); - -Q_SIGNALS: - void statusGoEvent(QString event); - -private Q_SLOTS: - void onStatusGoEvent(QString event); - -private: - void logStatusGoResult(const char *methodName, const char *result); - - QString prepareDirAndUpdateConfig(QString configString); - QScopedPointer d_ptr; - QString d_gethLogFilePath; -}; - -#endif // RCTSTATUS_H diff --git a/nix/deps/nodejs/default.nix b/nix/deps/nodejs/default.nix index 026c3a2b27..7d99c95335 100644 --- a/nix/deps/nodejs/default.nix +++ b/nix/deps/nodejs/default.nix @@ -2,8 +2,8 @@ let version = lib.fileContents ../../../VERSION; - yarnLock = ../../../mobile/js_files/yarn.lock; - packageJSON = ../../../mobile/js_files/package.json; + yarnLock = ../../../yarn.lock; + packageJSON = ../../../package.json; packageJSONContent = lib.importJSON packageJSON; in # Create a yarn package for our project that contains all the dependecies. diff --git a/nix/desktop/base-image/default.nix b/nix/desktop/base-image/default.nix deleted file mode 100644 index 6f159268f8..0000000000 --- a/nix/desktop/base-image/default.nix +++ /dev/null @@ -1,58 +0,0 @@ -{ stdenv, fetchurl, unzip }: - -let - defaultPackageSource = { - version = "20191002"; - hostSystem = "x86_64-linux"; - }; - packageSources = { - "linux" = defaultPackageSource // { - sha256 = "1xqa8k00kgld82d3knfbwn90nsw2f7s8h8r8188q966fk99m4g0h"; - }; - "macos" = defaultPackageSource // { - sha256 = "0nmv3agaipdlhl38wh58bgyb8pdc454gxxzig9x0sw5zp9jsaziq"; - hostSystem = "x86_64-darwin"; - }; - "windows" = defaultPackageSource // { - sha256 = "0p6amqz5942100zm3szwbksp2rp08ybfmgiz4bmviggg8391i0zr"; - }; - }; - packageFactory = target-os: - let packageSource = packageSources."${target-os}"; - in stdenv.mkDerivation rec { - inherit (packageSource) version; - pname = "status-im-${target-os}-desktop-files"; - - src = assert stdenv.lib.asserts.assertMsg - (stdenv.hostPlatform.system == packageSource.hostSystem) - "${pname} is not supported on ${stdenv.hostPlatform.system}"; - fetchurl { - inherit (packageSource) sha256; - url = "https://desktop-app-files.ams3.digitaloceanspaces.com/status-im-desktop-files-${target-os}-${packageSource.version}.zip"; - }; - - nativeBuildInputs = [ unzip ]; - - phases = [ "unpackPhase" ]; - unpackPhase = '' - mkdir -p $out/src - unzip $src -d $out/src - ''; - - meta = with stdenv.lib; { - description = "A base image for Status Desktop release distributions"; - homepage = https://desktop-app-files.ams3.digitaloceanspaces.com/; - license = licenses.gpl3; - maintainers = [ maintainers.pombeirp ]; - platforms = platforms.linux ++ platforms.darwin; - }; - }; - -in target-os: - let package = (packageFactory target-os); - in package // { - shellHook = '' - ${package.shellHook or ""} - export STATUSREACT_${stdenv.lib.toUpper target-os}_BASEIMAGE_PATH="${package}/src" - ''; -} diff --git a/nix/desktop/default.nix b/nix/desktop/default.nix deleted file mode 100644 index 8000aef741..0000000000 --- a/nix/desktop/default.nix +++ /dev/null @@ -1,49 +0,0 @@ -{ stdenv, lib, pkgs, mkShell, callPackage -, status-go, qtkeychain-src }: - -let - inherit (stdenv) isLinux isDarwin; - inherit (lib) mapAttrs catAttrs optional unique mergeSh; - - # utilities - baseImageFactory = callPackage ./base-image { }; - - # main targets - linux = callPackage ./linux { inherit status-go baseImageFactory; }; - macos = callPackage ./macos { inherit status-go baseImageFactory; }; - windows = callPackage ./windows { inherit baseImageFactory; }; - - selectedSources = - optional isLinux linux ++ - optional isLinux windows ++ - optional isDarwin macos; - - # default shell for desktop builds - default = mkShell { - buildInputs = with pkgs; unique ([ - file moreutils cmake - extra-cmake-modules - qtkeychain-src - ] ++ (catAttrs "buildInputs" selectedSources)); - - inputsFrom = [ status-go.desktop ] - ++ (catAttrs "shell" selectedSources); - - # These variables are used by the Status Desktop CMake build script in: - # - modules/react-native-status/desktop/CMakeLists.txt - shellHook = '' - export STATUS_GO_DESKTOP_INCLUDEDIR=${status-go.desktop}/include - export STATUS_GO_DESKTOP_LIBDIR=${status-go.desktop}/lib - # QT Keychain library sources - export QTKEYCHAIN_SOURCES="${qtkeychain-src}/src" - ''; - }; - - # for merging default shell - mergeDefaultShell = (key: val: { shell = mergeSh default [ val.shell ]; }); - -in { - shell = default; -} - # merge default shell with platform sub-shells - // mapAttrs mergeDefaultShell { inherit linux windows macos; } diff --git a/nix/desktop/linux/default.nix b/nix/desktop/linux/default.nix deleted file mode 100644 index 3e73cddeb8..0000000000 --- a/nix/desktop/linux/default.nix +++ /dev/null @@ -1,30 +0,0 @@ -{ lib, stdenv, mkShell, callPackage -# pkgs -, appimagekit, linuxdeployqt, patchelf, qt5custom -# custom arguments -, status-go, baseImageFactory }: - -assert lib.assertMsg stdenv.isLinux "Building Linux app can work only on Linux!"; - -let - inherit (lib) concatStrings catAttrs; - baseImage = baseImageFactory "linux"; - -in rec { - buildInputs = [ - appimagekit - linuxdeployqt - patchelf - qt5custom - ]; - - shell = mkShell { - inherit buildInputs; - inputsFrom = [ baseImage status-go ]; - shellHook = '' - export QT_PATH="${qt5custom}" - export QT_BASEBIN_PATH="${qt5custom}/bin" - export PATH="$QT_BASEBIN_PATH:$PATH" - ''; - }; -} diff --git a/nix/desktop/macos/default.nix b/nix/desktop/macos/default.nix deleted file mode 100644 index 365475bcd8..0000000000 --- a/nix/desktop/macos/default.nix +++ /dev/null @@ -1,32 +0,0 @@ -{ stdenv, lib, callPackage, mkShell, - gnupg22, darwin, qt5custom, status-go, baseImageFactory }: - -assert lib.assertMsg stdenv.isDarwin "Building MacOS app can work only on MacOS!"; - -let - inherit (lib) concatStrings catAttrs; - inherit (darwin.apple_sdk.frameworks) - AppKit Cocoa Foundation OpenGL CoreFoundation; - - baseImage = baseImageFactory "macos"; - -in { - shell = mkShell { - buildInputs = [ - gnupg22 baseImage qt5custom - darwin.cf-private - AppKit Cocoa Foundation OpenGL - ]; - - inputsFrom = [ - status-go baseImage - ]; - - shellHook = '' - export NIX_TARGET_LDFLAGS="-F${CoreFoundation}/Library/Frameworks -framework CoreFoundation $NIX_TARGET_LDFLAGS" - export QT_PATH="${qt5custom}" - export QT_BASEBIN_PATH="${qt5custom}/bin" - export PATH="$QT_BASEBIN_PATH/bin:$PATH" - ''; - }; -} diff --git a/nix/desktop/windows/default.nix b/nix/desktop/windows/default.nix deleted file mode 100644 index d6f5e96201..0000000000 --- a/nix/desktop/windows/default.nix +++ /dev/null @@ -1,23 +0,0 @@ -{ stdenv, lib, mkShell, conan, nsis, go, baseImageFactory }: - -assert lib.assertMsg stdenv.isLinux "Building Windows app can work only on Linux!"; - -let - baseImage = baseImageFactory "windows"; - -in rec { - buildInputs = lib.optionals stdenv.isLinux [ - conan - nsis - baseImage - go # Needed for Windows build only - ]; - - shell = mkShell { - inherit buildInputs; - shellHook = '' - ${baseImage.shellHook} - unset QT_PATH - ''; - }; -} diff --git a/nix/mobile/android/default.nix b/nix/mobile/android/default.nix index 7d3ab07b3e..3ba07c7aad 100644 --- a/nix/mobile/android/default.nix +++ b/nix/mobile/android/default.nix @@ -42,15 +42,8 @@ in { # required by some makefile targets export STATUS_GO_ANDROID_LIBDIR=${status-go} - { - cd "$STATUS_REACT_HOME" - - # Set up symlinks to mobile enviroment in project root - ln -sf ./mobile/js_files/* ./ - - # check if node modules changed and if so install them - $STATUS_REACT_HOME/nix/scripts/node_modules.sh ${deps.nodejs-patched} - } + # check if node modules changed and if so install them + $STATUS_REACT_HOME/nix/scripts/node_modules.sh ${deps.nodejs-patched} ''; }; } diff --git a/nix/mobile/android/jsbundle/default.nix b/nix/mobile/android/jsbundle/default.nix index 108f06903c..59d690c992 100644 --- a/nix/mobile/android/jsbundle/default.nix +++ b/nix/mobile/android/jsbundle/default.nix @@ -26,7 +26,7 @@ stdenv.mkDerivation { # I want to avoid including the whole .git directory ".git/HEAD" ".git/objects" ".git/refs/heads/.*" # shadow-cljs expects these for deps resolution - "mobile/js_files/package.json" "mobile/js_files/yarn.lock" + "package.json" "yarn.lock" # build stat's images to check if they exist "resources/.*" "translations/.*" ]; @@ -50,10 +50,6 @@ stdenv.mkDerivation { configurePhase = '' # Symlink Node.js modules to build directory ln -s ${deps.nodejs}/node_modules - - # Symlink Node.JS dependency definitions - ln -sf mobile/js_files/package.json ./ - ln -sf mobile/js_files/yarn.lock ./ ''; buildPhase = '' # Assemble CLASSPATH from available clojure dependencies. diff --git a/nix/mobile/android/release.nix b/nix/mobile/android/release.nix index 9deccb40a5..90d240d550 100644 --- a/nix/mobile/android/release.nix +++ b/nix/mobile/android/release.nix @@ -53,7 +53,8 @@ in stdenv.mkDerivation rec { filter = lib.mkFilter { root = path; include = [ - "mobile/js_files.*" "resources/.*" "translations/.*" + "package.json" "yarn.lock" "metro.config.js" + "resources/.*" "translations/.*" "modules/react-native-status/android.*" "android/.*" envFileName "VERSION" ".watchmanconfig" "status-go-version.json" "react-native.config.js" @@ -94,9 +95,6 @@ in stdenv.mkDerivation rec { # Ensure we have the right .env file cp -f ./${envFileName} ./.env - # create mobile node/yarn symlinks - ln -sf ./mobile/js_files/* ./ - # Copy index.js and app/ input files cp -ra --no-preserve=ownership ${jsbundle}/* ./ diff --git a/nix/mobile/default.nix b/nix/mobile/default.nix index 9e25fd4c30..1d29692a45 100644 --- a/nix/mobile/default.nix +++ b/nix/mobile/default.nix @@ -25,10 +25,6 @@ let in { shell = mkShell { inputsFrom = (catAttrs "shell" selectedSources); - shellHooks = '' - # create mobile node/yarn symlinks - ln -sf $STATUS_REACT_HOME/mobile/js_files/* $STATUS_REACT_HOME/ - ''; }; # TARGETS diff --git a/nix/mobile/ios/default.nix b/nix/mobile/ios/default.nix index 7fd79990f2..c04b39fdd1 100644 --- a/nix/mobile/ios/default.nix +++ b/nix/mobile/ios/default.nix @@ -23,15 +23,8 @@ in { ]; shellHook = '' - { - cd "$STATUS_REACT_HOME" - - # Set up symlinks to mobile enviroment in project root - ln -sf ./mobile/js_files/* ./ - - # check if node modules changed and if so install them - ./nix/scripts/node_modules.sh "${deps.nodejs-patched}" - } + # check if node modules changed and if so install them + ./nix/scripts/node_modules.sh "${deps.nodejs-patched}" ''; }; diff --git a/nix/overlay.nix b/nix/overlay.nix index 3a1f61ad3c..541dcc4dff 100644 --- a/nix/overlay.nix +++ b/nix/overlay.nix @@ -44,10 +44,6 @@ in { # Custom packages aapt2 = callPackage ./pkgs/aapt2 { }; gomobile = callPackage ./pkgs/gomobile { }; - qt5custom = callPackage ./pkgs/qt5custom { }; - qtkeychain-src = callPackage ./pkgs/qtkeychain-src { }; - appimagekit = callPackage ./pkgs/appimagekit { }; - linuxdeployqt = callPackage ./pkgs/linuxdeployqt { inherit (self) appimagekit; }; patchMavenSources = callPackage ./pkgs/patch-maven-srcs { }; goMavenResolver = callPackage ./pkgs/go-maven-resolver { }; } diff --git a/nix/pkgs/appimagekit/default.nix b/nix/pkgs/appimagekit/default.nix deleted file mode 100644 index 2ef49e5b23..0000000000 --- a/nix/pkgs/appimagekit/default.nix +++ /dev/null @@ -1,122 +0,0 @@ -{ stdenv, fetchFromGitHub -, pkgconfig, cmake, autoconf, automake, libtool -, wget, xxd, desktop-file-utils, file -, gnupg, glib, zlib, cairo, openssl, fuse, xz, squashfuse, inotify-tools, libarchive -, squashfsTools -, gtest -}: - -let - owner = "AppImage"; - repo = "AppImageKit"; - rev = "b0859501df61cde198b54a317c03b41dbafc98b1"; - sha256 = "0qqg79jw9w9rs8c2w3lla4kz62ihafrf7jm370pp1dl8y2i81jzg"; - - appimagekit_src = fetchFromGitHub { - name = "${repo}-${stdenv.lib.strings.substring 0 7 rev}-source"; - inherit owner repo rev sha256; - }; - - # squashfuse adapted to nix from cmake experession in "${appimagekit_src}/cmake/dependencies.cmake" - appimagekit_squashfuse = squashfuse.overrideAttrs (attrs: rec { - pname = "squashfuse"; - version = "20161009"; - - src = fetchFromGitHub { - name = "squashfuse-source"; - owner = "vasi"; - repo = "squashfuse"; - rev = "1f980303b89c779eabfd0a0fdd36d6a7a311bf92"; - sha256 = "0lrw9ff8k15l34wjwyllw3i35hl0cms97jj2hpnr2q8ipgxpb5q5"; - }; - - patches = [ - "${appimagekit_src}/squashfuse.patch" - "${appimagekit_src}/squashfuse_dlopen.patch" - ]; - - postPatch = '' - cp -v ${appimagekit_src}/squashfuse_dlopen.[hc] . - ''; - - preConfigure = '' - sed -i "/PKG_CHECK_MODULES.*/,/,:./d" configure - sed -i "s/typedef off_t sqfs_off_t/typedef int64_t sqfs_off_t/g" common.h - ''; - - configureFlags = [ - "--disable-demo" "--disable-high-level" "--without-lzo" "--without-lz4" - ]; - - postConfigure = '' - sed -i "s|XZ_LIBS = -llzma |XZ_LIBS = -Bstatic -llzma/|g" Makefile - ''; - - # only static libs and header files - installPhase = '' - mkdir -p $out/lib $out/include - cp -v ./.libs/*.a $out/lib - cp -v ./*.h $out/include - ''; - }); - -in stdenv.mkDerivation rec { - pname = "appimagekit"; - version = "20180727"; - - src = appimagekit_src; - - patches = [ ./nix.patch ]; - - nativeBuildInputs = [ - pkgconfig cmake autoconf automake libtool wget xxd - desktop-file-utils - ]; - - buildInputs = [ - gnupg - glib zlib cairo openssl fuse - xz inotify-tools libarchive - squashfsTools - ]; - - preConfigure = '' - export HOME=$(pwd) - ''; - - cmakeFlags = [ - "-DUSE_SYSTEM_XZ=ON" - "-DUSE_SYSTEM_SQUASHFUSE=ON" - "-DSQUASHFUSE=${appimagekit_squashfuse}" - "-DUSE_SYSTEM_INOTIFY_TOOLS=ON" - "-DUSE_SYSTEM_LIBARCHIVE=ON" - "-DUSE_SYSTEM_GTEST=ON" - "-DUSE_SYSTEM_MKSQUASHFS=ON" - "-DBUILD_TESTING=${if doCheck then "ON" else "OFF"}" - ]; - - postInstall = '' - cp "${stdenv.lib.makeBinPath [ squashfsTools ]}/mksquashfs" "$out/lib/appimagekit/" - cp "${stdenv.lib.makeBinPath [ desktop-file-utils ]}/desktop-file-validate" "$out/bin" - ''; - - checkInputs = [ gtest ]; - doCheck = false; # fails 1 out of 4 tests, I'm too lazy to debug why - - # for debugging - passthru = { - squashfuse = appimagekit_squashfuse; - }; - - meta = with stdenv.lib; { - description = "A tool to package desktop applications as AppImages"; - longDescription = '' - AppImageKit is an implementation of the AppImage format that - provides tools such as appimagetool and appimaged for handling - AppImages. - ''; - license = licenses.mit; - homepage = src.meta.homepage; - platforms = platforms.linux; - }; -} diff --git a/nix/pkgs/appimagekit/nix.patch b/nix/pkgs/appimagekit/nix.patch deleted file mode 100644 index 4162e698c7..0000000000 --- a/nix/pkgs/appimagekit/nix.patch +++ /dev/null @@ -1,197 +0,0 @@ -diff --git a/cmake/dependencies.cmake b/cmake/dependencies.cmake -index ea133a3..916606c 100644 ---- a/cmake/dependencies.cmake -+++ b/cmake/dependencies.cmake -@@ -224,21 +224,23 @@ if(NOT USE_SYSTEM_XZ) - LIBRARY_DIRS /lib/ - LIBRARIES "/lib/liblzma.a" - INCLUDE_DIRS "/src/liblzma/api/" - ) - else() - message(STATUS "Using system xz") - - import_pkgconfig_target(TARGET_NAME xz PKGCONFIG_TARGET liblzma STATIC) - endif() - -+set(USE_SYSTEM_SQUASHFUSE OFF CACHE BOOL "Use system squashfuse instead of building our own") - -+if(NOT USE_SYSTEM_SQUASHFUSE) - # as distros don't provide suitable squashfuse and squashfs-tools, those dependencies are bundled in, can, and should - # be used from this repository - # TODO: implement out-of-source builds for squashfuse, as for the other dependencies - configure_file( - ${CMAKE_CURRENT_SOURCE_DIR}/src/patch-squashfuse.sh.in - ${CMAKE_CURRENT_BINARY_DIR}/patch-squashfuse.sh - @ONLY - ) - - ExternalProject_Add(squashfuse-EXTERNAL -@@ -259,20 +261,34 @@ ExternalProject_Add(squashfuse-EXTERNAL - BUILD_IN_SOURCE ON - INSTALL_COMMAND ${MAKE} install - ) - - import_external_project( - TARGET_NAME squashfuse - EXT_PROJECT_NAME squashfuse-EXTERNAL - LIBRARIES "/.libs/libsquashfuse.a;/.libs/libsquashfuse_ll.a;/.libs/libfuseprivate.a" - INCLUDE_DIRS "" - ) -+else() -+ message(STATUS "Using system squashfsfuse from ${SQUASHFUSE}") -+ -+ add_library(squashfuse INTERFACE IMPORTED GLOBAL) -+ -+ set(squashfuse_INCLUDE_DIRS "${SQUASHFUSE}/include") -+ set(squashfuse_LIBRARIES "${SQUASHFUSE}/lib/libsquashfuse.a;${SQUASHFUSE}/lib/libsquashfuse_ll.a;${SQUASHFUSE}/lib/libfuseprivate.a") -+ -+ set_property( -+ TARGET squashfuse -+ PROPERTY INTERFACE_LINK_LIBRARIES ${squashfuse_LIBRARIES} -+ ) -+ include_directories(${squashfuse_INCLUDE_DIRS}) -+endif() - - - set(USE_SYSTEM_INOTIFY_TOOLS OFF CACHE BOOL "Use system libinotifytools instead of building our own") - - if(NOT USE_SYSTEM_INOTIFY_TOOLS) - message(STATUS "Downloading and building inotify-tools") - - # TODO: build out of source - ExternalProject_Add(inotify-tools-EXTERNAL - URL https://github.com/downloads/rvoicilas/inotify-tools/inotify-tools-3.14.tar.gz -@@ -345,20 +361,23 @@ if(NOT USE_SYSTEM_GTEST) - INCLUDE_DIRS "/include/" - ) - else() - message(STATUS "Using system GTest") - - import_find_pkg_target(gtest GTest GTEST) - endif() - endif() - - -+set(USE_SYSTEM_MKSQUASHFS OFF CACHE BOOL "Use system mksquashfs instead of downloading and building our own") -+ -+if(NOT USE_SYSTEM_MKSQUASHFS) - # TODO: allow using system wide mksquashfs - set(mksquashfs_cflags "-DXZ_SUPPORT ${CFLAGS}") - - if(xz_LIBRARIES MATCHES "\\.a$") - set(mksquashfs_ldflags "${xz_LIBRARIES}") - else() - set(mksquashfs_ldflags "-l${xz_LIBRARIES}") - endif() - - if(xz_INCLUDE_DIRS) -@@ -385,20 +404,25 @@ ExternalProject_Add(mksquashfs - INSTALL_COMMAND ${MAKE} -C squashfs-tools/ install INSTALL_DIR= - ) - - ExternalProject_Get_Property(mksquashfs INSTALL_DIR) - set(mksquashfs_INSTALL_DIR "${INSTALL_DIR}") - mark_as_advanced(mksquashfs_INSTALL_DIR) - - # for later use when packaging as an AppImage - set(mksquashfs_BINARY "${mksquashfs_INSTALL_DIR}/mksquashfs") - mark_as_advanced(mksquashfs_BINARY) -+else() -+ message(STATUS "Using system mksquashfs") -+ -+ set(mksquashfs_BINARY "mksquashfs") -+endif() - - - #### build dependency configuration #### - - # only have to build custom xz when not using system libxz - if(TARGET xz-EXTERNAL) - if(TARGET squashfuse-EXTERNAL) - ExternalProject_Add_StepDependencies(squashfuse-EXTERNAL configure xz-EXTERNAL) - endif() - if(TARGET mksquashfs) -diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt -index 3f25442..974ed0e 100644 ---- a/src/CMakeLists.txt -+++ b/src/CMakeLists.txt -@@ -197,27 +197,27 @@ target_include_directories(digest_md5 - - target_link_libraries(digest_md5 - PRIVATE - libglib - ) - - - # install binaries - if(AUXILIARY_FILES_DESTINATION) - install( -- PROGRAMS ${mksquashfs_INSTALL_DIR}/mksquashfs ${CMAKE_CURRENT_BINARY_DIR}/runtime -+ PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/runtime - DESTINATION ${AUXILIARY_FILES_DESTINATION} - COMPONENT applications - ) - else() - install( -- PROGRAMS ${mksquashfs_INSTALL_DIR}/mksquashfs ${CMAKE_CURRENT_BINARY_DIR}/runtime -+ PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/runtime - DESTINATION bin - COMPONENT applications - ) - endif() - - install( - TARGETS AppRun appimagetool digest validate - RUNTIME DESTINATION bin COMPONENT applications - LIBRARY DESTINATION lib COMPONENT applications - ARCHIVE DESTINATION lib/static COMPONENT applications -diff --git a/src/shared.c b/src/shared.c -index cf5fd5c..4f48dbc 100644 ---- a/src/shared.c -+++ b/src/shared.c -@@ -34,21 +34,21 @@ - #include - #include - #include - #include - - #include - #include - #include - #include - --#include "squashfuse.h" -+#include - #include - #include "getsection.h" - #include "elf.h" - - #include "xdg-basedir.h" - - // own header - #include "shared.h" - - #if HAVE_LIBARCHIVE3 == 1 // CentOS -diff --git a/src/appimagetool.c b/src/appimagetool.c -index 69beaa1..c55d6b1 100644 ---- a/src/appimagetool.c -+++ b/src/appimagetool.c -@@ -200,9 +200,6 @@ int sfs_mksquashfs(char *source, char *destination, int offset) { - args[i++] = exclude_file; - } - -- args[i++] = "-mkfs-fixed-time"; -- args[i++] = "0"; -- - args[i++] = 0; - - if (verbose) { -@@ -348,7 +345,7 @@ void extract_arch_from_text(gchar *archname, const gchar* sourcename, bool* arch - void guess_arch_of_file(const gchar *archfile, bool* archs) { - char line[PATH_MAX]; - char command[PATH_MAX]; -- sprintf(command, "/usr/bin/file -L -N -b %s", archfile); -+ sprintf(command, "file -L -N -b %s", archfile); - FILE* fp = popen(command, "r"); - if (fp == NULL) - die("Failed to run file command"); diff --git a/nix/pkgs/linuxdeployqt/default.nix b/nix/pkgs/linuxdeployqt/default.nix deleted file mode 100644 index ea7caead36..0000000000 --- a/nix/pkgs/linuxdeployqt/default.nix +++ /dev/null @@ -1,48 +0,0 @@ -{ pkgs, stdenv, fetchFromGitHub, appimagekit }: - -with pkgs; - -stdenv.mkDerivation rec { - pname = "linuxdeployqt"; - version = "20181215"; - owner = "probonopd"; - repo = "linuxdeployqt"; - rev = "600fc20ea73ee937a402a2bb6b3663d93fcc1d4b"; - sha256 = "05kvkfbhsyadlcggl63rhrw5s36d8qxs8gyihrjn2cjk42xx8r7j"; - - src = - if stdenv.hostPlatform.system == "x86_64-linux" then - fetchFromGitHub { - name = "${repo}-${stdenv.lib.strings.substring 0 7 rev}-source"; - inherit owner repo rev sha256; - } - else throw "${name} is not supported on ${stdenv.hostPlatform.system}"; - - # Add our own patch to make linuxdeployqt correctly include all /nix/store rpaths to LD_LIBRARY_PATH so we don't have to calculate that ourselves - patches = [ ./linuxdeployqt.patch ]; - - buildInputs = [ qt5.qtbase appimagekit ]; - nativeBuildInputs = [ wget ]; - - buildPhase = '' - qmake - make - ''; - - installPhase = '' - runHook preInstall - - mkdir -p $out/bin - cp -r bin/linuxdeployqt $out/bin/ - - runHook postInstall - ''; - - meta = { - description = "Makes Linux applications self-contained by copying in the libraries and plugins that the application uses, and optionally generates an AppImage. Can be used for Qt and other applications"; - homepage = https://github.com/probonopd/linuxdeployqt/; - license = stdenv.lib.licenses.gpl3; - maintainers = [ stdenv.lib.maintainers.pombeirp ]; - platforms = stdenv.lib.platforms.linux; - }; -} diff --git a/nix/pkgs/linuxdeployqt/linuxdeployqt.patch b/nix/pkgs/linuxdeployqt/linuxdeployqt.patch deleted file mode 100644 index 150ff307c0..0000000000 --- a/nix/pkgs/linuxdeployqt/linuxdeployqt.patch +++ /dev/null @@ -1,39 +0,0 @@ -diff --git a/tools/linuxdeployqt/shared.cpp b/tools/linuxdeployqt/shared.cpp -index 4c0919a..1a136e0 100644 ---- a/tools/linuxdeployqt/shared.cpp -+++ b/tools/linuxdeployqt/shared.cpp -@@ -833,20 +833,23 @@ void changeIdentification(const QString &id, const QString &binaryPath) - LogNormal() << "Checking rpath in" << binaryPath; - QString oldRpath = runPatchelf(QStringList() << "--print-rpath" << binaryPath); - LogDebug() << "oldRpath:" << oldRpath; -- if (oldRpath.startsWith("/")){ -- LogDebug() << "Old rpath in" << binaryPath << "starts with /, hence adding it to LD_LIBRARY_PATH"; -- // FIXME: Split along ":" characters, check each one, only append to LD_LIBRARY_PATH if not already there -- QProcessEnvironment env = QProcessEnvironment::systemEnvironment(); -- QString oldPath = env.value("LD_LIBRARY_PATH"); -- if (not oldPath.contains(oldRpath)){ -- QString newPath = oldRpath + ":" + oldPath; // FIXME: If we use a ldd replacement, we still need to observe this path -- // FIXME: Directory layout might be different for system Qt; cannot assume lib/ to always be inside the Qt directory -- LogDebug() << "Added to LD_LIBRARY_PATH:" << newPath; -- setenv("LD_LIBRARY_PATH",newPath.toUtf8().constData(),1); -+ -+ QStringList rpath = oldRpath.split(":", QString::SkipEmptyParts); -+ foreach(QString path, QStringList(rpath)) { -+ if (path.startsWith("/")){ -+ LogDebug() << "Old rpath in" << binaryPath << "starts with /, hence adding it to LD_LIBRARY_PATH"; -+ // FIXME: Split along ":" characters, check each one, only append to LD_LIBRARY_PATH if not already there -+ QProcessEnvironment env = QProcessEnvironment::systemEnvironment(); -+ QString oldPath = env.value("LD_LIBRARY_PATH"); -+ if (not oldPath.contains(oldRpath)){ -+ QString newPath = oldRpath + ":" + oldPath; // FIXME: If we use a ldd replacement, we still need to observe this path -+ // FIXME: Directory layout might be different for system Qt; cannot assume lib/ to always be inside the Qt directory -+ LogDebug() << "Added to LD_LIBRARY_PATH:" << newPath; -+ setenv("LD_LIBRARY_PATH",newPath.toUtf8().constData(),1); -+ } - } - } - -- QStringList rpath = oldRpath.split(":", QString::SkipEmptyParts); - rpath.prepend(id); - rpath.removeDuplicates(); - foreach(QString path, QStringList(rpath)) { diff --git a/nix/pkgs/qt5custom/default.nix b/nix/pkgs/qt5custom/default.nix deleted file mode 100644 index ccf711329a..0000000000 --- a/nix/pkgs/qt5custom/default.nix +++ /dev/null @@ -1,11 +0,0 @@ -{ qt5 }: - -# Custom collection of QT libraries for Status desktop App -qt5.env "qt-status-${qt5.qtbase.version}" (with qt5; [ - qtbase - qtsvg - qtwebengine - qtwebview - qtdeclarative - qtquickcontrols2 -]) diff --git a/nix/pkgs/qtkeychain-src/default.nix b/nix/pkgs/qtkeychain-src/default.nix deleted file mode 100644 index 1ef48b7fcb..0000000000 --- a/nix/pkgs/qtkeychain-src/default.nix +++ /dev/null @@ -1,40 +0,0 @@ -{ pkgs, stdenv, fetchFromGitHub }: - -let - version = "0.8.90"; - # This revision will get used in: - # https://github.com/status-im/react-native-keychain/blob/master/desktop/CMakeLists.txt#L45 - rev = "d3c606c55adf8c2c2747556055652b3469f6c4c2"; - sha256 = "1gqw3g0j46aswncm8fgy419lp1fp2y2nild82hs18xra5albvf3i"; - -in stdenv.mkDerivation { - name = "qtkeychain-patched-source"; - version = "${version}-${stdenv.lib.strings.substring 0 7 rev}"; - - src = fetchFromGitHub { - inherit rev sha256; - owner = "status-im"; - repo = "qtkeychain"; - name = "qtkeychain-source-${version}"; - }; - - phases = [ "unpackPhase" ]; - unpackPhase = '' - mkdir -p $out/src - cp -r $src/* $out/src/ - substituteInPlace $out/src/CMakeLists.txt \ - --replace "cmake_minimum_required(VERSION 2.8.11)" "cmake_minimum_required(VERSION 3.12.1)" \ - --replace "project(qtkeychain)" "project(qtkeychain VERSION ${version})" \ - --replace "set(QTKEYCHAIN_VERSION 0.8.90)" "set(QTKEYCHAIN_VERSION ${version})" \ - --replace "{QTKEYCHAIN_VERSION}\" VARIABLE_PREFIX SNORE" "QTKEYCHAIN_VERSION VARIABLE_PREFIX SNORE" \ - --replace "\"\$QTKEYCHAIN_VERSION" qtkeychain - ''; - - meta = with stdenv.lib; { - description = "Patched sources for qtkeychain, a platform-independent Qt API for storing passwords securely"; - homepage = https://github.com/status-im/qtkeychain; - license = licenses.bsd3; - maintainers = [ maintainers.pombeirp ]; - platforms = with platforms; darwin ++ linux; - }; -} diff --git a/nix/scripts/shell.sh b/nix/scripts/shell.sh index 746ea887a8..00e1f66e4c 100755 --- a/nix/scripts/shell.sh +++ b/nix/scripts/shell.sh @@ -32,14 +32,6 @@ fi entryPoint="default.nix" nixArgs+=("--attr shells.${TARGET}") -if [[ "$TARGET" =~ (linux|windows|darwin|macos) ]]; then - # This is a dirty workaround because 'yarn install' is an impure operation, - # so we need to call it from an impure shell. - # Hopefully we'll be able to fix this later on with something like yarn2nix - # TODO: Manage node dependencies for desktop with yarn2nix - nix-shell ${nixArgs[@]} --run "scripts/prepare-for-desktop-platform.sh" default.nix || exit -fi - config='' if [ -n "${STATUS_GO_SRC_OVERRIDE}" ]; then config+="status-im.status-go.src-override=\"${STATUS_GO_SRC_OVERRIDE}\";" diff --git a/nix/shells.nix b/nix/shells.nix index 76a60d55a4..e738347cc3 100644 --- a/nix/shells.nix +++ b/nix/shells.nix @@ -64,10 +64,6 @@ let # helpers for use with target argument ios = targets.mobile.ios.shell; android = targets.mobile.android.shell; - desktop = targets.desktop.shell; - linux = targets.desktop.linux.shell; - macos = targets.desktop.macos.shell; - windows = targets.desktop.macos.shell; status-go = targets.status-go.mobile.android; }; diff --git a/nix/status-go/default.nix b/nix/status-go/default.nix index 4e37e1c1d1..a4e4768975 100644 --- a/nix/status-go/default.nix +++ b/nix/status-go/default.nix @@ -38,11 +38,7 @@ in rec { inherit meta source goBuildFlags goBuildLdFlags; }; - desktop = callPackage ./desktop { - inherit meta source goBuildFlags goBuildLdFlags; - }; - shell = mkShell { - inputsFrom = [ mobile.android mobile.ios desktop ]; + inputsFrom = [ mobile.android mobile.ios ]; }; } diff --git a/nix/status-go/desktop/default.nix b/nix/status-go/desktop/default.nix deleted file mode 100644 index d9b6955e25..0000000000 --- a/nix/status-go/desktop/default.nix +++ /dev/null @@ -1,60 +0,0 @@ -{ lib, stdenv, utils, go, buildGoPackage -# object with source attributes -, meta , source -, goBuildFlags -, goBuildLdFlags -, outputFileName ? "libstatus.a" }: - -let - inherit (lib) concatStringsSep optionalString concatMapStrings; - - removeReferences = [ go ]; - removeExpr = refs: ''remove-references-to ${concatMapStrings (ref: " -t ${ref}") refs}''; - - hostSystem = stdenv.hostPlatform.system; - -in buildGoPackage { - pname = source.repo; - version = "${source.cleanVersion}-${source.shortRev}"; - - inherit meta; - inherit (source) src goPackagePath; - - # Fixes Cgo related build failures (see https://github.com/NixOS/nixpkgs/issues/25959 ) - hardeningDisable = [ "fortify" ]; - - # Ensure XCode is present, instead of failing at the end of the build - preConfigure = optionalString stdenv.isDarwin utils.enforceXCodeAvailable; - - buildMessage = "Building desktop library"; - - #GOOS=windows GOARCH=amd64 CGO_ENABLED=1 go build ${goBuildFlags} -buildmode=c-archive -o $out/${outputFileName} ./lib - buildPhase = let - CGO_LDFLAGS = concatStringsSep " " goBuildLdFlags; - in '' - pushd "$NIX_BUILD_TOP/go/src/${source.goPackagePath}" >/dev/null - - export GO111MODULE=off - - go build -o $out/${outputFileName} \ - ${concatStringsSep " " goBuildFlags} \ - -buildmode=c-archive \ - -ldflags='${CGO_LDFLAGS}' \ - ./lib - - popd >/dev/null - ''; - - # replace hardcoded paths to go package in /nix/store, otherwise Nix will fail the build - fixupPhase = '' - find $out -type f -exec ${removeExpr removeReferences} '{}' + || true - ''; - - installPhase = '' - mkdir -p $out/lib/${hostSystem} $out/include - mv $out/${outputFileName} $out/lib/${hostSystem} - mv $out/libstatus.h $out/include - ''; - - outputs = [ "out" ]; -} diff --git a/nix/status-go/desktop/shell.nix b/nix/status-go/desktop/shell.nix deleted file mode 100644 index e0fb972019..0000000000 --- a/nix/status-go/desktop/shell.nix +++ /dev/null @@ -1,15 +0,0 @@ -# -# This is currently unused but is a reminder of how we used to build desktop app -# - -{ mkShell, status-go-desktop }: - -mkShell { - buildInputs = [ status-go-desktop ]; - # These variables are used by the Status Desktop CMake build script in: - # - modules/react-native-status/desktop/CMakeLists.txt - shellHook = '' - export STATUS_GO_DESKTOP_INCLUDEDIR=${status-go-desktop}/include - export STATUS_GO_DESKTOP_LIBDIR=${status-go-desktop}/lib - ''; -} diff --git a/nix/targets.nix b/nix/targets.nix index 193d07f169..50d82ba0c2 100644 --- a/nix/targets.nix +++ b/nix/targets.nix @@ -7,8 +7,7 @@ let inherit (pkgs) stdenv callPackage; status-go = callPackage ./status-go { }; - desktop = callPackage ./desktop { inherit status-go; }; mobile = callPackage ./mobile { inherit status-go; }; in { - inherit mobile desktop status-go; + inherit mobile status-go; } diff --git a/mobile/js_files/package.json b/package.json similarity index 96% rename from mobile/js_files/package.json rename to package.json index bdd7e4db18..3b78c97cf4 100644 --- a/mobile/js_files/package.json +++ b/package.json @@ -46,7 +46,6 @@ "react-native-languages": "^3.0.2", "react-native-mail": "git+https://github.com/status-im/react-native-mail.git#v4.0.0-status", "react-native-navigation-bar-color": "^2.0.1", - "react-native-navigation-twopane": "git+https://github.com/status-im/react-native-navigation-twopane.git#v0.0.2-status", "react-native-reanimated": "^1.7.0", "react-native-redash": "^14.0.3", "react-native-safe-area-context": "^2.0.0", diff --git a/patches/metro-config+0.48.5.patch b/patches/metro-config+0.48.5.patch deleted file mode 100644 index 6b7818a71a..0000000000 --- a/patches/metro-config+0.48.5.patch +++ /dev/null @@ -1,12 +0,0 @@ -patch-package ---- a/node_modules/metro-config/src/defaults/defaults.js -+++ b/node_modules/metro-config/src/defaults/defaults.js -@@ -47,7 +47,7 @@ exports.sourceExts = ["js", "json", "ts", "tsx"]; - - exports.moduleSystem = require.resolve("metro/src/lib/polyfills/require.js"); - --exports.platforms = ["ios", "android", "windows", "web"]; -+exports.platforms = ["ios", "android", "windows", "web", "desktop"]; - - exports.providesModuleNodeModules = ["react-native", "react-native-windows"]; - diff --git a/rn-cli.config.js b/rn-cli.config.js deleted file mode 100644 index 3cd8b230c0..0000000000 --- a/rn-cli.config.js +++ /dev/null @@ -1,7 +0,0 @@ -const blacklist = require('metro').createBlacklist; - -module.exports = { - getBlacklistRE: function() { - return blacklist([/(desktop|mobile)\/js_files\/.*/]); - } -}; diff --git a/scripts/build-desktop.sh b/scripts/build-desktop.sh deleted file mode 100755 index 8b65caaa5a..0000000000 --- a/scripts/build-desktop.sh +++ /dev/null @@ -1,461 +0,0 @@ -#!/usr/bin/env bash - -set -e - -GIT_ROOT=$(cd "${BASH_SOURCE%/*}" && git rev-parse --show-toplevel) -source "${GIT_ROOT}/scripts/colors.sh" - -VERBOSE_LEVEL=${VERBOSE_LEVEL:-1} -SCRIPTPATH="$( cd "$(dirname "$0")" ; pwd -P )" -OS=$(uname -s) -if [ -z "$TARGET" ]; then - TARGET=$(uname -s | tr '[:upper:]' '[:lower:]') -fi -WINDOWS_CROSSTOOLCHAIN_PKG_NAME='mxetoolchain-x86_64-w64-mingw32' - -source "$SCRIPTPATH/lib/setup/path-support.sh" - -source_lib "packages.sh" -source_lib "platform.sh" - -function is_windows_target() { - [[ "$TARGET" =~ windows ]] -} - -function joinPath() { - if program_exists 'realpath'; then - realpath -m "$1/$2" 2> /dev/null - else - echo "$1/$2" | tr -s / - fi -} - -function joinExistingPath() { - if program_exists 'realpath'; then - realpath "$1/$2" 2> /dev/null - else - echo "$1/$2" | tr -s / - fi -} - -function join { local IFS="$1"; shift; echo "$*"; } - -CMAKE_EXTRA_FLAGS="-DCMAKE_CXX_FLAGS:='-DBUILD_FOR_BUNDLE=1'" -[ -n $STATUS_NO_LOGGING ] && CMAKE_EXTRA_FLAGS="$CMAKE_EXTRA_FLAGS -DSTATUS_NO_LOGGING=1" -if is_windows_target; then - CMAKE_EXTRA_FLAGS="$CMAKE_EXTRA_FLAGS -DCMAKE_TOOLCHAIN_FILE='Toolchain-Ubuntu-mingw64.cmake'" - CMAKE_EXTRA_FLAGS="$CMAKE_EXTRA_FLAGS -DCMAKE_C_COMPILER='x86_64-w64-mingw32.shared-gcc'" - CMAKE_EXTRA_FLAGS="$CMAKE_EXTRA_FLAGS -DCMAKE_CXX_COMPILER='x86_64-w64-mingw32.shared-g++'" - CMAKE_EXTRA_FLAGS="$CMAKE_EXTRA_FLAGS -DCMAKE_RC_COMPILER='x86_64-w64-mingw32.shared-windres'" -fi - -WORKFOLDER="$(joinExistingPath "$STATUS_REACT_HOME" 'StatusImPackage')" -JS_BUNDLE_PATH="$WORKFOLDER/index.desktop.bundle" - -function init() { - if [ -z $STATUS_REACT_HOME ]; then - echo "${RED}STATUS_REACT_HOME environment variable is not defined!${RST}" - exit 1 - fi - - if ! is_windows_target; then - if [ -z $QT_PATH ]; then - echo "${RED}QT_PATH environment variable is not defined!${RST}" - exit 1 - fi - fi - - if [[ "$OS" =~ Linux ]]; then - rm -rf ./desktop/toolchain/ - # TODO: Use Conan for Linux and MacOS builds too - if is_windows_target; then - export PATH=$STATUS_REACT_HOME:$PATH - if ! program_exists 'conan'; then - echo "${RED}Conan package manager not found. Exiting...${RST}" - exit 1 - fi - - conan remote add --insert 0 -f status-im https://conan.status.im - - echo "Generating cross-toolchain profile..." - conan install -if ./desktop/toolchain/ -g json $WINDOWS_CROSSTOOLCHAIN_PKG_NAME/5.5.0-1@status-im/stable \ - -pr ./node_modules/status-conan/profiles/status-mingw32-x86_64 - python3 ./node_modules/status-conan/profiles/generate-profiles.py ./node_modules/status-conan/profiles ./desktop/toolchain/conanbuildinfo.json - - echo "Installing cross-toolchain..." - conan install -if ./desktop/toolchain/ -g json -g cmake $WINDOWS_CROSSTOOLCHAIN_PKG_NAME/5.5.0-1@status-im/stable \ - -pr ./node_modules/status-conan/profiles/status-mxe-mingw32-x86_64-gcc55-libstdcxx - fi - fi -} - -function buildJSBundle() { - # create directory for all work related to bundling - rm -rf $WORKFOLDER - mkdir -p $WORKFOLDER - echo -e "${GRN}Work folder created: $WORKFOLDER${RST}" - echo "" - - # from index.desktop.js create javascript bundle and resources folder - echo "Generating $JS_BUNDLE_PATH and assets folder..." - react-native bundle \ - --reset-cache \ - --dev false \ - --entry-file index.desktop.js \ - --bundle-output "$JS_BUNDLE_PATH" \ - --assets-dest "$WORKFOLDER/assets" \ - --platform desktop - echo -e "${GRN}Generating done.${RST}" - echo "" -} - -function compile() { - # Temporarily add path to javascript bundle to package.json - local jsBundleLine="\"desktopJSBundlePath\": \"$JS_BUNDLE_PATH\"" - local jsPackagePath=$(joinExistingPath "$STATUS_REACT_HOME" 'desktop/js_files/package.json') - - jq ".=(. + {$jsBundleLine})" "$jsPackagePath" | sponge "$jsPackagePath" - echo -e "${YLW}Added 'desktopJSBundlePath' line to $jsPackagePath:${RST}" - echo "" - - local EXTERNAL_MODULES_DIR="$(jq -r '.desktopExternalModules | @tsv | @text' "$jsPackagePath" | tr '\t' ';')" - local DESKTOP_FONTS="$(jq -r '.desktopFonts | @tsv | @text' "$jsPackagePath" | tr '\t' ';')" - local DESKTOP_IMAGES="$(jq -r '.desktopImages | @tsv | @text' "$jsPackagePath" | tr '\t' ';')" - pushd desktop - rm -rf CMakeFiles CMakeCache.txt cmake_install.cmake Makefile modules reportApp/CMakeFiles desktop/node_modules/google-breakpad/CMakeFiles desktop/node_modules/react-native-keychain/desktop/qtkeychain-prefix/src/qtkeychain-build/CMakeFiles desktop/node_modules/react-native-keychain/desktop/qtkeychain - if is_windows_target; then - export PATH=$STATUS_REACT_HOME:$PATH - - # Get the toolchain bin folder from toolchain/conanbuildinfo.json - local bin_dirs=$(jq -r '.dependencies[0].bin_paths | .[]' toolchain/conanbuildinfo.json) - while read -r bin_dir; do - if [ ! -d $bin ]; then - echo -e "${RED}Could not find $bin_dir directory from 'toolchain/conanbuildinfo.json', aborting${RST}" - exit 1 - fi - export PATH=$bin_dir:$PATH - done <<< "$bin_dirs" - fi - cmake -Wno-dev \ - $CMAKE_EXTRA_FLAGS \ - -DCMAKE_BUILD_TYPE=Release \ - -DEXTERNAL_MODULES_DIR="$EXTERNAL_MODULES_DIR" \ - -DDESKTOP_FONTS="$DESKTOP_FONTS" \ - -DDESKTOP_IMAGES="$DESKTOP_IMAGES" \ - -DJS_BUNDLE_PATH="$JS_BUNDLE_PATH" || exit 1 - make -S -j5 || exit 1 - popd - - git checkout $jsPackagePath # remove the bundle from the package.json file -} - -function bundleWindows() { - local buildType="$1" - - local version_file="${STATUS_REACT_HOME}/VERSION" - VERSION=$(cat $version_file) - if [ -z "$VERSION" ]; then - echo "${RED}Could not read version from ${version_file}!${RST}" - exit 1 - fi - - pushd $STATUS_REACT_HOME/desktop/bin - rm -rf cmake_install.cmake Makefile CMakeFiles Status_autogen - popd - - local compressionAlgo="lzma" - local compressionType="/SOLID" - if [ -z $buildType ]; then - compressionAlgo="bzip2" - compressionType="" - elif [ "$buildType" = "pr" ]; then - compressionAlgo="zlib" - fi - - # TODO this needs to be fixed: status-react/issues/5378 - local top_srcdir=$(joinExistingPath "$STATUS_REACT_HOME" '.') - VERSION_MAJOR="$(cut -d'.' -f1 <<<"$VERSION")" - VERSION_MINOR="$(cut -d'.' -f2 <<<"$VERSION")" - VERSION_BUILD="$(cut -d'.' -f3 <<<"$VERSION")" - makensis -Dtop_srcdir=${top_srcdir} \ - -Dbase_image_dir=${STATUSREACT_WINDOWS_BASEIMAGE_PATH} \ - -DCOMPRESSION_ALGO=${compressionAlgo} \ - -DCOMPRESSION_TYPE=${compressionType} \ - -DVERSION_MAJOR=$VERSION_MAJOR \ - -DVERSION_MINOR=$VERSION_MINOR \ - -DVERSION_BUILD=$VERSION_BUILD \ - -DPUBLISHER=Status.im \ - -DWEBSITE_URL="https://status.im/" \ - ./deployment/windows/nsis/setup.nsi -} - -function bundleLinux() { - local QTBIN=$(joinExistingPath "$QT_PATH" 'gcc_64/bin') - if [ ! -d "$QTBIN" ]; then - # CI environment doesn't contain gcc_64 path component - QTBIN=$(joinExistingPath "$QT_PATH" 'bin') - fi - - echo "Creating AppImage..." - pushd $WORKFOLDER - rm -rf StatusImAppImage AppDir - - # TODO this needs to be fixed: status-react/issues/5378 - cp -r ${STATUSREACT_LINUX_BASEIMAGE_PATH}/StatusImAppImage . - chmod -R +w StatusImAppImage/ - - mkdir AppDir - popd - - # invoke linuxdeployqt to create Status.AppImage - local qmakePath="$(joinExistingPath "${QTBIN}" 'qmake')" - local usrBinPath="$(joinPath "$WORKFOLDER" "AppDir/usr/bin")" - cp -r ./deployment/linux/usr $WORKFOLDER/AppDir - cp ./.env $usrBinPath - cp ./desktop/bin/Status ./desktop/bin/reportApp $usrBinPath - - rm -f Application-x86_64.AppImage Status-x86_64.AppImage - - [ $VERBOSE_LEVEL -ge 1 ] && ldd $(joinExistingPath "$usrBinPath" 'Status') - pushd $WORKFOLDER - cp -r assets/share/assets $usrBinPath - cp -rf StatusImAppImage/* $usrBinPath - rm -f $usrBinPath/Status.AppImage - popd - - local desktopFilePath="$(joinExistingPath "$WORKFOLDER" 'AppDir/usr/share/applications/Status.desktop')" - linuxdeployqt \ - $desktopFilePath \ - -verbose=$VERBOSE_LEVEL -always-overwrite -no-strip \ - -no-translations -bundle-non-qt-libs \ - -qmake="$qmakePath" \ - -executable="$(joinExistingPath "$usrBinPath" 'reportApp')" \ - -qmldir="$(joinExistingPath "$STATUS_REACT_HOME" 'node_modules/react-native')" \ - -qmldir="$(joinExistingPath "$STATUS_REACT_HOME" 'desktop/reportApp')" \ - -extra-plugins=imageformats/libqsvg.so - - pushd $WORKFOLDER - rm -f $usrBinPath/Status.AppImage - - # Patch libraries and executables to remove references to /nix/store - set +e - for f in `find ./AppDir/usr/lib/*`; do - patchelf --set-interpreter /lib64/ld-linux-x86-64.so.2 $f 2> /dev/null - patchelf --set-rpath "\$ORIGIN" $f - done - set -e - for f in $usrBinPath/Status $usrBinPath/reportApp; do - patchelf --set-interpreter /lib64/ld-linux-x86-64.so.2 --set-rpath "\$ORIGIN:\$ORIGIN/../lib" $f - done - # To make the output more reproducible, always set the timestamps to the same value - for f in `find ./AppDir`; do - touch --no-create -h -t 197001010000.00 $f - done - [ $VERBOSE_LEVEL -ge 1 ] && ldd $usrBinPath/Status - - appimagetool ./AppDir - # Ensure the AppImage itself isn't using the interpreter in Nix's store - patchelf --set-interpreter /lib64/ld-linux-x86-64.so.2 --set-rpath "\$ORIGIN" ./Status-x86_64.AppImage - chmod +x ./Status-x86_64.AppImage - rm -rf Status.AppImage - mv -f ./Status-x86_64.AppImage .. - popd - - echo -e "${GRN}Package ready in ./Status-x86_64.AppImage!${RST}" - echo "" -} - -if [[ "$OS" =~ Darwin ]]; then - function copyDylibNixDependenciesToPackage() { - local dylib="$1" - local contentsDir="$2" - local frameworksDir="$contentsDir/Frameworks" - local exeDir="$contentsDir/MacOS" - - # Walk through the dependencies of $dylib - local dependencies=$(otool -L "$dylib" | grep -E "\s+/nix/" | awk -F "(" '{print $1}' | xargs) - local moduleDirPath=$(basename $dylib) - for depDylib in $dependencies; do - local targetDepDylib=$(joinPath "$frameworksDir" "$(basename $depDylib)") - # Copy any dependencies that: are not in the Frameworks directory, do not already exist in /usr/lib and are not a Qt5 module (will be handled by macdeployqt anyway) - if [ ! -f "$targetDepDylib" ] && [[ "$(basename $targetDepDylib)" != "libQt5"* ]] && [ ! -f "/usr/lib/$(basename $depDylib)" ]; then - [ $VERBOSE_LEVEL -ge 1 ] && echo " Copying $depDylib to $frameworksDir..." - cp -a -L "$depDylib" "$frameworksDir" - chmod 0755 "$targetDepDylib" - - copyDylibNixDependenciesToPackage "$depDylib" "$contentsDir" - fi - done - } - - function copyQtPlugInToPackage() { - local qtPath="$1" - local pluginName="$2" - local contentsPath="$3" - local filter="" - local targetPath="$contentsPath/PlugIns" - local pluginTargetPath="$targetPath/$pluginName" - - [ "$pluginName" == 'platforms' ] && filter='libqcocoa.dylib' - - mkdir -p $pluginTargetPath - local qtLibPath=$(find $qtPath/lib -maxdepth 1 -name qt-*) - local srcPath=$(readlink -f "$qtLibPath/plugins/$pluginName") - echo "Copying $srcPath to $targetPath" - if [ -z "$filter" ]; then - cp -a -f -L "$srcPath" "$targetPath" - else - cp -f $(readlink -f "$srcPath/$filter") "$pluginTargetPath" - fi - chmod 755 $pluginTargetPath - chmod 755 $pluginTargetPath/* - - for dylib in `find $pluginTargetPath -name *.dylib`; do - copyDylibNixDependenciesToPackage "$dylib" "$contentsPath" - done - } - - function fixupRPathsInDylib() { - local dylib="$1" - local contentsDir="$2" - local frameworksDir="$contentsDir/Frameworks" - local exeDir="$contentsDir/MacOS" - - [ $VERBOSE_LEVEL -ge 1 ] && echo "Checking rpaths in ${dylib}" - - # Walk through the dependencies of $dylib - local dependencies=$(otool -L "$dylib" | grep -E "\s+/nix/" | sed "s|@executable_path|$exeDir|" | awk -F "(" '{print $1}' | xargs) - local moduleDirPath=$(dirname $dylib) - for depDylib in $dependencies; do - # Fix rpath and copy library to target - local replacementTargetPath="" - local framework=$(echo $depDylib | sed -E "s|^\/nix\/.+\/Library\/Frameworks\/(.+)\.framework\/\1$|\1|" 2> /dev/null) - if [ -n "$framework" ] && [ "$framework" != "$depDylib" ]; then - # Handle macOS framework - local targetDepDylib=$(joinExistingPath "/System/Library/Frameworks" "${framework}.framework/${framework}") - - if [ ! -f "$targetDepDylib" ]; then - echo -e "${RED}FATAL: system framework not found: ${targetDepDylib}${RST}" - exit 1 - fi - - # Change dependency rpath in $dylib to point to $targetDepDylib - replacementTargetPath=$targetDepDylib - else - # Handle other libraries - local targetDepDylib=$(joinPath "$frameworksDir" "$(basename $depDylib)") - - if [ ! -f "$targetDepDylib" ]; then - echo -e "${RED}FATAL: macdeployqt should have copied the dependency to ${targetDepDylib}${RST}" - exit 1 - fi - - # Change dependency rpath in $dylib to point to $replacementTargetPath - local replacementPath="" - local targetDepModuleDirPath=$(dirname $targetDepDylib) - if [[ $targetDepModuleDirPath -ef $moduleDirPath ]]; then - replacementPath="@loader_path" - else - replacementPath="@executable_path/$(realpath --relative-to="$exeDir" "$targetDepModuleDirPath")" - fi - local modulePathRegExp="($(pwd)/)?$moduleDirPath" - replacementTargetPath=$(echo $targetDepDylib | sed -E "s|$modulePathRegExp|$replacementPath|") - fi - - if [ -n "$replacementTargetPath" ]; then - [ $VERBOSE_LEVEL -ge 1 ] && echo "Updating $dylib to point to $replacementTargetPath" - install_name_tool -change "$depDylib" "$replacementTargetPath" "$dylib" - fi - done - } - - function fixupRemainingRPaths() { - local searchRootPath="$1" - local contentsDir="$2" - - for dylib in `find $searchRootPath -name *.dylib`; do - fixupRPathsInDylib "$dylib" "$contentsDir" - - # Sanity check for absolute paths - local dependencies=$(otool -L "$dylib" | grep -E "\s+${STATUS_REACT_HOME}") - if [ -n "$dependencies" ]; then - echo "Absolute path detected in dependencies of $dylib. Aborting..." - echo "${dependencies[@]}" - exit 1 - fi - done - } -fi - -function bundleMacOS() { - pushd $WORKFOLDER - # download prepared package with mac bundle files (it contains qt libraries, icon) - rm -rf Status.app - # TODO this needs to be fixed: status-react/issues/5378 - cp -r ${STATUSREACT_MACOS_BASEIMAGE_PATH}/Status.app . - chmod -R +w Status.app/ - - local contentsPath='Status.app/Contents' - local usrBinPath=$(joinExistingPath "$WORKFOLDER" "$contentsPath/MacOS") - - cp -r assets/share/assets $contentsPath/Resources - ln -sf ../Resources/assets ../Resources/ubuntu-server $usrBinPath - chmod +x $contentsPath/Resources/ubuntu-server - cp ../desktop/bin/Status $usrBinPath/Status - cp ../desktop/bin/reportApp $usrBinPath - cp ../.env $contentsPath/Resources - ln -sf ../Resources/.env $usrBinPath/.env - cp -f ../deployment/macos/qt-reportApp.conf $contentsPath/Resources - ln -sf ../Resources/qt-reportApp.conf $usrBinPath/qt.conf - cp -f ../deployment/macos/Info.plist $contentsPath - cp -f ../deployment/macos/status-icon.icns $contentsPath/Resources - - local qtbaseplugins=(bearer platforms printsupport styles) - local qtfullplugins=(iconengines imageformats webview) - if [ -n "$IN_NIX_SHELL" ]; then - # Since in the Nix qt.full package the different Qt modules are spread across several directories, - # macdeployqt cannot find some qtbase plugins, so we copy them in its place - mkdir -p "$contentsPath/PlugIns" - for plugin in ${qtbaseplugins[@]}; do copyQtPlugInToPackage "$QT_BASEBIN_PATH" "$plugin" "$contentsPath"; done - for plugin in ${qtfullplugins[@]}; do copyQtPlugInToPackage "$QT_PATH" "$plugin" "$contentsPath"; done - fi - - macdeployqt Status.app \ - -verbose=$VERBOSE_LEVEL \ - -executable="$(joinExistingPath "$usrBinPath" 'reportApp')" \ - -qmldir="$(joinExistingPath "$STATUS_REACT_HOME" 'node_modules/react-native')" \ - -qmldir="$(joinExistingPath "$STATUS_REACT_HOME" 'desktop/reportApp')" - - # macdeployqt doesn't fix rpaths for all the libraries (although it copies them all), so we'll just walk through them and update rpaths to not point to /nix - echo "Fixing remaining rpaths in modules..." - fixupRemainingRPaths "$contentsPath/Frameworks" "$contentsPath" - fixupRemainingRPaths "$contentsPath/PlugIns" "$contentsPath" - echo "Done fixing rpaths in modules" - rm -f Status.app.zip - popd - - echo -e "${GRN}Package ready in $WORKFOLDER/Status.app!${RST}" - echo "" -} - -function bundle() { - if [[ "$OS" =~ Darwin ]]; then - bundleMacOS - elif [[ "$OS" =~ Linux ]]; then - if is_windows_target; then - bundleWindows - else - bundleLinux - fi - fi -} - -init - -if [ -z "$@" ]; then - buildJSBundle - compile - bundle -else - "$@" -fi diff --git a/scripts/prepare-for-desktop-platform.sh b/scripts/prepare-for-desktop-platform.sh deleted file mode 100755 index 89d8d60bd5..0000000000 --- a/scripts/prepare-for-desktop-platform.sh +++ /dev/null @@ -1,30 +0,0 @@ -#!/usr/bin/env bash - -# WARNING: Impure setup, should be minimized. -# TODO: Replace this with yarn2nix. - -set -e - -GIT_ROOT=$(cd "${BASH_SOURCE%/*}" && git rev-parse --show-toplevel) -source "${GIT_ROOT}/scripts/colors.sh" - -PLATFORM_FOLDER="desktop/js_files" - -if [ ! -f package.json ] || [ $(readlink package.json) != "${PLATFORM_FOLDER}/package.json" ]; then - rm -rf node_modules - - echo "Creating link: package.json -> ${PLATFORM_FOLDER}/package.json" - ln -sf ${PLATFORM_FOLDER}/package.json package.json - - echo "Creating link: yarn.lock -> ${PLATFORM_FOLDER}/yarn.lock" - ln -sf ${PLATFORM_FOLDER}/yarn.lock yarn.lock - - echo "Creating link: metro.config.js -> ${PLATFORM_FOLDER}/metro.config.js" - ln -sf ${PLATFORM_FOLDER}/metro.config.js metro.config.js -fi - -mkdir -p "$GIT_ROOT/node_modules/" -# Leverage flock (file lock) utility to create an exclusive lock on node_modules/ while running 'yarn install' -flock "$GIT_ROOT/node_modules/" yarn install --frozen-lockfile - -echo -e "${GRN}Finished!${RST}" diff --git a/scripts/sign-macos-pkg.sh b/scripts/sign-macos-pkg.sh deleted file mode 100755 index 95be1329da..0000000000 --- a/scripts/sign-macos-pkg.sh +++ /dev/null @@ -1,120 +0,0 @@ -#!/usr/bin/env bash - -DEV_ID="Developer ID Application: STATUS HOLDINGS PTE. LTD. (DTX7Z4U3YA)" - -OBJECT="$1" -GPG_ENCRYPTED_KEYCHAIN="$2" - -if [ `uname` != 'Darwin' ]; then - echo "This only works on macOS." - exit 1 -elif [ $# -ne 2 ]; then - echo "sign-macos-bundle.sh " - exit 1 -elif [ ! -e "$OBJECT" ]; then - echo "Object does not exist." - exit 1 -elif [ ! -f "$GPG_ENCRYPTED_KEYCHAIN" ]; then - echo "Encrypted keychain file does not exist." - exit 1 -fi - -# Required env variables: - -export GPG_PASS_OUTER -export GPG_PASS_INNER -export KEYCHAIN_PASS - -[ -z "$GPG_PASS_OUTER" ] && echo 'Missing env var: GPG_PASS_OUTER' && exit 1 -[ -z "$GPG_PASS_INNER" ] && echo 'Missing env var: GPG_PASS_INNER' && exit 1 -[ -z "$KEYCHAIN_PASS" ] && echo 'Missing env var: KEYCHAIN_PASS' && exit 1 - -# If GPG hasn't been run on this host before, we run it once -# quietly to make sure it creates the directories it needs first -# and doesn't trip when trying to do the decryption further down -script -q /dev/null gpg < /dev/null > /dev/null - -set -e - -echo -e "\n### Storing original keychain search list..." -ORIG_KEYCHAIN_LIST="$(security list-keychains \ - | grep -v "/Library/Keychains/System.keychain" \ - | grep -v "/private/var/folders" \ - | xargs)" - -echo -e "\n### Creating ramdisk..." -RAMDISK="$(hdiutil attach -nomount ram://20480 | tr -d '[:blank:]')" -MOUNTPOINT="$(mktemp -d)" -KEYCHAIN="${MOUNTPOINT}/macos-developer-id.keychain-db" - -function clean_up { - local STATUS=$? - - set +e - - if [ $STATUS -eq 0 ]; then - echo -e "\n###### DONE." - else - echo -e "\n###### ERROR. See above for details." - fi - - echo -e "\n###### Cleaning up..." - - echo -e "\n### Locking keychain..." - security lock-keychain "$KEYCHAIN" - - echo -e "\n### Restoring original keychain search list..." - security list-keychains -s $ORIG_KEYCHAIN_LIST - security list-keychains - - echo -e "\n### Delete keychain file..." - security delete-keychain "$KEYCHAIN" - - echo -e "\n### Destroying ramdisk..." - diskutil umount force "$RAMDISK" - diskutil eject "$RAMDISK" - - exit $STATUS -} - -trap clean_up ERR EXIT - -echo -e "\n### Formatting and mounting ramdisk..." -newfs_hfs "$RAMDISK" -mount -t hfs "$RAMDISK" "$MOUNTPOINT" - -echo -e "\n### Decrypting keychain to $KEYCHAIN ..." -gpg --batch --passphrase "$GPG_PASS_OUTER" --pinentry-mode loopback \ - --decrypt "$GPG_ENCRYPTED_KEYCHAIN" \ - | gpg --batch --passphrase "$GPG_PASS_INNER" --pinentry-mode loopback \ - --decrypt > "$KEYCHAIN" - -echo -e "\n### Adding code-signing keychain to search list..." -security list-keychains -s $ORIG_KEYCHAIN_LIST "$KEYCHAIN" -security list-keychains - -echo -e "\n### Unlocking keychain..." -security unlock-keychain -p "$KEYCHAIN_PASS" "$KEYCHAIN" - -echo -e "\n### Signing object..." - -# If `OBJECT` is a directory, we assume it's an app -# bundle, otherwise we consider it to be a dmg. -if [ -d "$OBJECT" ]; then - codesign --sign "$DEV_ID" --keychain "$KEYCHAIN" --options runtime --deep --force --verbose=4 "$OBJECT" -else - codesign --sign "$DEV_ID" --keychain "$KEYCHAIN" --options runtime --force --verbose=4 "$OBJECT" -fi - -echo -e "\n### Verifying signature..." -codesign --verify --strict=all --deep --verbose=4 "$OBJECT" - -echo -e "\n### Assessing Gatekeeper validation..." -if [ -d "$OBJECT" ]; then - spctl --assess --type execute --verbose=2 "$OBJECT" -else - echo "WARNING: The 'open' type security assesment is disabled due to lack of 'Notarization'" - # Issue: https://github.com/status-im/status-react/pull/9172 - # Details: https://developer.apple.com/documentation/security/notarizing_your_app_before_distribution - #spctl --assess --type open --context context:primary-signature --verbose=2 "$OBJECT" -fi diff --git a/src/mocks/js_dependencies.cljs b/src/mocks/js_dependencies.cljs index 910249cde0..a0ad9e1486 100644 --- a/src/mocks/js_dependencies.cljs +++ b/src/mocks/js_dependencies.cljs @@ -70,9 +70,6 @@ (def webview #js {:WebView #js {}}) (def status-keycard #js {:default #js {}}) -(def desktop-linking #js {:addEventListener (fn [])}) -(def desktop-shortcuts #js {:addEventListener (fn [])}) - (def snoopy #js {:default #js {}}) (def snoopy-filter #js {:default #js {}}) (def snoopy-bars #js {:default #js {}}) @@ -87,10 +84,8 @@ (def keychain #js {:setGenericPassword (constantly (.resolve js/Promise true)) "ACCESSIBLE" {} "ACCESS_CONTROL" {}}) -(def desktop-menu #js {}) -(def desktop-config #js {}) + (def react-native-mail #js {:mail #js {}}) -(def react-native-navigation-twopane #js {}) (def react-native-screens #js {}) (def react-native-shake #js {}) (def net-info #js {}) diff --git a/src/status_im/chat/models.cljs b/src/status_im/chat/models.cljs index 38ed94bb92..d46996f467 100644 --- a/src/status_im/chat/models.cljs +++ b/src/status_im/chat/models.cljs @@ -10,13 +10,10 @@ [status-im.i18n :as i18n] [status-im.mailserver.core :as mailserver] [status-im.ui.components.colors :as colors] - [status-im.ui.components.react :as react] [status-im.navigation :as navigation] [status-im.utils.clocks :as utils.clocks] [status-im.utils.fx :as fx] - [status-im.utils.platform :as platform] [status-im.utils.utils :as utils] - [status-im.chat.models.message-seen :as message-seen] [status-im.chat.models.loading :as loading])) (defn- get-chat [cofx chat-id] @@ -234,8 +231,6 @@ ;; happens on membership changes (when-not (group-chat? cofx chat-id) (transport.filters/load-chat chat-id)) - (when platform/desktop? - (message-seen/mark-messages-seen chat-id)) (loading/load-messages)))) (fx/defn navigate-to-chat @@ -281,16 +276,6 @@ (i18n/label :cooldown/warning-message) #()))) -(defn set-dock-badge-label - "Sets dock badge label (OSX only for now). - Label must be a string. Pass nil or empty string to clear the label." - [label] - (.setDockBadgeLabel ^js react/desktop-notification label)) - -(re-frame/reg-fx - :set-dock-badge-label - set-dock-badge-label) - (fx/defn show-profile {:events [:chat.ui/show-profile]} [cofx identity] diff --git a/src/status_im/chat/models/message_seen.cljs b/src/status_im/chat/models/message_seen.cljs index 948dc50b1a..c318048196 100644 --- a/src/status_im/chat/models/message_seen.cljs +++ b/src/status_im/chat/models/message_seen.cljs @@ -1,31 +1,13 @@ (ns status-im.chat.models.message-seen (:require [status-im.utils.fx :as fx] - [status-im.data-store.messages :as messages-store] - [status-im.utils.platform :as platform])) - -(defn- unread-messages-number [chats] - (apply + (map :unviewed-messages-count chats))) - -(fx/defn update-dock-badge-label - [cofx] - (let [chats (get-in cofx [:db :chats]) - active-chats (filter :is-active (vals chats)) - private-chats (filter (complement :public?) active-chats) - public-chats (filter :public? active-chats) - private-chats-unread-count (unread-messages-number private-chats) - public-chats-unread-count (unread-messages-number public-chats) - label (cond - (pos? private-chats-unread-count) private-chats-unread-count - (pos? public-chats-unread-count) "•" - :else nil)] - {:set-dock-badge-label label})) + [status-im.data-store.messages :as messages-store])) (defn subtract-seen-messages [old-count new-seen-messages-ids] (max 0 (- old-count (count new-seen-messages-ids)))) (fx/defn update-chats-unviewed-messages-count - [{:keys [db] :as cofx} {:keys [chat-id loaded-unviewed-messages-ids]}] + [{:keys [db]} {:keys [chat-id _]}] (let [{:keys [loaded-unviewed-messages-ids unviewed-messages-count]} (get-in db [:chats chat-id])] {:db (update-in db [:chats chat-id] assoc @@ -46,6 +28,4 @@ db loaded-unviewed-ids)} (messages-store/mark-messages-seen chat-id loaded-unviewed-ids nil) - (update-chats-unviewed-messages-count {:chat-id chat-id}) - (when platform/desktop? - (update-dock-badge-label)))))) + (update-chats-unviewed-messages-count {:chat-id chat-id}))))) diff --git a/src/status_im/chat/models_test.cljs b/src/status_im/chat/models_test.cljs index cff1e9c497..8fde8b7aba 100644 --- a/src/status_im/chat/models_test.cljs +++ b/src/status_im/chat/models_test.cljs @@ -4,8 +4,7 @@ [status-im.utils.identicon :as identicon] [status-im.ethereum.json-rpc :as json-rpc] [status-im.utils.clocks :as utils.clocks] - [status-im.chat.models :as chat] - [status-im.chat.models.message-seen :as message-seen])) + [status-im.chat.models :as chat])) (deftest upsert-chat-test (testing "upserting a non existing chat" @@ -154,38 +153,3 @@ :loaded-unviewed-messages-ids #{"6" "5" "4"}} "opened" {:loaded-unviewed-messages-ids #{}} "1-1" {:loaded-unviewed-messages-ids #{"6" "5" "4"}}}}) - -(deftest update-dock-badge-label - (testing "When user has unseen private messages" - (is (= {:set-dock-badge-label 3} - (message-seen/update-dock-badge-label - {:db {:chats {"0x0" {:is-active true - :public? false - :unviewed-messages-count 3 - :loaded-unviewed-messages-ids #{1 2 3}} - "status" {:is-active true - :public? true - :unviewed-messages-count 2 - :loaded-unviewed-messages-ids #{1 2}}}}})))) - (testing "When user has unseen public messages and no unseen private messages" - (is (= {:set-dock-badge-label "•"} - (message-seen/update-dock-badge-label - {:db {:chats {"0x0" {:is-active true - :public? false - :unviewed-messages-count 0 - :loaded-unviewed-messages-ids #{}} - "status" {:is-active true - :public? true - :unviewed-messages-count 2 - :loaded-unviewed-messages-ids #{1 2}}}}})))) - (testing "When user has no unseen messages" - (is (= {:set-dock-badge-label nil} - (message-seen/update-dock-badge-label - {:db {:chats {"0x0" {:is-active true - :public? false - :unviewed-messages-count 0 - :loaded-unviewed-messages-ids #{}} - "status" {:is-active true - :public? true - :unviewed-messages-count 0 - :loaded-unviewed-messages-ids #{}}}}}))))) diff --git a/src/status_im/constants.cljs b/src/status_im/constants.cljs index 4c4885a774..bbe3382f9d 100644 --- a/src/status_im/constants.cljs +++ b/src/status_im/constants.cljs @@ -28,16 +28,9 @@ (def command-state-transaction-pending 6) (def command-state-transaction-sent 7) -(def desktop-content-types - #{content-type-text content-type-emoji content-type-status}) - (def min-password-length 6) (def max-group-chat-participants 10) (def default-number-of-messages 20) -(def blocks-per-hour 120) -(def one-earth-day 86400) -(def two-pane-min-width 640) -(def left-pane-min-width 320) (def mailserver-password "status-offline-inbox") @@ -194,9 +187,6 @@ :vnd {:id :vnd :code "VND" :display-name (i18n/label :t/currency-display-name-vnd) :symbol "₫"} :zar {:id :zar :code "ZAR" :display-name (i18n/label :t/currency-display-name-zar) :symbol "R"}}) -;; Used to generate topic for contact discoveries -(def contact-discovery "contact-discovery") - (def send-transaction-failed-parse-response 1) (def send-transaction-failed-parse-params 2) (def send-transaction-no-account-selected 3) @@ -208,24 +198,6 @@ (def web3-sign-typed-data "eth_signTypedData") (def web3-sign-typed-data-v3 "eth_signTypedData_v3") -(def web3-get-logs "eth_getLogs") -(def web3-transaction-receipt "eth_getTransactionReceipt") -(def web3-new-filter "eth_newFilter") -(def web3-new-pending-transaction-filter "eth_newPendingTransactionFilter") -(def web3-new-block-filter "eth_newBlockFilter") -(def web3-uninstall-filter "eth_uninstallFilter") -(def web3-get-filter-changes "eth_getFilterChanges") - -(def web3-shh-post "shh_post") -(def web3-shh-new-identity "shh_newIdentity") -(def web3-shh-has-identity "shh_hasIdentity") -(def web3-shh-new-group "shh_newGroup") -(def web3-shh-add-to-group "shh_addToGroup") -(def web3-shh-new-filter "shh_newFilter") -(def web3-shh-uninstall-filter "shh_uninstallFilter") -(def web3-shh-get-filter-changes "shh_getFilterChanges") -(def web3-shh-get-messages "shh_getMessages") - ;; Keycard ns (def web3-keycard-sign-typed-data "keycard_signTypedData") @@ -249,18 +221,11 @@ (def path-wallet-root-keyword (keyword path-wallet-root)) (def path-eip1581-keyword (keyword path-eip1581)) -;; (ethereum/sha3 "Transfer(address,address,uint256)") -(def event-transfer-hash "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef") - (def method-id-transfer "0xa9059cbb") (def method-id-approve "0x095ea7b3") (def method-id-approve-and-call "0xcae9ca51") (def regx-emoji #"^((?:[\u261D\u26F9\u270A-\u270D]|\uD83C[\uDF85\uDFC2-\uDFC4\uDFC7\uDFCA-\uDFCC]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66-\uDC69\uDC6E\uDC70-\uDC78\uDC7C\uDC81-\uDC83\uDC85-\uDC87\uDCAA\uDD74\uDD75\uDD7A\uDD90\uDD95\uDD96\uDE45-\uDE47\uDE4B-\uDE4F\uDEA3\uDEB4-\uDEB6\uDEC0\uDECC]|\uD83E[\uDD18-\uDD1C\uDD1E\uDD1F\uDD26\uDD30-\uDD39\uDD3D\uDD3E\uDDD1-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])?|(?:[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u270A\u270B\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF93\uDFA0-\uDFCA\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF4\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC3E\uDC40\uDC42-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDD7A\uDD95\uDD96\uDDA4\uDDFB-\uDE4F\uDE80-\uDEC5\uDECC\uDED0-\uDED2\uDEEB\uDEEC\uDEF4-\uDEF8]|\uD83E[\uDD10-\uDD3A\uDD3C-\uDD3E\uDD40-\uDD45\uDD47-\uDD4C\uDD50-\uDD6B\uDD80-\uDD97\uDDC0\uDDD0-\uDDE6])|(?:[#\*0-9\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u2660\u2663\u2665\u2666\u2668\u267B\u267F\u2692-\u2697\u2699\u269B\u269C\u26A0\u26A1\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC04\uDCCF\uDD70\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE02\uDE1A\uDE2F\uDE32-\uDE3A\uDE50\uDE51\uDF00-\uDF21\uDF24-\uDF93\uDF96\uDF97\uDF99-\uDF9B\uDF9E-\uDFF0\uDFF3-\uDFF5\uDFF7-\uDFFF]|\uD83D[\uDC00-\uDCFD\uDCFF-\uDD3D\uDD49-\uDD4E\uDD50-\uDD67\uDD6F\uDD70\uDD73-\uDD7A\uDD87\uDD8A-\uDD8D\uDD90\uDD95\uDD96\uDDA4\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA-\uDE4F\uDE80-\uDEC5\uDECB-\uDED2\uDEE0-\uDEE5\uDEE9\uDEEB\uDEEC\uDEF0\uDEF3-\uDEF8]|\uD83E[\uDD10-\uDD3A\uDD3C-\uDD3E\uDD40-\uDD45\uDD47-\uDD4C\uDD50-\uDD6B\uDD80-\uDD97\uDDC0\uDDD0-\uDDE6])\uFE0F|[\t-\r \xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF])+$") -(def regx-rtl-characters #"[^\u0591-\u06EF\u06FA-\u07FF\u200F\u202B\u202E\uFB1D-\uFDFD\uFE70-\uFEFC]*?[\u0591-\u06EF\u06FA-\u07FF\u200F\u202B\u202E\uFB1D-\uFDFD\uFE70-\uFEFC]") -(def regx-url #"(?i)(?:[a-z][\w-]+:(?:/{1,3}|[a-z0-9%])|www\d{0,3}[.]|[a-z0-9\-]+[.][a-z]{1,4}/?)(?:[^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:\'\".,<>?«»“”‘’]){0,}") -(def regx-tag #"#[a-z0-9\-]+") -(def regx-mention #"@[a-z0-9\-]+") (def regx-bold #"\*[^*]+\*") (def regx-italic #"~[^~]+~") (def regx-backquote #"`[^`]+`") @@ -269,7 +234,6 @@ (def lines-collapse-threshold 20) (def chars-collapse-threshold 600) -(def desktop-msg-chars-hard-limit 10000) (def dapp-permission-contact-code "contact-code") (def dapp-permission-web3 "web3") @@ -277,15 +241,10 @@ (def api-response "api-response") (def api-request "api-request") (def history-state-changed "history-state-changed") -(def debug-metrics "debug_metrics") (def web3-send-async-read-only "web3-send-async-read-only") (def web3-send-async-callback "web3-send-async-callback") (def scan-qr-code "scan-qr-code") -;;ipfs -(def ipfs-proto-code "e3") -(def swarm-proto-code "e4") - (def faq "https://status.im/faq/") (def faq-keycard (str faq "#keycard")) (def keycard-integration-link "https://status.im/keycard-integration") diff --git a/src/status_im/db.cljs b/src/status_im/db.cljs index d5b85221c2..d120583db4 100644 --- a/src/status_im/db.cljs +++ b/src/status_im/db.cljs @@ -33,7 +33,6 @@ :chat/spam-messages-frequency 0 :tooltips {} :initial-props {} - :desktop/desktop {:tab-view-id :home} :dimensions/window (dimensions/window) :registry {} :stickers/packs-owned #{} @@ -43,5 +42,4 @@ :confirmation [] :current [] :puk [] - :enter-step :original}} - :two-pane-ui-enabled? (dimensions/fit-two-pane?)}) + :enter-step :original}}}) diff --git a/src/status_im/desktop/core.cljs b/src/status_im/desktop/core.cljs deleted file mode 100644 index 433d5e365f..0000000000 --- a/src/status_im/desktop/core.cljs +++ /dev/null @@ -1,44 +0,0 @@ -(ns status-im.desktop.core - (:require [reagent.core :as reagent] - [re-frame.core :as re-frame] - ["react-native" :as rn] - status-im.utils.db - status-im.subs - [status-im.ui.screens.views :as views] - [status-im.ui.components.react :as react] - [status-im.utils.snoopy :as snoopy] - [status-im.utils.error-handler :as error-handler] - [status-im.ui.screens.desktop.views :as desktop-views] - [status-im.desktop.deep-links :as deep-links] - [status-im.utils.config :as config])) - -(def app-registry (.-AppRegistry rn)) - -(defn app-state-change-handler [state] - (re-frame/dispatch [:app-state-change state])) - -(defn app-root [_] - (if config/mobile-ui-for-desktop? - (reagent/create-class - {:component-did-mount - (fn [this] - (.addEventListener ^js react/app-state "change" app-state-change-handler) - (re-frame/dispatch [:set-initial-props (reagent/props this)])) - :component-will-unmount - (fn [] - (.removeEventListener ^js react/app-state "change" app-state-change-handler)) - :display-name "root" - :reagent-render views/main}) - (reagent/create-class - {:component-did-mount (fn [this] - (re-frame/dispatch [:set-initial-props (reagent/props this)]) - ;(shortcuts/register-default-shortcuts) - (deep-links/add-event-listener)) - :reagent-render (fn [_] - desktop-views/main)}))) - -(defn init [] - (error-handler/register-exception-handler!) - (re-frame/dispatch-sync [:init/app-started]) - (.registerComponent ^js app-registry "StatusIm" #(reagent/reactify-component app-root)) - (snoopy/subscribe!)) diff --git a/src/status_im/desktop/deep_links.cljs b/src/status_im/desktop/deep_links.cljs deleted file mode 100644 index e0158fd211..0000000000 --- a/src/status_im/desktop/deep_links.cljs +++ /dev/null @@ -1,15 +0,0 @@ -(ns status-im.desktop.deep-links - (:require [re-frame.core :as re-frame] - [status-im.react-native.js-dependencies :as js-dependencies] - [taoensso.timbre :as log] - ["react-native" :refer (NativeEventEmitter)])) - -(defn add-event-listener [] - (let [^js event-emitter (new NativeEventEmitter - js-dependencies/desktop-linking)] - (.addListener event-emitter - "urlOpened" - (fn [data] - (log/debug "urlOpened event with data:" data) - (let [url (get (js->clj data) "url")] - (re-frame/dispatch [:handle-universal-link url])))))) diff --git a/src/status_im/desktop/platform.cljs b/src/status_im/desktop/platform.cljs deleted file mode 100644 index cb4050472f..0000000000 --- a/src/status_im/desktop/platform.cljs +++ /dev/null @@ -1,6 +0,0 @@ -(ns status-im.desktop.platform) - -;; Structure to be exported - -(def platform-specific - {:status-bar-default-height 25}) diff --git a/src/status_im/events.cljs b/src/status_im/events.cljs index 9e965638c0..010f516cca 100644 --- a/src/status_im/events.cljs +++ b/src/status_im/events.cljs @@ -111,11 +111,6 @@ :on-accept open-chaos-unicorn-day-link}}) (multiaccounts/switch-chaos-mode chaos-mode?))))) -(handlers/register-handler-fx - :multiaccounts.ui/notifications-enabled - (fn [cofx [_ desktop-notifications?]] - (multiaccounts/enable-notifications cofx desktop-notifications?))) - (handlers/register-handler-fx :multiaccounts.ui/preview-privacy-mode-switched (fn [cofx [_ private?]] @@ -334,19 +329,6 @@ (fn [cofx [_ log-level]] (log-level/show-change-log-level-confirmation cofx log-level))) -(handlers/register-handler-fx - :log-level.ui/logging-enabled - (fn [cofx [_ enabled]] - (log/debug "### :log-level.ui/logging-enabled" enabled) - - (log-level/show-logging-enabled-confirmation cofx enabled))) - -(handlers/register-handler-fx - :log-level.ui/logging-enabled-confirmed - (fn [_ [_ _]] - ;;FIXME desktop only - #_(log-level/save-logging-enabled cofx enabled))) - ;; Browser bridge module (handlers/register-handler-fx @@ -1288,11 +1270,6 @@ (fn [{:keys [db]} [_ dimensions]] {:db (assoc db :dimensions/window (dimensions/window dimensions))})) -(handlers/register-handler-fx - :set-two-pane-ui-enabled - (fn [{:keys [db]} [_ enabled?]] - {:db (assoc db :two-pane-ui-enabled? enabled?)})) - ;; NOTE: Will be removed with the keycard PR (handlers/register-handler-fx :screens/on-will-focus diff --git a/src/status_im/i18n_test.cljs b/src/status_im/i18n_test.cljs index 5d17a2885b..4dfa77a07e 100644 --- a/src/status_im/i18n_test.cljs +++ b/src/status_im/i18n_test.cljs @@ -320,7 +320,6 @@ :delete-network-title :deny :description - :desktop-alpha-release-warning :dev-mode :dev-mode-settings :device-syncing @@ -933,7 +932,6 @@ :url :usd-currency :use-valid-contact-code - :use-valid-contact-code-desktop :validation-amount-invalid-number :validation-amount-is-too-precise :version diff --git a/src/status_im/init/core.cljs b/src/status_im/init/core.cljs index 53c627b34a..e9a5538d24 100644 --- a/src/status_im/init/core.cljs +++ b/src/status_im/init/core.cljs @@ -12,12 +12,10 @@ (fx/defn initialize-app-db "Initialize db to initial state" [{{:keys [hardwallet initial-props supported-biometric-auth app-active-since] - :desktop/keys [desktop] :network/keys [type]} :db now :now}] {:db (assoc app-db :initial-props initial-props - :desktop/desktop (merge desktop (:desktop/desktop app-db)) :network/type type :hardwallet (dissoc hardwallet :secrets) :supported-biometric-auth supported-biometric-auth diff --git a/src/status_im/log_level/core.cljs b/src/status_im/log_level/core.cljs index f105c6bb7d..d35b97f8b3 100644 --- a/src/status_im/log_level/core.cljs +++ b/src/status_im/log_level/core.cljs @@ -26,24 +26,3 @@ :on-accept #(re-frame/dispatch [:log-level.ui/change-log-level-confirmed value]) :on-cancel nil}}) - -(fx/defn show-logging-enabled-confirmation - [{:keys [db]} enabled] - {:ui/show-confirmation {:title (i18n/label :t/close-app-title) - :content (i18n/label :t/change-logging-enabled - {:enable (i18n/label (if enabled - :enable :disable))}) - :confirm-button-text (i18n/label :t/close-app-button) - :on-accept #(re-frame/dispatch [:log-level.ui/logging-enabled-confirmed enabled]) - :on-cancel nil}}) - -;;FIXME ignored until desktop is fixed -#_(fx/defn save-logging-enabled - [{:keys [db] :as cofx} enabled] - (.setValue rn-dependencies/desktop-config "logging_enabled" enabled) - (fx/merge - cofx - {:db (assoc-in db [:desktop/desktop :logging-enabled] enabled)} - (multiaccounts.update/multiaccount-update - {:log-level (when enabled "INFO")} - {:success-event [:multiaccounts.update.callback/save-settings-success]}))) diff --git a/src/status_im/mailserver/core.cljs b/src/status_im/mailserver/core.cljs index 80787b1f95..726d4377d8 100644 --- a/src/status_im/mailserver/core.cljs +++ b/src/status_im/mailserver/core.cljs @@ -20,7 +20,6 @@ [status-im.utils.config :as config] [status-im.utils.fx :as fx] [status-im.utils.handlers :as handlers] - [status-im.utils.platform :as platform] [status-im.utils.random :as rand] [status-im.utils.utils :as utils] [status-im.waku.core :as waku] @@ -510,9 +509,7 @@ :content (i18n/label :t/mailserver-error-content) :confirm-button-text (i18n/label :t/mailserver-pick-another) :on-accept #(re-frame/dispatch - [:navigate-to (if platform/desktop? - :advanced-settings - :offline-messaging-settings)]) + [:navigate-to :offline-messaging-settings]) :extra-options [{:text (i18n/label :t/mailserver-retry) :onPress #(re-frame/dispatch [:mailserver.ui/connect-confirmed diff --git a/src/status_im/multiaccounts/core.cljs b/src/status_im/multiaccounts/core.cljs index a499c92152..e31151df07 100644 --- a/src/status_im/multiaccounts/core.cljs +++ b/src/status_im/multiaccounts/core.cljs @@ -74,12 +74,6 @@ :chaos-mode? (boolean chaos-mode?) {})))) -(fx/defn enable-notifications [cofx desktop-notifications?] - (multiaccounts.update/multiaccount-update - cofx - :desktop-notifications? desktop-notifications? - {})) - (fx/defn switch-preview-privacy-mode [{:keys [db] :as cofx} private?] (fx/merge cofx diff --git a/src/status_im/multiaccounts/login/core.cljs b/src/status_im/multiaccounts/login/core.cljs index 4d30b52c87..c3166f19bd 100644 --- a/src/status_im/multiaccounts/login/core.cljs +++ b/src/status_im/multiaccounts/login/core.cljs @@ -1,7 +1,6 @@ (ns status-im.multiaccounts.login.core (:require [re-frame.core :as re-frame] [status-im.chat.models.loading :as chat.loading] - [status-im.chat.models.message-seen :as message-seen] [status-im.contact.core :as contact] [status-im.data-store.settings :as data-store.settings] [status-im.ethereum.core :as ethereum] @@ -13,7 +12,6 @@ [status-im.multiaccounts.biometric.core :as biometric] [status-im.multiaccounts.core :as multiaccounts] [status-im.native-module.core :as status] - [status-im.node.core :as node] [status-im.notifications.core :as notifications] [status-im.popover.core :as popover] [status-im.protocol.core :as protocol] @@ -32,12 +30,6 @@ [status-im.wallet.prices :as prices] [taoensso.timbre :as log])) -(defn fetch-nodes [_ resolve _] - (let [default-nodes (-> (node/fleets {}) - (get-in [:eth.staging :mail]) - vals)] - (resolve default-nodes))) - (re-frame/reg-fx ::login (fn [[account-data hashed-password]] @@ -124,7 +116,7 @@ {:ui/close-application nil}) (fx/defn check-network-version - [cofx network-id] + [_ network-id] {::json-rpc/call [{:method "net_version" :on-success @@ -167,7 +159,7 @@ (fx/defn get-settings-callback {:events [::get-settings-callback]} [{:keys [db] :as cofx} settings] - (let [{:keys [address notifications-enabled?] + (let [{:keys [notifications-enabled?] :networks/keys [current-network networks] :as settings} (data-store.settings/rpc->settings settings) @@ -178,15 +170,14 @@ (dissoc :multiaccounts/login) (assoc :networks/current-network current-network :networks/networks networks - :multiaccount multiaccount))} - (and platform/android? - notifications-enabled?) - (assoc ::notifications/enable nil) - (not platform/desktop?) - (assoc ::initialize-wallet + :multiaccount multiaccount)) + ::initialize-wallet (fn [accounts custom-tokens] (re-frame/dispatch [::initialize-wallet - accounts custom-tokens])))) + accounts custom-tokens]))} + (and platform/android? + notifications-enabled?) + (assoc ::notifications/enable nil)) (initialize-appearance) ;; NOTE: initializing mailserver depends on user mailserver ;; preference which is why we wait for config callback @@ -231,9 +222,7 @@ :on-success #(re-frame/dispatch [::get-settings-callback %])}]} (when save-password? (keychain/save-user-password key-uid password)) - (keychain/save-auth-method key-uid (or new-auth-method auth-method)) - (when platform/desktop? - (message-seen/update-dock-badge-label))))) + (keychain/save-auth-method key-uid (or new-auth-method auth-method))))) (fx/defn create-only-events [{:keys [db] :as cofx}] @@ -258,8 +247,7 @@ :default-mailserver true}) (multiaccounts/switch-preview-privacy-mode-flag) (logging/set-log-level (:log-level multiaccount)) - (when-not platform/desktop? - (initialize-wallet accounts nil))))) + (initialize-wallet accounts nil)))) (defn- keycard-setup? [cofx] (boolean (get-in cofx [:db :hardwallet :flow]))) diff --git a/src/status_im/multiaccounts/login/data_test.cljs b/src/status_im/multiaccounts/login/data_test.cljs index 3b68d0abd9..504c8dda75 100644 --- a/src/status_im/multiaccounts/login/data_test.cljs +++ b/src/status_im/multiaccounts/login/data_test.cljs @@ -79,8 +79,7 @@ :deleted-at-clock-value nil}]) (def multiaccount - {:desktop-alpha-release-warning-shown? false - :last-updated 0 + {:last-updated 0 :address "7540c34d6c4082391f12468580a9a4e0724c6755" :mnemonic "tumble gorilla neglect dumb budget involve tennis ocean diary eagle lady ring" :custom-bootnodes {} @@ -88,7 +87,6 @@ :signed-up? true :name "name" :last-request nil - :desktop-notifications? false :wallet/visible-tokens {:testnet #{:STT :HND} :mainnet #{:SNT} diff --git a/src/status_im/native_module/core.cljs b/src/status_im/native_module/core.cljs index 8ad515f811..031881d263 100644 --- a/src/status_im/native_module/core.cljs +++ b/src/status_im/native_module/core.cljs @@ -299,11 +299,6 @@ platform/ios? (callback false) - ;; we assume that Desktop is unsafe by default - ;; (theoretically, Desktop is always "rooted", by design - platform/desktop? - (callback true) - ;; we check root on android platform/android? (if (status) diff --git a/src/status_im/subs.cljs b/src/status_im/subs.cljs index 86ceceae3c..6ee959e077 100644 --- a/src/status_im/subs.cljs +++ b/src/status_im/subs.cljs @@ -52,7 +52,6 @@ ;;view (reg-root-key-sub :view-id :view-id) (reg-root-key-sub :screen-params :navigation/screen-params) -(reg-root-key-sub :two-pane-ui-enabled? :two-pane-ui-enabled?) ;;bottom sheet (reg-root-key-sub :bottom-sheet/show? :bottom-sheet/show?) @@ -68,8 +67,6 @@ (reg-root-key-sub :dimensions/window :dimensions/window) (reg-root-key-sub :initial-props :initial-props) (reg-root-key-sub :fleets/custom-fleets :custom-fleets) -(reg-root-key-sub :desktop/desktop :desktop/desktop) -(reg-root-key-sub :desktop :desktop) (reg-root-key-sub :animations :animations) (reg-root-key-sub :ui/search :ui/search) (reg-root-key-sub :web3-node-version :web3-node-version) @@ -200,12 +197,6 @@ (fn [db] (multiaccounts.model/logged-in? {:db db}))) -(re-frame/reg-sub - :connection-stats - :<- [:desktop/desktop] - (fn [desktop _] - (get desktop :debug-metrics))) - ;; Intro wizard (re-frame/reg-sub :intro-wizard @@ -279,13 +270,6 @@ (fn [[intro-wizard multiaccounts]] (recover/existing-account? (:root-key intro-wizard) multiaccounts))) -;;FIXME not needed until desktop enabled -#_(re-frame/reg-sub - :settings/logging-enabled - :<- [:desktop/desktop] - (fn [desktop _] - (get desktop :logging-enabled false))) - (re-frame/reg-sub :current-network :<- [:networks/networks] @@ -392,7 +376,7 @@ (or web3-node-version "N/A")) (def app-short-version - (let [version (if platform/desktop? build/version build/build-no)] + (let [version build/build-no] (str build/version " (" version ")"))) (re-frame/reg-sub diff --git a/src/status_im/ui/components/chat_icon/screen.cljs b/src/status_im/ui/components/chat_icon/screen.cljs index 9961d2fbf5..f9333bf869 100644 --- a/src/status_im/ui/components/chat_icon/screen.cljs +++ b/src/status_im/ui/components/chat_icon/screen.cljs @@ -5,8 +5,7 @@ [status-im.ui.components.chat-icon.styles :as styles] [status-im.ui.components.colors :as colors] [status-im.ui.components.react :as react] - [status-im.ui.screens.chat.photos :as photos] - [status-im.utils.platform :as platform])) + [status-im.ui.screens.chat.photos :as photos])) ;;TODO REWORK THIS NAMESPACE @@ -126,9 +125,9 @@ :default-chat-icon (styles/default-chat-icon-profile color size) :default-chat-icon-text (styles/default-chat-icon-text size)} override-styles)] [react/view (:container styles) - (when (and edit? (not platform/desktop?)) + (when edit? [react/view (styles/profile-icon-mask size)]) - (when (and edit? (not platform/desktop?)) + (when edit? [react/view (styles/profile-icon-edit-text-containter size) [react/i18n-text {:style styles/profile-icon-edit-text :key :edit}]]) (if (and photo-path (seq photo-path)) diff --git a/src/status_im/ui/components/connectivity/view.cljs b/src/status_im/ui/components/connectivity/view.cljs index 54658322bc..4db305ab77 100644 --- a/src/status_im/ui/components/connectivity/view.cljs +++ b/src/status_im/ui/components/connectivity/view.cljs @@ -7,7 +7,6 @@ [status-im.ui.components.connectivity.styles :as styles] [status-im.ui.components.react :as react] [status-im.utils.datetime :as datetime] - [status-im.utils.platform :as platform] [status-im.utils.utils :as utils] [taoensso.timbre :as log]) (:require-macros @@ -93,7 +92,7 @@ all connectivity views (we have at least one view in home and one in chat)" :easing (.-ease ^js animation/easing) :useNativeDriver true}) (animation/timing anim-y - {:toValue (if platform/desktop? 0 neg-connectivity-bar-height) + {:toValue neg-connectivity-bar-height :delay 800 :duration 150 :easing (.-ease ^js animation/easing) @@ -102,7 +101,7 @@ all connectivity views (we have at least one view in home and one in chat)" #(do (reset! to-hide? false) (reset! status-hidden true)))) (do (animation/set-value anim-opacity 0) - (animation/set-value anim-y (if platform/desktop? 0 neg-connectivity-bar-height)) + (animation/set-value anim-y neg-connectivity-bar-height) (reset! to-hide? false) (reset! status-hidden true))) ;; else @@ -116,7 +115,7 @@ all connectivity views (we have at least one view in home and one in chat)" :easing (.-ease ^js animation/easing) :useNativeDriver true}) (animation/timing anim-y - {:toValue (if platform/desktop? connectivity-bar-height 0) + {:toValue 0 :duration 150 :easing (.-ease ^js animation/easing) :useNativeDriver true})]) @@ -124,7 +123,7 @@ all connectivity views (we have at least one view in home and one in chat)" #(do (reset! to-hide? true) (reset! status-hidden false)))) (do (animation/set-value anim-opacity 1) - (animation/set-value anim-y (if platform/desktop? connectivity-bar-height 0)) + (animation/set-value anim-y 0) (reset! to-hide? true) (reset! status-hidden false)))))) diff --git a/src/status_im/ui/components/icons/vector_icons.cljs b/src/status_im/ui/components/icons/vector_icons.cljs index a14894f122..35e8730ed4 100644 --- a/src/status_im/ui/components/icons/vector_icons.cljs +++ b/src/status_im/ui/components/icons/vector_icons.cljs @@ -1,9 +1,7 @@ (ns status-im.ui.components.icons.vector-icons (:require [status-im.ui.components.react :as react] [status-im.ui.components.colors :as colors] - [status-im.utils.platform :as platform] - [status-im.ui.components.icons.icons :as icons] - [clojure.string :as string]) + [status-im.ui.components.icons.icons :as icons]) (:refer-clojure :exclude [use])) (defn- match-color [color] @@ -24,9 +22,7 @@ colors/black)) (defn icon-source [name] - (if platform/desktop? - {:uri (keyword (string/replace (clojure.core/name name) "-" "_"))} - (icons/icon-source name))) + (icons/icon-source name)) (defn icon ([name] (icon name nil)) diff --git a/src/status_im/ui/components/react.cljs b/src/status_im/ui/components/react.cljs index 4ad2104cf7..a7af7b6dee 100644 --- a/src/status_im/ui/components/react.cljs +++ b/src/status_im/ui/components/react.cljs @@ -82,7 +82,6 @@ (def keyboard (.-Keyboard react-native)) (def dismiss-keyboard! #(.dismiss ^js Keyboard)) (def linking (.-Linking react-native)) -(def desktop-notification (.-DesktopNotification ^js (.-NativeModules react-native))) (def max-font-size-multiplier 1.25) diff --git a/src/status_im/ui/components/tabbar/core.cljs b/src/status_im/ui/components/tabbar/core.cljs index a46104325e..60bfd53492 100644 --- a/src/status_im/ui/components/tabbar/core.cljs +++ b/src/status_im/ui/components/tabbar/core.cljs @@ -45,16 +45,14 @@ :icon :main-icons/message} :count-subscription :chats/unread-messages-number :accessibility-label :home-tab-button} - (when-not platform/desktop? - {:nav-stack :browser-stack - :content {:title (i18n/label :t/browser) - :icon :main-icons/browser} - :accessibility-label :dapp-tab-button}) - (when-not platform/desktop? - {:nav-stack :wallet-stack - :content {:title (i18n/label :t/wallet) - :icon :main-icons/wallet} - :accessibility-label :wallet-tab-button}) + {:nav-stack :browser-stack + :content {:title (i18n/label :t/browser) + :icon :main-icons/browser} + :accessibility-label :dapp-tab-button} + {:nav-stack :wallet-stack + :content {:title (i18n/label :t/wallet) + :icon :main-icons/wallet} + :accessibility-label :wallet-tab-button} {:nav-stack :profile-stack :content {:title (i18n/label :t/profile) :icon :main-icons/user-profile} @@ -87,10 +85,9 @@ [react/view {:style (tabs.styles/counter-public-container)} [react/view {:style tabs.styles/counter-public :accessibility-label :public-unread-badge}]]))] - (when-not platform/desktop? - [react/view {:style tabs.styles/tab-title-container} - [react/text {:style (tabs.styles/tab-title active?)} - label]])]]]))) + [react/view {:style tabs.styles/tab-title-container} + [react/text {:style (tabs.styles/tab-title active?)} + label]]]]]))) (defn tabs [] (let [listeners (atom []) diff --git a/src/status_im/ui/components/tabbar/styles.cljs b/src/status_im/ui/components/tabbar/styles.cljs index 9e9d4c7f2f..ada66b9dfb 100644 --- a/src/status_im/ui/components/tabbar/styles.cljs +++ b/src/status_im/ui/components/tabbar/styles.cljs @@ -6,8 +6,7 @@ (def tabs-height (cond platform/android? 52 - platform/ios? 52 - platform/desktop? 36)) + platform/ios? 52)) (def minimized-tabs-height 36) diff --git a/src/status_im/ui/components/typography.cljs b/src/status_im/ui/components/typography.cljs index 04088b08f3..55f9660dec 100644 --- a/src/status_im/ui/components/typography.cljs +++ b/src/status_im/ui/components/typography.cljs @@ -35,22 +35,20 @@ (get typography-styles typography) (dissoc style :typography :nested?))] - (if platform/desktop? - (assoc style :font-family default-font-family) - (-> style - (assoc :font-family - (if (= (:font-family style) "monospace") - (if platform/ios? "Menlo-Regular" "monospace") - (str default-font-family "-" - (case font-weight - "400" (when-not (= font-style :italic) - "Regular") - "500" "Medium" - "600" "SemiBold" - "700" "Bold") - (when (= font-style :italic) - "Italic")))) - (dissoc :font-weight :font-style))))) + (-> style + (assoc :font-family + (if (= (:font-family style) "monospace") + (if platform/ios? "Menlo-Regular" "monospace") + (str default-font-family "-" + (case font-weight + "400" (when-not (= font-style :italic) + "Regular") + "500" "Medium" + "600" "SemiBold" + "700" "Bold") + (when (= font-style :italic) + "Italic")))) + (dissoc :font-weight :font-style)))) (defn get-nested-style [{:keys [typography] :as style}] @@ -59,17 +57,15 @@ (merge (get typography-styles typography) (dissoc style :typography))] - (if platform/desktop? - style - (cond-> (dissoc style :font-weight :font-style) - (or font-weight font-style) - (assoc :font-family - (str default-font-family "-" - (case font-weight - "500" "Medium" - "600" "SemiBold" - "700" "Bold" - (when-not (= font-style :italic) - "Regular")) - (when (= font-style :italic) - "Italic"))))))) + (cond-> (dissoc style :font-weight :font-style) + (or font-weight font-style) + (assoc :font-family + (str default-font-family "-" + (case font-weight + "500" "Medium" + "600" "SemiBold" + "700" "Bold" + (when-not (= font-style :italic) + "Regular")) + (when (= font-style :italic) + "Italic")))))) diff --git a/src/status_im/ui/screens/browser/open_dapp/styles.cljs b/src/status_im/ui/screens/browser/open_dapp/styles.cljs index 8014b06e7c..4207f31547 100644 --- a/src/status_im/ui/screens/browser/open_dapp/styles.cljs +++ b/src/status_im/ui/screens/browser/open_dapp/styles.cljs @@ -11,8 +11,6 @@ :margin-top 24 :height 36 :padding-horizontal 14 - :desktop {:height 30 - :width "100%"} :android {:padding 0}}) (defn browser-icon-container [] diff --git a/src/status_im/ui/screens/chat/extensions/views.cljs b/src/status_im/ui/screens/chat/extensions/views.cljs index 3c76d123e4..8af20ab4c5 100644 --- a/src/status_im/ui/screens/chat/extensions/views.cljs +++ b/src/status_im/ui/screens/chat/extensions/views.cljs @@ -2,7 +2,6 @@ (:require-macros [status-im.utils.views :as views]) (:require [status-im.ui.components.react :as react] [re-frame.core :as re-frame] - [status-im.utils.platform :as platform] [status-im.ui.components.colors :as colors] [status-im.ui.components.icons.vector-icons :as icons] [status-im.ui.components.animation :as anim] @@ -13,7 +12,7 @@ [quo/button {:on-press (fn [_] (re-frame/dispatch [:chat.ui/set-chat-ui-props {:input-bottom-sheet (when-not showing? :extensions)}]) - (when-not platform/desktop? (js/setTimeout #(react/dismiss-keyboard!) 100))) + (js/setTimeout #(react/dismiss-keyboard!) 100)) :accessibility-label :show-extensions-icon :type :icon :theme (if showing? :main :disabled)} diff --git a/src/status_im/ui/screens/chat/image/views.cljs b/src/status_im/ui/screens/chat/image/views.cljs index 4fbf587f4a..346f15ff27 100644 --- a/src/status_im/ui/screens/chat/image/views.cljs +++ b/src/status_im/ui/screens/chat/image/views.cljs @@ -1,7 +1,6 @@ (ns status-im.ui.screens.chat.image.views (:require-macros [status-im.utils.views :refer [defview letsubs]]) (:require [status-im.ui.components.react :as react] - [status-im.utils.platform :as platform] [re-frame.core :as re-frame] [quo.core :as quo] [status-im.ui.components.colors :as colors] @@ -22,7 +21,7 @@ {:on-press (fn [_] (re-frame/dispatch [:chat.ui/set-chat-ui-props {:input-bottom-sheet (when-not images-showing? :images)}]) - (when-not platform/desktop? (js/setTimeout #(react/dismiss-keyboard!) 100))) + (js/setTimeout #(react/dismiss-keyboard!) 100)) :accessibility-label :show-photo-icon :type :icon :theme (if images-showing? :main :disabled)} diff --git a/src/status_im/ui/screens/chat/message/gap.cljs b/src/status_im/ui/screens/chat/message/gap.cljs index d5aa38809c..3cea2a7b44 100644 --- a/src/status_im/ui/screens/chat/message/gap.cljs +++ b/src/status_im/ui/screens/chat/message/gap.cljs @@ -4,13 +4,12 @@ [re-frame.core :as re-frame] [status-im.i18n :as i18n] [status-im.utils.datetime :as datetime] - [status-im.ui.screens.chat.styles.input.gap :as style] - [status-im.utils.platform :as platform])) + [status-im.ui.screens.chat.styles.input.gap :as style])) (defn on-press [ids first-gap? idx list-ref] (fn [] - (when (and list-ref @list-ref (not platform/desktop?)) + (when (and list-ref @list-ref) (.scrollToIndex ^js @list-ref #js {:index (max 0 (dec idx)) :viewOffset 20 diff --git a/src/status_im/ui/screens/chat/message/message.cljs b/src/status_im/ui/screens/chat/message/message.cljs index 129f6acd18..85c9a4d70f 100644 --- a/src/status_im/ui/screens/chat/message/message.cljs +++ b/src/status_im/ui/screens/chat/message/message.cljs @@ -11,8 +11,6 @@ [status-im.ui.screens.chat.styles.message.message :as style] [status-im.ui.screens.chat.utils :as chat.utils] [status-im.utils.contenthash :as contenthash] - [status-im.utils.http :as http] - [status-im.utils.platform :as platform] [status-im.utils.security :as security] [reagent.core :as reagent]) (:require-macros [status-im.utils.views :refer [defview letsubs]])) @@ -82,10 +80,8 @@ :on-press #(when (and (security/safe-link? destination) (security/safe-link-text? message-text)) - (if platform/desktop? - (.openURL ^js react/linking (http/normalize-url destination)) - (re-frame/dispatch - [:browser.ui/message-link-pressed destination])))} + (re-frame/dispatch + [:browser.ui/message-link-pressed destination]))} destination]) "mention" @@ -214,9 +210,7 @@ (react/dismiss-keyboard!))} [react/view style/not-sent-view [react/text {:style style/not-sent-text} - (i18n/label (if platform/desktop? - :t/status-not-sent-click - :t/status-not-sent-tap))] + (i18n/label :t/status-not-sent-tap)] [react/view style/not-sent-icon [vector-icons/icon :main-icons/warning {:color colors/red}]]]]) diff --git a/src/status_im/ui/screens/chat/sheets.cljs b/src/status_im/ui/screens/chat/sheets.cljs index 43702a7cc7..82cd69fb4c 100644 --- a/src/status_im/ui/screens/chat/sheets.cljs +++ b/src/status_im/ui/screens/chat/sheets.cljs @@ -6,7 +6,6 @@ [status-im.utils.universal-links.core :as universal-links] [status-im.ui.components.chat-icon.screen :as chat-icon] [status-im.multiaccounts.core :as multiaccounts] - [status-im.utils.platform :as platform] [status-im.ui.screens.chat.styles.message.sheets :as sheets.styles] [quo.core :as quo])) @@ -55,18 +54,17 @@ (let [link (universal-links/generate-link :public-chat :external chat-id) message (i18n/label :t/share-public-chat-text {:link link})] [react/view - (when-not platform/desktop? - [quo/list-item - {:theme :accent - :title (i18n/label :t/share-chat) - :accessibility-label :share-chat-button - :icon :main-icons/share - :on-press (fn [] - (re-frame/dispatch [:bottom-sheet/hide]) - ;; https://github.com/facebook/react-native/pull/26839 - (js/setTimeout - #(list-selection/open-share {:message message}) - 250))}]) + [quo/list-item + {:theme :accent + :title (i18n/label :t/share-chat) + :accessibility-label :share-chat-button + :icon :main-icons/share + :on-press (fn [] + (re-frame/dispatch [:bottom-sheet/hide]) + ;; https://github.com/facebook/react-native/pull/26839 + (js/setTimeout + #(list-selection/open-share {:message message}) + 250))}] [quo/list-item {:theme :accent :title (i18n/label :t/mark-all-read) @@ -180,17 +178,16 @@ :on-press (fn [] (re-frame/dispatch [:bottom-sheet/hide]) (react/copy-to-clipboard (:text content)))}] - (when-not platform/desktop? - [quo/list-item - {:theme :accent - :title (i18n/label :t/sharing-share) - :icon :main-icons/share - :on-press (fn [] - (re-frame/dispatch [:bottom-sheet/hide]) - ;; https://github.com/facebook/react-native/pull/26839 - (js/setTimeout - #(list-selection/open-share {:message (:text content)}) - 250))}])]))) + [quo/list-item + {:theme :accent + :title (i18n/label :t/sharing-share) + :icon :main-icons/share + :on-press (fn [] + (re-frame/dispatch [:bottom-sheet/hide]) + ;; https://github.com/facebook/react-native/pull/26839 + (js/setTimeout + #(list-selection/open-share {:message (:text content)}) + 250))}]]))) (defn sticker-long-press [{:keys [from]}] (fn [] diff --git a/src/status_im/ui/screens/chat/stickers/views.cljs b/src/status_im/ui/screens/chat/stickers/views.cljs index 963cad18f5..1ddc9bc8bd 100644 --- a/src/status_im/ui/screens/chat/stickers/views.cljs +++ b/src/status_im/ui/screens/chat/stickers/views.cljs @@ -11,7 +11,6 @@ [status-im.ui.screens.chat.stickers.styles :as styles] [status-im.ui.components.animation :as anim] [status-im.utils.contenthash :as contenthash] - [status-im.utils.platform :as platform] [status-im.utils.debounce :as debounce])) (def icon-size 28) @@ -25,7 +24,7 @@ [quo/button {:on-press (fn [_] (re-frame/dispatch [:chat.ui/set-chat-ui-props {:input-bottom-sheet (when-not stickers-showing? :stickers)}]) - (when-not platform/desktop? (js/setTimeout #(react/dismiss-keyboard!) 100))) + (js/setTimeout #(react/dismiss-keyboard!) 100)) :accessibility-label :show-stickers-icon :type :icon :theme (if stickers-showing? :main :disabled)} diff --git a/src/status_im/ui/screens/chat/styles/message/message.cljs b/src/status_im/ui/screens/chat/styles/message/message.cljs index d717d138ed..c36866d7e7 100644 --- a/src/status_im/ui/screens/chat/styles/message/message.cljs +++ b/src/status_im/ui/screens/chat/styles/message/message.cljs @@ -78,9 +78,9 @@ (defn delivery-status [outgoing] (if outgoing {:align-self :flex-end - :padding-right (if platform/desktop? 24 8)} + :padding-right 8} {:align-self :flex-start - :padding-left (if platform/desktop? 24 8)})) + :padding-left 8})) (def message-author-touchable {:margin-left 12 diff --git a/src/status_im/ui/screens/desktop/main/styles.cljs b/src/status_im/ui/screens/desktop/main/styles.cljs deleted file mode 100644 index 2a3b7e718f..0000000000 --- a/src/status_im/ui/screens/desktop/main/styles.cljs +++ /dev/null @@ -1,22 +0,0 @@ -(ns status-im.ui.screens.desktop.main.styles - (:require [status-im.ui.components.colors :as colors])) - -(def main-views - {:flex 1 - :flex-direction :row}) - -(def left-sidebar - {:width 340 - :background-color colors/white}) - -(def pane-separator - {:width 1 - :background-color colors/black-transparent}) - -(def absolute - {:position :absolute - :top 0 - :right 0 - :left 0 - :bottom 0 - :flex 1}) diff --git a/src/status_im/ui/screens/desktop/main/views.cljs b/src/status_im/ui/screens/desktop/main/views.cljs deleted file mode 100644 index ec94214416..0000000000 --- a/src/status_im/ui/screens/desktop/main/views.cljs +++ /dev/null @@ -1,49 +0,0 @@ -(ns status-im.ui.screens.desktop.main.views - (:require-macros [status-im.utils.views :as views]) - (:require [status-im.ui.screens.desktop.main.styles :as styles] - [status-im.ui.screens.bootnodes-settings.edit-bootnode.views :as edit-bootnode] - [status-im.ui.screens.about-app.views :as about-app.views] - [status-im.ui.screens.help-center.views :as help-center.views] - [status-im.ui.screens.bootnodes-settings.views :as bootnodes] - [status-im.ui.components.react :as react] - [status-im.ui.screens.offline-messaging-settings.edit-mailserver.views :as edit-mailserver] - [re-frame.core :as re-frame])) - -(views/defview status-view [] - [react/view {:style {:flex 1 :background-color "#eef2f5" :align-items :center :justify-content :center}} - [react/text {:style {:font-size 18 :color "#939ba1"}} - "Status.im"]]) - -(views/defview tab-views [] - [react/view {:style {:flex 1}} - [react/view]]) - -(views/defview popup-view [] - (views/letsubs [{:keys [popup]} [:desktop]] - (when popup - [react/view {:style styles/absolute} - [react/touchable-highlight {:on-press #(re-frame/dispatch [:set-in [:desktop :popup] nil]) - :style {:flex 1}} - [react/view]] - [react/view {:style styles/absolute} - [popup]]]))) - -(views/defview main-view [] - (views/letsubs [view-id [:view-id]] - (let [component (case view-id - :edit-mailserver edit-mailserver/edit-mailserver - :bootnodes-settings bootnodes/bootnodes-settings - :edit-bootnode edit-bootnode/edit-bootnode - :about-app about-app.views/about-app - :help-center help-center.views/help-center - status-view)] - [react/view {:style {:flex 1}} - [component]]))) - -(views/defview main-views [] - [react/view {:style styles/main-views} - [react/view {:style styles/left-sidebar} - [react/view {:style {:flex 1}} - [tab-views]]] - [react/view {:style styles/pane-separator}] - [main-view]]) diff --git a/src/status_im/ui/screens/desktop/views.cljs b/src/status_im/ui/screens/desktop/views.cljs deleted file mode 100644 index 55be906e8b..0000000000 --- a/src/status_im/ui/screens/desktop/views.cljs +++ /dev/null @@ -1,56 +0,0 @@ -(ns status-im.ui.screens.desktop.views - (:require #_[status-im.i18n :as i18n] - [status-im.ui.components.react :as react] - [status-im.ui.screens.desktop.main.views :as main.views] - [status-im.ui.screens.group.views - :refer - [add-participants-toggle-list contact-toggle-list new-group]] - [status-im.ui.screens.intro.views :as intro.views] - [status-im.ui.screens.multiaccounts.login.views :as login.views] - [status-im.ui.screens.multiaccounts.views :as multiaccounts.views] - [status-im.ui.screens.profile.group-chat.views - :refer - [group-chat-profile]] - #_[status-im.utils.utils :as utils]) - (:require-macros [status-im.utils.views :as views])) - -(enable-console-print!) - -(views/defview main [] - (views/letsubs [view-id [:view-id] - #_#_version [:get-app-version]] - {:component-did-mount - (fn [] - #_(.getValue rn-dependencies/desktop-config "desktop-alpha-warning-shown-for-version" - #(when-not (= %1 version) - (.setValue ^js rn-dependencies/desktop-config "desktop-alpha-warning-shown-for-version" version) - (utils/show-popup nil (i18n/label :desktop-alpha-release-warning)))))} - - (let [component (case view-id - :intro intro.views/intro - :multiaccounts multiaccounts.views/multiaccounts - :new-group new-group - :contact-toggle-list contact-toggle-list - :group-chat-profile group-chat-profile - :add-participants-toggle-list add-participants-toggle-list - - (:desktop/new-one-to-one - :desktop/new-group-chat - :desktop/new-public-chat - :advanced-settings - :edit-mailserver - :bootnodes-settings - :edit-bootnode - :about-app - :help-center - :installations - :chat - :home - :qr-code - :chat-profile - :backup-recovery-phrase) main.views/main-views - :login login.views/login - react/view)] - [react/view {:style {:flex 1}} - [component] - [main.views/popup-view]]))) diff --git a/src/status_im/ui/screens/fleet_settings/styles.cljs b/src/status_im/ui/screens/fleet_settings/styles.cljs index 55826acc90..377a5f11e6 100644 --- a/src/status_im/ui/screens/fleet_settings/styles.cljs +++ b/src/status_im/ui/screens/fleet_settings/styles.cljs @@ -1,6 +1,5 @@ (ns status-im.ui.screens.fleet-settings.styles (:require [status-im.ui.components.colors :as colors] - [status-im.utils.platform :as platform] [status-im.utils.styles :as styles])) (def wrapper @@ -30,5 +29,5 @@ :justify-content :center}) (defn fleet-icon [current?] - (hash-map (if platform/desktop? :tint-color :color) + (hash-map :color (if current? colors/white-persist colors/gray))) diff --git a/src/status_im/ui/screens/fleet_settings/views.cljs b/src/status_im/ui/screens/fleet_settings/views.cljs index 37f5618f78..91c7d019ab 100644 --- a/src/status_im/ui/screens/fleet_settings/views.cljs +++ b/src/status_im/ui/screens/fleet_settings/views.cljs @@ -5,17 +5,13 @@ [status-im.ui.components.list.views :as list] [status-im.ui.components.react :as react] [status-im.ui.components.topbar :as topbar] - [status-im.ui.screens.fleet-settings.styles :as styles] - [status-im.utils.platform :as platform]) + [status-im.ui.screens.fleet-settings.styles :as styles]) (:require-macros [status-im.utils.views :as views])) (defn- fleet-icon [current?] - [react/view (if platform/desktop? - {:style (styles/fleet-icon-container current?)} - (styles/fleet-icon-container current?)) + [react/view (styles/fleet-icon-container current?) [vector-icons/icon :main-icons/mailserver - (if platform/desktop? {:style (styles/fleet-icon current?)} - (styles/fleet-icon current?))]]) + (styles/fleet-icon current?)]]) (defn change-fleet [fleet] (re-frame/dispatch [:fleet.ui/fleet-selected fleet])) diff --git a/src/status_im/ui/screens/group/views.cljs b/src/status_im/ui/screens/group/views.cljs index 6c80ed6ba8..588347ee2a 100644 --- a/src/status_im/ui/screens/group/views.cljs +++ b/src/status_im/ui/screens/group/views.cljs @@ -21,8 +21,7 @@ [status-im.ui.components.topbar :as topbar] [status-im.ui.screens.group.styles :as styles] [quo.core :as quo] - [status-im.utils.debounce :as debounce] - [status-im.utils.platform :as platform]) + [status-im.utils.debounce :as debounce]) (:require-macros [status-im.utils.views :as views])) (defn- render-contact [row] @@ -71,31 +70,24 @@ [toggle-item allow-new-users? :is-participant-selected? contact on-toggle-participant]) (defn- handle-invite-friends-pressed [] - (if platform/desktop? - (re-frame/dispatch [:navigate-to :new-contact]) - (list-selection/open-share {:message (i18n/label :t/get-status-at)}))) + (list-selection/open-share {:message (i18n/label :t/get-status-at)})) (defn toggle-list [{:keys [contacts render-fn]}] [react/scroll-view {:flex 1} - (if platform/desktop? - (for [contact contacts] - ^{:key (:public-key contact)} - (render-fn contact)) - [list/flat-list {:data contacts - :key-fn :public-key - :render-fn render-fn - :keyboardShouldPersistTaps :always}])]) + [list/flat-list {:data contacts + :key-fn :public-key + :render-fn render-fn + :keyboardShouldPersistTaps :always}]]) (defn no-contacts [{:keys [no-contacts]}] [react/view {:style styles/no-contacts} [react/text {:style (styles/no-contact-text)} no-contacts] - (when-not platform/desktop? - [quo/button - {:type :secondary - :on-press handle-invite-friends-pressed} - (i18n/label :t/invite-friends)])]) + [quo/button + {:type :secondary + :on-press handle-invite-friends-pressed} + (i18n/label :t/invite-friends)]]) (defn filter-contacts [filter-text contacts] (let [lower-filter-text (string/lower-case (str filter-text)) diff --git a/src/status_im/ui/screens/help_center/views.cljs b/src/status_im/ui/screens/help_center/views.cljs index 689cba0249..ef48dcda54 100644 --- a/src/status_im/ui/screens/help_center/views.cljs +++ b/src/status_im/ui/screens/help_center/views.cljs @@ -5,7 +5,6 @@ [status-im.ui.components.react :as react] [status-im.ui.components.list.views :as list] [status-im.ui.components.colors :as colors] - [status-im.utils.platform :as platform] [status-im.ui.components.topbar :as topbar] [status-im.constants :as constants])) @@ -34,9 +33,7 @@ :accessibility-label :request-a-feature-button :on-press #(re-frame/dispatch [:chat.ui/start-public-chat - (if platform/desktop? - "status-desktop" - "status") + "status" {:navigation-reset? false}]) :chevron true}]) diff --git a/src/status_im/ui/screens/home/styles.cljs b/src/status_im/ui/screens/home/styles.cljs index 08e4ec899a..5dee41740f 100644 --- a/src/status_im/ui/screens/home/styles.cljs +++ b/src/status_im/ui/screens/home/styles.cljs @@ -5,8 +5,7 @@ {:flex 1 :align-self :stretch :line-height 22 - :color colors/gray - :desktop {:max-height 20}}) + :color colors/gray}) (def public-unread {:background-color colors/blue diff --git a/src/status_im/ui/screens/log_level_settings/styles.cljs b/src/status_im/ui/screens/log_level_settings/styles.cljs index b591f2c982..f14ea7c9ec 100644 --- a/src/status_im/ui/screens/log_level_settings/styles.cljs +++ b/src/status_im/ui/screens/log_level_settings/styles.cljs @@ -1,6 +1,5 @@ (ns status-im.ui.screens.log-level-settings.styles (:require [status-im.ui.components.colors :as colors] - [status-im.utils.platform :as platform] [status-im.utils.styles :as styles])) (def wrapper @@ -30,5 +29,5 @@ :justify-content :center}) (defn log-level-icon [current?] - (hash-map (if platform/desktop? :tint-color :color) + (hash-map :color (if current? colors/white-persist colors/gray))) diff --git a/src/status_im/ui/screens/log_level_settings/views.cljs b/src/status_im/ui/screens/log_level_settings/views.cljs index 343a4c52fe..5519857869 100644 --- a/src/status_im/ui/screens/log_level_settings/views.cljs +++ b/src/status_im/ui/screens/log_level_settings/views.cljs @@ -4,17 +4,13 @@ [status-im.ui.components.list.views :as list] [status-im.ui.components.react :as react] [status-im.ui.screens.log-level-settings.styles :as styles] - [status-im.utils.platform :as platform] [status-im.ui.components.topbar :as topbar]) (:require-macros [status-im.utils.views :as views])) (defn- log-level-icon [current?] - [react/view (if platform/desktop? - {:style (styles/log-level-icon-container current?)} - (styles/log-level-icon-container current?)) + [react/view (styles/log-level-icon-container current?) [vector-icons/icon :main-icons/mailserver - (if platform/desktop? {:style (styles/log-level-icon current?)} - (styles/log-level-icon current?))]]) + (styles/log-level-icon current?)]]) (defn change-log-level [log-level] (re-frame/dispatch [:log-level.ui/log-level-selected log-level])) diff --git a/src/status_im/ui/screens/multiaccounts/login/views.cljs b/src/status_im/ui/screens/multiaccounts/login/views.cljs index 4873e36a66..ee5b237a21 100644 --- a/src/status_im/ui/screens/multiaccounts/login/views.cljs +++ b/src/status_im/ui/screens/multiaccounts/login/views.cljs @@ -73,21 +73,19 @@ :main-icons/faceid :main-icons/print) {:color colors/blue}]]])]] - (when-not platform/desktop? - ;; saving passwords is unavailable on Desktop - (if (and platform/android? (not auth-method)) - ;; on Android, there is much more reasons for the password save to be unavailable, - ;; so we don't show the checkbox whatsoever but put a label explaining why it happenned. - [react/i18n-text {:style styles/save-password-unavailable-android - :key :save-password-unavailable-android}] - [react/view {:style {:flex-direction :row - :align-items :center - :justify-content :flex-start - :margin-top 19}} - [checkbox/checkbox {:checked? save-password? - :style {:margin-left 3 :margin-right 10} - :on-value-change #(re-frame/dispatch [:multiaccounts/save-password %])}] - [react/text (i18n/label :t/save-password)]]))]] + (if (and platform/android? (not auth-method)) + ;; on Android, there is much more reasons for the password save to be unavailable, + ;; so we don't show the checkbox whatsoever but put a label explaining why it happenned. + [react/i18n-text {:style styles/save-password-unavailable-android + :key :save-password-unavailable-android}] + [react/view {:style {:flex-direction :row + :align-items :center + :justify-content :flex-start + :margin-top 19}} + [checkbox/checkbox {:checked? save-password? + :style {:margin-left 3 :margin-right 10} + :on-value-change #(re-frame/dispatch [:multiaccounts/save-password %])}] + [react/text (i18n/label :t/save-password)]])]] (when processing [react/view styles/processing-view [react/activity-indicator {:animating true}] diff --git a/src/status_im/ui/screens/offline_messaging_settings/styles.cljs b/src/status_im/ui/screens/offline_messaging_settings/styles.cljs index ec255a9d96..4e8040b6c7 100644 --- a/src/status_im/ui/screens/offline_messaging_settings/styles.cljs +++ b/src/status_im/ui/screens/offline_messaging_settings/styles.cljs @@ -1,6 +1,5 @@ (ns status-im.ui.screens.offline-messaging-settings.styles (:require [status-im.ui.components.colors :as colors] - [status-im.utils.platform :as platform] [status-im.utils.styles :as styles])) (def wrapper @@ -33,7 +32,7 @@ :justify-content :center}) (defn mailserver-icon [connected?] - (hash-map (if platform/desktop? :tint-color :color) + (hash-map :color (if connected? colors/white-persist colors/gray))) (def mailserver-pinned diff --git a/src/status_im/ui/screens/offline_messaging_settings/views.cljs b/src/status_im/ui/screens/offline_messaging_settings/views.cljs index 9b46d21758..9826d49c68 100644 --- a/src/status_im/ui/screens/offline_messaging_settings/views.cljs +++ b/src/status_im/ui/screens/offline_messaging_settings/views.cljs @@ -6,17 +6,13 @@ [status-im.ui.components.icons.vector-icons :as vector-icons] [status-im.ui.components.list.views :as list] [status-im.ui.components.react :as react] - [status-im.utils.platform :as platform] [status-im.ui.screens.offline-messaging-settings.styles :as styles] [status-im.ui.components.topbar :as topbar])) (defn- mailserver-icon [connected?] - [react/view (if platform/desktop? - {:style (styles/mailserver-icon-container connected?)} - (styles/mailserver-icon-container connected?)) + [react/view (styles/mailserver-icon-container connected?) [vector-icons/icon :main-icons/mailserver - (if platform/desktop? {:style (styles/mailserver-icon connected?)} - (styles/mailserver-icon connected?))]]) + (styles/mailserver-icon connected?)]]) (defn pinned-state [pinned?] [react/touchable-highlight {:on-press (if pinned? diff --git a/src/status_im/ui/screens/pairing/styles.cljs b/src/status_im/ui/screens/pairing/styles.cljs index f87037d5cd..e3c42fba4b 100644 --- a/src/status_im/ui/screens/pairing/styles.cljs +++ b/src/status_im/ui/screens/pairing/styles.cljs @@ -64,8 +64,7 @@ (let [color (if enabled? colors/blue colors/gray)] - {:desktop {:tint-color color} - :ios {:color color} + {:ios {:color color} :android {:color color}})) (def paired-devices-title diff --git a/src/status_im/ui/screens/pairing/views.cljs b/src/status_im/ui/screens/pairing/views.cljs index 4ff6bb7988..4b6cc5b42a 100644 --- a/src/status_im/ui/screens/pairing/views.cljs +++ b/src/status_im/ui/screens/pairing/views.cljs @@ -18,13 +18,8 @@ (def syncing (reagent/atom false)) (def installation-name (reagent/atom "")) -(defn icon-style [{:keys [width height] :as style}] - (if utils.platform/desktop? - {:container-style {:width width - - :height height} - :style style} - style)) +(defn icon-style [style] + style) (defn synchronize-installations! [] (reset! syncing true) @@ -76,11 +71,10 @@ (defn your-device [{:keys [installation-id name device-type]}] [react/view {:style styles/installation-item} [react/view {:style (styles/pairing-button true)} - [icons/icon (if (= "desktop" - device-type) - :main-icons/desktop - :main-icons/mobile) - + [icons/icon (if (= "desktop" + device-type) + :main-icons/desktop + :main-icons/mobile) (icon-style (styles/pairing-button-icon true))]] [react/view {:style styles/pairing-actions-text} [react/view @@ -93,8 +87,8 @@ ")")]]]]) (defn render-row [{:keys [name - device-type enabled? + device-type installation-id]}] [react/touchable-highlight {:accessibility-label :installation-item} diff --git a/src/status_im/ui/screens/profile/group_chat/views.cljs b/src/status_im/ui/screens/profile/group_chat/views.cljs index 9731a8f6d8..5f035458e7 100644 --- a/src/status_im/ui/screens/profile/group_chat/views.cljs +++ b/src/status_im/ui/screens/profile/group_chat/views.cljs @@ -12,8 +12,7 @@ [status-im.ui.screens.chat.sheets :as chat.sheets] [status-im.ui.screens.profile.components.styles :as - profile.components.styles] - [status-im.utils.platform :as platform]) + profile.components.styles]) (:require-macros [status-im.utils.views :refer [defview letsubs]])) (defn member-sheet [chat-id member us-admin?] @@ -27,7 +26,7 @@ :accessibility-label :view-chat-details-button :chevron true :on-press #(chat.sheets/hide-sheet-and-dispatch - [(if platform/desktop? :show-profile-desktop :chat.ui/show-profile) + [:chat.ui/show-profile (:public-key member)])}] (when (and us-admin? (not (:admin? member))) @@ -53,7 +52,7 @@ :icon [chat-icon/contact-icon-contacts-tab (multiaccounts/displayed-photo member)] :on-press (when (not= public-key current-user-identity) - #(re-frame/dispatch [(if platform/desktop? :show-profile-desktop :chat.ui/show-profile) public-key]))} + #(re-frame/dispatch [:chat.ui/show-profile public-key]))} (when (:admin? member) {:accessory :text :accessory-text (i18n/label :t/group-chat-admin)}) diff --git a/src/status_im/ui/screens/profile/seed/views.cljs b/src/status_im/ui/screens/profile/seed/views.cljs index 36cd6d50d8..1035d78929 100644 --- a/src/status_im/ui/screens/profile/seed/views.cljs +++ b/src/status_im/ui/screens/profile/seed/views.cljs @@ -13,8 +13,7 @@ [status-im.utils.utils :as utils] [status-im.ui.screens.profile.seed.styles :as styles] [status-im.i18n :as i18n] - [quo.core :as quo] - [status-im.utils.platform :as platform])) + [quo.core :as quo])) (def steps-numbers {:intro 1 @@ -33,9 +32,8 @@ [react/scroll-view {:style {:padding-horizontal 16} :content-container-style {:align-items :center :justify-content :center}} - (when-not platform/desktop? - [react/image {:source (resources/get-image :lock) - :style styles/intro-image}]) + [react/image {:source (resources/get-image :lock) + :style styles/intro-image}] [react/i18n-text {:style styles/intro-text :key :your-data-belongs-to-you}] [react/i18n-text {:style styles/intro-description diff --git a/src/status_im/utils/config.cljs b/src/status_im/utils/config.cljs index 97df9d0d3c..c4a28eb97f 100644 --- a/src/status_im/utils/config.cljs +++ b/src/status_im/utils/config.cljs @@ -30,7 +30,6 @@ (def erc20-contract-warnings-enabled? (enabled? (get-config :ERC20_CONTRACT_WARNINGS))) (def tr-to-talk-enabled? (enabled? (get-config :TRIBUTE_TO_TALK 0))) (def max-message-delivery-attempts (js/parseInt (get-config :MAX_MESSAGE_DELIVERY_ATTEMPTS "6"))) -(def mobile-ui-for-desktop? (enabled? (get-config :MOBILE_UI_FOR_DESKTOP "0"))) ;; NOTE: only disabled in releases (def local-notifications? (enabled? (get-config :LOCAL_NOTIFICATIONS "1"))) (def blank-preview? (enabled? (get-config :BLANK_PREVIEW "1"))) diff --git a/src/status_im/utils/dimensions.cljs b/src/status_im/utils/dimensions.cljs index bfc6d6e347..2c135d9484 100644 --- a/src/status_im/utils/dimensions.cljs +++ b/src/status_im/utils/dimensions.cljs @@ -1,7 +1,6 @@ (ns status-im.utils.dimensions (:require [re-frame.core :as re-frame] - [status-im.ui.components.react :as react] - [status-im.constants :as constants])) + [status-im.ui.components.react :as react])) (declare window) @@ -18,7 +17,3 @@ (-> m (js->clj :keywordize-keys true) :window))) - -(defn fit-two-pane? [] - (let [width (get (window) :width)] - (>= width constants/two-pane-min-width))) diff --git a/src/status_im/utils/keychain/core.cljs b/src/status_im/utils/keychain/core.cljs index 8a3ffcffd9..4d7a932d1d 100644 --- a/src/status_im/utils/keychain/core.cljs +++ b/src/status_im/utils/keychain/core.cljs @@ -104,10 +104,8 @@ "Gets the credentials for a specified server from the Keychain" [server callback] (log/debug "[keychain] get-credentials") - (if platform/mobile? - (-> (.getInternetCredentials react-native-keychain (string/lower-case server)) - (.then callback)) - (callback))) ;; no-op for Desktop + (-> (.getInternetCredentials react-native-keychain (string/lower-case server)) + (.then callback))) (def auth-method-password "password") (def auth-method-biometric "biometric") @@ -198,9 +196,8 @@ (re-frame/reg-fx :keychain/clear-user-password (fn [key-uid] - (when platform/mobile? - (-> (.resetInternetCredentials react-native-keychain (string/lower-case key-uid)) - (.then #(when-not % (log/error (str "Error while clearing saved password.")))))))) + (-> (.resetInternetCredentials react-native-keychain (string/lower-case key-uid)) + (.then #(when-not % (log/error (str "Error while clearing saved password."))))))) (fx/defn get-auth-method [_ key-uid] diff --git a/src/status_im/utils/logging/core.cljs b/src/status_im/utils/logging/core.cljs index 6a20becdf1..eaabe8d81d 100644 --- a/src/status_im/utils/logging/core.cljs +++ b/src/status_im/utils/logging/core.cljs @@ -74,7 +74,6 @@ :chat/last-outgoing-message-sent-at :chat/spam-messages-frequency :chats/loading? - :desktop/desktop :dimensions/window :my-profile/editing?]))] {:logs/archive-logs [db-json ::send-email]})) @@ -108,7 +107,7 @@ "logs attached" [{:keys [:web3-node-version :mailserver/current-id :node-info :peers-summary]}] - (let [build-number (if platform/desktop? build/version build/build-no) + (let [build-number build/build-no build-version (str build/version " (" build-number ")") separator (string/join (take 40 (repeat "-"))) [enode-id ip-address port] diff --git a/src/status_im/utils/platform.cljs b/src/status_im/utils/platform.cljs index 427f015fcf..6d3f44a29a 100644 --- a/src/status_im/utils/platform.cljs +++ b/src/status_im/utils/platform.cljs @@ -1,7 +1,5 @@ (ns status-im.utils.platform - (:require [status-im.android.platform :as android] - [status-im.ios.platform :as ios] - [status-im.desktop.platform :as desktop] + (:require [status-im.ios.platform :as ios] ["react-native" :as react-native])) (def platform @@ -17,20 +15,8 @@ (def android? (= os "android")) (def ios? (= os "ios")) -(def desktop? (= os "desktop")) -(def mobile? (not= os "desktop")) (def iphone-x? (and ios? (ios/iphone-x-dimensions?))) -(def isMacOs? (when platform (.-isMacOs ^js platform))) -(def isNix? (when platform (or (.-isLinux ^js platform) (.-isUnix ^js platform)))) -(def isWin? (when platform (.-isWin ^js platform))) - -(def platform-specific - (cond - android? android/platform-specific - ios? ios/platform-specific - :else desktop/platform-specific)) - (defn no-backup-directory [] (cond android? "/../no_backup" diff --git a/src/status_im/utils/styles.clj b/src/status_im/utils/styles.clj index d1463fc4df..ef5bb6980d 100644 --- a/src/status_im/utils/styles.clj +++ b/src/status_im/utils/styles.clj @@ -3,7 +3,7 @@ (defn- body [style] `(let [style# ~style - common# (dissoc style# :android :ios :desktop) + common# (dissoc style# :android :ios) platform# (keyword status-im.utils.platform/os) platform-specific# (get style# platform#)] (if platform-specific# diff --git a/src/status_im/utils/utils.cljs b/src/status_im/utils/utils.cljs index 0441e5f538..7212ae2111 100644 --- a/src/status_im/utils/utils.cljs +++ b/src/status_im/utils/utils.cljs @@ -3,7 +3,6 @@ [goog.string :as gstring] [status-im.i18n :as i18n] [re-frame.core :as re-frame] - [status-im.utils.platform :as platform] [status-im.ethereum.eip55 :as eip55] [status-im.ethereum.core :as ethereum] ["react-native" :as react-native] @@ -91,9 +90,7 @@ ;; background-timer (defn set-timeout [cb ms] - (if platform/desktop? - (js/setTimeout cb ms) - (.setTimeout background-timer cb ms))) + (.setTimeout background-timer cb ms)) ;; same as re-frame dispatch-later but using background timer for long ;; running timeouts @@ -104,19 +101,13 @@ (set-timeout #(re-frame/dispatch dispatch) ms)))) (defn clear-timeout [id] - (if platform/desktop? - (js/clearTimeout id) - (.clearTimeout background-timer id))) + (.clearTimeout background-timer id)) (defn set-interval [cb ms] - (if platform/desktop? - (js/setInterval cb ms) - (.setInterval background-timer cb ms))) + (.setInterval background-timer cb ms)) (defn clear-interval [id] - (if platform/desktop? - (js/clearInterval id) - (.clearInterval background-timer id))) + (.clearInterval background-timer id)) (defn format-decimals [amount places] (let [decimal-part (get (string/split (str amount) ".") 1)] diff --git a/translations/ar.json b/translations/ar.json index bbe942865e..2d3b852c6a 100644 --- a/translations/ar.json +++ b/translations/ar.json @@ -359,7 +359,6 @@ "deny": "رفض", "derivation-path": "مسار الاشتقاق", "description": "وصف", - "desktop-alpha-release-warning": "شكرا لمحاولة Status سطح المكتب! هذا إصدار أولي مبكر يركز على الدردشة ويفقد العديد من الميزات الموجودة في برنامج العميل المحمول وقد يحتوي على أخطاء ومشكلات أخرى. يرجى ملاحظة أن هذا إصدار ألفا وننصحك باستخدام هذا التطبيق لأغراض الاختبار فقط وأنت تتحمل المسؤولية الكاملة عن جميع المخاطر المتعلقة ببياناتك وأموالك. Status لا تقدم أي مطالبات بالأمان أو سلامة الأموال في هذه البنيات.", "dev-mode": "وضع التنمية", "dev-mode-settings": "وضع التنمية", "device-syncing": "مزامنة الجهاز", @@ -1109,7 +1108,6 @@ "url": "URL", "usd-currency": "دولار أمريكي", "use-valid-contact-code": "الرجاء إدخال مفتاح دردشة صالح أو مسحه ضوئيًا", - "use-valid-contact-code-desktop": "يرجى إدخال مفتاح دردشة صالح أو اسم المستخدم", "user-not-found": "لم يتم العثور على المستخدم", "validation-amount-invalid-number": "المبلغ ليس رقمًا صالحًا", "validation-amount-is-too-precise": "المبلغ دقيق جدا. الحد الأقصى لعدد الكسور العشرية هو {{decimals}} .", @@ -1194,4 +1192,4 @@ "your-keys": "مفاتيحك", "your-recovery-phrase": "العبارة الأولية الخاصة بك", "your-recovery-phrase-description": "هذه هي العبارة الأولية الخاصة بك. يمكنك استخدامها لإثبات أن هذه هي محفظتك. يمكنك فقط أن ترى ذلك مرة واحدة! اكتبها على الورق واحتفظ بها في مكان آمن. ستحتاج إليها إذا فقدت أو أعدت تثبيت محفظتك." -} \ No newline at end of file +} diff --git a/translations/de.json b/translations/de.json index 84ce2c6f10..634418ed72 100644 --- a/translations/de.json +++ b/translations/de.json @@ -333,7 +333,6 @@ "deny": "Verweigern", "derivation-path": "Ableitungspfad", "description": "Beschreibung", - "desktop-alpha-release-warning": "Vielen Dank, dass Sie Status Desktop ausprobiert haben! Dies ist eine frühe Alpha-Version, die sich auf Chats konzentriert. Es fehlen einige Funktionen des mobilen Clients, die möglicherweise Fehler und andere Probleme enthalten. Bitte beachten Sie, dass dies eine Alpha-Version ist. Wir empfehlen Ihnen, diese App nur zu Testzwecken zu verwenden und die volle Verantwortung für alle Risiken in Bezug auf Ihre Daten und Gelder zu übernehmen. Status erhebt keinen Anspruch auf Sicherheit oder Integrität der Gelder in diesen Builds.", "dev-mode": "Entwicklungsmodus", "dev-mode-settings": "Einstellungen des Entwicklungsmodus", "device-syncing": "Gerätesynchronisierung", @@ -1073,7 +1072,6 @@ "url": "URL", "usd-currency": "USD", "use-valid-contact-code": "Bitte geben Sie einen gültigen Chat-Schlüssel oder Benutzernamen ein oder scannen Sie ihn ein", - "use-valid-contact-code-desktop": "Bitte geben Sie einen gültigen Chat-Schlüssel oder Benutzernamen ein", "user-not-found": "Benutzer nicht gefunden", "validation-amount-invalid-number": "Der Betrag ist keine gültige Zahl", "validation-amount-is-too-precise": "Betrag ist zu genau. Die maximale Anzahl von Dezimalstellen beträgt {{decimals}}.", @@ -1154,4 +1152,4 @@ "your-keys": "Ihre Schlüssel", "your-recovery-phrase": "Ihre Seed-Phrase", "your-recovery-phrase-description": "Dies ist Ihre Seed-Phrase. Sie verwenden sie, um zu beweisen, dass dies Ihre Wallet ist. Man kann sie nur einmal sehen! Schreiben Sie sie auf Papier und bewahren Sie es an einem sicheren Ort auf. Sie benötigen sie, wenn Sie Ihre Wallet verlieren oder neu installieren." -} \ No newline at end of file +} diff --git a/translations/en.json b/translations/en.json index 7388b7337b..ef3afdaee8 100644 --- a/translations/en.json +++ b/translations/en.json @@ -313,7 +313,6 @@ "delete-network-title": "Delete network?", "deny": "Deny", "description": "Description", - "desktop-alpha-release-warning": "Thanks for trying Status Desktop! This is an early alpha release focused on chat, and is missing several features found in the mobile client and may contain bugs and other issues. Please note that this is an alpha release and we advise you that using this app should be done for testing purposes only and you assume the full responsibility for all risks concerning your data and funds. Status makes no claims of security or integrity of funds in these builds.", "dev-mode": "Development mode", "dev-mode-settings": "Development mode settings", "device-syncing": "Device syncing", @@ -1043,7 +1042,6 @@ "url": "URL", "usd-currency": "USD", "use-valid-contact-code": "Please enter or scan a valid chat key or username", - "use-valid-contact-code-desktop": "Please enter a valid chat key or username", "validation-amount-invalid-number": "Amount is not a valid number", "validation-amount-is-too-precise": "Amount is too precise. Max number of decimals is {{decimals}}.", "version": "App version", diff --git a/translations/es.json b/translations/es.json index 67f4b73c43..2f77ff2bff 100644 --- a/translations/es.json +++ b/translations/es.json @@ -333,7 +333,6 @@ "deny": "Negar", "derivation-path": "Ruta de derivación", "description": "Descripción", - "desktop-alpha-release-warning": "¡Gracias por probar Status Desktop! Esta es una anticipada versión alfa enfocada en el chat, y le faltan varias funciones que se encuentran en el cliente móvil y puede contener errores y otros problemas. Ten en cuenta que esta es una versión alfa y te recomendamos que uses esta app solo para fines de prueba y asumas la responsabilidad total de todos los riesgos relacionados con tus datos y fondos. Status no hace afirmación de seguridad o integridad de fondos en estas versiones.", "dev-mode": "Modo de desarrollo", "dev-mode-settings": "Ajustes del modo de desarrollo", "device-syncing": "Sincronización de dispositivos", @@ -1066,7 +1065,6 @@ "url": "URL", "usd-currency": "Dólar estadounidense", "use-valid-contact-code": "Por favor, ingresa o escanea una clave de contacto o nombre de usuario válido", - "use-valid-contact-code-desktop": "Por favor ingresa una clave de chat válida o nombre de usuario", "user-not-found": "Usuario no encontrado", "validation-amount-invalid-number": "La cantidad no es un número válido", "validation-amount-is-too-precise": "La cantidad es muy precisa. La cantidad máxima de decimales es {{decimals}} .", @@ -1147,4 +1145,4 @@ "your-keys": "Tus claves", "your-recovery-phrase": "Tu frase semilla", "your-recovery-phrase-description": "Esta es tu frase semilla. La usas para comprobar que esta es tu billetera. ¡Sólo la verás una vez! Escríbela en un papel y guárdala en un lugar seguro. La necesitarás si pierdes o reinstalas tu billetera." -} \ No newline at end of file +} diff --git a/translations/es_419.json b/translations/es_419.json index 67f4b73c43..2f77ff2bff 100644 --- a/translations/es_419.json +++ b/translations/es_419.json @@ -333,7 +333,6 @@ "deny": "Negar", "derivation-path": "Ruta de derivación", "description": "Descripción", - "desktop-alpha-release-warning": "¡Gracias por probar Status Desktop! Esta es una anticipada versión alfa enfocada en el chat, y le faltan varias funciones que se encuentran en el cliente móvil y puede contener errores y otros problemas. Ten en cuenta que esta es una versión alfa y te recomendamos que uses esta app solo para fines de prueba y asumas la responsabilidad total de todos los riesgos relacionados con tus datos y fondos. Status no hace afirmación de seguridad o integridad de fondos en estas versiones.", "dev-mode": "Modo de desarrollo", "dev-mode-settings": "Ajustes del modo de desarrollo", "device-syncing": "Sincronización de dispositivos", @@ -1066,7 +1065,6 @@ "url": "URL", "usd-currency": "Dólar estadounidense", "use-valid-contact-code": "Por favor, ingresa o escanea una clave de contacto o nombre de usuario válido", - "use-valid-contact-code-desktop": "Por favor ingresa una clave de chat válida o nombre de usuario", "user-not-found": "Usuario no encontrado", "validation-amount-invalid-number": "La cantidad no es un número válido", "validation-amount-is-too-precise": "La cantidad es muy precisa. La cantidad máxima de decimales es {{decimals}} .", @@ -1147,4 +1145,4 @@ "your-keys": "Tus claves", "your-recovery-phrase": "Tu frase semilla", "your-recovery-phrase-description": "Esta es tu frase semilla. La usas para comprobar que esta es tu billetera. ¡Sólo la verás una vez! Escríbela en un papel y guárdala en un lugar seguro. La necesitarás si pierdes o reinstalas tu billetera." -} \ No newline at end of file +} diff --git a/translations/fil.json b/translations/fil.json index 2f0d1c0236..d39bd42577 100644 --- a/translations/fil.json +++ b/translations/fil.json @@ -359,7 +359,6 @@ "deny": "Deny", "derivation-path": "Landas ng dereksyon", "description": "Paglalarawan", - "desktop-alpha-release-warning": "Salamat sa pagsubok sa Status Desktop! ito ay isang maagang paglabas ng alpha na nakatuon sa chat, at nawawala ang ilang mga tampok na matatagpuan sa mobile client at maaaring maglaman ng mga bug at iba pang mga isyu.Mangyaring tandaan na ito ay isang paglabas ng alpha at ipinapayo namin sa iyo na ang paggamit ng app na ito ay dapat gawin para sa mga layunin ng pagsubok lamang at ipinapalagay mo ang buong responsibilidad para sa lahat ng mga panganib tungkol sa iyong data at pondo. Ang Status ay hindi gumagawa ng mga pag-angkin ng seguridad o integridad ng mga pondo sa mga build na ito.", "dev-mode": "Mode ng pag-unlad", "dev-mode-settings": "Pag-unlad ng mga setting ng mode", "device-syncing": "Pag-sync ng aparato", @@ -1109,7 +1108,6 @@ "url": "URL", "usd-currency": "USD", "use-valid-contact-code": "Mangyaring mag-enter o mag-scan ng isang wastong chat key o username", - "use-valid-contact-code-desktop": "Pakiusap Maglagay ng tamang chat key o username", "user-not-found": "Hindi nahanap ang gumagamit", "validation-amount-invalid-number": "Ang halaga ay hindi isang wastong numero", "validation-amount-is-too-precise": "Masyadong tumpak ang halaga. Sobrang bilang ng mga decimals ay{{decimals}}", @@ -1194,4 +1192,4 @@ "your-keys": "Ang iyong susi", "your-recovery-phrase": "Ang iyong seed phrase", "your-recovery-phrase-description": "ito ang iyong seed phrase. Ginagamit mo ito upang patunayan na ito ang iyong pitaka. ikaw lamang makita ito nang isang beses! Isulat ito sa papel at itago ito sa isang ligtas na lugar. Kakailanganin mo ito kung nawala o muling i-install ang iyong pitaka." -} \ No newline at end of file +} diff --git a/translations/fr.json b/translations/fr.json index b25b3f7604..de185b82b6 100644 --- a/translations/fr.json +++ b/translations/fr.json @@ -333,7 +333,6 @@ "deny": "Nier", "derivation-path": "Chemin de dérivation", "description": "Description", - "desktop-alpha-release-warning": "Merci d'avoir essayé Status Desktop! Il s'agit d'une première version alpha centrée sur le chat. Il manque plusieurs fonctionnalités présentes dans le client mobile et peut contenir des bogues et d'autres problèmes. Veuillez noter qu'il s'agit d'une version alpha et que nous vous conseillons d'utiliser cette application uniquement à des fins de test et d'assumer l'entière responsabilité de tous les risques liés à vos données et à vos fonds. Status ne fait aucune revendication de sécurité ou d’intégrité des fonds dans ces builds.", "dev-mode": "Mode de développement", "dev-mode-settings": "Paramètres du mode de développement", "device-syncing": "Synchronisation des appareils", @@ -1042,7 +1041,6 @@ "url": "URL", "usd-currency": "USD", "use-valid-contact-code": "Veuillez entrer ou scanner un code de contact ou un nom d'utilisateur valide.", - "use-valid-contact-code-desktop": "Veuillez entrer un code de contact ou un nom d'utilisateur valide", "user-not-found": "Utilisateur non trouvé", "validation-amount-invalid-number": "Le montant n'est pas un nombre valide", "validation-amount-is-too-precise": "Le montant est trop précis. Le nombre maximum de décimales est {{decimals}} .", @@ -1122,4 +1120,4 @@ "your-keys": "Vos clés", "your-recovery-phrase": "Votre phrase de récupération", "your-recovery-phrase-description": "Ceci est votre phrase de récupération. Vous l'utilisez pour prouver qu'il s'agit de votre portefeuille. Vous ne le voyez qu'une fois! Ecrivez-le sur du papier et conservez-le dans un endroit sûr. Vous en aurez besoin si vous perdez ou réinstallez votre portefeuille." -} \ No newline at end of file +} diff --git a/translations/id.json b/translations/id.json index 8186fd5497..ed91e19532 100644 --- a/translations/id.json +++ b/translations/id.json @@ -327,7 +327,6 @@ "deny": "Menyangkal", "derivation-path": "Jalur derivasi", "description": "Deskripsi", - "desktop-alpha-release-warning": "Terima kasih telah mencoba Status Desktop! Ini adalah rilis alpha awal yang berfokus pada obrolan, dan kehilangan beberapa fitur yang ditemukan di klien seluler dan mungkin mengandung bug dan masalah lainnya. Harap dicatat bahwa ini adalah rilis alfa dan kami menyarankan Anda bahwa menggunakan aplikasi ini harus dilakukan hanya untuk tujuan pengujian dan Anda memikul tanggung jawab penuh untuk semua risiko terkait data dan dana Anda. Status tidak membuat klaim keamanan atau integritas dana dalam bangunan ini.", "dev-mode": "Mode pengembangan", "dev-mode-settings": "Pengaturan mode pengembangan", "device-syncing": "Sinkronisasi perangkat", @@ -1058,7 +1057,6 @@ "url": "URL", "usd-currency": "USD", "use-valid-contact-code": "Silakan masukkan atau pindai kunci obrolan atau nama pengguna yang valid", - "use-valid-contact-code-desktop": "Silakan masukkan kunci obrolan atau nama pengguna yang valid", "user-not-found": "Pengguna tidak ditemukan", "validation-amount-invalid-number": "Jumlahnya bukan angka yang valid", "validation-amount-is-too-precise": "Jumlahnya terlalu tepat. Jumlah desimal maksimum adalah {{decimals}} .", @@ -1138,4 +1136,4 @@ "your-keys": "Kunci Anda", "your-recovery-phrase": "Frase seed Anda", "your-recovery-phrase-description": "Ini adalah frase awal Anda. Anda menggunakannya untuk membuktikan bahwa ini adalah dompet Anda. Anda hanya bisa melihatnya sekali! Tulis di atas kertas dan simpan di tempat yang aman. Anda akan membutuhkannya jika Anda kehilangan atau menginstal ulang dompet Anda." -} \ No newline at end of file +} diff --git a/translations/it.json b/translations/it.json index f22b078fbf..ee540e61c8 100644 --- a/translations/it.json +++ b/translations/it.json @@ -333,7 +333,6 @@ "deny": "Nega", "derivation-path": "Percorso di derivazione", "description": "Descrizione", - "desktop-alpha-release-warning": "Grazie per aver provato Status Desktop! Questa è una prima versione alfa focalizzata sulla chat. Mancano alcune funzionalità presenti nel client mobile e può contenere bug e altri problemi. Si prega di notare che si tratta di una versione alfa e ti consigliamo di utilizzare questa app solo a scopo di test. Usandola ti assumerai la piena responsabilità per tutti rischi relativi ai dati e ai fondi. Status, in queste build, non garantisce la sicurezza o l'integrità dei fondi.", "dev-mode": "Modalità di sviluppo", "dev-mode-settings": "Impostazioni modalità di sviluppo", "device-syncing": "Sincronizzazione del dispositivo", @@ -1069,7 +1068,6 @@ "url": "URL", "usd-currency": "USD", "use-valid-contact-code": "Inserisci o scansiona una chiave chat o un nome utente valido", - "use-valid-contact-code-desktop": "Inserisci una chiave chat o un nome utente valido", "user-not-found": "Utente non trovato", "validation-amount-invalid-number": "L'importo non è valido", "validation-amount-is-too-precise": "L'importo è troppo preciso. Il numero massimo di decimali è {{decimals}} .", @@ -1150,4 +1148,4 @@ "your-keys": "Le tue chiavi", "your-recovery-phrase": "La tua frase di recupero", "your-recovery-phrase-description": "Questa è la tua frase di recupero. La usi per dimostrare che questo è il tuo portafoglio. Puoi vederlo solo una volta! Scrivilo su carta e conservalo in un luogo sicuro. Ne avrai bisogno se perdi o reinstalli il tuo portafoglio." -} \ No newline at end of file +} diff --git a/translations/ja.json b/translations/ja.json index c714e5c146..40f738c142 100644 --- a/translations/ja.json +++ b/translations/ja.json @@ -285,7 +285,6 @@ "delete-network-title": "ネットワークを削除しますか?", "deny": "拒否", "description": "説明", - "desktop-alpha-release-warning": "Statusデスクトップを利用していただきありがとうございます!これはチャットにフォーカスした初期アルファ版で、モバイルクライアントにある機能が欠けていたり、バグや問題があるかもしれません。テスト利用目的のみでこのアプリを利用しする音を推奨します。ここで発生するデータや資産に関するリスクへの全ての責任はあなたが負います。Statusはこのバージョンでセキュリティや資産の安全性に関して何も保証しません。", "dev-mode": "デベロッパーモード", "devices": "デバイス", "disable": "無効", @@ -887,7 +886,6 @@ "url": "URL", "usd-currency": "米ドル", "use-valid-contact-code": "有効な連絡先コードまたはユーザー名を入力してください", - "use-valid-contact-code-desktop": "有効な連絡先コードまたはユーザー名を入力してください", "validation-amount-invalid-number": "金額が正しくありません", "validation-amount-is-too-precise": "金額が細かすぎます。小数点以下を{{decimals}}桁以下にしてください。", "view-cryptokitties": "CryptoKittiesで表示", diff --git a/translations/ko.json b/translations/ko.json index 738d8217f6..d9b471833c 100644 --- a/translations/ko.json +++ b/translations/ko.json @@ -329,7 +329,6 @@ "deny": "거절", "derivation-path": "파생 경로", "description": "설명", - "desktop-alpha-release-warning": "스테이터스 데스크탑을 사용해주셔서 감사합니다! 스테이터스 데스크탑은 채팅에 초점을 맞춘 초기 알파 버전이며, 모바일 클라이언트에는 있고 데스크탑에는 없는 몇가지 기능들은 현재 개발 중입니다. 테스트 목적으로만 프로그램을 사용하시는 것을 권장하며, 사용 중에 버그 및 기타 문제가 있을 수 있습니다. 이와 관련하여 데이터 및 자산과 관련된 모든 위험에 대한 책임은 전적으로 귀하에게 있음을 알려드립니다. 스테이터스는 현재 빌드에서 완벽한 보안성이나 무결성을 보장하지 않습니다.", "dev-mode": "개발 모드", "dev-mode-settings": "개발 모드 설정", "device-syncing": "기기 동기화", @@ -1069,7 +1068,6 @@ "url": "URL", "usd-currency": "USD", "use-valid-contact-code": "유효한 채팅 키 또는 사용자 이름을 입력하거나 스캔하십시오", - "use-valid-contact-code-desktop": "유효한 채팅 키 또는 사용자 이름을 입력해주세요", "user-not-found": "사용자를 찾을 수 없습니다", "validation-amount-invalid-number": "잘못된 수량입니다", "validation-amount-is-too-precise": "액수가 너무 정확합니다. 최대 소수점 자리수는 {{decimals}}입니다.", @@ -1149,4 +1147,4 @@ "your-keys": "계정 목록", "your-recovery-phrase": "시드 구문", "your-recovery-phrase-description": "위 12단어가 사용자의 시드 구문입니다. 이 구문은 사용자의 지갑을 증명하기 위해 반드시 필요하며, 이번 한번만 확인할 수 있습니다. 지갑을 분실하거나 재설치하는 경우 반드시 필요하므로 안전한 장소에 보관하세요." -} \ No newline at end of file +} diff --git a/translations/ms.json b/translations/ms.json index 2873de7f28..cb87072b05 100644 --- a/translations/ms.json +++ b/translations/ms.json @@ -198,7 +198,6 @@ "delete-network-title": "Padam rangkaian?", "deny": "Nafikan", "description": "Penerangan", - "desktop-alpha-release-warning": "Terima kasih kerana mencuba Status Desktop! Ini adalah pelepasan percubaan awal yang difokuskan pada sembang, dan tiada beberapa ciri yang terdapat pada klien mudah alih dan mungkin mengandungi pepijat dan isu-isu lain. Sila ambil perhatian bahawa ini adalah pelepasan percubaan dan kami menasihati anda bahawa penggunaan aplikasi ini cuma dilakukan untuk tujuan pengujian sahaja dan anda bertanggungjawab sepenuhnya terhadap semua risiko yang berkaitan dengan data dan dana anda. Status tidak membuat tuntutan janji keselamatan atau integriti dana anda dalam binaan ini.", "dev-mode": "Mod pembangunan", "devices": "Peranti", "disconnected": "Menyambung ke peer...", @@ -489,4 +488,4 @@ "yes": "Ya", "You": "Anda", "you-are-all-set": "Anda telah siap sedia!" -} \ No newline at end of file +} diff --git a/translations/pt_BR.json b/translations/pt_BR.json index 869a565bd4..b4f48cf83d 100644 --- a/translations/pt_BR.json +++ b/translations/pt_BR.json @@ -333,7 +333,6 @@ "deny": "Negar", "derivation-path": "Caminho de derivação", "description": "Descrição", - "desktop-alpha-release-warning": "Obrigado por experimentar o Status Desktop! Esta é uma versão alfa inicial focada no bate-papo e faltam vários recursos encontrados no cliente móvel e podem conter bugs e outros problemas. Observe que esta é uma versão alfa e recomendamos que o uso deste aplicativo seja feito apenas para fins de teste e você assume a total responsabilidade por todos os riscos relacionados a seus dados e fundos. O status não faz reivindicações de segurança ou integridade de fundos nessas compilações.", "dev-mode": "Modo de desenvolvimento", "dev-mode-settings": "Configurações do modo de desenvolvimento", "device-syncing": "Sincronização de dispositivos", @@ -1073,7 +1072,6 @@ "url": "URL", "usd-currency": "USD", "use-valid-contact-code": "Digite ou verifique uma chave de bate-papo ou nome de usuário válidos", - "use-valid-contact-code-desktop": "Por favor, insira um nome de usuário válido ou uma chave de chat", "user-not-found": "Usuário não encontrado", "validation-amount-invalid-number": "Quantidade não é um número válido", "validation-amount-is-too-precise": "O valor é muito preciso. O número máximo de casas decimais é {{decimals}} .", @@ -1154,4 +1152,4 @@ "your-keys": "Suas chaves", "your-recovery-phrase": "Sua frase-semente", "your-recovery-phrase-description": "Esta é sua frase-semente. Você o usa para provar que esta é sua carteira. Você só pode vê-lo uma vez! Escreva no papel e mantenha em um lugar seguro. Você vai precisar dele se você perder ou reinstalar sua carteira." -} \ No newline at end of file +} diff --git a/translations/ru.json b/translations/ru.json index 39bc509f6a..d0b1bb740c 100644 --- a/translations/ru.json +++ b/translations/ru.json @@ -351,7 +351,6 @@ "deny": "Отказать", "derivation-path": "Путь извлечения", "description": "Описание", - "desktop-alpha-release-warning": "Спасибо за попытку Status Desktop! Это ранняя альфа-версия, ориентированная на чат, в которой отсутствуют некоторые функции мобильного клиента, и она может содержать ошибки и другие проблемы. Обратите внимание, что это альфа-версия, мы советуем вам использовать это приложение только для целей тестирования, и вы берете на себя полную ответственность за все риски, касающиеся ваших данных и средств. Status не претендует на безопасность или сохранность средств в этих сборках.", "dev-mode": "Режим разработки", "dev-mode-settings": "Настройки режима разработки", "device-syncing": "Синхронизация устройств", @@ -1066,7 +1065,6 @@ "url": "URL-адрес", "usd-currency": "USD", "use-valid-contact-code": "Пожалуйста, введите или отсканируйте действительный код контакта или имя пользователя", - "use-valid-contact-code-desktop": "Пожалуйста, введите действительный код контакта или имя пользователя", "user-not-found": "Пользователь не найден", "validation-amount-invalid-number": "Сумма не является действительным числом", "validation-amount-is-too-precise": "Слишком много чисел после запятой. {{decimals}} – это максимальное допустимое количество знаков после запятой.", @@ -1148,4 +1146,4 @@ "your-keys": "Ваши ключи", "your-recovery-phrase": "Ваша фраза восстановления", "your-recovery-phrase-description": "Это ваша фраза восстановления. Она нужна для того, чтобы доказать, что это ваш кошелек. Вы можете ее увидеть только один раз! Запишите ее на бумаге и храните в надежном месте. Она понадобится вам, если вы потеряете или переустановите свой кошелек." -} \ No newline at end of file +} diff --git a/translations/tr.json b/translations/tr.json index 577d281c15..7323ed02ee 100644 --- a/translations/tr.json +++ b/translations/tr.json @@ -335,7 +335,6 @@ "deny": "Reddet", "derivation-path": "Türetme yolu", "description": "Açıklama", - "desktop-alpha-release-warning": "Status Desktop'ı denediğiniz için teşekkür ederiz! Bu, sohbete odaklanan erken bir alfa sürümüdür ve mobil uygulamada bulunan birkaç özellik eksiktir.Hatalar ve diğer sorunlar içerebilir. Bu bir alfa sürümü olduğunu ve uygulamayı sadece test amaçlı kullanılması gerektiğini ve veri,fonlar ile ilgili tüm risklerin tam sorumluluğunu üstlenmenizi öneririz.Lüfen unutmayın. Status, herhangi bir güvenlik veya fon bütünlüğü iddiasında bulunmaz.", "dev-mode": "Geliştirici Modu", "dev-mode-settings": "Geliştirme modu ayarları", "device-syncing": "Cihaz senkronizasyonu", @@ -1077,7 +1076,6 @@ "url": "URL", "usd-currency": "Usd", "use-valid-contact-code": "Lütfen geçerli bir sohbet anahtarı veya kullanıcı adı girin veya tarayın", - "use-valid-contact-code-desktop": "Lütfen geçerli bir sohbet anahtarı veya kullanıcı adı girin", "user-not-found": "Kullanıcı bulunamadı", "validation-amount-invalid-number": "Tutar geçerli bir sayı değil", "validation-amount-is-too-precise": "Tutar çok hassas. Maksimum ondalık sayı {{decimals}}", @@ -1158,4 +1156,4 @@ "your-keys": "Senin anahtarların", "your-recovery-phrase": "Kelime imzanız", "your-recovery-phrase-description": "Bu senin kelime imzan. Bunu senin cüzdanın olduğunu kanıtlamak için kullanıyorsun. Sadece bir kez görüyorsunuz! Kağıda yazın ve güvenli bir yerde saklayın. Cüzdanınızı kaybederseniz veya uygulamayı yeniden yüklerseniz ihtiyacınız olacak." -} \ No newline at end of file +} diff --git a/translations/zh.json b/translations/zh.json index 0a6956df7b..0cceef4a38 100644 --- a/translations/zh.json +++ b/translations/zh.json @@ -329,7 +329,6 @@ "deny": "拒绝", "derivation-path": "派生路径", "description": "描述", - "desktop-alpha-release-warning": "感谢您尝试使用Status桌面版!与手机版功能稍有不同,这一版是早期alpha版本,重点聚焦聊天功能,可能存在一些有待改善的问题。\n请注意,这是一个alpha版本,仅限于测试目的,数据和资金相关的信息,请务必妥善处理与保管,所有风险将由使用者个人承担。此外,针对安全性或资金完整性,在这一版中,Status不做任何声明。", "dev-mode": "开发模式", "dev-mode-settings": "开发模式设置", "device-syncing": "设备同步", @@ -1069,7 +1068,6 @@ "url": "链接", "usd-currency": "USD", "use-valid-contact-code": "请输入或扫描有效的聊天码或用户名", - "use-valid-contact-code-desktop": "请输入有效的聊天码或者用户名", "user-not-found": "未找到用户", "validation-amount-invalid-number": "金额不是一个有效的数字", "validation-amount-is-too-precise": "金额太精确了。最大小数位数为{{decimals}} 。", @@ -1149,4 +1147,4 @@ "your-keys": "您的账户", "your-recovery-phrase": "您的助记词", "your-recovery-phrase-description": "这是您的助记词。您需要用它来证明这个钱包属于您。您只能查看一次!请将其写在纸上并保存在安全的地方。如果丢失或重新安装钱包,您将需要用到这些助记词。" -} \ No newline at end of file +} diff --git a/translations/zh_Hans_CN.json b/translations/zh_Hans_CN.json index 3e7f6ec8b5..73ab9ee92f 100644 --- a/translations/zh_Hans_CN.json +++ b/translations/zh_Hans_CN.json @@ -293,7 +293,6 @@ "delete-network-title": "删除网络?", "deny": "拒绝", "description": "简介", - "desktop-alpha-release-warning": "感谢您尝试使用Status桌面版!与手机版功能稍有不同,这一版是早期alpha版本,重点聚焦聊天功能,可能存在一些有待改善的问题。\n请注意,这是一个alpha版本,仅限于测试目的,数据和资金相关的信息,请务必妥善处理与保管,所有风险将由使用者个人承担。此外,针对安全性或资金完整性,在这一版中,Status不做任何声明。", "dev-mode": "开发模式", "dev-mode-settings": "开发模式设置", "device-syncing": "设备同步", @@ -904,7 +903,6 @@ "url": "链接", "usd-currency": "USD", "use-valid-contact-code": "请输入或扫描有效的联系人代码或用户名", - "use-valid-contact-code-desktop": "请输入有效的聊天码或者用户名", "validation-amount-invalid-number": "金额不是一个有效的数字", "validation-amount-is-too-precise": "金额太精确了。最大小数位数为{{decimals}} 。", "version": "版本", diff --git a/translations/zh_TW.json b/translations/zh_TW.json index b5c743d53e..410a4cb8f7 100644 --- a/translations/zh_TW.json +++ b/translations/zh_TW.json @@ -329,7 +329,6 @@ "deny": "拒絕", "derivation-path": "推導路徑", "description": "描述", - "desktop-alpha-release-warning": "感謝您安裝Status桌面程式!這是針對聊天的早期Alpha版本,缺少行動用戶端中的一些功能,並且可能包含錯誤和其他問題。\n請注意,這是一個Alpha版本,我們建議您僅在出於測試目的下,使用此應用程式,並自行承擔與您的數據和資金有關的所有風險,以及全部責任。在這些版本中,Status不保證任何資金的安全性或完整性。", "dev-mode": "開發人員模式", "dev-mode-settings": "開發模式設定", "device-syncing": "設備同步", @@ -1069,7 +1068,6 @@ "url": "網址", "usd-currency": "美元", "use-valid-contact-code": "請輸入或掃描有效的聊天金鑰或用戶名", - "use-valid-contact-code-desktop": "請輸入有效的聊天金鑰或用戶名稱", "user-not-found": "找不到使用者", "validation-amount-invalid-number": "金額不是有效數字", "validation-amount-is-too-precise": "金額太精確了。小數點後的位數最多為{{decimals}}", @@ -1149,4 +1147,4 @@ "your-keys": "你的金鑰", "your-recovery-phrase": "您的種子詞組", "your-recovery-phrase-description": "這是您的種子詞組,能用它來證明這是您的錢包。您只會看到一次!請將其寫在紙上,並存放在安全的地方。如果裝置遺失或想重新安裝錢包,將需要它。" -} \ No newline at end of file +} diff --git a/translations/zh_hans.json b/translations/zh_hans.json index 1a2b3b8334..8e8b27dbfa 100644 --- a/translations/zh_hans.json +++ b/translations/zh_hans.json @@ -274,7 +274,6 @@ "delete-network-title": "删除网络?", "deny": "拒绝", "description": "简介", - "desktop-alpha-release-warning": "感谢您尝试使用Status桌面版!与手机版功能稍有不同,这一版是早期alpha版本,重点聚焦聊天功能,可能存在一些有待改善的问题。\n请注意,这是一个alpha版本,仅限于测试目的,数据和资金相关的信息,请务必妥善处理与保管,所有风险将由使用者个人承担。此外,针对安全性或资金完整性,在这一版中,Status不做任何声明。", "dev-mode": "开发模式", "devices": "设备", "disable": "禁用", @@ -844,7 +843,6 @@ "url": "链接", "usd-currency": "USD", "use-valid-contact-code": "请输入或扫描有效的联系人代码或用户名", - "use-valid-contact-code-desktop": "请输入有效的联系人代码或者用户名", "validation-amount-invalid-number": "金额不是一个有效的数字", "validation-amount-is-too-precise": "金额过于精确,所能发送的最小单位是1 Wei (1x10^-18 ETH)", "version": "版本", diff --git a/ubuntu-server.js b/ubuntu-server.js deleted file mode 100755 index ddc03391b4..0000000000 --- a/ubuntu-server.js +++ /dev/null @@ -1,143 +0,0 @@ -#!/usr/bin/env node - -/** - * Copyright (C) 2016, Canonical Ltd. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - */ - - console.debug = console.log; - - -var net = require('net'); -var repl = require('repl'); -var vm = require('vm'); -var util = require('util'); -var Buffer = require('buffer').Buffer; - -var DEBUG = 1; - -function rnUbuntuServer(readable, writable) { - console.reportErrorsAsExceptions = false; // XXX: - var sandbox = { console: console, util: util }; - vm.createContext(sandbox); - - var state = 'start'; - var length = 0; - var buffer = new Buffer(0); - - var internalEval = function(code) { - DEBUG > 3 && console.error("-- internalEval: executing script(length=" + code.length + "): " + code.slice(0, 80) + " ... " + code.slice(-80)); - DEBUG > 3 && console.error("-- before sandbox=" + util.inspect(sandbox, { colors: true, depth: null })); - var result = vm.runInContext(code, sandbox); - DEBUG > 3 && console.error("-- internalEval: result = " + result); - DEBUG > 3 && console.error("-- after sandbox=" + util.inspect(sandbox, { colors: true, depth: null })); - return result; - }; - - var sendResponse = function(result) { - function sendResponsePacket(response) { - const sizeBuf = new Buffer(4); - const dataBuf = new Buffer(response); - sizeBuf.writeUInt32LE(dataBuf.length, 0); - writable.write(sizeBuf); - writable.write(dataBuf); - } - - var stringifiedResult = JSON.stringify(result); - DEBUG > 3 && console.error("-- sending result=" + stringifiedResult); - if (stringifiedResult === undefined) { - sendResponsePacket('undefined'); - return; - } - sendResponsePacket(stringifiedResult); - } - - readable.on('error', function (exc) { - console.warn("ignoring exception: " + exc); - }); - - readable.on('data', function(chunk) { - DEBUG > 2 && console.error("-- Data received from RN Client: state = " + state) - DEBUG > 2 && console.error("-- chunk length: " + chunk.length) - DEBUG > 2 && console.error("-- buffer length(original): " + buffer.length) - - if (chunk == null || state === 'eof') - return; - - buffer = Buffer.concat([buffer, chunk]); - DEBUG > 2 && console.error("-- buffer length(concat): " + buffer.length) - - while(true) { - if (state === 'start') { - if (buffer.length < 4) - return; - length = buffer.readUInt32LE(0); - DEBUG > 2 && console.error("-- New Packet: length=" + length); - - if (buffer.length >= length + 4) { - var result = internalEval(buffer.toString('utf8', 4, length + 4)); - var tmpBuffer = new Buffer(buffer.length - 4 - length); - buffer.copy(tmpBuffer, 0, length + 4, buffer.length); - buffer = tmpBuffer; - sendResponse(result); - } else { - state = 'script'; - } - } - - if (state === 'script') { - DEBUG > 2 && console.error("-- Packet length: " + length); - if (buffer.length >= length + 4) { - var result = internalEval(buffer.toString('utf8', 4, length + 4)); - var tmpBuffer = new Buffer(buffer.length - 4 - length); - buffer.copy(tmpBuffer, 0, length + 4, buffer.length); - buffer = tmpBuffer; - state = 'start'; - sendResponse(result); - } else { - return; - } - } - } - }); - - readable.on('end', function() { - state = 'eof'; - DEBUG && console.error("-- Session ended"); - }); -} - -var closeDangerousConnection = function(sock) { - var remoteAddress = sock.remoteAddress; - if(remoteAddress.indexOf("127.0.0.1") == -1) { - console.log("WARN: connection not from localhost, will be closed: ", remoteAddress); - sock.destroy(); - return true; - } else { - console.log("Connection from: ", remoteAddress); - return false; - } -} - -if (process.argv.indexOf('--pipe') != -1) { - console.log = console.error - rnUbuntuServer(process.stdin, process.stdout); -} else { - var port = process.env['REACT_SERVER_PORT'] || 5000; - process.argv.forEach((val, index) => { - if (val == '--port') { - port = process.argv[++index]; - } - }); - - var server = net.createServer((sock) => { - DEBUG && console.error("-- Connection from RN client"); - if(!closeDangerousConnection(sock)) - rnUbuntuServer(sock, sock); - }).listen(port, function() { console.error("-- Server starting") }); -} diff --git a/mobile/js_files/yarn.lock b/yarn.lock similarity index 99% rename from mobile/js_files/yarn.lock rename to yarn.lock index 8ea3b9e49f..a5e0e71eec 100644 --- a/mobile/js_files/yarn.lock +++ b/yarn.lock @@ -6547,10 +6547,6 @@ react-native-navigation-bar-color@^2.0.1: resolved "https://registry.yarnpkg.com/react-native-navigation-bar-color/-/react-native-navigation-bar-color-2.0.1.tgz#ee2be25cc37105f7da355717b0a9a32c9c059ae6" integrity sha512-1kE/oxWt+HYjRxdZdvke9tJ365xaee5n3+euOQA1En8zQuSbOxiE4SYEGM7TeaWnmLJ0l37mRnPHaB2H4mGh0A== -"react-native-navigation-twopane@git+https://github.com/status-im/react-native-navigation-twopane.git#v0.0.2-status": - version "0.0.2" - resolved "git+https://github.com/status-im/react-native-navigation-twopane.git#04ed5fddfb46a6a3ee30776987acb4d3b11c27d4" - react-native-reanimated@^1.7.0: version "1.8.0" resolved "https://registry.yarnpkg.com/react-native-reanimated/-/react-native-reanimated-1.8.0.tgz#0b5719b20c1fed9aaf8afd9a12e21c9bd46ee428"