From d5ef218584b52a151ae6f608b5e8d4574d26ec02 Mon Sep 17 00:00:00 2001 From: yenda Date: Sat, 7 Sep 2019 14:57:22 +0200 Subject: [PATCH] use shadow-cljs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Jakub SokoĊ‚owski Signed-off-by: yenda --- .clj-kondo/config.edn | 7 +- .gitignore | 8 +- Makefile | 62 +- android/app/build.gradle | 6 +- .../im/status/ethereum/MainApplication.java | 2 +- build.clj | 264 -- ci/Jenkinsfile.android | 16 +- ci/Jenkinsfile.ios | 8 +- ci/Jenkinsfile.linux | 7 +- ci/Jenkinsfile.macos | 7 +- ci/Jenkinsfile.windows | 7 +- clj-rn.conf.edn | 121 - .../src/status_im/react_native/resources.cljs | 52 - deps.edn | 33 - env/dev/env/android/main.cljs | 31 - env/dev/env/desktop/main.cljs | 26 - env/dev/env/ios/main.cljs | 31 - env/dev/env/utils.cljs | 21 - env/dev/figwheel.clj | 31 - env/dev/figwheel_api.clj | 36 - env/dev/run.clj | 5 - env/prod/env/android/main.cljs | 11 - env/prod/env/desktop/main.cljs | 4 - env/prod/env/ios/main.cljs | 9 - externs.js | 627 --- figwheel-bridge.js | 266 -- findSymlinkedModules.js.patch | 110 - indentation.edn | 1 + index.js | 1 + ios/Podfile.lock | 48 +- ios/StatusIm.xcodeproj/project.pbxproj | 2 +- mobile/js_files/metro.config.js | 2 +- mobile/js_files/package.json | 11 +- mobile/js_files/yarn.lock | 4029 ++++++++++++----- mobile_files/package.json.orig | 66 + nix/DETAILS.md | 1 + nix/deps/clojure/deps.list | 98 + nix/deps/clojure/deps.nix | 1481 ++++++ nix/deps/clojure/generate.sh | 98 + nix/lein/lein-project-deps-maven-inputs.txt | 165 - nix/lein/lein-project-deps.nix | 2322 ---------- nix/mobile/android/default.nix | 4 +- nix/mobile/android/jsbundle/default.nix | 69 +- .../android/targets/release-android.nix | 4 +- nix/shells.nix | 16 +- nix/tools/lein/fetch-maven-deps.sh | 32 - nix/tools/lein/generate-nix.sh | 31 - nix/tools/maven/maven-inputs2nix.sh | 157 - nix/tools/maven/maven-repo-builder.nix | 45 +- prepare-modules.js | 25 - prod/status_im/i18n_resources.cljs | 62 - project.clj | 183 - .../src/cljsjs/cljsjs/create_react_class.cljs | 1 - react-native/src/cljsjs/cljsjs/react.cljs | 5 - react-native/src/cljsjs/cljsjs/react/dom.cljs | 1 - .../src/cljsjs/cljsjs/react/dom/server.cljs | 1 - .../react_native/js_dependencies.cljs | 41 - .../react_native/js_dependencies.cljs | 51 - scripts/start-react-native.sh | 1 + shadow-cljs.edn | 95 + .../mocks}/js_dependencies.cljs | 96 +- src/quo/animated.cljs | 25 +- src/quo/components/safe_area.cljs | 12 +- src/quo/design_system/colors.cljs | 2 +- src/quo/gesture_handler.cljs | 27 +- src/quo/previews/main.cljs | 11 +- src/quo/react.cljs | 2 +- src/quo/react_native.cljs | 19 +- src/reagent/dom.cljs | 11 + src/status_im/android/core.cljs | 58 +- src/status_im/browser/core.cljs | 38 +- src/status_im/chat/models.cljs | 2 +- src/status_im/chat/models/input.cljs | 11 +- src/status_im/chat/models/loading.cljs | 9 +- .../chat/models/message_content.cljs | 10 +- src/status_im/chat/models/message_list.cljs | 40 +- src/status_im/core.cljs | 68 +- src/status_im/default_fleet.cljs | 5 + src/status_im/desktop/core.cljs | 8 +- src/status_im/desktop/deep_links.cljs | 9 +- src/status_im/ethereum/abi_spec.cljs | 4 +- src/status_im/ethereum/core.cljs | 8 +- src/status_im/ethereum/eip55.cljs | 4 +- src/status_im/ethereum/eip681.cljs | 6 +- src/status_im/ethereum/encode.cljs | 4 +- src/status_im/ethereum/ens.cljs | 4 +- src/status_im/ethereum/macros.clj | 8 +- src/status_im/ethereum/stateofus.cljs | 2 +- src/status_im/ethereum/tokens.cljs | 2 +- src/status_im/events.cljs | 2 +- src/status_im/goog/i18n.cljs | 372 +- src/status_im/goog/i18n_module.cljs | 15 - src/status_im/hardwallet/card.cljs | 7 +- src/status_im/hardwallet/core.cljs | 4 +- src/status_im/hardwallet/fx.cljs | 14 +- src/status_im/hardwallet/onboarding.cljs | 2 +- src/status_im/hardwallet/real_keycard.cljs | 41 +- src/status_im/hardwallet/sign.cljs | 2 +- .../hardwallet/simulated_keycard.cljs | 26 +- src/status_im/i18n.cljs | 28 +- {dev => src}/status_im/i18n_resources.cljs | 8 +- src/status_im/init/core.cljs | 14 - src/status_im/ios/core.cljs | 54 +- src/status_im/ios/platform.cljs | 4 +- src/status_im/js_dependencies.cljs | 9 - src/status_im/log_level/core.cljs | 1 - src/status_im/modules.clj | 56 - .../multiaccounts/biometric/core.cljs | 8 +- src/status_im/multiaccounts/db.cljs | 1 - src/status_im/native_module/core.cljs | 156 +- src/status_im/network/module.cljs | 20 - src/status_im/network/net_info.cljs | 8 +- src/status_im/node/core.cljs | 7 +- src/status_im/privacy_policy/core.cljs | 2 +- src/status_im/react_native/resources.cljs | 52 + src/status_im/signals/core.cljs | 4 +- src/status_im/signing/gas.cljs | 14 +- src/status_im/subs.cljs | 28 +- src/status_im/transport/message/core.cljs | 12 +- src/status_im/transport/utils.cljs | 3 +- src/status_im/tribute_to_talk/db.cljs | 8 +- src/status_im/ui/components/action_sheet.cljs | 4 +- src/status_im/ui/components/animation.cljs | 61 +- .../ui/components/bottom_panel/views.cljs | 6 +- .../ui/components/bottom_sheet/view.cljs | 16 +- .../ui/components/button/haptic.cljs | 8 +- src/status_im/ui/components/camera.cljs | 27 +- .../ui/components/common/common.cljs | 2 +- .../ui/components/connectivity/view.cljs | 18 +- .../ui/components/copyable_text.cljs | 12 +- src/status_im/ui/components/dialog.cljs | 4 +- .../ui/components/large_toolbar/styles.cljs | 4 +- .../ui/components/large_toolbar/view.cljs | 8 +- src/status_im/ui/components/list/views.cljs | 13 +- .../ui/components/list_item/views.cljs | 4 +- .../ui/components/list_selection.cljs | 12 +- src/status_im/ui/components/permissions.cljs | 6 +- .../ui/components/popup_menu/views.cljs | 7 - .../ui/components/qr_code_viewer/views.cljs | 6 +- .../status_im/ui/components/react.cljs | 163 +- .../ui/components/search_input/view.cljs | 6 +- .../ui/components/status_bar/view.cljs | 10 +- src/status_im/ui/components/svg.cljs | 17 +- src/status_im/ui/components/svgimage.cljs | 2 +- src/status_im/ui/components/tabbar/core.cljs | 6 +- .../ui/components/tooltip/animations.cljs | 2 +- src/status_im/ui/components/topbar.cljs | 2 +- src/status_im/ui/components/webview.cljs | 15 +- .../screens/browser/site_blocked/views.cljs | 2 +- src/status_im/ui/screens/browser/views.cljs | 11 +- .../ui/screens/chat/input/input.cljs | 2 +- .../ui/screens/chat/message/gap.cljs | 2 +- .../ui/screens/chat/message/message.cljs | 22 +- .../ui/screens/chat/stickers/views.cljs | 6 +- src/status_im/ui/screens/chat/views.cljs | 8 +- src/status_im/ui/screens/db.cljs | 1 - src/status_im/ui/screens/desktop/views.cljs | 3 +- src/status_im/ui/screens/ens/views.cljs | 8 +- .../ui/screens/hardwallet/settings/views.cljs | 4 +- .../ui/screens/help_center/views.cljs | 2 +- src/status_im/ui/screens/home/views.cljs | 2 +- .../ui/screens/home/views/inner_item.cljs | 2 +- src/status_im/ui/screens/intro/views.cljs | 8 +- .../ui/screens/keycard/onboarding/views.cljs | 2 +- .../ui/screens/keycard/recovery/views.cljs | 2 +- src/status_im/ui/screens/keycard/views.cljs | 2 +- .../ui/screens/multiaccounts/login/views.cljs | 2 +- src/status_im/ui/screens/navigation.cljs | 6 - src/status_im/ui/screens/pairing/views.cljs | 2 +- src/status_im/ui/screens/popover/views.cljs | 14 +- .../privacy_and_security_settings/views.cljs | 7 +- .../ui/screens/profile/components/sheets.cljs | 3 +- .../ui/screens/profile/components/styles.cljs | 15 +- .../ui/screens/profile/components/views.cljs | 20 +- src/status_im/ui/screens/profile/events.cljs | 1 - .../ui/screens/profile/group_chat/views.cljs | 1 - src/status_im/ui/screens/profile/models.cljs | 5 +- .../screens/profile/photo_capture/views.cljs | 18 +- .../ui/screens/profile/seed/styles.cljs | 3 +- .../ui/screens/profile/seed/views.cljs | 5 - .../profile/tribute_to_talk/views.cljs | 3 +- .../ui/screens/profile/user/views.cljs | 4 +- src/status_im/ui/screens/progress/views.cljs | 7 +- .../ui/screens/qr_scanner/views.cljs | 2 +- .../ui/screens/routing/chat_stack.cljs | 2 - src/status_im/ui/screens/routing/core.cljs | 61 +- .../ui/screens/routing/intro_login_stack.cljs | 3 +- src/status_im/ui/screens/routing/main.cljs | 4 +- .../ui/screens/routing/profile_stack.cljs | 13 +- .../ui/screens/routing/wallet_stack.cljs | 3 +- src/status_im/ui/screens/signing/views.cljs | 11 +- src/status_im/ui/screens/stickers/views.cljs | 2 - .../ui/screens/sync_settings/views.cljs | 2 - src/status_im/ui/screens/views.cljs | 3 +- .../ui/screens/wallet/accounts/views.cljs | 5 +- .../collectibles/cryptokitties/views.cljs | 1 - .../ui/screens/wallet/components/views.cljs | 1 - .../screens/wallet/custom_tokens/views.cljs | 5 +- .../ui/screens/wallet/request/views.cljs | 2 +- .../ui/screens/wallet/send/sheets.cljs | 2 +- .../ui/screens/wallet/send/views.cljs | 2 +- .../ui/screens/wallet/settings/views.cljs | 8 +- .../ui/screens/wallet/transactions/views.cljs | 6 +- src/status_im/utils/build.clj | 3 +- src/status_im/utils/config.cljs | 7 +- src/status_im/utils/core.cljc | 12 +- src/status_im/utils/datetime.cljs | 39 +- src/status_im/utils/dimensions.cljs | 2 +- src/status_im/utils/email.cljs | 4 +- src/status_im/utils/error_handler.cljs | 8 +- src/status_im/utils/fs.cljs | 14 +- src/status_im/utils/fx.cljs | 3 +- src/status_im/utils/gfycat/core.cljs | 3 +- src/status_im/utils/handlers.cljs | 4 +- src/status_im/utils/http.cljs | 26 +- src/status_im/utils/image_processing.cljs | 11 +- src/status_im/utils/js_resources.cljs | 2 +- src/status_im/utils/keychain/core.cljs | 32 +- src/status_im/utils/logging/core.cljs | 8 +- src/status_im/utils/money.cljs | 50 +- src/status_im/utils/platform.cljs | 14 +- src/status_im/utils/priority_map.cljs | 12 +- src/status_im/utils/publisher.cljs | 12 +- src/status_im/utils/random.cljs | 14 +- src/status_im/utils/security.cljs | 2 +- src/status_im/utils/slurp.clj | 30 +- src/status_im/utils/snoopy.cljs | 45 +- src/status_im/utils/theme.cljs | 8 +- src/status_im/utils/types.cljs | 3 +- src/status_im/utils/universal_links/core.cljs | 12 +- src/status_im/utils/utils.cljs | 24 +- src/status_im/utils/varint.cljs | 4 +- src/status_im/utils/views.clj | 35 +- src/status_im/wallet/accounts/core.cljs | 4 +- .../wallet/choose_recipient/core.cljs | 6 +- src/status_im/wallet/collectibles/core.cljs | 3 +- src/status_im/wallet/core.cljs | 18 +- src/status_im/wallet/custom_tokens/core.cljs | 19 +- src/status_im/wallet/db.cljs | 6 +- test-resources/override.js | 29 + test/cljs/cljsjs/create_react_class.cljs | 1 - test/cljs/cljsjs/react.cljs | 2 - test/cljs/cljsjs/react/dom.cljs | 1 - test/cljs/cljsjs/react/dom/server.cljs | 1 - test/cljs/status_im/test/browser/core.cljs | 10 +- test/cljs/status_im/test/fleet/core.cljs | 38 +- test/cljs/status_im/test/i18n.cljs | 2 +- .../test/multiaccounts/create/core.cljs | 64 - test/cljs/status_im/test/runner.cljs | 134 - test/cljs/status_im/test/search/core.cljs | 18 +- test/cljs/status_im/test/utils/datetime.cljs | 13 +- test/cljs/status_im/test/utils/varint.cljs | 6 +- 252 files changed, 6310 insertions(+), 7736 deletions(-) delete mode 100644 build.clj delete mode 100644 clj-rn.conf.edn delete mode 100644 components/src/status_im/react_native/resources.cljs delete mode 100644 deps.edn delete mode 100644 env/dev/env/android/main.cljs delete mode 100644 env/dev/env/desktop/main.cljs delete mode 100644 env/dev/env/ios/main.cljs delete mode 100644 env/dev/env/utils.cljs delete mode 100644 env/dev/figwheel.clj delete mode 100644 env/dev/figwheel_api.clj delete mode 100644 env/dev/run.clj delete mode 100644 env/prod/env/android/main.cljs delete mode 100644 env/prod/env/desktop/main.cljs delete mode 100644 env/prod/env/ios/main.cljs delete mode 100644 externs.js delete mode 100644 figwheel-bridge.js delete mode 100644 findSymlinkedModules.js.patch create mode 100644 indentation.edn create mode 100644 index.js create mode 100644 mobile_files/package.json.orig create mode 100644 nix/deps/clojure/deps.list create mode 100644 nix/deps/clojure/deps.nix create mode 100755 nix/deps/clojure/generate.sh delete mode 100644 nix/lein/lein-project-deps-maven-inputs.txt delete mode 100644 nix/lein/lein-project-deps.nix delete mode 100755 nix/tools/lein/fetch-maven-deps.sh delete mode 100755 nix/tools/lein/generate-nix.sh delete mode 100755 nix/tools/maven/maven-inputs2nix.sh delete mode 100644 prepare-modules.js delete mode 100644 prod/status_im/i18n_resources.cljs delete mode 100644 project.clj delete mode 100644 react-native/src/cljsjs/cljsjs/create_react_class.cljs delete mode 100644 react-native/src/cljsjs/cljsjs/react.cljs delete mode 100644 react-native/src/cljsjs/cljsjs/react/dom.cljs delete mode 100644 react-native/src/cljsjs/cljsjs/react/dom/server.cljs delete mode 100644 react-native/src/desktop/status_im/react_native/js_dependencies.cljs delete mode 100644 react-native/src/mobile/status_im/react_native/js_dependencies.cljs create mode 100644 shadow-cljs.edn rename {test/cljs/status_im/react_native => src/mocks}/js_dependencies.cljs (64%) create mode 100644 src/reagent/dom.cljs create mode 100644 src/status_im/default_fleet.cljs delete mode 100644 src/status_im/goog/i18n_module.cljs rename {dev => src}/status_im/i18n_resources.cljs (69%) delete mode 100644 src/status_im/js_dependencies.cljs delete mode 100644 src/status_im/modules.clj delete mode 100644 src/status_im/network/module.cljs create mode 100644 src/status_im/react_native/resources.cljs rename {components/src => src}/status_im/ui/components/react.cljs (54%) create mode 100644 test-resources/override.js delete mode 100644 test/cljs/cljsjs/create_react_class.cljs delete mode 100644 test/cljs/cljsjs/react.cljs delete mode 100644 test/cljs/cljsjs/react/dom.cljs delete mode 100644 test/cljs/cljsjs/react/dom/server.cljs delete mode 100644 test/cljs/status_im/test/multiaccounts/create/core.cljs delete mode 100644 test/cljs/status_im/test/runner.cljs diff --git a/.clj-kondo/config.edn b/.clj-kondo/config.edn index 710f75b97a..a2d82ac584 100644 --- a/.clj-kondo/config.edn +++ b/.clj-kondo/config.edn @@ -1,6 +1,9 @@ {:lint-as {status-im.utils.views/defview clojure.core/defn status-im.utils.views/letsubs clojure.core/let - status-im.utils.fx/defn clojure.core/defn + status-im.utils.fx/defn clj-kondo.lint-as/def-catch-all status-im.utils.styles/def clojure.core/def status-im.utils.styles/defn clojure.core/defn} - :linters {:invalid-arity {:skip-args [status-im.utils.fx/defn]}}} + :linters {:invalid-arity {:skip-args [status-im.utils.fx/defn]} + ;;TODO remove number when this is fixed + ;;https://github.com/borkdude/clj-kondo/issues/867 + :unresolved-symbol {:exclude [PersistentPriorityMap.EMPTY number]}}} diff --git a/.gitignore b/.gitignore index df73eb6a65..76b0b34606 100644 --- a/.gitignore +++ b/.gitignore @@ -86,6 +86,9 @@ figwheel_server.log .lein-failures .lein-repl-history +# Shadow +.shadow-cljs + ## Doo # out @@ -100,6 +103,7 @@ Statusgo.framework #ios /ios/Pods/ /ios/StatusIm.xcworkspace +/ios/react-native-xcode.log .ruby-version status-e2e/ @@ -184,4 +188,6 @@ status-modules/resources /fiddle/target/ /fiddle/resources/public/images/ -trace.edn \ No newline at end of file +trace.edn + +app diff --git a/Makefile b/Makefile index e438f52c9a..7b837f4e69 100644 --- a/Makefile +++ b/Makefile @@ -92,11 +92,11 @@ nix-add-gcroots: ##@nix Add Nix GC roots to avoid status-react expressions being nix-update-gradle: ##@nix Update maven nix expressions based on current gradle setup nix/mobile/android/maven-and-npm-deps/maven/generate-nix.sh -nix-update-lein: export TARGET := lein -nix-update-lein: ##@nix Update maven nix expressions based on current lein setup - nix/tools/lein/generate-nix.sh nix/lein +nix-update-clojure: export TARGET := clojure +nix-update-clojure: ##@nix Update maven nix expressions based on current clojure setup + nix/deps/clojure/generate.sh -nix-update-gems: export TARGET := lein +nix-update-gems: export TARGET := default nix-update-gems: ##@nix Update Ruby gems in fastlane/Gemfile.lock and fastlane/gemset.nix fastlane/update.sh @@ -131,14 +131,6 @@ watchman-clean: export TARGET := watchman watchman-clean: ##@prepare Delete repo directory from watchman watchman watch-del $${STATUS_REACT_HOME} -disable-githooks: SHELL := /bin/sh -disable-githooks: ##@prepare Disables lein githooks - @rm -f ${env.WORKSPACE}/.git/hooks/pre-commit && \ - sed -i'~' -e 's|\[rasom/lein-githooks|;; [rasom/lein-githooks|' \ - -e 's|:githooks|;; :githooks|' \ - -e 's|:pre-commit|;; :pre-commit|' project.clj; \ - rm project.clj~ - pod-install: export TARGET := ios pod-install: ##@prepare Run 'pod install' to install podfiles and update Podfile.lock cd ios && pod install; cd -- @@ -196,11 +188,10 @@ prod-build-android: jsbundle-android ##@legacy temporary legacy alias for jsbund jsbundle-android: SHELL := /bin/sh jsbundle-android: export TARGET ?= android jsbundle-android: export BUILD_ENV ?= prod -jsbundle-android: ##@jsbundle Compile JavaScript and Clojure into index.android.js - # Call nix-build to build the 'targets.mobile.android.jsbundle' attribute and copy the index.android.js file to the project root - @git clean -dxf ./index.$(TARGET).js +jsbundle-android: ##@jsbundle Compile JavaScript and Clojurescript into app directory + # Call nix-build to build the 'targets.mobile.android.jsbundle' attribute and copy the.js files to the project root nix/scripts/build.sh targets.mobile.android.jsbundle && \ - mv result/index.$(TARGET).js ./ + mv result/* ./ prod-build-ios: jsbundle-ios ##@legacy temporary legacy alias for jsbundle-ios @echo "${YELLOW}This a deprecated target name, use jsbundle-ios.$(RESET)" @@ -208,19 +199,7 @@ prod-build-ios: jsbundle-ios ##@legacy temporary legacy alias for jsbundle-ios jsbundle-ios: export TARGET ?= ios jsbundle-ios: export BUILD_ENV ?= prod jsbundle-ios: ##@jsbundle Compile JavaScript and Clojure into index.ios.js - @git clean -dxf -f ./index.$(TARGET).js && \ - lein jsbundle-ios && \ - node prepare-modules.js - -prod-build-desktop: jsbundle-desktop ##@legacy temporary legacy alias for jsbundle-desktop - @echo "${YELLOW}This a deprecated target name, use jsbundle-desktop.$(RESET)" - -jsbundle-desktop: export TARGET ?= $(HOST_OS) -jsbundle-desktop: export BUILD_ENV ?= prod -jsbundle-desktop: ##@jsbundle Compile JavaScript and Clojure into index.desktop.js - git clean -qdxf -f ./index.desktop.js desktop/ && \ - lein jsbundle-desktop && \ - node prepare-modules.js + yarn shadow-cljs release ios #-------------- # Clojure REPL @@ -229,7 +208,7 @@ jsbundle-desktop: ##@jsbundle Compile JavaScript and Clojure into index.desktop. _watch-%: ##@watch Start development for device $(eval SYSTEM := $(word 2, $(subst -, , $@))) $(eval DEVICE := $(word 3, $(subst -, , $@))) - clj -R:dev build.clj watch --platform $(SYSTEM) --$(SYSTEM)-device $(DEVICE) + yarn shadow-cljs watch $(SYSTEM) watch-ios-real: export TARGET := ios watch-ios-real: _watch-ios-real @@ -278,21 +257,24 @@ endif # Tests #-------------- -lint: export TARGET := lein +lint: export TARGET := clojure lint: ##@test Run code style checks - lein cljfmt check + # yarn clj-kondo --confg .clj-kondo/config.edn --lint src + clojure -Sdeps '{:deps {cljfmt {:mvn/version "0.6.7"}}}' \ + -m cljfmt.main check src \ + --indents indentation.edn -lint-fix: export TARGET := lein +lint-fix: export TARGET := clojure lint-fix: ##@test Run code style checks and fix issues - lein cljfmt fix + clojure -Sdeps '{:deps {cljfmt {:mvn/version "0.6.7"}}}' \ + -m cljfmt.main fix src \ + --indents indentation.edn -test: export TARGET := lein +test: export TARGET := clojure test: ##@test Run tests once in NodeJS - lein with-profile test doo node test once - -test-auto: export TARGET := lein -test-auto: ##@test Run tests in interactive (auto) mode in NodeJS - lein with-profile test doo node test + yarn shadow-cljs compile mocks && \ + yarn shadow-cljs compile test && \ + node --require ./test-resources/override.js target/test/test.js coverage: ##@test Run tests once in NodeJS generating coverage @scripts/run-coverage.sh diff --git a/android/app/build.gradle b/android/app/build.gradle index c5c13f9c23..0bdc479c40 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -21,7 +21,7 @@ import com.sun.org.apache.xalan.internal.xsltc.compiler.Copy * bundleAssetName: "index.android.bundle", * * // the entry file for bundle generation - * entryFile: "index.android.js", + * entryFile: "index.js", * * // whether to bundle JS and assets in debug mode * bundleInDebug: false, @@ -70,7 +70,7 @@ import com.sun.org.apache.xalan.internal.xsltc.compiler.Copy * inputExcludes: ["android/**", "ios/**"], * * // override which node gets called and with what additional arguments - * nodeExecutableAndArgs: ["node"], + * nodeExecutableAndArgs: ["node", "--max-old-space-size=8192"], * * // supply additional arguments to the packager * extraPackagerArgs: [] @@ -78,7 +78,7 @@ import com.sun.org.apache.xalan.internal.xsltc.compiler.Copy */ project.ext.react = [ nodeExecutableAndArgs: ["node", "--max-old-space-size=16384"], - entryFile: "index.android.js", + entryFile: "index.js", enableHermes: true, // clean and rebuild if changing. NOTE: Hermes engine is required for Android 64-bit builds running on 64 devices, to guard against a hang in the UI thread after invoking status-go bundleInPr: true, inputExcludes: ["android/**", "ios/**", "react-native/**", "src/**", "test/**"] diff --git a/android/app/src/main/java/im/status/ethereum/MainApplication.java b/android/app/src/main/java/im/status/ethereum/MainApplication.java index 60b530329e..2b975985b3 100644 --- a/android/app/src/main/java/im/status/ethereum/MainApplication.java +++ b/android/app/src/main/java/im/status/ethereum/MainApplication.java @@ -37,7 +37,7 @@ public class MainApplication extends MultiDexApplication implements ReactApplica @Override protected String getJSMainModuleName() { - return "index.android"; + return "index"; } }; diff --git a/build.clj b/build.clj deleted file mode 100644 index 588251b92d..0000000000 --- a/build.clj +++ /dev/null @@ -1,264 +0,0 @@ -(require '[cljs.build.api :as api] - '[clojure.string :as str]) - -;; clj build.clj help # Prints details about tasks - -;;; Configuration. - -(def cljsbuild-config - {:dev - {:ios - {:source-paths ["components/src" "react-native/src/cljsjs" "react-native/src/mobile" "src"] - :compiler {:output-to "target/ios/app.js" - :main "env.ios.main" - :output-dir "target/ios" - :npm-deps false - :optimizations :none} - :warning-handlers '[status-im.utils.build/warning-handler]} - :android - {:source-paths ["components/src" "react-native/src/cljsjs" "react-native/src/mobile" "src"] - :compiler {:output-to "target/android/app.js" - :main "env.android.main" - :output-dir "target/android" - :npm-deps false - :optimizations :none} - :warning-handlers '[status-im.utils.build/warning-handler]} - :desktop - {:source-paths ["components/src" "react-native/src/cljsjs" "react-native/src/desktop" "src"] - :compiler {:output-to "target/desktop/app.js" - :main "env.desktop.main" - :output-dir "target/desktop" - :npm-deps false - :optimizations :none} - :warning-handlers '[status-im.utils.build/warning-handler]}} - - :prod - {:ios - {:source-paths ["components/src" "react-native/src/cljsjs" "react-native/src/mobile" "src" "env/prod"] - :compiler {:output-to "index.ios.js" - :output-dir "target/ios-prod" - :static-fns true - :optimize-constants true - :optimizations :simple - :closure-defines {"goog.DEBUG" false} - :parallel-build false - :elide-asserts true - :language-in :ecmascript5} - :warning-handlers '[status-im.utils.build/warning-handler]} - :android - {:source-paths ["components/src" "react-native/src/cljsjs" "react-native/src/mobile" "src" "env/prod"] - :compiler {:output-to "index.android.js" - :output-dir "target/android-prod" - :static-fns true - :optimize-constants true - :optimizations :simple - :closure-defines {"goog.DEBUG" false} - :parallel-build false - :elide-asserts true - :language-in :ecmascript5} - :warning-handlers '[status-im.utils.build/warning-handler]} - :desktop - {:source-paths ["components/src" "react-native/src/cljsjs" "react-native/src/desktop" "src" "env/prod"] - :compiler {:output-to "index.desktop.js" - :output-dir "target/desktop-prod" - :static-fns true - :optimize-constants true - :optimizations :simple - :closure-defines {"goog.DEBUG" false} - :parallel-build false - :elide-asserts true - :language-in :ecmascript5} - :warning-handlers '[status-im.utils.build/warning-handler]}} - - :test - {:test - {:source-paths ["src" "test/cljs"] - :compiler {:main "status-im.test.runner" - :output-to "target/test/test.js" - :output-dir "target/test" - :optimizations :none - :preamble ["js/hook-require.js"] - :target :nodejs}} - :protocol - {:source-paths ["src" "test/cljs"] - :compiler {:main "status-im.test.protocol.runner" - :output-to "target/test/test.js" - :output-dir "target/test" - :optimizations :none - :target :nodejs}} - :env-dev-utils - {:source-paths ["env/dev/env/utils.cljs" "test/env/dev"] - :compiler {:main "env.test.runner" - :output-to "target/test/test.js" - :output-dir "target/test" - :optimizations :none - :target :nodejs}}}}) - -(def cli-tasks-info - {:compile {:desc "Compile ClojureScript" - :usage ["Usage: clj build.clj compile [env] [build-id] [type]" - "" - "[env] (required): Pre-defined build environment. Allowed values: \"dev\", \"prod\", \"test\"" - "[build-id] (optional): Build ID. When omitted, this task will compile all builds from the specified [env]." - "[type] (optional): Build type - value could be \"once\" or \"watch\". Default: \"once\"."]} - :watch {:desc "Start development" - :usage ["Usage: clj -R:dev build.clj watch [options]" - "" - "[-h|--help] to see all available options"]} - :test {:desc "Run tests" - :usage ["Usage: clj -R:test build.clj test [build-id]" - "" - "[build-id] (required): Value could be \"test\", \"protocol\" or \"env-dev-utils\". It will compile then run the tests once."]} - :help {:desc "Show this help"}}) - -;;; Helper functions. - -(def reset-color "\u001b[0m") -(def red-color "\u001b[31m") -(def green-color "\u001b[32m") -(def yellow-color "\u001b[33m") - -(defn- colorizer [c] - (fn [& args] - (str c (apply str args) reset-color))) - -(defn- println-colorized [message color] - (println ((colorizer color) message))) - -(defn- elapsed [started-at] - (let [elapsed-us (- (System/currentTimeMillis) started-at)] - (with-precision 2 - (str (/ (double elapsed-us) 1000) " seconds")))) - -(defn- try-require [ns-sym] - (try - (require ns-sym) - true - (catch Exception e - false))) - -(defmacro with-namespaces [namespaces & body] - (if (every? try-require namespaces) - `(do ~@body) - `(do (println-colorized "task not available - required dependencies not found" red-color) - (System/exit 1)))) - -(defn- get-cljsbuild-config [name-env & [name-build-id]] - (try - (let [env (keyword name-env)] - (when-not (contains? cljsbuild-config env) - (throw (Exception. (str "ENV " (pr-str name-env) " does not exist")))) - (let [env-config (get cljsbuild-config env)] - (if name-build-id - (let [build-id (keyword name-build-id)] - (when-not (contains? env-config build-id) - (throw (Exception. (str "Build ID " (pr-str name-build-id) " does not exist")))) - (get env-config build-id)) - env-config))) - (catch Exception e - (println-colorized (.getMessage e) red-color) - (System/exit 1)))) - -(defn- get-output-files [compiler-options] - (if-let [output-file (:output-to compiler-options)] - [output-file] - (into [] (map :output-to (->> compiler-options :modules vals))))) - -(defn- compile-cljs-with-build-config [build-config build-fn env build-id] - (let [{:keys [source-paths compiler]} build-config - output-files (get-output-files compiler) - started-at (System/currentTimeMillis)] - (println (str "Compiling " (pr-str build-id) " for " (pr-str env) "...")) - (flush) - (build-fn (apply api/inputs source-paths) compiler) - (println-colorized (str "Successfully compiled " (pr-str output-files) " in " (elapsed started-at) ".") green-color))) - -(defn- compile-cljs [env & [build-id watch?]] - (let [build-fn (if watch? api/watch api/build)] - (if build-id - (compile-cljs-with-build-config (get-cljsbuild-config env build-id) build-fn env build-id) - (doseq [[build-id build-config] (get-cljsbuild-config env)] - (compile-cljs-with-build-config (get-cljsbuild-config env build-id) build-fn env build-id))))) - -(defn- show-help [] - (doseq [[task {:keys [desc usage]}] cli-tasks-info] - (println (format (str yellow-color "%-12s" reset-color green-color "%s" reset-color) - (name task) desc)) - (when usage - (println) - (->> usage - (map #(str " " %)) - (str/join "\n") - println) - (println)))) - -;;; Task dispatching - -(defmulti task first) - -(defmethod task :default [args] - (println (format "Unknown or missing task. Choose one of: %s\n" - (->> cli-tasks-info - keys - (map name) - (interpose ", ") - (apply str)))) - (show-help) - (System/exit 1)) - -;;; Compiling task - -(defmethod task "compile" [[_ env build-id type]] - (case type - (nil "once") (compile-cljs env build-id) - "watch" (compile-cljs env build-id true) - (do (println "Unknown argument to compile task:" type) - (System/exit 1)))) - -;;; Testing task - -(defmethod task "test" [[_ build-id]] - (with-namespaces [[doo.core :as doo]] - (compile-cljs :test build-id) - (doo/run-script :node (->> build-id (get-cljsbuild-config :test) :compiler)))) - -;;; :watch task - -(defn hawk-handler-resources - [ctx e] - (let [path "src/status_im/utils/js_resources.cljs" - js-resourced (slurp path)] - (spit path (str js-resourced " ;;")) - (spit path js-resourced)) - ctx) - -(defn hawk-handler-translations - [ctx e] - (let [path "dev/status_im/i18n_resources.cljs" - i18n (slurp path)] - (spit path (str i18n " ;;")) - (spit path i18n)) - ctx) - -(defmethod task "watch" [[_ & args]] - (with-namespaces [[hawk.core :as hawk] - [re-frisk-remote.core :as re-frisk] - [figwheel-sidecar.repl-api :as ra] - [clj-rn.core :as clj-rn] - [clj-rn.main :as main]] - (let [options (main/parse-cli-options args main/watch-task-options)] - (clj-rn/watch (assoc options :start-cljs-repl false)) - (re-frisk/start) - (hawk/watch! [{:paths ["resources"] :handler hawk-handler-resources} - {:paths ["translations"] :handler hawk-handler-translations}]) - (when (:start-cljs-repl options) (ra/cljs-repl))))) - -;;; Help - -(defmethod task "help" [_] - (show-help) - (System/exit 1)) - -;;; Build script entrypoint. - -(task *command-line-args*) diff --git a/ci/Jenkinsfile.android b/ci/Jenkinsfile.android index 74e1293b5d..c8b494c8c4 100644 --- a/ci/Jenkinsfile.android +++ b/ci/Jenkinsfile.android @@ -31,8 +31,6 @@ pipeline { BUILD_ENV = 'prod' NIX_CONF_DIR = "${env.WORKSPACE}/nix" FASTLANE_DISABLE_COLORS = 1 - /* We use EXECUTOR_NUMBER to avoid multiple instances clashing */ - LEIN_HOME = "/var/tmp/lein-${EXECUTOR_NUMBER}" /* coverage report identification */ COVERALLS_SERVICE_NAME = "jenkins" COVERALLS_SERVICE_JOB_ID = "${JOB_NAME}#${BUILD_NUMBER}" @@ -50,14 +48,6 @@ pipeline { } } } - stage('Implicit dependencies') { - steps { - /* Build implicit dependencies if needed (we run `lein deps :tree` but it's not really required, for this purpose) - Implicit dependencies include building a patched node_modules, fetching maven dependencies, and anything else required. - We do this before the parallel steps so we have a known starting situation. */ - script { nix.shell('lein deps :tree', attr: 'shells.lein') } - } - } stage('Parallel Assemble') { parallel { stage('Checks') { stages { @@ -70,14 +60,16 @@ pipeline { buildResult: 'FAILURE', stageResult: 'FAILURE' ) { - nix.shell('lein cljfmt check', attr: 'shells.lein') + sh 'make lint' } } } } stage('Tests') { steps { - script { nix.shell('lein test-cljs', attr: 'shells.lein') } + script { + sh 'make test' + } } } } } diff --git a/ci/Jenkinsfile.ios b/ci/Jenkinsfile.ios index b298da1c9a..cbe52ae2a8 100644 --- a/ci/Jenkinsfile.ios +++ b/ci/Jenkinsfile.ios @@ -33,8 +33,6 @@ pipeline { NIX_IGNORE_SYMLINK_STORE = 1 FASTLANE_DISABLE_COLORS = 1 BUNDLE_PATH = "${HOME}/.bundle" - /* We use EXECUTOR_NUMBER to avoid multiple instances clashing */ - LEIN_HOME = "/var/tmp/lein-${EXECUTOR_NUMBER}" } stages { @@ -61,14 +59,16 @@ pipeline { buildResult: 'FAILURE', stageResult: 'FAILURE' ) { - nix.shell('lein cljfmt check', attr: 'shells.lein') + sh 'make lint' } } } } stage('Tests') { steps { - script { nix.shell('lein test-cljs', attr: 'shells.lein') } + script { + sh 'make test' + } } } } } diff --git a/ci/Jenkinsfile.linux b/ci/Jenkinsfile.linux index c4a9a61928..69be573f79 100644 --- a/ci/Jenkinsfile.linux +++ b/ci/Jenkinsfile.linux @@ -35,7 +35,6 @@ pipeline { NIX_CONF_DIR = "${env.WORKSPACE}/nix" VERBOSE_LEVEL = '3' /* We use EXECUTOR_NUMBER to avoid multiple instances clashing */ - LEIN_HOME = "/var/tmp/lein-${EXECUTOR_NUMBER}" YARN_CACHE_FOLDER = "/var/tmp/yarn-${EXECUTOR_NUMBER}" GRADLE_USER_HOME = "/var/tmp/gradle-${EXECUTOR_NUMBER}" } @@ -64,14 +63,16 @@ pipeline { buildResult: 'FAILURE', stageResult: 'FAILURE' ) { - nix.shell('lein cljfmt check', attr: 'shells.lein') + sh 'make lint' } } } } stage('Tests') { steps { - script { nix.shell('lein test-cljs', attr: 'shells.lein') } + script { + sh 'make test' + } } } } } diff --git a/ci/Jenkinsfile.macos b/ci/Jenkinsfile.macos index 7d0306b985..a96f5004aa 100644 --- a/ci/Jenkinsfile.macos +++ b/ci/Jenkinsfile.macos @@ -33,7 +33,6 @@ pipeline { NIX_IGNORE_SYMLINK_STORE = 1 VERBOSE_LEVEL = '3' /* We use EXECUTOR_NUMBER to avoid multiple instances clashing */ - LEIN_HOME = "/var/tmp/lein-${EXECUTOR_NUMBER}" YARN_CACHE_FOLDER = "/var/tmp/yarn-${EXECUTOR_NUMBER}" GRADLE_USER_HOME = "/var/tmp/gradle-${EXECUTOR_NUMBER}" } @@ -62,14 +61,16 @@ pipeline { buildResult: 'FAILURE', stageResult: 'FAILURE' ) { - nix.shell('lein cljfmt check', attr: 'shells.lein') + sh 'make lint' } } } } stage('Tests') { steps { - script { nix.shell('lein test-cljs', attr: 'shells.lein') } + script { + sh 'make test' + } } } } } diff --git a/ci/Jenkinsfile.windows b/ci/Jenkinsfile.windows index 997756278a..0058b32c1e 100644 --- a/ci/Jenkinsfile.windows +++ b/ci/Jenkinsfile.windows @@ -39,7 +39,6 @@ pipeline { CONAN_SYSREQUIRES_MODE = 'disabled' CONAN_SYSREQUIRES_SUDO = '0' /* We use EXECUTOR_NUMBER to avoid multiple instances clashing */ - LEIN_HOME = "/var/tmp/lein-${EXECUTOR_NUMBER}" YARN_CACHE_FOLDER = "/var/tmp/yarn-${EXECUTOR_NUMBER}" } @@ -67,14 +66,16 @@ pipeline { buildResult: 'FAILURE', stageResult: 'FAILURE' ) { - nix.shell('lein cljfmt check', attr: 'shells.lein') + sh 'make lint' } } } } stage('Tests') { steps { - script { nix.shell('lein test-cljs', attr: 'shells.lein') } + script { + sh 'make test' + } } } } } diff --git a/clj-rn.conf.edn b/clj-rn.conf.edn deleted file mode 100644 index a650e62817..0000000000 --- a/clj-rn.conf.edn +++ /dev/null @@ -1,121 +0,0 @@ -{:name "StatusIm" - - :run-options {:android {"appIdSuffix" "debug"}} - - :figwheel-bridge "./figwheel-bridge.js" - ;; JS modules - :js-modules ["buffer" - "bignumber.js" - "react-native-languages" - "i18n-js" - "react-native-splash-screen" - "react-native-status" - "react-native-status-keycard" - "react-native-camera" - "qrcode" - "react-native-fs" - "react-native-dialogs" - "react-native-image-resizer" - "react-native-image-crop-picker" - "react-native-svg" - "react-native-webview" - "react-native-touch-id" - "web3-utils" - "chance" - "emojilib" - "eth-phishing-detect" - "react-native-config" - "react-native-screens" - "react-native-keychain" - "rn-snoopy" - "rn-snoopy/stream/bars" - "rn-snoopy/stream/filter" - "rn-snoopy/stream/buffer" - "react-native/Libraries/vendor/emitter/EventEmitter" - "react-native-background-timer" - "react-native-fetch-polyfill" - "@react-navigation/native" - "@react-navigation/stack" - "@react-navigation/bottom-tabs" - ;; "react-native-navigation-twopane" - "hi-base32" - "functional-red-black-tree" - "react-native-mail" - "react-native-shake" - "@react-native-community/netinfo" - "react-native-gesture-handler" - "react-native-reanimated" - "react-native-redash" - "react-native-haptic-feedback" - "react-native-safe-area-context" - "react-native-dark-mode"] - ;; Desktop modules - :desktop-modules ["buffer" - "bignumber.js" - "react-native-languages" - "i18n-js" - "dismissKeyboard" - "react-native-splash-screen" - "react-native-status" - "qrcode" - "identicon.js" - "react-native-fs" - "react-native-dialogs" - "react-native-image-crop-picker" - "react-native-webview-bridge" - "chance" - "emojilib" - "eth-phishing-detect" - "react-native-config" - "react-native-keychain" - "rn-snoopy" - "rn-snoopy/stream/bars" - "rn-snoopy/stream/filter" - "rn-snoopy/stream/buffer" - "react-native/Libraries/vendor/emitter/EventEmitter" - "react-native-fetch-polyfill" - "react-native-desktop-linking" - "react-native-desktop-menu" - "react-native-desktop-config" - "react-native-desktop-shortcuts" - "react-native-desktop-notification" - "react-native-desktop-gesture-handler" - "web3-utils" - "functional-red-black-tree" - ;; "react-native-navigation-twopane" - "hi-base32"] - - ;; Resoures - :resource-dirs ["resources/images" - "desktop/resources"] - - :figwheel-options {:nrepl-port 7888 - :nrepl-middleware ["cider.nrepl/cider-middleware" - "refactor-nrepl.middleware/wrap-refactor" - "cider.piggieback/wrap-cljs-repl"]} - - :builds [{:id :desktop - :source-paths ["react-native/src/desktop" "src" "env/dev" "components/src" "dev"] - :compiler {:output-to "target/desktop/app.js" - :main "env.desktop.main" - :output-dir "target/desktop" - :npm-deps false - :optimizations :none} - :figwheel true} - {:id :ios - :source-paths ["react-native/src/mobile" "src" "env/dev" "components/src" "dev"] - :compiler {:output-to "target/ios/app.js" - :main "env.ios.main" - :output-dir "target/ios" - :npm-deps false - :optimizations :none} - :figwheel true} - {:id :android - :source-paths ["react-native/src/mobile" "src" "env/dev" "components/src" "dev"] - :compiler {:output-to "target/android/app.js" - :main "env.android.main" - :output-dir "target/android" - :npm-deps false - :optimizations :none} - :warning-handlers [status-im.utils.build/warning-handler] - :figwheel true}]} diff --git a/components/src/status_im/react_native/resources.cljs b/components/src/status_im/react_native/resources.cljs deleted file mode 100644 index 6d61492b71..0000000000 --- a/components/src/status_im/react_native/resources.cljs +++ /dev/null @@ -1,52 +0,0 @@ -(ns status-im.react-native.resources - (:require [status-im.ui.components.colors :as colors])) - -(def ui - {:empty-chats-header (js/require "./resources/images/ui/empty-chats-header.png") - :welcome (js/require "./resources/images/ui/welcome.jpg") - :welcome-dark (js/require "./resources/images/ui/welcome-dark.jpg") - :chat (js/require "./resources/images/ui/chat.jpg") - :wallet (js/require "./resources/images/ui/wallet.jpg") - :browser (js/require "./resources/images/ui/browser.jpg") - :chat-dark (js/require "./resources/images/ui/chat-dark.jpg") - :wallet-dark (js/require "./resources/images/ui/wallet-dark.jpg") - :browser-dark (js/require "./resources/images/ui/browser-dark.jpg") - :keys (js/require "./resources/images/ui/keys.jpg") - :keys-dark (js/require "./resources/images/ui/keys-dark.jpg") - :lock (js/require "./resources/images/ui/lock.png") - :tribute-to-talk (js/require "./resources/images/ui/tribute-to-talk.png") - :hardwallet-card (js/require "./resources/images/ui/hardwallet-card.png") - :keycard-lock (js/require "./resources/images/ui/keycard-lock.png") - :keycard (js/require "./resources/images/ui/keycard.png") - :keycard-logo (js/require "./resources/images/ui/keycard-logo.png") - :keycard-logo-blue (js/require "./resources/images/ui/keycard-logo-blue.png") - :keycard-logo-gray (js/require "./resources/images/ui/keycard-logo-gray.png") - :keycard-key (js/require "./resources/images/ui/keycard-key.png") - :keycard-empty (js/require "./resources/images/ui/keycard-empty.png") - :keycard-phone (js/require "./resources/images/ui/keycard-phone.png") - :keycard-connection (js/require "./resources/images/ui/keycard-connection.png") - :keycard-wrong (js/require "./resources/images/ui/keycard-wrong.png") - :not-keycard (js/require "./resources/images/ui/not-keycard.png") - :status-logo (js/require "./resources/images/ui/status-logo.png") - :warning-sign (js/require "./resources/images/ui/warning-sign.png") - :phone-nfc-on (js/require "./resources/images/ui/phone-nfc-on.png") - :phone-nfc-off (js/require "./resources/images/ui/phone-nfc-off.png") - :dapp-store (js/require "./resources/images/ui/dapp-store.png") - :ens-header (js/require "./resources/images/ui/ens-header.png") - :ens-header-dark (js/require "./resources/images/ui/ens-header-dark.png") - :new-chat-header (js/require "./resources/images/ui/new-chat-header.png") - :onboarding-phone (js/require "./resources/images/ui/onboarding-phone.png") - :theme-dark (js/require "./resources/images/ui/theme-dark.png") - :theme-light (js/require "./resources/images/ui/theme-light.png") - :theme-system (js/require "./resources/images/ui/theme-system.png")}) - -(defn get-theme-image [k] - (get ui (when (colors/dark?) (keyword (str (name k) "-dark"))) (get ui k))) - -(def loaded-images (atom {})) - -(defn get-image [k] - (if (contains? @loaded-images k) - (get @loaded-images k) - (get (swap! loaded-images assoc k - (get ui k)) k))) diff --git a/deps.edn b/deps.edn deleted file mode 100644 index 60ce2f2c48..0000000000 --- a/deps.edn +++ /dev/null @@ -1,33 +0,0 @@ -{:paths ["components/src" "src" "react-native/src/cljsjs" "resources"] - :deps {org.clojure/clojure {:mvn/version "1.10.0"} ;; Keep in sync with version from Nix - org.clojure/clojurescript {:mvn/version "1.10.520"} - org.clojure/core.async {:mvn/version "0.4.474"} - reagent {:mvn/version "0.7.0" - :exclusions [cljsjs/react cljsjs/react-dom cljsjs/react-dom-server cljsjs/create-react-class]} - re-frame {:mvn/version "0.12.0"} - com.andrewmcveigh/cljs-time {:mvn/version "0.5.2"} - binaryage/oops {:mvn/version "0.7.0"} - status-im/timbre {:mvn/version "4.10.0-2-status"} - com.taoensso/encore {:mvn/version "2.94.0"} - hickory {:mvn/version "0.7.1"} - cljs-bean {:mvn/version "1.3.0"} - mvxcvi/alphabase {:mvn/version "1.0.0"}} - - :aliases - {:dev {:extra-deps - {clj-rn {:git/url "https://github.com/status-im/clj-rn" - :sha "144eeecfb389edd9b5d4d94507acf828c5265b97"} - - ;; Figwheel ClojureScript REPL - cider/piggieback {:mvn/version "0.4.0" - :exclusions [com.google.javascript/closure-compiler]} - figwheel-sidecar {:mvn/version "0.5.18"} - re-frisk-remote {:mvn/version "1.2.0"} - hawk {:mvn/version "0.2.11"} - day8.re-frame/tracing {:mvn/version "0.5.0"} - - ;; CIDER compatible nREPL - cider/cider-nrepl {:mvn/version "0.21.1"} - refactor-nrepl {:mvn/version "2.4.0"}}} - :test {:extra-deps {day8.re-frame/test {:mvn/version "0.1.5"} - doo {:mvn/version "0.1.9"}}}}} diff --git a/env/dev/env/android/main.cljs b/env/dev/env/android/main.cljs deleted file mode 100644 index b8d0712229..0000000000 --- a/env/dev/env/android/main.cljs +++ /dev/null @@ -1,31 +0,0 @@ -(ns ^:figwheel-no-load env.android.main - (:require [reagent.core :as r] - [status-im.android.core :as core] - [figwheel.client :as figwheel] - [re-frisk-remote.core :as re-frisk] - [env.config :as conf] - [env.utils] - [re-frame.interop :as interop] - [reagent.impl.batching :as batching])) - -(set! interop/next-tick js/setTimeout) -(set! batching/fake-raf #(js/setTimeout % 0)) - -(enable-console-print!) - -(assert (exists? core/init) "Fatal Error - Your core.cljs file doesn't define an 'init' function!!! - Perhaps there was a compilation failure?") -(assert (exists? core/app-root) "Fatal Error - Your core.cljs file doesn't define an 'app-root' function!!! - Perhaps there was a compilation failure?") - -(def cnt (r/atom 0)) -(defn reloader [props] @cnt [core/app-root props]) - -;; Do not delete, root-el is used by the figwheel-bridge.js -(def root-el (r/reactify-component reloader)) - -(figwheel/start {:websocket-url (:android conf/figwheel-urls) - :heads-up-display false - :jsload-callback #(swap! cnt inc)}) - -(re-frisk/enable {:host (env.utils/re-frisk-url (:android conf/figwheel-urls))}) - -(core/init) diff --git a/env/dev/env/desktop/main.cljs b/env/dev/env/desktop/main.cljs deleted file mode 100644 index 75205a3dbd..0000000000 --- a/env/dev/env/desktop/main.cljs +++ /dev/null @@ -1,26 +0,0 @@ -(ns ^:figwheel-no-load env.desktop.main - (:require [reagent.core :as r] - [re-frisk-remote.core :as re-frisk] - [status-im.desktop.core :as core] - [figwheel.client :as figwheel] - [env.config :as conf] - [env.utils])) - -(enable-console-print!) - -(assert (exists? core/init) "Fatal Error - Your core.cljs file doesn't define an 'init' function!!! - Perhaps there was a compilation failure?") -(assert (exists? core/app-root) "Fatal Error - Your core.cljs file doesn't define an 'app-root' function!!! - Perhaps there was a compilation failure?") - -(def cnt (r/atom 0)) -(defn reloader [props] @cnt [core/app-root props]) - -;; Do not delete, root-el is used by the figwheel-bridge.js -(def root-el (r/reactify-component reloader)) - -(figwheel/start {:websocket-url (:desktop conf/figwheel-urls) - :heads-up-display false - :jsload-callback #(swap! cnt inc)}) - -(re-frisk/enable {:host (env.utils/re-frisk-url (:desktop conf/figwheel-urls))}) - -(core/init) \ No newline at end of file diff --git a/env/dev/env/ios/main.cljs b/env/dev/env/ios/main.cljs deleted file mode 100644 index e321f6dee4..0000000000 --- a/env/dev/env/ios/main.cljs +++ /dev/null @@ -1,31 +0,0 @@ -(ns ^:figwheel-no-load env.ios.main - (:require [reagent.core :as r] - [re-frisk-remote.core :as re-frisk] - [status-im.ios.core :as core] - [figwheel.client :as figwheel] - [env.config :as conf] - [env.utils] - [re-frame.interop :as interop] - [reagent.impl.batching :as batching])) - -(set! interop/next-tick js/setTimeout) -(set! batching/fake-raf #(js/setTimeout % 0)) - -(enable-console-print!) - -(assert (exists? core/init) "Fatal Error - Your core.cljs file doesn't define an 'init' function!!! - Perhaps there was a compilation failure?") -(assert (exists? core/app-root) "Fatal Error - Your core.cljs file doesn't define an 'app-root' function!!! - Perhaps there was a compilation failure?") - -(def cnt (r/atom 0)) -(defn reloader [props] @cnt [core/app-root props]) - -;; Do not delete, root-el is used by the figwheel-bridge.js -(def root-el (r/reactify-component reloader)) - -(figwheel/start {:websocket-url (:ios conf/figwheel-urls) - :heads-up-display false - :jsload-callback #(swap! cnt inc)}) - -(re-frisk/enable {:host (env.utils/re-frisk-url (:ios conf/figwheel-urls))}) - -(core/init) \ No newline at end of file diff --git a/env/dev/env/utils.cljs b/env/dev/env/utils.cljs deleted file mode 100644 index 25253b1a42..0000000000 --- a/env/dev/env/utils.cljs +++ /dev/null @@ -1,21 +0,0 @@ -(ns env.utils - (:require [clojure.string :as string])) - -(defn get-host - "Expects the input url to be in the form protocol://host:port - Returns host or an empty string upon failure" - [url] - (-> - url - (string/split #"/") - (get 2 "") - (string/split #":") - (get 0 ""))) - -(defn re-frisk-url - "Expects the input url to be in the form ws://host:port/figwheel-ws" - [url] - (let [host (get-host url)] - (if (string/blank? host) - (throw (js/Error. "Failed to parse figwheel url. re-frisk url cannot be blank")) - (str host ":" 4567)))) diff --git a/env/dev/figwheel.clj b/env/dev/figwheel.clj deleted file mode 100644 index ec285848d4..0000000000 --- a/env/dev/figwheel.clj +++ /dev/null @@ -1,31 +0,0 @@ -(ns figwheel - (:require [clojure.string :as s])) - -(defn system-options [builds-to-start] - {:nrepl-port 7888 - :builds [{:id :desktop - :source-paths ["react-native/src/cljsjs" "react-native/src/desktop" "src" "env/dev"] - :compiler {:output-to "target/desktop/app.js" - :main "env.desktop.main" - :output-dir "target/desktop" - :npm-deps false - :optimizations :none} - :figwheel true} - {:id :ios - :source-paths ["react-native/src/cljsjs" "react-native/src/mobile" "src" "env/dev"] - :compiler {:output-to "target/ios/app.js" - :main "env.ios.main" - :output-dir "target/ios" - :npm-deps false - :optimizations :none} - :figwheel true} - {:id :android - :source-paths ["react-native/src/cljsjs" "react-native/src/mobile" "src" "env/dev"] - :compiler {:output-to "target/android/app.js" - :main "env.android.main" - :output-dir "target/android" - :npm-deps false - :optimizations :none} - :warning-handlers '[status-im.utils.build/warning-handler] - :figwheel true}] - :builds-to-start builds-to-start}) diff --git a/env/dev/figwheel_api.clj b/env/dev/figwheel_api.clj deleted file mode 100644 index 5045ed7959..0000000000 --- a/env/dev/figwheel_api.clj +++ /dev/null @@ -1,36 +0,0 @@ -(ns figwheel-api - (:use [figwheel-sidecar.repl-api :as ra]) - (:require [hawk.core :as hawk] - [re-frisk-sidecar.core :as rfs] - [status-im.utils.core :as utils] - [figwheel :as config])) - -(defn start-figwheel - "Start figwheel for one or more builds" - [build-ids] - (ra/start-figwheel! (config/system-options build-ids))) - -(defn stop-figwheel - "Stops figwheel" - [] - (ra/stop-figwheel!)) - -(defn start - ([] - (start (if *command-line-args* - (map keyword *command-line-args*) - [:android]))) - ([build-ids] - (hawk/watch! [{:paths ["resources"] - :handler (fn [ctx e] - (let [path "src/status_im/utils/js_resources.cljs" - js-resourced (slurp path)] - (spit path (str js-resourced " ;;")) - (spit path js-resourced)) - ctx)}]) - (start-figwheel build-ids) - (rfs/-main))) - -(def stop ra/stop-figwheel!) - -(def start-cljs-repl ra/cljs-repl) diff --git a/env/dev/run.clj b/env/dev/run.clj deleted file mode 100644 index e1b46f903d..0000000000 --- a/env/dev/run.clj +++ /dev/null @@ -1,5 +0,0 @@ -(ns ^:figwheel-no-load run - (:use [figwheel-api])) - -(start) -(start-cljs-repl) diff --git a/env/prod/env/android/main.cljs b/env/prod/env/android/main.cljs deleted file mode 100644 index ce3cf08157..0000000000 --- a/env/prod/env/android/main.cljs +++ /dev/null @@ -1,11 +0,0 @@ -(ns env.android.main - (:require [status-im.android.core :as core] - [re-frame.interop :as interop] - [reagent.impl.batching :as batching])) - -(set! interop/next-tick js/setTimeout) -(set! batching/fake-raf #(js/setTimeout % 0)) - -(core/init) - - diff --git a/env/prod/env/desktop/main.cljs b/env/prod/env/desktop/main.cljs deleted file mode 100644 index e23508305b..0000000000 --- a/env/prod/env/desktop/main.cljs +++ /dev/null @@ -1,4 +0,0 @@ - (ns env.desktop.main - (:require [status-im.desktop.core :as core])) - - (core/init) \ No newline at end of file diff --git a/env/prod/env/ios/main.cljs b/env/prod/env/ios/main.cljs deleted file mode 100644 index 99bdabd446..0000000000 --- a/env/prod/env/ios/main.cljs +++ /dev/null @@ -1,9 +0,0 @@ -(ns env.ios.main - (:require [status-im.ios.core :as core] - [re-frame.interop :as interop] - [reagent.impl.batching :as batching])) - -(set! interop/next-tick js/setTimeout) -(set! batching/fake-raf #(js/setTimeout % 0)) - -(core/init) \ No newline at end of file diff --git a/externs.js b/externs.js deleted file mode 100644 index 91a0a15358..0000000000 --- a/externs.js +++ /dev/null @@ -1,627 +0,0 @@ -var TopLevel = { - "abs" : function () {}, - "ActionSheetIOS" : function () {}, - "add" : function () {}, - "addEventListener" : function () {}, - "addListener" : function () {}, - "addPeer" : function () {}, - "addSymKey" : function () {}, - "addTier2Support" : function () {}, - "Alert" : function () {}, - "alert" : function () {}, - "all" : function () {}, - "Android" : function () {}, - "android" : function () {}, - "Animated" : function () {}, - "append" : function () {}, - "appStateChange" : function () {}, - "args" : function () {}, - "argv" : function () {}, - "Array" : function () {}, - "array" : function () {}, - "AsyncStorage" : function () {}, - "at" : function () {}, - "back" : function () {}, - "BACK" : function () {}, - "BackHandler" : function () {}, - "balanceOf" : function () {}, - "bezier" : function () {}, - "BigNumber" : function () {}, - "blur" : function () {}, - "button" : function () {}, - "bytesToHex" : function () {}, - "call" : function () {}, - "callPrivateRPC" : function () {}, - "callRPC" : function () {}, - "canImplyAuthentication" : function () {}, - "catch" : function () {}, - "Chance" : function () {}, - "changePin" : function () {}, - "Channel" : function () {}, - "chaosModeUpdate" : function () {}, - "charCodeAt" : function () {}, - "checkAddressChecksum" : function () {}, - "checkVideoAuthorizationStatus" : function () {}, - "author": function() {}, - "encryptionId": function() {}, - "chat": function() {}, - "messageId": function() {}, - "clear" : function () {}, - "clearCookies" : function () {}, - "clearInterval" : function () {}, - "clearStorageAPIs" : function () {}, - "clearTimeout" : function () {}, - "Clipboard" : function () {}, - "close" : function () {}, - "closeApplication" : function () {}, - "code" : function () {}, - "concat" : function () {}, - "confirmMessagesProcessed" : function () {}, - "chats": function() {}, - "rawMessages": function() {}, - "messages": function() {}, - "discovery": function() {}, - "dismiss": function() {}, - "negotiated": function() {}, - "chatId": function() {}, - "confirmMessagesProcessedByID" : function () {}, - "connectionChange" : function () {}, - "console" : function () {}, - "contacts": function () {}, - "ContactRequest" : function () {}, - "ContactRequestConfirmed" : function () {}, - "ContactRequestConfirmedHandler" : function () {}, - "ContactRequestHandler" : function () {}, - "ContactUpdate" : function () {}, - "ContactUpdateHandler" : function () {}, - "contentOffset" : function () {}, - "contentSize" : function () {}, - "contract" : function () {}, - "createAccount" : function () {}, - "createBatch" : function () {}, - "createChannel" : function () {}, - "cubic" : function () {}, - "CURRENCY" : function () {}, - "data" : function () {}, - "Date" : function () {}, - "DateTimeFormat" : function () {}, - "DEBUG" : function () {}, - "decay" : function () {}, - - "dedupId": function() {}, - "DECIMAL_SEP" : function () {}, - "GROUP_SEP" : function () {}, - "PERCENT" : function () {}, - "ZERO_DIGIT" : function () {}, - "PLUS_SIGN" : function () {}, - "MINUS_SIGN" : function () {}, - "EXP_SYMBOL" : function () {}, - "PERMILL" : function () {}, - "INFINITY" : function () {}, - "NAN" : function () {}, - "DECIMAL_PATTERN" : function () {}, - "SCIENTIFIC_PATTERN" : function () {}, - "PERCENT_PATTERN" : function () {}, - "CURRENCY_PATTERN" : function () {}, - "DEF_CURRENCY_CODE" : function () {}, - "decimals" : function () {}, - "decodeURI" : function () {}, - "default" : function () {}, - "defaultAccount" : function () {}, - "defaultSeparator" : function () {}, - "delay" : function () {}, - "DesktopNotification" : function () {}, - "DeviceEventEmitter" : function () {}, - "Dimensions" : function () {}, - "dispatch" : function () {}, - "disableNotifications" : function () {}, - "displayNotification" : function () {}, - "dividedBy" : function () {}, - "DocumentDirectoryPath" : function () {}, - "dx" : function () {}, - "dy" : function () {}, - "ease" : function () {}, - "Easing" : function () {}, - "enableNotifications" : function () {}, - "enableVibration" : function () {}, - "encode" : function () {}, - "encodeURIComponent" : function () {}, - "encryptionKey" : function () {}, - "end" : function () {}, - "endCoordinates" : function () {}, - "entries" : function () {}, - "eq" : function () {}, - "Error" : function () {}, - "error" : function () {}, - "ErrorUtils" : function () {}, - "estimateGas" : function () {}, - "eth" : function () {}, - "event" : function () {}, - "EventEmmiter" : function () {}, - "exec" : function () {}, - "execute" : function () {}, - "exists" : function () {}, - "exportKeyWithPath" : function () {}, - "extPost" : function () {}, - "extractGroupMembershipSignatures" : function () {}, - "identicon": function() {}, - "identiconAsync": function() {}, - "installations": function() {}, - "generateAlias": function() {}, - "generateAliasAsync": function() {}, - "generateAliasAndIdenticonAsync": function() {}, - "fallbacks" : function () {}, - "fetch" : function () {}, - "floor" : function () {}, - "focus" : function () {}, - "format" : function () {}, - "FormData" : function () {}, - "from" : function () {}, - "fromCharCode" : function () {}, - "fromWei" : function () {}, - "generateAndLoadKey" : function () {}, - "generateMnemonic" : function () {}, - "generateSymKeyFromPassword" : function () {}, - "get" : function () {}, - "getApplicationInfo" : function () {}, - "getBalance" : function () {}, - "getBlock" : function () {}, - "getBlockNumber" : function () {}, - "getConnectionInfo" : function () {}, - "getDomain" : function () {}, - "getGasPrice" : function () {}, - "getGenericPassword" : function () {}, - "getGlobalHandler" : function () {}, - "getInitialNotification" : function () {}, - "getInitialURL" : function () {}, - "getInternetCredentials" : function () {}, - "getItem" : function () {}, - "getKeys" : function () {}, - "getLayout" : function () {}, - "getNetwork" : function () {}, - "getNode" : function () {}, - "getNodesFromContract" : function () {}, - "getPublicKey" : function () {}, - "publicKey": function() {}, - "alias": function() {}, - "getSecurityLevel" : function () {}, - "getStateForAction" : function () {}, - "getString" : function () {}, - "getSymKey" : function () {}, - "getSyncing" : function () {}, - "getTimezoneOffset" : function () {}, - "getToken" : function () {}, - "getTransactionReceipt" : function () {}, - "getValue" : function () {}, - "goog" : function () {}, - "greaterThanOrEqualTo" : function () {}, - "GroupMembershipUpdate" : function () {}, - "GroupMembershipUpdateHandler" : function () {}, - "guid" : function () {}, - "hashMessage" : function () {}, - "hashTransaction" : function () {}, - "hashTypedData" : function () {}, - "headers" : function () {}, - "height" : function () {}, - "hexToNumber" : function () {}, - "hexToNumberString" : function () {}, - "hexToUtf8" : function () {}, - "utf8ToHex" : function () {}, - "hide" : function () {}, - "i18n" : function () {}, - "ignoreWarnings" : function () {}, - "in" : function () {}, - "index" : function () {}, - "indexOf" : function () {}, - "init" : function () {}, - "initKeystore" : function () {}, - "injectJavaScript" : function () {}, - "installApplet" : function () {}, - "installAppletAndInitCard" : function () {}, - "installCashApplet" : function () {}, - "Int8Array" : function () {}, - "integer" : function () {}, - "interpolate" : function () {}, - "is24Hour" : function () {}, - "isAddress" : function () {}, - "isConnected" : function () {}, - "isConnectionExpensive" : function () {}, - "isDeviceRooted" : function () {}, - "isFocused" : function () {}, - "isLinux" : function () {}, - "isMacOs" : function () {}, - "isMatches" : function () {}, - "isNaN" : function () {}, - "isUnix" : function () {}, - "isWin" : function () {}, - "isZero" : function () {}, - "Item" : function () {}, - "item" : function () {}, - "JSON" : function () {}, - "jsonEvent" : function () {}, - "keccak512" : function () {}, - "Keyboard" : function () {}, - "language" : function () {}, - "layout" : function () {}, - "layoutMeasurement" : function () {}, - "leftPad" : function () {}, - "length" : function () {}, - "LibraryDirectoryPath" : function () {}, - "Linking" : function () {}, - "locale" : function () {}, - "log" : function () {}, - "login" : function () {}, - "loginWithKeycard" : function () {}, - "logout" : function () {}, - "loop" : function () {}, - "lt" : function () {}, - "mail" : function () {}, - "map" : function () {}, - "map->GroupMembershipUpdate" : function () {}, - "MapEntry" : function () {}, - "markTrustedPeer" : function () {}, - "MaskedData" : function () {}, - "Math" : function () {}, - "Message" : function () {}, - "message" : function () {}, - "MessageHandler" : function () {}, - "MessagesSeen" : function () {}, - "MessagesSeenHandler" : function () {}, - "messaging" : function () {}, - "method" : function () {}, - "metadata": function() {}, - "minus" : function () {}, - "plus" : function () {}, - "mkdir" : function () {}, - "module" : function () {}, - "moveFile" : function () {}, - "Multihash" : function () {}, - "name" : function () {}, - "response-to": function() {}, - "content_type": function() {}, - "message_type": function() {}, - "chat_id": function() {}, - "clock": function() {}, - "nativeEvent" : function () {}, - "NativeEventEmitter" : function () {}, - "NativeModules" : function () {}, - "navigate" : function () {}, - "navigation" : function () {}, - "NavigationActions" : function () {}, - "NavigationEvents" : function () {}, - "newKeyPair" : function () {}, - "newMessageFilter" : function () {}, - "newRawMessageFilter": function() {}, - "newSymKey" : function () {}, - "nfcIsEnabled" : function () {}, - "nfcIsSupported" : function () {}, - "Notification" : function () {}, - "notification" : function () {}, - "notifications" : function () {}, - "now" : function () {}, - "Number" : function () {}, - "NumberFormatSymbols" : function () {}, - "NumberFormatSymbols_af" : function () {}, - "NumberFormatSymbols_am" : function () {}, - "NumberFormatSymbols_ar" : function () {}, - "NumberFormatSymbols_ar_DZ" : function () {}, - "NumberFormatSymbols_az" : function () {}, - "NumberFormatSymbols_be" : function () {}, - "NumberFormatSymbols_bg" : function () {}, - "NumberFormatSymbols_bn" : function () {}, - "NumberFormatSymbols_br" : function () {}, - "NumberFormatSymbols_bs" : function () {}, - "NumberFormatSymbols_cs" : function () {}, - "NumberFormatSymbols_cy" : function () {}, - "NumberFormatSymbols_da" : function () {}, - "NumberFormatSymbols_de_CH" : function () {}, - "NumberFormatSymbols_en" : function () {}, - "NumberFormatSymbols_en_AU" : function () {}, - "NumberFormatSymbols_en_CA" : function () {}, - "NumberFormatSymbols_en_IN" : function () {}, - "NumberFormatSymbols_en_SG" : function () {}, - "NumberFormatSymbols_es_419" : function () {}, - "NumberFormatSymbols_fa" : function () {}, - "NumberFormatSymbols_fil" : function () {}, - "NumberFormatSymbols_he" : function () {}, - "NumberFormatSymbols_hr" : function () {}, - "NumberFormatSymbols_hu" : function () {}, - "NumberFormatSymbols_hy" : function () {}, - "NumberFormatSymbols_id" : function () {}, - "NumberFormatSymbols_is" : function () {}, - "NumberFormatSymbols_ja" : function () {}, - "NumberFormatSymbols_ka" : function () {}, - "NumberFormatSymbols_kk" : function () {}, - "NumberFormatSymbols_km" : function () {}, - "NumberFormatSymbols_ko" : function () {}, - "NumberFormatSymbols_ky" : function () {}, - "NumberFormatSymbols_ln" : function () {}, - "NumberFormatSymbols_lo" : function () {}, - "NumberFormatSymbols_mk" : function () {}, - "NumberFormatSymbols_mn" : function () {}, - "NumberFormatSymbols_mo" : function () {}, - "NumberFormatSymbols_ms" : function () {}, - "NumberFormatSymbols_my" : function () {}, - "NumberFormatSymbols_nb" : function () {}, - "NumberFormatSymbols_ne" : function () {}, - "NumberFormatSymbols_pl" : function () {}, - "NumberFormatSymbols_pt" : function () {}, - "NumberFormatSymbols_ro" : function () {}, - "NumberFormatSymbols_ru" : function () {}, - "NumberFormatSymbols_sh" : function () {}, - "NumberFormatSymbols_si" : function () {}, - "NumberFormatSymbols_sq" : function () {}, - "NumberFormatSymbols_sv" : function () {}, - "NumberFormatSymbols_sw" : function () {}, - "NumberFormatSymbols_th" : function () {}, - "NumberFormatSymbols_tr" : function () {}, - "NumberFormatSymbols_uk" : function () {}, - "NumberFormatSymbols_ur" : function () {}, - "NumberFormatSymbols_uz" : function () {}, - "NumberFormatSymbols_vi" : function () {}, - "NumberFormatSymbols_zh" : function () {}, - "NumberFormatSymbols_zh_HK" : function () {}, - "NumberFormatSymbols_zh_TW" : function () {}, - "numberToHex" : function () {}, - "ok" : function () {}, - "onMessage" : function () {}, - "onNotification" : function () {}, - "onNotificationOpened" : function () {}, - "onTokenRefresh" : function () {}, - "openAccounts" : function () {}, - "openNfcSettings" : function () {}, - "openPicker" : function () {}, - "openURL" : function () {}, - "OS" : function () {}, - "out" : function () {}, - "p" : function () {}, - "pageY" : function () {}, - "pair" : function () {}, - "PairInstallation" : function () {}, - "PairInstallationHandler" : function () {}, - "panHandlers" : function () {}, - "PanResponder" : function () {}, - "parallel" : function () {}, - "parse" : function () {}, - "parseFloat" : function () {}, - "parseInt" : function () {}, - "password" : function () {}, - "path" : function () {}, - "payload" : function () {}, - "PermissionsAndroid" : function () {}, - "PersistentPriorityMap" : function () {}, - "PersonalRequestCommand" : function () {}, - "PersonalSendCommand" : function () {}, - "Platform" : function () {}, - "pow" : function () {}, - "Priority" : function () {}, - "Category" : function () {}, - "High" : function () {}, - "Importance" : function () {}, - "prepareDirAndUpdateConfig" : function () {}, - "Promise" : function () {}, - "props" : function () {}, - "prototype" : function () {}, - "push" : function () {}, - "quad" : function () {}, - "ReactNative" : function () {}, - "readDir" : function () {}, - "readFile" : function () {}, - "recoverAccount" : function () {}, - "reduce" : function () {}, - "register" : function () {}, - "registerComponent" : function () {}, - "registerHeadlessTask" : function () {}, - "reject" : function () {}, - "reload" : function () {}, - "remove" : function () {}, - "removeAllListeners" : function () {}, - "removeEventListener" : function () {}, - "removeKey" : function () {}, - "removeKeyWithUnpair" : function () {}, - "removeListener" : function () {}, - "repeat" : function () {}, - "request" : function () {}, - "requestMessages" : function () {}, - "requestMultiple" : function () {}, - "requestPermission" : function () {}, - "require" : function () {}, - "reset" : function () {}, - "resetGenericPassword" : function () {}, - "resetInternetCredentials" : function () {}, - "resolve" : function () {}, - "respond" : function () {}, - "rightPad" : function () {}, - "round" : function () {}, - "routeName" : function () {}, - "router" : function () {}, - "routes" : function () {}, - "saveAccountAndLogin" : function () {}, - "saveAccountAndLoginWithKeycard" : function () {}, - "schemaVersion" : function () {}, - "scrollTo" : function () {}, - "scrollToEnd" : function () {}, - "scrollToIndex" : function () {}, - "scrollToLocation" : function () {}, - "section" : function () {}, - "selection" : function () {}, - "sendDirectMessage" : function () {}, - "sendLogs" : function () {}, - "sendPairingMessage" : function () {}, - "sendPublicMessage" : function () {}, - "sendToBridge" : function () {}, - "sendTransaction" : function () {}, - "sendTransactionWithSignature" : function () {}, - "separators" : function () {}, - "sequence" : function () {}, - "set" : function () {}, - "setAutoCancel" : function () {}, - "setBackgroundColor" : function () {}, - "setBarStyle" : function () {}, - "setBlankPreviewFlag" : function () {}, - "setCategory" : function () {}, - "setChannelId" : function () {}, - "setCurrentDapp" : function () {}, - "setDockBadgeLabel" : function () {}, - "setGenericPassword" : function () {}, - "setGlobalHandler" : function () {}, - "setGroup" : function () {}, - "setHidden" : function () {}, - "setInternetCredentials" : function () {}, - "setInterval" : function () {}, - "setItem" : function () {}, - "setNativeProps" : function () {}, - "setNetworkActivityIndicatorVisible" : function () {}, - "setPriority" : function () {}, - "setShowBadge" : function () {}, - "setSmallIcon" : function () {}, - "setSoftInputMode" : function () {}, - "setSound" : function () {}, - "setString" : function () {}, - "setTimeout" : function () {}, - "setTranslucent" : function () {}, - "setUsername" : function () {}, - "setValue" : function () {}, - "sha3" : function () {}, - "Share" : function () {}, - "share" : function () {}, - "shh" : function () {}, - "show" : function () {}, - "showActionSheetWithOptions" : function () {}, - "showPicker" : function () {}, - "sign" : function () {}, - "signWithPath" : function () {}, - "signGroupMembership" : function () {}, - "signMessage" : function () {}, - "signPinless" : function () {}, - "signTypedData" : function () {}, - "slice" : function () {}, - "SplashScreen" : function () {}, - "spring" : function () {}, - "stack" : function () {}, - "StackActions" : function () {}, - "start" : function () {}, - "startNode" : function () {}, - "state" : function () {}, - "Status" : function () {}, - "status" : function () {}, - "statusText" : function () {}, - "stop" : function () {}, - "stopAnimation" : function () {}, - "stopNode" : function () {}, - "stopWatching" : function () {}, - "stream" : function () {}, - "String" : function () {}, - "stringify" : function () {}, - "subscribe" : function () {}, - "substr" : function () {}, - "symbol" : function () {}, - "SyncInstallation" : function () {}, - "SyncInstallationHandler" : function () {}, - "t" : function () {}, - "takePictureAsync" : function () {}, - "Text" : function () {}, - "text" : function () {}, - "parsedText": function() {}, - "parsedMessage": function() {}, - "content": function() {}, - "TextEncoder" : function () {}, - "then" : function () {}, - "times" : function () {}, - "timestamp" : function () {}, - "timing" : function () {}, - "title" : function () {}, - "toAscii" : function () {}, - "toChecksumAddress" : function () {}, - "toFixed" : function () {}, - "toHex" : function () {}, - "toLocaleString" : function () {}, - "toNumber" : function () {}, - "torchMode" : function () {}, - "toString" : function () {}, - "totalSupply" : function () {}, - "toTwosComplement" : function () {}, - "toUtf8" : function () {}, - "toWei" : function () {}, - "translations" : function () {}, - "type": function() {}, - "Uint8Array" : function () {}, - "unblockPin" : function () {}, - "unlink" : function () {}, - "unpair" : function () {}, - "unpairAndDelete" : function () {}, - "updateMailservers" : function () {}, - "Uri" : function () {}, - "url" : function () {}, - "Value" : function () {}, - "ValueXY": function() {}, - "value" : function () {}, - "verify" : function () {}, - "verifyPin" : function () {}, - "Version" : function () {}, - "version" : function () {}, - "vibrate" : function () {}, - "View" : function () {}, - "viewableItems": function() {}, - "FlatList" : function () {}, - "warn" : function () {}, - "WebView" : function () {}, - "width" : function () {}, - "window" : function () {}, - "writeCopyTo" : function () {}, - "x" : function () {}, - "y" : function () {}, - "YellowBox" : function () {}, - "UtcDateTime": function () {}, - "fromTimestamp": function () {}, - "ERAS": function () {}, - "ERANAMES": function () {}, - "NARROWMONTHS": function () {}, - "STANDALONENARROWMONTHS": function () {}, - "MONTHS": function () {}, - "STANDALONEMONTHS": function () {}, - "SHORTMONTHS": function () {}, - "STANDALONESHORTMONTHS": function () {}, - "WEEKDAYS": function () {}, - "STANDALONEWEEKDAYS": function () {}, - "SHORTWEEKDAYS": function () {}, - "STANDALONESHORTWEEKDAYS": function () {}, - "NARROWWEEKDAYS": function () {}, - "STANDALONENARROWWEEKDAYS": function () {}, - "SHORTQUARTERS": function () {}, - "QUARTERS": function () {}, - "AMPMS": function () {}, - "DATEFORMATS": function () {}, - "TIMEFORMATS": function () {}, - "DATETIMEFORMATS": function () {}, - "FIRSTDAYOFWEEK": function () {}, - "WEEKENDRANGE": function () {}, - "FIRSTWEEKCUTOFFDAY": function () {}, - "decimalPlaces": function () {}, - "_android": function () {}, - "next": function() {}, - "prev": function() {}, - "hasNext": function() {}, - "hasPrev": function() {}, - "rtl": function() {}, - "lineCount": function() {}, - "key": function() {}, - "keys": function() {}, - "values": function() {}, - "find": function() {}, - "insert": function() {}, - "update": function() {}, - "isSupported" : function () {}, - "authenticate" : function () {}, - "createAppContainer" : function () {}, - "useScreens" : function () {}, - "multiAccountGenerateAndDeriveAddresses" : function () {}, - "multiAccountStoreDerived" : function () {}, - "multiAccountDeriveAddresses" : function () {}, - "multiAccountReset" : function () {}, - "multiAccountLoadAccount" : function () {}, - "multiAccountStoreAccount" : function () {}, - "multiAccountImportMnemonic" : function () {}, - "multiAccountImportPrivateKey" : function () {}, - "validateMnemonic" : function () {} -} diff --git a/figwheel-bridge.js b/figwheel-bridge.js deleted file mode 100644 index 73a8f43aef..0000000000 --- a/figwheel-bridge.js +++ /dev/null @@ -1,266 +0,0 @@ -/* - * Originally taken from https://github.com/decker405/figwheel-react-native - * - * @providesModule figwheel-bridge - */ - -var CLOSURE_UNCOMPILED_DEFINES = null; -var debugEnabled = true; - -var config = { - basePath: "target/", - googBasePath: 'goog/', - serverPort: 8081 -}; - -var React = require('react'); -var createReactClass = require('create-react-class'); -var ReactNative = require('react-native'); -var self; -var evaluate = eval; // This is needed, direct calls to eval does not work (RN packager???) -var externalModules = {}; -var evalListeners = {}; -var asyncImportChain = new Promise(function (succ,fail) {succ(true);}); - -function fireEvalListenters(url) { - Object.values(evalListeners).forEach(function (listener) { - listener(url) - }); -} - -function formatCompileError(msg) { - var errorStr = "Figwheel Compile Exception: " - var data = msg['exception-data']; - if(data['message']) { - errorStr += data['message'] + " "; - } - if(data['file']) { - errorStr += "in file " + data['file'] + " "; - } - if(data['line']) { - errorStr += "at line " + data['line']; - } - if(data['column']) { - errorStr += ", column " + data['column']; - } - return errorStr; -} - -/* This is simply demonstrating that we can receive and react to - * arbitrary messages from Figwheel this will enable creating a nicer - * feedback system in the Figwheel top level React component. - */ -function figwheelMessageHandler(msg) { - if(msg["msg-name"] == "compile-failed") { - console.warn(formatCompileError(msg)); - } -} - -function listenToFigwheelMessages() { - if(figwheel.client.add_json_message_watch) { - figwheel.client.add_json_message_watch("ReactNativeMessageIntercept", - figwheelMessageHandler); - } -} - -var figwheelApp = function (platform, devHost) { - return createReactClass({ - getInitialState: function () { - return {loaded: false} - }, - render: function () { - if (!this.state.loaded) { - var plainStyle = {flex: 1, alignItems: 'center', justifyContent: 'center'}; - return ( - - Waiting for Figwheel to load files. - - ); - } - return React.createElement(this.state.root, this.props); - }, - - componentDidMount: function () { - var app = this; - if (typeof goog === "undefined") { - loadApp(platform, devHost, function (appRoot) { - app.setState({root: appRoot, loaded: true}); - listenToFigwheelMessages(); - }); - } - } - }) -}; - -function logDebug(msg) { - if (debugEnabled) { - console.log(msg); - } -} - -var isChrome = function () { - return typeof importScripts === "function" -}; - -async function getUrlText(url) { - const text = await fetch(url).then(response => { - if(!response.ok) { - throw new Error("Failed to Fetch: " + url + " - Perhaps your project was cleaned and you haven't recompiled?"); - } - return response.text() - }); - return text; -} - -var ATTEMPTS_COUNT = 3; -async function asyncImportScripts(url, success, error) { - - var attempt = 0; - var text = await getUrlText(url); - - while(attempt < ATTEMPTS_COUNT && text.length === 0) - { - text = await getUrlText(url); - ++attempt; - } - - if(!text || 0 === text.length) { - console.log("Can't fetch file: ", url) - return; - } - evaluate(text); - fireEvalListenters(url); - success(); -} - -function syncImportScripts(url, success, error) { - try { - importScripts(url); - logDebug('Evaluated: ' + url); - fireEvalListenters(url); - success(); - } catch (e) { - console.error(e); - error() - } -} - -// Loads js file sync if possible or async. -function importJs(src, success, error) { - var noop = function(){}; - success = (typeof success == 'function') ? success : noop; - error = (typeof error == 'function') ? error : noop; - logDebug('(importJs) Importing: ' + src); - if (isChrome()) { - syncImportScripts(src, success, error); - } else { - asyncImportChain = asyncImportChain.then(function (v) {return asyncImportScripts(src, success, error);}) - } -} - -function interceptRequire() { - var oldRequire = window.require; - console.info("Shimming require"); - window.require = function (id) { - console.info("Requiring: " + id); - if (externalModules[id]) { - return externalModules[id]; - } - return oldRequire(id); - }; -} - -function serverBaseUrl(host) { - return "http://" + host + ":" + config.serverPort -} - -function isUnDefined(x) { - return typeof x == "undefined"; -} - -// unlikely to happen but it happened to me a couple of times so ... -function assertRootElExists(platform) { - var basicMessage = "ClojureScript project didn't compile, or didn't load correctly."; - if(isUnDefined(env)) { - throw new Error("Critical Error: env namespace not defined - " + basicMessage); - } else if(isUnDefined(env[platform])) { - throw new Error("Critical Error: env." + platform + " namespace not defined - " + basicMessage); - } else if(isUnDefined(env[platform].main)) { - throw new Error("Critical Error: env." + platform + ".main namespace not defined - " + basicMessage); - } else if(isUnDefined(env[platform].main.root_el)) { - throw new Error("Critical Error: env." + - platform + ".main namespace doesn't define a root-el which should hold the root react node of your app."); - } - } - -function loadApp(platform, devHost, onLoadCb) { - var fileBasePath = serverBaseUrl((isChrome() ? "localhost" : devHost)) + "/" + config.basePath + platform; - - // callback when app is ready to get the reloadable component - var mainJs = `/env/${platform}/main.js`; - evalListeners.waitForFinalEval = function (url) { - if (url.indexOf(mainJs) > -1) { - assertRootElExists(platform); - onLoadCb(env[platform].main.root_el); - console.info('Done loading Clojure app'); - delete evalListeners.waitForFinalEval; - } - }; - - if (typeof goog === "undefined") { - console.info('Loading Closure base.'); - interceptRequire(); - // need to know base path here - importJs(fileBasePath + '/goog/base.js', function () { - shimBaseGoog(fileBasePath); - importJs(fileBasePath + '/cljs_deps.js'); - importJs(fileBasePath + '/goog/deps.js', function () { - // This is needed because of RN packager - // seriously React packager? why. - var googreq = goog.require; - // NOTE: :closure-defines is not working with RN - goog.global.CLOSURE_UNCOMPILED_DEFINES = { - "re_frame.trace.trace_enabled_QMARK_":true, - "day8.re_frame.tracing.trace_enabled_QMARK_": true - }; - googreq(`env.${platform}.main`); - }); - }); - } -} - -function startApp(appName, platform, devHost) { - ReactNative.AppRegistry.registerComponent( - appName, () => figwheelApp(platform, devHost)); -} - -function withModules(moduleById) { - externalModules = moduleById; - return self; -} - -function figwheelImportScript(uri, callback) { - importJs(uri.toString(), - function () {callback(true);}, - function () {callback(false);}) -} - -// Goog fixes -function shimBaseGoog(basePath) { - console.info('Shimming goog functions.'); - goog.basePath = basePath + '/' + config.googBasePath; - goog.global.FIGWHEEL_WEBSOCKET_CLASS = WebSocket; - goog.global.FIGWHEEL_IMPORT_SCRIPT = figwheelImportScript; - goog.writeScriptSrcNode = importJs; - goog.writeScriptTag_ = function (src, optSourceText) { - importJs(src); - return true; - }; -} - -self = { - withModules: withModules, - start: startApp -}; - -module.exports = self; diff --git a/findSymlinkedModules.js.patch b/findSymlinkedModules.js.patch deleted file mode 100644 index 5bd9e6dfdf..0000000000 --- a/findSymlinkedModules.js.patch +++ /dev/null @@ -1,110 +0,0 @@ -/** - * Copyright (c) 2015-present, Facebook, Inc. - * 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. - * - * @format - * @flow - */ - -const path = require('path'); -const fs = require('fs'); - -/** - * Find symlinked modules inside "node_modules." - * - * Naively, we could just perform a depth-first search of all folders in - * node_modules, recursing when we find a symlink. - * - * We can be smarter than this due to our knowledge of how npm/Yarn lays out - * "node_modules" / how tools that build on top of npm/Yarn (such as Lerna) - * install dependencies. - * - * Starting from a given root node_modules folder, this algorithm will look at - * both the top level descendants of the node_modules folder or second level - * descendants of folders that start with "@" (which indicates a scoped - * package). If any of those folders is a symlink, it will recurse into the - * link, and perform the same search in the linked folder. - * - * The end result should be a list of all resolved module symlinks for a given - * root. - */ -module.exports = function findSymlinkedModules( - projectRoot: string, - ignoredRoots: Array = [], -) { - const timeStart = Date.now(); - const nodeModuleRoot = path.join(projectRoot, 'node_modules'); - const resolvedSymlinks = findModuleSymlinks(nodeModuleRoot, [ - ...ignoredRoots, - projectRoot, - ]); - const timeEnd = Date.now(); - - console.log( - `Scanning folders for symlinks in ${nodeModuleRoot} (${timeEnd - - timeStart}ms)`, - ); - - return resolvedSymlinks; -}; - -function findModuleSymlinks( - modulesPath: string, - ignoredPaths: Array = [], -): Array { - if (!fs.existsSync(modulesPath)) { - return []; - } - - // Find module symlinks - const moduleFolders = fs.readdirSync(modulesPath); - const symlinks = moduleFolders.reduce((links, folderName) => { - const folderPath = path.join(modulesPath, folderName); - const maybeSymlinkPaths = []; - if (folderName.startsWith('@')) { - const scopedModuleFolders = fs.readdirSync(folderPath); - maybeSymlinkPaths.push( - ...scopedModuleFolders.map(name => path.join(folderPath, name)), - ); - } else { - maybeSymlinkPaths.push(folderPath); - } - return links.concat(resolveSymlinkPaths(maybeSymlinkPaths, ignoredPaths)); - }, []); - - // For any symlinks found, look in _that_ modules node_modules directory - // and find any symlinked modules - const nestedSymlinks = symlinks.reduce( - (links, symlinkPath) => - links.concat( - // We ignore any found symlinks or anything from the ignored list, - // to prevent infinite recursion - findModuleSymlinks(path.join(symlinkPath, 'node_modules'), [ - ...ignoredPaths, - ...symlinks, - ]), - ), - [], - ); - - return [...new Set([...symlinks, ...nestedSymlinks])]; -} - -function resolveSymlinkPaths(maybeSymlinkPaths, ignoredPaths) { - return maybeSymlinkPaths.reduce((links, maybeSymlinkPath) => { - if (fs.lstatSync(maybeSymlinkPath).isSymbolicLink()) { - const resolved = path.resolve( - path.dirname(maybeSymlinkPath), - fs.readlinkSync(maybeSymlinkPath), - ); - if (ignoredPaths.indexOf(resolved) === -1 && fs.existsSync(resolved)) { - links.push(resolved); - } - } - return links; - }, []); -} diff --git a/indentation.edn b/indentation.edn new file mode 100644 index 0000000000..051043e373 --- /dev/null +++ b/indentation.edn @@ -0,0 +1 @@ +{letsubs [[:inner 0]]} diff --git a/index.js b/index.js new file mode 100644 index 0000000000..279a714468 --- /dev/null +++ b/index.js @@ -0,0 +1 @@ +import "./app/index.js"; diff --git a/ios/Podfile.lock b/ios/Podfile.lock index 23d7dc8e58..eb840d64a1 100644 --- a/ios/Podfile.lock +++ b/ios/Podfile.lock @@ -183,21 +183,21 @@ PODS: - React-cxxreact (= 0.61.5) - React-jsi (= 0.61.5) - React-jsinspector (0.61.5) - - react-native-background-timer (2.1.1): + - react-native-background-timer (2.2.0): - React - - react-native-camera (3.6.0): + - react-native-camera (3.23.1): - React - - react-native-camera/RCT (= 3.6.0) - - react-native-camera/RN (= 3.6.0) - - react-native-camera/RCT (3.6.0): + - react-native-camera/RCT (= 3.23.1) + - react-native-camera/RN (= 3.23.1) + - react-native-camera/RCT (3.23.1): - React - - react-native-camera/RN (3.6.0): + - react-native-camera/RN (3.23.1): - React - react-native-image-resizer (1.0.0): - React - react-native-mail (4.0.0): - React - - react-native-netinfo (4.4.0): + - react-native-netinfo (4.7.0): - React - react-native-safe-area-context (0.7.3): - React @@ -244,11 +244,11 @@ PODS: - ReactCommon/jscallinvoker (= 0.61.5) - ReactNativeDarkMode (0.2.2): - React - - RNCMaskedView (0.1.6): + - RNCMaskedView (0.1.9): - React - - RNFS (2.14.1): + - RNFS (2.16.6): - React - - RNGestureHandler (1.6.0): + - RNGestureHandler (1.6.1): - React - RNImageCropPicker (0.25.3): - QBImagePickerController @@ -261,11 +261,11 @@ PODS: - React - RNReactNativeHapticFeedback (1.9.0): - React - - RNReanimated (1.7.0): + - RNReanimated (1.8.0): - React - - RNScreens (2.3.0): + - RNScreens (2.5.0): - React - - RNSVG (9.11.1): + - RNSVG (9.13.6): - React - RSKImageCropper (2.2.3) - SQLCipher (3.4.2): @@ -439,7 +439,7 @@ SPEC CHECKSUMS: FBLazyVector: aaeaf388755e4f29cd74acbc9e3b8da6d807c37f FBReactNativeSpec: 118d0d177724c2d67f08a59136eb29ef5943ec75 Folly: 30e7936e1c45c08d884aa59369ed951a8e68cf51 - glog: 353a32027a69db3807b94c7cbc2900fc4370098c + glog: 682164e7ac67e41afd8f7b6a37a96d04caf61cc0 QBImagePickerController: d54cf93db6decf26baf6ed3472f336ef35cae022 RCTRequired: b153add4da6e7dbc44aebf93f3cf4fcae392ddf1 RCTTypeSafety: 9aa1b91d7f9310fc6eadc3cf95126ffe818af320 @@ -450,11 +450,11 @@ SPEC CHECKSUMS: React-jsi: cb2cd74d7ccf4cffb071a46833613edc79cdf8f7 React-jsiexecutor: d5525f9ed5f782fdbacb64b9b01a43a9323d2386 React-jsinspector: fa0ecc501688c3c4c34f28834a76302233e29dc0 - react-native-background-timer: 1b6e6b4e10f1b74c367a1fdc3c72b67c619b222b - react-native-camera: b6a6a61bcdbd619c19df3df581fcb009131938bf + react-native-background-timer: 1f7d560647b40e6a60b01c452ba29c54bf581fc4 + react-native-camera: 1b52abea404d04e040edb3e74b7c5523c01a3089 react-native-image-resizer: 4516052af6ae0248caf4ccf356caecefe60072d7 react-native-mail: 7e37dfbe93ff0d4c7df346b738854dbed533e86f - react-native-netinfo: 6bb847e64f45a2d69c6173741111cfd95c669301 + react-native-netinfo: ddaca8bbb9e6e914b1a23787ccb879bc642931c9 react-native-safe-area-context: e200d4433aba6b7e60b52da5f37af11f7a0b0392 react-native-shake: de052eaa3eadc4a326b8ddd7ac80c06e8d84528c react-native-splash-screen: 200d11d188e2e78cea3ad319964f6142b6384865 @@ -470,16 +470,16 @@ SPEC CHECKSUMS: React-RCTVibration: a49a1f42bf8f5acf1c3e297097517c6b3af377ad ReactCommon: 198c7c8d3591f975e5431bec1b0b3b581aa1c5dd ReactNativeDarkMode: 0178ffca3b10f6a7c9f49d6f9810232b328fa949 - RNCMaskedView: a88953beefbd347a29072d9eba90e42945fe291e - RNFS: a8fbe7060fa49157d819466404794ad9c58e58cf - RNGestureHandler: dde546180bf24af0b5f737c8ad04b6f3fa51609a + RNCMaskedView: 71fc32d971f03b7f03d6ab6b86b730c4ee64f5b6 + RNFS: 2bd9eb49dc82fa9676382f0585b992c424cd59df + RNGestureHandler: 8f09cd560f8d533eb36da5a6c5a843af9f056b38 RNImageCropPicker: bfb3ea9c8622f290532e2fe63f369e0d5a52f597 RNKeychain: 216f37338fcb9e5c3a2530f1e3295f737a690cb1 RNLanguages: 962e562af0d34ab1958d89bcfdb64fafc37c513e RNReactNativeHapticFeedback: 2566b468cc8d0e7bb2f84b23adc0f4614594d071 - RNReanimated: 031fe8d9ea93c2bd689a40f05320ef9d96f74d7f - RNScreens: 03bf608b92ac0acf323f47d8f5b63a8f829340c8 - RNSVG: be27aa7c58819f97399388ae53d7fa0572f32c7f + RNReanimated: 955cf4068714003d2f1a6e2bae3fb1118f359aff + RNScreens: ac02d0e4529f08ced69f5580d416f968a6ec3a1d + RNSVG: 8ba35cbeb385a52fd960fd28db9d7d18b4c2974f RSKImageCropper: a446db0e8444a036b34f3c43db01b2373baa4b2a SQLCipher: f9fcf29b2e59ced7defc2a2bdd0ebe79b40d4990 SSZipArchive: fa16b8cc4cdeceb698e5e5d9f67e9558532fbf23 @@ -488,4 +488,4 @@ SPEC CHECKSUMS: PODFILE CHECKSUM: 37924c57abbfcd77aec07d65c45ecba137cdf289 -COCOAPODS: 1.8.4 +COCOAPODS: 1.9.1 diff --git a/ios/StatusIm.xcodeproj/project.pbxproj b/ios/StatusIm.xcodeproj/project.pbxproj index a2ef327e59..977e101d83 100644 --- a/ios/StatusIm.xcodeproj/project.pbxproj +++ b/ios/StatusIm.xcodeproj/project.pbxproj @@ -453,7 +453,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "set -o errexit\nexport NODE_BINARY=\"node\"\nexport NODE_ARGS=\" --max-old-space-size=16384 \"\n\n../node_modules/react-native/scripts/react-native-xcode.sh\n"; + shellScript = "set -o errexit\nexport NODE_BINARY=\"node\"\nexport NODE_ARGS=\" --max-old-space-size=16384 \"\n\nbash -x ../node_modules/react-native/scripts/react-native-xcode.sh 2>&1 > ./react-native-xcode.log\n"; }; 291E1A8BC076990A77B59232 /* [CP] Copy Pods Resources */ = { isa = PBXShellScriptBuildPhase; diff --git a/mobile/js_files/metro.config.js b/mobile/js_files/metro.config.js index 953d7fa16e..95d743601b 100644 --- a/mobile/js_files/metro.config.js +++ b/mobile/js_files/metro.config.js @@ -9,7 +9,7 @@ module.exports = { getTransformOptions: async () => ({ transform: { experimentalImportSupport: false, - inlineRequires: false, + inlineRequires: true, }, }), }, diff --git a/mobile/js_files/package.json b/mobile/js_files/package.json index 04da208d17..e686fead87 100644 --- a/mobile/js_files/package.json +++ b/mobile/js_files/package.json @@ -3,7 +3,11 @@ "version": "0.0.1", "private": true, "scripts": { - "start": "react-native start" + "start": "react-native start", + "app:compile:android": "shadow-cljs compile android", + "app:watch": "shadow-cljs watch android", + "app:packager": "react-native start --host 0.0.0.0 --port 8081", + "app:android": "react-native run-android" }, "dependencies": { "@react-native-community/masked-view": "^0.1.6", @@ -58,9 +62,12 @@ "@babel/plugin-transform-block-scoping": "7.0.0", "@babel/preset-env": "7.1.0", "@babel/register": "7.0.0", + "clj-kondo": "^2020.1.13", "coveralls": "^3.0.4", + "jest": "^25.1.0", "nyc": "^14.1.1", "process": "0.11.10", - "rn-snoopy": "git+https://github.com/status-im/rn-snoopy.git#v2.0.2-status" + "rn-snoopy": "git+https://github.com/status-im/rn-snoopy.git#v2.0.2-status", + "shadow-cljs": "2.8.99" } } diff --git a/mobile/js_files/yarn.lock b/mobile/js_files/yarn.lock index 9f4e06ddba..0d34e58bac 100644 --- a/mobile/js_files/yarn.lock +++ b/mobile/js_files/yarn.lock @@ -2,28 +2,30 @@ # yarn lockfile v1 -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.5.5", "@babel/code-frame@^7.8.3": +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.8.3.tgz#33e25903d7481181534e12ec0a25f16b6fcf419e" integrity sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g== dependencies: "@babel/highlight" "^7.8.3" -"@babel/core@^7.0.0": - version "7.6.2" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.6.2.tgz#069a776e8d5e9eefff76236bc8845566bd31dd91" - integrity sha512-l8zto/fuoZIbncm+01p8zPSDZu/VuuJhAfA7d/AbzM09WR7iVhavvfNDYCNpo1VvLk6E6xgAoP9P+/EMJHuRkQ== +"@babel/core@^7.0.0", "@babel/core@^7.1.0", "@babel/core@^7.7.5": + version "7.9.0" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.9.0.tgz#ac977b538b77e132ff706f3b8a4dbad09c03c56e" + integrity sha512-kWc7L0fw1xwvI0zi8OKVBuxRVefwGOrKSQMvrQ3dW+bIIavBY3/NpXmpjMy7bQnLgwgzWQZ8TlM57YHpHNHz4w== dependencies: - "@babel/code-frame" "^7.5.5" - "@babel/generator" "^7.6.2" - "@babel/helpers" "^7.6.2" - "@babel/parser" "^7.6.2" - "@babel/template" "^7.6.0" - "@babel/traverse" "^7.6.2" - "@babel/types" "^7.6.0" - convert-source-map "^1.1.0" + "@babel/code-frame" "^7.8.3" + "@babel/generator" "^7.9.0" + "@babel/helper-module-transforms" "^7.9.0" + "@babel/helpers" "^7.9.0" + "@babel/parser" "^7.9.0" + "@babel/template" "^7.8.6" + "@babel/traverse" "^7.9.0" + "@babel/types" "^7.9.0" + convert-source-map "^1.7.0" debug "^4.1.0" - json5 "^2.1.0" + gensync "^1.0.0-beta.1" + json5 "^2.1.2" lodash "^4.17.13" resolve "^1.3.2" semver "^5.4.1" @@ -40,17 +42,7 @@ source-map "^0.5.0" trim-right "^1.0.1" -"@babel/generator@^7.0.0", "@babel/generator@^7.4.0": - version "7.6.2" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.6.2.tgz#dac8a3c2df118334c2a29ff3446da1636a8f8c03" - integrity sha512-j8iHaIW4gGPnViaIHI7e9t/Hl8qLjERI6DcV9kEpAIDJsAOrcnXqRS7t+QbhL76pwbtqP+QCQLL0z1CyVmtjjQ== - dependencies: - "@babel/types" "^7.6.0" - jsesc "^2.5.1" - lodash "^4.17.13" - source-map "^0.5.0" - -"@babel/generator@^7.6.2", "@babel/generator@^7.9.5": +"@babel/generator@^7.0.0", "@babel/generator@^7.4.0", "@babel/generator@^7.9.0", "@babel/generator@^7.9.5": version "7.9.5" resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.9.5.tgz#27f0917741acc41e6eaaced6d68f96c3fa9afaf9" integrity sha512-GbNIxVB3ZJe3tLeDm1HSn2AhuD/mVcyLDpgtLXa5tplmWrJdF/elxB56XNqCuD6szyNkDi6wuoKXln3QeBmCHQ== @@ -60,14 +52,14 @@ lodash "^4.17.13" source-map "^0.5.0" -"@babel/helper-annotate-as-pure@^7.0.0", "@babel/helper-annotate-as-pure@^7.8.3": +"@babel/helper-annotate-as-pure@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.8.3.tgz#60bc0bc657f63a0924ff9a4b4a0b24a13cf4deee" integrity sha512-6o+mJrZBxOoEX77Ezv9zwW7WV8DdluouRKNY/IR5u/YTMuKHgugHOzYWlYvYLpLA9nPsQCAAASpCIbjI9Mv+Uw== dependencies: "@babel/types" "^7.8.3" -"@babel/helper-builder-binary-assignment-operator-visitor@^7.1.0", "@babel/helper-builder-binary-assignment-operator-visitor@^7.8.3": +"@babel/helper-builder-binary-assignment-operator-visitor@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.8.3.tgz#c84097a427a061ac56a1c30ebf54b7b22d241503" integrity sha512-5eFOm2SyFPK4Rh3XMMRDjN7lBH0orh3ss0g3rTYZnBQ+r6YPj7lgDyCvPphynHvUrobJmeMignBr6Acw9mAPlw== @@ -75,6 +67,15 @@ "@babel/helper-explode-assignable-expression" "^7.8.3" "@babel/types" "^7.8.3" +"@babel/helper-builder-react-jsx-experimental@^7.9.0": + version "7.9.5" + resolved "https://registry.yarnpkg.com/@babel/helper-builder-react-jsx-experimental/-/helper-builder-react-jsx-experimental-7.9.5.tgz#0b4b3e04e6123f03b404ca4dfd6528fe6bb92fe3" + integrity sha512-HAagjAC93tk748jcXpZ7oYRZH485RCq/+yEv9SIWezHRPv9moZArTnkUNciUNzvwHUABmiWKlcxJvMcu59UwTg== + dependencies: + "@babel/helper-annotate-as-pure" "^7.8.3" + "@babel/helper-module-imports" "^7.8.3" + "@babel/types" "^7.9.5" + "@babel/helper-builder-react-jsx@7.0.0": version "7.0.0" resolved "https://registry.yarnpkg.com/@babel/helper-builder-react-jsx/-/helper-builder-react-jsx-7.0.0.tgz#fa154cb53eb918cf2a9a7ce928e29eb649c5acdb" @@ -83,34 +84,25 @@ "@babel/types" "^7.0.0" 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== +"@babel/helper-builder-react-jsx@^7.9.0": + version "7.9.0" + resolved "https://registry.yarnpkg.com/@babel/helper-builder-react-jsx/-/helper-builder-react-jsx-7.9.0.tgz#16bf391990b57732700a3278d4d9a81231ea8d32" + integrity sha512-weiIo4gaoGgnhff54GQ3P5wsUQmnSwpkvU0r6ZHq6TzoSzKy4JxHEgnxNytaKbov2a9z/CVNyzliuCOUPEX3Jw== dependencies: - "@babel/types" "^7.3.0" - esutils "^2.0.0" + "@babel/helper-annotate-as-pure" "^7.8.3" + "@babel/types" "^7.9.0" -"@babel/helper-call-delegate@^7.4.4": - version "7.8.7" - resolved "https://registry.yarnpkg.com/@babel/helper-call-delegate/-/helper-call-delegate-7.8.7.tgz#28a279c2e6c622a6233da548127f980751324cab" - integrity sha512-doAA5LAKhsFCR0LAFIf+r2RSMmC+m8f/oQ+URnUET/rWeEzC0yTRmAGyWkD4sSu3xwbS7MYQ2u+xlt1V5R56KQ== +"@babel/helper-create-class-features-plugin@^7.8.3": + version "7.9.5" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.9.5.tgz#79753d44017806b481017f24b02fd4113c7106ea" + integrity sha512-IipaxGaQmW4TfWoXdqjY0TzoXQ1HRS0kPpEgvjosb3u7Uedcq297xFqDQiCcQtRRwzIMif+N1MLVI8C5a4/PAA== dependencies: - "@babel/helper-hoist-variables" "^7.8.3" - "@babel/traverse" "^7.8.3" - "@babel/types" "^7.8.7" - -"@babel/helper-create-class-features-plugin@^7.5.5", "@babel/helper-create-class-features-plugin@^7.6.0": - version "7.6.0" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.6.0.tgz#769711acca889be371e9bc2eb68641d55218021f" - integrity sha512-O1QWBko4fzGju6VoVvrZg0RROCVifcLxiApnGP3OWfWzvxRZFCoBD81K5ur5e3bVY2Vf/5rIJm8cqPKn8HUJng== - 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-function-name" "^7.9.5" + "@babel/helper-member-expression-to-functions" "^7.8.3" + "@babel/helper-optimise-call-expression" "^7.8.3" + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-replace-supers" "^7.8.6" + "@babel/helper-split-export-declaration" "^7.8.3" "@babel/helper-create-regexp-features-plugin@^7.8.3", "@babel/helper-create-regexp-features-plugin@^7.8.8": version "7.8.8" @@ -121,7 +113,7 @@ "@babel/helper-regex" "^7.8.3" regexpu-core "^4.7.0" -"@babel/helper-define-map@^7.5.5", "@babel/helper-define-map@^7.8.3": +"@babel/helper-define-map@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/helper-define-map/-/helper-define-map-7.8.3.tgz#a0655cad5451c3760b726eba875f1cd8faa02c15" integrity sha512-PoeBYtxoZGtct3md6xZOCWPcKuMuk3IHhgxsRRNtnNShebf4C8YonTSblsK4tvDbm+eJAw2HAPOfCr+Q/YRG/g== @@ -138,7 +130,7 @@ "@babel/traverse" "^7.8.3" "@babel/types" "^7.8.3" -"@babel/helper-function-name@^7.1.0", "@babel/helper-function-name@^7.8.3", "@babel/helper-function-name@^7.9.5": +"@babel/helper-function-name@^7.8.3", "@babel/helper-function-name@^7.9.5": version "7.9.5" resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.9.5.tgz#2b53820d35275120e1874a82e5aabe1376920a5c" integrity sha512-JVcQZeXM59Cd1qanDUxv9fgJpt3NeKUaqBqUEvfmQ+BCOKq2xUgaWZW2hr0dkbyJgezYuplEoh5knmrnS68efw== @@ -147,7 +139,7 @@ "@babel/template" "^7.8.3" "@babel/types" "^7.9.5" -"@babel/helper-get-function-arity@^7.0.0", "@babel/helper-get-function-arity@^7.8.3": +"@babel/helper-get-function-arity@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz#b894b947bd004381ce63ea1db9f08547e920abd5" integrity sha512-FVDR+Gd9iLjUMY1fzE2SR0IuaJToR4RkCDARVfsBBPSP53GEqSFjD8gNyxg246VUyc/ALRxFaAK8rVG7UT7xRA== @@ -161,7 +153,7 @@ dependencies: "@babel/types" "^7.8.3" -"@babel/helper-member-expression-to-functions@^7.5.5", "@babel/helper-member-expression-to-functions@^7.8.3": +"@babel/helper-member-expression-to-functions@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.8.3.tgz#659b710498ea6c1d9907e0c73f206eee7dadc24c" integrity sha512-fO4Egq88utkQFjbPrSHGmGLFqmrshs11d46WI+WZDESt7Wu7wN2G2Iu+NMMZJFDOVRHAMIkB5SNh30NtwCA7RA== @@ -175,7 +167,7 @@ dependencies: "@babel/types" "^7.8.3" -"@babel/helper-module-transforms@^7.4.4", "@babel/helper-module-transforms@^7.9.0": +"@babel/helper-module-transforms@^7.9.0": version "7.9.0" resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.9.0.tgz#43b34dfe15961918707d247327431388e9fe96e5" integrity sha512-0FvKyu0gpPfIQ8EkxlrAydOWROdHpBmiCiRwLkUiBGhCUPRRbVD2/tm3sFr/c/GWFrQ/ffutGUAnx7V0FzT2wA== @@ -188,7 +180,7 @@ "@babel/types" "^7.9.0" lodash "^4.17.13" -"@babel/helper-optimise-call-expression@^7.0.0", "@babel/helper-optimise-call-expression@^7.8.3": +"@babel/helper-optimise-call-expression@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.8.3.tgz#7ed071813d09c75298ef4f208956006b6111ecb9" integrity sha512-Kag20n86cbO2AvHca6EJsvqAd82gc6VMGule4HwebwMlwkpXuVqrNRj6CkCV2sKxgi9MyAUnZVnZ6lJ1/vKhHQ== @@ -207,7 +199,7 @@ dependencies: lodash "^4.17.13" -"@babel/helper-remap-async-to-generator@^7.1.0", "@babel/helper-remap-async-to-generator@^7.8.3": +"@babel/helper-remap-async-to-generator@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.8.3.tgz#273c600d8b9bf5006142c1e35887d555c12edd86" integrity sha512-kgwDmw4fCg7AVgS4DukQR/roGp+jP+XluJE5hsRZwxCYGg+Rv9wSGErDWhlI90FODdYfd4xG4AQRiMDjjN0GzA== @@ -218,7 +210,7 @@ "@babel/traverse" "^7.8.3" "@babel/types" "^7.8.3" -"@babel/helper-replace-supers@^7.5.5", "@babel/helper-replace-supers@^7.8.3", "@babel/helper-replace-supers@^7.8.6": +"@babel/helper-replace-supers@^7.8.3", "@babel/helper-replace-supers@^7.8.6": version "7.8.6" resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.8.6.tgz#5ada744fd5ad73203bf1d67459a27dcba67effc8" integrity sha512-PeMArdA4Sv/Wf4zXwBKPqVj7n9UF/xg6slNRtZW84FM7JpE1CbG8B612FyM4cxrf4fMAMGO0kR7voy1ForHHFA== @@ -228,7 +220,7 @@ "@babel/traverse" "^7.8.6" "@babel/types" "^7.8.6" -"@babel/helper-simple-access@^7.1.0", "@babel/helper-simple-access@^7.8.3": +"@babel/helper-simple-access@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.8.3.tgz#7f8109928b4dab4654076986af575231deb639ae" integrity sha512-VNGUDjx5cCWg4vvCTR8qQ7YJYZ+HBjxOgXEl7ounz+4Sn7+LMD3CFrCTEU6/qXKbA2nKg21CwhhBzO0RpRbdCw== @@ -236,7 +228,7 @@ "@babel/template" "^7.8.3" "@babel/types" "^7.8.3" -"@babel/helper-split-export-declaration@^7.4.4", "@babel/helper-split-export-declaration@^7.8.3": +"@babel/helper-split-export-declaration@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.3.tgz#31a9f30070f91368a7182cf05f831781065fc7a9" integrity sha512-3x3yOeyBhW851hroze7ElzdkeRXQYQbFIb7gLK1WQYsw2GWDay5gAJNw1sWJ0VFP6z5J1whqeXH/WCdCjZv6dA== @@ -258,14 +250,14 @@ "@babel/traverse" "^7.8.3" "@babel/types" "^7.8.3" -"@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== +"@babel/helpers@^7.9.0": + version "7.9.2" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.9.2.tgz#b42a81a811f1e7313b88cba8adc66b3d9ae6c09f" + integrity sha512-JwLvzlXVPjO8eU9c/wF9/zOIN7X6h8DYf7mG4CiFRZRvZNKEF5dQ3H3V+ASkHoIB3mWhatgl5ONhyqHRI6MppA== dependencies: - "@babel/template" "^7.6.0" - "@babel/traverse" "^7.6.2" - "@babel/types" "^7.6.0" + "@babel/template" "^7.8.3" + "@babel/traverse" "^7.9.0" + "@babel/types" "^7.9.0" "@babel/highlight@^7.8.3": version "7.9.0" @@ -276,22 +268,17 @@ chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/parser@^7.0.0", "@babel/parser@^7.4.3": - version "7.6.2" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.6.2.tgz#205e9c95e16ba3b8b96090677a67c9d6075b70a1" - integrity sha512-mdFqWrSPCmikBoaBYMuBulzTIKuXVPtEISFbRRVNwMWpCms/hmE2kRq0bblUHaNRKrjRlmVbx1sDHmjmRgD2Xg== - -"@babel/parser@^7.6.0", "@babel/parser@^7.6.2", "@babel/parser@^7.8.6", "@babel/parser@^7.9.0": +"@babel/parser@^7.0.0", "@babel/parser@^7.1.0", "@babel/parser@^7.4.3", "@babel/parser@^7.7.5", "@babel/parser@^7.8.6", "@babel/parser@^7.9.0": version "7.9.4" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.9.4.tgz#68a35e6b0319bbc014465be43828300113f2f2e8" integrity sha512-bC49otXX6N0/VYhgOMh4gnP26E9xnDZK3TmbNpxYzzz9BQLBosQwfyOe9/cXUU3txYhTzLCbcqd5c8y/OmCjHA== "@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== + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-external-helpers/-/plugin-external-helpers-7.8.3.tgz#5a94164d9af393b2820a3cdc407e28ebf237de4b" + integrity sha512-mx0WXDDiIl5DwzMtzWGRSPugXi9BxROS05GQrhLNbEamhBiicgn994ibwkyiBH+6png7bm/yA7AUsvHyCXi4Vw== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.8.3" "@babel/plugin-proposal-async-generator-functions@^7.1.0": version "7.8.3" @@ -303,20 +290,20 @@ "@babel/plugin-syntax-async-generators" "^7.8.0" "@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== + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.8.3.tgz#5e06654af5cd04b608915aada9b2a6788004464e" + integrity sha512-EqFhbo7IosdgPgZggHaNObkmO1kNUe3slaKu54d5OWvy+p9QIKOzK1GAEpAIsZtWVtPXUHSMcT4smvDrCfY4AA== dependencies: - "@babel/helper-create-class-features-plugin" "^7.5.5" - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-create-class-features-plugin" "^7.8.3" + "@babel/helper-plugin-utils" "^7.8.3" "@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== + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-default-from/-/plugin-proposal-export-default-from-7.8.3.tgz#4cb7c2fdeaed490b60d9bfd3dc8a20f81f9c2e7c" + integrity sha512-PYtv2S2OdCdp7GSPDg5ndGZFm9DmWFvuLoS5nBxZCgOBggluLnhTScspJxng96alHQzPyrrHxvC9/w4bFuspeA== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-syntax-export-default-from" "^7.2.0" + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/plugin-syntax-export-default-from" "^7.8.3" "@babel/plugin-proposal-json-strings@^7.0.0": version "7.8.3" @@ -327,12 +314,12 @@ "@babel/plugin-syntax-json-strings" "^7.8.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== + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.8.3.tgz#e4572253fdeed65cddeecfdab3f928afeb2fd5d2" + integrity sha512-TS9MlfzXpXKt6YYomudb/KU7nQI6/xnapG6in1uZxoxDghuSMZsPb6D2fyUwNYSAp4l1iR7QtFOjkqcRYcUsfw== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-syntax-nullish-coalescing-operator" "^7.2.0" + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.0" "@babel/plugin-proposal-object-rest-spread@^7.0.0": version "7.9.5" @@ -352,12 +339,12 @@ "@babel/plugin-syntax-optional-catch-binding" "^7.8.0" "@babel/plugin-proposal-optional-chaining@^7.0.0": - version "7.6.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.6.0.tgz#e9bf1f9b9ba10c77c033082da75f068389041af8" - integrity sha512-kj4gkZ6qUggkprRq3Uh5KP8XnE1MdIO0J7MhdDX8+rAbB6dJ2UrensGIS+0NPZAaaJ1Vr0PN6oLUgXMU1uMcSg== + version "7.9.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.9.0.tgz#31db16b154c39d6b8a645292472b98394c292a58" + integrity sha512-NDn5tu3tcv4W30jNhmc2hyD5c56G6cXx4TesJubhxrJeCvuuMpttxr0OnNCqbZGhFjLrg+NIhxxC+BK5F6yS3w== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-syntax-optional-chaining" "^7.2.0" + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/plugin-syntax-optional-chaining" "^7.8.0" "@babel/plugin-proposal-unicode-property-regex@^7.0.0": version "7.8.8" @@ -367,89 +354,110 @@ "@babel/helper-create-regexp-features-plugin" "^7.8.8" "@babel/helper-plugin-utils" "^7.8.3" -"@babel/plugin-syntax-async-generators@^7.0.0", "@babel/plugin-syntax-async-generators@^7.8.0": +"@babel/plugin-syntax-async-generators@^7.0.0", "@babel/plugin-syntax-async-generators@^7.8.0", "@babel/plugin-syntax-async-generators@^7.8.4": version "7.8.4" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d" integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw== dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@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== +"@babel/plugin-syntax-bigint@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz#4c9a6f669f5d0cdf1b90a1671e9a146be5300cea" + integrity sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-class-properties@^7.0.0", "@babel/plugin-syntax-class-properties@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.8.3.tgz#6cb933a8872c8d359bfde69bbeaae5162fd1e8f7" + integrity sha512-UcAyQWg2bAN647Q+O811tG9MrJ38Z10jjhQdKNAL8fsyPzE3cCN/uT+f55cFVY4aGO4jqJAvmqsuY3GQDwAoXg== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" "@babel/plugin-syntax-dynamic-import@^7.0.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== + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz#62bf98b2da3cd21d626154fc96ee5b3cb68eacb3" + integrity sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.8.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== +"@babel/plugin-syntax-export-default-from@^7.0.0", "@babel/plugin-syntax-export-default-from@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-export-default-from/-/plugin-syntax-export-default-from-7.8.3.tgz#f1e55ce850091442af4ba9c2550106035b29d678" + integrity sha512-a1qnnsr73KLNIQcQlcQ4ZHxqqfBKM6iNQZW2OMTyxNbA2WC7SHWHtGVpFzWtQAuS2pspkWVzdEBXXx8Ik0Za4w== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.8.3" -"@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== +"@babel/plugin-syntax-flow@^7.0.0", "@babel/plugin-syntax-flow@^7.2.0", "@babel/plugin-syntax-flow@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.8.3.tgz#f2c883bd61a6316f2c89380ae5122f923ba4527f" + integrity sha512-innAx3bUbA0KSYj2E2MNFSn9hiCeowOFLxlsuhXzw8hMQnzkDomUr9QCD7E9VF60NmnG1sNTuuv6Qf4f8INYsg== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.8.3" -"@babel/plugin-syntax-json-strings@^7.8.0": +"@babel/plugin-syntax-json-strings@^7.8.0", "@babel/plugin-syntax-json-strings@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a" integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA== dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@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== +"@babel/plugin-syntax-jsx@^7.0.0", "@babel/plugin-syntax-jsx@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.8.3.tgz#521b06c83c40480f1e58b4fd33b92eceb1d6ea94" + integrity sha512-WxdW9xyLgBdefoo0Ynn3MRSkhe5tFVxxKNVdnZSh318WrG2e2jH+E9wd/++JsqcLJZPfz87njQJ8j2Upjm0M0A== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.8.3" -"@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== +"@babel/plugin-syntax-logical-assignment-operators@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.8.3.tgz#3995d7d7ffff432f6ddc742b47e730c054599897" + integrity sha512-Zpg2Sgc++37kuFl6ppq2Q7Awc6E6AIW671x5PY8E/f7MCIyPPGK/EoeZXvvY3P42exZ3Q4/t3YOzP/HiN79jDg== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.8.3" -"@babel/plugin-syntax-object-rest-spread@^7.0.0", "@babel/plugin-syntax-object-rest-spread@^7.8.0": +"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.0", "@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9" + integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-numeric-separator@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.8.3.tgz#0e3fb63e09bea1b11e96467271c8308007e7c41f" + integrity sha512-H7dCMAdN83PcCmqmkHB5dtp+Xa9a6LKSvA2hiFBC/5alSHxM5VgWZXFqDi0YFe8XNGT6iCa+z4V4zSt/PdZ7Dw== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-syntax-object-rest-spread@^7.0.0", "@babel/plugin-syntax-object-rest-spread@^7.8.0", "@babel/plugin-syntax-object-rest-spread@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871" integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA== dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-optional-catch-binding@^7.0.0", "@babel/plugin-syntax-optional-catch-binding@^7.8.0": +"@babel/plugin-syntax-optional-catch-binding@^7.0.0", "@babel/plugin-syntax-optional-catch-binding@^7.8.0", "@babel/plugin-syntax-optional-catch-binding@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz#6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1" integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q== dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@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== +"@babel/plugin-syntax-optional-chaining@^7.8.0", "@babel/plugin-syntax-optional-chaining@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a" + integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.8.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== +"@babel/plugin-syntax-typescript@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.8.3.tgz#c1f659dda97711a569cef75275f7e15dcaa6cabc" + integrity sha512-GO1MQ/SGGGoiEXY0e0bSpHimJvxqB7lktLLIq2pv8xG7WZ8IMEle74jIe1FhprHBWjwjZtXHkycDLZXIWM5Wfg== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.8.3" "@babel/plugin-transform-arrow-functions@^7.0.0": version "7.8.3" @@ -458,16 +466,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.3" -"@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.1.0": +"@babel/plugin-transform-async-to-generator@^7.0.0", "@babel/plugin-transform-async-to-generator@^7.1.0": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.8.3.tgz#4308fad0d9409d71eafb9b1a6ee35f9d64b64086" integrity sha512-imt9tFLD9ogt56Dd5CI/6XgpukMwd/fLGSrix2httihVe7LOGVPhyhMh1BU5kDM7iHD08i8uUtmV2sWaBFlHVQ== @@ -499,21 +498,7 @@ "@babel/helper-plugin-utils" "^7.8.3" lodash "^4.17.13" -"@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.1.0": +"@babel/plugin-transform-classes@^7.0.0", "@babel/plugin-transform-classes@^7.1.0": version "7.9.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.9.5.tgz#800597ddb8aefc2c293ed27459c1fcc935a26c2c" integrity sha512-x2kZoIuLC//O5iA7PEvecB105o7TLzZo8ofBVhP79N+DO3jaX+KYfww9TQcfBEZD0nikNyYcGB1IKtRq36rdmg== @@ -556,15 +541,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.3" -"@babel/plugin-transform-exponentiation-operator@^7.0.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-exponentiation-operator@^7.1.0": +"@babel/plugin-transform-exponentiation-operator@^7.0.0", "@babel/plugin-transform-exponentiation-operator@^7.1.0": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.8.3.tgz#581a6d7f56970e06bf51560cd64f5e947b70d7b7" integrity sha512-zwIpuIymb3ACcInbksHaNcR12S++0MDLKkiqXHl3AzpgdKlFNhog+z/K0+TGW+b0w5pgTq4H6IwV/WhxbGYSjQ== @@ -573,12 +550,12 @@ "@babel/helper-plugin-utils" "^7.8.3" "@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== + version "7.9.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.9.0.tgz#8a3538aa40434e000b8f44a3c5c9ac7229bd2392" + integrity sha512-7Qfg0lKQhEHs93FChxVLAvhBshOPQDtJUTVHr/ZwQNRccCm4O9D79r9tVSoV8iNwjP1YgfD+e/fgHcPkN1qEQg== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-syntax-flow" "^7.2.0" + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/plugin-syntax-flow" "^7.8.3" "@babel/plugin-transform-for-of@^7.0.0": version "7.9.0" @@ -587,15 +564,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.3" -"@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.1.0": +"@babel/plugin-transform-function-name@^7.0.0", "@babel/plugin-transform-function-name@^7.1.0": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.8.3.tgz#279373cb27322aaad67c2683e776dfc47196ed8b" integrity sha512-rO/OnDS78Eifbjn5Py9v8y0aR+aSYhDhqAwVfsTl0ERuMZyr05L1aFSCJnbv2mmsLkit/4ReeQ9N2BgLnOcPCQ== @@ -611,11 +580,11 @@ "@babel/helper-plugin-utils" "^7.8.3" "@babel/plugin-transform-member-expression-literals@^7.0.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== + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.8.3.tgz#963fed4b620ac7cbf6029c755424029fa3a40410" + integrity sha512-3Wk2EXhnw+rP+IDkK6BdtPKsUE5IeZ6QOGrPYvw52NwBStw9V1ZVzxgK6fSKSxqUvH9eQPR3tm3cOq79HlsKYA== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.8.3" "@babel/plugin-transform-modules-amd@^7.1.0": version "7.9.0" @@ -626,17 +595,7 @@ "@babel/helper-plugin-utils" "^7.8.3" babel-plugin-dynamic-import-node "^2.3.0" -"@babel/plugin-transform-modules-commonjs@^7.0.0": - version "7.6.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.6.0.tgz#39dfe957de4420445f1fcf88b68a2e4aa4515486" - integrity sha512-Ma93Ix95PNSEngqomy5LSBMAQvYKVe3dy+JlVJSHEXZR5ASL9lQBedMiCyVtmTLraIDVRE3ZjTZvmXXD2Ozw3g== - 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.1.0": +"@babel/plugin-transform-modules-commonjs@^7.0.0", "@babel/plugin-transform-modules-commonjs@^7.1.0": version "7.9.0" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.9.0.tgz#e3e72f4cbc9b4a260e30be0ea59bdf5a39748940" integrity sha512-qzlCrLnKqio4SlgJ6FMMLBe4bySNis8DFn1VkGmOcxG9gqEyPIOzeQrA//u0HAKrWpJlpZbZMPB1n/OPa4+n8g== @@ -672,21 +631,13 @@ "@babel/helper-plugin-utils" "^7.8.3" "@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== + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-assign/-/plugin-transform-object-assign-7.8.3.tgz#dc3b8dd50ef03837868a37b7df791f64f288538e" + integrity sha512-i3LuN8tPDqUCRFu3dkzF2r1Nx0jp4scxtm7JxtIqI9he9Vk20YD+/zshdzR9JLsoBMlJlNR82a62vQExNEVx/Q== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.8.3" -"@babel/plugin-transform-object-super@^7.0.0": - 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-object-super@^7.1.0": +"@babel/plugin-transform-object-super@^7.0.0", "@babel/plugin-transform-object-super@^7.1.0": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.8.3.tgz#ebb6a1e7a86ffa96858bd6ac0102d65944261725" integrity sha512-57FXk+gItG/GejofIyLIgBKTas4+pEU47IXKDBWFTxdPd7F80H8zybyAY7UoblVfBhBGs2EKM+bJUu2+iUYPDQ== @@ -694,16 +645,7 @@ "@babel/helper-plugin-utils" "^7.8.3" "@babel/helper-replace-supers" "^7.8.3" -"@babel/plugin-transform-parameters@^7.0.0": - 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-parameters@^7.1.0", "@babel/plugin-transform-parameters@^7.9.5": +"@babel/plugin-transform-parameters@^7.0.0", "@babel/plugin-transform-parameters@^7.1.0", "@babel/plugin-transform-parameters@^7.9.5": version "7.9.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.9.5.tgz#173b265746f5e15b2afe527eeda65b73623a0795" integrity sha512-0+1FhHnMfj6lIIhVvS4KGQJeuhe1GI//h5uptK4PvLt+BGBxsoUJbd3/IW002yk//6sZPlFgsG1hY6OHLcy6kA== @@ -712,35 +654,36 @@ "@babel/helper-plugin-utils" "^7.8.3" "@babel/plugin-transform-property-literals@^7.0.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== + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.8.3.tgz#33194300d8539c1ed28c62ad5087ba3807b98263" + integrity sha512-uGiiXAZMqEoQhRWMK17VospMZh5sXWg+dlh2soffpkAl96KAm+WZuJfa6lcELotSRmooLqg0MWdH6UUq85nmmg== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.8.3" "@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== + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.8.3.tgz#70ded987c91609f78353dd76d2fb2a0bb991e8e5" + integrity sha512-3Jy/PCw8Fe6uBKtEgz3M82ljt+lTg+xJaM4og+eyu83qLT87ZUSckn0wy7r31jflURWLO83TW6Ylf7lyXj3m5A== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.8.3" "@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== + version "7.9.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.9.0.tgz#89ef93025240dd5d17d3122294a093e5e0183de0" + integrity sha512-K6m3LlSnTSfRkM6FcRk8saNEeaeyG5k7AVkBU2bZK3+1zdkSED3qNdsWrUgQBeTVD2Tp3VMmerxVO2yM5iITmw== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-syntax-jsx" "^7.2.0" + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/plugin-syntax-jsx" "^7.8.3" "@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== + version "7.9.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.9.4.tgz#86f576c8540bd06d0e95e0b61ea76d55f6cbd03f" + integrity sha512-Mjqf3pZBNLt854CK0C/kRuXAnE6H/bo7xYojP+WGtX8glDGSibcwnsWwhwoSuRg0+EBnxPC1ouVnuetUIlPSAw== dependencies: - "@babel/helper-builder-react-jsx" "^7.3.0" - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-syntax-jsx" "^7.2.0" + "@babel/helper-builder-react-jsx" "^7.9.0" + "@babel/helper-builder-react-jsx-experimental" "^7.9.0" + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/plugin-syntax-jsx" "^7.8.3" "@babel/plugin-transform-regenerator@^7.0.0": version "7.8.7" @@ -750,12 +693,12 @@ regenerator-transform "^0.14.2" "@babel/plugin-transform-runtime@^7.0.0": - version "7.6.2" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.6.2.tgz#2669f67c1fae0ae8d8bf696e4263ad52cb98b6f8" - integrity sha512-cqULw/QB4yl73cS5Y0TZlQSjDvNkzDbu0FurTZyHlJpWE5T3PCMdnyV+xXoH1opr1ldyHODe3QAX3OMAii5NxA== + version "7.9.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.9.0.tgz#45468c0ae74cc13204e1d3b1f4ce6ee83258af0b" + integrity sha512-pUu9VSf3kI1OqbWINQ7MaugnitRss1z533436waNXp+0N3ur3zfut37sXiQMxkuCF4VUjwZucen/quskCh7NHw== dependencies: - "@babel/helper-module-imports" "^7.0.0" - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-module-imports" "^7.8.3" + "@babel/helper-plugin-utils" "^7.8.3" resolve "^1.8.1" semver "^5.5.1" @@ -797,13 +740,13 @@ "@babel/helper-plugin-utils" "^7.8.3" "@babel/plugin-transform-typescript@^7.0.0": - version "7.6.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.6.0.tgz#48d78405f1aa856ebeea7288a48a19ed8da377a6" - integrity sha512-yzw7EopOOr6saONZ3KA3lpizKnWRTe+rfBqg4AmQbSow7ik7fqmzrfIqt053osLwLE2AaTqGinLM2tl6+M/uog== + version "7.9.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.9.4.tgz#4bb4dde4f10bbf2d787fce9707fb09b483e33359" + integrity sha512-yeWeUkKx2auDbSxRe8MusAG+n4m9BFY/v+lPjmQDgOFX5qnySkUY5oXzkp6FwPdsYqnKay6lorXYdC0n3bZO7w== dependencies: - "@babel/helper-create-class-features-plugin" "^7.6.0" - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-syntax-typescript" "^7.2.0" + "@babel/helper-create-class-features-plugin" "^7.8.3" + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/plugin-syntax-typescript" "^7.8.3" "@babel/plugin-transform-unicode-regex@^7.0.0": version "7.8.3" @@ -874,40 +817,24 @@ source-map-support "^0.5.9" "@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== + version "7.9.0" + resolved "https://registry.yarnpkg.com/@babel/register/-/register-7.9.0.tgz#02464ede57548bddbb5e9f705d263b7c3f43d48b" + integrity sha512-Tv8Zyi2J2VRR8g7pC5gTeIN8Ihultbmk0ocyNz8H2nEZbmhp1N6q0A1UGsQbDvGP/sNinQKUHf3SqXwqjtFv4Q== dependencies: find-cache-dir "^2.0.0" lodash "^4.17.13" - mkdirp "^0.5.1" + make-dir "^2.1.0" pirates "^4.0.0" - source-map-support "^0.5.9" + source-map-support "^0.5.16" -"@babel/runtime@^7.0.0": - version "7.6.2" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.6.2.tgz#c3d6e41b304ef10dcf13777a33e7694ec4a9a6dd" - integrity sha512-EXxN64agfUqqIGeEjI5dL5z0Sw0ZwWo1mLTi4mQowCZ42O59b7DRpZAnTC6OqdF28wMBMFKNb/4uFGrVaigSpg== - dependencies: - regenerator-runtime "^0.13.2" - -"@babel/runtime@^7.8.4": +"@babel/runtime@^7.0.0", "@babel/runtime@^7.8.4": version "7.9.2" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.9.2.tgz#d90df0583a3a252f09aaa619665367bae518db06" integrity sha512-NE2DtOdufG7R5vnfQUTehdTfNycfUANEtCa9PssN9O/xmTzP4E08UI797ixaei6hBEVL9BI/PsdJS5x7mWoB9Q== dependencies: regenerator-runtime "^0.13.4" -"@babel/template@^7.0.0", "@babel/template@^7.4.0", "@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.8.3", "@babel/template@^7.8.6": +"@babel/template@^7.0.0", "@babel/template@^7.4.0", "@babel/template@^7.7.4", "@babel/template@^7.8.3", "@babel/template@^7.8.6": version "7.8.6" resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.8.6.tgz#86b22af15f828dfb086474f964dcc3e39c43ce2b" integrity sha512-zbMsPMy/v0PWFZEhQJ66bqjhH+z0JgMoBWuikXybgG3Gkd/3t5oQ1Rw2WQhnSrsOmsKXnZOx15tkC4qON/+JPg== @@ -916,22 +843,7 @@ "@babel/parser" "^7.8.6" "@babel/types" "^7.8.6" -"@babel/traverse@^7.0.0", "@babel/traverse@^7.4.3", "@babel/traverse@^7.6.2": - version "7.6.2" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.6.2.tgz#b0e2bfd401d339ce0e6c05690206d1e11502ce2c" - integrity sha512-8fRE76xNwNttVEF2TwxJDGBLWthUkHWSldmfuBzVRmEDWOtu4XdINTgN7TDWzuLg4bbeIMLvfMFD9we5YcWkRQ== - dependencies: - "@babel/code-frame" "^7.5.5" - "@babel/generator" "^7.6.2" - "@babel/helper-function-name" "^7.1.0" - "@babel/helper-split-export-declaration" "^7.4.4" - "@babel/parser" "^7.6.2" - "@babel/types" "^7.6.0" - debug "^4.1.0" - globals "^11.1.0" - lodash "^4.17.13" - -"@babel/traverse@^7.8.3", "@babel/traverse@^7.8.6": +"@babel/traverse@^7.0.0", "@babel/traverse@^7.1.0", "@babel/traverse@^7.4.3", "@babel/traverse@^7.7.4", "@babel/traverse@^7.8.3", "@babel/traverse@^7.8.6", "@babel/traverse@^7.9.0": version "7.9.5" resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.9.5.tgz#6e7c56b44e2ac7011a948c21e283ddd9d9db97a2" integrity sha512-c4gH3jsvSuGUezlP6rzSJ6jf8fYjLj3hsMZRx/nX0h+fmHN0w+ekubRrHPqnMec0meycA2nwCsJ7dC8IPem2FQ== @@ -946,7 +858,7 @@ globals "^11.1.0" lodash "^4.17.13" -"@babel/types@^7.0.0", "@babel/types@^7.6.0", "@babel/types@^7.8.3", "@babel/types@^7.8.6", "@babel/types@^7.8.7", "@babel/types@^7.9.0", "@babel/types@^7.9.5": +"@babel/types@^7.0.0", "@babel/types@^7.3.0", "@babel/types@^7.4.0", "@babel/types@^7.8.3", "@babel/types@^7.8.6", "@babel/types@^7.9.0", "@babel/types@^7.9.5": version "7.9.5" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.9.5.tgz#89231f82915a8a566a703b3b20133f73da6b9444" integrity sha512-XjnvNqenk818r5zMaba+sLQjnbda31UfUURv3ei0qPQw4u+j2jMyJ5b11y8ZHYTRSI3NnInQkkkRT4fLqqPdHg== @@ -955,19 +867,15 @@ lodash "^4.17.13" to-fast-properties "^2.0.0" -"@babel/types@^7.3.0", "@babel/types@^7.4.0": - version "7.6.1" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.6.1.tgz#53abf3308add3ac2a2884d539151c57c4b3ac648" - integrity sha512-X7gdiuaCmA0uRjCmRtYJNAVCc/q+5xSgsfKJHqMN4iNLILX39677fJE1O40arPMh0TTtS9ItH67yre6c7k6t0g== - dependencies: - esutils "^2.0.2" - lodash "^4.17.13" - to-fast-properties "^2.0.0" +"@bcoe/v8-coverage@^0.2.3": + version "0.2.3" + resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" + integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== "@cnakazawa/watch@^1.0.3": - version "1.0.3" - resolved "https://registry.yarnpkg.com/@cnakazawa/watch/-/watch-1.0.3.tgz#099139eaec7ebf07a27c1786a3ff64f39464d2ef" - integrity sha512-r5160ogAvGyHsal38Kux7YYtodEKOj89RGb28ht1jh3SJb08VwRwAKKJL0bGb04Zd/3r9FL3BFIc3bBidYffCA== + version "1.0.4" + resolved "https://registry.yarnpkg.com/@cnakazawa/watch/-/watch-1.0.4.tgz#f864ae85004d0fcab6f50be9141c4da368d1656a" + integrity sha512-v9kIhKwjeZThiWrLmj0y17CWoyddASLj9O2yvbZkbvw/N3rWOYy9zkV66ursAoVr0mV15bL8g0c4QZUE6cdDoQ== dependencies: exec-sh "^0.3.2" minimist "^1.2.0" @@ -980,19 +888,19 @@ "@types/hammerjs" "^2.0.36" "@hapi/address@2.x.x": - version "2.1.2" - resolved "https://registry.yarnpkg.com/@hapi/address/-/address-2.1.2.tgz#1c794cd6dbf2354d1eb1ef10e0303f573e1c7222" - integrity sha512-O4QDrx+JoGKZc6aN64L04vqa7e41tIiLU+OvKdcYaEMP97UttL0f9GIi9/0A4WAMx0uBd6SidDIhktZhgOcN8Q== + version "2.1.4" + resolved "https://registry.yarnpkg.com/@hapi/address/-/address-2.1.4.tgz#5d67ed43f3fd41a69d4b9ff7b56e7c0d1d0a81e5" + integrity sha512-QD1PhQk+s31P1ixsX0H0Suoupp3VMXzIVMSwobR3F3MSUO2YCV0B7xqLcUw/Bh8yuvd3LhpyqLQWTNcRmp6IdQ== "@hapi/bourne@1.x.x": version "1.3.2" resolved "https://registry.yarnpkg.com/@hapi/bourne/-/bourne-1.3.2.tgz#0a7095adea067243ce3283e1b56b8a8f453b242a" integrity sha512-1dVNHT76Uu5N3eJNTYcvxee+jzX4Z9lfciqRRHCU27ihbUcYi+iSc2iml5Ke1LXe1SyJCLA0+14Jh4tXJgOppA== -"@hapi/hoek@8.x.x": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@hapi/hoek/-/hoek-8.3.0.tgz#2b9db1cd00f3891005c77b3a8d608b88a6d0aa4d" - integrity sha512-C0QL9bmgUXTSuf8nDeGrpMjtJG7tPUr8wG6/wxPbP62tGwCwQtdMSJYfESowmY4P3Hn593f+8OzNY5bckcu/LQ== +"@hapi/hoek@8.x.x", "@hapi/hoek@^8.3.0": + version "8.5.1" + resolved "https://registry.yarnpkg.com/@hapi/hoek/-/hoek-8.5.1.tgz#fde96064ca446dec8c55a8c2f130957b070c6e06" + integrity sha512-yN7kbciD87WzLGc5539Tn0sApjyiGHAJgKvG9W8C7O+6c7qmoQMfVs0W4bX17eqz6C78QJqqFrtgdK5EWf6Qow== "@hapi/joi@^15.0.3": version "15.1.1" @@ -1005,11 +913,26 @@ "@hapi/topo" "3.x.x" "@hapi/topo@3.x.x": - version "3.1.5" - resolved "https://registry.yarnpkg.com/@hapi/topo/-/topo-3.1.5.tgz#3baea17e456530edad69a75c3fc7cde97dd6d331" - integrity sha512-bi9m1jrui9LlvtVdLaHv0DqeOoe+I8dep+nEcTgW6XxJHL3xArQcilYz3tIp0cRC4gWlsVtABK7vNKg4jzEmAA== + version "3.1.6" + resolved "https://registry.yarnpkg.com/@hapi/topo/-/topo-3.1.6.tgz#68d935fa3eae7fdd5ab0d7f953f3205d8b2bfc29" + integrity sha512-tAag0jEcjwH+P2quUfipd7liWCNX2F8NvYjQp2wtInsZxnMlypdw0FtAOLxtvvkO+GSRRbmNi8m/5y42PQJYCQ== dependencies: - "@hapi/hoek" "8.x.x" + "@hapi/hoek" "^8.3.0" + +"@istanbuljs/load-nyc-config@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@istanbuljs/load-nyc-config/-/load-nyc-config-1.0.0.tgz#10602de5570baea82f8afbfa2630b24e7a8cfe5b" + integrity sha512-ZR0rq/f/E4f4XcgnDvtMWXCUJpi8eO0rssVhmztsZqLIEFA9UUP9zmpE0VxlM+kv/E1ul2I876Fwil2ayptDVg== + dependencies: + camelcase "^5.3.1" + find-up "^4.1.0" + js-yaml "^3.13.1" + resolve-from "^5.0.0" + +"@istanbuljs/schema@^0.1.2": + version "0.1.2" + resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.2.tgz#26520bf09abe4a5644cd5414e37125a8954241dd" + integrity sha512-tsAQNx32a8CoFhjhijUIhI4kccIAgmGhy8LZMZgGfmXcpMbPRUqn5LWmgRttILi6yeGmBJd2xsPkFMs0PzgPCw== "@jest/console@^24.9.0": version "24.9.0" @@ -1020,6 +943,60 @@ chalk "^2.0.1" slash "^2.0.0" +"@jest/console@^25.4.0": + version "25.4.0" + resolved "https://registry.yarnpkg.com/@jest/console/-/console-25.4.0.tgz#e2760b532701137801ba824dcff6bc822c961bac" + integrity sha512-CfE0erx4hdJ6t7RzAcE1wLG6ZzsHSmybvIBQDoCkDM1QaSeWL9wJMzID/2BbHHa7ll9SsbbK43HjbERbBaFX2A== + dependencies: + "@jest/types" "^25.4.0" + chalk "^3.0.0" + jest-message-util "^25.4.0" + jest-util "^25.4.0" + slash "^3.0.0" + +"@jest/core@^25.4.0": + version "25.4.0" + resolved "https://registry.yarnpkg.com/@jest/core/-/core-25.4.0.tgz#cc1fe078df69b8f0fbb023bb0bcee23ef3b89411" + integrity sha512-h1x9WSVV0+TKVtATGjyQIMJENs8aF6eUjnCoi4jyRemYZmekLr8EJOGQqTWEX8W6SbZ6Skesy9pGXrKeAolUJw== + dependencies: + "@jest/console" "^25.4.0" + "@jest/reporters" "^25.4.0" + "@jest/test-result" "^25.4.0" + "@jest/transform" "^25.4.0" + "@jest/types" "^25.4.0" + ansi-escapes "^4.2.1" + chalk "^3.0.0" + exit "^0.1.2" + graceful-fs "^4.2.3" + jest-changed-files "^25.4.0" + jest-config "^25.4.0" + jest-haste-map "^25.4.0" + jest-message-util "^25.4.0" + jest-regex-util "^25.2.6" + jest-resolve "^25.4.0" + jest-resolve-dependencies "^25.4.0" + jest-runner "^25.4.0" + jest-runtime "^25.4.0" + jest-snapshot "^25.4.0" + jest-util "^25.4.0" + jest-validate "^25.4.0" + jest-watcher "^25.4.0" + micromatch "^4.0.2" + p-each-series "^2.1.0" + realpath-native "^2.0.0" + rimraf "^3.0.0" + slash "^3.0.0" + strip-ansi "^6.0.0" + +"@jest/environment@^25.4.0": + version "25.4.0" + resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-25.4.0.tgz#45071f525f0d8c5a51ed2b04fd42b55a8f0c7cb3" + integrity sha512-KDctiak4mu7b4J6BIoN/+LUL3pscBzoUCP+EtSPd2tK9fqyDY5OF+CmkBywkFWezS9tyH5ACOQNtpjtueEDH6Q== + dependencies: + "@jest/fake-timers" "^25.4.0" + "@jest/types" "^25.4.0" + jest-mock "^25.4.0" + "@jest/fake-timers@^24.9.0": version "24.9.0" resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-24.9.0.tgz#ba3e6bf0eecd09a636049896434d306636540c93" @@ -1029,6 +1006,48 @@ jest-message-util "^24.9.0" jest-mock "^24.9.0" +"@jest/fake-timers@^25.4.0": + version "25.4.0" + resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-25.4.0.tgz#3a9a4289ba836abd084953dca406389a57e00fbd" + integrity sha512-lI9z+VOmVX4dPPFzyj0vm+UtaB8dCJJ852lcDnY0uCPRvZAaVGnMwBBc1wxtf+h7Vz6KszoOvKAt4QijDnHDkg== + dependencies: + "@jest/types" "^25.4.0" + jest-message-util "^25.4.0" + jest-mock "^25.4.0" + jest-util "^25.4.0" + lolex "^5.0.0" + +"@jest/reporters@^25.4.0": + version "25.4.0" + resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-25.4.0.tgz#836093433b32ce4e866298af2d6fcf6ed351b0b0" + integrity sha512-bhx/buYbZgLZm4JWLcRJ/q9Gvmd3oUh7k2V7gA4ZYBx6J28pIuykIouclRdiAC6eGVX1uRZT+GK4CQJLd/PwPg== + dependencies: + "@bcoe/v8-coverage" "^0.2.3" + "@jest/console" "^25.4.0" + "@jest/test-result" "^25.4.0" + "@jest/transform" "^25.4.0" + "@jest/types" "^25.4.0" + chalk "^3.0.0" + collect-v8-coverage "^1.0.0" + exit "^0.1.2" + glob "^7.1.2" + istanbul-lib-coverage "^3.0.0" + istanbul-lib-instrument "^4.0.0" + istanbul-lib-report "^3.0.0" + istanbul-lib-source-maps "^4.0.0" + istanbul-reports "^3.0.2" + jest-haste-map "^25.4.0" + jest-resolve "^25.4.0" + jest-util "^25.4.0" + jest-worker "^25.4.0" + slash "^3.0.0" + source-map "^0.6.0" + string-length "^3.1.0" + terminal-link "^2.0.0" + v8-to-istanbul "^4.1.3" + optionalDependencies: + node-notifier "^6.0.0" + "@jest/source-map@^24.9.0": version "24.9.0" resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-24.9.0.tgz#0e263a94430be4b41da683ccc1e6bffe2a191714" @@ -1038,6 +1057,15 @@ graceful-fs "^4.1.15" source-map "^0.6.0" +"@jest/source-map@^25.2.6": + version "25.2.6" + resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-25.2.6.tgz#0ef2209514c6d445ebccea1438c55647f22abb4c" + integrity sha512-VuIRZF8M2zxYFGTEhkNSvQkUKafQro4y+mwUxy5ewRqs5N/ynSFUODYp3fy1zCnbCMy1pz3k+u57uCqx8QRSQQ== + dependencies: + callsites "^3.0.0" + graceful-fs "^4.2.3" + source-map "^0.6.0" + "@jest/test-result@^24.9.0": version "24.9.0" resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-24.9.0.tgz#11796e8aa9dbf88ea025757b3152595ad06ba0ca" @@ -1047,6 +1075,48 @@ "@jest/types" "^24.9.0" "@types/istanbul-lib-coverage" "^2.0.0" +"@jest/test-result@^25.4.0": + version "25.4.0" + resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-25.4.0.tgz#6f2ec2c8da9981ef013ad8651c1c6f0cb20c6324" + integrity sha512-8BAKPaMCHlL941eyfqhWbmp3MebtzywlxzV+qtngQ3FH+RBqnoSAhNEPj4MG7d2NVUrMOVfrwuzGpVIK+QnMAA== + dependencies: + "@jest/console" "^25.4.0" + "@jest/types" "^25.4.0" + "@types/istanbul-lib-coverage" "^2.0.0" + collect-v8-coverage "^1.0.0" + +"@jest/test-sequencer@^25.4.0": + version "25.4.0" + resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-25.4.0.tgz#2b96f9d37f18dc3336b28e3c8070f97f9f55f43b" + integrity sha512-240cI+nsM3attx2bMp9uGjjHrwrpvxxrZi8Tyqp/cfOzl98oZXVakXBgxODGyBYAy/UGXPKXLvNc2GaqItrsJg== + dependencies: + "@jest/test-result" "^25.4.0" + jest-haste-map "^25.4.0" + jest-runner "^25.4.0" + jest-runtime "^25.4.0" + +"@jest/transform@^25.4.0": + version "25.4.0" + resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-25.4.0.tgz#eef36f0367d639e2fd93dccd758550377fbb9962" + integrity sha512-t1w2S6V1sk++1HHsxboWxPEuSpN8pxEvNrZN+Ud/knkROWtf8LeUmz73A4ezE8476a5AM00IZr9a8FO9x1+j3g== + dependencies: + "@babel/core" "^7.1.0" + "@jest/types" "^25.4.0" + babel-plugin-istanbul "^6.0.0" + chalk "^3.0.0" + convert-source-map "^1.4.0" + fast-json-stable-stringify "^2.0.0" + graceful-fs "^4.2.3" + jest-haste-map "^25.4.0" + jest-regex-util "^25.2.6" + jest-util "^25.4.0" + micromatch "^4.0.2" + pirates "^4.0.1" + realpath-native "^2.0.0" + slash "^3.0.0" + source-map "^0.6.1" + write-file-atomic "^3.0.0" + "@jest/types@^24.9.0": version "24.9.0" resolved "https://registry.yarnpkg.com/@jest/types/-/types-24.9.0.tgz#63cb26cb7500d069e5a389441a7c6ab5e909fc59" @@ -1056,6 +1126,16 @@ "@types/istanbul-reports" "^1.1.1" "@types/yargs" "^13.0.0" +"@jest/types@^25.4.0": + version "25.4.0" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-25.4.0.tgz#5afeb8f7e1cba153a28e5ac3c9fe3eede7206d59" + integrity sha512-XBeaWNzw2PPnGW5aXvZt3+VO60M+34RY3XDsCK5tW7kyj3RK0XClRutCfjqcBuaR2aBQTbluEDME9b5MB9UAPw== + dependencies: + "@types/istanbul-lib-coverage" "^2.0.0" + "@types/istanbul-reports" "^1.1.1" + "@types/yargs" "^15.0.0" + chalk "^3.0.0" + "@react-native-community/cli-debugger-ui@^3.0.0": version "3.0.0" resolved "https://registry.yarnpkg.com/@react-native-community/cli-debugger-ui/-/cli-debugger-ui-3.0.0.tgz#d01d08d1e5ddc1633d82c7d84d48fff07bd39416" @@ -1064,9 +1144,9 @@ serve-static "^1.13.1" "@react-native-community/cli-platform-android@^3.0.0": - version "3.0.3" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-android/-/cli-platform-android-3.0.3.tgz#e652abce79a7c1e3a8280228123e99df2c4b97b6" - integrity sha512-rNO9DmRiVhB6aP2DVUjEJv7ecriTARDZND88ny3xNVUkrD1Y+zwF6aZu3eoT52VXOxLCSLiJzz19OiyGmfqxYg== + version "3.1.4" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-android/-/cli-platform-android-3.1.4.tgz#61f964dc311623e60b0fb29c5f3732cc8a6f076f" + integrity sha512-ClSdY20F0gzWVLTqCv7vHjnUqOcuq10jd9GgHX6lGSc2GI+Ql3/aQg3tmG4uY3KXNNwAv3U8QCoYgg1WGfwiHA== dependencies: "@react-native-community/cli-tools" "^3.0.0" chalk "^2.4.2" @@ -1077,9 +1157,9 @@ xmldoc "^1.1.2" "@react-native-community/cli-platform-ios@^3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-ios/-/cli-platform-ios-3.0.0.tgz#3a48a449c0c33af3b0b3d19d3256de99388fe15f" - integrity sha512-QoNVlDj8eMXRZk9uktPFsctHurQpv9jKmiu6mQii4NEtT2npE7g1hbWpRNojutBsfgmCdQGDHd9uB54eeCnYgg== + version "3.2.0" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-ios/-/cli-platform-ios-3.2.0.tgz#c469444f5993c9e6737a4b16d78cf033e3702f00" + integrity sha512-pzEnx68H6+mHBq5jsMrr3UmAmkrLSMlC9BZ4yoUdfUXCQq6/R70zNYvH4hjUw8h2Al7Kgq53UzHUsM0ph8TSWQ== dependencies: "@react-native-community/cli-tools" "^3.0.0" chalk "^2.4.2" @@ -1102,9 +1182,9 @@ integrity sha512-ng6Tm537E/M42GjE4TRUxQyL8sRfClcL7bQWblOCoxPZzJ2J3bdALsjeG3vDnVCIfI/R0AeFalN9KjMt0+Z/Zg== "@react-native-community/cli@^3.0.0": - version "3.0.4" - resolved "https://registry.yarnpkg.com/@react-native-community/cli/-/cli-3.0.4.tgz#a9dba1bc77855a6e45fccaabb017360645d936bb" - integrity sha512-kt+ENtC+eRUSfWPbbpx3r7fAQDcFwgM03VW/lBdVAUjkNxffPFT2GGdK23CJSBOXTjRSiGuwhvwH4Z28PdrlRA== + version "3.2.1" + resolved "https://registry.yarnpkg.com/@react-native-community/cli/-/cli-3.2.1.tgz#2a466801eb6080a1f73358c5d740c53c24ed8c6f" + integrity sha512-bZ/bfZ+9r1gQSxp6t7+00DcpC6vmbVYSvzUCFM/yo5k8bhsDdcy8aocscIaXXVGG+v9Edri/Q7hH9ks7L18/Rg== dependencies: "@hapi/joi" "^15.0.3" "@react-native-community/cli-debugger-ui" "^3.0.0" @@ -1117,6 +1197,7 @@ connect "^3.6.5" cosmiconfig "^5.1.0" deepmerge "^3.2.0" + didyoumean "^1.2.1" envinfo "^7.1.0" errorhandler "^1.5.0" execa "^1.0.0" @@ -1137,6 +1218,7 @@ open "^6.2.0" ora "^3.4.0" plist "^3.0.0" + pretty-format "^25.1.0" semver "^6.3.0" serve-static "^1.13.1" shell-quote "1.6.1" @@ -1146,29 +1228,29 @@ ws "^1.1.0" "@react-native-community/masked-view@^0.1.6": - version "0.1.6" - resolved "https://registry.yarnpkg.com/@react-native-community/masked-view/-/masked-view-0.1.6.tgz#c7f2ac187c1f25aa8c30d11baa8f4398eca3bb84" - integrity sha512-PpMoeXwPUoldCRKDuSi+zK5rT+sJTW6ri6RdGPkSKRzU77Q1d9IaR0O5IKvBj0XSdL3p+dcOa05gk35aGDffBQ== + version "0.1.9" + resolved "https://registry.yarnpkg.com/@react-native-community/masked-view/-/masked-view-0.1.9.tgz#383aca2fb053e3e14405c99cce2d5805df730821" + integrity sha512-nUtzbiLeXU0K9oVed6rc/WVrjGJwDSL4q1RTDkpZYU4j0FeovfuzcNUIDesD2r728LYfIop+uAgQdm+6qBOCug== "@react-native-community/netinfo@^4.4.0": - version "4.4.0" - resolved "https://registry.yarnpkg.com/@react-native-community/netinfo/-/netinfo-4.4.0.tgz#a18eb9ba082b6aca6add004b4a918250ad7d13bc" - integrity sha512-qqNWMOsrDjj/daqV21ID2T8mNUjZD4pdx3PuWyE65gzKh2w+oMnzKb+J0NbLyZPn3wwLwU1+Cpf58A0ff5szjQ== + version "4.7.0" + resolved "https://registry.yarnpkg.com/@react-native-community/netinfo/-/netinfo-4.7.0.tgz#7482d36836cac69d0a0ae25581f65bc472639930" + integrity sha512-a/sDB+AsLEUNmhAUlAaTYeXKyQdFGBUfatqKkX5jluBo2CB3OAuTHfm7rSjcaLB9EmG5iSq3fOTpync2E7EYTA== "@react-navigation/bottom-tabs@^5.1.1": - version "5.2.8" - resolved "https://registry.yarnpkg.com/@react-navigation/bottom-tabs/-/bottom-tabs-5.2.8.tgz#9b47bf2ed4b9ebf2d8976cb49142002f42883195" - integrity sha512-oCIaFNvfWGNaJYPnNAJ2XkruG0f+E+ofPWKdFiJZULppN/Mee3G+q7hkdQkGtqK2DgRYapM1n3AsJBwon/KO5g== + version "5.2.7" + resolved "https://registry.yarnpkg.com/@react-navigation/bottom-tabs/-/bottom-tabs-5.2.7.tgz#6f3eca9ba323cd9e80dd4ceba1f1c8e84955091f" + integrity sha512-vn04P+ac6Ea/BjaD/+2f4nqcjTI17hNZoBtMR+MBfQxLKv53baYEp8IuWObT+Ym37Tzq6PwayLb8qTSKDXamKg== dependencies: color "^3.1.2" react-native-iphone-x-helper "^1.2.1" -"@react-navigation/core@^5.3.5": - version "5.3.5" - resolved "https://registry.yarnpkg.com/@react-navigation/core/-/core-5.3.5.tgz#a52149c1e6cc6b5c00849d756ace5b3289736637" - integrity sha512-s+XL+2r/NS9e0/kcRCBJ2NV7+3zqAqLXFHX2+qzES++oc+gb5A8JSrHjwRUwxMqR2AOqSfz5HSyYXnYIwgl4JQ== +"@react-navigation/core@^5.3.4": + version "5.3.4" + resolved "https://registry.yarnpkg.com/@react-navigation/core/-/core-5.3.4.tgz#272eb48381c4db251f4dc5cd044db1606a551551" + integrity sha512-ul8J7oHC1/k/qWORr7uI710nKofbcD2clYI0bK0Bix+xgAoiFPgrwRDrQcjWw4YQViYlR8CGF/DhnKK+BFA+Yw== dependencies: - "@react-navigation/routers" "^5.4.1" + "@react-navigation/routers" "^5.4.0" escape-string-regexp "^2.0.0" nanoid "^3.0.2" query-string "^6.12.0" @@ -1176,27 +1258,72 @@ use-subscription "^1.4.0" "@react-navigation/native@^5.0.9": - version "5.1.7" - resolved "https://registry.yarnpkg.com/@react-navigation/native/-/native-5.1.7.tgz#929815726504007d73ad77301e4659e910fe8d41" - integrity sha512-0/TWbeorcLb42AN9KYK4rWzZk3RrpX95vIuqzcI5zPlo/Yhs3h+TEXX1s+6n2MT42W8xHPZzK/RaHnBGKD0aLw== + version "5.1.6" + resolved "https://registry.yarnpkg.com/@react-navigation/native/-/native-5.1.6.tgz#932ff1b5b8b9f051d8e5cd3b016d05badaa01898" + integrity sha512-DLLSnh29AndrGjPrHJoAgObeO9TiyrGtrASl+SA3B4ksmz4dUV2t6vaRwHogn1kejvRd+1T8VD923d3K1rjy7w== dependencies: - "@react-navigation/core" "^5.3.5" + "@react-navigation/core" "^5.3.4" -"@react-navigation/routers@^5.4.1": - version "5.4.1" - resolved "https://registry.yarnpkg.com/@react-navigation/routers/-/routers-5.4.1.tgz#7d5d0931a591e3dd6c917cb5dc7c7ae9e794e1cd" - integrity sha512-Gay9yCrE2xuvUUJcbG+giqnh2ZAPyYecO5RJ3tXDztmT+UaJoyHLSfyjkb74gSjij684udtzUKkoXGBbgcANhg== +"@react-navigation/routers@^5.4.0": + version "5.4.0" + resolved "https://registry.yarnpkg.com/@react-navigation/routers/-/routers-5.4.0.tgz#2fce2a3880e84a110d4eaea317bb7dadee27d57c" + integrity sha512-Z5mQF/oQH9CRLilNm1H7h0wjY3dKomWOhuuDehW8UKuLiFp2mWJI1P5N9qwaSraxhcoiVfb9QXwKZru/wBzWMQ== dependencies: nanoid "^3.0.2" "@react-navigation/stack@^5.1.1": - version "5.2.14" - resolved "https://registry.yarnpkg.com/@react-navigation/stack/-/stack-5.2.14.tgz#ab8cfafdb4401862ca0e42ccedf16551ff4132b5" - integrity sha512-hVzkqcAXPrZ10Gjtlzl8+Ad9x1p0n0Vn2YTff4xSlZkVVgKcHyTAWg59NL93fvq9T1zJXOCJZ0hoHiFMmNmAlA== + version "5.2.11" + resolved "https://registry.yarnpkg.com/@react-navigation/stack/-/stack-5.2.11.tgz#3e8d5e64a7a46c9fdb672eed74c973c3073e8ca5" + integrity sha512-Gt+T9FlXB8yQGS/0Mg987Wzr/XbPwSROujn0lTzw328wVpHKoilLStdMf5u5pxMMsNQ6HBtzITksM3FyxY9/0A== dependencies: color "^3.1.2" react-native-iphone-x-helper "^1.2.1" +"@sinonjs/commons@^1.7.0": + version "1.7.2" + resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.7.2.tgz#505f55c74e0272b43f6c52d81946bed7058fc0e2" + integrity sha512-+DUO6pnp3udV/v2VfUWgaY5BIE1IfT7lLfeDzPVeMT1XKkaAp9LgSI9x5RtrFQoZ9Oi0PgXQQHPaoKu7dCjVxw== + dependencies: + type-detect "4.0.8" + +"@types/babel__core@^7.1.7": + version "7.1.7" + resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.7.tgz#1dacad8840364a57c98d0dd4855c6dd3752c6b89" + integrity sha512-RL62NqSFPCDK2FM1pSDH0scHpJvsXtZNiYlMB73DgPBaG1E38ZYVL+ei5EkWRbr+KC4YNiAUNBnRj+bgwpgjMw== + dependencies: + "@babel/parser" "^7.1.0" + "@babel/types" "^7.0.0" + "@types/babel__generator" "*" + "@types/babel__template" "*" + "@types/babel__traverse" "*" + +"@types/babel__generator@*": + version "7.6.1" + resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.6.1.tgz#4901767b397e8711aeb99df8d396d7ba7b7f0e04" + integrity sha512-bBKm+2VPJcMRVwNhxKu8W+5/zT7pwNEqeokFOmbvVSqGzFneNxYcEBro9Ac7/N9tlsaPYnZLK8J1LWKkMsLAew== + dependencies: + "@babel/types" "^7.0.0" + +"@types/babel__template@*": + version "7.0.2" + resolved "https://registry.yarnpkg.com/@types/babel__template/-/babel__template-7.0.2.tgz#4ff63d6b52eddac1de7b975a5223ed32ecea9307" + integrity sha512-/K6zCpeW7Imzgab2bLkLEbz0+1JlFSrUMdw7KoIIu+IUdu51GWaBZpd3y1VXGVXzynvGa4DaIaxNZHiON3GXUg== + dependencies: + "@babel/parser" "^7.1.0" + "@babel/types" "^7.0.0" + +"@types/babel__traverse@*", "@types/babel__traverse@^7.0.6": + version "7.0.10" + resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.0.10.tgz#d9a99f017317d9b3d1abc2ced45d3bca68df0daf" + integrity sha512-74fNdUGrWsgIB/V9kTO5FGHPWYY6Eqn+3Z7L6Hc4e/BxjYV7puvBqp5HwsVYYfLm6iURYBNCx4Ut37OF9yitCw== + dependencies: + "@babel/types" "^7.3.0" + +"@types/color-name@^1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@types/color-name/-/color-name-1.1.1.tgz#1c1261bbeaa10a8055bbc5d8ab84b7b2afc846a0" + integrity sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ== + "@types/events@*": version "3.0.0" resolved "https://registry.yarnpkg.com/@types/events/-/events-3.0.0.tgz#2862f3f58a9a7f7c3e78d79f130dd4d71c25c2a7" @@ -1207,15 +1334,15 @@ resolved "https://registry.yarnpkg.com/@types/hammerjs/-/hammerjs-2.0.36.tgz#17ce0a235e9ffbcdcdf5095646b374c2bf615a4c" integrity sha512-7TUK/k2/QGpEAv/BCwSHlYu3NXZhQ9ZwBYpzr9tjlPIL2C5BeGhH3DmVavRx3ZNyELX5TLC91JTz/cen6AAtIQ== -"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0": +"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0", "@types/istanbul-lib-coverage@^2.0.1": version "2.0.1" resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.1.tgz#42995b446db9a48a11a07ec083499a860e9138ff" integrity sha512-hRJD2ahnnpLgsj6KWMYSrmXkM3rm2Dl1qkx6IOFD5FnuNPXJIG5L0dhgKXCYTRMGzU4n0wImQ/xfmRc4POUFlg== "@types/istanbul-lib-report@*": - version "1.1.1" - resolved "https://registry.yarnpkg.com/@types/istanbul-lib-report/-/istanbul-lib-report-1.1.1.tgz#e5471e7fa33c61358dd38426189c037a58433b8c" - integrity sha512-3BUTyMzbZa2DtDI2BkERNC6jJw2Mr2Y0oGI7mRxYNBPxppbtEK1F66u3bKwU2g+wxwWI7PAoRpJnOY1grJqzHg== + version "3.0.0" + resolved "https://registry.yarnpkg.com/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#c14c24f18ea8190c118ee7562b7ff99a36552686" + integrity sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg== dependencies: "@types/istanbul-lib-coverage" "*" @@ -1227,22 +1354,32 @@ "@types/istanbul-lib-coverage" "*" "@types/istanbul-lib-report" "*" +"@types/normalize-package-data@^2.4.0": + version "2.4.0" + resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz#e486d0d97396d79beedd0a6e33f4534ff6b4973e" + integrity sha512-f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA== + +"@types/prettier@^1.19.0": + version "1.19.1" + resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-1.19.1.tgz#33509849f8e679e4add158959fdb086440e9553f" + integrity sha512-5qOlnZscTn4xxM5MeGXAMOsIOIKIbh9e85zJWfBRVPlRMEVawzoPhINYbRGkBZCI8LxvBe7tJCdWiarA99OZfQ== + "@types/prop-types@*": version "15.7.3" resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.3.tgz#2ab0d5da2e5815f94b0b9d4b95d1e5f243ab2ca7" integrity sha512-KfRL3PuHmqQLOG+2tGpRO26Ctg+Cq1E01D2DMriKEATHgWLfeNDmq9e29Q9WIky0dQ3NPkd1mzYH8Lm936Z9qw== "@types/react-native@*": - version "0.61.23" - resolved "https://registry.yarnpkg.com/@types/react-native/-/react-native-0.61.23.tgz#bff4e0311c229a5203eb37aacd4febf59f3e2980" - integrity sha512-upHmySsrVBDBokWWhYIKkKnpvadsHdioSjbBTu4xl7fjN0yb94KR5ngUOBXsyqAYqQzF+hP6qpvobG9M7Jr6hw== + version "0.62.2" + resolved "https://registry.yarnpkg.com/@types/react-native/-/react-native-0.62.2.tgz#f3e150f308c27089cefbcbfa3eb6cc14db279b2f" + integrity sha512-oIUIbqZNN9vRnGKWHYbTVp/GyTqdaM5mfy1s4zsi6BYvHAaFOPZ32IrhIHno/A5XOv4wuGfE7g5fliDk/H0+/Q== dependencies: "@types/react" "*" "@types/react@*": - version "16.9.23" - resolved "https://registry.yarnpkg.com/@types/react/-/react-16.9.23.tgz#1a66c6d468ba11a8943ad958a8cb3e737568271c" - integrity sha512-SsGVT4E7L2wLN3tPYLiF20hmZTPGuzaayVunfgXzUn1x4uHVsKH6QDJQ/TdpHqwsTLd4CwrmQ2vOgxN7gE24gw== + version "16.9.34" + resolved "https://registry.yarnpkg.com/@types/react/-/react-16.9.34.tgz#f7d5e331c468f53affed17a8a4d488cd44ea9349" + integrity sha512-8AJlYMOfPe1KGLKyHpflCg5z46n0b5DbRfqDksxBLBTUpB75ypDBAO9eCUcjNwE6LCUslwTz00yyG/X9gaVtow== dependencies: "@types/prop-types" "*" csstype "^2.2.0" @@ -1253,21 +1390,28 @@ integrity sha512-l42BggppR6zLmpfU6fq9HEa2oGPEI8yrSPL3GITjfRInppYFahObbIQOQK3UGxEnyQpltZLaPe75046NOZQikw== "@types/yargs-parser@*": - version "13.1.0" - resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-13.1.0.tgz#c563aa192f39350a1d18da36c5a8da382bbd8228" - integrity sha512-gCubfBUZ6KxzoibJ+SCUc/57Ms1jz5NjHe4+dI2krNmU5zCPAphyLJYyTOg06ueIyfj+SaCUqmzun7ImlxDcKg== + version "15.0.0" + resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-15.0.0.tgz#cb3f9f741869e20cce330ffbeb9271590483882d" + integrity sha512-FA/BWv8t8ZWJ+gEOnLLd8ygxH/2UFbAvgEonyfN6yWGLKc7zVjbpl2Y4CTjid9h2RfgPP6SEt6uHwEOply00yw== "@types/yargs@^13.0.0": - version "13.0.3" - resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-13.0.3.tgz#76482af3981d4412d65371a318f992d33464a380" - integrity sha512-K8/LfZq2duW33XW/tFwEAfnZlqIfVsoyRB3kfXdPXYhl0nfM8mmh7GS0jg7WrX2Dgq/0Ha/pR1PaR+BvmWwjiQ== + version "13.0.8" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-13.0.8.tgz#a38c22def2f1c2068f8971acb3ea734eb3c64a99" + integrity sha512-XAvHLwG7UQ+8M4caKIH0ZozIOYay5fQkAgyIXegXT9jPtdIGdhga+sUEdAr1CiG46aB+c64xQEYyEzlwWVTNzA== dependencies: "@types/yargs-parser" "*" -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== +"@types/yargs@^15.0.0": + version "15.0.4" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-15.0.4.tgz#7e5d0f8ca25e9d5849f2ea443cf7c402decd8299" + integrity sha512-9T1auFmbPZoxHz0enUFlUuKRy3it01R+hlggyVUMtnCTQRunsQYifnSGb8hET4Xo8yiC0o0r1paW3ud5+rbURg== + dependencies: + "@types/yargs-parser" "*" + +abab@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.3.tgz#623e2075e02eb2d3f2475e49f99c91846467907a" + integrity sha512-tsFzPpcttalNjFBCFMqsKYQcWxxen1pgJR56by//QwvJc4/OUS3kPOOttx2tSIfjsylB0pYu7f5D3K1RCxUnUg== abort-controller@^3.0.0: version "3.0.0" @@ -1294,12 +1438,35 @@ accepts@~1.3.5, accepts@~1.3.7: 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== +acorn-globals@^4.3.2: + version "4.3.4" + resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-4.3.4.tgz#9fa1926addc11c97308c4e66d7add0d40c3272e7" + integrity sha512-clfQEh21R+D0leSbUdWf3OcfqyaCSAQ8Ryq00bofSekfr9W8u1jyYZo6ir0xu9Gtcf7BjcHJpnbZH7JOCpP60A== dependencies: - fast-deep-equal "^2.0.1" + acorn "^6.0.1" + acorn-walk "^6.0.1" + +acorn-walk@^6.0.1: + version "6.2.0" + resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-6.2.0.tgz#123cb8f3b84c2171f1f7fb252615b1c78a6b1a8c" + integrity sha512-7evsyfH1cLOCdAzZAd43Cic04yKydNx0cF+7tiA19p1XnLLPU4dpCQOqpjqwokFe//vS0QqfqqjCS2JkiIs0cA== + +acorn@^6.0.1: + version "6.4.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.1.tgz#531e58ba3f51b9dacb9a6646ca4debf5b14ca474" + integrity sha512-ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA== + +acorn@^7.1.0: + version "7.1.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.1.1.tgz#e35668de0b402f359de515c5482a1ab9f89a69bf" + integrity sha512-add7dgA5ppRPxCFJoAGfMDi7PIBXq1RtGo7BhbLaxwrXPOmw8gq48Y9ozT01hUKy9byMjlR20EJhu5zlkErEkg== + +ajv@^6.5.5: + version "6.12.2" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.2.tgz#c629c5eced17baf314437918d2da88c99d5958cd" + integrity sha512-k+V+hzjm5q/Mr8ef/1Y9goCmlsK4I6Sm74teeyGvFk1XrOsbsKLjEdrvny42CZ+a8sXbk8KWpY/bDwS+FLL2UQ== + dependencies: + fast-deep-equal "^3.1.1" fast-json-stable-stringify "^2.0.0" json-schema-traverse "^0.4.1" uri-js "^4.2.2" @@ -1323,6 +1490,13 @@ ansi-escapes@^3.0.0: resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.2.0.tgz#8780b98ff9dbf5638152d1f1fe5c1d7b4442976b" integrity sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ== +ansi-escapes@^4.2.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.1.tgz#a5c47cc43181f1f38ffd7076837700d395522a61" + integrity sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA== + dependencies: + type-fest "^0.11.0" + ansi-fragments@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/ansi-fragments/-/ansi-fragments-0.2.1.tgz#24409c56c4cc37817c3d7caa99d8969e2de5a05e" @@ -1361,6 +1535,11 @@ ansi-regex@^4.0.0, ansi-regex@^4.1.0: resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg== +ansi-regex@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75" + integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg== + 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" @@ -1368,6 +1547,14 @@ ansi-styles@^3.2.0, ansi-styles@^3.2.1: dependencies: color-convert "^1.9.0" +ansi-styles@^4.0.0, ansi-styles@^4.1.0: + version "4.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.2.1.tgz#90ae75c424d008d2624c5bf29ead3177ebfcf359" + integrity sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA== + dependencies: + "@types/color-name" "^1.1.1" + color-convert "^2.0.1" + 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" @@ -1381,6 +1568,14 @@ anymatch@^2.0.0: micromatch "^3.1.4" normalize-path "^2.1.1" +anymatch@^3.0.3: + version "3.1.1" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.1.tgz#c55ecf02185e2469259399310c173ce31233b142" + integrity sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg== + dependencies: + normalize-path "^3.0.0" + picomatch "^2.0.4" + append-transform@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/append-transform/-/append-transform-1.0.0.tgz#046a52ae582a228bd72f58acfbe2967c678759ab" @@ -1388,24 +1583,11 @@ append-transform@^1.0.0: 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" @@ -1449,18 +1631,24 @@ arr-union@^3.1.0: resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ= +array-equal@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/array-equal/-/array-equal-1.0.0.tgz#8c2a5ef2472fd9ea742b04c77a75093ba2757c93" + integrity sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM= + 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= + version "3.1.1" + resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.1.tgz#cdd67e6852bdf9c1215460786732255ed2459348" + integrity sha512-c2VXaCHl7zPsvpkFsw4nxvFie4fh1ur9bpcgsVkIjqn0H/Xwdg+7fv3n2r/isyS8EBj5b06M9kHyZuIr4El6WQ== dependencies: - define-properties "^1.1.2" - es-abstract "^1.7.0" + define-properties "^1.1.3" + es-abstract "^1.17.0" + is-string "^1.0.5" array-map@~0.0.0: version "0.0.0" @@ -1492,6 +1680,15 @@ asap@~2.0.3: resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" integrity sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY= +asn1.js@^4.0.0: + version "4.10.1" + resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-4.10.1.tgz#b9c2bf5805f1e64aadeed6df3a2bfafb5a73f5a0" + integrity sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw== + dependencies: + bn.js "^4.0.0" + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + asn1@~0.2.3: version "0.2.4" resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.4.tgz#8d2475dfab553bb33e77b54e59e880bb8ce23136" @@ -1504,6 +1701,14 @@ assert-plus@1.0.0, assert-plus@^1.0.0: resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU= +assert@^1.1.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" @@ -1536,7 +1741,7 @@ asynckit@^0.4.0: resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= -atob@^2.1.1: +atob@^2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== @@ -1547,9 +1752,9 @@ aws-sign2@~0.7.0: 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== + version "1.9.1" + resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.9.1.tgz#7e33d8f7d449b3f673cd72deb9abdc552dbe528e" + integrity sha512-wMHVg2EOHaMRxbzgFJ9gtjOOCrI80OHLG14rxi28XwOW8ux6IiEbRCGGGqCtdAIg4FQCbW20k9RsT4y3gJlFug== axobject-query@^0.1.0: version "0.1.0" @@ -1558,6 +1763,19 @@ axobject-query@^0.1.0: dependencies: ast-types-flow "0.0.7" +babel-jest@^25.4.0: + version "25.4.0" + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-25.4.0.tgz#409eb3e2ddc2ad9a92afdbb00991f1633f8018d0" + integrity sha512-p+epx4K0ypmHuCnd8BapfyOwWwosNCYhedetQey1awddtfmEX0MmdxctGl956uwUmjwXR5VSS5xJcGX9DvdIog== + dependencies: + "@jest/transform" "^25.4.0" + "@jest/types" "^25.4.0" + "@types/babel__core" "^7.1.7" + babel-plugin-istanbul "^6.0.0" + babel-preset-jest "^25.4.0" + chalk "^3.0.0" + slash "^3.0.0" + babel-plugin-dynamic-import-node@^2.3.0: version "2.3.3" resolved "https://registry.yarnpkg.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz#84fda19c976ec5c6defef57f9427b3def66e17a3" @@ -1565,15 +1783,49 @@ babel-plugin-dynamic-import-node@^2.3.0: dependencies: object.assign "^4.1.0" +babel-plugin-istanbul@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-6.0.0.tgz#e159ccdc9af95e0b570c75b4573b7c34d671d765" + integrity sha512-AF55rZXpe7trmEylbaE1Gv54wn6rwU03aptvRoVIGP8YykoSxqdVLV1TfwflBCE/QtHmqtP8SWlTENqbK8GCSQ== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@istanbuljs/load-nyc-config" "^1.0.0" + "@istanbuljs/schema" "^0.1.2" + istanbul-lib-instrument "^4.0.0" + test-exclude "^6.0.0" + +babel-plugin-jest-hoist@^25.4.0: + version "25.4.0" + resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-25.4.0.tgz#0c122c1b93fb76f52d2465be2e8069e798e9d442" + integrity sha512-M3a10JCtTyKevb0MjuH6tU+cP/NVQZ82QPADqI1RQYY1OphztsCeIeQmTsHmF/NS6m0E51Zl4QNsI3odXSQF5w== + dependencies: + "@types/babel__traverse" "^7.0.6" + 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-current-node-syntax@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-0.1.2.tgz#fb4a4c51fe38ca60fede1dc74ab35eb843cb41d6" + integrity sha512-u/8cS+dEiK1SFILbOC8/rUI3ml9lboKuuMvZ/4aQnQmhecQAgPw5ew066C1ObnEAUmlx7dv/s2z52psWEtLNiw== + dependencies: + "@babel/plugin-syntax-async-generators" "^7.8.4" + "@babel/plugin-syntax-bigint" "^7.8.3" + "@babel/plugin-syntax-class-properties" "^7.8.3" + "@babel/plugin-syntax-json-strings" "^7.8.3" + "@babel/plugin-syntax-logical-assignment-operators" "^7.8.3" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" + "@babel/plugin-syntax-numeric-separator" "^7.8.3" + "@babel/plugin-syntax-object-rest-spread" "^7.8.3" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" + "@babel/plugin-syntax-optional-chaining" "^7.8.3" + babel-preset-fbjs@^3.1.2, 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== + version "3.3.0" + resolved "https://registry.yarnpkg.com/babel-preset-fbjs/-/babel-preset-fbjs-3.3.0.tgz#a6024764ea86c8e06a22d794ca8b69534d263541" + integrity sha512-7QTLTCd2gwB2qGoi5epSULMHugSVgpcVt5YAeiFO9ABLrutDQzKfGwzxgZHLpugq8qMdg/DhRZDZ5CLKxBkEbw== dependencies: "@babel/plugin-proposal-class-properties" "^7.0.0" "@babel/plugin-proposal-object-rest-spread" "^7.0.0" @@ -1603,6 +1855,14 @@ babel-preset-fbjs@^3.1.2, babel-preset-fbjs@^3.2.0: "@babel/plugin-transform-template-literals" "^7.0.0" babel-plugin-syntax-trailing-function-commas "^7.0.0-beta.0" +babel-preset-jest@^25.4.0: + version "25.4.0" + resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-25.4.0.tgz#10037cc32b751b994b260964629e49dc479abf4c" + integrity sha512-PwFiEWflHdu3JCeTr0Pb9NcHHE34qWFnPQRVPvqQITx4CsDCzs6o05923I10XvLvn9nNsRHuiVgB72wG/90ZHQ== + dependencies: + babel-plugin-jest-hoist "^25.4.0" + babel-preset-current-node-syntax "^0.1.2" + balanced-match@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" @@ -1631,7 +1891,7 @@ base@^0.11.1: mixin-deep "^1.2.0" pascalcase "^0.1.1" -basic-auth@~2.0.0: +basic-auth@~2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/basic-auth/-/basic-auth-2.0.1.tgz#b998279bf47ce38344b4f3cf916d4679bbf51e3a" integrity sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg== @@ -1645,38 +1905,74 @@ bcrypt-pbkdf@^1.0.0: dependencies: tweetnacl "^0.14.3" -big-integer@^1.6.7: - version "1.6.47" - resolved "https://registry.yarnpkg.com/big-integer/-/big-integer-1.6.47.tgz#e1e9320e26c4cc81f64fbf4b3bb20e025bf18e2d" - integrity sha512-9t9f7X3as2XGX8b52GqG6ox0GvIdM86LyIXASJnDCFhYNgt+A+MByQZ3W2PyMRZjEvG5f8TEbSPfEotVuMJnQg== +big-integer@^1.6.44: + version "1.6.48" + resolved "https://registry.yarnpkg.com/big-integer/-/big-integer-1.6.48.tgz#8fd88bd1632cba4a1c8c3e3d7159f08bb95b4b9e" + integrity sha512-j51egjPa7/i+RdiRuJbPdJ2FIUYYPhvYLjzoYbcMMm62ooO6F94fETG4MTs46zPAF9Brs04OajboA/qTGuz78w== "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" +binary@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/binary/-/binary-0.3.0.tgz#9f60553bc5ce8c3386f3b553cff47462adecaa79" + integrity sha1-n2BVO8XOjDOG87VTz/R0Yq3sqnk= + dependencies: + buffers "~0.1.1" + chainsaw "~0.1.0" + +bindings@^1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df" + integrity sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ== + dependencies: + file-uri-to-path "1.0.0" + +binwrap@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/binwrap/-/binwrap-0.2.2.tgz#7d1ea74b28332f18dfdc75548aef993041ffafc9" + integrity sha512-Y+Wvypk3JhH5GPZAvlwJAWOVH/OsOhQMSj37vySuWHwQivoALplPxfBA8b973rFJI7OS+O+1YmmYXIiEXVMAcw== + dependencies: + mustache "^3.0.1" + request "^2.88.0" + request-promise "^4.2.4" + tar "^4.4.10" + unzip-stream "^0.3.0" + +bluebird@^3.5.0: + version "3.7.2" + resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" + integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== + 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: +bn.js@4.11.8, bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, 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== -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= +boolbase@^1.0.0, boolbase@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" + integrity sha1-aN/1++YMUes3cl6p4+0xDcwed24= + +bplist-creator@0.0.8: + 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= +bplist-parser@0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/bplist-parser/-/bplist-parser-0.2.0.tgz#43a9d183e5bf9d545200ceac3e712f79ebbe8d0e" + integrity sha512-z0M+byMThzQmD9NILRniCUXYsYpjwnlO8N5uCFaCqIOpqRsJCrQL9NK3JsD67CN5a08nF5oIL2bD6loTdHOuKw== dependencies: - big-integer "^1.6.7" + big-integer "^1.6.44" brace-expansion@^1.1.7: version "1.1.11" @@ -1702,11 +1998,89 @@ braces@^2.3.1: split-string "^3.0.2" to-regex "^3.0.1" +braces@^3.0.1: + version "3.0.2" + resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" + integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== + dependencies: + fill-range "^7.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= +browser-process-hrtime@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz#3c9b4b7d782c8121e56f10106d84c0d0ffc94626" + integrity sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow== + +browser-resolve@^1.11.3: + version "1.11.3" + resolved "https://registry.yarnpkg.com/browser-resolve/-/browser-resolve-1.11.3.tgz#9b7cbb3d0f510e4cb86bdbd796124d28b5890af6" + integrity sha512-exDi1BYWB/6raKHmDTCicQfTkqwN5fioMFV4j8BsfMU4R2DK/QfZfK7kOVkmWCNANf0snkBzqGqAJBao9gZMdQ== + dependencies: + resolve "1.1.7" + +browserify-aes@^1.0.0, browserify-aes@^1.0.4: + version "1.2.0" + resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48" + integrity sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA== + dependencies: + buffer-xor "^1.0.3" + cipher-base "^1.0.0" + create-hash "^1.1.0" + evp_bytestokey "^1.0.3" + inherits "^2.0.1" + safe-buffer "^5.0.1" + +browserify-cipher@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.1.tgz#8d6474c1b870bfdabcd3bcfcc1934a10e94f15f0" + integrity sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w== + dependencies: + browserify-aes "^1.0.4" + browserify-des "^1.0.0" + evp_bytestokey "^1.0.0" + +browserify-des@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.2.tgz#3af4f1f59839403572f1c66204375f7a7f703e9c" + integrity sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A== + dependencies: + cipher-base "^1.0.1" + des.js "^1.0.0" + inherits "^2.0.1" + safe-buffer "^5.1.2" + +browserify-rsa@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.0.1.tgz#21e0abfaf6f2029cf2fafb133567a701d4135524" + integrity sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ= + dependencies: + bn.js "^4.1.0" + randombytes "^2.0.1" + +browserify-sign@^4.0.0: + version "4.0.4" + resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.0.4.tgz#aa4eb68e5d7b658baa6bf6a57e630cbd7a93d298" + integrity sha1-qk62jl17ZYuqa/alfmMMvXqT0pg= + dependencies: + bn.js "^4.1.1" + browserify-rsa "^4.0.0" + create-hash "^1.1.0" + create-hmac "^1.1.2" + elliptic "^6.0.0" + inherits "^2.0.1" + parse-asn1 "^5.0.0" + +browserify-zlib@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.2.0.tgz#2869459d9aa3be245fe8fe2ca1f46e2e7f54d73f" + integrity sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA== + dependencies: + pako "~1.0.5" + browserslist@^4.1.0: version "4.12.0" resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.12.0.tgz#06c6d5715a1ede6c51fc39ff67fd647f740b656d" @@ -1717,19 +2091,37 @@ browserslist@^4.1.0: node-releases "^1.1.53" pkg-up "^2.0.0" -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== +bser@2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/bser/-/bser-2.1.1.tgz#e6787da20ece9d07998533cfd9de6f5c38f4bc05" + integrity sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ== 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-crc32@^0.2.13: version "0.2.13" resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" integrity sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI= -buffer-from@^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== @@ -1739,13 +2131,37 @@ buffer-to-arraybuffer@^0.0.5: resolved "https://registry.yarnpkg.com/buffer-to-arraybuffer/-/buffer-to-arraybuffer-0.0.5.tgz#6064a40fa76eb43c723aba9ef8f6e1216d10511a" integrity sha1-YGSkD6dutDxyOrqe+PbhIW0QURo= -buffer@^5.4.2: - version "5.4.3" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.4.3.tgz#3fbc9c69eb713d323e3fc1a895eee0710c072115" - integrity sha512-zvj65TkFeIt3i6aj5bIvJDzjjQQGs4o/sNoezg1F1kYap9Nu2jcUdpwzRSJTHMMzG0H7bZkn4rNQpImhuxWX2A== +buffer-xor@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" + integrity sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk= + +buffer@^4.3.0: + version "4.9.2" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.2.tgz#230ead344002988644841ab0244af8c44bbe3ef8" + integrity sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg== dependencies: base64-js "^1.0.2" ieee754 "^1.1.4" + isarray "^1.0.0" + +buffer@^5.4.2, buffer@^5.4.3: + version "5.6.0" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.6.0.tgz#a31749dc7d81d84db08abf937b6b8c4033f62786" + integrity sha512-/gDYp/UtU0eA1ys8bOs9J6a+E/KWIY+DZ+Q2WESNUA0jFRsJOc0SNUO6xJ5SGA1xueg3NL65W6s+NY5l9cunuw== + dependencies: + base64-js "^1.0.2" + ieee754 "^1.1.4" + +buffers@~0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/buffers/-/buffers-0.1.1.tgz#b24579c3bed4d6d396aeee6d9a8ae7f5482ab7bb" + integrity sha1-skV5w77U1tOWru5tmorn9Ugqt7s= + +builtin-status-codes@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" + integrity sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug= bytes@3.0.0: version "3.0.0" @@ -1812,9 +2228,9 @@ camelcase@^5.0.0, camelcase@^5.3.1: integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== caniuse-lite@^1.0.30001043: - version "1.0.30001048" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001048.tgz#4bb4f1bc2eb304e5e1154da80b93dee3f1cf447e" - integrity sha512-g1iSHKVxornw0K8LG9LLdf+Fxnv7T1Z+mMsf0/YYLclQX4Cd522Ap0Lrw6NFqHgezit78dtyWxzlV2Xfc7vgRg== + version "1.0.30001045" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001045.tgz#a770df9de36ad6ca0c34f90eaa797a2dbbb1b619" + integrity sha512-Y8o2Iz1KPcD6FjySbk1sPpvJqchgxk/iow0DABpGyzA1UeQAuxh63Xh0Enj5/BrsYbXtCN32JmR4ZxQTCQ6E6A== capture-exit@^2.0.0: version "2.0.0" @@ -1828,6 +2244,13 @@ caseless@~0.12.0: resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= +chainsaw@~0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/chainsaw/-/chainsaw-0.1.0.tgz#5eab50b28afe58074d0d58291388828b5e5fbc98" + integrity sha1-XqtQsor+WAdNDVgpE4iCi15fvJg= + dependencies: + traverse ">=0.3.0 <0.4" + chalk@^2.0.0, chalk@^2.0.1, chalk@^2.4.1, chalk@^2.4.2: version "2.4.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" @@ -1837,10 +2260,18 @@ chalk@^2.0.0, chalk@^2.0.1, chalk@^2.4.1, chalk@^2.4.2: escape-string-regexp "^1.0.5" supports-color "^5.3.0" +chalk@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-3.0.0.tgz#3f73c2bf526591f574cc492c51e2456349f844e4" + integrity sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + chance@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/chance/-/chance-1.1.0.tgz#4206b8ae8679275afd7db6379abc23f103ab8488" - integrity sha512-DwT4HVvl1VwZ73lqEyWYtrI59iSERBDfioMhw0gMMNySLMcx7/pzy+JAam3+3WcEH4ITNzwRtuQH4Geyko70gw== + version "1.1.4" + resolved "https://registry.yarnpkg.com/chance/-/chance-1.1.4.tgz#d8743bf8e40bb05e024c305ca1ff441195eb23db" + integrity sha512-pXPDSu3knKlb6H7ahQfpq//J9mSOxYK8SMtp8MV/nRJh8aLRDIl0ipLH8At8+nVogVwtvPZzyIzY/EbcY/cLuQ== chardet@^0.4.0: version "0.4.2" @@ -1848,15 +2279,23 @@ chardet@^0.4.0: integrity sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I= chownr@^1.1.1: - version "1.1.3" - resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.3.tgz#42d837d5239688d55f303003a508230fa6727142" - integrity sha512-i70fVHhmV3DtTl6nqvZOnIjbY0Pe4kAUjwHj8z0zAdgBtYrJyYwLKCCuRBQ5ppkyL0AkN7HKRnETdmdp1zqNXw== + version "1.1.4" + resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" + integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== ci-info@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46" integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== +cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" + integrity sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q== + dependencies: + inherits "^2.0.1" + safe-buffer "^5.0.1" + class-utils@^0.3.5: version "0.3.6" resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" @@ -1875,14 +2314,14 @@ cli-cursor@^2.1.0: restore-cursor "^2.0.0" cli-spinners@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.2.0.tgz#e8b988d9206c692302d8ee834e7a85c0144d8f77" - integrity sha512-tgU3fKwzYjiLEQgPMD9Jt+JjHVL9kW93FiIMX/l7rivvOD4/LL0Mf7gda3+4U2KJBloybwgj5KEoQgGRioMiKQ== + version "2.3.0" + resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.3.0.tgz#0632239a4b5aa4c958610142c34bb7a651fc8df5" + integrity sha512-Xs2Hf2nzrvJMFKimOR7YR0QwZ8fc0u98kdtwN1eNAZzNQgH3vK2pXzff6GJtKh7S5hoJ87ECiAiZFS2fb5Ii2w== 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= + version "2.2.1" + resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.1.tgz#b0433d0b4e9c847ef18868a4ef16fd5fc8271c48" + integrity sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw== cliui@^3.2.0: version "3.2.0" @@ -1911,16 +2350,43 @@ cliui@^5.0.0: strip-ansi "^5.2.0" wrap-ansi "^5.1.0" +cliui@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-6.0.0.tgz#511d702c0c4e41ca156d7d0e96021f23e13225b1" + integrity sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ== + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.0" + wrap-ansi "^6.2.0" + +clj-kondo@^2020.1.13: + version "2020.1.13" + resolved "https://registry.yarnpkg.com/clj-kondo/-/clj-kondo-2020.1.13.tgz#bffe0dde83169f3b7a605f459f835cbf90ef9347" + integrity sha512-hLKi4toY3UFe1WnuX/HGr2e3PWEt4++7286Jiv/nyBoy1zcEopz7k+e0XnjX5GkxFUgXv1KrIyHQ3eM4+iW2dw== + dependencies: + binwrap "^0.2.2" + request "^2.88.0" + clone@^1.0.2: version "1.0.4" resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" integrity sha1-2jCcwmPfFZlMaIypAheco8fNfH4= +co@^4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" + integrity sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ= + 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= +collect-v8-coverage@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz#cc2c8e94fc18bbdffe64d6534570c8a673b27f59" + integrity sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg== + collection-visit@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" @@ -1936,12 +2402,19 @@ color-convert@^1.9.0, color-convert@^1.9.1: dependencies: color-name "1.1.3" +color-convert@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" + integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== + dependencies: + color-name "~1.1.4" + 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-name@^1.0.0: +color-name@^1.0.0, color-name@~1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== @@ -1980,14 +2453,14 @@ combined-stream@^1.0.6, combined-stream@~1.0.6: delayed-stream "~1.0.0" command-exists@^1.2.8: - version "1.2.8" - resolved "https://registry.yarnpkg.com/command-exists/-/command-exists-1.2.8.tgz#715acefdd1223b9c9b37110a149c6392c2852291" - integrity sha512-PM54PkseWbiiD/mMsbvW351/u+dafwTJ0ye2qB60G1aGQP9j3xK2gmMDc+R34L3nDtx4qMCitXT75mkbkGJDLw== + version "1.2.9" + resolved "https://registry.yarnpkg.com/command-exists/-/command-exists-1.2.9.tgz#c50725af3808c8ab0260fd60b01fbfa25b954f69" + integrity sha512-LTQ/SGc+s0Xc0Fu5WaKnR0YiygZkm9eKFvyS+fRsU7/ZWFF8ykFM6Pc9aCVf1+xasOOZpO3BAVgVrKvsqKHV7w== -commander@^2.11.0, commander@^2.19.0, commander@~2.20.0: - version "2.20.1" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.1.tgz#3863ce3ca92d0831dcf2a102f5fb4b5926afd0f9" - integrity sha512-cCuLsMhJeWQ/ZpsFTbE765kvVfoeSddc4nU3up4fV+fDBcfUXnbITJ+JzhkdjzOqhURjZgujxaioam4RM9yGUg== +commander@^2.11.0, commander@^2.19.0: + version "2.20.3" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" + integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== commander@~2.13.0: version "2.13.0" @@ -2005,11 +2478,11 @@ component-emitter@^1.2.1: 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== + version "2.0.18" + resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.18.tgz#af53cca6b070d4c3c0750fbd77286a6d7cc46fba" + integrity sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg== dependencies: - mime-db ">= 1.40.0 < 2" + mime-db ">= 1.43.0 < 2" compression@^1.7.1: version "1.7.4" @@ -2049,15 +2522,20 @@ connect@^3.6.5: 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= +console-browserify@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.2.0.tgz#67063cef57ceb6cf4993a2ab3a55840ae8c49336" + integrity sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA== -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== +constants-browserify@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" + integrity sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U= + +convert-source-map@^1.4.0, convert-source-map@^1.6.0, 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" @@ -2071,12 +2549,7 @@ core-js@^1.0.0: 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-js@^2.5.7: +core-js@^2.2.2, core-js@^2.4.1, core-js@^2.5.7: version "2.6.11" resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.11.tgz#38831469f9922bded8ee21c9dc46985e0399308c" integrity sha512-5wjnpaT/3dV+XB4borEsnAYQchn00XSgTAWKDkEqv+K8KevjbzmofK6hfJ9TZIlpj2N0xQpazy7PiRQiWHqzWg== @@ -2097,16 +2570,15 @@ cosmiconfig@^5.0.5, cosmiconfig@^5.1.0: parse-json "^4.0.0" coveralls@^3.0.4: - version "3.0.6" - resolved "https://registry.yarnpkg.com/coveralls/-/coveralls-3.0.6.tgz#5c63b2759b6781118e7439bd870ba5e9ee428b25" - integrity sha512-Pgh4v3gCI4T/9VijVrm8Ym5v0OgjvGLKj3zTUwkvsCiwqae/p6VLzpsFNjQS2i6ewV7ef+DjFJ5TSKxYt/mCrA== + version "3.0.13" + resolved "https://registry.yarnpkg.com/coveralls/-/coveralls-3.0.13.tgz#64d8c99af3b8a771a2e6e5bcdf556c3c5061d29d" + integrity sha512-Bch6FJI4ebK6Mwr+DjFCJbb/RayNwn5pscSDE4Ux6cgjNkAcjdgGZBRfQnuYTt5tY81MqGK8m2r+xc5FDF513A== dependencies: - growl "~> 1.10.0" js-yaml "^3.13.1" - lcov-parse "^0.0.10" + lcov-parse "^1.0.0" log-driver "^1.2.7" - minimist "^1.2.0" - request "^2.86.0" + minimist "^1.2.5" + request "^2.88.0" cp-file@^6.2.0: version "6.2.0" @@ -2119,6 +2591,37 @@ cp-file@^6.2.0: pify "^4.0.1" safe-buffer "^5.0.1" +create-ecdh@^4.0.0: + version "4.0.3" + resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.3.tgz#c9111b6f33045c4697f144787f9254cdc77c45ff" + integrity sha512-GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw== + dependencies: + bn.js "^4.1.0" + elliptic "^6.0.0" + +create-hash@^1.1.0, create-hash@^1.1.2: + version "1.2.0" + resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196" + integrity sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg== + dependencies: + cipher-base "^1.0.1" + inherits "^2.0.1" + md5.js "^1.3.4" + ripemd160 "^2.0.1" + sha.js "^2.4.0" + +create-hmac@^1.1.0, create-hmac@^1.1.2, create-hmac@^1.1.4: + version "1.1.7" + resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff" + integrity sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg== + dependencies: + cipher-base "^1.0.3" + create-hash "^1.1.0" + inherits "^2.0.1" + ripemd160 "^2.0.0" + safe-buffer "^5.0.1" + sha.js "^2.4.8" + 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" @@ -2156,15 +2659,81 @@ cross-spawn@^6.0.0: shebang-command "^1.2.0" which "^1.2.9" +cross-spawn@^7.0.0: + version "7.0.2" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.2.tgz#d0d7dcfa74e89115c7619f4f721a94e1fdb716d6" + integrity sha512-PD6G8QG3S4FK/XCGFbEQrDqO2AnMMsy0meR7lerlIOHAAbkuavGU/pOqprrlvfTNjvowivTeBsjebAL0NSoMxw== + dependencies: + path-key "^3.1.0" + shebang-command "^2.0.0" + which "^2.0.1" + +crypto-browserify@^3.11.0: + version "3.12.0" + resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" + integrity sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg== + dependencies: + browserify-cipher "^1.0.0" + browserify-sign "^4.0.0" + create-ecdh "^4.0.0" + create-hash "^1.1.0" + create-hmac "^1.1.0" + diffie-hellman "^5.0.0" + inherits "^2.0.1" + pbkdf2 "^3.0.3" + public-encrypt "^4.0.0" + randombytes "^2.0.0" + randomfill "^1.0.3" + +css-select@^2.0.2: + version "2.1.0" + resolved "https://registry.yarnpkg.com/css-select/-/css-select-2.1.0.tgz#6a34653356635934a81baca68d0255432105dbef" + integrity sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ== + dependencies: + boolbase "^1.0.0" + css-what "^3.2.1" + domutils "^1.7.0" + nth-check "^1.0.2" + +css-tree@^1.0.0-alpha.37: + version "1.0.0-alpha.39" + resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.0.0-alpha.39.tgz#2bff3ffe1bb3f776cf7eefd91ee5cba77a149eeb" + integrity sha512-7UvkEYgBAHRG9Nt980lYxjsTrCyHFN53ky3wVsDkiMdVqylqRt+Zc+jm5qw7/qyOvN2dHSYtX0e4MbCCExSvnA== + dependencies: + mdn-data "2.0.6" + source-map "^0.6.1" + +css-what@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/css-what/-/css-what-3.2.1.tgz#f4a8f12421064621b456755e34a03a2c22df5da1" + integrity sha512-WwOrosiQTvyms+Ti5ZC5vGEK0Vod3FTt1ca+payZqvKuGJF+dq7bG63DstxtN0dpm6FxY27a/zS3Wten+gEtGw== + +cssom@^0.4.1: + version "0.4.4" + resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.4.4.tgz#5a66cf93d2d0b661d80bf6a44fb65f5c2e4e0a10" + integrity sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw== + +cssom@~0.3.6: + version "0.3.8" + resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.8.tgz#9f1276f5b2b463f2114d3f2c75250af8c1a36f4a" + integrity sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg== + +cssstyle@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-2.2.0.tgz#e4c44debccd6b7911ed617a4395e5754bba59992" + integrity sha512-sEb3XFPx3jNnCAMtqrXPDeSgQr+jojtCeNf8cvMNMh1cG970+lljssvQDzPq6lmmJu2Vhqood/gtEomBiHOGnA== + dependencies: + cssom "~0.3.6" + csstype@^2.2.0: - version "2.6.9" - resolved "https://registry.yarnpkg.com/csstype/-/csstype-2.6.9.tgz#05141d0cd557a56b8891394c1911c40c8a98d098" - integrity sha512-xz39Sb4+OaTsULgUERcCk+TJj8ylkL4aSVDQiX/ksxbELSqwkgt4d4RD7fovIdgJGSuNYqwZEiVjYY5l0ask+Q== + version "2.6.10" + resolved "https://registry.yarnpkg.com/csstype/-/csstype-2.6.10.tgz#e63af50e66d7c266edb6b32909cfd0aabe03928b" + integrity sha512-D34BqZU4cIlMCY93rZHbrq9pjTAQJ3U8S8rfBqjwHxkGPThWFjzZDQpgMJY0QViLxth6ZKYiwFBo14RdN44U/w== 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== + version "1.0.6" + resolved "https://registry.yarnpkg.com/damerau-levenshtein/-/damerau-levenshtein-1.0.6.tgz#143c1641cb3d85c60c32329e26899adea8701791" + integrity sha512-JVrozIeElnj3QzfUIt8tB8YMluBJom4Vw9qTPpjGYQ9fYlB3D/rb6OordUxf3xeFB35LKWs0xqcO5U6ySvBtug== dashdash@^1.12.0: version "1.14.1" @@ -2173,10 +2742,19 @@ dashdash@^1.12.0: dependencies: assert-plus "^1.0.0" +data-urls@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-1.1.0.tgz#15ee0582baa5e22bb59c77140da8f9c76963bbfe" + integrity sha512-YTWYI9se1P55u58gL5GkQHW4P6VJBJ5iBT+B5a7i2Tjadhv52paJG0qHX4A0OR6/t52odI64KP2YvFpkDOi3eQ== + dependencies: + abab "^2.0.0" + whatwg-mimetype "^2.2.0" + whatwg-url "^7.0.0" + dayjs@^1.8.15: - version "1.8.16" - resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.8.16.tgz#2a3771de537255191b947957af2fd90012e71e64" - integrity sha512-XPmqzWz/EJiaRHjBqSJ2s6hE/BUoCIHKgdS2QPtTQtKcS9E4/Qn0WomoH1lXanWCzri+g7zPcuNV4aTZ8PMORQ== + version "1.8.25" + resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.8.25.tgz#d09a8696cee7191bc1289e739f96626391b9c73c" + integrity sha512-Pk36juDfQQGDCgr0Lqd1kw15w3OS6xt21JaLPE3lCfsEf8KrERGwDNwvK1tRjrjqFC0uZBJncT4smZQ4F+uV5g== debounce@^1.2.0: version "1.2.0" @@ -2190,13 +2768,6 @@ debug@2.6.9, debug@^2.2.0, debug@^2.3.3: dependencies: ms "2.0.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" @@ -2221,16 +2792,21 @@ decompress-response@^3.3.0: 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== +deep-is@~0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" + integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ= deepmerge@^3.2.0: version "3.3.0" resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-3.3.0.tgz#d3c47fd6f3a93d517b14426b0628a17b0125f5f7" integrity sha512-GRQOafGHwMHpjPx9iCvTgpu9NojZ49q794EEL94JVEw6VaeA8XTUyBKvAkOOjBX9oJNiV6G3P+T+tihFjo2TqA== +deepmerge@^4.2.2: + version "4.2.2" + resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955" + integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg== + 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" @@ -2279,11 +2855,6 @@ delayed-stream@~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" @@ -2294,25 +2865,95 @@ depd@~1.1.2: resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= +depd@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" + integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== + +des.js@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.1.tgz#5382142e1bdc53f85d86d53e5f4aa7deb91e0843" + integrity sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA== + dependencies: + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + 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-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@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-3.1.0.tgz#576f5dfc63ae1a192ff192d8ad3af6308991b651" + integrity sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA== + +didyoumean@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/didyoumean/-/didyoumean-1.2.1.tgz#e92edfdada6537d484d73c0172fd1eba0c4976ff" + integrity sha1-6S7f2tplN9SE1zwBcv0eugxJdv8= + +diff-sequences@^25.2.6: + version "25.2.6" + resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-25.2.6.tgz#5f467c00edd35352b7bca46d7927d60e687a76dd" + integrity sha512-Hq8o7+6GaZeoFjtpgvRBUknSXNeJiCx7V9Fr94ZMljNiCr9n9L8H8aJqgWOQiDDGdyn29fRNcDdRVJ5fdyihfg== + +diffie-hellman@^5.0.0: + version "5.0.3" + resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875" + integrity sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg== + dependencies: + bn.js "^4.1.0" + miller-rabin "^4.0.0" + randombytes "^2.0.0" dijkstrajs@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/dijkstrajs/-/dijkstrajs-1.0.1.tgz#d3cd81221e3ea40742cfcde556d4e99e98ddc71b" integrity sha1-082BIh4+pAdCz83lVtTpnpjdxxs= +dom-serializer@0: + version "0.2.2" + resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.2.2.tgz#1afb81f533717175d478655debc5e332d9f9bb51" + integrity sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g== + dependencies: + domelementtype "^2.0.1" + entities "^2.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= + version "0.1.2" + resolved "https://registry.yarnpkg.com/dom-walk/-/dom-walk-0.1.2.tgz#0c548bef048f4d1f2a97249002236060daa3fd84" + integrity sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w== + +domain-browser@^1.1.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda" + integrity sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA== + +domelementtype@1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.1.tgz#d048c44b37b0d10a7f2a3d5fee3f4333d790481f" + integrity sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w== + +domelementtype@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.0.1.tgz#1f8bdfe91f5a78063274e803b4bdcedf6e94f94d" + integrity sha512-5HOHUDsYZWV8FGWN0Njbr/Rn7f/eWSQi1v7+HsUVwXgn8nWWlL64zKDkS0n8ZmQ3mlWOMuXOnR+7Nx/5tMO5AQ== + +domexception@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/domexception/-/domexception-1.0.1.tgz#937442644ca6a31261ef36e3ec677fe805582c90" + integrity sha512-raigMkn7CJNNo6Ihro1fzG7wr3fHuYVytzquZKX5n0yizGsTcYgzdIUwj1X9pK0VvjeihV+XiclP+DjwbsSKug== + dependencies: + webidl-conversions "^4.0.2" + +domutils@^1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.7.0.tgz#56ea341e834e06e6748af7a1cb25da67ea9f8c2a" + integrity sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg== + dependencies: + dom-serializer "0" + domelementtype "1" ecc-jsbn@~0.1.1: version "0.1.2" @@ -2328,14 +2969,14 @@ ee-first@1.1.1: integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= electron-to-chromium@^1.3.413: - version "1.3.421" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.421.tgz#4abfe7e49070b5b437ec2ce442543add8eb66800" - integrity sha512-ogxgmvHGfDuLA+GtgfK0jkFWlBb4MCZK2U1MM+l98sf4U3Ixtrfw1iC9w4mQqNvo+lHgM4pR62TqoT4QrvKJCw== + version "1.3.414" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.414.tgz#9d0a92defefda7cc1cf8895058b892795ddd6b41" + integrity sha512-UfxhIvED++qLwWrAq9uYVcqF8FdeV9sU2S7qhiHYFODxzXRrd1GZRl/PjITHsTEejgibcWDraD8TQqoHb1aCBQ== -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== +elliptic@^6.0.0, elliptic@^6.4.0: + version "6.5.2" + resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.2.tgz#05c5678d7173c049d8ca433552224a495d0e3762" + integrity sha512-f4x70okzZbIQl/NSRLkI/+tteV/9WqL98zx+SQ69KbXxmVrmjwsNUPn/gYJJ0sHvEak24cZgHIPegRePAtA/xw== dependencies: bn.js "^4.4.0" brorand "^1.0.1" @@ -2355,6 +2996,11 @@ emoji-regex@^7.0.1: resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== +emoji-regex@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" + integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== + emojilib@^2.4.0: version "2.4.0" resolved "https://registry.yarnpkg.com/emojilib/-/emojilib-2.4.0.tgz#ac518a8bb0d5f76dda57289ccb2fdf9d39ae721e" @@ -2379,10 +3025,15 @@ end-of-stream@^1.1.0: dependencies: once "^1.4.0" +entities@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/entities/-/entities-2.0.0.tgz#68d6084cab1b079767540d80e56a39b423e4abf4" + integrity sha512-D9f7V0JSRwIxlRI2mjMqufDrRDnx8p+eEOz7aUM9SuvF8gsBzra0/6tbjl1m8eQHrZlYj6PxqE00hZ1SAIKPLw== + envinfo@^7.1.0: - version "7.4.0" - resolved "https://registry.yarnpkg.com/envinfo/-/envinfo-7.4.0.tgz#bef4ece9e717423aaf0c3584651430b735ad6630" - integrity sha512-FdDfnWnCVjxTTpWE3d6Jgh5JDIA3Cw7LCgpM/pI7kK1ORkjaqI2r6NqQ+ln2j0dfpgxY00AWieSvtkiZQKIItA== + version "7.5.0" + resolved "https://registry.yarnpkg.com/envinfo/-/envinfo-7.5.0.tgz#91410bb6db262fb4f1409bd506e9ff57e91023f4" + integrity sha512-jDgnJaF/Btomk+m3PZDTTCb5XIIIX3zYItnCRfF73zVgvinLoRomuhi75Y4su0PtQxWz4v66XnLLckyvyJTOIQ== error-ex@^1.2.0, error-ex@^1.3.1: version "1.3.2" @@ -2399,26 +3050,27 @@ errorhandler@^1.5.0: accepts "~1.3.7" escape-html "~1.0.3" -es-abstract@^1.13.0, es-abstract@^1.7.0: - version "1.15.0" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.15.0.tgz#8884928ec7e40a79e3c9bc812d37d10c8b24cc57" - integrity sha512-bhkEqWJ2t2lMeaJDuk7okMkJWI/yqgH/EoGwpcvv0XW9RWQsRspI4wt6xuyuvMvvQE3gg/D9HXppgk21w78GyQ== +es-abstract@^1.17.0, es-abstract@^1.17.5: + version "1.17.5" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.17.5.tgz#d8c9d1d66c8981fb9200e2251d799eee92774ae9" + integrity sha512-BR9auzDbySxOcfog0tLECW8l28eRGpDpU3Dm3Hp4q/N+VtLTmyj4EUN088XZWQDW/hzj6sYRDXeOFsaAODKvpg== dependencies: - es-to-primitive "^1.2.0" + es-to-primitive "^1.2.1" 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" + has-symbols "^1.0.1" + is-callable "^1.1.5" + is-regex "^1.0.5" + object-inspect "^1.7.0" object-keys "^1.1.1" - string.prototype.trimleft "^2.1.0" - string.prototype.trimright "^2.1.0" + object.assign "^4.1.0" + string.prototype.trimleft "^2.1.1" + string.prototype.trimright "^2.1.1" -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== +es-to-primitive@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" + integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== dependencies: is-callable "^1.1.4" is-date-object "^1.0.1" @@ -2444,6 +3096,18 @@ escape-string-regexp@^1.0.5: resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= +escodegen@^1.11.1: + version "1.14.1" + resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.14.1.tgz#ba01d0c8278b5e95a9a45350142026659027a457" + integrity sha512-Bmt7NcRySdIfNPfU2ZoXDrrXsG9ZjvDxcAlMfDUgRBjLOWTuIACXPBFJH7Z+cLb40JeQco5toikyc9t9P8E9SQ== + dependencies: + esprima "^4.0.1" + estraverse "^4.2.0" + esutils "^2.0.2" + optionator "^0.8.1" + optionalDependencies: + source-map "~0.6.1" + 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" @@ -2457,11 +3121,16 @@ eslint-plugin-jsx-a11y@5.1.1: emoji-regex "^6.1.0" jsx-ast-utils "^1.4.0" -esprima@^4.0.0: +esprima@^4.0.0, esprima@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== +estraverse@^4.2.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" + integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== + esutils@^2.0.0, esutils@^2.0.2: version "2.0.3" resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" @@ -2488,6 +3157,13 @@ eth-phishing-detect@^1.1.13: dependencies: fast-levenshtein "^2.0.6" +ethereum-bloom-filters@^1.0.6: + version "1.0.7" + resolved "https://registry.yarnpkg.com/ethereum-bloom-filters/-/ethereum-bloom-filters-1.0.7.tgz#b7b80735e385dbb7f944ce6b4533e24511306060" + integrity sha512-cDcJJSJ9GMAcURiAWO3DxIEhTL/uWqlQnvgKpuYQzYPrt/izuGU+1ntQmHt0IRq6ADoSYHFnB+aCEFIldjhkMQ== + 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" @@ -2511,10 +3187,18 @@ events@^3.0.0: resolved "https://registry.yarnpkg.com/events/-/events-3.1.0.tgz#84279af1b34cb75aa88bf5ff291f6d0bd9b31a59" integrity sha512-Rv+u8MLHNOdMjTAFeT3nCjHn2aGlx435FP/sDHNaRhDEMwyI/aB22Kj2qIN8R0cw3z28psEQLYwxVKLsKrMgWg== +evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" + integrity sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA== + dependencies: + md5.js "^1.3.4" + safe-buffer "^5.1.1" + exec-sh@^0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/exec-sh/-/exec-sh-0.3.2.tgz#6738de2eb7c8e671d0366aea0b0db8c6f7d7391b" - integrity sha512-9sLAvzhI5nc8TpuQUh4ahMdCrWT00wPWz7j47/emR5+2qEfoZP5zzUXvx+vdx+H6ohhnsYC31iX04QLYJK8zTg== + version "0.3.4" + resolved "https://registry.yarnpkg.com/exec-sh/-/exec-sh-0.3.4.tgz#3a018ceb526cc6f6df2bb504b2bfe8e3a4934ec5" + integrity sha512-sEFIkc61v75sWeOe72qyrqg2Qg0OuLESziUDk/O/z2qgS15y2gWVFrI6f2Qn/qw/0/NCfCEsmNA4zOjkwEZT1A== execa@^0.7.0: version "0.7.0" @@ -2542,6 +3226,27 @@ execa@^1.0.0: signal-exit "^3.0.0" strip-eof "^1.0.0" +execa@^3.2.0: + version "3.4.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-3.4.0.tgz#c08ed4550ef65d858fac269ffc8572446f37eb89" + integrity sha512-r9vdGQk4bmCuK1yKQu1KTwcT2zwfWdbdaXfCtAh+5nU/4fSX+JAb7vZGvI5naJrQlvONrEB20jeruESI69530g== + dependencies: + cross-spawn "^7.0.0" + get-stream "^5.0.0" + human-signals "^1.1.1" + is-stream "^2.0.0" + merge-stream "^2.0.0" + npm-run-path "^4.0.0" + onetime "^5.1.0" + p-finally "^2.0.0" + signal-exit "^3.0.2" + strip-final-newline "^2.0.0" + +exit@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" + integrity sha1-BjJjj42HfMghB9MKD/8aF8uhzQw= + expand-brackets@^2.1.4: version "2.1.4" resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" @@ -2555,6 +3260,18 @@ expand-brackets@^2.1.4: snapdragon "^0.8.1" to-regex "^3.0.1" +expect@^25.4.0: + version "25.4.0" + resolved "https://registry.yarnpkg.com/expect/-/expect-25.4.0.tgz#0b16c17401906d1679d173e59f0d4580b22f8dc8" + integrity sha512-7BDIX99BTi12/sNGJXA9KMRcby4iAmu1xccBOhyKCyEhjcVKS3hPmHdA/4nSI9QGIOkUropKqr3vv7WMDM5lvQ== + dependencies: + "@jest/types" "^25.4.0" + ansi-styles "^4.0.0" + jest-get-type "^25.2.6" + jest-matcher-utils "^25.4.0" + jest-message-util "^25.4.0" + jest-regex-util "^25.2.6" + extend-shallow@^1.1.2: version "1.1.4" resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-1.1.4.tgz#19d6bf94dfc09d76ba711f39b872d21ff4dd9071" @@ -2625,27 +3342,27 @@ fancy-log@^1.3.2: 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-deep-equal@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz#545145077c501491e33b15ec408c294376e94ae4" + integrity sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA== 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= + version "2.1.0" + resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" + integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== -fast-levenshtein@^2.0.6: +fast-levenshtein@^2.0.6, 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= + version "2.0.1" + resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.1.tgz#fc84fb39d2709cf3ff6d743706157bb5708a8a85" + integrity sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg== dependencies: - bser "^2.0.0" + bser "2.1.1" fbjs-css-vars@^1.0.0: version "1.0.2" @@ -2702,6 +3419,11 @@ figures@^2.0.0: dependencies: escape-string-regexp "^1.0.5" +file-uri-to-path@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd" + integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw== + fill-range@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" @@ -2712,6 +3434,13 @@ fill-range@^4.0.0: repeat-string "^1.6.1" to-regex-range "^2.1.0" +fill-range@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" + integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== + dependencies: + to-regex-range "^5.0.1" + finalhandler@1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d" @@ -2757,7 +3486,7 @@ find-up@^3.0.0: dependencies: locate-path "^3.0.0" -find-up@^4.1.0: +find-up@^4.0.0, find-up@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== @@ -2765,13 +3494,6 @@ find-up@^4.1.0: locate-path "^5.0.0" path-exists "^4.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.2: version "1.0.2" resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" @@ -2842,12 +3564,17 @@ fs.realpath@^1.0.0: integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= fsevents@^1.2.7: - version "1.2.9" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.9.tgz#3f5ed66583ccd6f400b5a00db6f7e861363e388f" - integrity sha512-oeyj2H3EjjonWcFjD5NvZNE9Rqe4UW+nQBU2HNeKw0koVLEFIhtyETyAakeAM3de7Z/SW5kcA+fZUait9EApnw== + version "1.2.12" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.12.tgz#db7e0d8ec3b0b45724fd4d83d43554a8f1f0de5c" + integrity sha512-Ggd/Ktt7E7I8pxZRbGIs7vwqAPscSESMrCSkx2FtWeqmheJgCo2R74fTsZFCifr0VTPwqRpPv17+6b8Zp7th0Q== dependencies: + bindings "^1.5.0" nan "^2.12.1" - node-pre-gyp "^0.12.0" + +fsevents@^2.1.2: + version "2.1.3" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.1.3.tgz#fb738703ae8d2f9fe900c33836ddebee8b97f23e" + integrity sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ== function-bind@^1.1.1: version "1.1.1" @@ -2859,19 +3586,10 @@ functional-red-black-tree@^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@~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" +gensync@^1.0.0-beta.1: + version "1.0.0-beta.1" + resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.1.tgz#58f4361ff987e5ff6e1e7a210827aa371eaac269" + integrity sha512-r8EC6NO1sngH/zdD9fiRDLdcgnbayXah+mLgManTaIZJqEC1MZstmnox8KpnI2/fxQwrp5OpCOYWLp4rBl4Jcg== get-caller-file@^1.0.1: version "1.0.3" @@ -2895,6 +3613,13 @@ get-stream@^4.0.0: dependencies: pump "^3.0.0" +get-stream@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.1.0.tgz#01203cdc92597f9b909067c3e656cc1f4d3c4dc9" + integrity sha512-EXr1FOzrzTfGeL0gQdeFEvOMm2mzMOglyiOXSTpPC+iAjAKftbr3jpCMWynogwYnM+eSj9sHGc6wjIcDvYiygw== + 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" @@ -2907,10 +3632,10 @@ getpass@^0.1.1: dependencies: assert-plus "^1.0.0" -glob@^7.1.1, glob@^7.1.3: - version "7.1.4" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.4.tgz#aa608a2f6c577ad357e1ae5a5c26d9a8d1969255" - integrity sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A== +glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4: + version "7.1.6" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" + integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== dependencies: fs.realpath "^1.0.0" inflight "^1.0.4" @@ -2932,38 +3657,22 @@ globals@^11.1.0: resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== -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== - -"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== +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, graceful-fs@^4.2.3: + version "4.2.3" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.3.tgz#4a12ff1b60376ef09862c2093edd908328be8423" + integrity sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ== 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= -handlebars@^4.1.2: - version "4.4.2" - resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.4.2.tgz#8810a9821a9d6d52cb2f57d326d6ce7c3dfe741d" - integrity sha512-cIv17+GhL8pHHnRJzGu2wwcthL5sb8uDKBHvZ2Dtu5s1YNt0ljbzKbamnc+gr69y7bzwQiBdr5+hOpRd5pnOdg== - 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: +har-validator@~5.1.3: version "5.1.3" resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.3.tgz#1ef89ebd3e4996557675eed9893110dc350fa080" integrity sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g== @@ -2976,16 +3685,16 @@ has-flag@^3.0.0: resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= -has-symbols@^1.0.0: +has-flag@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" + integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== + +has-symbols@^1.0.0, has-symbols@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.1.tgz#9f5214758a44196c406d9bd76cebf81ec2dd31e8" integrity sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg== -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" @@ -3017,13 +3726,21 @@ has-values@^1.0.0: is-number "^3.0.0" kind-of "^4.0.0" -has@^1.0.1, has@^1.0.3: +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-base@^3.0.0: + version "3.0.4" + resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.0.4.tgz#5fc8686847ecd73499403319a6b0a3f3f6ae4918" + integrity sha1-X8hoaEfs1zSZQDMZprCj8/auSRg= + dependencies: + inherits "^2.0.1" + safe-buffer "^5.0.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" @@ -3069,9 +3786,21 @@ home-or-tmp@^3.0.0: integrity sha1-V6j+JM8zzdUkhgoVgh3cJchmcfs= 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== + version "2.8.8" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.8.tgz#7539bd4bc1e0e0a895815a2e0262420b12858488" + integrity sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg== + +html-encoding-sniffer@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz#e70d84b94da53aa375e11fe3a351be6642ca46f8" + integrity sha512-71lZziiDnsuabfdYiUeWdCVyKuqwWi23L8YeIgV9jSSZHCtb6wB1BKWooH7L3tn4/FuZJMVWyNaIDr4RGmaSYw== + dependencies: + whatwg-encoding "^1.0.1" + +html-escaper@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453" + integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg== http-errors@~1.7.2: version "1.7.3" @@ -3093,12 +3822,22 @@ http-signature@~1.2.0: jsprim "^1.2.2" sshpk "^1.7.0" -i18n-js@^3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/i18n-js/-/i18n-js-3.3.0.tgz#05512f7184b5117c087ab597be649720a834c068" - integrity sha512-+m8jh84IIWlFwEJgwrWCkeIwIES9ilJKBOj5qx8ZTLLmlPz7bjKnCdxf254wRf6M4pkQHtgXGT9r9lGk0e9aug== +https-browserify@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" + integrity sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM= -iconv-lite@^0.4.17, iconv-lite@^0.4.4, iconv-lite@~0.4.13: +human-signals@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-1.1.1.tgz#c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3" + integrity sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw== + +i18n-js@^3.3.0: + version "3.5.1" + resolved "https://registry.yarnpkg.com/i18n-js/-/i18n-js-3.5.1.tgz#9787450894059bec1af791123231e59898eb97c1" + integrity sha512-nJgbE5Vj9qzOQfjdVd/uoMoO8ppVaB/3LB6KOmMfD8IQ1vNNh307iHyQLK8ZnLYWkAszfPvVpYmUt1Le/RuHMQ== + +iconv-lite@0.4.24, iconv-lite@^0.4.17, 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== @@ -3110,13 +3849,6 @@ ieee754@^1.1.4: 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.2" - resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.2.tgz#99d83a246c196ea5c93ef9315ad7b0819c35069b" - integrity sha512-EXyErtpHbn75ZTsOADsfx6J/FPo6/5cjev46PXrcTpd8z3BoRkXgYu9/JVqrI7tusjmwCZutGeRJeU0Wo1e4Cw== - dependencies: - minimatch "^3.0.4" - image-size@^0.6.0: version "0.6.3" resolved "https://registry.yarnpkg.com/image-size/-/image-size-0.6.3.tgz#e7e5c65bb534bd7cdcedd6cb5166272a85f75fb2" @@ -3130,6 +3862,14 @@ import-fresh@^2.0.0: caller-path "^2.0.0" resolve-from "^3.0.0" +import-local@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.0.2.tgz#a8cfd0431d1de4a2199703d003e3e62364fa6db6" + integrity sha512-vjL3+w0oulAVZ0hBHnxa/Nm5TAurf9YLQJDhqRZyqb+VKGOB6LU8t9H1Nr5CIo16vh9XfJTOoHwU0B71S557gA== + dependencies: + pkg-dir "^4.2.0" + resolve-cwd "^3.0.0" + imurmurhash@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" @@ -3143,15 +3883,20 @@ inflight@^1.0.4: once "^1.3.0" wrappy "1" -inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.3: +inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.1, 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== -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== +inherits@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1" + integrity sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE= + +inherits@2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" + integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= inquirer@^3.0.6: version "3.3.0" @@ -3190,6 +3935,11 @@ invert-kv@^2.0.0: resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-2.0.0.tgz#7393f5afa59ec9ff5f67a27620d11c226e3eec02" integrity sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA== +ip-regex@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-2.1.0.tgz#fa78bf5d2e6913c911ce9f819ee5146bb6d844e9" + integrity sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk= + 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" @@ -3219,10 +3969,10 @@ is-buffer@^1.1.5: 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-callable@^1.1.4, is-callable@^1.1.5: + version "1.1.5" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.5.tgz#f7e46b596890456db74e7f6e976cb3273d06faab" + integrity sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q== is-ci@^2.0.0: version "2.0.0" @@ -3246,9 +3996,9 @@ is-data-descriptor@^1.0.0: 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= + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.2.tgz#bda736f2cd8fd06d32844e7743bfa7494c3bfd7e" + integrity sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g== is-descriptor@^0.1.0: version "0.1.6" @@ -3297,11 +4047,21 @@ is-fullwidth-code-point@^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-fullwidth-code-point@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" + integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== + 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-generator-fn@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-2.1.0.tgz#7d140adc389aaf3011a8f2a2a4cfa6faadffb118" + integrity sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ== + 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" @@ -3314,6 +4074,11 @@ is-number@^3.0.0: dependencies: kind-of "^3.0.2" +is-number@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" + integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== + 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" @@ -3326,26 +4091,36 @@ is-promise@^2.1.0: resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa" integrity sha1-eaKp7OfwlugPNtKy87wWwf9L8/o= -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= +is-regex@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.5.tgz#39d589a358bf18967f726967120b8fc1aed74eae" + integrity sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ== dependencies: - has "^1.0.1" + has "^1.0.3" 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-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.0.tgz#bde9c32680d6fae04129d6ac9d921ce7815f78e3" + integrity sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw== -is-typedarray@~1.0.0: +is-string@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.5.tgz#40493ed198ef3ff477b8c7f92f644ec82a5cd3a6" + integrity sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ== + +is-symbol@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.3.tgz#38e1014b9e6329be0de9d24a414fd7441ec61937" + integrity sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ== + dependencies: + has-symbols "^1.0.1" + +is-typedarray@^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= @@ -3360,7 +4135,12 @@ is-wsl@^1.1.0: resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d" integrity sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0= -isarray@1.0.0, isarray@~1.0.0: +is-wsl@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.1.1.tgz#4a1c152d429df3d441669498e2486d3596ebaf1d" + integrity sha512-umZHcSrwlDHo2TGMXv0DZ8dIUGunZ2Iv68YZnrmCiBPkZ4aaOhtv7pXJKeki9k3qJ3RJr0cDyitcl5wEH3AYog== + +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= @@ -3405,6 +4185,11 @@ istanbul-lib-coverage@^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-coverage@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz#f5944a37c70b550b02a78a5c3b2055b280cec8ec" + integrity sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg== + 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" @@ -3425,6 +4210,19 @@ istanbul-lib-instrument@^3.3.0: istanbul-lib-coverage "^2.0.5" semver "^6.0.0" +istanbul-lib-instrument@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.1.tgz#61f13ac2c96cfefb076fe7131156cc05907874e6" + integrity sha512-imIchxnodll7pvQBYOqUu88EufLCU56LMeFPZZM/fJZ1irYcYdqroaV+ACK1Ila8ls09iEYArp+nqyC6lW1Vfg== + dependencies: + "@babel/core" "^7.7.5" + "@babel/parser" "^7.7.5" + "@babel/template" "^7.7.4" + "@babel/traverse" "^7.7.4" + "@istanbuljs/schema" "^0.1.2" + istanbul-lib-coverage "^3.0.0" + semver "^6.3.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" @@ -3434,6 +4232,15 @@ istanbul-lib-report@^2.0.8: make-dir "^2.1.0" supports-color "^6.1.0" +istanbul-lib-report@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#7518fe52ea44de372f460a76b5ecda9ffb73d8a6" + integrity sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw== + dependencies: + istanbul-lib-coverage "^3.0.0" + make-dir "^3.0.0" + supports-color "^7.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" @@ -3445,18 +4252,144 @@ istanbul-lib-source-maps@^3.0.6: 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== +istanbul-lib-source-maps@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.0.tgz#75743ce6d96bb86dc7ee4352cf6366a23f0b1ad9" + integrity sha512-c16LpFRkR8vQXyHZ5nLpY35JZtzj1PQY1iZmesUbf1FZHbIupcWfjgOXBY9YHkLEQ6puz1u4Dgj6qmU/DisrZg== dependencies: - handlebars "^4.1.2" + debug "^4.1.1" + istanbul-lib-coverage "^3.0.0" + source-map "^0.6.1" + +istanbul-reports@^2.2.4: + version "2.2.7" + resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-2.2.7.tgz#5d939f6237d7b48393cc0959eab40cd4fd056931" + integrity sha512-uu1F/L1o5Y6LzPVSVZXNOoD/KXpJue9aeLRd0sM9uMXfZvzomB0WxVamWb5ue8kA2vVWEmW7EG+A5n3f1kqHKg== + dependencies: + html-escaper "^2.0.0" + +istanbul-reports@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.0.2.tgz#d593210e5000683750cb09fc0644e4b6e27fd53b" + integrity sha512-9tZvz7AiR3PEDNGiV9vIouQ/EAcqMXFmkcA1CDFTwOB98OZVDL0PH9glHotf5Ugp6GCOTypfzGWI/OqjWNCRUw== + dependencies: + html-escaper "^2.0.0" + istanbul-lib-report "^3.0.0" + +jest-changed-files@^25.4.0: + version "25.4.0" + resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-25.4.0.tgz#e573db32c2fd47d2b90357ea2eda0622c5c5cbd6" + integrity sha512-VR/rfJsEs4BVMkwOTuStRyS630fidFVekdw/lBaBQjx9KK3VZFOZ2c0fsom2fRp8pMCrCTP6LGna00o/DXGlqA== + dependencies: + "@jest/types" "^25.4.0" + execa "^3.2.0" + throat "^5.0.0" + +jest-cli@^25.4.0: + version "25.4.0" + resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-25.4.0.tgz#5dac8be0fece6ce39f0d671395a61d1357322bab" + integrity sha512-usyrj1lzCJZMRN1r3QEdnn8e6E6yCx/QN7+B1sLoA68V7f3WlsxSSQfy0+BAwRiF4Hz2eHauf11GZG3PIfWTXQ== + dependencies: + "@jest/core" "^25.4.0" + "@jest/test-result" "^25.4.0" + "@jest/types" "^25.4.0" + chalk "^3.0.0" + exit "^0.1.2" + import-local "^3.0.2" + is-ci "^2.0.0" + jest-config "^25.4.0" + jest-util "^25.4.0" + jest-validate "^25.4.0" + prompts "^2.0.1" + realpath-native "^2.0.0" + yargs "^15.3.1" + +jest-config@^25.4.0: + version "25.4.0" + resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-25.4.0.tgz#56e5df3679a96ff132114b44fb147389c8c0a774" + integrity sha512-egT9aKYxMyMSQV1aqTgam0SkI5/I2P9qrKexN5r2uuM2+68ypnc+zPGmfUxK7p1UhE7dYH9SLBS7yb+TtmT1AA== + dependencies: + "@babel/core" "^7.1.0" + "@jest/test-sequencer" "^25.4.0" + "@jest/types" "^25.4.0" + babel-jest "^25.4.0" + chalk "^3.0.0" + deepmerge "^4.2.2" + glob "^7.1.1" + jest-environment-jsdom "^25.4.0" + jest-environment-node "^25.4.0" + jest-get-type "^25.2.6" + jest-jasmine2 "^25.4.0" + jest-regex-util "^25.2.6" + jest-resolve "^25.4.0" + jest-util "^25.4.0" + jest-validate "^25.4.0" + micromatch "^4.0.2" + pretty-format "^25.4.0" + realpath-native "^2.0.0" + +jest-diff@^25.4.0: + version "25.4.0" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-25.4.0.tgz#260b70f19a46c283adcad7f081cae71eb784a634" + integrity sha512-kklLbJVXW0y8UKOWOdYhI6TH5MG6QAxrWiBMgQaPIuhj3dNFGirKCd+/xfplBXICQ7fI+3QcqHm9p9lWu1N6ug== + dependencies: + chalk "^3.0.0" + diff-sequences "^25.2.6" + jest-get-type "^25.2.6" + pretty-format "^25.4.0" + +jest-docblock@^25.3.0: + version "25.3.0" + resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-25.3.0.tgz#8b777a27e3477cd77a168c05290c471a575623ef" + integrity sha512-aktF0kCar8+zxRHxQZwxMy70stc9R1mOmrLsT5VO3pIT0uzGRSDAXxSlz4NqQWpuLjPpuMhPRl7H+5FRsvIQAg== + dependencies: + detect-newline "^3.0.0" + +jest-each@^25.4.0: + version "25.4.0" + resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-25.4.0.tgz#ad4e46164764e8e77058f169a0076a7f86f6b7d4" + integrity sha512-lwRIJ8/vQU/6vq3nnSSUw1Y3nz5tkYSFIywGCZpUBd6WcRgpn8NmJoQICojbpZmsJOJNHm0BKdyuJ6Xdx+eDQQ== + dependencies: + "@jest/types" "^25.4.0" + chalk "^3.0.0" + jest-get-type "^25.2.6" + jest-util "^25.4.0" + pretty-format "^25.4.0" + +jest-environment-jsdom@^25.4.0: + version "25.4.0" + resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-25.4.0.tgz#bbfc7f85bb6ade99089062a830c79cb454565cf0" + integrity sha512-KTitVGMDrn2+pt7aZ8/yUTuS333w3pWt1Mf88vMntw7ZSBNDkRS6/4XLbFpWXYfWfp1FjcjQTOKzbK20oIehWQ== + dependencies: + "@jest/environment" "^25.4.0" + "@jest/fake-timers" "^25.4.0" + "@jest/types" "^25.4.0" + jest-mock "^25.4.0" + jest-util "^25.4.0" + jsdom "^15.2.1" + +jest-environment-node@^25.4.0: + version "25.4.0" + resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-25.4.0.tgz#188aef01ae6418e001c03fdd1c299961e1439082" + integrity sha512-wryZ18vsxEAKFH7Z74zi/y/SyI1j6UkVZ6QsllBuT/bWlahNfQjLNwFsgh/5u7O957dYFoXj4yfma4n4X6kU9A== + dependencies: + "@jest/environment" "^25.4.0" + "@jest/fake-timers" "^25.4.0" + "@jest/types" "^25.4.0" + jest-mock "^25.4.0" + jest-util "^25.4.0" + semver "^6.3.0" jest-get-type@^24.9.0: version "24.9.0" resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-24.9.0.tgz#1684a0c8a50f2e4901b6644ae861f579eed2ef0e" integrity sha512-lUseMzAley4LhIcpSP9Jf+fTrQ4a1yHQwLNeeVa2cEmbCGeoZAtYPOIv8JaxLD/sUpKxetKGP+gsHl8f8TSj8Q== +jest-get-type@^25.2.6: + version "25.2.6" + resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-25.2.6.tgz#0b0a32fab8908b44d508be81681487dbabb8d877" + integrity sha512-DxjtyzOHjObRM+sM1knti6or+eOgcGU4xVSb2HNP1TqO4ahsT+rqZg+nyqHWJSvWgKC5cG3QjGFBqxLghiF/Ig== + jest-haste-map@^24.7.1: version "24.9.0" resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-24.9.0.tgz#b38a5d64274934e21fa417ae9a9fbeb77ceaac7d" @@ -3476,6 +4409,66 @@ jest-haste-map@^24.7.1: optionalDependencies: fsevents "^1.2.7" +jest-haste-map@^25.4.0: + version "25.4.0" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-25.4.0.tgz#da7c309dd7071e0a80c953ba10a0ec397efb1ae2" + integrity sha512-5EoCe1gXfGC7jmXbKzqxESrgRcaO3SzWXGCnvp9BcT0CFMyrB1Q6LIsjl9RmvmJGQgW297TCfrdgiy574Rl9HQ== + dependencies: + "@jest/types" "^25.4.0" + anymatch "^3.0.3" + fb-watchman "^2.0.0" + graceful-fs "^4.2.3" + jest-serializer "^25.2.6" + jest-util "^25.4.0" + jest-worker "^25.4.0" + micromatch "^4.0.2" + sane "^4.0.3" + walker "^1.0.7" + which "^2.0.2" + optionalDependencies: + fsevents "^2.1.2" + +jest-jasmine2@^25.4.0: + version "25.4.0" + resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-25.4.0.tgz#3d3d19514022e2326e836c2b66d68b4cb63c5861" + integrity sha512-QccxnozujVKYNEhMQ1vREiz859fPN/XklOzfQjm2j9IGytAkUbSwjFRBtQbHaNZ88cItMpw02JnHGsIdfdpwxQ== + dependencies: + "@babel/traverse" "^7.1.0" + "@jest/environment" "^25.4.0" + "@jest/source-map" "^25.2.6" + "@jest/test-result" "^25.4.0" + "@jest/types" "^25.4.0" + chalk "^3.0.0" + co "^4.6.0" + expect "^25.4.0" + is-generator-fn "^2.0.0" + jest-each "^25.4.0" + jest-matcher-utils "^25.4.0" + jest-message-util "^25.4.0" + jest-runtime "^25.4.0" + jest-snapshot "^25.4.0" + jest-util "^25.4.0" + pretty-format "^25.4.0" + throat "^5.0.0" + +jest-leak-detector@^25.4.0: + version "25.4.0" + resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-25.4.0.tgz#cf94a160c78e53d810e7b2f40b5fd7ee263375b3" + integrity sha512-7Y6Bqfv2xWsB+7w44dvZuLs5SQ//fzhETgOGG7Gq3TTGFdYvAgXGwV8z159RFZ6fXiCPm/szQ90CyfVos9JIFQ== + dependencies: + jest-get-type "^25.2.6" + pretty-format "^25.4.0" + +jest-matcher-utils@^25.4.0: + version "25.4.0" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-25.4.0.tgz#dc3e7aec402a1e567ed80b572b9ad285878895e6" + integrity sha512-yPMdtj7YDgXhnGbc66bowk8AkQ0YwClbbwk3Kzhn5GVDrciiCr27U4NJRbrqXbTdtxjImONITg2LiRIw650k5A== + dependencies: + chalk "^3.0.0" + jest-diff "^25.4.0" + jest-get-type "^25.2.6" + pretty-format "^25.4.0" + jest-message-util@^24.9.0: version "24.9.0" resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-24.9.0.tgz#527f54a1e380f5e202a8d1149b0ec872f43119e3" @@ -3490,6 +4483,19 @@ jest-message-util@^24.9.0: slash "^2.0.0" stack-utils "^1.0.1" +jest-message-util@^25.4.0: + version "25.4.0" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-25.4.0.tgz#2899e8bc43f5317acf8dfdfe89ea237d354fcdab" + integrity sha512-LYY9hRcVGgMeMwmdfh9tTjeux1OjZHMusq/E5f3tJN+dAoVVkJtq5ZUEPIcB7bpxDUt2zjUsrwg0EGgPQ+OhXQ== + dependencies: + "@babel/code-frame" "^7.0.0" + "@jest/types" "^25.4.0" + "@types/stack-utils" "^1.0.1" + chalk "^3.0.0" + micromatch "^4.0.2" + slash "^3.0.0" + stack-utils "^1.0.1" + jest-mock@^24.9.0: version "24.9.0" resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-24.9.0.tgz#c22835541ee379b908673ad51087a2185c13f1c6" @@ -3497,11 +4503,132 @@ jest-mock@^24.9.0: dependencies: "@jest/types" "^24.9.0" +jest-mock@^25.4.0: + version "25.4.0" + resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-25.4.0.tgz#ded7d64b5328d81d78d2138c825d3a45e30ec8ca" + integrity sha512-MdazSfcYAUjJjuVTTnusLPzE0pE4VXpOUzWdj8sbM+q6abUjm3bATVPXFqTXrxSieR8ocpvQ9v/QaQCftioQFg== + dependencies: + "@jest/types" "^25.4.0" + +jest-pnp-resolver@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.1.tgz#ecdae604c077a7fbc70defb6d517c3c1c898923a" + integrity sha512-pgFw2tm54fzgYvc/OHrnysABEObZCUNFnhjoRjaVOCN8NYc032/gVjPaHD4Aq6ApkSieWtfKAFQtmDKAmhupnQ== + +jest-regex-util@^25.2.6: + version "25.2.6" + resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-25.2.6.tgz#d847d38ba15d2118d3b06390056028d0f2fd3964" + integrity sha512-KQqf7a0NrtCkYmZZzodPftn7fL1cq3GQAFVMn5Hg8uKx/fIenLEobNanUxb7abQ1sjADHBseG/2FGpsv/wr+Qw== + +jest-resolve-dependencies@^25.4.0: + version "25.4.0" + resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-25.4.0.tgz#783937544cfc40afcc7c569aa54748c4b3f83f5a" + integrity sha512-A0eoZXx6kLiuG1Ui7wITQPl04HwjLErKIJTt8GR3c7UoDAtzW84JtCrgrJ6Tkw6c6MwHEyAaLk7dEPml5pf48A== + dependencies: + "@jest/types" "^25.4.0" + jest-regex-util "^25.2.6" + jest-snapshot "^25.4.0" + +jest-resolve@^25.4.0: + version "25.4.0" + resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-25.4.0.tgz#6f4540ce0d419c4c720e791e871da32ba4da7a60" + integrity sha512-wOsKqVDFWUiv8BtLMCC6uAJ/pHZkfFgoBTgPtmYlsprAjkxrr2U++ZnB3l5ykBMd2O24lXvf30SMAjJIW6k2aA== + dependencies: + "@jest/types" "^25.4.0" + browser-resolve "^1.11.3" + chalk "^3.0.0" + jest-pnp-resolver "^1.2.1" + read-pkg-up "^7.0.1" + realpath-native "^2.0.0" + resolve "^1.15.1" + slash "^3.0.0" + +jest-runner@^25.4.0: + version "25.4.0" + resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-25.4.0.tgz#6ca4a3d52e692bbc081228fa68f750012f1f29e5" + integrity sha512-wWQSbVgj2e/1chFdMRKZdvlmA6p1IPujhpLT7TKNtCSl1B0PGBGvJjCaiBal/twaU2yfk8VKezHWexM8IliBfA== + dependencies: + "@jest/console" "^25.4.0" + "@jest/environment" "^25.4.0" + "@jest/test-result" "^25.4.0" + "@jest/types" "^25.4.0" + chalk "^3.0.0" + exit "^0.1.2" + graceful-fs "^4.2.3" + jest-config "^25.4.0" + jest-docblock "^25.3.0" + jest-haste-map "^25.4.0" + jest-jasmine2 "^25.4.0" + jest-leak-detector "^25.4.0" + jest-message-util "^25.4.0" + jest-resolve "^25.4.0" + jest-runtime "^25.4.0" + jest-util "^25.4.0" + jest-worker "^25.4.0" + source-map-support "^0.5.6" + throat "^5.0.0" + +jest-runtime@^25.4.0: + version "25.4.0" + resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-25.4.0.tgz#1e5227a9e2159d26ae27dcd426ca6bc041983439" + integrity sha512-lgNJlCDULtXu9FumnwCyWlOub8iytijwsPNa30BKrSNtgoT6NUMXOPrZvsH06U6v0wgD/Igwz13nKA2wEKU2VA== + dependencies: + "@jest/console" "^25.4.0" + "@jest/environment" "^25.4.0" + "@jest/source-map" "^25.2.6" + "@jest/test-result" "^25.4.0" + "@jest/transform" "^25.4.0" + "@jest/types" "^25.4.0" + "@types/yargs" "^15.0.0" + chalk "^3.0.0" + collect-v8-coverage "^1.0.0" + exit "^0.1.2" + glob "^7.1.3" + graceful-fs "^4.2.3" + jest-config "^25.4.0" + jest-haste-map "^25.4.0" + jest-message-util "^25.4.0" + jest-mock "^25.4.0" + jest-regex-util "^25.2.6" + jest-resolve "^25.4.0" + jest-snapshot "^25.4.0" + jest-util "^25.4.0" + jest-validate "^25.4.0" + realpath-native "^2.0.0" + slash "^3.0.0" + strip-bom "^4.0.0" + yargs "^15.3.1" + jest-serializer@^24.4.0, jest-serializer@^24.9.0: version "24.9.0" resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-24.9.0.tgz#e6d7d7ef96d31e8b9079a714754c5d5c58288e73" integrity sha512-DxYipDr8OvfrKH3Kel6NdED3OXxjvxXZ1uIY2I9OFbGg+vUkkg7AGvi65qbhbWNPvDckXmzMPbK3u3HaDO49bQ== +jest-serializer@^25.2.6: + version "25.2.6" + resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-25.2.6.tgz#3bb4cc14fe0d8358489dbbefbb8a4e708ce039b7" + integrity sha512-RMVCfZsezQS2Ww4kB5HJTMaMJ0asmC0BHlnobQC6yEtxiFKIxohFA4QSXSabKwSggaNkqxn6Z2VwdFCjhUWuiQ== + +jest-snapshot@^25.4.0: + version "25.4.0" + resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-25.4.0.tgz#e0b26375e2101413fd2ccb4278a5711b1922545c" + integrity sha512-J4CJ0X2SaGheYRZdLz9CRHn9jUknVmlks4UBeu270hPAvdsauFXOhx9SQP2JtRzhnR3cvro/9N9KP83/uvFfRg== + dependencies: + "@babel/types" "^7.0.0" + "@jest/types" "^25.4.0" + "@types/prettier" "^1.19.0" + chalk "^3.0.0" + expect "^25.4.0" + jest-diff "^25.4.0" + jest-get-type "^25.2.6" + jest-matcher-utils "^25.4.0" + jest-message-util "^25.4.0" + jest-resolve "^25.4.0" + make-dir "^3.0.0" + natural-compare "^1.4.0" + pretty-format "^25.4.0" + semver "^6.3.0" + jest-util@^24.9.0: version "24.9.0" resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-24.9.0.tgz#7396814e48536d2e85a37de3e4c431d7cb140162" @@ -3520,6 +4647,16 @@ jest-util@^24.9.0: slash "^2.0.0" source-map "^0.6.0" +jest-util@^25.4.0: + version "25.4.0" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-25.4.0.tgz#6a093d09d86d2b41ef583e5fe7dd3976346e1acd" + integrity sha512-WSZD59sBtAUjLv1hMeKbNZXmMcrLRWcYqpO8Dz8b4CeCTZpfNQw2q9uwrYAD+BbJoLJlu4ezVPwtAmM/9/SlZA== + dependencies: + "@jest/types" "^25.4.0" + chalk "^3.0.0" + is-ci "^2.0.0" + make-dir "^3.0.0" + jest-validate@^24.7.0: version "24.9.0" resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-24.9.0.tgz#0775c55360d173cd854e40180756d4ff52def8ab" @@ -3532,6 +4669,30 @@ jest-validate@^24.7.0: leven "^3.1.0" pretty-format "^24.9.0" +jest-validate@^25.4.0: + version "25.4.0" + resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-25.4.0.tgz#2e177a93b716a137110eaf2768f3d9095abd3f38" + integrity sha512-hvjmes/EFVJSoeP1yOl8qR8mAtMR3ToBkZeXrD/ZS9VxRyWDqQ/E1C5ucMTeSmEOGLipvdlyipiGbHJ+R1MQ0g== + dependencies: + "@jest/types" "^25.4.0" + camelcase "^5.3.1" + chalk "^3.0.0" + jest-get-type "^25.2.6" + leven "^3.1.0" + pretty-format "^25.4.0" + +jest-watcher@^25.4.0: + version "25.4.0" + resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-25.4.0.tgz#63ec0cd5c83bb9c9d1ac95be7558dd61c995ff05" + integrity sha512-36IUfOSRELsKLB7k25j/wutx0aVuHFN6wO94gPNjQtQqFPa2rkOymmx9rM5EzbF3XBZZ2oqD9xbRVoYa2w86gw== + dependencies: + "@jest/test-result" "^25.4.0" + "@jest/types" "^25.4.0" + ansi-escapes "^4.2.1" + chalk "^3.0.0" + jest-util "^25.4.0" + string-length "^3.1.0" + jest-worker@^24.6.0, jest-worker@^24.9.0: version "24.9.0" resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-24.9.0.tgz#5dbfdb5b2d322e98567898238a9697bcce67b3e5" @@ -3540,16 +4701,38 @@ jest-worker@^24.6.0, jest-worker@^24.9.0: merge-stream "^2.0.0" supports-color "^6.1.0" +jest-worker@^25.4.0: + version "25.4.0" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-25.4.0.tgz#ee0e2ceee5a36ecddf5172d6d7e0ab00df157384" + integrity sha512-ghAs/1FtfYpMmYQ0AHqxV62XPvKdUDIBBApMZfly+E9JEmYh2K45G0R5dWxx986RN12pRCxsViwQVtGl+N4whw== + dependencies: + merge-stream "^2.0.0" + supports-color "^7.0.0" + +jest@^25.1.0: + version "25.4.0" + resolved "https://registry.yarnpkg.com/jest/-/jest-25.4.0.tgz#fb96892c5c4e4a6b9bcb12068849cddf4c5f8cc7" + integrity sha512-XWipOheGB4wai5JfCYXd6vwsWNwM/dirjRoZgAa7H2wd8ODWbli2AiKjqG8AYhyx+8+5FBEdpO92VhGlBydzbw== + dependencies: + "@jest/core" "^25.4.0" + import-local "^3.0.2" + jest-cli "^25.4.0" + jetifier@^1.6.2: - version "1.6.4" - resolved "https://registry.yarnpkg.com/jetifier/-/jetifier-1.6.4.tgz#6159db8e275d97980d26162897a0648b6d4a3222" - integrity sha512-+f/4OLeqY8RAmXnonI1ffeY1DR8kMNJPhv5WMFehchf7U71cjMQVKkOz1n6asz6kfVoAqKNWJz1A/18i18AcXA== + version "1.6.5" + resolved "https://registry.yarnpkg.com/jetifier/-/jetifier-1.6.5.tgz#ea87324a4230bef20a9651178ecab978ee54a8cb" + integrity sha512-T7yzBSu9PR+DqjYt+I0KVO1XTb1QhAfHnXV5Nd3xpbXM6Xg4e3vP60Q4qkNU8Fh6PHC2PivPUNN3rY7G2MxcDQ== 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 || ^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" @@ -3573,6 +4756,38 @@ jsc-android@^245459.0.0: resolved "https://registry.yarnpkg.com/jsc-android/-/jsc-android-245459.0.0.tgz#e584258dd0b04c9159a27fb104cd5d491fd202c9" integrity sha512-wkjURqwaB1daNkDi2OYYbsLnIdC/lUM2nPXQKRs5pqEU9chDg435bjvo+LSaHotDENygHQDHe+ntUkkw2gwMtg== +jsdom@^15.2.1: + version "15.2.1" + resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-15.2.1.tgz#d2feb1aef7183f86be521b8c6833ff5296d07ec5" + integrity sha512-fAl1W0/7T2G5vURSyxBzrJ1LSdQn6Tr5UX/xD4PXDx/PDgwygedfW6El/KIj3xJ7FU61TTYnc/l/B7P49Eqt6g== + dependencies: + abab "^2.0.0" + acorn "^7.1.0" + acorn-globals "^4.3.2" + array-equal "^1.0.0" + cssom "^0.4.1" + cssstyle "^2.0.0" + data-urls "^1.1.0" + domexception "^1.0.1" + escodegen "^1.11.1" + html-encoding-sniffer "^1.0.2" + nwsapi "^2.2.0" + parse5 "5.1.0" + pn "^1.1.0" + request "^2.88.0" + request-promise-native "^1.0.7" + saxes "^3.1.9" + symbol-tree "^3.2.2" + tough-cookie "^3.0.1" + w3c-hr-time "^1.0.1" + w3c-xmlserializer "^1.1.2" + webidl-conversions "^4.0.2" + whatwg-encoding "^1.0.5" + whatwg-mimetype "^2.3.0" + whatwg-url "^7.0.0" + ws "^7.0.0" + xml-name-validator "^3.0.0" + jsesc@^2.5.1: version "2.5.2" resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" @@ -3610,12 +4825,12 @@ json-stringify-safe@~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.1" - resolved "https://registry.yarnpkg.com/json5/-/json5-2.1.1.tgz#81b6cb04e9ba496f1c7005d07b4368a2638f90b6" - integrity sha512-l+3HXD0GEI3huGq1njuqtzYK8OYJyXMkOLtQ53pjWh89tvWS2h6l+1zMkYWqlb57+SiQodKZyvMEFb2X+KrFhQ== +json5@^2.1.2: + version "2.1.3" + resolved "https://registry.yarnpkg.com/json5/-/json5-2.1.3.tgz#c9b0f7fa9233bfe5807fe66fcf3a5617ed597d43" + integrity sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA== dependencies: - minimist "^1.2.0" + minimist "^1.2.5" jsonfile@^2.1.0: version "2.4.0" @@ -3676,9 +4891,9 @@ kind-of@^5.0.0: 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== + version "6.0.3" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" + integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== klaw@^1.0.0: version "1.3.1" @@ -3687,6 +4902,11 @@ klaw@^1.0.0: optionalDependencies: graceful-fs "^4.1.9" +kleur@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e" + integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== + lcid@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/lcid/-/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835" @@ -3701,16 +4921,29 @@ lcid@^2.0.0: dependencies: invert-kv "^2.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= +lcov-parse@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/lcov-parse/-/lcov-parse-1.0.0.tgz#eb0d46b54111ebc561acb4c408ef9363bdc8f7e0" + integrity sha1-6w1GtUER68VhrLTECO+TY73I9+A= leven@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A== +levn@~0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" + integrity sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4= + dependencies: + prelude-ls "~1.1.2" + type-check "~0.3.2" + +lines-and-columns@^1.1.6: + version "1.1.6" + resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.1.6.tgz#1c00c743b433cd0a4e80758f7b64a57440d9ff00" + integrity sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA= + 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" @@ -3759,6 +4992,11 @@ lodash.flattendeep@^4.4.0: resolved "https://registry.yarnpkg.com/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz#fb030917f86a3134e5bc9bec0d69e0013ddfedb2" integrity sha1-+wMJF/hqMTTlvJvsDWngAT3f7bI= +lodash.sortby@^4.7.0: + version "4.7.0" + resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438" + integrity sha1-7dFMgk4sycHgsKG0K7UhBRakJDg= + lodash.throttle@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/lodash.throttle/-/lodash.throttle-4.1.1.tgz#c23e91b710242ac70c37f1e1cda9274cc39bf2f4" @@ -3769,7 +5007,7 @@ lodash@^3.10.0: resolved "https://registry.yarnpkg.com/lodash/-/lodash-3.10.1.tgz#5bf45e8e49ba4189e17d482789dfd15bd140b7b6" integrity sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y= -lodash@^4.17.10, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.5, lodash@^4.3.0: +lodash@^4.17.10, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.5, lodash@^4.3.0: version "4.17.15" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548" integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A== @@ -3795,6 +5033,13 @@ logkitty@^0.6.0: dayjs "^1.8.15" yargs "^12.0.5" +lolex@^5.0.0: + version "5.1.2" + resolved "https://registry.yarnpkg.com/lolex/-/lolex-5.1.2.tgz#953694d098ce7c07bc5ed6d0e42bc6c0c6d5a367" + integrity sha512-h4hmjAvHTmd+25JSwrtTIuwbKdwg5NzZVRMLn9saij4SZaepCrTCxPr35H/3bjwfMJtN+t3CX8672UIkglz28A== + dependencies: + "@sinonjs/commons" "^1.7.0" + 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" @@ -3825,6 +5070,13 @@ make-dir@^2.0.0, make-dir@^2.1.0: pify "^4.0.1" semver "^5.6.0" +make-dir@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.0.2.tgz#04a1acbf22221e1d6ef43559f43e05a90dbb4392" + integrity sha512-rYKABKutXa6vXTXhoV18cBE7PaewPXHe/Bdq4v+ZLMhxbWApkFFplT0LcbMW+6BbjnQXzZ/sAvSE/JdguApG5w== + dependencies: + semver "^6.0.0" + makeerror@1.0.x: version "1.0.11" resolved "https://registry.yarnpkg.com/makeerror/-/makeerror-1.0.11.tgz#e01a5c9109f2af79660e4e8b9587790184f5a96c" @@ -3851,6 +5103,20 @@ map-visit@^1.0.0: dependencies: object-visit "^1.0.0" +md5.js@^1.3.4: + version "1.3.5" + resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f" + integrity sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg== + dependencies: + hash-base "^3.0.0" + inherits "^2.0.1" + safe-buffer "^5.1.2" + +mdn-data@2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.6.tgz#852dc60fcaa5daa2e8cf6c9189c440ed3e042978" + integrity sha512-rQvjv71olwNHgiTbfPZFkJtjNMciWgswYeciZhtvWLO8bmX3TnhyA62I6sTWOyZssWHJJjY6/KiWwqQsWWsqOA== + mem@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/mem/-/mem-1.1.0.tgz#5edd52b485ca1d900fe64895505399a0dfa45f76" @@ -3886,10 +5152,10 @@ merge-stream@^2.0.0: resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== -metro-babel-register@0.56.3, metro-babel-register@^0.56.0: - version "0.56.3" - resolved "https://registry.yarnpkg.com/metro-babel-register/-/metro-babel-register-0.56.3.tgz#d0cfb38adf45cb35965649ede794f2308562e20f" - integrity sha512-ILCRtNFdW6vzqmLAG2MYWdTSE1vCAZqDKNggiNhlfViuoxmWAIL0vOqixl1CHZF5z4t55+fk46A0jSN7UgPyVw== +metro-babel-register@^0.56.0, metro-babel-register@^0.56.4: + version "0.56.4" + resolved "https://registry.yarnpkg.com/metro-babel-register/-/metro-babel-register-0.56.4.tgz#b0c627a1cfdd1bdd768f81af79481754e833a902" + integrity sha512-Phm6hMluOWYqfykftjJ1jsTpWvbgb49AC/1taxEctxUdRCZlFgZwBleJZAhQYxJD5J+ikFkEbHDzePEXb29KVA== dependencies: "@babel/core" "^7.0.0" "@babel/plugin-proposal-class-properties" "^7.0.0" @@ -3904,50 +5170,50 @@ metro-babel-register@0.56.3, metro-babel-register@^0.56.0: core-js "^2.2.2" escape-string-regexp "^1.0.5" -metro-babel-transformer@0.56.3: - version "0.56.3" - resolved "https://registry.yarnpkg.com/metro-babel-transformer/-/metro-babel-transformer-0.56.3.tgz#6559c3a8565238a704a181353cef59fdb974e6db" - integrity sha512-N5/ftb3rBkt6uKlgYAv+lwtzYc4dK0tBpfZ8pjec3kcypGuGTuf4LTHEh65EuzySreLngYI0bQzoFSn3G3DYsw== +metro-babel-transformer@^0.56.4: + version "0.56.4" + resolved "https://registry.yarnpkg.com/metro-babel-transformer/-/metro-babel-transformer-0.56.4.tgz#fe1d0dc600fcf90201a5bea4d42caea10b801057" + integrity sha512-IOi4ILgZvaX7GCGHBJp79paNVOq5QxhhbyqAdEJgDP8bHfl/OVHoVKSypfrsMSKSiBrqxhIjyc4XjkXsQtkx5g== dependencies: "@babel/core" "^7.0.0" - metro-source-map "0.56.3" + metro-source-map "^0.56.4" -metro-cache@0.56.3: - version "0.56.3" - resolved "https://registry.yarnpkg.com/metro-cache/-/metro-cache-0.56.3.tgz#1b0759bc45291cc3ffc77736c09dcfbd322edb8b" - integrity sha512-SsryVe/TVkt2IkEGnYhB3gQlg9iMlu8WJikQHcCEjMfPEnSIzmeymrX73fwQNPnTnN7F3E0HVjH6Wvq6fh0mcA== +metro-cache@^0.56.4: + version "0.56.4" + resolved "https://registry.yarnpkg.com/metro-cache/-/metro-cache-0.56.4.tgz#542f9f8a35f8fb9d5576f46fd3ab4d4f42851a7e" + integrity sha512-d1hiUSKwtRsuMxUhHVJ3tjK2BbpUlJGvTyMWohK8Wxx+0GbnWRWWFcI4vlCzlZfoK0VtZK2MJEl5t7Du1mIniQ== dependencies: jest-serializer "^24.4.0" - metro-core "0.56.3" + metro-core "^0.56.4" mkdirp "^0.5.1" rimraf "^2.5.4" -metro-config@0.56.3, metro-config@^0.56.0: - version "0.56.3" - resolved "https://registry.yarnpkg.com/metro-config/-/metro-config-0.56.3.tgz#b16e600817c58c768946f24b039d2a1ba6a67651" - integrity sha512-C3ZLA5y5gW5auDSQN5dsCTduJg7LXEiX/tLAADOkgXWVImr5P74x9Wt8y1MMWrKx6p+4p5RMDyEwWDMXJt/DwA== +metro-config@^0.56.0, metro-config@^0.56.4: + version "0.56.4" + resolved "https://registry.yarnpkg.com/metro-config/-/metro-config-0.56.4.tgz#338fd8165fba59424cec427c1a881757945e57e9" + integrity sha512-O85QDHwWdMn/8ERe13y4a6vbZL0AHyO8atTvL+9BCulLEO+FQBi1iJjr3+ViLa8cf0m5dRftDsa7P47m5euk4A== dependencies: cosmiconfig "^5.0.5" jest-validate "^24.7.0" - metro "0.56.3" - metro-cache "0.56.3" - metro-core "0.56.3" + metro "^0.56.4" + metro-cache "^0.56.4" + metro-core "^0.56.4" pretty-format "^24.7.0" -metro-core@0.56.3, metro-core@^0.56.0: - version "0.56.3" - resolved "https://registry.yarnpkg.com/metro-core/-/metro-core-0.56.3.tgz#34bb3a92621fd9b1ed3e6a01c6a4324fbb1201d9" - integrity sha512-OAaHP3mBdlACMZRwDJzZzYC0o2S3qfb4BBK75L8H4Ds+y3QUSrjsDEpHACcpaMTOds8rBvjzn+jjB5tqNoHfBA== +metro-core@^0.56.0, metro-core@^0.56.4: + version "0.56.4" + resolved "https://registry.yarnpkg.com/metro-core/-/metro-core-0.56.4.tgz#67cc41b3c0bf66e9c2306f50239a1080b1e82312" + integrity sha512-hMzkBdgPt5Zm9nr/1KtIT+A6H7TNiLVCEGG5OiAXj8gTRsA2yy7wAdQpwy0xbE+zi88t/pLOzXpd3ClG/YxyWg== dependencies: jest-haste-map "^24.7.1" lodash.throttle "^4.1.1" - metro-resolver "0.56.3" + metro-resolver "^0.56.4" wordwrap "^1.0.0" -metro-inspector-proxy@0.56.3: - version "0.56.3" - resolved "https://registry.yarnpkg.com/metro-inspector-proxy/-/metro-inspector-proxy-0.56.3.tgz#48046f9e3f7153be2409e0bee9252dede932ac39" - integrity sha512-7WtHinw+VJcunQ3q8El1MqqzYSRvXEjW5QE13VYwcLtnay3pvcqACeiQmGbWI0IqxB1+QH8tf3nkA7z7pQ7Vpw== +metro-inspector-proxy@^0.56.4: + version "0.56.4" + resolved "https://registry.yarnpkg.com/metro-inspector-proxy/-/metro-inspector-proxy-0.56.4.tgz#7343ff3c5908af4fd99e96b6d646e24e99816be4" + integrity sha512-E1S3MO25mWKmcLn1UQuCDiS0hf9P2Fwq8sEAX5lBLoZbehepNH+4xJ3xXSY51JX4dozBrE8GGoKL4ll3II40LA== dependencies: connect "^3.6.5" debug "^2.2.0" @@ -3955,17 +5221,17 @@ metro-inspector-proxy@0.56.3: ws "^1.1.5" yargs "^9.0.0" -metro-minify-uglify@0.56.3: - version "0.56.3" - resolved "https://registry.yarnpkg.com/metro-minify-uglify/-/metro-minify-uglify-0.56.3.tgz#763b26895f79d0589d3391dc94083d348cf9c2be" - integrity sha512-b9ljyeUpkJWVlFy8M/i4aNbvEBI0zN9vJh1jfU7yx+k9dX7FulLnpGmAQxxQdEszcM//sJrsKNS1oLYBxr0NMQ== +metro-minify-uglify@^0.56.4: + version "0.56.4" + resolved "https://registry.yarnpkg.com/metro-minify-uglify/-/metro-minify-uglify-0.56.4.tgz#13589dfb1d43343608aacb7f78ddfcc052daa63c" + integrity sha512-BHgj7+BKEK2pHvWHUR730bIrsZwl8DPtr49x9L0j2grPZ5/UROWXzEr8VZgIss7fl64t845uu1HXNNyuSj2EhA== dependencies: uglify-es "^3.1.9" -metro-react-native-babel-preset@0.56.3: - version "0.56.3" - resolved "https://registry.yarnpkg.com/metro-react-native-babel-preset/-/metro-react-native-babel-preset-0.56.3.tgz#5a1097c2f94e8ee0797a8ba2ab8f86d096f4c093" - integrity sha512-tGPzX2ZwI8vQ8SiNVBPUIgKqmaRNVB6rtJtHCBQZAYRiMbxh0NHCUoFfKBej6U5qVgxiYYHyN8oB23evG4/Oow== +metro-react-native-babel-preset@^0.56.4: + version "0.56.4" + resolved "https://registry.yarnpkg.com/metro-react-native-babel-preset/-/metro-react-native-babel-preset-0.56.4.tgz#dcedc64b7ff5c0734839458e70eb0ebef6d063a8" + integrity sha512-CzbBDM9Rh6w8s1fq+ZqihAh7DDqUAcfo9pPww25+N/eJ7UK436Q7JdfxwdIPpBwLFn6o6MyYn+uwL9OEWBJarA== dependencies: "@babel/plugin-proposal-class-properties" "^7.0.0" "@babel/plugin-proposal-export-default-from" "^7.0.0" @@ -4004,51 +5270,51 @@ metro-react-native-babel-preset@0.56.3: react-refresh "^0.4.0" metro-react-native-babel-transformer@^0.56.0: - version "0.56.3" - resolved "https://registry.yarnpkg.com/metro-react-native-babel-transformer/-/metro-react-native-babel-transformer-0.56.3.tgz#e68205230be65c07290b932f7684226013dae310" - integrity sha512-T87m4jDu0gIvJo8kWEvkodWFgQ8XBzJUESs1hUUTBSMIqTa31MdWfA1gs+MipadG7OsEJpcb9m83mGr8K70MWw== + version "0.56.4" + resolved "https://registry.yarnpkg.com/metro-react-native-babel-transformer/-/metro-react-native-babel-transformer-0.56.4.tgz#3c6e48b605c305362ee624e45ff338656e35fc1d" + integrity sha512-ng74eutuy1nyGI9+TDzzVAVfEmNPDlapV4msTQMKPi4EFqo/fBn7Ct33ME9l5E51pQBBnxt/UwcpTvd13b29kQ== dependencies: "@babel/core" "^7.0.0" babel-preset-fbjs "^3.1.2" - metro-babel-transformer "0.56.3" - metro-react-native-babel-preset "0.56.3" - metro-source-map "0.56.3" + metro-babel-transformer "^0.56.4" + metro-react-native-babel-preset "^0.56.4" + metro-source-map "^0.56.4" -metro-resolver@0.56.3: - version "0.56.3" - resolved "https://registry.yarnpkg.com/metro-resolver/-/metro-resolver-0.56.3.tgz#f18978b919a5ecc67028732609a564880715ef75" - integrity sha512-VvMl4xUp0fy76WiP3YDtzMmrn6tN/jwxOBqlTy9MjN6R9sUXrGyO5thwn/uKQqp5vwBTuJev7nZL7OKzwludKA== +metro-resolver@^0.56.4: + version "0.56.4" + resolved "https://registry.yarnpkg.com/metro-resolver/-/metro-resolver-0.56.4.tgz#9876f57bca37fd1bfcffd733541e2ee4a89fad7f" + integrity sha512-Ug4ulVfpkKZ1Wu7mdYj9XLGuOqZTuWCqEhyx3siKTc/2eBwKZQXmiNo5d/IxWNvmwL/87Abeb724I6CMzMfjiQ== dependencies: absolute-path "^0.0.0" -metro-source-map@0.56.3, metro-source-map@^0.56.0: - version "0.56.3" - resolved "https://registry.yarnpkg.com/metro-source-map/-/metro-source-map-0.56.3.tgz#0cadc9f9eca9ece224a6fd28b9e4fa3a9834e24c" - integrity sha512-CheqWbJZSM0zjcNBqELUiocwH3XArrOk6alhVuzJ2gV/WTMBQFwP0TtQssSMwjnouMHNEzY8RxErXKXBk/zJmQ== +metro-source-map@^0.56.0, metro-source-map@^0.56.4: + version "0.56.4" + resolved "https://registry.yarnpkg.com/metro-source-map/-/metro-source-map-0.56.4.tgz#868ccac3f3519fe14eca358bc186f63651b2b9bc" + integrity sha512-f1P9/rpFmG3Z0Jatiw2zvLItx1TwR7mXTSDj4qLDCWeVMB3kEXAr3R0ucumTW8c6HfpJljeRBWzYFXF33fd81g== dependencies: "@babel/traverse" "^7.0.0" "@babel/types" "^7.0.0" invariant "^2.2.4" - metro-symbolicate "0.56.3" - ob1 "0.56.3" + metro-symbolicate "^0.56.4" + ob1 "^0.56.4" source-map "^0.5.6" vlq "^1.0.0" -metro-symbolicate@0.56.3: - version "0.56.3" - resolved "https://registry.yarnpkg.com/metro-symbolicate/-/metro-symbolicate-0.56.3.tgz#20f9dc52fab3209903715716402692b3ac16831c" - integrity sha512-fSQtjjy4eiJDThSl9eloxMElhrs+5PQB+DKKzmTFXT8e2GDga+pa1xTBFRUACMO8BXGuWmxR7SnGDw0wo5Ngrw== +metro-symbolicate@^0.56.4: + version "0.56.4" + resolved "https://registry.yarnpkg.com/metro-symbolicate/-/metro-symbolicate-0.56.4.tgz#53e9d40beac9049fa75a3e620ddd47d4907ff015" + integrity sha512-8mCNNn6zV5FFKCIcRgI7736Xl+owgvYuy8qanPxZN36f7utiWRYeB+PirEBPcglBk4qQvoy2lT6oPULNXZQbbQ== dependencies: invariant "^2.2.4" - metro-source-map "0.56.3" + metro-source-map "^0.56.4" source-map "^0.5.6" through2 "^2.0.1" vlq "^1.0.0" -metro@0.56.3, metro@^0.56.0: - version "0.56.3" - resolved "https://registry.yarnpkg.com/metro/-/metro-0.56.3.tgz#3a38706bf6b1200421e871a4c53ddc2f359f65a9" - integrity sha512-mxHpvBGWanZ46wAEZVLinNO5IYMcFbTdMZIRhC7r+rvoSK6r9iPj95AujBfzLXMAl36RI2O3D7yp5hOYif/gEQ== +metro@^0.56.0, metro@^0.56.4: + version "0.56.4" + resolved "https://registry.yarnpkg.com/metro/-/metro-0.56.4.tgz#be7e1380ee6ac3552c25ead8098eab261029e4d7" + integrity sha512-Kt3OQJQtQdts0JrKnyGdLpKHDjqYBgIfzvYrvfhmFCkKuZ8aqRlVnvpfjQ4/OBm0Fmm9NyyxbNRD9VIbj7WjnA== dependencies: "@babel/core" "^7.0.0" "@babel/generator" "^7.0.0" @@ -4077,17 +5343,17 @@ metro@0.56.3, metro@^0.56.0: json-stable-stringify "^1.0.1" lodash.throttle "^4.1.1" merge-stream "^1.0.1" - metro-babel-register "0.56.3" - metro-babel-transformer "0.56.3" - metro-cache "0.56.3" - metro-config "0.56.3" - metro-core "0.56.3" - metro-inspector-proxy "0.56.3" - metro-minify-uglify "0.56.3" - metro-react-native-babel-preset "0.56.3" - metro-resolver "0.56.3" - metro-source-map "0.56.3" - metro-symbolicate "0.56.3" + metro-babel-register "^0.56.4" + metro-babel-transformer "^0.56.4" + metro-cache "^0.56.4" + metro-config "^0.56.4" + metro-core "^0.56.4" + metro-inspector-proxy "^0.56.4" + metro-minify-uglify "^0.56.4" + metro-react-native-babel-preset "^0.56.4" + metro-resolver "^0.56.4" + metro-source-map "^0.56.4" + metro-symbolicate "^0.56.4" mime-types "2.1.11" mkdirp "^0.5.1" node-fetch "^2.2.0" @@ -4123,15 +5389,26 @@ micromatch@^3.1.10, micromatch@^3.1.4: 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== +micromatch@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.2.tgz#4fcb0999bf9fbc2fcbdd212f6d629b9a56c39259" + integrity sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q== + dependencies: + braces "^3.0.1" + picomatch "^2.0.5" -"mime-db@>= 1.40.0 < 2": - version "1.42.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.42.0.tgz#3e252907b4c7adb906597b4b65636272cf9e7bac" - integrity sha512-UbfJCR4UAVRNgMpfImz05smAXK7+c+ZntjaA26ANtkXLlOe947Aag5zdIcKQULAiF9Cq4WxBi9jUs5zkA84bYQ== +miller-rabin@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d" + integrity sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA== + dependencies: + bn.js "^4.0.0" + brorand "^1.0.1" + +mime-db@1.43.0, "mime-db@>= 1.43.0 < 2": + version "1.43.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.43.0.tgz#0a12e0502650e473d735535050e7c8f4eb4fae58" + integrity sha512-+5dsGEEovYbT8UY9yD7eE4XTc4UwJ1jBYlgaQQF38ENsKR3wj/8q8RFZrF9WIZpB2V1ArTVFUva8sAul1NzRzQ== mime-db@~1.23.0: version "1.23.0" @@ -4146,11 +5423,11 @@ mime-types@2.1.11: 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== + version "2.1.26" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.26.tgz#9c921fc09b7e149a65dfdc0da4d20997200b0a06" + integrity sha512-01paPWYgLrkqAyrlDorC1uDwl2p3qZT7yl806vW7DvDoxwXi46jsjFbg+WdwotBIk6/MbEhO/dh5aZ5sNj/dWQ== dependencies: - mime-db "1.40.0" + mime-db "1.43.0" mime@1.6.0: version "1.6.0" @@ -4167,7 +5444,7 @@ mimic-fn@^1.0.0: resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" integrity sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ== -mimic-fn@^2.0.0: +mimic-fn@^2.0.0, mimic-fn@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== @@ -4201,26 +5478,11 @@ minimatch@^3.0.4: 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.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" - integrity sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ= - -minimist@^1.2.5: +minimist@^1.1.1, minimist@^1.2.0, minimist@^1.2.5: version "1.2.5" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== -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.6.0, minipass@^2.8.6, minipass@^2.9.0: version "2.9.0" resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.9.0.tgz#e713762e7d3e32fed803115cf93e04bca9fcc9a6" @@ -4244,14 +5506,7 @@ mixin-deep@^1.2.0: for-in "^1.0.2" is-extendable "^1.0.1" -mkdirp@^0.5.0: - 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" - -mkdirp@^0.5.1: +mkdirp@^0.5.0, mkdirp@^0.5.1: version "0.5.5" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== @@ -4259,15 +5514,15 @@ mkdirp@^0.5.1: minimist "^1.2.5" morgan@^1.9.0: - version "1.9.1" - resolved "https://registry.yarnpkg.com/morgan/-/morgan-1.9.1.tgz#0a8d16734a1d9afbc824b99df87e738e58e2da59" - integrity sha512-HQStPIV4y3afTiCYVxirakhlCfGkI161c76kKFca7Fk1JusM//Qeo1ej2XaMniiNeaZklMVrh3vTtIzpzwbpmA== + version "1.10.0" + resolved "https://registry.yarnpkg.com/morgan/-/morgan-1.10.0.tgz#091778abc1fc47cd3509824653dae1faab6b17d7" + integrity sha512-AbegBVI4sh6El+1gNwvD5YIck7nSA36weD7xvIxG4in80j/UoK8AEGaWnnz8v1GxonMCltmlNs5ZKbGvl9b1XQ== dependencies: - basic-auth "~2.0.0" + basic-auth "~2.0.1" debug "2.6.9" - depd "~1.1.2" + depd "~2.0.0" on-finished "~2.3.0" - on-headers "~1.0.1" + on-headers "~1.0.2" ms@2.0.0: version "2.0.0" @@ -4284,15 +5539,20 @@ ms@^2.1.1: resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== +mustache@^3.0.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/mustache/-/mustache-3.2.1.tgz#89e78a9d207d78f2799b1e95764a25bf71a28322" + integrity sha512-RERvMFdLpaFfSRIEe632yDm5nsd0SDKn8hGmcUwswnyiE5mtdZLDybtHAz6hjJhawokF0hXvGLtx9mrQfm6FkA== + 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: - version "2.14.0" - resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.0.tgz#7818f722027b2459a86f0295d434d1fc2336c52c" - integrity sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg== + version "2.14.1" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.1.tgz#d7be34dfa3105b91494c3147089315eff8874b01" + integrity sha512-isWHgVjnFjh2x2yuJ/tj3JbwoHu3UC2dX5G/88Cm24yB6YopVgxvBObDY7n5xW6ExmFhJpSEQqFPvq9zaXc8Jw== nanoid@^3.0.2: version "3.1.3" @@ -4316,25 +5576,16 @@ nanomatch@^1.2.9: 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" +natural-compare@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" + integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= 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" @@ -4363,6 +5614,35 @@ node-int64@^0.4.0: resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" integrity sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs= +node-libs-browser@^2.0.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.2.1.tgz#b64f513d18338625f90346d27b0d235e631f6425" + integrity sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q== + dependencies: + assert "^1.1.1" + browserify-zlib "^0.2.0" + buffer "^4.3.0" + console-browserify "^1.1.0" + constants-browserify "^1.0.0" + crypto-browserify "^3.11.0" + domain-browser "^1.1.1" + events "^3.0.0" + https-browserify "^1.0.0" + os-browserify "^0.3.0" + path-browserify "0.0.1" + process "^0.11.10" + punycode "^1.2.4" + querystring-es3 "^0.2.0" + readable-stream "^2.3.3" + stream-browserify "^2.0.1" + stream-http "^2.7.2" + string_decoder "^1.0.0" + timers-browserify "^2.0.4" + tty-browserify "0.0.0" + url "^0.11.0" + util "^0.11.0" + vm-browserify "^1.0.1" + 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" @@ -4379,36 +5659,23 @@ node-notifier@^5.2.1: 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== +node-notifier@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/node-notifier/-/node-notifier-6.0.0.tgz#cea319e06baa16deec8ce5cd7f133c4a46b68e12" + integrity sha512-SVfQ/wMw+DesunOm5cKqr6yDcvUTDl/yc97ybGHMrteNEY6oekXpNpS3lZwgLlwz0FLgHoiW28ZpmBHUDg37cw== 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" + growly "^1.3.0" + is-wsl "^2.1.1" + semver "^6.3.0" + shellwords "^0.1.1" + which "^1.3.1" node-releases@^1.1.53: version "1.1.53" resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.53.tgz#2d821bfa499ed7c5dffc5e2f28c88e78a08ee3f4" integrity sha512-wp8zyQVwef2hpZ/dJH7SfSrIPD6YoJz6BDQDpGEkcA0s3LpAQoxBIYmfIq6QAhC1DhwsyCgTaTTcONwX8qzCuQ== -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: +normalize-package-data@^2.3.2, normalize-package-data@^2.5.0: 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== @@ -4425,6 +5692,11 @@ normalize-path@^2.1.1: dependencies: remove-trailing-separator "^1.0.1" +normalize-path@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" + integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== + normalize-svg-path@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/normalize-svg-path/-/normalize-svg-path-1.0.1.tgz#6f729ad6b70bb4ca4eff2fe4b107489efe1d56fe" @@ -4432,19 +5704,6 @@ normalize-svg-path@^1.0.1: dependencies: svg-arc-to-cubic-bezier "^3.0.0" -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" @@ -4452,15 +5711,19 @@ npm-run-path@^2.0.0: dependencies: path-key "^2.0.0" -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== +npm-run-path@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" + integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== dependencies: - are-we-there-yet "~1.1.2" - console-control-strings "~1.1.0" - gauge "~2.7.3" - set-blocking "~2.0.0" + path-key "^3.0.0" + +nth-check@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.2.tgz#b2bd295c37e3dd58a3bf0700376663ba4d9cf05c" + integrity sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg== + dependencies: + boolbase "~1.0.0" nullthrows@^1.1.0: version "1.1.1" @@ -4480,6 +5743,11 @@ number-to-bn@1.7.0: bn.js "4.11.6" strip-hex-prefix "1.0.0" +nwsapi@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.0.tgz#204879a9e3d068ff2a55139c2c772780681a38b7" + integrity sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ== + nyc@^14.1.1: version "14.1.1" resolved "https://registry.yarnpkg.com/nyc/-/nyc-14.1.1.tgz#151d64a6a9f9f5908a1b73233931e4a0a3075eeb" @@ -4516,10 +5784,10 @@ oauth-sign@~0.9.0: resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== -ob1@0.56.3: - version "0.56.3" - resolved "https://registry.yarnpkg.com/ob1/-/ob1-0.56.3.tgz#5829e446587c9bf89c22ece4f3757b29f2ccfd18" - integrity sha512-3JL2ZyWOHDGTEAe4kcG+TxhGPKCCikgyoUIjE82JnXnmpR1LXItM9K3WhGsi4+O7oYngMW6FjpHHoc5xJTMkTQ== +ob1@^0.56.4: + version "0.56.4" + resolved "https://registry.yarnpkg.com/ob1/-/ob1-0.56.4.tgz#c4acb3baa42f4993a44b35b2da7c8ef443dcccec" + integrity sha512-URgFof9z2wotiYFsqlydXtQfGV81gvBI2ODy64xfd3vPo+AYom5PVDX4t4zn23t/O+S2IxqApSQM8uJAybmz7w== object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: version "4.1.1" @@ -4535,10 +5803,10 @@ object-copy@^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-inspect@^1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.7.0.tgz#f4f6bd181ad77f006b5ece60bd0b6f398ff74a67" + integrity sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw== object-keys@^1.0.11, object-keys@^1.0.12, object-keys@^1.1.1: version "1.1.1" @@ -4576,7 +5844,7 @@ on-finished@~2.3.0: dependencies: ee-first "1.1.1" -on-headers@~1.0.1, on-headers@~1.0.2: +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== @@ -4595,6 +5863,13 @@ onetime@^2.0.0: dependencies: mimic-fn "^1.0.0" +onetime@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.0.tgz#fff0f3c91617fe62bb50189636e99ac8a6df7be5" + integrity sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q== + dependencies: + mimic-fn "^2.1.0" + open@^6.2.0: version "6.4.0" resolved "https://registry.yarnpkg.com/open/-/open-6.4.0.tgz#5c13e96d0dc894686164f18965ecfe889ecfc8a9" @@ -4602,13 +5877,17 @@ open@^6.2.0: dependencies: is-wsl "^1.1.0" -optimist@^0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686" - integrity sha1-2j6nRob6IaGaERwybpDrFaAZZoY= +optionator@^0.8.1: + version "0.8.3" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" + integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA== dependencies: - minimist "~0.0.1" - wordwrap "~0.0.2" + deep-is "~0.1.3" + fast-levenshtein "~2.0.6" + levn "~0.3.0" + prelude-ls "~1.1.2" + type-check "~0.3.2" + word-wrap "~1.2.3" options@>=0.0.5: version "0.0.6" @@ -4627,7 +5906,12 @@ ora@^3.4.0: strip-ansi "^5.2.0" wcwidth "^1.0.1" -os-homedir@^1.0.0, os-homedir@^1.0.1: +os-browserify@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27" + integrity sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc= + +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= @@ -4655,24 +5939,26 @@ os-tmpdir@^1.0.0, os-tmpdir@~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-defer@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/p-defer/-/p-defer-1.0.0.tgz#9f6eb182f6c9aa8cd743004a7d4f96b196b0fb0c" integrity sha1-n26xgvbJqozXQwBKfU+WsZaw+ww= +p-each-series@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/p-each-series/-/p-each-series-2.1.0.tgz#961c8dd3f195ea96c747e636b262b800a6b1af48" + integrity sha512-ZuRs1miPT4HrjFa+9fRfOFXxGJfORgelKV9f9nNOWw2gl6gVsRaVDOQP0+MI0G0wGKns1Yacsu0GjOFbTK0JFQ== + 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-finally@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-2.0.1.tgz#bd6fcaa9c559a096b680806f4d657b3f0f240561" + integrity sha512-vpm09aKwq6H9phqRQzecoDpD8TmVyGw70qmWlyq5onxY7tqyTTFVvxMykxQSQKILBSFlbXpypIw2T1Ml7+DDtw== + p-is-promise@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/p-is-promise/-/p-is-promise-2.1.0.tgz#918cebaea248a62cf7ffab8e3bca8c5f882fc42e" @@ -4686,9 +5972,9 @@ p-limit@^1.1.0: p-try "^1.0.0" p-limit@^2.0.0, p-limit@^2.2.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== + version "2.3.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" + integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== dependencies: p-try "^2.0.0" @@ -4733,13 +6019,27 @@ package-hash@^3.0.0: lodash.flattendeep "^4.4.0" release-zalgo "^1.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== +pako@~1.0.5: + version "1.0.11" + resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.11.tgz#6c9599d340d54dfd3946380252a35705a6b992bf" + integrity sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw== + +parse-asn1@^5.0.0: + version "5.1.5" + resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.5.tgz#003271343da58dc94cace494faef3d2147ecea0e" + integrity sha512-jkMYn1dcJqF6d5CpU689bq7w/b5ALS9ROVSpQDPrZsqqesUJii9qutvoT5ltGedNXMO2e16YUWIghG9KxaViTQ== dependencies: - for-each "^0.3.3" - string.prototype.trim "^1.1.2" + asn1.js "^4.0.0" + browserify-aes "^1.0.0" + create-hash "^1.1.0" + evp_bytestokey "^1.0.0" + pbkdf2 "^3.0.3" + safe-buffer "^5.1.1" + +parse-headers@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/parse-headers/-/parse-headers-2.0.3.tgz#5e8e7512383d140ba02f0c7aa9f49b4399c92515" + integrity sha512-QhhZ+DCCit2Coi2vmAKbq5RGTRcQUOE2+REgv8vdyu7MnYx2eZztegqtTx99TZ86GTIwqiy3+4nQTWZ2tgmdCA== parse-json@^2.2.0: version "2.2.0" @@ -4756,6 +6056,16 @@ parse-json@^4.0.0: error-ex "^1.3.1" json-parse-better-errors "^1.0.1" +parse-json@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.0.0.tgz#73e5114c986d143efa3712d4ea24db9a4266f60f" + integrity sha512-OOY5b7PAEFV0E2Fir1KOkxchnZNCdowAJgQ5NuxjpBKTRP3pQhwkrkxqQjeoKJ+fO7bCpmIZaogI4eZGDMEGOw== + dependencies: + "@babel/code-frame" "^7.0.0" + error-ex "^1.3.1" + json-parse-better-errors "^1.0.1" + lines-and-columns "^1.1.6" + 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" @@ -4766,6 +6076,11 @@ parse-svg-path@^0.1.2: resolved "https://registry.yarnpkg.com/parse-svg-path/-/parse-svg-path-0.1.2.tgz#7a7ec0d1eb06fa5325c7d3e009b859a09b5d49eb" integrity sha1-en7A0esG+lMlx9PgCbhZoJtdSes= +parse5@5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/parse5/-/parse5-5.1.0.tgz#c59341c9723f414c452975564c7c00a68d58acd2" + integrity sha512-fxNG2sQjHvlVAYmzBZS9YlDp6PTSSDwa98vkD4QgVDDCAo84z5X1t5XyJQ62ImdLXx5NdIIfihey6xpum9/gRQ== + parseurl@~1.3.3: version "1.3.3" resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" @@ -4776,6 +6091,11 @@ pascalcase@^0.1.1: resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" integrity sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ= +path-browserify@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.1.tgz#e6c4ddd7ed3aa27c68a20cc4e50e1a4ee83bbc4a" + integrity sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ== + path-exists@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" @@ -4796,6 +6116,11 @@ path-key@^2.0.0, path-key@^2.0.1: resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= +path-key@^3.0.0, path-key@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" + integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== + path-parse@^1.0.6: version "1.0.6" resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" @@ -4815,11 +6140,27 @@ path-type@^3.0.0: dependencies: pify "^3.0.0" +pbkdf2@^3.0.3: + version "3.0.17" + resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.17.tgz#976c206530617b14ebb32114239f7b09336e93a6" + integrity sha512-U/il5MsrZp7mGg3mSQfn742na2T+1/vHDCG5/iTI3X9MKUuYUZVLQhyRsg06mCgDBTd57TxzgZt7P+fYfjRLtA== + dependencies: + create-hash "^1.1.2" + create-hmac "^1.1.4" + ripemd160 "^2.0.1" + safe-buffer "^5.0.1" + sha.js "^2.4.8" + 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= +picomatch@^2.0.4, picomatch@^2.0.5: + version "2.2.2" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.2.tgz#21f333e9b6b8eaff02468f5146ea406d345f4dad" + integrity sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg== + pify@^2.0.0: version "2.3.0" resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" @@ -4835,7 +6176,7 @@ pify@^4.0.1: resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== -pirates@^4.0.0: +pirates@^4.0.0, pirates@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.1.tgz#643a92caf894566f91b2b986d2c66950a8e2fb87" integrity sha512-WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA== @@ -4856,6 +6197,13 @@ pkg-dir@^3.0.0: dependencies: find-up "^3.0.0" +pkg-dir@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" + integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== + dependencies: + find-up "^4.0.0" + pkg-up@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/pkg-up/-/pkg-up-2.0.0.tgz#c819ac728059a461cab1c3889a2be3c49a004d7f" @@ -4883,6 +6231,11 @@ plugin-error@^0.1.2: arr-union "^2.0.1" extend-shallow "^1.1.2" +pn@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/pn/-/pn-1.1.0.tgz#e2f4cef0e219f463c179ab37463e4e1ecdccbafb" + integrity sha512-2qHaIQr2VLRFoxe2nASzsV6ef4yOOH+Fi9FBOVH6cqeSgUnoyySPZkxzLuzd+RYOQTRpROA0ztTMqxROKSb/nA== + pngjs@^3.3.0: version "3.4.0" resolved "https://registry.yarnpkg.com/pngjs/-/pngjs-3.4.0.tgz#99ca7d725965fb655814eaf65f38f12bbdbf555f" @@ -4893,6 +6246,11 @@ posix-character-classes@^0.1.0: resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs= +prelude-ls@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" + integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ= + pretty-format@^24.7.0, pretty-format@^24.9.0: version "24.9.0" resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-24.9.0.tgz#12fac31b37019a4eea3c11aa9a959eb7628aa7c9" @@ -4903,6 +6261,16 @@ pretty-format@^24.7.0, pretty-format@^24.9.0: ansi-styles "^3.2.0" react-is "^16.8.4" +pretty-format@^25.1.0, pretty-format@^25.4.0: + version "25.4.0" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-25.4.0.tgz#c58801bb5c4926ff4a677fe43f9b8b99812c7830" + integrity sha512-PI/2dpGjXK5HyXexLPZU/jw5T9Q6S1YVXxxVxco+LIqzUFHXIbKZKdUVt7GcX7QUCr31+3fzhi4gN4/wUYPVxQ== + dependencies: + "@jest/types" "^25.4.0" + ansi-regex "^5.0.0" + ansi-styles "^4.0.0" + react-is "^16.12.0" + private@^0.1.8: version "0.1.8" resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff" @@ -4913,7 +6281,7 @@ process-nextick-args@~2.0.0: 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: +process@0.11.10, process@^0.11.10: version "0.11.10" resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" integrity sha1-czIwDoQBYb2j5podHZGn1LwW8YI= @@ -4930,6 +6298,14 @@ promise@^7.1.1: dependencies: asap "~2.0.3" +prompts@^2.0.1: + version "2.3.2" + resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.3.2.tgz#480572d89ecf39566d2bd3fe2c9fccb7c4c0b068" + integrity sha512-Q06uKs2CkNYVID0VqwfAl9mipo99zkBv/n2JtWY89Yxa3ZabWSrs0e2KTudKVa3peLUvYXMefDqIleLPVUBZMA== + dependencies: + kleur "^3.0.3" + sisteransi "^1.0.4" + 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" @@ -4944,10 +6320,22 @@ pseudomap@^1.0.2: resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" integrity sha1-8FKijacOYYkX7wqKw0wa5aaChrM= -psl@^1.1.24: - version "1.4.0" - resolved "https://registry.yarnpkg.com/psl/-/psl-1.4.0.tgz#5dd26156cdb69fa1fdb8ab1991667d3f80ced7c2" - integrity sha512-HZzqCGPecFLyoRj5HLfuDSKYTJkAfB5thKBIkRHtGjWwY7p1dAyveIbXIq4tO0KYfDF2tHqPUgY9SDnGm00uFw== +psl@^1.1.28: + version "1.8.0" + resolved "https://registry.yarnpkg.com/psl/-/psl-1.8.0.tgz#9326f8bcfb013adcc005fdff056acce020e51c24" + integrity sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ== + +public-encrypt@^4.0.0: + version "4.0.3" + resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.3.tgz#4fcc9d77a07e48ba7527e7cbe0de33d0701331e0" + integrity sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q== + dependencies: + bn.js "^4.1.0" + browserify-rsa "^4.0.0" + create-hash "^1.1.0" + parse-asn1 "^5.0.0" + randombytes "^2.0.1" + safe-buffer "^5.1.2" pump@^3.0.0: version "3.0.0" @@ -4957,21 +6345,29 @@ pump@^3.0.0: end-of-stream "^1.1.0" once "^1.3.1" -punycode@^1.4.1: +punycode@1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" + integrity sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0= + +punycode@^1.2.4: version "1.4.1" resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" integrity sha1-wNWmOycYgArY4esPpSachN1BhF4= -punycode@^2.1.0: +punycode@^2.1.0, punycode@^2.1.1: 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.1: - version "1.4.2" - resolved "https://registry.yarnpkg.com/qrcode/-/qrcode-1.4.2.tgz#e7c82a60140916d666541043bd2b0b72ee4e38a6" - integrity sha512-eR6RgxFYPDFH+zFLTJKtoNP/RlsHANQb52AUmQ2bGDPMuUw7jJb0F+DNEgx7qQGIElrbFxWYMc0/B91zLZPF9Q== + 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" @@ -5000,26 +6396,36 @@ query-string@^6.12.0: split-on-first "^1.0.0" strict-uri-encode "^2.0.0" -randomhex@0.1.5: - version "0.1.5" - resolved "https://registry.yarnpkg.com/randomhex/-/randomhex-0.1.5.tgz#baceef982329091400f2a2912c6cd02f1094f585" - integrity sha1-us7vmCMpCRQA8qKRLGzQLxCU9YU= +querystring-es3@^0.2.0: + version "0.2.1" + resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" + integrity sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM= + +querystring@0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" + integrity sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA= + +randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5, 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" + +randomfill@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/randomfill/-/randomfill-1.0.4.tgz#c92196fc86ab42be983f1bf31778224931d61458" + integrity sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw== + dependencies: + randombytes "^2.0.5" + 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.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-devtools-core@^3.6.3: version "3.6.3" resolved "https://registry.yarnpkg.com/react-devtools-core/-/react-devtools-core-3.6.3.tgz#977d95b684c6ad28205f0c62e1e12c5f16675814" @@ -5029,39 +6435,29 @@ react-devtools-core@^3.6.3: ws "^3.3.1" react-dom@^16.4.2: - version "16.10.2" - resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.10.2.tgz#4840bce5409176bc3a1f2bd8cb10b92db452fda6" - integrity sha512-kWGDcH3ItJK4+6Pl9DZB16BXYAZyrYQItU4OMy0jAkv5aNqc+mAKb4TpFtAteI6TJZu+9ZlNhaeNQSVQDHJzkw== + version "16.13.1" + resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.13.1.tgz#c1bd37331a0486c078ee54c4740720993b2e0e7f" + integrity sha512-81PIMmVLnCNLO/fFOQxdQkvEq/+Hfpv24XNJfpyZhTRfO0QcmQIF/PgCa1zCOj2w1hrn12MFLyaJ/G0+Mxtfag== dependencies: loose-envify "^1.1.0" object-assign "^4.1.1" prop-types "^15.6.2" - scheduler "^0.16.2" + scheduler "^0.19.1" -react-is@^16.13.0: +react-is@^16.12.0, react-is@^16.13.0, react-is@^16.8.1, react-is@^16.8.4: version "16.13.1" resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== -react-is@^16.8.1: - version "16.12.0" - resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.12.0.tgz#2cc0fe0fba742d97fd527c42a13bec4eeb06241c" - integrity sha512-rPCkf/mWBtKc97aLL9/txD8DZdemK0vkA3JMLShjlJB3Pj3s+lpf1KaBzMfQrAmhMQB0n1cU/SUGgKKBCe837Q== - -react-is@^16.8.4: - version "16.10.2" - resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.10.2.tgz#984120fd4d16800e9a738208ab1fba422d23b5ab" - integrity sha512-INBT1QEgtcCCgvccr5/86CfD71fw9EPmDxgiJX4I2Ddr6ZsV6iFXsuby+qWJPtmNuMY0zByTsG4468P7nHuNWA== - react-native-background-timer@^2.1.1: - 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== + version "2.2.0" + resolved "https://registry.yarnpkg.com/react-native-background-timer/-/react-native-background-timer-2.2.0.tgz#ff82d30899209b924983cc00e6ce174b8de5054a" + integrity sha512-Y7N6diSFko/FCJPMmB0PoBlmY1kEcma7qDVwn8t7zi12GLqpe/Vwls97onkSD8/QL+BR33BygUHOrLTPwgeKfg== react-native-camera@^3.3.3: - version "3.6.0" - resolved "https://registry.yarnpkg.com/react-native-camera/-/react-native-camera-3.6.0.tgz#91f97bbe97345281efb6398bb97d3628bb903a22" - integrity sha512-hIcMruSNBw6BA1BJ42nzzxXrydHUuJxwqh6WkZK37P2klxraeC9SkqULAYiq+bsQa0lycA03g/4JSMUZw5wbIg== + version "3.23.1" + resolved "https://registry.yarnpkg.com/react-native-camera/-/react-native-camera-3.23.1.tgz#fb6fe52f8a357852de6dcd81d0d187cd632dc7dd" + integrity sha512-ghQT2IhiZiNMDgixD/MrfwgFx9arwOb2z79xDJ8dsz8DFcpBMbXjXZETaAK0WaZ/MWOaY84k0eGlx1hoVT77wQ== dependencies: prop-types "^15.6.2" @@ -5091,17 +6487,17 @@ react-native-fetch-polyfill@^1.1.2: integrity sha512-zr5yXQftuGq+ABGa3n4ZE+vkL1lBsMSePkRINm3/6vlpbwnLXYoijwazTO/W8GjsV4LAgGmzuieZxKO/NxW19A== react-native-fs@^2.14.1: - version "2.14.1" - resolved "https://registry.yarnpkg.com/react-native-fs/-/react-native-fs-2.14.1.tgz#61c70a865b5b5bcb020dd4e4befd60a2c20c836f" - integrity sha512-ZcfiwNP+FBgvv2eRk0B62/NI58mbjszjjYvQlP352HLkUqVsK4Ld6X8fdBO1lZAz6SgitUk8WEc9NEciRIt31g== + version "2.16.6" + resolved "https://registry.yarnpkg.com/react-native-fs/-/react-native-fs-2.16.6.tgz#2901789a43210a35a0ef0a098019bbef3af395fd" + integrity sha512-ZWOooD1AuFoAGY3HS2GY7Qx2LZo4oIg6AK0wbC68detxwvX75R/q9lRqThXNKP6vIo2VHWa0fYUo/SrLw80E8w== dependencies: base-64 "^0.1.0" - utf8 "^2.1.1" + utf8 "^3.0.0" react-native-gesture-handler@^1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/react-native-gesture-handler/-/react-native-gesture-handler-1.6.0.tgz#e9a4e1d0c7ac21eb0d6b6ec013e73f9c0c33a629" - integrity sha512-KulGCWKTxa6xBpPP4LWEPmmLqBqOe2jbtdlILOVF/dR4EgImiaBVrKdOHeRMyMzJOYAWxs5uDZsyA8hgSsm+lw== + version "1.6.1" + resolved "https://registry.yarnpkg.com/react-native-gesture-handler/-/react-native-gesture-handler-1.6.1.tgz#678e2dce250ed66e93af409759be22cd6375dd17" + integrity sha512-gQgIKhDiYf754yzhhliagLuLupvGb6ZyBdzYzr7aus3Fyi87TLOw63ers+r4kGw0h26oAWTAdHd34JnF4NeL6Q== dependencies: "@egjs/hammerjs" "^2.0.17" hoist-non-react-statics "^2.3.1" @@ -5145,14 +6541,16 @@ react-native-languages@^3.0.2: resolved "git+https://github.com/status-im/react-native-navigation-twopane.git#04ed5fddfb46a6a3ee30776987acb4d3b11c27d4" react-native-reanimated@^1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/react-native-reanimated/-/react-native-reanimated-1.7.0.tgz#896db2576552ac59d288a1f6c7f00afc171f240c" - integrity sha512-FQWSqP605eQVJumuK2HpR+7heF0ZI+qfy4jNguv3Xv8nPFHeIgZaRTXHCEQL2AcuSIj50zy8jGJf5l134QMQWQ== + version "1.8.0" + resolved "https://registry.yarnpkg.com/react-native-reanimated/-/react-native-reanimated-1.8.0.tgz#0b5719b20c1fed9aaf8afd9a12e21c9bd46ee428" + integrity sha512-vGTt94lE5fsZmfMwERWFIsCr5LHsyllOESeNvlKryLgAg7h4cnJ5XSmVSy4L3qogdgFYCL6HEgY+s7tQmKXiiQ== + dependencies: + fbjs "^1.0.0" react-native-redash@^10.0.1: - version "10.0.1" - resolved "https://registry.yarnpkg.com/react-native-redash/-/react-native-redash-10.0.1.tgz#ffcc554e407b0382635ab1370c9c52b1706d8af1" - integrity sha512-oXmYqr6NM3I5FTGpG5Yt4HkTafoSCjgy63nTSSGvQv3IUnHhUjHge7v+boUd8boZWkor96pMwNsb5pKREGDacQ== + version "10.1.1" + resolved "https://registry.yarnpkg.com/react-native-redash/-/react-native-redash-10.1.1.tgz#228564f2a9cee2406b8f87b1c90c2fdf7d81cdfb" + integrity sha512-VxyKygf//IzDgJfK5oFK0KYSaxxpuXwwVE2rldtINRByuCIZIUx8QVE3pmxG7XYc15T4OHC3l7wug+tLsLI44w== dependencies: abs-svg-path "^0.1.1" normalize-svg-path "^1.0.1" @@ -5165,9 +6563,9 @@ react-native-safe-area-context@^0.7.3: integrity sha512-9Uqu1vlXPi+2cKW/CW6OnHxA76mWC4kF3wvlqzq4DY8hn37AeiXtLFs2WkxH4yXQRrnJdP6ivc65Lz+MqwRZAA== react-native-screens@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/react-native-screens/-/react-native-screens-2.3.0.tgz#fd2b0c841f4fdebb2937c0e84acccc62bf9ebb22" - integrity sha512-b+zazYedHPZoDzeKOE4RF/rPpJX8AAITazZCsVFUtw5Qn2QNHvAi0xbzWvQFNgqfvET0TLuu8F2HfBDh1WSqdQ== + version "2.5.0" + resolved "https://registry.yarnpkg.com/react-native-screens/-/react-native-screens-2.5.0.tgz#2c5b5a56d3b8be64d459d53da154bde926021a50" + integrity sha512-5Ak/J41eZzvU2zvik8YH825ppFdKR4cootbAq9ETwdQoN0fu4GBdOpX7paKW2jFCTsh3OOoyRRW2xYvLczZqVw== dependencies: debounce "^1.2.0" @@ -5188,9 +6586,12 @@ react-native-splash-screen@^3.2.0: resolved "git+https://github.com/status-im/react-native-status-keycard.git#900de62a4c77b6baeca6a7341994de8a1d95ae4f" react-native-svg@^9.8.4: - version "9.11.1" - resolved "https://registry.yarnpkg.com/react-native-svg/-/react-native-svg-9.11.1.tgz#b1ccf48de413ff8c4f476f202aaa3893f4c8b59a" - integrity sha512-BmNCM81SSzhj1+N5rYiy7sxrkmybgiT8Cu8yVRB7zVoWze/i1lbCWJah+Gk0OHHwR35ZA31oVKf5jtO4G1n94Q== + version "9.13.6" + resolved "https://registry.yarnpkg.com/react-native-svg/-/react-native-svg-9.13.6.tgz#5365fba2bc460054b90851e71f2a71006a5d373f" + integrity sha512-vjjuJhEhQCwWjqsgWyGy6/C/LIBM2REDxB40FU1PMhi8T3zQUwUHnA6M15pJKlQG8vaZyA+QnLyIVhjtujRgig== + dependencies: + css-select "^2.0.2" + css-tree "^1.0.0-alpha.37" react-native-touch-id@^4.4.1: version "4.4.1" @@ -5269,6 +6670,15 @@ read-pkg-up@^4.0.0: find-up "^3.0.0" read-pkg "^3.0.0" +read-pkg-up@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-7.0.1.tgz#f3a6135758459733ae2b95638056e1854e7ef507" + integrity sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg== + dependencies: + find-up "^4.1.0" + read-pkg "^5.2.0" + type-fest "^0.8.1" + read-pkg@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-2.0.0.tgz#8ef1c0623c6a6db0dc6713c4bfac46332b2368f8" @@ -5287,10 +6697,20 @@ read-pkg@^3.0.0: normalize-package-data "^2.3.2" path-type "^3.0.0" -readable-stream@^2.0.1, readable-stream@^2.0.6, readable-stream@^2.2.2, 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== +read-pkg@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-5.2.0.tgz#7bf295438ca5a33e56cd30e053b34ee7250c93cc" + integrity sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg== + dependencies: + "@types/normalize-package-data" "^2.4.0" + normalize-package-data "^2.5.0" + parse-json "^5.0.0" + type-fest "^0.6.0" + +readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.6, readable-stream@~2.3.6: + version "2.3.7" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" + integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== dependencies: core-util-is "~1.0.0" inherits "~2.0.3" @@ -5300,6 +6720,16 @@ readable-stream@^2.0.1, readable-stream@^2.0.6, readable-stream@^2.2.2, readable string_decoder "~1.1.1" util-deprecate "~1.0.1" +readline-sync@^1.4.7: + version "1.4.10" + resolved "https://registry.yarnpkg.com/readline-sync/-/readline-sync-1.4.10.tgz#41df7fbb4b6312d673011594145705bf56d8873b" + integrity sha512-gNva8/6UAe8QYepIQH/jQ2qn91Qj0B9sYjMBBs3QOB8F2CXcKgLxQaJRP76sWVRQt+QU+8fAkCbCvjjMFu7Ycw== + +realpath-native@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/realpath-native/-/realpath-native-2.0.0.tgz#7377ac429b6e1fd599dc38d08ed942d0d7beb866" + integrity sha512-v1SEYUOXXdbBZK8ZuNgO4TBjamPsiSgcFr0aP+tEKpQZK8vooEUqV6nm6Cv502mX4NF2EfsnVqtNAHG+/6Ur1Q== + regenerate-unicode-properties@^8.2.0: version "8.2.0" resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz#e5de7111d655e7ba60c057dbe9ff37c87e65cdec" @@ -5312,12 +6742,7 @@ regenerate@^1.4.0: resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.0.tgz#4a856ec4b56e4077c557589cae85e7a4c8869a11" integrity sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg== -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-runtime@^0.13.4: +regenerator-runtime@^0.13.2, regenerator-runtime@^0.13.4: version "0.13.5" resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz#d878a1d094b4306d10b9096484b33ebd55e26697" integrity sha512-ZS5w8CpKFinUzOwW3c83oPeVXoNsrLsaCoLtJvAClH135j/R77RuymhiSErhm2lKcwSCIpmvIWSbDkIfAqKQlA== @@ -5384,10 +6809,36 @@ repeat-string@^1.6.1: resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc= -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== +request-promise-core@1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/request-promise-core/-/request-promise-core-1.1.3.tgz#e9a3c081b51380dfea677336061fea879a829ee9" + integrity sha512-QIs2+ArIGQVp5ZYbWD5ZLCY29D5CfWizP8eWnm8FoGD1TX61veauETVQbrV60662V0oFBkrDOuaBI8XgtuyYAQ== + dependencies: + lodash "^4.17.15" + +request-promise-native@^1.0.7: + version "1.0.8" + resolved "https://registry.yarnpkg.com/request-promise-native/-/request-promise-native-1.0.8.tgz#a455b960b826e44e2bf8999af64dff2bfe58cb36" + integrity sha512-dapwLGqkHtwL5AEbfenuzjTYg35Jd6KPytsC2/TLkVMz8rm+tNt72MGUWT1RP/aYawMpN6HqbNGBQaRcBtjQMQ== + dependencies: + request-promise-core "1.1.3" + stealthy-require "^1.1.1" + tough-cookie "^2.3.3" + +request-promise@^4.2.4: + version "4.2.5" + resolved "https://registry.yarnpkg.com/request-promise/-/request-promise-4.2.5.tgz#186222c59ae512f3497dfe4d75a9c8461bd0053c" + integrity sha512-ZgnepCykFdmpq86fKGwqntyTiUrHycALuGggpyCZwMvGaZWgxW6yagT0FHkgo5LzYvOaCNvxYwWYIjevSH1EDg== + dependencies: + bluebird "^3.5.0" + request-promise-core "1.1.3" + stealthy-require "^1.1.1" + tough-cookie "^2.3.3" + +request@^2.88.0: + version "2.88.2" + resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3" + integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw== dependencies: aws-sign2 "~0.7.0" aws4 "^1.8.0" @@ -5396,7 +6847,7 @@ request@^2.86.0: extend "~3.0.2" forever-agent "~0.6.1" form-data "~2.3.2" - har-validator "~5.1.0" + har-validator "~5.1.3" http-signature "~1.2.0" is-typedarray "~1.0.0" isstream "~0.1.2" @@ -5406,7 +6857,7 @@ request@^2.86.0: performance-now "^2.1.0" qs "~6.5.2" safe-buffer "^5.1.2" - tough-cookie "~2.4.3" + tough-cookie "~2.5.0" tunnel-agent "^0.6.0" uuid "^3.3.2" @@ -5425,6 +6876,13 @@ require-main-filename@^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-cwd@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-3.0.0.tgz#0f0075f1bb2544766cf73ba6a6e2adfebcb13f2d" + integrity sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg== + dependencies: + resolve-from "^5.0.0" + resolve-from@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748" @@ -5435,15 +6893,25 @@ resolve-from@^4.0.0: resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== +resolve-from@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" + integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== + 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.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== +resolve@1.1.7: + version "1.1.7" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" + integrity sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs= + +resolve@^1.10.0, resolve@^1.15.1, resolve@^1.3.2, resolve@^1.5.0, resolve@^1.8.1: + version "1.16.1" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.16.1.tgz#49fac5d8bacf1fd53f200fa51247ae736175832c" + integrity sha512-rmAglCSqWWMrrBv/XM6sW0NuRFiKViw/W4d9EbC4pt+49H8JwHy+mcGmALTEg504AUDcLTvb1T2q3E9AnmY+ig== dependencies: path-parse "^1.0.6" @@ -5460,18 +6928,33 @@ ret@~0.1.10: resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg== -rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.2, rimraf@^2.6.3: +rimraf@^2.5.4, 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@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" + integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== + 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= +ripemd160@^2.0.0, ripemd160@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" + integrity sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA== + dependencies: + hash-base "^3.0.0" + inherits "^2.0.1" + "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" @@ -5486,9 +6969,9 @@ rsvp@^4.8.4: integrity sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA== 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= + version "2.4.0" + resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.4.0.tgz#e59054a5b86876cfae07f431d18cbaddc594f1e8" + integrity sha512-xJTbh/d7Lm7SBhc1tNvTpeCHaEzoyxPrqNlvSdMfBTYwaY++UJFyXUOxAtsRUXjlqOfj8luNaR9vjCh4KeV+pg== dependencies: is-promise "^2.1.0" @@ -5523,7 +7006,7 @@ safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: 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.2: +safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, 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== @@ -5555,11 +7038,18 @@ sane@^4.0.3: minimist "^1.1.1" walker "~1.0.5" -sax@^1.2.1, sax@^1.2.4: +sax@^1.2.1: version "1.2.4" resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== +saxes@^3.1.9: + version "3.1.11" + resolved "https://registry.yarnpkg.com/saxes/-/saxes-3.1.11.tgz#d59d1fd332ec92ad98a2e0b2ee644702384b1c5b" + integrity sha512-Ydydq3zC+WYDJK1+gRxRapLIED9PWeSuuS41wqyoRmzvhhh9nc+QQrVMKJYzJFULazeGhzSV0QleN2wD3boh2g== + dependencies: + xmlchars "^2.1.1" + scheduler@0.15.0: version "0.15.0" resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.15.0.tgz#6bfcf80ff850b280fed4aeecc6513bc0b4f17f8e" @@ -5568,10 +7058,10 @@ scheduler@0.15.0: loose-envify "^1.1.0" object-assign "^4.1.1" -scheduler@^0.16.2: - version "0.16.2" - resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.16.2.tgz#f74cd9d33eff6fc554edfb79864868e4819132c1" - integrity sha512-BqYVWqwz6s1wZMhjFvLfVR5WXP7ZY32M/wYPo04CcuPM7XZEbV2TBNW7Z0UkguPTl0dWMA59VbNXxK6q+pHItg== +scheduler@^0.19.1: + version "0.19.1" + resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.19.1.tgz#4f3e2ed2c1a7d65681f4c854fa8c5a1ccb40f196" + integrity sha512-n/zwRWRYSUj0/3g/otKDRPMh6qv2SYMWNq85IEa8iZyAv8od9zDYpGSnpBEjNgcMNq6Scbu5KfIPxNF72R/2EA== dependencies: loose-envify "^1.1.0" object-assign "^4.1.1" @@ -5620,7 +7110,7 @@ serve-static@^1.13.1: parseurl "~1.3.3" send "0.17.1" -set-blocking@^2.0.0, 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= @@ -5635,7 +7125,7 @@ set-value@^2.0.0, set-value@^2.0.1: is-plain-object "^2.0.3" split-string "^3.0.1" -setimmediate@^1.0.5: +setimmediate@^1.0.4, setimmediate@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" integrity sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU= @@ -5645,6 +7135,31 @@ setprototypeof@1.1.1: resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.1.tgz#7e95acb24aa92f5885e0abef5ba131330d4ae683" integrity sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw== +sha.js@^2.4.0, sha.js@^2.4.8: + version "2.4.11" + resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" + integrity sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ== + dependencies: + inherits "^2.0.1" + safe-buffer "^5.0.1" + +shadow-cljs-jar@1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/shadow-cljs-jar/-/shadow-cljs-jar-1.3.2.tgz#97273afe1747b6a2311917c1c88d9e243c81957b" + integrity sha512-XmeffAZHv8z7451kzeq9oKh8fh278Ak+UIOGGrapyqrFBB773xN8vMQ3O7J7TYLnb9BUwcqadKkmgaq7q6fhZg== + +shadow-cljs@2.8.99: + version "2.8.99" + resolved "https://registry.yarnpkg.com/shadow-cljs/-/shadow-cljs-2.8.99.tgz#877ae59de3ecd7b0510f63ca67555f6b1744fa3c" + integrity sha512-sfTrdJKeUKnD6GVc9/DDuM6CGOeHzg9x7/0/H7qIqTraT6pSdBbulygXrGY2egJ1moruk+E9s1NgU3tUyZ9PkA== + dependencies: + node-libs-browser "^2.0.0" + readline-sync "^1.4.7" + shadow-cljs-jar "1.3.2" + source-map-support "^0.4.15" + which "^1.3.1" + ws "^3.0.0" + shebang-command@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" @@ -5652,11 +7167,23 @@ shebang-command@^1.2.0: dependencies: shebang-regex "^1.0.0" +shebang-command@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" + integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== + dependencies: + shebang-regex "^3.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= +shebang-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" + integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== + shell-quote@1.6.1: version "1.6.1" resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.6.1.tgz#f4781949cce402697127430ea3b3c5476f481767" @@ -5678,9 +7205,9 @@ shellwords@^0.1.1: 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= + version "3.0.3" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c" + integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA== simple-concat@^1.0.0: version "1.0.0" @@ -5697,12 +7224,12 @@ simple-get@^2.7.0: simple-concat "^1.0.0" simple-plist@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/simple-plist/-/simple-plist-1.0.0.tgz#bed3085633b22f371e111f45d159a1ccf94b81eb" - integrity sha512-043L2rO80LVF7zfZ+fqhsEkoJFvW8o59rt/l4ctx1TJWoTx7/jkiS1R5TatD15Z1oYnuLJytzE7gcnnBuIPL2g== + version "1.1.0" + resolved "https://registry.yarnpkg.com/simple-plist/-/simple-plist-1.1.0.tgz#8354ab63eb3922a054c78ce96c209c532e907a23" + integrity sha512-2i5Tc0BYAqppM7jVzmNrI+aEUntPolIq4fDgji6WuNNn1D/qYdn2KwoLhZdzQkE04lu9L5tUoeJsjuJAvd+lFg== dependencies: - bplist-creator "0.0.7" - bplist-parser "0.1.1" + bplist-creator "0.0.8" + bplist-parser "0.2.0" plist "^3.0.1" simple-swizzle@^0.2.2: @@ -5712,6 +7239,11 @@ simple-swizzle@^0.2.2: dependencies: is-arrayish "^0.3.1" +sisteransi@^1.0.4: + version "1.0.5" + resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed" + integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg== + slash@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/slash/-/slash-2.0.0.tgz#de552851a1759df3a8f206535442f5ec4ddeab44" @@ -5767,20 +7299,27 @@ snapdragon@^0.8.1: 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== + version "0.5.3" + resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz#190866bece7553e1f8f267a2ee82c606b5509a1a" + integrity sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw== dependencies: - atob "^2.1.1" + atob "^2.1.2" 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.9: - version "0.5.19" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.19.tgz#a98b62f86dcaf4f67399648c085291ab9e8fed61" - integrity sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw== +source-map-support@^0.4.15: + version "0.4.18" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.18.tgz#0286a6de8be42641338594e97ccea75f0a2c585f" + integrity sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA== + dependencies: + source-map "^0.5.6" + +source-map-support@^0.5.16, source-map-support@^0.5.6, source-map-support@^0.5.9: + version "0.5.18" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.18.tgz#f5f33489e270bd7f7d7e7b8debf283f3a4066960" + integrity sha512-9luZr/BZ2QeU6tO2uG8N2aZpVSli4TSAOAqFOyTO51AJcD9P99c0K1h6dD6r6qo5dyT44BR5exweOaLLeldTkQ== dependencies: buffer-from "^1.0.0" source-map "^0.6.0" @@ -5800,6 +7339,11 @@ source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1: resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== +source-map@^0.7.3: + version "0.7.3" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383" + integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ== + spawn-wrap@^1.4.2: version "1.4.3" resolved "https://registry.yarnpkg.com/spawn-wrap/-/spawn-wrap-1.4.3.tgz#81b7670e170cca247d80bf5faf0cfb713bdcf848" @@ -5821,9 +7365,9 @@ spdx-correct@^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== + version "2.3.0" + resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz#3f28ce1a77a00372683eade4a433183527a2163d" + integrity sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A== spdx-expression-parse@^3.0.0: version "3.0.0" @@ -5876,9 +7420,9 @@ stack-utils@^1.0.1: integrity sha512-MTX+MeG5U994cazkjd/9KNAapsHnibjMLnfXodlkXw76JEea0UiNzrqidzo1emMwk7w5Qhc9jd4Bn9TBb1MFwA== 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== + version "0.1.9" + resolved "https://registry.yarnpkg.com/stacktrace-parser/-/stacktrace-parser-0.1.9.tgz#11e6d61d42e8cfc87293143d0766408b7a87b00f" + integrity sha512-DRy03ljj0367Ud3OAJHD6eVS/+CvMK2u/djVYuU37fHYcYHoZ8tkFyhbRf7PNG1h3bWLsw+SNTSXrPFe07A7aQ== dependencies: type-fest "^0.7.1" @@ -5895,11 +7439,35 @@ static-extend@^0.1.1: resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= +stealthy-require@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/stealthy-require/-/stealthy-require-1.1.1.tgz#35b09875b4ff49f26a777e509b3090a3226bf24b" + integrity sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks= + +stream-browserify@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.2.tgz#87521d38a44aa7ee91ce1cd2a47df0cb49dd660b" + integrity sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg== + dependencies: + inherits "~2.0.1" + readable-stream "^2.0.2" + 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= +stream-http@^2.7.2: + version "2.8.3" + resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.8.3.tgz#b2d242469288a5a27ec4fe8933acf623de6514fc" + integrity sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw== + dependencies: + builtin-status-codes "^3.0.0" + inherits "^2.0.1" + readable-stream "^2.3.6" + to-arraybuffer "^1.0.0" + xtend "^4.0.0" + 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" @@ -5910,6 +7478,14 @@ strict-uri-encode@^2.0.0: resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz#b9c7330c7042862f6b142dc274bbcc5866ce3546" integrity sha1-ucczDHBChi9rFC3CdLvMWGbONUY= +string-length@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/string-length/-/string-length-3.1.0.tgz#107ef8c23456e187a8abd4a61162ff4ac6e25837" + integrity sha512-Ttp5YvkGm5v9Ijagtaz1BnN+k9ObpvS0eIBblPMp2YWL8FBmi9qblQ9fexc2k/CXFgrTIteU3jAw3payCnwSTA== + dependencies: + astral-regex "^1.0.0" + strip-ansi "^5.2.0" + string-width@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" @@ -5919,7 +7495,7 @@ string-width@^1.0.1: 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: +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== @@ -5936,30 +7512,55 @@ string-width@^3.0.0, string-width@^3.1.0: 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== +string-width@^4.1.0, string-width@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.0.tgz#952182c46cc7b2c313d1596e623992bd163b72b5" + integrity sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg== dependencies: - define-properties "^1.1.3" - es-abstract "^1.13.0" - function-bind "^1.1.1" + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.0" -string.prototype.trimleft@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/string.prototype.trimleft/-/string.prototype.trimleft-2.1.0.tgz#6cc47f0d7eb8d62b0f3701611715a3954591d634" - integrity sha512-FJ6b7EgdKxxbDxc79cOlok6Afd++TTs5szo+zJTUyow3ycrRfJVE2pq3vcN53XexvKZu/DJMDfeI/qMiZTrjTw== +string.prototype.trimend@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz#85812a6b847ac002270f5808146064c995fb6913" + integrity sha512-LRPxFUaTtpqYsTeNKaFOw3R4bxIzWOnbQ837QfBylo8jIxtcbK/A/sMV7Q+OAV/vWo+7s25pOE10KYSjaSO06g== dependencies: define-properties "^1.1.3" - function-bind "^1.1.1" + es-abstract "^1.17.5" -string.prototype.trimright@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/string.prototype.trimright/-/string.prototype.trimright-2.1.0.tgz#669d164be9df9b6f7559fa8e89945b168a5a6c58" - integrity sha512-fXZTSV55dNBwv16uw+hh5jkghxSnc5oHq+5K/gXgizHwAvMetdAJlHqqoFC1FSDVPYWLkAKl2cxpUT41sV7nSg== +string.prototype.trimleft@^2.1.1: + version "2.1.2" + resolved "https://registry.yarnpkg.com/string.prototype.trimleft/-/string.prototype.trimleft-2.1.2.tgz#4408aa2e5d6ddd0c9a80739b087fbc067c03b3cc" + integrity sha512-gCA0tza1JBvqr3bfAIFJGqfdRTyPae82+KTnm3coDXkZN9wnuW3HjGgN386D7hfv5CHQYCI022/rJPVlqXyHSw== dependencies: define-properties "^1.1.3" - function-bind "^1.1.1" + es-abstract "^1.17.5" + string.prototype.trimstart "^1.0.0" + +string.prototype.trimright@^2.1.1: + version "2.1.2" + resolved "https://registry.yarnpkg.com/string.prototype.trimright/-/string.prototype.trimright-2.1.2.tgz#c76f1cef30f21bbad8afeb8db1511496cfb0f2a3" + integrity sha512-ZNRQ7sY3KroTaYjRS6EbNiiHrOkjihL9aQE/8gfQ4DtAC/aEBRHFJa44OmoWxGGqXuJlfKkZW4WcXErGr+9ZFg== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.5" + string.prototype.trimend "^1.0.0" + +string.prototype.trimstart@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz#14af6d9f34b053f7cfc89b72f8f2ee14b9039a54" + integrity sha512-XxZn+QpvrBI1FOcg6dIpxUPgWCPuNXvMD72aaRaUQv1eD4e/Qy8i/hFTe0BUmD60p/QA6bh1avmuPTfNjqVWRw== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.5" + +string_decoder@^1.0.0: + 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" @@ -5989,16 +7590,33 @@ strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0: dependencies: ansi-regex "^4.1.0" +strip-ansi@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532" + integrity sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w== + dependencies: + ansi-regex "^5.0.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-bom@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-4.0.0.tgz#9c3505c1db45bcedca3d9cf7a16f5c5aa3901878" + integrity sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w== + 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-final-newline@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" + integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== + 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" @@ -6006,11 +7624,6 @@ strip-hex-prefix@1.0.0: 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= - sudo-prompt@^9.0.0: version "9.1.1" resolved "https://registry.yarnpkg.com/sudo-prompt/-/sudo-prompt-9.1.1.tgz#73853d729770392caec029e2470db9c221754db0" @@ -6030,6 +7643,21 @@ supports-color@^6.1.0: dependencies: has-flag "^3.0.0" +supports-color@^7.0.0, supports-color@^7.1.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.1.0.tgz#68e32591df73e25ad1c4b49108a2ec507962bfd1" + integrity sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g== + dependencies: + has-flag "^4.0.0" + +supports-hyperlinks@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/supports-hyperlinks/-/supports-hyperlinks-2.1.0.tgz#f663df252af5f37c5d49bbd7eeefa9e0b9e59e47" + integrity sha512-zoE5/e+dnEijk6ASB6/qrK+oYdm2do1hjoLWrqUC/8WEIW1gbxFcKuBof7sW8ArN6e+AYvsE8HBGiVRWL/F5CA== + dependencies: + has-flag "^4.0.0" + supports-color "^7.0.0" + svg-arc-to-cubic-bezier@^3.0.0: version "3.2.0" resolved "https://registry.yarnpkg.com/svg-arc-to-cubic-bezier/-/svg-arc-to-cubic-bezier-3.2.0.tgz#390c450035ae1c4a0104d90650304c3bc814abe6" @@ -6045,7 +7673,12 @@ symbol-observable@^1.0.1: resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.2.0.tgz#c22688aed4eab3cdc2dfeacbb561660560a00804" integrity sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ== -tar@^4: +symbol-tree@^3.2.2: + version "3.2.4" + resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2" + integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw== + +tar@^4.4.10: version "4.4.13" resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.13.tgz#43b364bc52888d555298637b10d60790254ab525" integrity sha512-w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA== @@ -6066,6 +7699,14 @@ temp@0.8.3: os-tmpdir "^1.0.0" rimraf "~2.2.6" +terminal-link@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/terminal-link/-/terminal-link-2.1.1.tgz#14a64a27ab3c0df933ea546fba55f2d078edc994" + integrity sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ== + dependencies: + ansi-escapes "^4.2.1" + supports-hyperlinks "^2.0.0" + test-exclude@^5.2.3: version "5.2.3" resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-5.2.3.tgz#c3d3e1e311eb7ee405e092dac10aefd09091eac0" @@ -6076,11 +7717,25 @@ test-exclude@^5.2.3: read-pkg-up "^4.0.0" require-main-filename "^2.0.0" +test-exclude@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-6.0.0.tgz#04a8698661d805ea6fa293b6cb9e63ac044ef15e" + integrity sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w== + dependencies: + "@istanbuljs/schema" "^0.1.2" + glob "^7.1.4" + minimatch "^3.0.4" + throat@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/throat/-/throat-4.1.0.tgz#89037cbc92c56ab18926e6ba4cbb200e15672a6a" integrity sha1-iQN8vJLFarGJJua6TLsgDhVnKmo= +throat@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/throat/-/throat-5.0.0.tgz#c5199235803aad18754a667d659b5e72ce16764b" + integrity sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA== + through2@^2.0.0, through2@^2.0.1: version "2.0.5" resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" @@ -6104,6 +7759,13 @@ timed-out@^4.0.1: resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-4.0.1.tgz#f32eacac5a175bea25d7fab565ab3ed8741ef56f" integrity sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8= +timers-browserify@^2.0.4: + version "2.0.11" + resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.11.tgz#800b1f3eee272e5bc53ee465a04d0e804c31211f" + integrity sha512-60aV6sgJ5YEbzUdn9c8kYGIqOubPoUdqQCul3SBAsRCZ40s6Y5cMcrW4dt3/k/EsbLVJNl9n6Vz3fTc+k2GeKQ== + dependencies: + setimmediate "^1.0.4" + tmp@^0.0.33: version "0.0.33" resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" @@ -6116,6 +7778,11 @@ tmpl@1.0.x: resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.4.tgz#23640dd7b42d00433911140820e5cf440e521dd1" integrity sha1-I2QN17QtAEM5ERQIIOXPRA5SHdE= +to-arraybuffer@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" + integrity sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M= + 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" @@ -6136,6 +7803,13 @@ to-regex-range@^2.1.0: is-number "^3.0.0" repeat-string "^1.6.1" +to-regex-range@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" + integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== + dependencies: + is-number "^7.0.0" + 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" @@ -6156,19 +7830,45 @@ toolkit.ts@^0.0.2: resolved "https://registry.yarnpkg.com/toolkit.ts/-/toolkit.ts-0.0.2.tgz#91bde730e5e6ad1a22146cdaf83f4a52721cf3b2" integrity sha512-yJJTVbCwiD6AfFgReewJCGJuODmyZUeL1sDjnxp33t0UBxnezgQrLbz/F9++RC28CTlk5u5pVji4TbeondYEkw== -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== +tough-cookie@^2.3.3, tough-cookie@~2.5.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2" + integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g== dependencies: - psl "^1.1.24" - punycode "^1.4.1" + psl "^1.1.28" + punycode "^2.1.1" + +tough-cookie@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-3.0.1.tgz#9df4f57e739c26930a018184887f4adb7dca73b2" + integrity sha512-yQyJ0u4pZsv9D4clxO69OEjLWYw+jbgspjTue4lTQZLfV0c5l1VmK2y1JK8E9ahdpltPOaAThPcp5nKPUgSnsg== + dependencies: + ip-regex "^2.1.0" + psl "^1.1.28" + punycode "^2.1.1" + +tr46@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/tr46/-/tr46-1.0.1.tgz#a8b13fd6bfd2489519674ccde55ba3693b706d09" + integrity sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk= + dependencies: + punycode "^2.1.0" + +"traverse@>=0.3.0 <0.4": + version "0.3.9" + resolved "https://registry.yarnpkg.com/traverse/-/traverse-0.3.9.tgz#717b8f220cc0bb7b44e40514c22b2e8bbc70d8b9" + integrity sha1-cXuPIgzAu3tE5AUUwisui7xw2Lk= 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= +tty-browserify@0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" + integrity sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY= + tunnel-agent@^0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" @@ -6181,20 +7881,54 @@ tweetnacl@^0.14.3, tweetnacl@~0.14.0: resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q= +type-check@~0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" + integrity sha1-WITKtRLPHTVeP7eE8wgEsrUg23I= + dependencies: + prelude-ls "~1.1.2" + +type-detect@4.0.8: + version "4.0.8" + resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" + integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== + +type-fest@^0.11.0: + version "0.11.0" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.11.0.tgz#97abf0872310fed88a5c466b25681576145e33f1" + integrity sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ== + +type-fest@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.6.0.tgz#8d2a2370d3df886eb5c90ada1c5bf6188acf838b" + integrity sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg== + 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== +type-fest@^0.8.1: + version "0.8.1" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" + integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== + +typedarray-to-buffer@^3.1.5: + version "3.1.5" + resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080" + integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q== + dependencies: + is-typedarray "^1.0.0" + 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== + version "0.7.21" + resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.21.tgz#853cf9ce93f642f67174273cc34565ae6f308777" + integrity sha512-+O8/qh/Qj8CgC6eYBVBykMrNtp5Gebn4dlGD/kKXVkJNDwyrAwSIqwz8CDf+tsAIWVycKcku6gIXJ0qwx/ZXaQ== uglify-es@^3.1.9: version "3.3.9" @@ -6204,14 +7938,6 @@ uglify-es@^3.1.9: 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" @@ -6278,6 +8004,14 @@ unset-value@^1.0.0: has-value "^0.3.1" isobject "^3.0.0" +unzip-stream@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/unzip-stream/-/unzip-stream-0.3.0.tgz#c30c054cd6b0d64b13a23cd3ece911eb0b2b52d8" + integrity sha512-NG1h/MdGIX3HzyqMjyj1laBCmlPYhcO4xEy7gEqqzGiSLw7XqDQCnY4nYSn5XSaH8mQ6TFkaujrO8d/PIZN85A== + dependencies: + binary "^0.3.0" + mkdirp "^0.5.1" + uri-js@^4.2.2: version "4.2.2" resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.2.2.tgz#94c540e1ff772956e2299507c010aea6c8838eb0" @@ -6295,6 +8029,14 @@ url-set-query@^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@^0.11.0: + version "0.11.0" + resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" + integrity sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE= + dependencies: + punycode "1.3.2" + querystring "0.2.0" + use-memo-one@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/use-memo-one/-/use-memo-one-1.1.1.tgz#39e6f08fe27e422a7d7b234b5f9056af313bd22c" @@ -6312,30 +8054,48 @@ use@^3.1.0: resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ== -utf8@3.0.0: +utf8@3.0.0, 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: 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" + +util@^0.11.0: + version "0.11.1" + resolved "https://registry.yarnpkg.com/util/-/util-0.11.1.tgz#3236733720ec64bb27f6e26f421aaa2e1b588d61" + integrity sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ== + dependencies: + inherits "2.0.3" + 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== + version "3.4.0" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" + integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== + +v8-to-istanbul@^4.1.3: + version "4.1.3" + resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-4.1.3.tgz#22fe35709a64955f49a08a7c7c959f6520ad6f20" + integrity sha512-sAjOC+Kki6aJVbUOXJbcR0MnbfjvBzwKZazEJymA2IX49uoOdEdk+4fBq5cXgYgiyKtAyrrJNtBZdOeDIF+Fng== + dependencies: + "@types/istanbul-lib-coverage" "^2.0.1" + convert-source-map "^1.6.0" + source-map "^0.7.3" validate-npm-package-license@^3.0.1: version "3.0.4" @@ -6364,6 +8124,27 @@ vlq@^1.0.0: resolved "https://registry.yarnpkg.com/vlq/-/vlq-1.0.1.tgz#c003f6e7c0b4c1edd623fd6ee50bbc0d6a1de468" integrity sha512-gQpnTgkubC6hQgdIcRdYGDSDc+SaujOdyesZQMv6JlfQee/9Mp0Qhnys6WxDWvQnL5WZdT7o2Ul187aSt0Rq+w== +vm-browserify@^1.0.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.2.tgz#78641c488b8e6ca91a75f511e7a3b32a86e5dda0" + integrity sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ== + +w3c-hr-time@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz#0a89cdf5cc15822df9c360543676963e0cc308cd" + integrity sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ== + dependencies: + browser-process-hrtime "^1.0.0" + +w3c-xmlserializer@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/w3c-xmlserializer/-/w3c-xmlserializer-1.1.2.tgz#30485ca7d70a6fd052420a3d12fd90e6339ce794" + integrity sha512-p10l/ayESzrBMYWRID6xbuCKh2Fp77+sA0doRuGn4tTIMrrZVeqfpKjXHY+oDh3K4nLdPgNwMTVP6Vp4pvqbNg== + dependencies: + domexception "^1.0.1" + webidl-conversions "^4.0.2" + xml-name-validator "^3.0.0" + walker@^1.0.7, walker@~1.0.5: version "1.0.7" resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.7.tgz#2f7f9b8fd10d677262b18a884e28d19618e028fb" @@ -6379,52 +8160,79 @@ wcwidth@^1.0.1: defaults "^1.0.3" web3-utils@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/web3-utils/-/web3-utils-1.2.1.tgz#21466e38291551de0ab34558de21512ac4274534" - integrity sha512-Mrcn3l58L+yCKz3zBryM6JZpNruWuT0OCbag8w+reeNROSGVlXzUQkU+gtAwc9JCZ7tKUyg67+2YUGqUjVcyBA== + version "1.2.6" + resolved "https://registry.yarnpkg.com/web3-utils/-/web3-utils-1.2.6.tgz#b9a25432da00976457fcc1094c4af8ac6d486db9" + integrity sha512-8/HnqG/l7dGmKMgEL9JeKPTtjScxOePTzopv5aaKFExPfaBrYRkgoMqhoowCiAl/s16QaTn4DoIF1QC4YsT7Mg== 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" - randomhex "0.1.5" + randombytes "^2.1.0" underscore "1.9.1" utf8 "3.0.0" +webidl-conversions@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-4.0.2.tgz#a855980b1f0b6b359ba1d5d9fb39ae941faa63ad" + integrity sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg== + +whatwg-encoding@^1.0.1, whatwg-encoding@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz#5abacf777c32166a51d085d6b4f3e7d27113ddb0" + integrity sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw== + dependencies: + iconv-lite "0.4.24" + whatwg-fetch@>=0.10.0, whatwg-fetch@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-3.0.0.tgz#fc804e458cc460009b1a2b966bc8817d2578aefb" integrity sha512-9GSJUgz1D4MfyKU7KRqwOjXCXTqWdFNvEr7eUBYchQiVc744mqK/MzXPNR2WsPkmkOa4ywfg8C2n8h+13Bey1Q== +whatwg-mimetype@^2.2.0, whatwg-mimetype@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz#3d4b1e0312d2079879f826aff18dbeeca5960fbf" + integrity sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g== + +whatwg-url@^7.0.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-7.1.0.tgz#c2c492f1eca612988efd3d2266be1b9fc6170d06" + integrity sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg== + dependencies: + lodash.sortby "^4.7.0" + tr46 "^1.0.1" + webidl-conversions "^4.0.2" + 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: +which@^1.2.9, which@^1.3.0, which@^1.3.1: 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== +which@^2.0.1, which@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" + integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== dependencies: - string-width "^1.0.2 || 2" + isexe "^2.0.0" + +word-wrap@~1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" + integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== 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" @@ -6442,6 +8250,15 @@ wrap-ansi@^5.1.0: string-width "^3.0.0" strip-ansi "^5.0.0" +wrap-ansi@^6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" + integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + wrappy@1: version "1.0.2" resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" @@ -6465,6 +8282,16 @@ write-file-atomic@^2.4.2: imurmurhash "^0.1.4" signal-exit "^3.0.2" +write-file-atomic@^3.0.0: + version "3.0.3" + resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-3.0.3.tgz#56bd5c5a5c70481cd19c571bd39ab965a5de56e8" + integrity sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q== + dependencies: + imurmurhash "^0.1.4" + is-typedarray "^1.0.0" + signal-exit "^3.0.2" + typedarray-to-buffer "^3.1.5" + ws@^1.1.0, ws@^1.1.5: version "1.1.5" resolved "https://registry.yarnpkg.com/ws/-/ws-1.1.5.tgz#cbd9e6e75e09fc5d2c90015f21f0c40875e0dd51" @@ -6473,7 +8300,7 @@ ws@^1.1.0, ws@^1.1.5: options ">=0.0.5" ultron "1.0.x" -ws@^3.3.1: +ws@^3.0.0, 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== @@ -6482,22 +8309,27 @@ ws@^3.3.1: safe-buffer "~5.1.0" ultron "~1.1.0" +ws@^7.0.0: + version "7.2.3" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.2.3.tgz#a5411e1fb04d5ed0efee76d26d5c46d830c39b46" + integrity sha512-HTDl9G9hbkNDk98naoR/cHDws7+EyYMOdL1BmjsZXRUjf7d+MficC4B7HLUPlSiho0vg+CWKrGIt/VJBd1xunQ== + xcode@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/xcode/-/xcode-2.0.0.tgz#134f1f94c26fbfe8a9aaa9724bfb2772419da1a2" - integrity sha512-5xF6RCjAdDEiEsbbZaS/gBRt3jZ/177otZcpoLCjGN/u1LrfgH7/Sgeeavpr/jELpyDqN2im3AKosl2G2W8hfw== + version "2.1.0" + resolved "https://registry.yarnpkg.com/xcode/-/xcode-2.1.0.tgz#bab64a7e954bb50ca8d19da7e09531c65a43ecfe" + integrity sha512-uCrmPITrqTEzhn0TtT57fJaNaw8YJs1aCzs+P/QqxsDbvPZSv7XMPPwXrKvHtD6pLjBM/NaVwraWJm8q83Y4iQ== dependencies: simple-plist "^1.0.0" uuid "^3.3.2" 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= + version "0.1.3" + resolved "https://registry.yarnpkg.com/xhr-request-promise/-/xhr-request-promise-0.1.3.tgz#2d5f4b16d8c6c893be97f1a62b0ed4cf3ca5f96c" + integrity sha512-YUBytBsuwgitWtdRzXDDkWAXzhdGB8bYm0sSzMPZT7Z2MBjMSTHFsyCT1yCRATY+XC69DUrQraRAEgcoCRaIPg== dependencies: - xhr-request "^1.0.1" + xhr-request "^1.1.0" -xhr-request@^1.0.1: +xhr-request@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/xhr-request/-/xhr-request-1.1.0.tgz#f4a7c1868b9f198723444d82dcae317643f2e2ed" integrity sha512-Y7qzEaR3FDtL3fP30k9wO/e+FBnBByZeybKOhASsGP30NIkRAAkKD/sCnLvgEfAIEC1rcmK7YG8f4oEnIrrWzA== @@ -6520,11 +8352,21 @@ xhr@^2.0.4: parse-headers "^2.0.0" xtend "^4.0.0" +xml-name-validator@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-3.0.0.tgz#6ae73e06de4d8c6e47f9fb181f78d648ad457c6a" + integrity sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw== + xmlbuilder@^9.0.7: version "9.0.7" resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-9.0.7.tgz#132ee63d2ec5565c557e20f4c22df9aca686b10d" integrity sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0= +xmlchars@^2.1.1: + version "2.2.0" + resolved "https://registry.yarnpkg.com/xmlchars/-/xmlchars-2.2.0.tgz#060fe1bcb7f9c76fe2a17db86a9bc3ab894210cb" + integrity sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw== + xmldoc@^1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/xmldoc/-/xmldoc-1.1.2.tgz#6666e029fe25470d599cd30e23ff0d1ed50466d7" @@ -6533,9 +8375,9 @@ xmldoc@^1.1.2: sax "^1.2.1" xmldom@0.1.x: - version "0.1.27" - resolved "https://registry.yarnpkg.com/xmldom/-/xmldom-0.1.27.tgz#d501f97b3bdb403af8ef9ecc20573187aadac0e9" - integrity sha1-1QH5ezvbQDr4757MIFcxh6rawOk= + version "0.1.31" + resolved "https://registry.yarnpkg.com/xmldom/-/xmldom-0.1.31.tgz#b76c9a1bd9f0a9737e5a72dc37231cf38375e2ff" + integrity sha512-yS2uJflVQs6n+CyjHoaBmVSqIDevTAWrzMmjG1Gc7h1qQ7uVozNhEPJAwZXWyGQ/Gafo3fCwrcaokezLPupVyQ== xpipe@^1.0.5: version "1.0.5" @@ -6575,10 +8417,18 @@ yargs-parser@^11.1.1: camelcase "^5.0.0" decamelize "^1.2.0" -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== +yargs-parser@^13.0.0, yargs-parser@^13.1.2: + version "13.1.2" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.2.tgz#130f09702ebaeef2650d54ce6e3e5706f7a4fb38" + integrity sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg== + dependencies: + camelcase "^5.0.0" + decamelize "^1.2.0" + +yargs-parser@^18.1.1: + version "18.1.3" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.3.tgz#be68c4975c6b2abf469236b0c870362fab09a7b0" + integrity sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ== dependencies: camelcase "^5.0.0" decamelize "^1.2.0" @@ -6609,9 +8459,9 @@ yargs@^12.0.5: yargs-parser "^11.1.1" 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== + version "13.3.2" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.3.2.tgz#ad7ffefec1aa59565ac915f82dccb38a9c31a2dd" + integrity sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw== dependencies: cliui "^5.0.0" find-up "^3.0.0" @@ -6622,7 +8472,24 @@ yargs@^13.2.2, yargs@^13.2.4: string-width "^3.0.0" which-module "^2.0.0" y18n "^4.0.0" - yargs-parser "^13.1.1" + yargs-parser "^13.1.2" + +yargs@^15.3.1: + version "15.3.1" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-15.3.1.tgz#9505b472763963e54afe60148ad27a330818e98b" + integrity sha512-92O1HWEjw27sBfgmXiixJWT5hRBp2eobqXicLtPBIDBhYB+1HpwZlXmbW2luivBJHBzki+7VyCLRtAkScbTBQA== + dependencies: + cliui "^6.0.0" + decamelize "^1.2.0" + find-up "^4.1.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 "^4.2.0" + which-module "^2.0.0" + y18n "^4.0.0" + yargs-parser "^18.1.1" yargs@^9.0.0: version "9.0.1" diff --git a/mobile_files/package.json.orig b/mobile_files/package.json.orig new file mode 100644 index 0000000000..1099b3e2ef --- /dev/null +++ b/mobile_files/package.json.orig @@ -0,0 +1,66 @@ +{ + "name": "StatusIm-Mobile", + "version": "0.0.1", + "private": true, + "scripts": { + "start": "react-native start", + "classpath": "shadow-cljs classpath android", + "app:compile:android": "shadow-cljs compile android", + "app:watch": "shadow-cljs watch android", + "app:packager": "react-native start --host 0.0.0.0 --port 8081", + "app:android": "react-native run-android" + }, + "dependencies": { + "@react-native-community/netinfo": "^4.4.0", + "bignumber.js": "git+https://github.com/status-im/bignumber.js.git#v4.0.2-status", + "buffer": "^5.4.2", + "chance": "^1.1.0", + "create-react-class": "^15.6.2", + "emojilib": "^2.4.0", + "eth-phishing-detect": "^1.1.13", + "functional-red-black-tree": "^1.0.1", + "hermes-engine": "0.2.1", + "hi-base32": "^0.5.0", + "i18n-js": "^3.3.0", + "qrcode": "^1.4.1", + "react": "16.9.0", + "react-dom": "^16.4.2", + "react-native": "0.61.5", + "react-native-background-timer": "^2.1.1", + "react-native-camera": "^3.3.3", + "react-native-config": "git+https://github.com/status-im/react-native-config.git#0.11.2-1-status", + "react-native-dialogs": "^1.0.4", + "react-native-fetch-polyfill": "^1.1.2", + "react-native-fs": "^2.14.1", + "react-native-gesture-handler": "^1.3.0", + "react-native-image-crop-picker": "^0.25.0", + "react-native-image-resizer": "git+https://github.com/status-im/react-native-image-resizer.git#1.0.0-1-status", + "react-native-keychain": "git+https://github.com/status-im/react-native-keychain.git#v.3.0.0-status", + "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-twopane": "git+https://github.com/status-im/react-native-navigation-twopane.git#v0.0.2-status", + "react-native-safe-area-context": "^0.6.0", + "react-native-screens": "^1.0.0-alpha.23", + "react-native-shake": "^3.3.1", + "react-native-splash-screen": "^3.2.0", + "react-native-status-keycard": "git+https://github.com/status-im/react-native-status-keycard.git#v2.5.17", + "react-native-svg": "^9.8.4", + "react-native-touch-id": "^4.4.1", + "react-native-webview": "^6.11.1", + "react-native-webview-bridge": "git+https://github.com/status-im/react-native-webview-bridge.git#fix/community-webview", + "react-navigation": "^3.11.0", + "web3-utils": "^1.2.1" + }, + "devDependencies": { + "@babel/generator": "7.0.0", + "@babel/helper-builder-react-jsx": "7.0.0", + "@babel/plugin-transform-block-scoping": "7.0.0", + "@babel/preset-env": "7.1.0", + "@babel/register": "7.0.0", + "coveralls": "^3.0.4", + "nyc": "^14.1.1", + "process": "0.11.10", + "rn-snoopy": "git+https://github.com/status-im/rn-snoopy.git#v2.0.2-status", + "shadow-cljs": "2.8.83" + } +} diff --git a/nix/DETAILS.md b/nix/DETAILS.md index f273f4ce17..a18454ec4e 100644 --- a/nix/DETAILS.md +++ b/nix/DETAILS.md @@ -8,6 +8,7 @@ There are four main folders in the `nix` directory: * `nix/scripts` - Bash scripts for easier usage of Nix * `nix/pkgs` - Packages we add to or modify in `nixpkgs` +* `nix/deps` - Project dependencies managed by Nix * `nix/tools` - Various tools used by our derivations and shells * `nix/status-go` - Derivations for building [`status-go`](https://github.com/status-im/status-go) repo diff --git a/nix/deps/clojure/deps.list b/nix/deps/clojure/deps.list new file mode 100644 index 0000000000..029eae0c84 --- /dev/null +++ b/nix/deps/clojure/deps.list @@ -0,0 +1,98 @@ +args4j/args4j/2.0.26/args4j-2.0.26.jar +binaryage/env-config/0.2.2/env-config-0.2.2.jar +binaryage/oops/0.7.0/oops-0.7.0.jar +cider/cider-nrepl/0.24.0/cider-nrepl-0.24.0.jar +cider/piggieback/0.4.1/piggieback-0.4.1.jar +cljs-bean/cljs-bean/1.3.0/cljs-bean-1.3.0.jar +cljsjs/react/16.13.0-0/react-16.13.0-0.jar +cljsjs/react-dom/16.13.0-0/react-dom-16.13.0-0.jar +cljsjs/react-dom-server/16.13.0-0/react-dom-server-16.13.0-0.jar +com/andrewmcveigh/cljs-time/0.5.2/cljs-time-0.5.2.jar +com/bhauman/cljs-test-display/0.1.1/cljs-test-display-0.1.1.jar +com/cognitect/transit-clj/1.0.324/transit-clj-1.0.324.jar +com/cognitect/transit-cljs/0.8.248/transit-cljs-0.8.248.jar +com/cognitect/transit-java/1.0.343/transit-java-1.0.343.jar +com/cognitect/transit-js/0.8.846/transit-js-0.8.846.jar +com/fasterxml/jackson/core/jackson-core/2.8.7/jackson-core-2.8.7.jar +com/google/code/findbugs/jsr305/3.0.1/jsr305-3.0.1.jar +com/google/code/gson/gson/2.7/gson-2.7.jar +com/googlecode/json-simple/json-simple/1.1.1/json-simple-1.1.1.jar +com/google/elemental2/elemental2-core/1.0.0-RC1/elemental2-core-1.0.0-RC1.jar +com/google/errorprone/error_prone_annotations/2.3.1/error_prone_annotations-2.3.1.jar +com/google/guava/guava/25.1-jre/guava-25.1-jre.jar +com/google/j2objc/j2objc-annotations/1.1/j2objc-annotations-1.1.jar +com/google/javascript/closure-compiler-externs/v20191027/closure-compiler-externs-v20191027.jar +com/google/javascript/closure-compiler-unshaded/v20191027/closure-compiler-unshaded-v20191027.jar +com/google/jsinterop/base/1.0.0/base-1.0.0.jar +com/google/jsinterop/jsinterop-annotations/1.0.2/jsinterop-annotations-1.0.2.jar +com/google/protobuf/protobuf-java/3.0.2/protobuf-java-3.0.2.jar +com/google/re2j/re2j/1.3/re2j-1.3.jar +commons-codec/commons-codec/1.10/commons-codec-1.10.jar +commons-fileupload/commons-fileupload/1.4/commons-fileupload-1.4.jar +commons-io/commons-io/2.6/commons-io-2.6.jar +com/taoensso/encore/2.94.0/encore-2.94.0.jar +com/taoensso/truss/1.5.0/truss-1.5.0.jar +com/taoensso/tufte/2.1.0/tufte-2.1.0.jar +com/wsscode/pathom/2.2.31/pathom-2.2.31.jar +com/wsscode/spec-inspec/1.0.0-alpha2/spec-inspec-1.0.0-alpha2.jar +crypto-equality/crypto-equality/1.0.0/crypto-equality-1.0.0.jar +crypto-random/crypto-random/1.2.0/crypto-random-1.2.0.jar +day8/re-frame/test/0.1.5/test-0.1.5.jar +edn-query-language/eql/0.0.9/eql-0.0.9.jar +expound/expound/0.8.4/expound-0.8.4.jar +fipp/fipp/0.6.22/fipp-0.6.22.jar +hawk/hawk/0.2.11/hawk-0.2.11.jar +hiccup/hiccup/1.0.5/hiccup-1.0.5.jar +hickory/hickory/0.7.1/hickory-0.7.1.jar +io/aviso/pretty/0.1.33/pretty-0.1.33.jar +io/undertow/undertow-core/2.0.30.Final/undertow-core-2.0.30.Final.jar +javax/xml/bind/jaxb-api/2.3.0/jaxb-api-2.3.0.jar +mvxcvi/alphabase/1.0.0/alphabase-1.0.0.jar +net/cgrand/macrovich/0.2.1/macrovich-0.2.1.jar +net/incongru/watchservice/barbary-watchservice/1.0/barbary-watchservice-1.0.jar +net/java/dev/jna/jna/3.2.2/jna-3.2.2.jar +nrepl/nrepl/0.7.0/nrepl-0.7.0.jar +org/checkerframework/checker-qual/2.0.0/checker-qual-2.0.0.jar +org/clojure/clojure/1.10.1/clojure-1.10.1.jar +org/clojure/clojurescript/1.10.597/clojurescript-1.10.597.jar +org/clojure/core.async/0.4.474/core.async-0.4.474.jar +org/clojure/core.cache/0.6.5/core.cache-0.6.5.jar +org/clojure/core.memoize/0.5.9/core.memoize-0.5.9.jar +org/clojure/core.rrb-vector/0.1.1/core.rrb-vector-0.1.1.jar +org/clojure/core.specs.alpha/0.2.44/core.specs.alpha-0.2.44.jar +org/clojure/data.json/1.0.0/data.json-1.0.0.jar +org/clojure/data.priority-map/0.0.7/data.priority-map-0.0.7.jar +org/clojure/google-closure-library/0.0-20191016-6ae1f72f/google-closure-library-0.0-20191016-6ae1f72f.jar +org/clojure/google-closure-library-third-party/0.0-20191016-6ae1f72f/google-closure-library-third-party-0.0-20191016-6ae1f72f.jar +org/clojure/spec.alpha/0.2.176/spec.alpha-0.2.176.jar +org/clojure/test.check/1.0.0/test.check-1.0.0.jar +org/clojure/tools.analyzer/0.6.9/tools.analyzer-0.6.9.jar +org/clojure/tools.analyzer.jvm/0.7.0/tools.analyzer.jvm-0.7.0.jar +org/clojure/tools.cli/1.0.194/tools.cli-1.0.194.jar +org/clojure/tools.logging/0.4.1/tools.logging-0.4.1.jar +org/clojure/tools.reader/1.3.2/tools.reader-1.3.2.jar +org/codehaus/mojo/animal-sniffer-annotations/1.14/animal-sniffer-annotations-1.14.jar +org/javassist/javassist/3.18.1-GA/javassist-3.18.1-GA.jar +org/jboss/logging/jboss-logging/3.4.0.Final/jboss-logging-3.4.0.Final.jar +org/jboss/threads/jboss-threads/3.1.0.Final/jboss-threads-3.1.0.Final.jar +org/jboss/xnio/xnio-api/3.8.0.Final/xnio-api-3.8.0.Final.jar +org/jboss/xnio/xnio-nio/3.8.0.Final/xnio-nio-3.8.0.Final.jar +org/jsoup/jsoup/1.9.2/jsoup-1.9.2.jar +org/mozilla/rhino/1.7R5/rhino-1.7R5.jar +org/msgpack/msgpack/0.6.12/msgpack-0.6.12.jar +org/ow2/asm/asm-all/4.2/asm-all-4.2.jar +org/wildfly/client/wildfly-client-config/1.0.1.Final/wildfly-client-config-1.0.1.Final.jar +org/wildfly/common/wildfly-common/1.5.2.Final/wildfly-common-1.5.2.Final.jar +quoin/quoin/0.1.2/quoin-0.1.2.jar +reagent/reagent/0.10.0/reagent-0.10.0.jar +refactor-nrepl/refactor-nrepl/2.5.0/refactor-nrepl-2.5.0.jar +re-frame/re-frame/0.12.0/re-frame-0.12.0.jar +ring/ring-codec/1.1.2/ring-codec-1.1.2.jar +ring/ring-core/1.8.0/ring-core-1.8.0.jar +spec-coerce/spec-coerce/1.0.0-alpha6/spec-coerce-1.0.0-alpha6.jar +status-im/timbre/4.10.0-2-status/timbre-4.10.0-2-status.jar +thheller/shadow-client/1.3.2/shadow-client-1.3.2.jar +thheller/shadow-cljs/2.8.99/shadow-cljs-2.8.99-aot.jar +thheller/shadow-cljsjs/0.0.21/shadow-cljsjs-0.0.21.jar +thheller/shadow-util/0.7.0/shadow-util-0.7.0.jar +viebel/codox-klipse-theme/0.0.1/codox-klipse-theme-0.0.1.jar diff --git a/nix/deps/clojure/deps.nix b/nix/deps/clojure/deps.nix new file mode 100644 index 0000000000..5286c2cbea --- /dev/null +++ b/nix/deps/clojure/deps.nix @@ -0,0 +1,1481 @@ +# Auto-generated by /nix/deps/clojure/generate.sh +{ }: + +let + repos = rec { + central = "https://repo1.maven.org/maven2"; + clojars = "https://repo.clojars.org"; + }; +in { + + "args4j/args4j/2.0.26/args4j-2.0.26" = + { + host = repos.central; + path = "args4j/args4j/2.0.26/args4j-2.0.26"; + type = "jar"; + pom = { + sha1 = "f0aada195340b361a1a45aa9c3d417c7cbb0a6b5"; + sha256 = "0151vnbmbjnr5089ik8np91r3a4g2ylcahih22zr49a3ilri6f80"; + }; + jar = { + sha1 = "01ebb18ebb3b379a74207d5af4ea7c8338ebd78b"; + sha256 = "193i0xgn295bdz5gk4zrk4ncfa29x8vl97bfd01kl1za44ixm6wq"; + }; + }; + + "binaryage/env-config/0.2.2/env-config-0.2.2" = + { + host = repos.clojars; + path = "binaryage/env-config/0.2.2/env-config-0.2.2"; + type = "jar"; + pom = { + sha1 = "8a8f0d726bb150b074dbaa92da5470f6144adb76"; + sha256 = "07x1a046xcg9bbzwwgls8i036lzryv5ix29c8m0hf3pp742xa49v"; + }; + jar = { + sha1 = "ac36173f1802a5d7225be41faebedbf12949ae59"; + sha256 = "11j1bls84d8hn8gviawvxkbbnb0hcg1lvw6qqcjj356ap6xzxfic"; + }; + }; + + "binaryage/oops/0.7.0/oops-0.7.0" = + { + host = repos.clojars; + path = "binaryage/oops/0.7.0/oops-0.7.0"; + type = "jar"; + pom = { + sha1 = "de223223c4272ce9ee75c81f8764e894029630b4"; + sha256 = "0sz21344v8lxd6mjlrb8r8yyz934h4lnkwqlpg3csgsi11mppya3"; + }; + jar = { + sha1 = "9729401b4c6551f6becf44cf0818d04255410099"; + sha256 = "0jkdybj37q3a4vvay3asj47ms7l3qjpidhkk30293w0zc7jk18k8"; + }; + }; + + "cider/cider-nrepl/0.24.0/cider-nrepl-0.24.0" = + { + host = repos.clojars; + path = "cider/cider-nrepl/0.24.0/cider-nrepl-0.24.0"; + type = "jar"; + pom = { + sha1 = "e36ed8794c39d4a152914795e793063a83f1fc77"; + sha256 = "01g8pyxnp1xlkrgs25li9mj6pyy3kmcak6q2k95fqniw1mngidxz"; + }; + jar = { + sha1 = "6a1c89a4b1ac6831fc2295b50fb5a7a883aed55d"; + sha256 = "082yahzvl32r5bc20h7ik49ygial7marh5mksdp2ppym3k8b3ghd"; + }; + }; + + "cider/piggieback/0.4.1/piggieback-0.4.1" = + { + host = repos.clojars; + path = "cider/piggieback/0.4.1/piggieback-0.4.1"; + type = "jar"; + pom = { + sha1 = "c432ffbdd51b67bf82e4a63f1f4f102ba55f4ddf"; + sha256 = "191wpjlq78s08d509hq2yrxsdzm3qfkqf2zdiwxxlmmh14dg65rx"; + }; + jar = { + sha1 = "0a02a3e2ecd7a126ab60d8a44793342f20ced79b"; + sha256 = "142vl5np33akcrnn6pksi0rjfsmmi528villxsj6cwcndvybiw4m"; + }; + }; + + "cljs-bean/cljs-bean/1.3.0/cljs-bean-1.3.0" = + { + host = repos.clojars; + path = "cljs-bean/cljs-bean/1.3.0/cljs-bean-1.3.0"; + type = "jar"; + pom = { + sha1 = "2920ec4ae47eaa47c8a8aeecb4670a42cd412aab"; + sha256 = "0xamxny72ymyjfnmzjbnxfc0b19rbbzsmxgm6x2d5z2fbsgv3hz7"; + }; + jar = { + sha1 = "eef0aae8057df9c538bf009fd82766d5e86848c7"; + sha256 = "0c6wlpyc1k5aavw5dixllycdnmr64rrhpc4q57wfyfymixz87d7w"; + }; + }; + + "cljsjs/react/16.13.0-0/react-16.13.0-0" = + { + host = repos.clojars; + path = "cljsjs/react/16.13.0-0/react-16.13.0-0"; + type = "jar"; + pom = { + sha1 = "66011033045a6aaa778c01ed308675fa008817f0"; + sha256 = "1j17bw4vmi26782v84znxnrx1qpi0wm6agbpczds0gb5f9nr2myv"; + }; + jar = { + sha1 = "b72f3f9a69ec4039ac57597859ea4b5d1cfcd113"; + sha256 = "1dp4pi9jphncifa56kqj6sri8vwl62ia1xy3ii70fba1mdjij63s"; + }; + }; + + "cljsjs/react-dom/16.13.0-0/react-dom-16.13.0-0" = + { + host = repos.clojars; + path = "cljsjs/react-dom/16.13.0-0/react-dom-16.13.0-0"; + type = "jar"; + pom = { + sha1 = "367f3754430e092e8c9a5a9f58955fa68389401b"; + sha256 = "0x5klcq3bdbckfi6dqy160rd2r9g3593gp86ha7a6b7p2sfrvmal"; + }; + jar = { + sha1 = "b87b10a7d48e1c773eedfeb737f680a5566b7321"; + sha256 = "10d9l42v7g78gpv6xklydywlpbvpxiky6gw1w3hnzrlqgbd40ip1"; + }; + }; + + "cljsjs/react-dom-server/16.13.0-0/react-dom-server-16.13.0-0" = + { + host = repos.clojars; + path = "cljsjs/react-dom-server/16.13.0-0/react-dom-server-16.13.0-0"; + type = "jar"; + pom = { + sha1 = "320f6487531caf52b15ef10d43129b80c40f7c35"; + sha256 = "1l9s4akd1s06xcx0r38h6xf82bcr0ypmaw6xnvdrmll19a3g9ilc"; + }; + jar = { + sha1 = "4d400ae4f66687286170eb691aa8e642fe87aa47"; + sha256 = "0fzwd6hfb2rx85pr6fsr2r4x76a90wgnjgnv23jzfn1vw6znch07"; + }; + }; + + "com/andrewmcveigh/cljs-time/0.5.2/cljs-time-0.5.2" = + { + host = repos.clojars; + path = "com/andrewmcveigh/cljs-time/0.5.2/cljs-time-0.5.2"; + type = "jar"; + pom = { + sha1 = "21a75819b0540486c66a48bd9119201c368221ba"; + sha256 = "035awyqyifbgn28faz0q90hm66vngdcl9x6jgbmkh5zjnp1xmpfi"; + }; + jar = { + sha1 = "7d4274be169f54a03d4afcc40ea95f40d44ca0a2"; + sha256 = "061cjh2a6qpkib5v5mdrsbwhvcbqvh1igvp3b7jhcfj05pgplm1x"; + }; + }; + + "com/bhauman/cljs-test-display/0.1.1/cljs-test-display-0.1.1" = + { + host = repos.clojars; + path = "com/bhauman/cljs-test-display/0.1.1/cljs-test-display-0.1.1"; + type = "jar"; + pom = { + sha1 = "1a8259078974068be03b4318aab377119e09c6fd"; + sha256 = "1n2pksy9dms0vzdzcqxsrz6nm15kl4as7wrzl440dyk1hz8hc3gh"; + }; + jar = { + sha1 = "64735aaf0401970524db37053b5dca19aa01f0a6"; + sha256 = "13099h797xp6wh0f4yly480q59xwkm63fba43y99ilzc647ipwn1"; + }; + }; + + "com/cognitect/transit-clj/1.0.324/transit-clj-1.0.324" = + { + host = repos.central; + path = "com/cognitect/transit-clj/1.0.324/transit-clj-1.0.324"; + type = "jar"; + pom = { + sha1 = "3d54e59026768d11cc965d1a6ab6ddeb3c225a9b"; + sha256 = "08ry2p15sznnzv08flkbficbn76z2qmwvvwmsda73jlgb1m8da6q"; + }; + jar = { + sha1 = "02bac994fa44e4af474732929510b613a3c85138"; + sha256 = "1wqw79zwf9v6744h8x0njgjpspdrfi0pk2s5bb3fp4ah4jfspcsv"; + }; + }; + + "com/cognitect/transit-cljs/0.8.248/transit-cljs-0.8.248" = + { + host = repos.central; + path = "com/cognitect/transit-cljs/0.8.248/transit-cljs-0.8.248"; + type = "jar"; + pom = { + sha1 = "ab6791b20ec49ba9fa07f388db80f2c0647544fd"; + sha256 = "0qh56qq5vnb5mnwql3wfz1j2wb4km3176mxwv92ay963g1kbilpx"; + }; + jar = { + sha1 = "7c364a28138880b613981516528a4e3132059394"; + sha256 = "1j71f5l3mpy34w2p59i5nzbwwrndmknfl4nafialiag2s8ps6pmd"; + }; + }; + + "com/cognitect/transit-java/1.0.343/transit-java-1.0.343" = + { + host = repos.central; + path = "com/cognitect/transit-java/1.0.343/transit-java-1.0.343"; + type = "jar"; + pom = { + sha1 = "4cdf43733c5f281f7952e6376cbac1ac1b590a89"; + sha256 = "0017gnil7yw6zmcybcq5c3dhs8y1mp80c9r7mnl852hm077pcw4z"; + }; + jar = { + sha1 = "38ce7a916c3e4a627f93e51df83fd6cd32ddfdc6"; + sha256 = "166vy4vysz9sdq281bg1qky5i947fggmk1ywd7fjn1b64lqzrdcm"; + }; + }; + + "com/cognitect/transit-js/0.8.846/transit-js-0.8.846" = + { + host = repos.central; + path = "com/cognitect/transit-js/0.8.846/transit-js-0.8.846"; + type = "jar"; + pom = { + sha1 = "8ef0fbb4e15dd33a6f262e8cdc481f0f635592d3"; + sha256 = "1r7991ljrh75f8622433sga70x8swcznycl2sczdqklg9iajqlhn"; + }; + jar = { + sha1 = "bc6e908a4a3ec8818b3de924cd3dce433dd3411f"; + sha256 = "01937017b9m3dw6s10drj2s76597ayjxdyvd102gnxmb031gynha"; + }; + }; + + "com/fasterxml/jackson/core/jackson-core/2.8.7/jackson-core-2.8.7" = + { + host = repos.central; + path = "com/fasterxml/jackson/core/jackson-core/2.8.7/jackson-core-2.8.7"; + type = "jar"; + pom = { + sha1 = "2ffdd0e4f11359b9216dd8e19d051b246da6a29f"; + sha256 = "0nlbbnhyzcfnixhg76m4q9lrlb5v7gkxwymbhcwbw3rjarfl33qd"; + }; + jar = { + sha1 = "8b46f39c78476fb848c81a49fa807a9e9506dddd"; + sha256 = "0imv9xnw8l8zmpl5fz70v04zdw75wp1x5r1y9wdjsadb310z6vr5"; + }; + }; + + "com/google/code/findbugs/jsr305/3.0.1/jsr305-3.0.1" = + { + host = repos.central; + path = "com/google/code/findbugs/jsr305/3.0.1/jsr305-3.0.1"; + type = "jar"; + pom = { + sha1 = "d04690f71f3393e23f30998d9534365274fa5f9f"; + sha256 = "1khlag991h7326xsjnpx6hnyip5cwawsmxz6m20kkzavvihsfw21"; + }; + jar = { + sha1 = "f7be08ec23c21485b9b5a1cf1654c2ec8c58168d"; + sha256 = "1k9zl76xi2nykixaynss2gk4h861zipdb9xl6q1br0ln4hscx1f8"; + }; + }; + + "com/google/code/gson/gson/2.7/gson-2.7" = + { + host = repos.central; + path = "com/google/code/gson/gson/2.7/gson-2.7"; + type = "jar"; + pom = { + sha1 = "09f9e39f9b791aeb73ba428ad30872f1a703edb3"; + sha256 = "1phf2qksjf75ykwgp39189jdbqsn5zrmi07g8h522yxq0zn3cfbj"; + }; + jar = { + sha1 = "751f548c85fa49f330cecbb1875893f971b33c4e"; + sha256 = "0clda1xrjfja969xsbrhc61ip588xvsi9k054kpd4cz1m5gfnhrd"; + }; + }; + + "com/googlecode/json-simple/json-simple/1.1.1/json-simple-1.1.1" = + { + host = repos.central; + path = "com/googlecode/json-simple/json-simple/1.1.1/json-simple-1.1.1"; + type = "jar"; + pom = { + sha1 = "5e902aae26ac5c36f6420f689f43333129dd69e2"; + sha256 = "10vzlnl8vbjv2jqf818wdb7kgy9c6qjka7fjmmi3vdpg1mcn6pv6"; + }; + jar = { + sha1 = "c9ad4a0850ab676c5c64461a05ca524cdfff59f1"; + sha256 = "170rflxnqnah0265ik2aylmxkshyqbf2zas9bp2l32xqj9l6jsaf"; + }; + }; + + "com/google/elemental2/elemental2-core/1.0.0-RC1/elemental2-core-1.0.0-RC1" = + { + host = repos.central; + path = "com/google/elemental2/elemental2-core/1.0.0-RC1/elemental2-core-1.0.0-RC1"; + type = "jar"; + pom = { + sha1 = "2ccdbc92bc4dfbc9159bf43cf794c240ec37621f"; + sha256 = "04gmnxv7fpsn66wvmsip4s9hqcc1wphsy3bg13vx262kg9w35j19"; + }; + jar = { + sha1 = "7e6e9ec8574d2ff6503f3f774c43695d0276f8f4"; + sha256 = "1l6g27a361nyl90ln9k2xamjds9xm3kjrfb9xcqz1gqhjgmnml7i"; + }; + }; + + "com/google/errorprone/error_prone_annotations/2.3.1/error_prone_annotations-2.3.1" = + { + host = repos.central; + path = "com/google/errorprone/error_prone_annotations/2.3.1/error_prone_annotations-2.3.1"; + type = "jar"; + pom = { + sha1 = "19c878e6870c8382864dcc459de1c6bfe7f36e54"; + sha256 = "16l1kbc7wbisjmjvkfac854ddyql0b5smdxr2vz8wdms26vydp1y"; + }; + jar = { + sha1 = "a6a2b2df72fd13ec466216049b303f206bd66c5d"; + sha256 = "0831h49f21znl7z8lkr2ikywwajdachgxva7zpj8sp7rl2d9998h"; + }; + }; + + "com/google/guava/guava/25.1-jre/guava-25.1-jre" = + { + host = repos.central; + path = "com/google/guava/guava/25.1-jre/guava-25.1-jre"; + type = "jar"; + pom = { + sha1 = "5dd13f6c0d56f05059c5eba88a20a8699ece583d"; + sha256 = "1pya5f4vbh8z9zvprnl64i9qqp0rghjfsflx64q9md28w5pb9y35"; + }; + jar = { + sha1 = "6c57e4b22b44e89e548b5c9f70f0c45fe10fb0b4"; + sha256 = "1gqaqxdnxhr1gk9haldrifvda8ingj1s4bin5sf455y38jic7c3d"; + }; + }; + + "com/google/j2objc/j2objc-annotations/1.1/j2objc-annotations-1.1" = + { + host = repos.central; + path = "com/google/j2objc/j2objc-annotations/1.1/j2objc-annotations-1.1"; + type = "jar"; + pom = { + sha1 = "b964a9414771661bdf35a3f10692a2fb0dd2c866"; + sha256 = "1gnn7b80krv19qjd9hhacahffqq9iwqgmw4ds56wp9wk3rbqrjgh"; + }; + jar = { + sha1 = "ed28ded51a8b1c6b112568def5f4b455e6809019"; + sha256 = "1xpcvmnw2y3fa56hhk8dmknrq8afr6r3kdmzsg9hnwgjg3msg519"; + }; + }; + + "com/google/javascript/closure-compiler-externs/v20191027/closure-compiler-externs-v20191027" = + { + host = repos.central; + path = "com/google/javascript/closure-compiler-externs/v20191027/closure-compiler-externs-v20191027"; + type = "jar"; + pom = { + sha1 = "2e8b38fd6994ad49a92b8d887a6a15adb72392a7"; + sha256 = "1rabc9xlf7ybb1g7xyw2arpcq3nlxc3d61sh6a7gdyxgiivjvvy5"; + }; + jar = { + sha1 = "e940a78e36e056c9e35aece2e53eb7872b631bfb"; + sha256 = "1wsz5blqk4inj9jfxxz2y99xr2cmydqlnbrzjvbr8k5imnr65kk3"; + }; + }; + + "com/google/javascript/closure-compiler-unshaded/v20191027/closure-compiler-unshaded-v20191027" = + { + host = repos.central; + path = "com/google/javascript/closure-compiler-unshaded/v20191027/closure-compiler-unshaded-v20191027"; + type = "jar"; + pom = { + sha1 = "c1cfa1dfa37c0701efec09ac727ce9580666044d"; + sha256 = "157m5y3hdlq3fzna2v4c79c20c7517160nbi0g8j8y12bh1zk7yh"; + }; + jar = { + sha1 = "968d06db4cf31ce3f4b87dcfb80ddd71d98ef135"; + sha256 = "0bisfrk1jj8j8pqnx63hy2ik1741kljvbdwi1vpxlv1crcmy1y6f"; + }; + }; + + "com/google/jsinterop/base/1.0.0/base-1.0.0" = + { + host = repos.central; + path = "com/google/jsinterop/base/1.0.0/base-1.0.0"; + type = "jar"; + pom = { + sha1 = "9d68520e28ac9b035f86a520692196ea31aaf4f0"; + sha256 = "0byl8ksnlpvs0nm3a2midrbp6zrgxl7jzqgcz7z1hb1iy3jzfdk1"; + }; + jar = { + sha1 = "5d2a5cda3092004832cb67cfe7a100a2ef8411f8"; + sha256 = "04j4r89vimffmfim0ipmgbd54bxx111c0ygs34dn0krqdb13adk0"; + }; + }; + + "com/google/jsinterop/jsinterop-annotations/1.0.2/jsinterop-annotations-1.0.2" = + { + host = repos.central; + path = "com/google/jsinterop/jsinterop-annotations/1.0.2/jsinterop-annotations-1.0.2"; + type = "jar"; + pom = { + sha1 = "718fc66ea5e7ee1597960c5874d4603542814166"; + sha256 = "0bslwg7rqjanczf3sz11pgdans4hcl4nbp1f5xyy7dzfnkhyhbhx"; + }; + jar = { + sha1 = "abd7319f53d018e11108a88f599bd16492448dd2"; + sha256 = "057hgcrix9ss4cfgkl7pqqlcc7g1xnlx39i8lipn0sjv3xrl9bzw"; + }; + }; + + "com/google/protobuf/protobuf-java/3.0.2/protobuf-java-3.0.2" = + { + host = repos.central; + path = "com/google/protobuf/protobuf-java/3.0.2/protobuf-java-3.0.2"; + type = "jar"; + pom = { + sha1 = "5dc19d1f724edfb259119a773d951935a1d72bfd"; + sha256 = "163skyjd62sphzq0wiv87q8k3hsard4803kqiw4jrfypyih615gx"; + }; + jar = { + sha1 = "ee55e8e697d10b6643d77bb1f686bac3b9ba8579"; + sha256 = "0igpvapbbgkl5rmvf6li2c051676phipg9vf3gi7np7w7gzrs0ng"; + }; + }; + + "com/google/re2j/re2j/1.3/re2j-1.3" = + { + host = repos.central; + path = "com/google/re2j/re2j/1.3/re2j-1.3"; + type = "jar"; + pom = { + sha1 = "565024724e6527255f0ae38e507c7f90c55b21ce"; + sha256 = "0bzj30pnw9bm7jfcwl5ypaqrgvvp3yndf9vdw0qjfyzr9xx39z2d"; + }; + jar = { + sha1 = "dc7de2b32fa8cc569ab44fb849abadbbc6983b91"; + sha256 = "06fypacl4jsbiddgby40fxxz6bpck7jvc5ch344f472cqnhhy16q"; + }; + }; + + "commons-codec/commons-codec/1.10/commons-codec-1.10" = + { + host = repos.central; + path = "commons-codec/commons-codec/1.10/commons-codec-1.10"; + type = "jar"; + pom = { + sha1 = "44b9477418d2942d45550f7e7c66c16262062d0e"; + sha256 = "1yscxabk7i59vgfjg7c1y3prj39h1d8prnwgxbisc4ni29qdpf5x"; + }; + jar = { + sha1 = "4b95f4897fa13f2cd904aee711aeafc0c5295cd8"; + sha256 = "0scm6321zz76dc3bs8sy2qyami755lz4lq5455gl67bi9slxyha2"; + }; + }; + + "commons-fileupload/commons-fileupload/1.4/commons-fileupload-1.4" = + { + host = repos.central; + path = "commons-fileupload/commons-fileupload/1.4/commons-fileupload-1.4"; + type = "jar"; + pom = { + sha1 = "65112009d674333c1acfafb4e198ff250d710764"; + sha256 = "007nyd66fqp3fbrmnsbfp1fpkhmr2lk33qmkp3salqld3xd7qlc8"; + }; + jar = { + sha1 = "f95188e3d372e20e7328706c37ef366e5d7859b0"; + sha256 = "1xyyl54sfxsdcwxdyq6b0azmr31b4dwqns850jjkw9a9dwrh5v54"; + }; + }; + + "commons-io/commons-io/2.6/commons-io-2.6" = + { + host = repos.central; + path = "commons-io/commons-io/2.6/commons-io-2.6"; + type = "jar"; + pom = { + sha1 = "5060835593e5b6ed18c82fc2e782f0a3c30a00b1"; + sha256 = "0q4a6fp6xkyd86ikymkyv2plhf9vj8aqvggxg9d1yad2jcw8c8qc"; + }; + jar = { + sha1 = "815893df5f31da2ece4040fe0a12fd44b577afaf"; + sha256 = "04v5fg53jl9gbn6pyz3l7kbpxv0xjzyasnw6yd1a3hhacq2d6xzq"; + }; + }; + + "com/taoensso/encore/2.94.0/encore-2.94.0" = + { + host = repos.clojars; + path = "com/taoensso/encore/2.94.0/encore-2.94.0"; + type = "jar"; + pom = { + sha1 = "73fed0c1c6bb76edf667bda84322dd41e478615c"; + sha256 = "1d87b3g6lpr6nnvyhlsx3zw6wm1ccmh3lqzi13q4y34cp0grcmdf"; + }; + jar = { + sha1 = "753c6e5510eaa9794d0bb092dd7c1f2f862a80e8"; + sha256 = "172f96w54311ckj6grs9kz0ddxgdqgdngqmzjg77qw5r3rsixyyh"; + }; + }; + + "com/taoensso/truss/1.5.0/truss-1.5.0" = + { + host = repos.clojars; + path = "com/taoensso/truss/1.5.0/truss-1.5.0"; + type = "jar"; + pom = { + sha1 = "dd64379ae860c87098eea582d30a48e887f9748e"; + sha256 = "01j47fp91zv5g8yd5ayhnfgm59zsiq5wcicyjjpnkhy9nsw5vl5h"; + }; + jar = { + sha1 = "ef3f595da76cbcbe40124ee0a858b7ca635d30f2"; + sha256 = "1a49slgn2py6mxghwmq70nm9k4s27kmvp3cgnv6v2fi5zvkphwrs"; + }; + }; + + "com/taoensso/tufte/2.1.0/tufte-2.1.0" = + { + host = repos.clojars; + path = "com/taoensso/tufte/2.1.0/tufte-2.1.0"; + type = "jar"; + pom = { + sha1 = "baf126a42d10c1eb81bbc735730f832a206c564a"; + sha256 = "0p8b86y32597lq4g5xs06hc03bmn8847r3bvrd2d62834p1k7bvb"; + }; + jar = { + sha1 = "3bece3f233cf626ae373c349117531ccafb9dfde"; + sha256 = "0lx12szc2n2y21iqvrsjhdw90jiq9a9nkkdki5i80933rgwn9agv"; + }; + }; + + "com/wsscode/pathom/2.2.31/pathom-2.2.31" = + { + host = repos.clojars; + path = "com/wsscode/pathom/2.2.31/pathom-2.2.31"; + type = "jar"; + pom = { + sha1 = "dfb29e4cf9e0ff1acd55e98539bc1f28732a03c6"; + sha256 = "07w3zf8r6ww3fhxa388f15bjhfwcg2nfhb75r9lxdbdgbrgv8dlv"; + }; + jar = { + sha1 = "2e288758b896e973ea9474abeab1104193f8f834"; + sha256 = "19hngwfnq85c8j317fck14phzzj679d84q6mkgzrx5y4v4nfjkk7"; + }; + }; + + "com/wsscode/spec-inspec/1.0.0-alpha2/spec-inspec-1.0.0-alpha2" = + { + host = repos.clojars; + path = "com/wsscode/spec-inspec/1.0.0-alpha2/spec-inspec-1.0.0-alpha2"; + type = "jar"; + pom = { + sha1 = "34e3fcb80ca9d39ad1b816ecec87387d6f196c17"; + sha256 = "0viz44h7h1kvzk1z00ndqdw8224ng6bwgvj6789ishcbga7s33mc"; + }; + jar = { + sha1 = "6a1d1d2b670a57638dcab99bcf6bba97fef832a7"; + sha256 = "087masqh68qpkh5m8f37jdqkfm7pw4vg93302rrikq47z1xa48h7"; + }; + }; + + "crypto-equality/crypto-equality/1.0.0/crypto-equality-1.0.0" = + { + host = repos.clojars; + path = "crypto-equality/crypto-equality/1.0.0/crypto-equality-1.0.0"; + type = "jar"; + pom = { + sha1 = "6b025f8fe474fb3a379230bcfe34b4766d00e051"; + sha256 = "0k7rdh1jrbd45igvx45747krdiv4s5bd8viqk83ng802rgw8x8aw"; + }; + jar = { + sha1 = "6728b7a444008fe576167fcadb92fea23bb17d42"; + sha256 = "1y9q8v245n4v3h6sh92a1rlf9rvi7j1akvb0cf47cgg6q60rrlbx"; + }; + }; + + "crypto-random/crypto-random/1.2.0/crypto-random-1.2.0" = + { + host = repos.clojars; + path = "crypto-random/crypto-random/1.2.0/crypto-random-1.2.0"; + type = "jar"; + pom = { + sha1 = "0cd21fd6f8b7f20a614580e0271474e94b8e8863"; + sha256 = "19cczijlkg4zk4r4wgvp27j3wahvwgj0ci8pbqhg3gmjri56396d"; + }; + jar = { + sha1 = "cd5ed1fa18919cc13f5ab5feabdff21cc4b0faf6"; + sha256 = "024dkz5vg6w0q4llw26v35mraai8x8hp0nii2c99szshn6pd0549"; + }; + }; + + "day8/re-frame/test/0.1.5/test-0.1.5" = + { + host = repos.clojars; + path = "day8/re-frame/test/0.1.5/test-0.1.5"; + type = "jar"; + pom = { + sha1 = "a46bdc5a76e9309bcc25aebe6b2aaa40f303a4fe"; + sha256 = "19438axf7jvn8vgaq17q79lxhx0q23qi12933pvnlvhc70nyr1gn"; + }; + jar = { + sha1 = "9e2d06c8564f0983098ddcc046a329c4faca46c2"; + sha256 = "11qsa9y006f6cg8s08zzsbbgxnpv0504xns9r9xdyvkjwi280wxl"; + }; + }; + + "edn-query-language/eql/0.0.9/eql-0.0.9" = + { + host = repos.clojars; + path = "edn-query-language/eql/0.0.9/eql-0.0.9"; + type = "jar"; + pom = { + sha1 = "cf5657fb7b1f62a26f45c99b7ac036d5ace16d07"; + sha256 = "0q004j1mjbyvqk5h7fy1lbx8smqmxaqph94cryr6n8w54l90293p"; + }; + jar = { + sha1 = "b73c0347b13a5f4f34481b8daa3be35fa1b8b6cf"; + sha256 = "1wvjnhmv1bsncnaw4hmfc01h5grkfx4zs9mrvx3z5pyl0ziwrfaw"; + }; + }; + + "expound/expound/0.8.4/expound-0.8.4" = + { + host = repos.clojars; + path = "expound/expound/0.8.4/expound-0.8.4"; + type = "jar"; + pom = { + sha1 = "4e8f1141f2bdfb52a559451055f4f69d73024a21"; + sha256 = "0cfn65fg9hi9sms631hxwarclhigrw3s2ma0c2wdwdk75gh2b3k7"; + }; + jar = { + sha1 = "57fe28050c8c28f78600b90dec92d87ccdd890e9"; + sha256 = "15a4l156kxl4f1q0mi3sbcr78jvfd9ic1bqg1wxh4in7587ad4nc"; + }; + }; + + "fipp/fipp/0.6.22/fipp-0.6.22" = + { + host = repos.clojars; + path = "fipp/fipp/0.6.22/fipp-0.6.22"; + type = "jar"; + pom = { + sha1 = "6c174e71fc394ae387ee39f93ea17565bd59eda5"; + sha256 = "1m1lpd6jks7iyg5n0fa2jnbzkg2l5g9d82fn5l2zyixss8n3frkz"; + }; + jar = { + sha1 = "36351b867728bea2c1d9d91abcac033551c41ea3"; + sha256 = "0g7xx9ngiqsz1sv9lq2g1l394xpmdhqvs7ys2izgxfb380lg32ll"; + }; + }; + + "hawk/hawk/0.2.11/hawk-0.2.11" = + { + host = repos.clojars; + path = "hawk/hawk/0.2.11/hawk-0.2.11"; + type = "jar"; + pom = { + sha1 = "02bbacfd1011c61632de21741f9b331f1c6125b6"; + sha256 = "0n64r1dmmdr5sv95jn8nhh3rgsn3x49qlminv7b9sqylc6hz70xb"; + }; + jar = { + sha1 = "f5d26a671528f2c975f0df2cc8bc4b9bd800208d"; + sha256 = "0hvsk8yagkizl6xif2api42f8cazvn8www0fnakcbil7qkqg4hz9"; + }; + }; + + "hiccup/hiccup/1.0.5/hiccup-1.0.5" = + { + host = repos.clojars; + path = "hiccup/hiccup/1.0.5/hiccup-1.0.5"; + type = "jar"; + pom = { + sha1 = "ad8dca6233e4c76cfa408a6857c0fcf9b4939b0f"; + sha256 = "0lp5q11li5wsr6gw70h801wklcqqcxcw54cpxabj4prbzva5jq1q"; + }; + jar = { + sha1 = "75940a400111bbb8f80e43325e23100b6e2227bc"; + sha256 = "1z07dh3qg9zzcwa8x31mnqxnkfsf2sbv315n43kxmnv1fkjagm0g"; + }; + }; + + "hickory/hickory/0.7.1/hickory-0.7.1" = + { + host = repos.clojars; + path = "hickory/hickory/0.7.1/hickory-0.7.1"; + type = "jar"; + pom = { + sha1 = "5730f6d94df251fc3082ee7d0610a1a6b5327859"; + sha256 = "0yhfpg8ivqyxg8615bvg3a0ljw0mxgqd2nis5gwhf9xn6p1id6x5"; + }; + jar = { + sha1 = "d9e6114592c434ca1df6022bbf4d5e97714666ee"; + sha256 = "021ag1b00821ma6mfl66ljyza1avjlpcld0zhnz1gvppwm5974xz"; + }; + }; + + "io/aviso/pretty/0.1.33/pretty-0.1.33" = + { + host = repos.clojars; + path = "io/aviso/pretty/0.1.33/pretty-0.1.33"; + type = "jar"; + pom = { + sha1 = "bd20d3111649da92524569882f0f9925740aac3e"; + sha256 = "034rhbp6cqzbf9c4ql28n72vmqbxvh39ghf1b2axlnfza38w783b"; + }; + jar = { + sha1 = "2ebf75b7ff2a2260827453e7ea98e012a9eca3e2"; + sha256 = "06w7hpgccr7qy47cwzpq5h2fw27am1imc9cbpg3bc5bbydz9q4df"; + }; + }; + + "io/undertow/undertow-core/2.0.30.Final/undertow-core-2.0.30.Final" = + { + host = repos.central; + path = "io/undertow/undertow-core/2.0.30.Final/undertow-core-2.0.30.Final"; + type = "jar"; + pom = { + sha1 = "e61651e75a758d00c64f8664aa98afc5bef34ec0"; + sha256 = "1jw9idypg2ccwnp3y2ah9ms5nnxaz2ck89s4crngys8ylmxgqn33"; + }; + jar = { + sha1 = "1152e3565a99e2942fc423132330b4dbde6736d9"; + sha256 = "1chqvicza88y9n4p5qc13dk4i054jvhcd5hg7y4ibi3rrci88zmv"; + }; + }; + + "javax/xml/bind/jaxb-api/2.3.0/jaxb-api-2.3.0" = + { + host = repos.central; + path = "javax/xml/bind/jaxb-api/2.3.0/jaxb-api-2.3.0"; + type = "jar"; + pom = { + sha1 = "61dab99f547e2110e42e35f659d9ba27bd00108c"; + sha256 = "0yi9yv58skp6badj6hjfy1hhjs55jja0wkyj3ap55s81k5xnwvs6"; + }; + jar = { + sha1 = "99f802e0cb3e953ba3d6e698795c4aeb98d37c48"; + sha256 = "00rxpc0m30d3jc572ni01ryxq8gcbnr955xsabrijg9pknc0fc48"; + }; + }; + + "mvxcvi/alphabase/1.0.0/alphabase-1.0.0" = + { + host = repos.clojars; + path = "mvxcvi/alphabase/1.0.0/alphabase-1.0.0"; + type = "jar"; + pom = { + sha1 = "2cd07338e4e0a8f7f20d26c8212e5a3333c7acac"; + sha256 = "1kan1lb3ckc0l447cj3l83lh6svz5bk514j0y9lxif6is07b2qxg"; + }; + jar = { + sha1 = "008785c0ff977d8132af4aaa931d88ffc44fca03"; + sha256 = "1g395and521h2q370vh7w0psx63a1zb5f2rcrafqgzw5s3nwlm4q"; + }; + }; + + "net/cgrand/macrovich/0.2.1/macrovich-0.2.1" = + { + host = repos.clojars; + path = "net/cgrand/macrovich/0.2.1/macrovich-0.2.1"; + type = "jar"; + pom = { + sha1 = "8b596c51c4d541ce1cc936bba18ef4d0b8d4aac1"; + sha256 = "1ajpbx1bk2bp5f6zvs0yc6ikzx816l9jm2fchbn0mmlb4x4nmdxp"; + }; + jar = { + sha1 = "abcb26cbfe0f8eef363b25525210c0fe1eb1f693"; + sha256 = "119rmznkfsk1df3q9408dkd9kcqsbpffni19dzrjr7k05ijcl487"; + }; + }; + + "net/incongru/watchservice/barbary-watchservice/1.0/barbary-watchservice-1.0" = + { + host = repos.central; + path = "net/incongru/watchservice/barbary-watchservice/1.0/barbary-watchservice-1.0"; + type = "jar"; + pom = { + sha1 = "e84fee8e5076b47153bbe3a937588a4175b97056"; + sha256 = "1ky2s6ll8wk47i5xz78dzz583iyg30zhbigq1n47hlbdm4fv3cwk"; + }; + jar = { + sha1 = "490d389d7a2fb76eaa5842c9606d778a60f5b45e"; + sha256 = "1d9s4vc1h51sjkrqjmyijp3ryzpy9gcl6kp1yqaqag09haywmijl"; + }; + }; + + "net/java/dev/jna/jna/3.2.2/jna-3.2.2" = + { + host = repos.central; + path = "net/java/dev/jna/jna/3.2.2/jna-3.2.2"; + type = "jar"; + pom = { + sha1 = "df7f15de037a1ee4d57d2ed779739089f560338c jna-3.2.2.pom"; + sha256 = "1564z8h6nzs1irpq96f037c3045pj4r9x8c7d54nc4zbkww1p05l"; + }; + jar = { + sha1 = "d2598c4f68d43dc96b0ffa60e75baa54845596fe"; + sha256 = "0xfqm56ifw1j5qh2vl3ja7sliid71xhk6zfdz3r1q35cpxpig3zy"; + }; + }; + + "nrepl/nrepl/0.7.0/nrepl-0.7.0" = + { + host = repos.clojars; + path = "nrepl/nrepl/0.7.0/nrepl-0.7.0"; + type = "jar"; + pom = { + sha1 = "913a846875363d8255bcede71d1186082f0f05d5"; + sha256 = "1f1ii5k975fmlcqj6dydc28mzbpiyyq9hqzv9lnzm9n15fgggafa"; + }; + jar = { + sha1 = "55dabf4f271d30e7a8f0e198055c000398991e14"; + sha256 = "1h9zin2z4ll3jfr0cqp7zfvy6d2axrjjnyv8qbir0krjsss13ikw"; + }; + }; + + "org/checkerframework/checker-qual/2.0.0/checker-qual-2.0.0" = + { + host = repos.central; + path = "org/checkerframework/checker-qual/2.0.0/checker-qual-2.0.0"; + type = "jar"; + pom = { + sha1 = "17ab37f0fb0338647a70ab40f15c2c685e4185e3"; + sha256 = "0s0062lnqk8vq23dil7qma7rl5x1h16h2x4bah7fw6rbvm9h7cfy"; + }; + jar = { + sha1 = "518929596ee3249127502a8573b2e008e2d51ed3"; + sha256 = "15br88i0dk5l0hdh6ikgg6kvdbdir38jdw69j9s579az5xil317w"; + }; + }; + + "org/clojure/clojure/1.10.1/clojure-1.10.1" = + { + host = repos.central; + path = "org/clojure/clojure/1.10.1/clojure-1.10.1"; + type = "jar"; + pom = { + sha1 = "3fc51cbb6dc8bb6fefc2bae63da919ae7e3d538e"; + sha256 = "131sv1nv3s0mpfv3bplh1z0b6hh7m403x00sxn236iqfz8jazxqh"; + }; + jar = { + sha1 = "a1e6b92ce9b1bfc5d181867a45da8a38a6077662"; + sha256 = "06nj99mi0092qhv32ipk0nws4sdhnc890xx4gsgabllyzn8zkxnl"; + }; + }; + + "org/clojure/clojurescript/1.10.597/clojurescript-1.10.597" = + { + host = repos.central; + path = "org/clojure/clojurescript/1.10.597/clojurescript-1.10.597"; + type = "jar"; + pom = { + sha1 = "a72fb4edf3f9292399b2aed0f8b464472fa738c9"; + sha256 = "1ghxf52apjn9rmqcqkp7dhqji5a0iivakv8lgvwfxkpq3imkqi9x"; + }; + jar = { + sha1 = "94e7243ef451c995f9dbe33db1c864643bcb1ed2"; + sha256 = "1l9bsml4gmdhkz6nbmw3k389mxm3jz0fqy20y8dd94vlry98jqi6"; + }; + }; + + "org/clojure/core.async/0.4.474/core.async-0.4.474" = + { + host = repos.central; + path = "org/clojure/core.async/0.4.474/core.async-0.4.474"; + type = "jar"; + pom = { + sha1 = "7ad313a6e7248eb4a52739dc13ff79b96ce15dd3"; + sha256 = "06xpvfrfh86lvqqa3jggrr8bzwaivfab15f0x1c1rgb0yblmip5z"; + }; + jar = { + sha1 = "6887af0e03c4576855ea3dcda1c64947bef11569"; + sha256 = "1i7b87in8pw1can91lzxhjw23m7hn4ak5lwxcc4wvg4w7d6iqlpy"; + }; + }; + + "org/clojure/core.cache/0.6.5/core.cache-0.6.5" = + { + host = repos.central; + path = "org/clojure/core.cache/0.6.5/core.cache-0.6.5"; + type = "jar"; + pom = { + sha1 = "92272d3ea338358b51c62d6c5fdbae51f37c46c4"; + sha256 = "0yzljp1lmy757bavm66yycw12rg8fxbkir4zysy9g5ywy7757bc2"; + }; + jar = { + sha1 = "82e7ab47bec2f7713817ff46c0150fc89ec20ff9"; + sha256 = "0i4bkwpqd7r6hcq5j5y6pjw8jbkym50zvnnrvl924gc20fjg06ll"; + }; + }; + + "org/clojure/core.memoize/0.5.9/core.memoize-0.5.9" = + { + host = repos.central; + path = "org/clojure/core.memoize/0.5.9/core.memoize-0.5.9"; + type = "jar"; + pom = { + sha1 = "b1319c4e147f67fdeda645fa398938201dd563e4"; + sha256 = "13h6q34mh7m7bb4wydq25pp56gk0a91j06k8pldbnyynh5ydkqwk"; + }; + jar = { + sha1 = "cb8bd16034be49ecb95eb29d06a314294949674a"; + sha256 = "1dqi2q6g1p2kf2ypqx22dgrscvkad98fv4ijf00cxfn4wvp7hykr"; + }; + }; + + "org/clojure/core.rrb-vector/0.1.1/core.rrb-vector-0.1.1" = + { + host = repos.central; + path = "org/clojure/core.rrb-vector/0.1.1/core.rrb-vector-0.1.1"; + type = "jar"; + pom = { + sha1 = "3231642aa1dcf628c864a5f208cd293fbd6a385a"; + sha256 = "18kk5sds5lg8r2kidhz9qpgyrvggkj8j4sgfdsmyyl93w3f16lnp"; + }; + jar = { + sha1 = "aafb7677ec1e9f344fc834bbbdb91e8ba02af474"; + sha256 = "0cqyy1vqrhilgwrdxsibd7360ch3hhwjnbbnzsak38v6i6mg66xl"; + }; + }; + + "org/clojure/core.specs.alpha/0.2.44/core.specs.alpha-0.2.44" = + { + host = repos.central; + path = "org/clojure/core.specs.alpha/0.2.44/core.specs.alpha-0.2.44"; + type = "jar"; + pom = { + sha1 = "5626897d1c41a6374c995a296789818a499b8804"; + sha256 = "11m6k5bm8yzrhr872i5y74iqynhw6z4m7y9ff08kzrfqr5k7plwd"; + }; + jar = { + sha1 = "6027ceb1d1ae70a6a3fb1a8da2144632fa688604"; + sha256 = "071q9dvp9nn3fkqs9yc27kgnmddkps1r0w22d3vipr78y3bc87iv"; + }; + }; + + "org/clojure/data.json/1.0.0/data.json-1.0.0" = + { + host = repos.central; + path = "org/clojure/data.json/1.0.0/data.json-1.0.0"; + type = "jar"; + pom = { + sha1 = "a668636a98c1c7ff5b076425b574048ea52f6f32"; + sha256 = "181qbg3l3mqqdn5bwgr96qa2p57aydyq5wq6rwvfhbpgnpk2z30l"; + }; + jar = { + sha1 = "a867078a9ab525f8acd7c363828678d9df73248f"; + sha256 = "0pa7zdhhclfrn3pyylwv8dhkz8lfl5p3ihjdwdiqmj7xpsg4ypqv"; + }; + }; + + "org/clojure/data.priority-map/0.0.7/data.priority-map-0.0.7" = + { + host = repos.central; + path = "org/clojure/data.priority-map/0.0.7/data.priority-map-0.0.7"; + type = "jar"; + pom = { + sha1 = "b9278c2a4882568d243166400d04f889615d760f"; + sha256 = "0j54r83bj4dakh0jfbjghdyf5qdkjjqg2kb11qc41bj1l46c0lvg"; + }; + jar = { + sha1 = "ededdc5d68217ffa8d24ada18bae19c352b8521b"; + sha256 = "0yqcxi79xvjmr5i2dkq2l9c6h8x0xsqg7zj45shn54n2mw3pah38"; + }; + }; + + "org/clojure/google-closure-library/0.0-20191016-6ae1f72f/google-closure-library-0.0-20191016-6ae1f72f" = + { + host = repos.central; + path = "org/clojure/google-closure-library/0.0-20191016-6ae1f72f/google-closure-library-0.0-20191016-6ae1f72f"; + type = "jar"; + pom = { + sha1 = "dea94d117aa88d75e281f877914454f79df06bf2"; + sha256 = "1nysls9ywj3b3zvlfwy68kayx47r4bacidmq1vx8w4h043l9kxrr"; + }; + jar = { + sha1 = "6025affb7181cd40418600864f58eed1ea80055d"; + sha256 = "0w6waii2qps7vp3nzbj5nai809xdq26ss0cabl4wz1s8fc6js6qw"; + }; + }; + + "org/clojure/google-closure-library-third-party/0.0-20191016-6ae1f72f/google-closure-library-third-party-0.0-20191016-6ae1f72f" = + { + host = repos.central; + path = "org/clojure/google-closure-library-third-party/0.0-20191016-6ae1f72f/google-closure-library-third-party-0.0-20191016-6ae1f72f"; + type = "jar"; + pom = { + sha1 = "1aa0b32fd70e6644dcb06b88b55630d6bbb6f188"; + sha256 = "1wq6gvhlvy3mdhj1cb0w62kclqd7x42dqd0275l40rlla5q5h1z1"; + }; + jar = { + sha1 = "4fc15daa4fd1b150e8c6d32755796634446dd86a"; + sha256 = "1ykw162gng0lcbxn2f387vv1l4d7hfwyayhxgzqqgi9jx211fzw5"; + }; + }; + + "org/clojure/spec.alpha/0.2.176/spec.alpha-0.2.176" = + { + host = repos.central; + path = "org/clojure/spec.alpha/0.2.176/spec.alpha-0.2.176"; + type = "jar"; + pom = { + sha1 = "7e28eb2449d59217132147c19a80e0d3c8c2515f"; + sha256 = "14mj43w6lfqh68c7yx9rshchpjdzwl1nmmlwdavwhk2qgd3w1769"; + }; + jar = { + sha1 = "cd2d5b03d2ff95a958cb075201b89d28a7dea626"; + sha256 = "1i3chggca910ln6h59ns17p454rpw55ffl6hgymx5p9lzzn9ckpw"; + }; + }; + + "org/clojure/test.check/1.0.0/test.check-1.0.0" = + { + host = repos.central; + path = "org/clojure/test.check/1.0.0/test.check-1.0.0"; + type = "jar"; + pom = { + sha1 = "8f1a96fbbb1e5f58026133b928e03aa849e3016a"; + sha256 = "1a91g54v9n2npmsdzznv5f84n8k8ldnz12jbszhm2758k902n0z6"; + }; + jar = { + sha1 = "702624b78b320283fd6952d03aafc11f644786a4"; + sha256 = "0pdky1q3vf3b0dl4zsgx8a5ykgppkjmz57mmg0qw3dmsym4j7j3k"; + }; + }; + + "org/clojure/tools.analyzer/0.6.9/tools.analyzer-0.6.9" = + { + host = repos.central; + path = "org/clojure/tools.analyzer/0.6.9/tools.analyzer-0.6.9"; + type = "jar"; + pom = { + sha1 = "d4a89aca74c79bce38710f79bd342ff1b7553aed"; + sha256 = "1yl5q79aw8mhxi4w5zh3ad9q8l0fqhgba86wk50hcaiv5w990fwq"; + }; + jar = { + sha1 = "d16179b3993357015b306c34f2694c69cff93eb1"; + sha256 = "1cs6l541bpipwyd3mzm7xi0qw67hxniv4kacsb7c639jn75nbydk"; + }; + }; + + "org/clojure/tools.analyzer.jvm/0.7.0/tools.analyzer.jvm-0.7.0" = + { + host = repos.central; + path = "org/clojure/tools.analyzer.jvm/0.7.0/tools.analyzer.jvm-0.7.0"; + type = "jar"; + pom = { + sha1 = "e4de601a581040a5c5bdc2db708362dda32c060e"; + sha256 = "1dc40hvqgz2bhjdsgvck9iad4bbkma0j69qbsvdf3b20pdixdqh4"; + }; + jar = { + sha1 = "51301d4c5320762cc287626b9e07d255fb9d3329"; + sha256 = "1s935mgzxfvaxyj4phf4lzqdp0b5bkiarxnb6ip1rk8anrdcapyd"; + }; + }; + + "org/clojure/tools.cli/1.0.194/tools.cli-1.0.194" = + { + host = repos.central; + path = "org/clojure/tools.cli/1.0.194/tools.cli-1.0.194"; + type = "jar"; + pom = { + sha1 = "3f031e4de9d4226452b123afc9f49e2e8bb65194"; + sha256 = "0fk77qbd53dyynhxzi0cdrrjhzsrz23a3f4v4myi5hjw1pm27zfq"; + }; + jar = { + sha1 = "317c231f8bb8ea1c47a2f5d81eb051ad5eefd5b8"; + sha256 = "0439zi1i5cwlrkh2chjip2p7i47asrdwgplxv6basyzwhlk5wgac"; + }; + }; + + "org/clojure/tools.logging/0.4.1/tools.logging-0.4.1" = + { + host = repos.central; + path = "org/clojure/tools.logging/0.4.1/tools.logging-0.4.1"; + type = "jar"; + pom = { + sha1 = "483bbfc82aee3c005bb1ad36dec77ba5d6c5f95c"; + sha256 = "1qhfigr9am90fx527ax6f7z7xahgsd5hzb4pmi40n79nx3jsc9hf"; + }; + jar = { + sha1 = "991bebc6e3633b85091ae929d62c116a2584aee7"; + sha256 = "001sx1ddgx0ys0z1qphzpxjf2w35rikrfjc0h5bvvqbw8ra0vvja"; + }; + }; + + "org/clojure/tools.reader/1.3.2/tools.reader-1.3.2" = + { + host = repos.central; + path = "org/clojure/tools.reader/1.3.2/tools.reader-1.3.2"; + type = "jar"; + pom = { + sha1 = "9843b076ab7431e43d252aec6b211ceac7f36fc0"; + sha256 = "1n6iv7qa4asfxackh34qx743dcfmm15x5k5fgl212llw5v7c5kdi"; + }; + jar = { + sha1 = "b4dce2f71625d60fe1fd6a95816017811dd73522"; + sha256 = "1039hyg9naspww8i97ks31gbaz7fw8q1jizm4sq3yx83g5nm7dqk"; + }; + }; + + "org/codehaus/mojo/animal-sniffer-annotations/1.14/animal-sniffer-annotations-1.14" = + { + host = repos.central; + path = "org/codehaus/mojo/animal-sniffer-annotations/1.14/animal-sniffer-annotations-1.14"; + type = "jar"; + pom = { + sha1 = "99a56e3312f8ece1d457c8ca0a3c4b69d173d000"; + sha256 = "09ianw2880ch3x6xq5d2cz2b15ik6f4ndf8hb7ckw7lr0ndg2y8q"; + }; + jar = { + sha1 = "775b7e22fb10026eed3f86e8dc556dfafe35f2d5"; + sha256 = "0pchd4360mim0f0a6vwr33szigihgvv4ic1scz1l9mxssq5k4s10"; + }; + }; + + "org/javassist/javassist/3.18.1-GA/javassist-3.18.1-GA" = + { + host = repos.central; + path = "org/javassist/javassist/3.18.1-GA/javassist-3.18.1-GA"; + type = "jar"; + pom = { + sha1 = "af3b2b71de5691126a16d00e3155576dcaa1e3dc"; + sha256 = "03ysag9wb2binc8r7nkwhpsw97sdfhhg6isydba3apy4x1prbcas"; + }; + jar = { + sha1 = "d9a09f7732226af26bf99f19e2cffe0ae219db5b"; + sha256 = "0qk19ja8zv4jdxcmw4krcdax1j4iham9gszmjc7vp66hmwqi5drz"; + }; + }; + + "org/jboss/logging/jboss-logging/3.4.0.Final/jboss-logging-3.4.0.Final" = + { + host = repos.central; + path = "org/jboss/logging/jboss-logging/3.4.0.Final/jboss-logging-3.4.0.Final"; + type = "jar"; + pom = { + sha1 = "bd9a69da381a5d7e9f1f28dba07bf02f80a6fc3e"; + sha256 = "05xikjsy556iwhxhp1f1ikwrai5gilskfpmnvm7vyj1wajis8h0f"; + }; + jar = { + sha1 = "b225692a59f7dc3a789d2c85edc06041914e97e7"; + sha256 = "1lzkfqff830a6m1nfvffncv3yc2n2z4qd2laizik3bpcpcpljx2r"; + }; + }; + + "org/jboss/threads/jboss-threads/3.1.0.Final/jboss-threads-3.1.0.Final" = + { + host = repos.central; + path = "org/jboss/threads/jboss-threads/3.1.0.Final/jboss-threads-3.1.0.Final"; + type = "jar"; + pom = { + sha1 = "95a6983bf04ecc982595c0f940a129943589d29f"; + sha256 = "0gr3wmgj8am99r4jprspz9v11nqxgd7xcmaz27i8sxvhk32dfqcb"; + }; + jar = { + sha1 = "9b260c0302f637a84a52d3d118214a3c59217615"; + sha256 = "0yc0p71y7yjhqjhkvqqi9xqgljavp3aslnik2k7dppbxnkrnlff9"; + }; + }; + + "org/jboss/xnio/xnio-api/3.8.0.Final/xnio-api-3.8.0.Final" = + { + host = repos.central; + path = "org/jboss/xnio/xnio-api/3.8.0.Final/xnio-api-3.8.0.Final"; + type = "jar"; + pom = { + sha1 = "96d871c0d3cc7db4f0937ce7d74529eae287e1e0"; + sha256 = "0zfs8pai9fy12v6kal1yspi8kz2fwgx63idl7ff5a80z779ra6z5"; + }; + jar = { + sha1 = "e2c29acf42ac6f42c34f0b74ba089e3f3d1b2394"; + sha256 = "041qnvb74bkgmfxyd23vdl26il55cmfbhi6a4bm3fcmyrpapjfjl"; + }; + }; + + "org/jboss/xnio/xnio-nio/3.8.0.Final/xnio-nio-3.8.0.Final" = + { + host = repos.central; + path = "org/jboss/xnio/xnio-nio/3.8.0.Final/xnio-nio-3.8.0.Final"; + type = "jar"; + pom = { + sha1 = "65b3bca2f547f1e7c9cc2b0e9f108c48c47bf295"; + sha256 = "0yg6giqq33n9lwz4g5z3bw50jl61v03widfvfib45gizxpgxbanl"; + }; + jar = { + sha1 = "90c57dcf7f8c846b4da331d0e6e048c39842c92a"; + sha256 = "1zndnb5648wqw23gj80zjqk3yd8gq6grqhz9n4zrcqixx1z586jf"; + }; + }; + + "org/jsoup/jsoup/1.9.2/jsoup-1.9.2" = + { + host = repos.central; + path = "org/jsoup/jsoup/1.9.2/jsoup-1.9.2"; + type = "jar"; + pom = { + sha1 = "72f6a64cd9cd47bb7aba05c84b9935650a098998"; + sha256 = "0zh9xn8qcgjyhki5kbhb3rhbhd12avwqy6n9fqfzymdq3c41k8lk"; + }; + jar = { + sha1 = "5e3bda828a80c7a21dfbe2308d1755759c2fd7b4"; + sha256 = "0sm4s1a8plb8z5467799jvp0s37dr98q82z3y436w9c2n7qqa64w"; + }; + }; + + "org/mozilla/rhino/1.7R5/rhino-1.7R5" = + { + host = repos.central; + path = "org/mozilla/rhino/1.7R5/rhino-1.7R5"; + type = "jar"; + pom = { + sha1 = "9aff149fb609ab85257cbf4dcff7bfc786df7321"; + sha256 = "0fyds54znn0hxd60aylfixal8xgw3vw07q28lb5drxa4mg38gjfv"; + }; + jar = { + sha1 = "95f0003cea7ebf26aef5ed64c77c05fcd1ff9648"; + sha256 = "1h090k4f8idv3a5zsq4vn2d9x6mmal3jpm6qgphpfimw3akhj3p0"; + }; + }; + + "org/msgpack/msgpack/0.6.12/msgpack-0.6.12" = + { + host = repos.central; + path = "org/msgpack/msgpack/0.6.12/msgpack-0.6.12"; + type = "jar"; + pom = { + sha1 = "92138e8a6a64f25d226b6244f80dc22154d79fa7"; + sha256 = "1vkd0p2rb1pdxh963235mkczamqg05p17mdplmcq3ppq0a7psjcl"; + }; + jar = { + sha1 = "6a0c88fe022993c490011c3dce7127b29f9a9b3b"; + sha256 = "0plvpp9ra9848sb3psx2yi0gvk5gm146hhnwln08wj10hmfsd770"; + }; + }; + + "org/ow2/asm/asm-all/4.2/asm-all-4.2" = + { + host = repos.central; + path = "org/ow2/asm/asm-all/4.2/asm-all-4.2"; + type = "jar"; + pom = { + sha1 = "7617be8df6235b6f36e2203b8d598a9c9361db4f"; + sha256 = "16wrb6rrkgagzymzcgalxic87ficq74ga8ymvk81ryrf0a1lrz54"; + }; + jar = { + sha1 = "7f7277e5b8002226ebfc8b861c775da8f6a55afd"; + sha256 = "15kppkl7mwkp77irlbxvmjrgs74ggwbvs7kwsv4ad2dq3np9igvh"; + }; + }; + + "org/wildfly/client/wildfly-client-config/1.0.1.Final/wildfly-client-config-1.0.1.Final" = + { + host = repos.central; + path = "org/wildfly/client/wildfly-client-config/1.0.1.Final/wildfly-client-config-1.0.1.Final"; + type = "jar"; + pom = { + sha1 = "a70bef747156afdade33d9ece12f09e97c0bec77"; + sha256 = "19mw1damqz6315ima64zhc16mf5jbg63zlr65whnfk8dcm6d2xg8"; + }; + jar = { + sha1 = "2a803b23c40a0de0f03a90d1fd3755747bc05f4b"; + sha256 = "1crv5kxfsbkmcfw504yqhzf26zrjgpkw1wmhxi1v1swlrriyk940"; + }; + }; + + "org/wildfly/common/wildfly-common/1.5.2.Final/wildfly-common-1.5.2.Final" = + { + host = repos.central; + path = "org/wildfly/common/wildfly-common/1.5.2.Final/wildfly-common-1.5.2.Final"; + type = "jar"; + pom = { + sha1 = "c1b29b7e5445a2c0f4513155e70dade1ab24b04c"; + sha256 = "0ab6aq17fc5smn30jb9g84lpg4ssy77lhq3z1xwc5p1rf35yfq5r"; + }; + jar = { + sha1 = "8eba40cfe86bcfcc223551e75201e6e7574c7c36"; + sha256 = "17rkkm9dqbxdzpamwl9jr8z285awsj6hzpavzmc87wcz9469hp5b"; + }; + }; + + "quoin/quoin/0.1.2/quoin-0.1.2" = + { + host = repos.clojars; + path = "quoin/quoin/0.1.2/quoin-0.1.2"; + type = "jar"; + pom = { + sha1 = "cdabd1b76f3a86c59260cd25be534a0a5b67c302"; + sha256 = "0wv7m5l9hafc0ysxg7g7fqmdq94dxmv13cj37il69wvagqskarhc"; + }; + jar = { + sha1 = "0dbbb28df3e337233f934468915eb327ff488172"; + sha256 = "0b5rc1cmbgg8qpl80jyvh0ldgs7dv86c0qxixazdnz05limmnpb5"; + }; + }; + + "reagent/reagent/0.10.0/reagent-0.10.0" = + { + host = repos.clojars; + path = "reagent/reagent/0.10.0/reagent-0.10.0"; + type = "jar"; + pom = { + sha1 = "0ced0db04eaf77ec3dfa7a3f56cc022fe2814d8b"; + sha256 = "15cqnfwkzxia6bdjq1kism72jf66zdpldk0925313z41ynkqfr8r"; + }; + jar = { + sha1 = "1a88fae22cd0f7f66bb181aa520da264a82f6942"; + sha256 = "0vdvm75rpcq9kx2sp0jd2lsa70fv2xymy1g55ss972s85p5j50bm"; + }; + }; + + "refactor-nrepl/refactor-nrepl/2.5.0/refactor-nrepl-2.5.0" = + { + host = repos.clojars; + path = "refactor-nrepl/refactor-nrepl/2.5.0/refactor-nrepl-2.5.0"; + type = "jar"; + pom = { + sha1 = "0bce30b420249ba7e4b90cbb3e046b4bb5416389"; + sha256 = "0zmg5qc8d55pry7832isiwd2q237znfjqjpxchd2hvlpalh5qnva"; + }; + jar = { + sha1 = "6bc3441afc94f7ca024e41a864ca75e05df7e207"; + sha256 = "0w8hax99y98l53mixxzx2ja0vcnhjv8dnsaz1zj3vqk775ns5w6i"; + }; + }; + + "re-frame/re-frame/0.12.0/re-frame-0.12.0" = + { + host = repos.clojars; + path = "re-frame/re-frame/0.12.0/re-frame-0.12.0"; + type = "jar"; + pom = { + sha1 = "41fd34c15c1cf68eec81435e09d0a79fd8a88276"; + sha256 = "08c3sxi3sdkay3550vb3gbv5czzdh2kyin4mb8cpd2wd5g2c88sq"; + }; + jar = { + sha1 = "3ff92169fe7588ad62dad2d6ea3bf0e5d3e2d224"; + sha256 = "1m5sjskgjx028s1zpa631bp52y9hjn8l1nr8hrwiwdh09i2kpnk2"; + }; + }; + + "ring/ring-codec/1.1.2/ring-codec-1.1.2" = + { + host = repos.clojars; + path = "ring/ring-codec/1.1.2/ring-codec-1.1.2"; + type = "jar"; + pom = { + sha1 = "55992693f2dd246828b727c676707a8cfd4c49f9"; + sha256 = "1rqzrb4qws553vy9qw98jadq0x6prw2wsrz0kfg5bh7zh9awnpxj"; + }; + jar = { + sha1 = "a3284e0488f4823d79d16ef6aea9cb62cfab08e3"; + sha256 = "0q6h18mi3xcm7qn268idkdy253i8kqzm4fbr7gwbrbv7zlxjg3bm"; + }; + }; + + "ring/ring-core/1.8.0/ring-core-1.8.0" = + { + host = repos.clojars; + path = "ring/ring-core/1.8.0/ring-core-1.8.0"; + type = "jar"; + pom = { + sha1 = "75eff71137352c957a65cc6e95e44c7d564a6dc3"; + sha256 = "12wh0q1zz4cspzz4cprpslpmpjkgs0p6crp35z6mncy8rpymg1km"; + }; + jar = { + sha1 = "03bf48e83bf61f975cf617a3d0335791fb44b1b0"; + sha256 = "0n0smyvi3p9jhndb156kh2g69yc34fv36kbwynf7dsbrws29nyai"; + }; + }; + + "spec-coerce/spec-coerce/1.0.0-alpha6/spec-coerce-1.0.0-alpha6" = + { + host = repos.clojars; + path = "spec-coerce/spec-coerce/1.0.0-alpha6/spec-coerce-1.0.0-alpha6"; + type = "jar"; + pom = { + sha1 = "87bc1c6d6f001c43c949a84c033f57b43d9e835c"; + sha256 = "0hcqxrk9m9kv4n4bmj4fmqfq9q0kk3g6n0kwp5gf7nmccg6v5wn4"; + }; + jar = { + sha1 = "7ea5aa8be38113aadd61219738ac1af8651dae4f"; + sha256 = "1mwi6i2v38c8jndy99qvxb9izngxkb0p7a5ynd430c63fl8kj35p"; + }; + }; + + "status-im/timbre/4.10.0-2-status/timbre-4.10.0-2-status" = + { + host = repos.clojars; + path = "status-im/timbre/4.10.0-2-status/timbre-4.10.0-2-status"; + type = "jar"; + pom = { + sha1 = "a0ada642eec4fc748cc52988754ad5cdfa1865b1"; + sha256 = "1h7hhxq1kqpm2g0sk811zigi8c66si72l141gh964ly4pldpc940"; + }; + jar = { + sha1 = "e630bd13a422d7dbedeeb26f17aca0a473a9e5d3"; + sha256 = "1ipakbl438xkj1qhp6lrmjk25vihk15v86k69qba4ny7i0jhyj21"; + }; + }; + + "thheller/shadow-client/1.3.2/shadow-client-1.3.2" = + { + host = repos.clojars; + path = "thheller/shadow-client/1.3.2/shadow-client-1.3.2"; + type = "jar"; + pom = { + sha1 = "545828921d5673cbe0d995f48a5e904c7a8fec95"; + sha256 = "0h8dv5snnzj1jxbv9mpa929h4g21d9lwn24csvncikrlrsq2pngh"; + }; + jar = { + sha1 = "d4c3ab50cb95a1c14bfd3017c8d21bdbcb471be4"; + sha256 = "0vf53qh792bvdi54l2av7wvgzb65w9jgxv5d7qb8ak8j4591jjgn"; + }; + }; + + "thheller/shadow-cljs/2.8.99/shadow-cljs-2.8.99-aot" = + { + host = repos.clojars; + path = "thheller/shadow-cljs/2.8.99/shadow-cljs-2.8.99-aot"; + type = "jar"; + pom = { + sha1 = "3e5cf7c3b9e0fba746570c5da8e8564a85395df6"; + sha256 = "0v98hv2abqk30ag1ay0wsv9mlr6rigk97j2d52nqqylpaw2khpr5"; + }; + jar = { + sha1 = "64e16cf5a47417b6b4a4d482d4c895328884565b"; + sha256 = "1r4hm9l4idnvv6g4dqkgwk4p03f4kyalbc5zh5183jnhym6kqkp7"; + }; + }; + + "thheller/shadow-cljsjs/0.0.21/shadow-cljsjs-0.0.21" = + { + host = repos.clojars; + path = "thheller/shadow-cljsjs/0.0.21/shadow-cljsjs-0.0.21"; + type = "jar"; + pom = { + sha1 = "c50afd20e5ad1d0a3179cfbe570e11e7f185bc40"; + sha256 = "0969izwgf54hj5ddjcw57kjali5czzrr4p3g9647r8c91irplnw5"; + }; + jar = { + sha1 = "9ba9f8ed128a3c607c8b81217a06b6098d2484d1"; + sha256 = "0dfdq3s7sp6f9cksjpx2kzzb07cgh2zc60akk4l7shhmkcyh87yc"; + }; + }; + + "thheller/shadow-util/0.7.0/shadow-util-0.7.0" = + { + host = repos.clojars; + path = "thheller/shadow-util/0.7.0/shadow-util-0.7.0"; + type = "jar"; + pom = { + sha1 = "a32192757c81c784866bbe0f07d40fc3e9595190"; + sha256 = "1y20asa5pvfsilqyli2l8v3dfh62wlygqcy5qvc22w0npnl0p7l8"; + }; + jar = { + sha1 = "61a374c204d797a92d9daeb4b8d9effeb0d81183"; + sha256 = "10fdbqrz7zcfan8x4aikl2i532dk9dz0dfxrww91mgynf0g90rp5"; + }; + }; + + "viebel/codox-klipse-theme/0.0.1/codox-klipse-theme-0.0.1" = + { + host = repos.clojars; + path = "viebel/codox-klipse-theme/0.0.1/codox-klipse-theme-0.0.1"; + type = "jar"; + pom = { + sha1 = "5e1a00ea2bbdfc8cae4083c41e12be5cf89c1449"; + sha256 = "1qxd30dl06yahcgqnypnc71mhqzijpmnq9imybbkbvzk65i6y4r8"; + }; + jar = { + sha1 = "09af0b348e6253dcf9fd567d0d22ffebdea46176"; + sha256 = "1qg2iyblykfkzmplc2c46916b9m0h5ad6lxmvrk5qn3pdxqr8vw0"; + }; + }; + +} diff --git a/nix/deps/clojure/generate.sh b/nix/deps/clojure/generate.sh new file mode 100755 index 0000000000..fdef8c6304 --- /dev/null +++ b/nix/deps/clojure/generate.sh @@ -0,0 +1,98 @@ +#!/usr/bin/env bash + +set -e + +GIT_ROOT=$(cd "${BASH_SOURCE%/*}" && git rev-parse --show-toplevel) + +if [[ -z "${IN_NIX_SHELL}" ]]; then + echo "Remember to call 'make shell'!" + exit 1 +fi + +CLASSPATH_FILE="${GIT_ROOT}/nix/deps/clojure/deps.list" +NIX_DEPS_FILE="${GIT_ROOT}/nix/deps/clojure/deps.nix" +MAVEN_CACHE_PATH="${HOME}/.m2/repository" + +function gen_deps_list() { + # split into separate lines + CLASSPATH_LINES=$(yarn shadow-cljs classpath | tr ':' '\n') + # remove unnecessary lines + CLASSPATH_LINES=$(echo "${CLASSPATH_LINES}" | grep -vE '^(\$|yarn|Done|shadow-cljs|src|test)') + # remove local home path + CLASSPATH_LINES=$(echo "${CLASSPATH_LINES}" | sed "s#${MAVEN_CACHE_PATH}/##") + # print cleaned up entries from classpath + echo "${CLASSPATH_LINES}" | sort | uniq +} + +function get_repo_for_dir() { + grep -oP '.*>\K\w+' "${1}/_remote.repositories" | uniq +} + +function get_nix_sha() { + nix hash-file --base32 --type sha256 "$1" 2> /dev/null +} + +function get_deps_header() { + echo "# Auto-generated by /nix/deps/clojure/generate.sh +{ }: + +let + repos = rec { + central = \"https://repo1.maven.org/maven2\"; + clojars = \"https://repo.clojars.org\"; + }; +in {" +} + +function nix_entry_from_jar() { + JAR_REL_PATH="${1}" + JAR_REL_NAME="${JAR_REL_PATH%.jar}" + JAR_PATH="${MAVEN_CACHE_PATH}/${JAR_REL_PATH}" + JAR_NAME=$(basename "${JAR_PATH}") + JAR_DIR=$(dirname "${JAR_PATH}") + # POM might have a slightly different name + POM_PATH=$(echo ${JAR_DIR}/*.pom) + + REPO_NAME=$(get_repo_for_dir "${JAR_DIR}") + + JAR_SHA1=$(cat "${JAR_PATH}.sha1") + JAR_SHA256=$(get_nix_sha "${JAR_PATH}") + + POM_SHA1=$(cat "${POM_PATH}.sha1") + POM_SHA256=$(get_nix_sha "${POM_PATH}") + + # Format into a Nix attrset entry + echo -n " + \"${JAR_REL_NAME}\" = + { + host = repos.${REPO_NAME}; + path = \"${JAR_REL_NAME}\"; + type = \"jar\"; + pom = { + sha1 = \"${POM_SHA1}\"; + sha256 = \"${POM_SHA256}\"; + }; + jar = { + sha1 = \"${JAR_SHA1}\"; + sha256 = \"${JAR_SHA256}\"; + }; + }; +" +} + +# generate the deps.list file with relative paths +gen_deps_list > "${CLASSPATH_FILE}" +echo "Saved Clojure deps list to: ${CLASSPATH_FILE}" >&2 + +# add the header which defines repo URLs +get_deps_header > "${NIX_DEPS_FILE}" + +# for each dependency generate an attrset with metadata +DEPS=$(cat "${CLASSPATH_FILE}") +for DEP in ${DEPS}; do + nix_entry_from_jar "${DEP}" >> "${NIX_DEPS_FILE}" +done + +# close the attrset +echo -e "\n}" >> "${NIX_DEPS_FILE}" +echo "Generated Clojure deps for Nix: ${NIX_DEPS_FILE}" >&2 diff --git a/nix/lein/lein-project-deps-maven-inputs.txt b/nix/lein/lein-project-deps-maven-inputs.txt deleted file mode 100644 index 08a4b4eee1..0000000000 --- a/nix/lein/lein-project-deps-maven-inputs.txt +++ /dev/null @@ -1,165 +0,0 @@ -https://repo.clojars.org/binaryage/env-config/0.2.2/env-config-0.2.2 -https://repo.clojars.org/binaryage/oops/0.7.0/oops-0.7.0 -https://repo.clojars.org/clj-stacktrace/clj-stacktrace/0.2.5/clj-stacktrace-0.2.5 -https://repo.clojars.org/cljfmt/cljfmt/0.5.7/cljfmt-0.5.7 -https://repo.clojars.org/cljs-bean/cljs-bean/1.3.0/cljs-bean-1.3.0 -https://repo.clojars.org/cljsbuild/cljsbuild/1.1.7/cljsbuild-1.1.7 -https://repo.clojars.org/cljsjs/react-dom-server/16.13.0-0/react-dom-server-16.13.0-0 -https://repo.clojars.org/cljsjs/react-dom/16.13.0-0/react-dom-16.13.0-0 -https://repo.clojars.org/cljsjs/react/16.13.0-0/react-16.13.0-0 -https://repo.clojars.org/com/andrewmcveigh/cljs-time/0.5.2/cljs-time-0.5.2 -https://repo.clojars.org/com/taoensso/encore/2.91.0/encore-2.91.0 -https://repo.clojars.org/com/taoensso/encore/2.94.0/encore-2.94.0 -https://repo.clojars.org/com/taoensso/truss/1.5.0/truss-1.5.0 -https://repo.clojars.org/fs/fs/1.1.2/fs-1.1.2 -https://repo.clojars.org/hickory/hickory/0.7.1/hickory-0.7.1 -https://repo.clojars.org/io/aviso/pretty/0.1.33/pretty-0.1.33 -https://repo.clojars.org/lein-cljfmt/lein-cljfmt/0.5.7/lein-cljfmt-0.5.7 -https://repo.clojars.org/lein-cljsbuild/lein-cljsbuild/1.1.7/lein-cljsbuild-1.1.7 -https://repo.clojars.org/meta-merge/meta-merge/1.0.0/meta-merge-1.0.0 -https://repo.clojars.org/mvxcvi/alphabase/1.0.0/alphabase-1.0.0 -https://repo.clojars.org/net/cgrand/macrovich/0.2.1/macrovich-0.2.1 -https://repo.clojars.org/quoin/quoin/0.1.2/quoin-0.1.2 -https://repo.clojars.org/rasom/lein-githooks/0.1.5/lein-githooks-0.1.5 -https://repo.clojars.org/re-frame/re-frame/0.12.0/re-frame-0.12.0 -https://repo.clojars.org/reagent/reagent/0.10.0/reagent-0.10.0 -https://repo.clojars.org/reagent/reagent/0.7.0/reagent-0.7.0 -https://repo.clojars.org/rewrite-clj/rewrite-clj/0.5.2/rewrite-clj-0.5.2 -https://repo.clojars.org/rewrite-cljs/rewrite-cljs/0.4.3/rewrite-cljs-0.4.3 -https://repo.clojars.org/status-im/timbre/4.10.0-2-status/timbre-4.10.0-2-status -https://repo.clojars.org/viebel/codox-klipse-theme/0.0.1/codox-klipse-theme-0.0.1 -https://repo1.maven.org/maven2/args4j/args4j-site/2.0.26/args4j-site-2.0.26 -https://repo1.maven.org/maven2/args4j/args4j-site/2.33/args4j-site-2.33 -https://repo1.maven.org/maven2/args4j/args4j/2.0.26/args4j-2.0.26 -https://repo1.maven.org/maven2/args4j/args4j/2.33/args4j-2.33 -https://repo1.maven.org/maven2/com/cognitect/transit-clj/0.8.309/transit-clj-0.8.309 -https://repo1.maven.org/maven2/com/cognitect/transit-java/0.8.332/transit-java-0.8.332 -https://repo1.maven.org/maven2/com/fasterxml/jackson/core/jackson-core/2.8.7/jackson-core-2.8.7 -https://repo1.maven.org/maven2/com/fasterxml/jackson/jackson-parent/2.8/jackson-parent-2.8 -https://repo1.maven.org/maven2/com/fasterxml/oss-parent/27/oss-parent-27 -https://repo1.maven.org/maven2/com/google/code/findbugs/jsr305/1.3.9/jsr305-1.3.9 -https://repo1.maven.org/maven2/com/google/code/findbugs/jsr305/3.0.1/jsr305-3.0.1 -https://repo1.maven.org/maven2/com/google/code/findbugs/jsr305/3.0.2/jsr305-3.0.2 -https://repo1.maven.org/maven2/com/google/code/gson/gson-parent/2.7/gson-parent-2.7 -https://repo1.maven.org/maven2/com/google/code/gson/gson/2.2.4/gson-2.2.4 -https://repo1.maven.org/maven2/com/google/code/gson/gson/2.7/gson-2.7 -https://repo1.maven.org/maven2/com/google/errorprone/error_prone_annotations/2.0.18/error_prone_annotations-2.0.18 -https://repo1.maven.org/maven2/com/google/errorprone/error_prone_annotations/2.1.3/error_prone_annotations-2.1.3 -https://repo1.maven.org/maven2/com/google/errorprone/error_prone_annotations/2.3.1/error_prone_annotations-2.3.1 -https://repo1.maven.org/maven2/com/google/errorprone/error_prone_parent/2.0.18/error_prone_parent-2.0.18 -https://repo1.maven.org/maven2/com/google/errorprone/error_prone_parent/2.1.3/error_prone_parent-2.1.3 -https://repo1.maven.org/maven2/com/google/errorprone/error_prone_parent/2.3.1/error_prone_parent-2.3.1 -https://repo1.maven.org/maven2/com/google/google/1/google-1 -https://repo1.maven.org/maven2/com/google/guava/guava-parent/17.0/guava-parent-17.0 -https://repo1.maven.org/maven2/com/google/guava/guava-parent/18.0/guava-parent-18.0 -https://repo1.maven.org/maven2/com/google/guava/guava-parent/19.0/guava-parent-19.0 -https://repo1.maven.org/maven2/com/google/guava/guava-parent/20.0/guava-parent-20.0 -https://repo1.maven.org/maven2/com/google/guava/guava-parent/25.1-jre/guava-parent-25.1-jre -https://repo1.maven.org/maven2/com/google/guava/guava/17.0/guava-17.0 -https://repo1.maven.org/maven2/com/google/guava/guava/18.0/guava-18.0 -https://repo1.maven.org/maven2/com/google/guava/guava/19.0/guava-19.0 -https://repo1.maven.org/maven2/com/google/guava/guava/20.0/guava-20.0 -https://repo1.maven.org/maven2/com/google/guava/guava/25.1-jre/guava-25.1-jre -https://repo1.maven.org/maven2/com/google/j2objc/j2objc-annotations/1.1/j2objc-annotations-1.1 -https://repo1.maven.org/maven2/com/google/javascript/closure-compiler-externs/v20150126/closure-compiler-externs-v20150126 -https://repo1.maven.org/maven2/com/google/javascript/closure-compiler-externs/v20160911/closure-compiler-externs-v20160911 -https://repo1.maven.org/maven2/com/google/javascript/closure-compiler-externs/v20170521/closure-compiler-externs-v20170521 -https://repo1.maven.org/maven2/com/google/javascript/closure-compiler-externs/v20190325/closure-compiler-externs-v20190325 -https://repo1.maven.org/maven2/com/google/javascript/closure-compiler-main/v20160911/closure-compiler-main-v20160911 -https://repo1.maven.org/maven2/com/google/javascript/closure-compiler-main/v20170521/closure-compiler-main-v20170521 -https://repo1.maven.org/maven2/com/google/javascript/closure-compiler-main/v20190325/closure-compiler-main-v20190325 -https://repo1.maven.org/maven2/com/google/javascript/closure-compiler-parent/v20150126/closure-compiler-parent-v20150126 -https://repo1.maven.org/maven2/com/google/javascript/closure-compiler-parent/v20151216/closure-compiler-parent-v20151216 -https://repo1.maven.org/maven2/com/google/javascript/closure-compiler-parent/v20160911/closure-compiler-parent-v20160911 -https://repo1.maven.org/maven2/com/google/javascript/closure-compiler-parent/v20170521/closure-compiler-parent-v20170521 -https://repo1.maven.org/maven2/com/google/javascript/closure-compiler-parent/v20190325/closure-compiler-parent-v20190325 -https://repo1.maven.org/maven2/com/google/javascript/closure-compiler-unshaded/v20160911/closure-compiler-unshaded-v20160911 -https://repo1.maven.org/maven2/com/google/javascript/closure-compiler-unshaded/v20170521/closure-compiler-unshaded-v20170521 -https://repo1.maven.org/maven2/com/google/javascript/closure-compiler-unshaded/v20190325/closure-compiler-unshaded-v20190325 -https://repo1.maven.org/maven2/com/google/javascript/closure-compiler/v20150126/closure-compiler-v20150126 -https://repo1.maven.org/maven2/com/google/javascript/closure-compiler/v20151216/closure-compiler-v20151216 -https://repo1.maven.org/maven2/com/google/jsinterop/jsinterop-annotations/1.0.0/jsinterop-annotations-1.0.0 -https://repo1.maven.org/maven2/com/google/jsinterop/jsinterop/1.0.0/jsinterop-1.0.0 -https://repo1.maven.org/maven2/com/google/protobuf/protobuf-java/2.5.0/protobuf-java-2.5.0 -https://repo1.maven.org/maven2/com/google/protobuf/protobuf-java/3.0.2/protobuf-java-3.0.2 -https://repo1.maven.org/maven2/com/google/protobuf/protobuf-parent/3.0.2/protobuf-parent-3.0.2 -https://repo1.maven.org/maven2/com/google/truth/truth-parent/0.24/truth-parent-0.24 -https://repo1.maven.org/maven2/com/google/truth/truth/0.24/truth-0.24 -https://repo1.maven.org/maven2/com/googlecode/java-diff-utils/diffutils/1.2.1/diffutils-1.2.1 -https://repo1.maven.org/maven2/com/googlecode/json-simple/json-simple/1.1.1/json-simple-1.1.1 -https://repo1.maven.org/maven2/commons-codec/commons-codec/1.10/commons-codec-1.10 -https://repo1.maven.org/maven2/junit/junit/4.10/junit-4.10 -https://repo1.maven.org/maven2/org/apache/apache/15/apache-15 -https://repo1.maven.org/maven2/org/apache/apache/9/apache-9 -https://repo1.maven.org/maven2/org/apache/commons/commons-compress/1.3/commons-compress-1.3 -https://repo1.maven.org/maven2/org/apache/commons/commons-parent/22/commons-parent-22 -https://repo1.maven.org/maven2/org/apache/commons/commons-parent/35/commons-parent-35 -https://repo1.maven.org/maven2/org/checkerframework/checker-qual/2.0.0/checker-qual-2.0.0 -https://repo1.maven.org/maven2/org/clojure/clojure/1.10.0/clojure-1.10.0 -https://repo1.maven.org/maven2/org/clojure/clojure/1.10.1/clojure-1.10.1 -https://repo1.maven.org/maven2/org/clojure/clojure/1.3.0/clojure-1.3.0 -https://repo1.maven.org/maven2/org/clojure/clojure/1.4.0/clojure-1.4.0 -https://repo1.maven.org/maven2/org/clojure/clojure/1.5.0/clojure-1.5.0 -https://repo1.maven.org/maven2/org/clojure/clojure/1.5.1/clojure-1.5.1 -https://repo1.maven.org/maven2/org/clojure/clojure/1.7.0-beta1/clojure-1.7.0-beta1 -https://repo1.maven.org/maven2/org/clojure/clojure/1.7.0/clojure-1.7.0 -https://repo1.maven.org/maven2/org/clojure/clojure/1.8.0/clojure-1.8.0 -https://repo1.maven.org/maven2/org/clojure/clojurescript/0.0-3211/clojurescript-0.0-3211 -https://repo1.maven.org/maven2/org/clojure/clojurescript/1.10.520/clojurescript-1.10.520 -https://repo1.maven.org/maven2/org/clojure/clojurescript/1.7.228/clojurescript-1.7.228 -https://repo1.maven.org/maven2/org/clojure/clojurescript/1.9.293/clojurescript-1.9.293 -https://repo1.maven.org/maven2/org/clojure/clojurescript/1.9.655/clojurescript-1.9.655 -https://repo1.maven.org/maven2/org/clojure/core.async/0.4.474/core.async-0.4.474 -https://repo1.maven.org/maven2/org/clojure/core.cache/0.6.5/core.cache-0.6.5 -https://repo1.maven.org/maven2/org/clojure/core.memoize/0.5.9/core.memoize-0.5.9 -https://repo1.maven.org/maven2/org/clojure/core.specs.alpha/0.2.44/core.specs.alpha-0.2.44 -https://repo1.maven.org/maven2/org/clojure/data.json/0.2.6/data.json-0.2.6 -https://repo1.maven.org/maven2/org/clojure/data.priority-map/0.0.7/data.priority-map-0.0.7 -https://repo1.maven.org/maven2/org/clojure/google-closure-library-third-party/0.0-20140718-946a7d39/google-closure-library-third-party-0.0-20140718-946a7d39 -https://repo1.maven.org/maven2/org/clojure/google-closure-library-third-party/0.0-20151016-61277aea/google-closure-library-third-party-0.0-20151016-61277aea -https://repo1.maven.org/maven2/org/clojure/google-closure-library-third-party/0.0-20160609-f42b4a24/google-closure-library-third-party-0.0-20160609-f42b4a24 -https://repo1.maven.org/maven2/org/clojure/google-closure-library-third-party/0.0-20170519-fa0499ef/google-closure-library-third-party-0.0-20170519-fa0499ef -https://repo1.maven.org/maven2/org/clojure/google-closure-library-third-party/0.0-20190213-2033d5d9/google-closure-library-third-party-0.0-20190213-2033d5d9 -https://repo1.maven.org/maven2/org/clojure/google-closure-library/0.0-20140718-946a7d39/google-closure-library-0.0-20140718-946a7d39 -https://repo1.maven.org/maven2/org/clojure/google-closure-library/0.0-20151016-61277aea/google-closure-library-0.0-20151016-61277aea -https://repo1.maven.org/maven2/org/clojure/google-closure-library/0.0-20160609-f42b4a24/google-closure-library-0.0-20160609-f42b4a24 -https://repo1.maven.org/maven2/org/clojure/google-closure-library/0.0-20170519-fa0499ef/google-closure-library-0.0-20170519-fa0499ef -https://repo1.maven.org/maven2/org/clojure/google-closure-library/0.0-20190213-2033d5d9/google-closure-library-0.0-20190213-2033d5d9 -https://repo1.maven.org/maven2/org/clojure/pom.contrib/0.1.2/pom.contrib-0.1.2 -https://repo1.maven.org/maven2/org/clojure/pom.contrib/0.2.0/pom.contrib-0.2.0 -https://repo1.maven.org/maven2/org/clojure/pom.contrib/0.2.2/pom.contrib-0.2.2 -https://repo1.maven.org/maven2/org/clojure/spec.alpha/0.2.176/spec.alpha-0.2.176 -https://repo1.maven.org/maven2/org/clojure/tools.analyzer.jvm/0.7.0/tools.analyzer.jvm-0.7.0 -https://repo1.maven.org/maven2/org/clojure/tools.analyzer/0.6.9/tools.analyzer-0.6.9 -https://repo1.maven.org/maven2/org/clojure/tools.logging/0.4.1/tools.logging-0.4.1 -https://repo1.maven.org/maven2/org/clojure/tools.namespace/0.2.11/tools.namespace-0.2.11 -https://repo1.maven.org/maven2/org/clojure/tools.reader/0.10.0/tools.reader-0.10.0 -https://repo1.maven.org/maven2/org/clojure/tools.reader/0.9.1/tools.reader-0.9.1 -https://repo1.maven.org/maven2/org/clojure/tools.reader/1.0.0-alpha1/tools.reader-1.0.0-alpha1 -https://repo1.maven.org/maven2/org/clojure/tools.reader/1.0.0-alpha3/tools.reader-1.0.0-alpha3 -https://repo1.maven.org/maven2/org/clojure/tools.reader/1.0.0-alpha4/tools.reader-1.0.0-alpha4 -https://repo1.maven.org/maven2/org/clojure/tools.reader/1.0.0-beta3/tools.reader-1.0.0-beta3 -https://repo1.maven.org/maven2/org/clojure/tools.reader/1.0.0-beta4/tools.reader-1.0.0-beta4 -https://repo1.maven.org/maven2/org/clojure/tools.reader/1.0.0/tools.reader-1.0.0 -https://repo1.maven.org/maven2/org/clojure/tools.reader/1.0.5/tools.reader-1.0.5 -https://repo1.maven.org/maven2/org/clojure/tools.reader/1.2.1/tools.reader-1.2.1 -https://repo1.maven.org/maven2/org/clojure/tools.reader/1.3.0/tools.reader-1.3.0 -https://repo1.maven.org/maven2/org/codehaus/codehaus-parent/4/codehaus-parent-4 -https://repo1.maven.org/maven2/org/codehaus/mojo/animal-sniffer-annotations/1.14/animal-sniffer-annotations-1.14 -https://repo1.maven.org/maven2/org/codehaus/mojo/animal-sniffer-parent/1.14/animal-sniffer-parent-1.14 -https://repo1.maven.org/maven2/org/codehaus/mojo/mojo-parent/34/mojo-parent-34 -https://repo1.maven.org/maven2/org/hamcrest/hamcrest-core/1.1/hamcrest-core-1.1 -https://repo1.maven.org/maven2/org/hamcrest/hamcrest-parent/1.1/hamcrest-parent-1.1 -https://repo1.maven.org/maven2/org/javassist/javassist/3.18.1-GA/javassist-3.18.1-GA -https://repo1.maven.org/maven2/org/jsoup/jsoup/1.9.2/jsoup-1.9.2 -https://repo1.maven.org/maven2/org/kohsuke/pom/14/pom-14 -https://repo1.maven.org/maven2/org/kohsuke/pom/6/pom-6 -https://repo1.maven.org/maven2/org/mozilla/rhino/1.7R5/rhino-1.7R5 -https://repo1.maven.org/maven2/org/msgpack/msgpack/0.6.12/msgpack-0.6.12 -https://repo1.maven.org/maven2/org/ow2/asm/asm-all/4.2/asm-all-4.2 -https://repo1.maven.org/maven2/org/ow2/asm/asm-parent/4.2/asm-parent-4.2 -https://repo1.maven.org/maven2/org/ow2/ow2/1.3/ow2-1.3 -https://repo1.maven.org/maven2/org/sonatype/oss/oss-parent/4/oss-parent-4 -https://repo1.maven.org/maven2/org/sonatype/oss/oss-parent/5/oss-parent-5 -https://repo1.maven.org/maven2/org/sonatype/oss/oss-parent/7/oss-parent-7 -https://repo1.maven.org/maven2/org/sonatype/oss/oss-parent/9/oss-parent-9 diff --git a/nix/lein/lein-project-deps.nix b/nix/lein/lein-project-deps.nix deleted file mode 100644 index 059929f8ea..0000000000 --- a/nix/lein/lein-project-deps.nix +++ /dev/null @@ -1,2322 +0,0 @@ -# Auto-generated by ../tools/maven/maven-inputs2nix.sh -{ }: - -let - repositories = { - apache = "https://repo1.maven.org/maven2"; - clojars = "https://repo.clojars.org"; - fabric-io = "https://maven.fabric.io/public"; - google = "https://dl.google.com/dl/android/maven2"; - gradle = "http://repo.gradle.org/gradle/libs-releases-local"; - gradlePlugins = "https://plugins.gradle.org/m2"; - java = "https://maven.java.net/content/repositories/releases"; - jcenter = "https://jcenter.bintray.com"; - jitpack = "https://jitpack.io"; - maven = "https://repo1.maven.org/maven2"; - sonatypeSnapshots = - "https://oss.sonatype.org/content/repositories/snapshots"; - sonatypePublicGrid = - "https://repository.sonatype.org/content/groups/sonatype-public-grid"; - }; - -in { - "https://repo.clojars.org/binaryage/env-config/0.2.2/env-config-0.2.2" = - { - host = repositories.clojars; - path = - "binaryage/env-config/0.2.2/env-config-0.2.2"; - type = "jar"; - pom = { - sha1 = "8a8f0d726bb150b074dbaa92da5470f6144adb76"; - sha256 = "07x1a046xcg9bbzwwgls8i036lzryv5ix29c8m0hf3pp742xa49v"; - }; - jar = { - sha1 = "ac36173f1802a5d7225be41faebedbf12949ae59"; - sha256 = "11j1bls84d8hn8gviawvxkbbnb0hcg1lvw6qqcjj356ap6xzxfic"; - }; - }; - "https://repo.clojars.org/binaryage/oops/0.7.0/oops-0.7.0" = - { - host = repositories.clojars; - path = - "binaryage/oops/0.7.0/oops-0.7.0"; - type = "jar"; - pom = { - sha1 = "de223223c4272ce9ee75c81f8764e894029630b4"; - sha256 = "0sz21344v8lxd6mjlrb8r8yyz934h4lnkwqlpg3csgsi11mppya3"; - }; - jar = { - sha1 = "9729401b4c6551f6becf44cf0818d04255410099"; - sha256 = "0jkdybj37q3a4vvay3asj47ms7l3qjpidhkk30293w0zc7jk18k8"; - }; - }; - "https://repo.clojars.org/clj-stacktrace/clj-stacktrace/0.2.5/clj-stacktrace-0.2.5" = - { - host = repositories.clojars; - path = - "clj-stacktrace/clj-stacktrace/0.2.5/clj-stacktrace-0.2.5"; - type = "jar"; - pom = { - sha1 = "c4d8726888bedd0ff415f1a90eb326edc0772d84"; - sha256 = "00wvqa548pmfhkbkf8lx7325pmgqxdm8jmk8ph76w3gwlkwalpqn"; - }; - jar = { - sha1 = "1d811ed4a7eeee8ffe08e140eddb38429f4e6cdd"; - sha256 = "1h4wc8iw87cqp20l1wfkh7kxa1ik64ybdw5zh97wxhcsa7bchhzg"; - }; - }; - "https://repo.clojars.org/cljfmt/cljfmt/0.5.7/cljfmt-0.5.7" = - { - host = repositories.clojars; - path = - "cljfmt/cljfmt/0.5.7/cljfmt-0.5.7"; - type = "jar"; - pom = { - sha1 = "3e368e434c19c97811ec501226ade1089c81d199"; - sha256 = "1djm9wiq96ghd2v697m8vwkxxfv9js7168y5xclmsbhgxgp43wh4"; - }; - jar = { - sha1 = "f6bf9e4e21c824fafe19a67e3001e38c6d98c18f"; - sha256 = "0302s3kyc2p1rbrq58dqhjinq46i6rcivn7afk0lkd213dpnxr1b"; - }; - }; - "https://repo.clojars.org/cljs-bean/cljs-bean/1.3.0/cljs-bean-1.3.0" = - { - host = repositories.clojars; - path = - "cljs-bean/cljs-bean/1.3.0/cljs-bean-1.3.0"; - type = "jar"; - pom = { - sha1 = "2920ec4ae47eaa47c8a8aeecb4670a42cd412aab"; - sha256 = "0xamxny72ymyjfnmzjbnxfc0b19rbbzsmxgm6x2d5z2fbsgv3hz7"; - }; - jar = { - sha1 = "eef0aae8057df9c538bf009fd82766d5e86848c7"; - sha256 = "0c6wlpyc1k5aavw5dixllycdnmr64rrhpc4q57wfyfymixz87d7w"; - }; - }; - "https://repo.clojars.org/cljsbuild/cljsbuild/1.1.7/cljsbuild-1.1.7" = - { - host = repositories.clojars; - path = - "cljsbuild/cljsbuild/1.1.7/cljsbuild-1.1.7"; - type = "jar"; - pom = { - sha1 = "16ffd768ec441b967b533aac54c221bd49636bee"; - sha256 = "0bsnlcwv1mg5rc1ga7df3arjkhl23p39vjxjn06lvka7z0gj8azn"; - }; - jar = { - sha1 = "b83ee61540c18c694dee53edd8b53354e560c260"; - sha256 = "0xj9k8n3b31aavlf3fdrbqjflkdmqlvl34fz7s1iv8ff0kvb3aa6"; - }; - }; - "https://repo.clojars.org/cljsjs/react-dom-server/16.13.0-0/react-dom-server-16.13.0-0" = - { - host = repositories.clojars; - path = - "cljsjs/react-dom-server/16.13.0-0/react-dom-server-16.13.0-0"; - type = "jar"; - pom = { - sha1 = "320f6487531caf52b15ef10d43129b80c40f7c35"; - sha256 = "1l9s4akd1s06xcx0r38h6xf82bcr0ypmaw6xnvdrmll19a3g9ilc"; - }; - jar = { - sha1 = "4d400ae4f66687286170eb691aa8e642fe87aa47"; - sha256 = "0fzwd6hfb2rx85pr6fsr2r4x76a90wgnjgnv23jzfn1vw6znch07"; - }; - }; - "https://repo.clojars.org/cljsjs/react-dom/16.13.0-0/react-dom-16.13.0-0" = - { - host = repositories.clojars; - path = - "cljsjs/react-dom/16.13.0-0/react-dom-16.13.0-0"; - type = "jar"; - pom = { - sha1 = "367f3754430e092e8c9a5a9f58955fa68389401b"; - sha256 = "0x5klcq3bdbckfi6dqy160rd2r9g3593gp86ha7a6b7p2sfrvmal"; - }; - jar = { - sha1 = "b87b10a7d48e1c773eedfeb737f680a5566b7321"; - sha256 = "10d9l42v7g78gpv6xklydywlpbvpxiky6gw1w3hnzrlqgbd40ip1"; - }; - }; - "https://repo.clojars.org/cljsjs/react/16.13.0-0/react-16.13.0-0" = - { - host = repositories.clojars; - path = - "cljsjs/react/16.13.0-0/react-16.13.0-0"; - type = "jar"; - pom = { - sha1 = "66011033045a6aaa778c01ed308675fa008817f0"; - sha256 = "1j17bw4vmi26782v84znxnrx1qpi0wm6agbpczds0gb5f9nr2myv"; - }; - jar = { - sha1 = "b72f3f9a69ec4039ac57597859ea4b5d1cfcd113"; - sha256 = "1dp4pi9jphncifa56kqj6sri8vwl62ia1xy3ii70fba1mdjij63s"; - }; - }; - "https://repo.clojars.org/com/andrewmcveigh/cljs-time/0.5.2/cljs-time-0.5.2" = - { - host = repositories.clojars; - path = - "com/andrewmcveigh/cljs-time/0.5.2/cljs-time-0.5.2"; - type = "jar"; - pom = { - sha1 = "21a75819b0540486c66a48bd9119201c368221ba"; - sha256 = "035awyqyifbgn28faz0q90hm66vngdcl9x6jgbmkh5zjnp1xmpfi"; - }; - jar = { - sha1 = "7d4274be169f54a03d4afcc40ea95f40d44ca0a2"; - sha256 = "061cjh2a6qpkib5v5mdrsbwhvcbqvh1igvp3b7jhcfj05pgplm1x"; - }; - }; - "https://repo.clojars.org/com/taoensso/encore/2.91.0/encore-2.91.0" = - { - host = repositories.clojars; - path = - "com/taoensso/encore/2.91.0/encore-2.91.0"; - type = "jar"; - pom = { - sha1 = "17b8d661cb1d3f14434af9934e1b5bf35dedf922"; - sha256 = "17g1sihagxmv33f8fs40dhw5ni3d25iwj7ipivfj4yzldqaifxz6"; - }; - jar = { - sha1 = "b3763f399395938eb66f0b125f8d9559976bf168"; - sha256 = "1a051xqn2k4gjnb9lvs6ma3qwdx14vqnq32z7qpqda6h3cyymvq5"; - }; - }; - "https://repo.clojars.org/com/taoensso/encore/2.94.0/encore-2.94.0" = - { - host = repositories.clojars; - path = - "com/taoensso/encore/2.94.0/encore-2.94.0"; - type = "jar"; - pom = { - sha1 = "73fed0c1c6bb76edf667bda84322dd41e478615c"; - sha256 = "1d87b3g6lpr6nnvyhlsx3zw6wm1ccmh3lqzi13q4y34cp0grcmdf"; - }; - jar = { - sha1 = "753c6e5510eaa9794d0bb092dd7c1f2f862a80e8"; - sha256 = "172f96w54311ckj6grs9kz0ddxgdqgdngqmzjg77qw5r3rsixyyh"; - }; - }; - "https://repo.clojars.org/com/taoensso/truss/1.5.0/truss-1.5.0" = - { - host = repositories.clojars; - path = - "com/taoensso/truss/1.5.0/truss-1.5.0"; - type = "jar"; - pom = { - sha1 = "dd64379ae860c87098eea582d30a48e887f9748e"; - sha256 = "01j47fp91zv5g8yd5ayhnfgm59zsiq5wcicyjjpnkhy9nsw5vl5h"; - }; - jar = { - sha1 = "ef3f595da76cbcbe40124ee0a858b7ca635d30f2"; - sha256 = "1a49slgn2py6mxghwmq70nm9k4s27kmvp3cgnv6v2fi5zvkphwrs"; - }; - }; - "https://repo.clojars.org/fs/fs/1.1.2/fs-1.1.2" = - { - host = repositories.clojars; - path = - "fs/fs/1.1.2/fs-1.1.2"; - type = "jar"; - pom = { - sha1 = "5eca710d59b516b82f4add0f30b1751efffdb1e9"; - sha256 = "06c7qdmy4qknmiqfmjk8i1sl2sri061k36bqa026flrha3hzpqx5"; - }; - jar = { - sha1 = "bfbda6c3d0c91ae5a368a9465464a47840df44ef"; - sha256 = "1bd1yhmz16ja09r0j3g33dq5xzc9gsa0cbi2m5whv0bk1jafz36k"; - }; - }; - "https://repo.clojars.org/hickory/hickory/0.7.1/hickory-0.7.1" = - { - host = repositories.clojars; - path = - "hickory/hickory/0.7.1/hickory-0.7.1"; - type = "jar"; - pom = { - sha1 = "5730f6d94df251fc3082ee7d0610a1a6b5327859"; - sha256 = "0yhfpg8ivqyxg8615bvg3a0ljw0mxgqd2nis5gwhf9xn6p1id6x5"; - }; - jar = { - sha1 = "d9e6114592c434ca1df6022bbf4d5e97714666ee"; - sha256 = "021ag1b00821ma6mfl66ljyza1avjlpcld0zhnz1gvppwm5974xz"; - }; - }; - "https://repo.clojars.org/io/aviso/pretty/0.1.33/pretty-0.1.33" = - { - host = repositories.clojars; - path = - "io/aviso/pretty/0.1.33/pretty-0.1.33"; - type = "jar"; - pom = { - sha1 = "bd20d3111649da92524569882f0f9925740aac3e"; - sha256 = "034rhbp6cqzbf9c4ql28n72vmqbxvh39ghf1b2axlnfza38w783b"; - }; - jar = { - sha1 = "2ebf75b7ff2a2260827453e7ea98e012a9eca3e2"; - sha256 = "06w7hpgccr7qy47cwzpq5h2fw27am1imc9cbpg3bc5bbydz9q4df"; - }; - }; - "https://repo.clojars.org/lein-cljfmt/lein-cljfmt/0.5.7/lein-cljfmt-0.5.7" = - { - host = repositories.clojars; - path = - "lein-cljfmt/lein-cljfmt/0.5.7/lein-cljfmt-0.5.7"; - type = "jar"; - pom = { - sha1 = "1130335a2e2dba720bb0779c4f05097bb0341b1f"; - sha256 = "14ra5xi3nsa1lkid3h1nnih9ihkz0772f82i70x4jljr40wn0cx1"; - }; - jar = { - sha1 = "9389a15fec0914dfcf48c08a69f44dd71133e62c"; - sha256 = "18xgma82lpmiqzs66jm41i1jq7sjv5ma6lnz6ksxyv08r75xhf8q"; - }; - }; - "https://repo.clojars.org/lein-cljsbuild/lein-cljsbuild/1.1.7/lein-cljsbuild-1.1.7" = - { - host = repositories.clojars; - path = - "lein-cljsbuild/lein-cljsbuild/1.1.7/lein-cljsbuild-1.1.7"; - type = "jar"; - pom = { - sha1 = "ef82f47435ac6af478571640ccf45f4fc019869d"; - sha256 = "00ikz9csmlw410pz8ilq0bz57icinczzlrw8hgx6zgbbqh57p297"; - }; - jar = { - sha1 = "925e24bd16c868457d1608f6a7d96951a9c12e7f"; - sha256 = "0ihj2dd3lpz3banpqm0pgcj8sd5wywkjy7mxyjyckgb6g48ahf3l"; - }; - }; - "https://repo.clojars.org/meta-merge/meta-merge/1.0.0/meta-merge-1.0.0" = - { - host = repositories.clojars; - path = - "meta-merge/meta-merge/1.0.0/meta-merge-1.0.0"; - type = "jar"; - pom = { - sha1 = "5d5967dd4a746e4a9fd1927fc78098dd424ea576"; - sha256 = "0carx82c5anc6i0lbi40nhzwas1dynag6c8h6k8jpk6fixjj02mh"; - }; - jar = { - sha1 = "28cbe836fdf7de02801fe0bdbb30eb2fd842e8d9"; - sha256 = "1iq2xf10as0h1q4vqb51hq0xf211f6ijmrv28pjy01npwgiy5znp"; - }; - }; - "https://repo.clojars.org/mvxcvi/alphabase/1.0.0/alphabase-1.0.0" = - { - host = repositories.clojars; - path = - "mvxcvi/alphabase/1.0.0/alphabase-1.0.0"; - type = "jar"; - pom = { - sha1 = "2cd07338e4e0a8f7f20d26c8212e5a3333c7acac"; - sha256 = "1kan1lb3ckc0l447cj3l83lh6svz5bk514j0y9lxif6is07b2qxg"; - }; - jar = { - sha1 = "008785c0ff977d8132af4aaa931d88ffc44fca03"; - sha256 = "1g395and521h2q370vh7w0psx63a1zb5f2rcrafqgzw5s3nwlm4q"; - }; - }; - "https://repo.clojars.org/net/cgrand/macrovich/0.2.1/macrovich-0.2.1" = - { - host = repositories.clojars; - path = - "net/cgrand/macrovich/0.2.1/macrovich-0.2.1"; - type = "jar"; - pom = { - sha1 = "8b596c51c4d541ce1cc936bba18ef4d0b8d4aac1"; - sha256 = "1ajpbx1bk2bp5f6zvs0yc6ikzx816l9jm2fchbn0mmlb4x4nmdxp"; - }; - jar = { - sha1 = "abcb26cbfe0f8eef363b25525210c0fe1eb1f693"; - sha256 = "119rmznkfsk1df3q9408dkd9kcqsbpffni19dzrjr7k05ijcl487"; - }; - }; - "https://repo.clojars.org/quoin/quoin/0.1.2/quoin-0.1.2" = - { - host = repositories.clojars; - path = - "quoin/quoin/0.1.2/quoin-0.1.2"; - type = "jar"; - pom = { - sha1 = "cdabd1b76f3a86c59260cd25be534a0a5b67c302"; - sha256 = "0wv7m5l9hafc0ysxg7g7fqmdq94dxmv13cj37il69wvagqskarhc"; - }; - jar = { - sha1 = "0dbbb28df3e337233f934468915eb327ff488172"; - sha256 = "0b5rc1cmbgg8qpl80jyvh0ldgs7dv86c0qxixazdnz05limmnpb5"; - }; - }; - "https://repo.clojars.org/rasom/lein-githooks/0.1.5/lein-githooks-0.1.5" = - { - host = repositories.clojars; - path = - "rasom/lein-githooks/0.1.5/lein-githooks-0.1.5"; - type = "jar"; - pom = { - sha1 = "ec0b1322dd8d9dba726dd0f95548a216094c488b"; - sha256 = "0zf7hv0hkpfjlvxbl274jm5m23avvrlj7wwpqpq019pnwssv2r5j"; - }; - jar = { - sha1 = "727bdd86ef414cd99f2f4f68c56348db898048ab"; - sha256 = "0jg72qqzfi7qf2yzwisjpbcw4a68lq7j5nra9zgjqw1h3nanwsgi"; - }; - }; - "https://repo.clojars.org/re-frame/re-frame/0.12.0/re-frame-0.12.0" = - { - host = repositories.clojars; - path = - "re-frame/re-frame/0.12.0/re-frame-0.12.0"; - type = "jar"; - pom = { - sha1 = "41fd34c15c1cf68eec81435e09d0a79fd8a88276"; - sha256 = "08c3sxi3sdkay3550vb3gbv5czzdh2kyin4mb8cpd2wd5g2c88sq"; - }; - jar = { - sha1 = "3ff92169fe7588ad62dad2d6ea3bf0e5d3e2d224"; - sha256 = "1m5sjskgjx028s1zpa631bp52y9hjn8l1nr8hrwiwdh09i2kpnk2"; - }; - }; - "https://repo.clojars.org/reagent/reagent/0.10.0/reagent-0.10.0" = - { - host = repositories.clojars; - path = - "reagent/reagent/0.10.0/reagent-0.10.0"; - type = "jar"; - pom = { - sha1 = "0ced0db04eaf77ec3dfa7a3f56cc022fe2814d8b"; - sha256 = "15cqnfwkzxia6bdjq1kism72jf66zdpldk0925313z41ynkqfr8r"; - }; - jar = { - sha1 = "1a88fae22cd0f7f66bb181aa520da264a82f6942"; - sha256 = "0vdvm75rpcq9kx2sp0jd2lsa70fv2xymy1g55ss972s85p5j50bm"; - }; - }; - "https://repo.clojars.org/reagent/reagent/0.7.0/reagent-0.7.0" = - { - host = repositories.clojars; - path = - "reagent/reagent/0.7.0/reagent-0.7.0"; - type = "jar"; - pom = { - sha1 = "1d9d0bee8896bb3b4dfc770c6d93c506e903712d"; - sha256 = "1arybi02a4svi926sw4yljl3fc7qsjk1b0z8r5h74j3wqwczz3ba"; - }; - jar = { - sha1 = "5a4da4cfb9fc0e545ad64bb23fbde2c67dd1371b"; - sha256 = "19y0b1xkamrp6rj8p9is7fhz9zgzz1wpzdk59a24mxw4fiw5d1ls"; - }; - }; - "https://repo.clojars.org/rewrite-clj/rewrite-clj/0.5.2/rewrite-clj-0.5.2" = - { - host = repositories.clojars; - path = - "rewrite-clj/rewrite-clj/0.5.2/rewrite-clj-0.5.2"; - type = "jar"; - pom = { - sha1 = "82b78a539f4cedd824dbb74585118a03045abad7"; - sha256 = "1vfva7p1m17aga50s79w76gpc3wvkhf9fiqmhka7kv08yrqzn4z6"; - }; - jar = { - sha1 = "b41bc0697d82e686ea9b293d3f3adb2fc7be6737"; - sha256 = "1fm9bkd3wiqxalldqdfwh5n5cvlichp5an355c0lnkhi5l1hpfvl"; - }; - }; - "https://repo.clojars.org/rewrite-cljs/rewrite-cljs/0.4.3/rewrite-cljs-0.4.3" = - { - host = repositories.clojars; - path = - "rewrite-cljs/rewrite-cljs/0.4.3/rewrite-cljs-0.4.3"; - type = "jar"; - pom = { - sha1 = "9da639eac10f66ab57057b75e59ce87200457f54"; - sha256 = "1dn85fa8j4dni7lpzvvwk3y2lp69grpp7rjy0pla7j7l35a9nqpp"; - }; - jar = { - sha1 = "eddfed4a28f3865322e479ba77e84985421466bd"; - sha256 = "0gqsj9y66ssxm7qbgqps9548gvrmzdpd16zh6gr6jppqwxgwvawv"; - }; - }; - "https://repo.clojars.org/status-im/timbre/4.10.0-2-status/timbre-4.10.0-2-status" = - { - host = repositories.clojars; - path = - "status-im/timbre/4.10.0-2-status/timbre-4.10.0-2-status"; - type = "jar"; - pom = { - sha1 = "a0ada642eec4fc748cc52988754ad5cdfa1865b1"; - sha256 = "1h7hhxq1kqpm2g0sk811zigi8c66si72l141gh964ly4pldpc940"; - }; - jar = { - sha1 = "e630bd13a422d7dbedeeb26f17aca0a473a9e5d3"; - sha256 = "1ipakbl438xkj1qhp6lrmjk25vihk15v86k69qba4ny7i0jhyj21"; - }; - }; - "https://repo.clojars.org/viebel/codox-klipse-theme/0.0.1/codox-klipse-theme-0.0.1" = - { - host = repositories.clojars; - path = - "viebel/codox-klipse-theme/0.0.1/codox-klipse-theme-0.0.1"; - type = "jar"; - pom = { - sha1 = "5e1a00ea2bbdfc8cae4083c41e12be5cf89c1449"; - sha256 = "1qxd30dl06yahcgqnypnc71mhqzijpmnq9imybbkbvzk65i6y4r8"; - }; - jar = { - sha1 = "09af0b348e6253dcf9fd567d0d22ffebdea46176"; - sha256 = "1qg2iyblykfkzmplc2c46916b9m0h5ad6lxmvrk5qn3pdxqr8vw0"; - }; - }; - "https://repo1.maven.org/maven2/args4j/args4j-site/2.0.26/args4j-site-2.0.26" = - { - host = repositories.maven; - path = - "args4j/args4j-site/2.0.26/args4j-site-2.0.26"; - type = "jar"; - pom = { - sha1 = "d0b339416cfaa4ea16ddb0cd92711a8518892778"; - sha256 = "07icb97h7883z9mc5xdzlj31knymx8cqbpvvl6yajrrkbymis2hi"; - }; - }; - "https://repo1.maven.org/maven2/args4j/args4j-site/2.33/args4j-site-2.33" = - { - host = repositories.maven; - path = - "args4j/args4j-site/2.33/args4j-site-2.33"; - type = "jar"; - pom = { - sha1 = "09ba12fde00306694af3ce9f5ff302c858345edf"; - sha256 = "1vqqdkrnrbkgxad1sw4qwxqw6rvv86r93ndwakggdg1y5v869ggj"; - }; - }; - "https://repo1.maven.org/maven2/args4j/args4j/2.0.26/args4j-2.0.26" = - { - host = repositories.maven; - path = - "args4j/args4j/2.0.26/args4j-2.0.26"; - type = "jar"; - pom = { - sha1 = "f0aada195340b361a1a45aa9c3d417c7cbb0a6b5"; - sha256 = "0151vnbmbjnr5089ik8np91r3a4g2ylcahih22zr49a3ilri6f80"; - }; - jar = { - sha1 = "01ebb18ebb3b379a74207d5af4ea7c8338ebd78b"; - sha256 = "193i0xgn295bdz5gk4zrk4ncfa29x8vl97bfd01kl1za44ixm6wq"; - }; - }; - "https://repo1.maven.org/maven2/args4j/args4j/2.33/args4j-2.33" = - { - host = repositories.maven; - path = - "args4j/args4j/2.33/args4j-2.33"; - type = "jar"; - pom = { - sha1 = "168b592340292d4410a1d000bb7fa7144967fc12"; - sha256 = "046pab6gz1bh6w1jfbabgxvkrnvncrj93lnmaya5qs6a1z7mccn2"; - }; - jar = { - sha1 = "bd87a75374a6d6523de82fef51fc3cfe9baf9fc9"; - sha256 = "1mlyqrqyhijwkjx4sv2zfn2ciqfwpc08qq8w55rcxb941fxfmpci"; - }; - }; - "https://repo1.maven.org/maven2/com/cognitect/transit-clj/0.8.309/transit-clj-0.8.309" = - { - host = repositories.maven; - path = - "com/cognitect/transit-clj/0.8.309/transit-clj-0.8.309"; - type = "jar"; - pom = { - sha1 = "f6a2b94615ba4dcbdf1426bde259d3f628b5a54e"; - sha256 = "02m4bacn151xw4hy0bp7hrknx36jqs92mq3vjj30d5fgwxhsspgx"; - }; - jar = { - sha1 = "24a39fe859effa9cdbb2c9f0e7e25856b41039ce"; - sha256 = "02p1ahm699gxddxg2avggxfs588n85cl4p29qqg0ks6n1cxiwv5c"; - }; - }; - "https://repo1.maven.org/maven2/com/cognitect/transit-java/0.8.332/transit-java-0.8.332" = - { - host = repositories.maven; - path = - "com/cognitect/transit-java/0.8.332/transit-java-0.8.332"; - type = "jar"; - pom = { - sha1 = "e277700b7534c9e063290ad7518d2c7ce740c455"; - sha256 = "1sicl0hjr2fv1gid121blj42giybyc1gj1v90v2m866cmkpzi20w"; - }; - jar = { - sha1 = "f76e5dced124be411e246e61c33db10b3005b881"; - sha256 = "02y1hi3pqjwxh4gk723lhbyrzfa7l78s09b4qhrhqg8mvigsbdla"; - }; - }; - "https://repo1.maven.org/maven2/com/fasterxml/jackson/core/jackson-core/2.8.7/jackson-core-2.8.7" = - { - host = repositories.maven; - path = - "com/fasterxml/jackson/core/jackson-core/2.8.7/jackson-core-2.8.7"; - type = "jar"; - pom = { - sha1 = "2ffdd0e4f11359b9216dd8e19d051b246da6a29f"; - sha256 = "0nlbbnhyzcfnixhg76m4q9lrlb5v7gkxwymbhcwbw3rjarfl33qd"; - }; - jar = { - sha1 = "8b46f39c78476fb848c81a49fa807a9e9506dddd"; - sha256 = "0imv9xnw8l8zmpl5fz70v04zdw75wp1x5r1y9wdjsadb310z6vr5"; - }; - }; - "https://repo1.maven.org/maven2/com/fasterxml/jackson/jackson-parent/2.8/jackson-parent-2.8" = - { - host = repositories.maven; - path = - "com/fasterxml/jackson/jackson-parent/2.8/jackson-parent-2.8"; - type = "jar"; - pom = { - sha1 = "d020f5b079a7c1608b08f4f9bd76f73cb9b3a1be"; - sha256 = "0n4kppglr435ilgk3vxh3f58hsabw45nq8i8jz4c4a9s3969jl9v"; - }; - }; - "https://repo1.maven.org/maven2/com/fasterxml/oss-parent/27/oss-parent-27" = - { - host = repositories.maven; - path = - "com/fasterxml/oss-parent/27/oss-parent-27"; - type = "jar"; - pom = { - sha1 = "77c5efd41e5c52f4f68c36eeb7fe3ccdf0119e53"; - sha256 = "1sxy16jh605l7hqlvqbch7aqyv3jhs5lcmlp4jqmg032zn4g7f5r"; - }; - }; - "https://repo1.maven.org/maven2/com/google/code/findbugs/jsr305/1.3.9/jsr305-1.3.9" = - { - host = repositories.maven; - path = - "com/google/code/findbugs/jsr305/1.3.9/jsr305-1.3.9"; - type = "jar"; - pom = { - sha1 = "67ea333a3244bc20a17d6f0c29498071dfa409fc"; - sha256 = "0fm9gfc8ris3mq3zp06ra8fks3f8mxj60vdnybp7lg8w668r3azy"; - }; - jar = { - sha1 = "40719ea6961c0cb6afaeb6a921eaa1f6afd4cfdf"; - sha256 = "1vf98qdxy0l4v1f0mvqxz92ydrd29vpyczmv999q22m9xsh22mwh"; - }; - }; - "https://repo1.maven.org/maven2/com/google/code/findbugs/jsr305/3.0.1/jsr305-3.0.1" = - { - host = repositories.maven; - path = - "com/google/code/findbugs/jsr305/3.0.1/jsr305-3.0.1"; - type = "jar"; - pom = { - sha1 = "d04690f71f3393e23f30998d9534365274fa5f9f"; - sha256 = "1khlag991h7326xsjnpx6hnyip5cwawsmxz6m20kkzavvihsfw21"; - }; - jar = { - sha1 = "f7be08ec23c21485b9b5a1cf1654c2ec8c58168d"; - sha256 = "1k9zl76xi2nykixaynss2gk4h861zipdb9xl6q1br0ln4hscx1f8"; - }; - }; - "https://repo1.maven.org/maven2/com/google/code/findbugs/jsr305/3.0.2/jsr305-3.0.2" = - { - host = repositories.maven; - path = - "com/google/code/findbugs/jsr305/3.0.2/jsr305-3.0.2"; - type = "jar"; - pom = { - sha1 = "8d93cdf4d84d7e1de736df607945c6df0730a10f"; - sha256 = "1zldsximvzlag566i5r2i124d5vs2jw4brjy39hb4m5jy6yrv20r"; - }; - jar = { - sha1 = "25ea2e8b0c338a877313bd4672d3fe056ea78f0d"; - sha256 = "1iyh53li6y4b8gp8bl52fagqp8iqrkp4rmwa5jb8f9izg2hd4skn"; - }; - }; - "https://repo1.maven.org/maven2/com/google/code/gson/gson-parent/2.7/gson-parent-2.7" = - { - host = repositories.maven; - path = - "com/google/code/gson/gson-parent/2.7/gson-parent-2.7"; - type = "jar"; - pom = { - sha1 = "3e147803ee87007ec82a1f625a0034be35c9b8a8"; - sha256 = "0ar7wk4zrdlb56jywsk6v3cpji8cjsi3kzmcr061yc12fdrqq7l7"; - }; - }; - "https://repo1.maven.org/maven2/com/google/code/gson/gson/2.2.4/gson-2.2.4" = - { - host = repositories.maven; - path = - "com/google/code/gson/gson/2.2.4/gson-2.2.4"; - type = "jar"; - pom = { - sha1 = "06252c690921ee1dc719594a5d4da1829194f8b3"; - sha256 = "106k9ynbhls8nkihxrhkj5033z7q2am6x1l98vffck4935flv65f"; - }; - jar = { - sha1 = "a60a5e993c98c864010053cb901b7eab25306568"; - sha256 = "1yw7qszcw1dsh54q6wyksr5mbkz8mzs1q36hmjjn7qx9gk88qcn0"; - }; - }; - "https://repo1.maven.org/maven2/com/google/code/gson/gson/2.7/gson-2.7" = - { - host = repositories.maven; - path = - "com/google/code/gson/gson/2.7/gson-2.7"; - type = "jar"; - pom = { - sha1 = "09f9e39f9b791aeb73ba428ad30872f1a703edb3"; - sha256 = "1phf2qksjf75ykwgp39189jdbqsn5zrmi07g8h522yxq0zn3cfbj"; - }; - jar = { - sha1 = "751f548c85fa49f330cecbb1875893f971b33c4e"; - sha256 = "0clda1xrjfja969xsbrhc61ip588xvsi9k054kpd4cz1m5gfnhrd"; - }; - }; - "https://repo1.maven.org/maven2/com/google/errorprone/error_prone_annotations/2.0.18/error_prone_annotations-2.0.18" = - { - host = repositories.maven; - path = - "com/google/errorprone/error_prone_annotations/2.0.18/error_prone_annotations-2.0.18"; - type = "jar"; - pom = { - sha1 = "8e0351439081cc11563b09019302926addadaa25"; - sha256 = "11w4193x21z1zzqhngmq60qxbc13xgmdq9b86v115xnnj9qi4i4i"; - }; - jar = { - sha1 = "5f65affce1684999e2f4024983835efc3504012e"; - sha256 = "0sv5i2kyl7qbchcb786d1x2fq39zfsjvwglz343klmmzf3cglk6b"; - }; - }; - "https://repo1.maven.org/maven2/com/google/errorprone/error_prone_annotations/2.1.3/error_prone_annotations-2.1.3" = - { - host = repositories.maven; - path = - "com/google/errorprone/error_prone_annotations/2.1.3/error_prone_annotations-2.1.3"; - type = "jar"; - pom = { - sha1 = "02d1529fa92342313d1c98beb8ca261e36a2d319"; - sha256 = "1x9pfan53fjf9sg2lrwi6g2dvs2b99x8d7ka7in9kciw74fbi34m"; - }; - jar = { - sha1 = "39b109f2cd352b2d71b52a3b5a1a9850e1dc304b"; - sha256 = "1y3zzjqxckrn39z5d4724lwhkb9fx94i0kb3gkhsjgf18yak5l03"; - }; - }; - "https://repo1.maven.org/maven2/com/google/errorprone/error_prone_annotations/2.3.1/error_prone_annotations-2.3.1" = - { - host = repositories.maven; - path = - "com/google/errorprone/error_prone_annotations/2.3.1/error_prone_annotations-2.3.1"; - type = "jar"; - pom = { - sha1 = "19c878e6870c8382864dcc459de1c6bfe7f36e54"; - sha256 = "16l1kbc7wbisjmjvkfac854ddyql0b5smdxr2vz8wdms26vydp1y"; - }; - jar = { - sha1 = "a6a2b2df72fd13ec466216049b303f206bd66c5d"; - sha256 = "0831h49f21znl7z8lkr2ikywwajdachgxva7zpj8sp7rl2d9998h"; - }; - }; - "https://repo1.maven.org/maven2/com/google/errorprone/error_prone_parent/2.0.18/error_prone_parent-2.0.18" = - { - host = repositories.maven; - path = - "com/google/errorprone/error_prone_parent/2.0.18/error_prone_parent-2.0.18"; - type = "jar"; - pom = { - sha1 = "16ffdb67ed91d9d87a943a3127da3900d83cc81d"; - sha256 = "1i46saxm7vx68cdl9drxswqfjsaa2v0qayc13vqx81wv4xarj56g"; - }; - }; - "https://repo1.maven.org/maven2/com/google/errorprone/error_prone_parent/2.1.3/error_prone_parent-2.1.3" = - { - host = repositories.maven; - path = - "com/google/errorprone/error_prone_parent/2.1.3/error_prone_parent-2.1.3"; - type = "jar"; - pom = { - sha1 = "fa65cf11b2b7e955eb3862eb01d5bae721e458c0"; - sha256 = "16r3zfxxcz6ldykibcs7r7qbvwc81dw7msg03nawx7rql4b2canm"; - }; - }; - "https://repo1.maven.org/maven2/com/google/errorprone/error_prone_parent/2.3.1/error_prone_parent-2.3.1" = - { - host = repositories.maven; - path = - "com/google/errorprone/error_prone_parent/2.3.1/error_prone_parent-2.3.1"; - type = "jar"; - pom = { - sha1 = "a32c199defa0dcf9c42a32c26fec4d1fbb408e58"; - sha256 = "08y16fkxl49930d2bqmic90vw9v36f02jf38344csa8im3cjaxbn"; - }; - }; - "https://repo1.maven.org/maven2/com/google/google/1/google-1" = - { - host = repositories.maven; - path = - "com/google/google/1/google-1"; - type = "jar"; - pom = { - sha1 = "c35a5268151b7a1bbb77f7ee94a950f00e32db61"; - sha256 = "10by4ybrjnl8zwfg4ca74d0gcl4p9l7dzlfb9iwxw7m325xb2vfd"; - }; - }; - "https://repo1.maven.org/maven2/com/google/guava/guava-parent/17.0/guava-parent-17.0" = - { - host = repositories.maven; - path = - "com/google/guava/guava-parent/17.0/guava-parent-17.0"; - type = "jar"; - pom = { - sha1 = "f8ba48b925d1c925d0fc0379ffa14a06e44eb464"; - sha256 = "0ajka1xsh28sammy3zbx82mvxi3k19v5ks4x2xswglsiamc57flz"; - }; - }; - "https://repo1.maven.org/maven2/com/google/guava/guava-parent/18.0/guava-parent-18.0" = - { - host = repositories.maven; - path = - "com/google/guava/guava-parent/18.0/guava-parent-18.0"; - type = "jar"; - pom = { - sha1 = "5398932a9ef2828eb9fc4f01e8d6cac626c219d2"; - sha256 = "0rmia42xirzgk3r2h1syzs7n7ib1nv84yzh87yizcmz7jn4crb54"; - }; - }; - "https://repo1.maven.org/maven2/com/google/guava/guava-parent/19.0/guava-parent-19.0" = - { - host = repositories.maven; - path = - "com/google/guava/guava-parent/19.0/guava-parent-19.0"; - type = "jar"; - pom = { - sha1 = "21fa0d898121cc408c19b74e4305403c6cc45b23"; - sha256 = "041y3i7yjajiylka0p1w0lz0d78c8wmswjkfld6zf46zxi1zyxiv"; - }; - }; - "https://repo1.maven.org/maven2/com/google/guava/guava-parent/20.0/guava-parent-20.0" = - { - host = repositories.maven; - path = - "com/google/guava/guava-parent/20.0/guava-parent-20.0"; - type = "jar"; - pom = { - sha1 = "7ba07b80563d9b18c4d384600a6fc1792d7899dd"; - sha256 = "1w9dd5n0dsbl7br4gifb04d3m20xyc5sgprb4gbghan7gz86y8pi"; - }; - }; - "https://repo1.maven.org/maven2/com/google/guava/guava-parent/25.1-jre/guava-parent-25.1-jre" = - { - host = repositories.maven; - path = - "com/google/guava/guava-parent/25.1-jre/guava-parent-25.1-jre"; - type = "jar"; - pom = { - sha1 = "802065dc15ff936f7c040c339111793dafcf02f0"; - sha256 = "13lngz2c4hzrdmazkxx511ak8nyq0xcydf4qqpn7gz4vvii6glf0"; - }; - }; - "https://repo1.maven.org/maven2/com/google/guava/guava/17.0/guava-17.0" = - { - host = repositories.maven; - path = - "com/google/guava/guava/17.0/guava-17.0"; - type = "jar"; - pom = { - sha1 = "0f534dabee0b40b25715869c5e1287e38c7e1e4a"; - sha256 = "0nxpdkb27m770j0c4xlg7l34aj87h7qja7dbmqrcf99q1l0ic39a"; - }; - jar = { - sha1 = "9c6ef172e8de35fd8d4d8783e4821e57cdef7445"; - sha256 = "1g7bhyvzsx61lrca01hvpivkdgjvgj1wy5qa0jwbdl0klq7ahdlc"; - }; - }; - "https://repo1.maven.org/maven2/com/google/guava/guava/18.0/guava-18.0" = - { - host = repositories.maven; - path = - "com/google/guava/guava/18.0/guava-18.0"; - type = "jar"; - pom = { - sha1 = "2ec12f8d27a64e970b8be0fbd1d52dfec51cd41c"; - sha256 = "0dlqf4baf5h1j9b2a1i96n5l3i21vm7r3xync305sszpfqfxchz7"; - }; - jar = { - sha1 = "cce0823396aa693798f8882e64213b1772032b09"; - sha256 = "16bgkzvk3sprn5rs9hfcpvz9vgyhy40zni1amffcxrfj0gygnr6n"; - }; - }; - "https://repo1.maven.org/maven2/com/google/guava/guava/19.0/guava-19.0" = - { - host = repositories.maven; - path = - "com/google/guava/guava/19.0/guava-19.0"; - type = "jar"; - pom = { - sha1 = "65a43a21dbddcc19aa3ca50a63a4b33166bfbc77"; - sha256 = "0qxca62zgm95dqpgwx0v1n2r1mvwi2m5l3n99pgpy1zilx6hdp5d"; - }; - jar = { - sha1 = "6ce200f6b23222af3d8abb6b6459e6c44f4bb0e9"; - sha256 = "1r3x0mznza3j1k3g75mhdz5y2fv2flph72snmjxi5c7b0lpcrm2q"; - }; - }; - "https://repo1.maven.org/maven2/com/google/guava/guava/20.0/guava-20.0" = - { - host = repositories.maven; - path = - "com/google/guava/guava/20.0/guava-20.0"; - type = "jar"; - pom = { - sha1 = "386bd381301224cac5ae8d2c7883b90a12192d79"; - sha256 = "0xlhw5f82l4cw6qn85hw3ky4hvby8q4iwc6mcjjxfq5pcwvwhg1n"; - }; - jar = { - sha1 = "89507701249388e1ed5ddcf8c41f4ce1be7831ef"; - sha256 = "1j48qav9slfmvyjhpxljs69nqvh8gsv58dm2vkqg1rqsnzind9in"; - }; - }; - "https://repo1.maven.org/maven2/com/google/guava/guava/25.1-jre/guava-25.1-jre" = - { - host = repositories.maven; - path = - "com/google/guava/guava/25.1-jre/guava-25.1-jre"; - type = "jar"; - pom = { - sha1 = "5dd13f6c0d56f05059c5eba88a20a8699ece583d"; - sha256 = "1pya5f4vbh8z9zvprnl64i9qqp0rghjfsflx64q9md28w5pb9y35"; - }; - jar = { - sha1 = "6c57e4b22b44e89e548b5c9f70f0c45fe10fb0b4"; - sha256 = "1gqaqxdnxhr1gk9haldrifvda8ingj1s4bin5sf455y38jic7c3d"; - }; - }; - "https://repo1.maven.org/maven2/com/google/j2objc/j2objc-annotations/1.1/j2objc-annotations-1.1" = - { - host = repositories.maven; - path = - "com/google/j2objc/j2objc-annotations/1.1/j2objc-annotations-1.1"; - type = "jar"; - pom = { - sha1 = "b964a9414771661bdf35a3f10692a2fb0dd2c866"; - sha256 = "1gnn7b80krv19qjd9hhacahffqq9iwqgmw4ds56wp9wk3rbqrjgh"; - }; - jar = { - sha1 = "ed28ded51a8b1c6b112568def5f4b455e6809019"; - sha256 = "1xpcvmnw2y3fa56hhk8dmknrq8afr6r3kdmzsg9hnwgjg3msg519"; - }; - }; - "https://repo1.maven.org/maven2/com/google/javascript/closure-compiler-externs/v20150126/closure-compiler-externs-v20150126" = - { - host = repositories.maven; - path = - "com/google/javascript/closure-compiler-externs/v20150126/closure-compiler-externs-v20150126"; - type = "jar"; - pom = { - sha1 = "c97211f4ef41140fa709e2a68b51b75f05bdb5e6"; - sha256 = "0dd4831sxz89gq6bsq0xmy6kpzmv80ikv7akirggv1r04h5yjvyq"; - }; - jar = { - sha1 = "0153721bc5cefa99eabbf6cef22972774895ddd6"; - sha256 = "08l32yy6szkl1zl0gksmb2rh8sigmxjfpvh5vz0r0wl6kqiscnss"; - }; - }; - "https://repo1.maven.org/maven2/com/google/javascript/closure-compiler-externs/v20160911/closure-compiler-externs-v20160911" = - { - host = repositories.maven; - path = - "com/google/javascript/closure-compiler-externs/v20160911/closure-compiler-externs-v20160911"; - type = "jar"; - pom = { - sha1 = "7b7a22dd2f7d760272db367cc58610f4fae3e3f9"; - sha256 = "1l9lg1sf1y4dpykx40rc6wsny3nwqjz69kpbxw15mc9yd0j5qlbp"; - }; - jar = { - sha1 = "3186e2c9a2018bb49547947d2919b0e6998a1fe2"; - sha256 = "1dq7jg1cjx5f8d9rs72s5sc2rg2lslram9zp1nm9dxjpvfx47ihp"; - }; - }; - "https://repo1.maven.org/maven2/com/google/javascript/closure-compiler-externs/v20170521/closure-compiler-externs-v20170521" = - { - host = repositories.maven; - path = - "com/google/javascript/closure-compiler-externs/v20170521/closure-compiler-externs-v20170521"; - type = "jar"; - pom = { - sha1 = "ad5a7758c46ed0361e1eedcbe6cd9bcfd953adc8"; - sha256 = "004ij8z6qcayv5rmllblckhr3idm9zrk75lkzlpbw83pxb43m2fv"; - }; - jar = { - sha1 = "d838c1b40a31efac71687aa197ce559f5459f983"; - sha256 = "13yy2h4f9wbhilqw2sd7q3mgqmrpnlmwwhfg9nchkkz72rp5va97"; - }; - }; - "https://repo1.maven.org/maven2/com/google/javascript/closure-compiler-externs/v20190325/closure-compiler-externs-v20190325" = - { - host = repositories.maven; - path = - "com/google/javascript/closure-compiler-externs/v20190325/closure-compiler-externs-v20190325"; - type = "jar"; - pom = { - sha1 = "016ecee910c8dc4d0295e60a5e3a1e8590539815"; - sha256 = "0bjxjdwdqmp3k55b5jr9i8mychsfsg5ky5vya9rn7jqs6wz5ympk"; - }; - jar = { - sha1 = "410c1ae0585d36fbd12503b99b783f692c455519"; - sha256 = "0qnymibhmb76c5crm3yz71j5gmsjh041bj7mv4a1qsc4p5v7zh54"; - }; - }; - "https://repo1.maven.org/maven2/com/google/javascript/closure-compiler-main/v20160911/closure-compiler-main-v20160911" = - { - host = repositories.maven; - path = - "com/google/javascript/closure-compiler-main/v20160911/closure-compiler-main-v20160911"; - type = "jar"; - pom = { - sha1 = "aba7ccec34a9c07ee7cc8d606bd2852f00ca9a9e"; - sha256 = "0bzzwassbwfqpqjvnggn26r53mg9ayw0w8paj4vbd9mqq1b1qg41"; - }; - }; - "https://repo1.maven.org/maven2/com/google/javascript/closure-compiler-main/v20170521/closure-compiler-main-v20170521" = - { - host = repositories.maven; - path = - "com/google/javascript/closure-compiler-main/v20170521/closure-compiler-main-v20170521"; - type = "jar"; - pom = { - sha1 = "497c375aa4ea7deebab96e993b659a6b62926e41"; - sha256 = "0c9daw25c559h68vhfxjnk5gbv1z8yqx230r6q3ziff0fcpsc85q"; - }; - }; - "https://repo1.maven.org/maven2/com/google/javascript/closure-compiler-main/v20190325/closure-compiler-main-v20190325" = - { - host = repositories.maven; - path = - "com/google/javascript/closure-compiler-main/v20190325/closure-compiler-main-v20190325"; - type = "jar"; - pom = { - sha1 = "2e57c608a83054269602ca875393588376bdae92"; - sha256 = "16dlvc62kg5kw00h02v35cpzfnjv6jl0l1sf4j6k2hv0zn688kih"; - }; - }; - "https://repo1.maven.org/maven2/com/google/javascript/closure-compiler-parent/v20150126/closure-compiler-parent-v20150126" = - { - host = repositories.maven; - path = - "com/google/javascript/closure-compiler-parent/v20150126/closure-compiler-parent-v20150126"; - type = "jar"; - pom = { - sha1 = "0ad8953ef437e516f8782f7d28c0c3c71029c547"; - sha256 = "0wnhrmdf1pijs46vm4fdpd8qrkwa9lay1v2gs41bm77jir1q7l7y"; - }; - }; - "https://repo1.maven.org/maven2/com/google/javascript/closure-compiler-parent/v20151216/closure-compiler-parent-v20151216" = - { - host = repositories.maven; - path = - "com/google/javascript/closure-compiler-parent/v20151216/closure-compiler-parent-v20151216"; - type = "jar"; - pom = { - sha1 = "df33701c6a148f90a5bd70c58278a1822736799a"; - sha256 = "1ji6lzs7bxcgdhdcyx2vlh84mzshfdlpm0nc6gmkqm7xf96i7k92"; - }; - }; - "https://repo1.maven.org/maven2/com/google/javascript/closure-compiler-parent/v20160911/closure-compiler-parent-v20160911" = - { - host = repositories.maven; - path = - "com/google/javascript/closure-compiler-parent/v20160911/closure-compiler-parent-v20160911"; - type = "jar"; - pom = { - sha1 = "103384ce0cf44301a5e85b262ae7807142427b3e"; - sha256 = "0wmanmgpdl7p0bkbli4yn5pxz2w8jpljh0w84acn4f421nyd8cjg"; - }; - }; - "https://repo1.maven.org/maven2/com/google/javascript/closure-compiler-parent/v20170521/closure-compiler-parent-v20170521" = - { - host = repositories.maven; - path = - "com/google/javascript/closure-compiler-parent/v20170521/closure-compiler-parent-v20170521"; - type = "jar"; - pom = { - sha1 = "a8720026489578de0b2d22806bffd55721eab378"; - sha256 = "0s6860ypm0m34qg0fbs5b2mg6zj5ff3sfs900l7n4n06dk1854qy"; - }; - }; - "https://repo1.maven.org/maven2/com/google/javascript/closure-compiler-parent/v20190325/closure-compiler-parent-v20190325" = - { - host = repositories.maven; - path = - "com/google/javascript/closure-compiler-parent/v20190325/closure-compiler-parent-v20190325"; - type = "jar"; - pom = { - sha1 = "ab85e2babd5e00155da30883acbbf2d1e4f28b38"; - sha256 = "1kp3w6rw13avpsnkgg2d8k245yg9k9sf1hckdd8hidrzpv0v1qgz"; - }; - }; - "https://repo1.maven.org/maven2/com/google/javascript/closure-compiler-unshaded/v20160911/closure-compiler-unshaded-v20160911" = - { - host = repositories.maven; - path = - "com/google/javascript/closure-compiler-unshaded/v20160911/closure-compiler-unshaded-v20160911"; - type = "jar"; - pom = { - sha1 = "9717f0d1134a13d075662d404f92fefc72ec9cbd"; - sha256 = "1rz1cpbaa1xilgp86kyj1dh6b3a2nxj3nvzlbliq6sgxvnvwp8s4"; - }; - jar = { - sha1 = "96ac7a8c32377690555ac93310498bebea3e26ef"; - sha256 = "0s1d1cdb596gh1qzhqzp8i0r1mmmsp98cfajmsm5nljlyi5kd11a"; - }; - }; - "https://repo1.maven.org/maven2/com/google/javascript/closure-compiler-unshaded/v20170521/closure-compiler-unshaded-v20170521" = - { - host = repositories.maven; - path = - "com/google/javascript/closure-compiler-unshaded/v20170521/closure-compiler-unshaded-v20170521"; - type = "jar"; - pom = { - sha1 = "9417f990267419490d14b93151f5cb83dd66440c"; - sha256 = "183i1ygpqhlqjfj38fdzpn3vfnhzwkj06yr1xbw6368xbv1hdivp"; - }; - jar = { - sha1 = "8987aa201a79141369f8bfba77492093512f9dc4"; - sha256 = "1186iddh57ayy6x0r4zxjzj3w8f7vn2m132kc7bj1z8mf93337i6"; - }; - }; - "https://repo1.maven.org/maven2/com/google/javascript/closure-compiler-unshaded/v20190325/closure-compiler-unshaded-v20190325" = - { - host = repositories.maven; - path = - "com/google/javascript/closure-compiler-unshaded/v20190325/closure-compiler-unshaded-v20190325"; - type = "jar"; - pom = { - sha1 = "2c2e9474bc0b5f7c0f8305265aaa43fca9bceb5a"; - sha256 = "0halaqpfgpjd9bbdrhyg1969d2zkr22vz1yz55jk69cy0yrz8b64"; - }; - jar = { - sha1 = "d16b730974a39ed642991d1c11e9b2be37e6f709"; - sha256 = "0rzy3pccviy3psj064fqd4sb4b2riihrcwgv5r0lv6pm4hmx77mf"; - }; - }; - "https://repo1.maven.org/maven2/com/google/javascript/closure-compiler/v20150126/closure-compiler-v20150126" = - { - host = repositories.maven; - path = - "com/google/javascript/closure-compiler/v20150126/closure-compiler-v20150126"; - type = "jar"; - pom = { - sha1 = "3e31c812c48c60de81b546647225b295120fa52e"; - sha256 = "0bmnadvdbpvrmmqh7j9avpcrj0xkvvxaikc0wgxpjfjddf512vca"; - }; - jar = { - sha1 = "77122c57def78c9a0386fa600052d06d96a226a7"; - sha256 = "19pslgbv3il9ghdg68z8gwpg65hi85sbcmi9gnvm4pf83hfig2fc"; - }; - }; - "https://repo1.maven.org/maven2/com/google/javascript/closure-compiler/v20151216/closure-compiler-v20151216" = - { - host = repositories.maven; - path = - "com/google/javascript/closure-compiler/v20151216/closure-compiler-v20151216"; - type = "jar"; - pom = { - sha1 = "b38b026d67c1086b15516e90f0cc99e9070e9c33"; - sha256 = "13dshdznvlplhhdabb4qb02d8mbq9k8ci2xacm2wwqcggl3nk5xp"; - }; - jar = { - sha1 = "b5cd14a356cd9079791ba10b6d9623ef4ae4df6e"; - sha256 = "1wjnps06m015l1pzzzg9jmcvwz6dpjccz1c1ljbcbil9br4kprmv"; - }; - }; - "https://repo1.maven.org/maven2/com/google/jsinterop/jsinterop-annotations/1.0.0/jsinterop-annotations-1.0.0" = - { - host = repositories.maven; - path = - "com/google/jsinterop/jsinterop-annotations/1.0.0/jsinterop-annotations-1.0.0"; - type = "jar"; - pom = { - sha1 = "2a76aa209ba1c76784db2f8cd00d98d349d2c909"; - sha256 = "00n35vbdh3j6ympsw0vppx1x6bs5bv4wg3a5mrnvbv408h68qnvd"; - }; - jar = { - sha1 = "23c3a3c060ffe4817e67673cc8294e154b0a4a95"; - sha256 = "0m688mrv888fqszjnhhvv94pdfda3z61nr42sfinbywqxz7f1hg5"; - }; - }; - "https://repo1.maven.org/maven2/com/google/jsinterop/jsinterop/1.0.0/jsinterop-1.0.0" = - { - host = repositories.maven; - path = - "com/google/jsinterop/jsinterop/1.0.0/jsinterop-1.0.0"; - type = "jar"; - pom = { - sha1 = "62210407b811fc7a4fe5edcf17b83f39b1e2dc01"; - sha256 = "1f7rzx53sdgagx0bx6gzym5d6a7wh6fhxkkzwkd2m83cas010x5k"; - }; - }; - "https://repo1.maven.org/maven2/com/google/protobuf/protobuf-java/2.5.0/protobuf-java-2.5.0" = - { - host = repositories.maven; - path = - "com/google/protobuf/protobuf-java/2.5.0/protobuf-java-2.5.0"; - type = "jar"; - pom = { - sha1 = "d0b411e81d63761989f1329e8650ef27f6f77d25"; - sha256 = "0isgblny3w76jxiy7rdab3zg6d5f1sfw7vjal5y43al7mx97m0wx"; - }; - jar = { - sha1 = "a10732c76bfacdbd633a7eb0f7968b1059a65dfa"; - sha256 = "0x6c4pbsizvk3lm6nxcgi1g2iqgrxcna1ip74lbn01f0fm2wdhg0"; - }; - }; - "https://repo1.maven.org/maven2/com/google/protobuf/protobuf-java/3.0.2/protobuf-java-3.0.2" = - { - host = repositories.maven; - path = - "com/google/protobuf/protobuf-java/3.0.2/protobuf-java-3.0.2"; - type = "jar"; - pom = { - sha1 = "5dc19d1f724edfb259119a773d951935a1d72bfd"; - sha256 = "163skyjd62sphzq0wiv87q8k3hsard4803kqiw4jrfypyih615gx"; - }; - jar = { - sha1 = "ee55e8e697d10b6643d77bb1f686bac3b9ba8579"; - sha256 = "0igpvapbbgkl5rmvf6li2c051676phipg9vf3gi7np7w7gzrs0ng"; - }; - }; - "https://repo1.maven.org/maven2/com/google/protobuf/protobuf-parent/3.0.2/protobuf-parent-3.0.2" = - { - host = repositories.maven; - path = - "com/google/protobuf/protobuf-parent/3.0.2/protobuf-parent-3.0.2"; - type = "jar"; - pom = { - sha1 = "f00b6e9a0501e0d4870a76b8e877e3ec0d70dd00"; - sha256 = "0vzi1wh9d2x5qvfys2yhnf9pzlrgrmhmyyc2n5jqljzccm60ayhk"; - }; - }; - "https://repo1.maven.org/maven2/com/google/truth/truth-parent/0.24/truth-parent-0.24" = - { - host = repositories.maven; - path = - "com/google/truth/truth-parent/0.24/truth-parent-0.24"; - type = "jar"; - pom = { - sha1 = "8f9907589a243fb3a610f55df12da1ae56709f4f"; - sha256 = "05m6hnqm0szsjhbncnpnnp3v8kcbgd48gsmi5z5x7lk27i6x1p9n"; - }; - }; - "https://repo1.maven.org/maven2/com/google/truth/truth/0.24/truth-0.24" = - { - host = repositories.maven; - path = - "com/google/truth/truth/0.24/truth-0.24"; - type = "jar"; - pom = { - sha1 = "45149f71f8234d6c65a4478b5260edf00f5571c7"; - sha256 = "1261bpdnr2zdrv8z1qymhn9a5vpl6jh8vxhlqk4zm5dryylyfr9c"; - }; - jar = { - sha1 = "7f70cea641f8812179c60162cb38354e81a459ae"; - sha256 = "1adv2cb5vbss4flx8q9z905nia031brnikk0szlryw7gkkxzj3pw"; - }; - }; - "https://repo1.maven.org/maven2/com/googlecode/java-diff-utils/diffutils/1.2.1/diffutils-1.2.1" = - { - host = repositories.maven; - path = - "com/googlecode/java-diff-utils/diffutils/1.2.1/diffutils-1.2.1"; - type = "jar"; - pom = { - sha1 = "3db400baff3182027a58d7e1984974949f96c2a7"; - sha256 = "1p0cg71dj6d3q60ch1q5mpma824f7jakwpapbnc5i2f4frp6wl1a"; - }; - jar = { - sha1 = "b716099bab8f2605aa3053824ece28f2b0ad1921"; - sha256 = "0wf1la6jsibrynrfsp2a7g2gx6f9q44v30qarm9m6x6xp31rg1n9"; - }; - }; - "https://repo1.maven.org/maven2/com/googlecode/json-simple/json-simple/1.1.1/json-simple-1.1.1" = - { - host = repositories.maven; - path = - "com/googlecode/json-simple/json-simple/1.1.1/json-simple-1.1.1"; - type = "jar"; - pom = { - sha1 = "5e902aae26ac5c36f6420f689f43333129dd69e2"; - sha256 = "10vzlnl8vbjv2jqf818wdb7kgy9c6qjka7fjmmi3vdpg1mcn6pv6"; - }; - jar = { - sha1 = "c9ad4a0850ab676c5c64461a05ca524cdfff59f1"; - sha256 = "170rflxnqnah0265ik2aylmxkshyqbf2zas9bp2l32xqj9l6jsaf"; - }; - }; - "https://repo1.maven.org/maven2/commons-codec/commons-codec/1.10/commons-codec-1.10" = - { - host = repositories.maven; - path = - "commons-codec/commons-codec/1.10/commons-codec-1.10"; - type = "jar"; - pom = { - sha1 = "44b9477418d2942d45550f7e7c66c16262062d0e"; - sha256 = "1yscxabk7i59vgfjg7c1y3prj39h1d8prnwgxbisc4ni29qdpf5x"; - }; - jar = { - sha1 = "4b95f4897fa13f2cd904aee711aeafc0c5295cd8"; - sha256 = "0scm6321zz76dc3bs8sy2qyami755lz4lq5455gl67bi9slxyha2"; - }; - }; - "https://repo1.maven.org/maven2/junit/junit/4.10/junit-4.10" = - { - host = repositories.maven; - path = - "junit/junit/4.10/junit-4.10"; - type = "jar"; - pom = { - sha1 = "35bef83e80c3431f95d267e19252bddfe965041c"; - sha256 = "1d9fqsravgina2bn57dlvm3px7n54z7nw0nqg9mi1dp8m85vz892"; - }; - jar = { - sha1 = "e4f1766ce7404a08f45d859fb9c226fc9e41a861"; - sha256 = "0nppn3pgsyh7py465nk6fxi0s0w7pciqfnq5i3mgd1hb3v54g9rn"; - }; - }; - "https://repo1.maven.org/maven2/org/apache/apache/15/apache-15" = - { - host = repositories.maven; - path = - "org/apache/apache/15/apache-15"; - type = "jar"; - pom = { - sha1 = "95c70374817194cabfeec410fe70c3a6b832bafe"; - sha256 = "156lk89x31r2d6ljpwl1lvrl0sxgkd70wj6bq18b8rxcg7wz5hin"; - }; - }; - "https://repo1.maven.org/maven2/org/apache/apache/9/apache-9" = - { - host = repositories.maven; - path = - "org/apache/apache/9/apache-9"; - type = "jar"; - pom = { - sha1 = "de55d73a30c7521f3d55e8141d360ffbdfd88caa"; - sha256 = "1p8qrz7swd6ylwfiv6x4kr3gip6sy2vca8xwydlxm3kwah5fcij9"; - }; - }; - "https://repo1.maven.org/maven2/org/apache/commons/commons-compress/1.3/commons-compress-1.3" = - { - host = repositories.maven; - path = - "org/apache/commons/commons-compress/1.3/commons-compress-1.3"; - type = "jar"; - pom = { - sha1 = "b7d1722fa0f1bc04b7e8e41a31537a197c41bd6c"; - sha256 = "15mri91y6xy7qs0la1jp9qdvd5mlw25psqp2ngkchzih3kdsp88y"; - }; - jar = { - sha1 = "613a08bc72e2e9a43c9f87b9ff8352b47e18e3ae"; - sha256 = "015aw9v4shj1hz1rbkiya06vc88czbx9pgsgng0aph7n4xa1laan"; - }; - }; - "https://repo1.maven.org/maven2/org/apache/commons/commons-parent/22/commons-parent-22" = - { - host = repositories.maven; - path = - "org/apache/commons/commons-parent/22/commons-parent-22"; - type = "jar"; - pom = { - sha1 = "0e895fa7ed472b3b2081ef77e2d5ece78c139d54"; - sha256 = "1frwdic537d95l0ikgkvfpb4wjfjx2h5h211zysdsyhawdamx37v"; - }; - }; - "https://repo1.maven.org/maven2/org/apache/commons/commons-parent/35/commons-parent-35" = - { - host = repositories.maven; - path = - "org/apache/commons/commons-parent/35/commons-parent-35"; - type = "jar"; - pom = { - sha1 = "d88c24ebb385e5404f34573f24362b17434e3f33"; - sha256 = "16p48k5ly6yli1wlzb5qcipwd0lzhsnbrjr1vk4x9v1nhfms363h"; - }; - }; - "https://repo1.maven.org/maven2/org/checkerframework/checker-qual/2.0.0/checker-qual-2.0.0" = - { - host = repositories.maven; - path = - "org/checkerframework/checker-qual/2.0.0/checker-qual-2.0.0"; - type = "jar"; - pom = { - sha1 = "17ab37f0fb0338647a70ab40f15c2c685e4185e3"; - sha256 = "0s0062lnqk8vq23dil7qma7rl5x1h16h2x4bah7fw6rbvm9h7cfy"; - }; - jar = { - sha1 = "518929596ee3249127502a8573b2e008e2d51ed3"; - sha256 = "15br88i0dk5l0hdh6ikgg6kvdbdir38jdw69j9s579az5xil317w"; - }; - }; - "https://repo1.maven.org/maven2/org/clojure/clojure/1.10.0/clojure-1.10.0" = - { - host = repositories.maven; - path = - "org/clojure/clojure/1.10.0/clojure-1.10.0"; - type = "jar"; - pom = { - sha1 = "0dcfdfad678f6f603d178f895af86b82b040d69d"; - sha256 = "13434kg8sbnjy66ra3h8cv9l8ysb683w0j7fpay0q935hv52w390"; - }; - jar = { - sha1 = "0383381021e03691dff101a9b12accb79e9a4e10"; - sha256 = "0f5fpgm2858jq5waq5ww1vvv44b5agi4vmnbhbgnwmy0b150j52h"; - }; - }; - "https://repo1.maven.org/maven2/org/clojure/clojure/1.10.1/clojure-1.10.1" = - { - host = repositories.maven; - path = - "org/clojure/clojure/1.10.1/clojure-1.10.1"; - type = "jar"; - pom = { - sha1 = "3fc51cbb6dc8bb6fefc2bae63da919ae7e3d538e"; - sha256 = "131sv1nv3s0mpfv3bplh1z0b6hh7m403x00sxn236iqfz8jazxqh"; - }; - jar = { - sha1 = "a1e6b92ce9b1bfc5d181867a45da8a38a6077662"; - sha256 = "06nj99mi0092qhv32ipk0nws4sdhnc890xx4gsgabllyzn8zkxnl"; - }; - }; - "https://repo1.maven.org/maven2/org/clojure/clojure/1.3.0/clojure-1.3.0" = - { - host = repositories.maven; - path = - "org/clojure/clojure/1.3.0/clojure-1.3.0"; - type = "jar"; - pom = { - sha1 = "db857140ab8989f1eb286fc54315a8ccd19888ef"; - sha256 = "1akvgwybj3584mn4jg1i7xzp0gk5bng6jkf8ahxhxwyd1jl2np37"; - }; - jar = { - sha1 = "04830e76a9e8c029acb257a70c5cf30592e5a301"; - sha256 = "0bmbc36mjdf4yxi9di0dsxkq04gwc9k1c2qzv44hdibi22sbzszp"; - }; - }; - "https://repo1.maven.org/maven2/org/clojure/clojure/1.4.0/clojure-1.4.0" = - { - host = repositories.maven; - path = - "org/clojure/clojure/1.4.0/clojure-1.4.0"; - type = "jar"; - pom = { - sha1 = "7a8a4b7f3be166e9e7a6efb997bd750af5ab37fb"; - sha256 = "08fbsgm3qpdyqxr3w10q1g4diqvf5zjb9a4gpkgs9mvky29ad6zz"; - }; - jar = { - sha1 = "867288bc07a6514e2e0b471c5be0bccd6c3a51f9"; - sha256 = "1j6ndg13f47f8r2vbkipq0yvhq2gc737xxkw7vccm50jqv4l0pjc"; - }; - }; - "https://repo1.maven.org/maven2/org/clojure/clojure/1.5.0/clojure-1.5.0" = - { - host = repositories.maven; - path = - "org/clojure/clojure/1.5.0/clojure-1.5.0"; - type = "jar"; - pom = { - sha1 = "1a22da8c0a7a0406393182a6e20a262ea8cbfe2f"; - sha256 = "0wcan4qxs4fxq32c9xhmp3jn47clarnm4968l0nq1r1xvivrfnf4"; - }; - jar = { - sha1 = "60fa560263212980c37bdc46da8ae41e6b9f6d7b"; - sha256 = "14briy542vysa2i60hn2qkqm4di3vh7vx5n5rg8i5wz6k3rc103s"; - }; - }; - "https://repo1.maven.org/maven2/org/clojure/clojure/1.5.1/clojure-1.5.1" = - { - host = repositories.maven; - path = - "org/clojure/clojure/1.5.1/clojure-1.5.1"; - type = "jar"; - pom = { - sha1 = "d6fc44f6701fa2e0ed716551fab6eb57611ac378"; - sha256 = "1b2rdy98rmv5rl8576j09prh0aa268wvz0gd7482702bfadfhy3x"; - }; - jar = { - sha1 = "e7e53da8bc4ac41fca95ccfacf84f9469dd3147f"; - sha256 = "078mrlsqgapvqwbp0yncjqilphsq7g366j3fck0bz8fyfzwq9h84"; - }; - }; - "https://repo1.maven.org/maven2/org/clojure/clojure/1.7.0-beta1/clojure-1.7.0-beta1" = - { - host = repositories.maven; - path = - "org/clojure/clojure/1.7.0-beta1/clojure-1.7.0-beta1"; - type = "jar"; - pom = { - sha1 = "1439bf60e055332c636bfd9fd68e23b2104f4982"; - sha256 = "0glv5qdc0r3yrqwd8zyvqm2fsha2blhab88aiawbpf3m20gn89p9"; - }; - jar = { - sha1 = "0b4d1297efd5fc8ffecb49e5b63f7af8e184f02d"; - sha256 = "106276vv0yzfnyaff5qsa8mqx8vrv00zyxjswdhbf57ls1i9s80l"; - }; - }; - "https://repo1.maven.org/maven2/org/clojure/clojure/1.7.0/clojure-1.7.0" = - { - host = repositories.maven; - path = - "org/clojure/clojure/1.7.0/clojure-1.7.0"; - type = "jar"; - pom = { - sha1 = "809286a504011ff0556a3058533cf70ef15d4ae5"; - sha256 = "0zsbr4snlh6g5q9r97s1lyyxf2wr88r80gr8dnmynw7za7nrcwjz"; - }; - jar = { - sha1 = "4953eb1ffa4adca22760c9324c9c26d2038c392a"; - sha256 = "1kjviqpwkf8cncjvdxdygh0ycf7x6rwd6g8y99cjm53hj46fr2af"; - }; - }; - "https://repo1.maven.org/maven2/org/clojure/clojure/1.8.0/clojure-1.8.0" = - { - host = repositories.maven; - path = - "org/clojure/clojure/1.8.0/clojure-1.8.0"; - type = "jar"; - pom = { - sha1 = "54b0fc7541f1e399682fb20885fd558bd1c6a47f"; - sha256 = "1r0n01qzkfjb2dikfjll5i8g9nv087rwaarxmzp1ny3w3ny15ggz"; - }; - jar = { - sha1 = "313066c972b6b00f390674bf0e9f732c07f205a4"; - sha256 = "1a30sdpn1rr50w7qfz6pn3z5i43fjq3z9qm1aa4cd9piwhgpy6h6"; - }; - }; - "https://repo1.maven.org/maven2/org/clojure/clojurescript/0.0-3211/clojurescript-0.0-3211" = - { - host = repositories.maven; - path = - "org/clojure/clojurescript/0.0-3211/clojurescript-0.0-3211"; - type = "jar"; - pom = { - sha1 = "ee91448cb07065355725a7240b381e146b41c744"; - sha256 = "1ba99ljsdgfhwijgb40lb1w7gviy18a4vjklcwnkraw25bmxxj70"; - }; - jar = { - sha1 = "607c611badd143a5f96ca1a0ecddd4c4e29e139e"; - sha256 = "1q9v5ni61aifxj24l4pjsfy1wlxak8nr0c4vmyajzwijgndml94s"; - }; - }; - "https://repo1.maven.org/maven2/org/clojure/clojurescript/1.10.520/clojurescript-1.10.520" = - { - host = repositories.maven; - path = - "org/clojure/clojurescript/1.10.520/clojurescript-1.10.520"; - type = "jar"; - pom = { - sha1 = "56a6d73308b616f495ba8f380488e70d4af41a11"; - sha256 = "0nzycmc6xj7ahdkv8172h59d9ihhkf4mv9kqf21ngyarvpv8i9yi"; - }; - jar = { - sha1 = "a0e637ee383cfd62a1f790929210efb2e372a9ce"; - sha256 = "029jz9x9pn3ayjzzy3ybikqzz4mv30v6znc6bw5qzch7qayqd425"; - }; - }; - "https://repo1.maven.org/maven2/org/clojure/clojurescript/1.7.228/clojurescript-1.7.228" = - { - host = repositories.maven; - path = - "org/clojure/clojurescript/1.7.228/clojurescript-1.7.228"; - type = "jar"; - pom = { - sha1 = "2a0105d3425b7cc191548104b04248c49da08985"; - sha256 = "0fi24vi6xm7bw6b210m9pb5ijywq070mmkxajvy3h6w0gmzqgggz"; - }; - jar = { - sha1 = "238989ea628e89499d1da64e231692bd2072d610"; - sha256 = "0z531izb085jnhiklmr8favvs154dnls5g3jm1nl1c99jd4b4g3g"; - }; - }; - "https://repo1.maven.org/maven2/org/clojure/clojurescript/1.9.293/clojurescript-1.9.293" = - { - host = repositories.maven; - path = - "org/clojure/clojurescript/1.9.293/clojurescript-1.9.293"; - type = "jar"; - pom = { - sha1 = "f9ed2ec4f18bd09ce9fdc925be71facf80627501"; - sha256 = "04hh02a9fzyls51ylrzwjhzli256ds4n308nvz3vah515kbghzbp"; - }; - jar = { - sha1 = "9916db845e309c7a62caeaa2f71bce4ae878459b"; - sha256 = "0blzqzdm7l9jsalz6ph8csdx287i1v3vmj684ffdfdaw38l6nriq"; - }; - }; - "https://repo1.maven.org/maven2/org/clojure/clojurescript/1.9.655/clojurescript-1.9.655" = - { - host = repositories.maven; - path = - "org/clojure/clojurescript/1.9.655/clojurescript-1.9.655"; - type = "jar"; - pom = { - sha1 = "0e64057c4ae00ce24d9a143f0c8b1986038890a7"; - sha256 = "1schprif3llc37b2vhca33mf03zd5ib9ahjrqnibbp20mw0zlzc2"; - }; - jar = { - sha1 = "7886fa49bdc8a886f0a6ba6790f04d5139a2cf38"; - sha256 = "0w62l7i875zim6ac5b0vhy98lgkkjj5jwfa5cjzvlyrz2j9ivld7"; - }; - }; - "https://repo1.maven.org/maven2/org/clojure/core.async/0.4.474/core.async-0.4.474" = - { - host = repositories.maven; - path = - "org/clojure/core.async/0.4.474/core.async-0.4.474"; - type = "jar"; - pom = { - sha1 = "7ad313a6e7248eb4a52739dc13ff79b96ce15dd3"; - sha256 = "06xpvfrfh86lvqqa3jggrr8bzwaivfab15f0x1c1rgb0yblmip5z"; - }; - jar = { - sha1 = "6887af0e03c4576855ea3dcda1c64947bef11569"; - sha256 = "1i7b87in8pw1can91lzxhjw23m7hn4ak5lwxcc4wvg4w7d6iqlpy"; - }; - }; - "https://repo1.maven.org/maven2/org/clojure/core.cache/0.6.5/core.cache-0.6.5" = - { - host = repositories.maven; - path = - "org/clojure/core.cache/0.6.5/core.cache-0.6.5"; - type = "jar"; - pom = { - sha1 = "92272d3ea338358b51c62d6c5fdbae51f37c46c4"; - sha256 = "0yzljp1lmy757bavm66yycw12rg8fxbkir4zysy9g5ywy7757bc2"; - }; - jar = { - sha1 = "82e7ab47bec2f7713817ff46c0150fc89ec20ff9"; - sha256 = "0i4bkwpqd7r6hcq5j5y6pjw8jbkym50zvnnrvl924gc20fjg06ll"; - }; - }; - "https://repo1.maven.org/maven2/org/clojure/core.memoize/0.5.9/core.memoize-0.5.9" = - { - host = repositories.maven; - path = - "org/clojure/core.memoize/0.5.9/core.memoize-0.5.9"; - type = "jar"; - pom = { - sha1 = "b1319c4e147f67fdeda645fa398938201dd563e4"; - sha256 = "13h6q34mh7m7bb4wydq25pp56gk0a91j06k8pldbnyynh5ydkqwk"; - }; - jar = { - sha1 = "cb8bd16034be49ecb95eb29d06a314294949674a"; - sha256 = "1dqi2q6g1p2kf2ypqx22dgrscvkad98fv4ijf00cxfn4wvp7hykr"; - }; - }; - "https://repo1.maven.org/maven2/org/clojure/core.specs.alpha/0.2.44/core.specs.alpha-0.2.44" = - { - host = repositories.maven; - path = - "org/clojure/core.specs.alpha/0.2.44/core.specs.alpha-0.2.44"; - type = "jar"; - pom = { - sha1 = "5626897d1c41a6374c995a296789818a499b8804"; - sha256 = "11m6k5bm8yzrhr872i5y74iqynhw6z4m7y9ff08kzrfqr5k7plwd"; - }; - jar = { - sha1 = "6027ceb1d1ae70a6a3fb1a8da2144632fa688604"; - sha256 = "071q9dvp9nn3fkqs9yc27kgnmddkps1r0w22d3vipr78y3bc87iv"; - }; - }; - "https://repo1.maven.org/maven2/org/clojure/data.json/0.2.6/data.json-0.2.6" = - { - host = repositories.maven; - path = - "org/clojure/data.json/0.2.6/data.json-0.2.6"; - type = "jar"; - pom = { - sha1 = "6bcbbff673ad3df6c716e9ae91d8bbdd8f210c02"; - sha256 = "1bdp6b9zqhjvnfwswfgrxijdw478b4g0l824hc3qzhdigr8bymzw"; - }; - jar = { - sha1 = "ac3437a78d08f9db3dac7debe5a069edac282d95"; - sha256 = "0x4r48mb4pk76ymhgmzhzwkghwcxn9lsp7p2dqdm4xv7rjfn2qkz"; - }; - }; - "https://repo1.maven.org/maven2/org/clojure/data.priority-map/0.0.7/data.priority-map-0.0.7" = - { - host = repositories.maven; - path = - "org/clojure/data.priority-map/0.0.7/data.priority-map-0.0.7"; - type = "jar"; - pom = { - sha1 = "b9278c2a4882568d243166400d04f889615d760f"; - sha256 = "0j54r83bj4dakh0jfbjghdyf5qdkjjqg2kb11qc41bj1l46c0lvg"; - }; - jar = { - sha1 = "ededdc5d68217ffa8d24ada18bae19c352b8521b"; - sha256 = "0yqcxi79xvjmr5i2dkq2l9c6h8x0xsqg7zj45shn54n2mw3pah38"; - }; - }; - "https://repo1.maven.org/maven2/org/clojure/google-closure-library-third-party/0.0-20140718-946a7d39/google-closure-library-third-party-0.0-20140718-946a7d39" = - { - host = repositories.maven; - path = - "org/clojure/google-closure-library-third-party/0.0-20140718-946a7d39/google-closure-library-third-party-0.0-20140718-946a7d39"; - type = "jar"; - pom = { - sha1 = "700be6aba12dc30977e3dcbb44bedab5707487d4"; - sha256 = "1mb651kgln655gbp6yalf2s3y0iha1l6pmpzzvnr78vz3lha7rd8"; - }; - jar = { - sha1 = "1faa3e7cc534b4d07ecfde8f2e7db86f76eaa015"; - sha256 = "0xqy9dyqg97gv4cap2fnhfx0frkvqqirj9lwhal6p8p8db8yk4bg"; - }; - }; - "https://repo1.maven.org/maven2/org/clojure/google-closure-library-third-party/0.0-20151016-61277aea/google-closure-library-third-party-0.0-20151016-61277aea" = - { - host = repositories.maven; - path = - "org/clojure/google-closure-library-third-party/0.0-20151016-61277aea/google-closure-library-third-party-0.0-20151016-61277aea"; - type = "jar"; - pom = { - sha1 = "9ece8b0dc2754d0a49ee7fc07d83eda2105299d3"; - sha256 = "0x6l20zwms8j01kk3rv7q863nvx38m8s5q3ac7gydgbsnzmrpg2m"; - }; - jar = { - sha1 = "aeb6a88cb9aeaa3641ed46aab036fb73035b2253"; - sha256 = "1mb3zvg3jimpjgcg1l6kq0imwp4b84zazd77qxszydp2jdcp7dhv"; - }; - }; - "https://repo1.maven.org/maven2/org/clojure/google-closure-library-third-party/0.0-20160609-f42b4a24/google-closure-library-third-party-0.0-20160609-f42b4a24" = - { - host = repositories.maven; - path = - "org/clojure/google-closure-library-third-party/0.0-20160609-f42b4a24/google-closure-library-third-party-0.0-20160609-f42b4a24"; - type = "jar"; - pom = { - sha1 = "7fe7843f34ca567b80745a93f96af24761ab02d7"; - sha256 = "1b47a2slvl2k0rmsryf71qw31sc89ggcqh3inf5hdd11y7c4c3l7"; - }; - jar = { - sha1 = "93ee501d8b971532e39c91af103e4e69988edbf8"; - sha256 = "1yhazjgz47075mbwj2951nlh28l1mhn6fz54z5vl4cpg3rwwif5i"; - }; - }; - "https://repo1.maven.org/maven2/org/clojure/google-closure-library-third-party/0.0-20170519-fa0499ef/google-closure-library-third-party-0.0-20170519-fa0499ef" = - { - host = repositories.maven; - path = - "org/clojure/google-closure-library-third-party/0.0-20170519-fa0499ef/google-closure-library-third-party-0.0-20170519-fa0499ef"; - type = "jar"; - pom = { - sha1 = "fe9a6f9750910acf9475c0357bfbb2834921c91c"; - sha256 = "0wda27jfjkyzbabz1vvz5ki49x2wwd0c6xglap6m4rck43sdn8mm"; - }; - jar = { - sha1 = "0c7805f1b0ebc5678c52d95065d8fad82d43e9ca"; - sha256 = "1vnpwkk5k89m6lyjs3k6hkks8b26j2gsfafq0f0f7dv7waj2rnjb"; - }; - }; - "https://repo1.maven.org/maven2/org/clojure/google-closure-library-third-party/0.0-20190213-2033d5d9/google-closure-library-third-party-0.0-20190213-2033d5d9" = - { - host = repositories.maven; - path = - "org/clojure/google-closure-library-third-party/0.0-20190213-2033d5d9/google-closure-library-third-party-0.0-20190213-2033d5d9"; - type = "jar"; - pom = { - sha1 = "6acaef9c9891a4cef28796e49907f244ed356afe"; - sha256 = "0vr7786f9bjrm5bb9hr1iql68ld631zcgglak9z82xnlw877vx4c"; - }; - jar = { - sha1 = "03b04d58baba7a54de05707a611f45b545063cda"; - sha256 = "1sg09m1siylp159w0z4p9wmxb8bqvkvymcr3yff1fk705knhhjnw"; - }; - }; - "https://repo1.maven.org/maven2/org/clojure/google-closure-library/0.0-20140718-946a7d39/google-closure-library-0.0-20140718-946a7d39" = - { - host = repositories.maven; - path = - "org/clojure/google-closure-library/0.0-20140718-946a7d39/google-closure-library-0.0-20140718-946a7d39"; - type = "jar"; - pom = { - sha1 = "d23caa1fedbafd70f742c94c3573c3dda08b52b9"; - sha256 = "0n4s85kmkklw7mkc31lr7iklwyn5bywsnwl3dpa1mz49jgmn1hnd"; - }; - jar = { - sha1 = "bc1127c9432ef876b813911f0333841e7076cab3"; - sha256 = "12yvwlcdg0djcddy7c7ck2bdczmfs25sf0njcj38r48pn4icry13"; - }; - }; - "https://repo1.maven.org/maven2/org/clojure/google-closure-library/0.0-20151016-61277aea/google-closure-library-0.0-20151016-61277aea" = - { - host = repositories.maven; - path = - "org/clojure/google-closure-library/0.0-20151016-61277aea/google-closure-library-0.0-20151016-61277aea"; - type = "jar"; - pom = { - sha1 = "d70932bd3fc0d41c58769fdd2c4691ffe54a8bbe"; - sha256 = "1ifclhc3fj26izcicq9q0dljb4wp0g9k4wzg0syiynnvgklrih71"; - }; - jar = { - sha1 = "b0693cbca3c96f464e6949c1a21cd8508d46b413"; - sha256 = "0v2mxg4vd58pzvdqypr4nkmaizk0fy55z10njr0ng0hrkcwp2z99"; - }; - }; - "https://repo1.maven.org/maven2/org/clojure/google-closure-library/0.0-20160609-f42b4a24/google-closure-library-0.0-20160609-f42b4a24" = - { - host = repositories.maven; - path = - "org/clojure/google-closure-library/0.0-20160609-f42b4a24/google-closure-library-0.0-20160609-f42b4a24"; - type = "jar"; - pom = { - sha1 = "37f91f62279a48607153dfc435017398dde79fd0"; - sha256 = "0rpp5ksss6z7g0p5wgddpiny70jhg75v2mxy6asihc6v8k4xnfjh"; - }; - jar = { - sha1 = "f5585ba44bdd8981eeaf24dfd7a16921f9278b8d"; - sha256 = "0ng60nf8fimnqmsp62pjgrqxfqv2m00qpzp6l7b3qhzibwgki18j"; - }; - }; - "https://repo1.maven.org/maven2/org/clojure/google-closure-library/0.0-20170519-fa0499ef/google-closure-library-0.0-20170519-fa0499ef" = - { - host = repositories.maven; - path = - "org/clojure/google-closure-library/0.0-20170519-fa0499ef/google-closure-library-0.0-20170519-fa0499ef"; - type = "jar"; - pom = { - sha1 = "4720292600cf48ae2ab5e5423c16ed99372a2c09"; - sha256 = "0w1zjcxx3d895kw7zaw6j6d0f9c0g5r5ykrqam8qpmpz1sslw6hg"; - }; - jar = { - sha1 = "a9060227c711e90c0564bfeab93570ee5aa839bf"; - sha256 = "00yxra6506kp58x86a88jn9sy4dr8w974daa7xrni5whafyyrgn0"; - }; - }; - "https://repo1.maven.org/maven2/org/clojure/google-closure-library/0.0-20190213-2033d5d9/google-closure-library-0.0-20190213-2033d5d9" = - { - host = repositories.maven; - path = - "org/clojure/google-closure-library/0.0-20190213-2033d5d9/google-closure-library-0.0-20190213-2033d5d9"; - type = "jar"; - pom = { - sha1 = "d38f2cdfc2f40c2fe9cc9c63763260b22469b511"; - sha256 = "1ldqr4hkmvrdl9aqklmyy3d3sbm9mmhnnbnsj7wn6ha5cgka0929"; - }; - jar = { - sha1 = "a1097a8a3353f0ef585ba7aa6caa68d8834254e1"; - sha256 = "1c1xl1bb2l1h6vbgqa25knd8ndbv159pakgjb04s2pripl3drpy8"; - }; - }; - "https://repo1.maven.org/maven2/org/clojure/pom.contrib/0.1.2/pom.contrib-0.1.2" = - { - host = repositories.maven; - path = - "org/clojure/pom.contrib/0.1.2/pom.contrib-0.1.2"; - type = "jar"; - pom = { - sha1 = "5cb07d612649e2c48c4a3632e19541d37a44e23a"; - sha256 = "01l0zy2n7g42ffmq3dyznpkalnvgy53i65sqq8bqrfncin1vv026"; - }; - }; - "https://repo1.maven.org/maven2/org/clojure/pom.contrib/0.2.0/pom.contrib-0.2.0" = - { - host = repositories.maven; - path = - "org/clojure/pom.contrib/0.2.0/pom.contrib-0.2.0"; - type = "jar"; - pom = { - sha1 = "e81260d61365da80b985560c53959810f90df42b"; - sha256 = "0yzfhfplfmf49njz1lg2vp86bmp316mgcqrmm0pvl8x7y52pfyic"; - }; - }; - "https://repo1.maven.org/maven2/org/clojure/pom.contrib/0.2.2/pom.contrib-0.2.2" = - { - host = repositories.maven; - path = - "org/clojure/pom.contrib/0.2.2/pom.contrib-0.2.2"; - type = "jar"; - pom = { - sha1 = "ac4744d31d0752bc38a16d5945526fa845a1e2c1"; - sha256 = "08q3q72iwh37cv6aafp47ybxxr77gg2zq9ndah3y7hy595y25sp0"; - }; - }; - "https://repo1.maven.org/maven2/org/clojure/spec.alpha/0.2.176/spec.alpha-0.2.176" = - { - host = repositories.maven; - path = - "org/clojure/spec.alpha/0.2.176/spec.alpha-0.2.176"; - type = "jar"; - pom = { - sha1 = "7e28eb2449d59217132147c19a80e0d3c8c2515f"; - sha256 = "14mj43w6lfqh68c7yx9rshchpjdzwl1nmmlwdavwhk2qgd3w1769"; - }; - jar = { - sha1 = "cd2d5b03d2ff95a958cb075201b89d28a7dea626"; - sha256 = "1i3chggca910ln6h59ns17p454rpw55ffl6hgymx5p9lzzn9ckpw"; - }; - }; - "https://repo1.maven.org/maven2/org/clojure/tools.analyzer.jvm/0.7.0/tools.analyzer.jvm-0.7.0" = - { - host = repositories.maven; - path = - "org/clojure/tools.analyzer.jvm/0.7.0/tools.analyzer.jvm-0.7.0"; - type = "jar"; - pom = { - sha1 = "e4de601a581040a5c5bdc2db708362dda32c060e"; - sha256 = "1dc40hvqgz2bhjdsgvck9iad4bbkma0j69qbsvdf3b20pdixdqh4"; - }; - jar = { - sha1 = "51301d4c5320762cc287626b9e07d255fb9d3329"; - sha256 = "1s935mgzxfvaxyj4phf4lzqdp0b5bkiarxnb6ip1rk8anrdcapyd"; - }; - }; - "https://repo1.maven.org/maven2/org/clojure/tools.analyzer/0.6.9/tools.analyzer-0.6.9" = - { - host = repositories.maven; - path = - "org/clojure/tools.analyzer/0.6.9/tools.analyzer-0.6.9"; - type = "jar"; - pom = { - sha1 = "d4a89aca74c79bce38710f79bd342ff1b7553aed"; - sha256 = "1yl5q79aw8mhxi4w5zh3ad9q8l0fqhgba86wk50hcaiv5w990fwq"; - }; - jar = { - sha1 = "d16179b3993357015b306c34f2694c69cff93eb1"; - sha256 = "1cs6l541bpipwyd3mzm7xi0qw67hxniv4kacsb7c639jn75nbydk"; - }; - }; - "https://repo1.maven.org/maven2/org/clojure/tools.logging/0.4.1/tools.logging-0.4.1" = - { - host = repositories.maven; - path = - "org/clojure/tools.logging/0.4.1/tools.logging-0.4.1"; - type = "jar"; - pom = { - sha1 = "483bbfc82aee3c005bb1ad36dec77ba5d6c5f95c"; - sha256 = "1qhfigr9am90fx527ax6f7z7xahgsd5hzb4pmi40n79nx3jsc9hf"; - }; - jar = { - sha1 = "991bebc6e3633b85091ae929d62c116a2584aee7"; - sha256 = "001sx1ddgx0ys0z1qphzpxjf2w35rikrfjc0h5bvvqbw8ra0vvja"; - }; - }; - "https://repo1.maven.org/maven2/org/clojure/tools.namespace/0.2.11/tools.namespace-0.2.11" = - { - host = repositories.maven; - path = - "org/clojure/tools.namespace/0.2.11/tools.namespace-0.2.11"; - type = "jar"; - pom = { - sha1 = "9ec25451fcbcf600e30e0303a20e6bf6d6dbf6db"; - sha256 = "1gnx92ibcprz86938742ygxv1rgk1ridlcxxf9bxks30p3ay4qr3"; - }; - jar = { - sha1 = "d2c74b36d3d9b4a8d982c52001365885aabddba7"; - sha256 = "1bmdv2p581mw436s69zdyz0pdwn4czh7s59dfyqgbv8l0vkhnpqc"; - }; - }; - "https://repo1.maven.org/maven2/org/clojure/tools.reader/0.10.0/tools.reader-0.10.0" = - { - host = repositories.maven; - path = - "org/clojure/tools.reader/0.10.0/tools.reader-0.10.0"; - type = "jar"; - pom = { - sha1 = "99754855cbbee3517e3ab263346539f897f7ceba"; - sha256 = "1v6fm8w7w18hpz21cyk38pgc0212g6d1ds8xmg8ag34kqbgv20fj"; - }; - jar = { - sha1 = "33f708ca897d542008ab2bd0d35a27a6d160a1fc"; - sha256 = "04m8lcfkkcqbqn8bpjsg0p188jf56v9r73jxqg2csrzg6warmnip"; - }; - }; - "https://repo1.maven.org/maven2/org/clojure/tools.reader/0.9.1/tools.reader-0.9.1" = - { - host = repositories.maven; - path = - "org/clojure/tools.reader/0.9.1/tools.reader-0.9.1"; - type = "jar"; - pom = { - sha1 = "e17e3ecd87bfcbe6a7640da24cef56eb5fc547b0"; - sha256 = "0r852i1wij514xkll2h1y5h6y1hgkg5wr84zwsczpgyxs5n18s7l"; - }; - jar = { - sha1 = "4635d289ae80e7eccfc5377bbfb2f78d36bec23a"; - sha256 = "05az8g33kr5qva92akb7dr5a311wqmcqx0f5lpan1lc8312rm8g3"; - }; - }; - "https://repo1.maven.org/maven2/org/clojure/tools.reader/1.0.0-alpha1/tools.reader-1.0.0-alpha1" = - { - host = repositories.maven; - path = - "org/clojure/tools.reader/1.0.0-alpha1/tools.reader-1.0.0-alpha1"; - type = "jar"; - pom = { - sha1 = "9a47527c35e0c359dcd917f2b61554dcd562aec8"; - sha256 = "09lgsa18imv6rzsib670r3mvrb0kjdwcx6ymhlxmb3jknzfg6pdp"; - }; - jar = { - sha1 = "f0ef5ec2d46b638739b9e59a8f516b1b84b40bad"; - sha256 = "0s59lw79lx9b1sk08xg5518vzby49p7znpka93ir8kkxd4cd9566"; - }; - }; - "https://repo1.maven.org/maven2/org/clojure/tools.reader/1.0.0-alpha3/tools.reader-1.0.0-alpha3" = - { - host = repositories.maven; - path = - "org/clojure/tools.reader/1.0.0-alpha3/tools.reader-1.0.0-alpha3"; - type = "jar"; - pom = { - sha1 = "333d98ad6e37d2db52bfc106287577fbd05ddb1b"; - sha256 = "10rk7fvbi2r4mvgmbzq1ch3v1pc76vhhylrszrrp58dpb6dx1xzz"; - }; - jar = { - sha1 = "7ef609d39f462fe27140d0594ccf37d7c3356a4f"; - sha256 = "194166s2938w66mrlj1myj3l5pbdd23fcd5ijy9d1gscc6b6q5ga"; - }; - }; - "https://repo1.maven.org/maven2/org/clojure/tools.reader/1.0.0-alpha4/tools.reader-1.0.0-alpha4" = - { - host = repositories.maven; - path = - "org/clojure/tools.reader/1.0.0-alpha4/tools.reader-1.0.0-alpha4"; - type = "jar"; - pom = { - sha1 = "097de81638713b15c4ad9d63adda0c296154142f"; - sha256 = "0lh2h5412ly9wg2x8xpg7azavmap2km1m0iiabygivib2n4rh08d"; - }; - jar = { - sha1 = "579232c937d05dc6547b6dc7fabccca2773cc271"; - sha256 = "1ib07xdjc0s9509j2hxclrr5b1xdj28ypdas6scz1mvjamp5zwgp"; - }; - }; - "https://repo1.maven.org/maven2/org/clojure/tools.reader/1.0.0-beta3/tools.reader-1.0.0-beta3" = - { - host = repositories.maven; - path = - "org/clojure/tools.reader/1.0.0-beta3/tools.reader-1.0.0-beta3"; - type = "jar"; - pom = { - sha1 = "4545cf22c703c03cbccd807171afef38c2431e75"; - sha256 = "0aycgp49zjakvlm3nk19g2jacamdg9givvlwnqa8fbakjpawcljf"; - }; - jar = { - sha1 = "2551fe91105779f8641ed51d8eb21f1bf50b49e4"; - sha256 = "1g6p58rk8bfw7m5qbbx79j85hb9kn0df2wf8xnwwf5cmbpi3w4ns"; - }; - }; - "https://repo1.maven.org/maven2/org/clojure/tools.reader/1.0.0-beta4/tools.reader-1.0.0-beta4" = - { - host = repositories.maven; - path = - "org/clojure/tools.reader/1.0.0-beta4/tools.reader-1.0.0-beta4"; - type = "jar"; - pom = { - sha1 = "419cc516e47f57930a1382501082130baf75cd0a"; - sha256 = "1f074jakaaibvyjqwcc6m2axka2ssh4b3wb17c22lx4i8bsc3rnd"; - }; - jar = { - sha1 = "517ca01ba46f41bd67902836d024bcf717f25ef3"; - sha256 = "1i1lv2im3ds68s7rffa73xqsvvc51lw1rsmqlp6rsqfy1rvm81pf"; - }; - }; - "https://repo1.maven.org/maven2/org/clojure/tools.reader/1.0.0/tools.reader-1.0.0" = - { - host = repositories.maven; - path = - "org/clojure/tools.reader/1.0.0/tools.reader-1.0.0"; - type = "jar"; - pom = { - sha1 = "fdc0f3839742d36e6c02422d4b583949ef7358bf"; - sha256 = "097rxp14ddvc06iycn9diym4fyif828f9832jnq489i4rplq7c91"; - }; - jar = { - sha1 = "37d55284a058d65c3af9743c33819cb42cd20369"; - sha256 = "0g8jms9mn01i1ywjs9mr0069dg62fc2qpv2kc1ag41hy5fm8yflh"; - }; - }; - "https://repo1.maven.org/maven2/org/clojure/tools.reader/1.0.5/tools.reader-1.0.5" = - { - host = repositories.maven; - path = - "org/clojure/tools.reader/1.0.5/tools.reader-1.0.5"; - type = "jar"; - pom = { - sha1 = "322cf7b44ea76dacd0aee9e8e7f450d2dfed26ed"; - sha256 = "152qffmilpf0bjxdqby1jryw5ly5708l9v4q66a65fakxkfjc6c8"; - }; - jar = { - sha1 = "78fd57f3f979d32d0299dacb1f9461017caa3bb4"; - sha256 = "0sd75sgwxci248msszj0rqb9jmqmdd63cla8f9iqnqrq136h8gn2"; - }; - }; - "https://repo1.maven.org/maven2/org/clojure/tools.reader/1.2.1/tools.reader-1.2.1" = - { - host = repositories.maven; - path = - "org/clojure/tools.reader/1.2.1/tools.reader-1.2.1"; - type = "jar"; - pom = { - sha1 = "6c5c027953ae14c36f79a4567d424ddd7a13bbab"; - sha256 = "1yyxa20a9bc2v2n2is0kr2n6ry1qm9mkzkhki22n51rqysdka94s"; - }; - jar = { - sha1 = "b5009154208e51b76cebafa3b458e1f8a064adc9"; - sha256 = "1v2kdmn9cvjiyidp6z829w7fk6xaa2wp1x8v85lnzsxqg2a7chgn"; - }; - }; - "https://repo1.maven.org/maven2/org/clojure/tools.reader/1.3.0/tools.reader-1.3.0" = - { - host = repositories.maven; - path = - "org/clojure/tools.reader/1.3.0/tools.reader-1.3.0"; - type = "jar"; - pom = { - sha1 = "cbf93ce8fbf66620f734275187d2aa0be9ea2639"; - sha256 = "0gzqr57p4qczm9dg028pnnsg0mfhg83b8ihvqxvgw6v74w5srkkw"; - }; - jar = { - sha1 = "78c597e8e9922dbdbdabb192f7a49c6ee74fa480"; - sha256 = "0fjbk7d17chialnhq9n6ylhi1ah9hf04vxh6m1qlwxhdj6v9v00c"; - }; - }; - "https://repo1.maven.org/maven2/org/codehaus/codehaus-parent/4/codehaus-parent-4" = - { - host = repositories.maven; - path = - "org/codehaus/codehaus-parent/4/codehaus-parent-4"; - type = "jar"; - pom = { - sha1 = "8b133202d50bec1e59bddc9392cb44d1fe5facc8"; - sha256 = "1pqlw2ilzagcl5ahq9dv60cxw59yrvrwf9q6z0679qf2x1yj71vb"; - }; - }; - "https://repo1.maven.org/maven2/org/codehaus/mojo/animal-sniffer-annotations/1.14/animal-sniffer-annotations-1.14" = - { - host = repositories.maven; - path = - "org/codehaus/mojo/animal-sniffer-annotations/1.14/animal-sniffer-annotations-1.14"; - type = "jar"; - pom = { - sha1 = "99a56e3312f8ece1d457c8ca0a3c4b69d173d000"; - sha256 = "09ianw2880ch3x6xq5d2cz2b15ik6f4ndf8hb7ckw7lr0ndg2y8q"; - }; - jar = { - sha1 = "775b7e22fb10026eed3f86e8dc556dfafe35f2d5"; - sha256 = "0pchd4360mim0f0a6vwr33szigihgvv4ic1scz1l9mxssq5k4s10"; - }; - }; - "https://repo1.maven.org/maven2/org/codehaus/mojo/animal-sniffer-parent/1.14/animal-sniffer-parent-1.14" = - { - host = repositories.maven; - path = - "org/codehaus/mojo/animal-sniffer-parent/1.14/animal-sniffer-parent-1.14"; - type = "jar"; - pom = { - sha1 = "c1e91a9c2f36d9e6d3c7087242d8d9ec56052e5d"; - sha256 = "1skf65rbw52shb2akgs7xykn06lj1ggp23nbc94vs40ldfh505gm"; - }; - }; - "https://repo1.maven.org/maven2/org/codehaus/mojo/mojo-parent/34/mojo-parent-34" = - { - host = repositories.maven; - path = - "org/codehaus/mojo/mojo-parent/34/mojo-parent-34"; - type = "jar"; - pom = { - sha1 = "803dc5cf36e504c5a48aa9a321f7fba1d6396733"; - sha256 = "171a71yz4np2h0nlkm9zx82q6f97wm66kj6afhvrmh23pipmsf9y"; - }; - }; - "https://repo1.maven.org/maven2/org/hamcrest/hamcrest-core/1.1/hamcrest-core-1.1" = - { - host = repositories.maven; - path = - "org/hamcrest/hamcrest-core/1.1/hamcrest-core-1.1"; - type = "jar"; - pom = { - sha1 = "fe8b54d8729315853ee866322436df89aa8ab9ae"; - sha256 = "10vw86l86qg26dddmyplixmzr3413kncnz277x0cp3660vs8fwrr"; - }; - jar = { - sha1 = "860340562250678d1a344907ac75754e259cdb14"; - sha256 = "1yygsl4nwzr1nzpr4iqkf9866807428ymvsr2f34zngh7x4x2q83"; - }; - }; - "https://repo1.maven.org/maven2/org/hamcrest/hamcrest-parent/1.1/hamcrest-parent-1.1" = - { - host = repositories.maven; - path = - "org/hamcrest/hamcrest-parent/1.1/hamcrest-parent-1.1"; - type = "jar"; - pom = { - sha1 = "31ef4ab73bb6d6173f46ecf92d6bd9047516c6ca"; - sha256 = "0fkyq3bb04wlhmv5iwgncwqjgzqmqk52k56ghg5wp6323859brhl"; - }; - }; - "https://repo1.maven.org/maven2/org/javassist/javassist/3.18.1-GA/javassist-3.18.1-GA" = - { - host = repositories.maven; - path = - "org/javassist/javassist/3.18.1-GA/javassist-3.18.1-GA"; - type = "jar"; - pom = { - sha1 = "af3b2b71de5691126a16d00e3155576dcaa1e3dc"; - sha256 = "03ysag9wb2binc8r7nkwhpsw97sdfhhg6isydba3apy4x1prbcas"; - }; - jar = { - sha1 = "d9a09f7732226af26bf99f19e2cffe0ae219db5b"; - sha256 = "0qk19ja8zv4jdxcmw4krcdax1j4iham9gszmjc7vp66hmwqi5drz"; - }; - }; - "https://repo1.maven.org/maven2/org/jsoup/jsoup/1.9.2/jsoup-1.9.2" = - { - host = repositories.maven; - path = - "org/jsoup/jsoup/1.9.2/jsoup-1.9.2"; - type = "jar"; - pom = { - sha1 = "72f6a64cd9cd47bb7aba05c84b9935650a098998"; - sha256 = "0zh9xn8qcgjyhki5kbhb3rhbhd12avwqy6n9fqfzymdq3c41k8lk"; - }; - jar = { - sha1 = "5e3bda828a80c7a21dfbe2308d1755759c2fd7b4"; - sha256 = "0sm4s1a8plb8z5467799jvp0s37dr98q82z3y436w9c2n7qqa64w"; - }; - }; - "https://repo1.maven.org/maven2/org/kohsuke/pom/14/pom-14" = - { - host = repositories.maven; - path = - "org/kohsuke/pom/14/pom-14"; - type = "jar"; - pom = { - sha1 = "7e52f77bc3cd74f323816fadbcb9303df219b1ea"; - sha256 = "10zfsgibpv357q5pmq1n8rbjp693xllzjgb553xqg2d5hky4a3qm"; - }; - }; - "https://repo1.maven.org/maven2/org/kohsuke/pom/6/pom-6" = - { - host = repositories.maven; - path = - "org/kohsuke/pom/6/pom-6"; - type = "jar"; - pom = { - sha1 = "54ee53971ff8b4cb72d8287a11d5c6df6426c250"; - sha256 = "0fii56q9qqg6c20pivi403pr2nvdhgwpiv0c8cq01r1mq6g0dhx4"; - }; - }; - "https://repo1.maven.org/maven2/org/mozilla/rhino/1.7R5/rhino-1.7R5" = - { - host = repositories.maven; - path = - "org/mozilla/rhino/1.7R5/rhino-1.7R5"; - type = "jar"; - pom = { - sha1 = "9aff149fb609ab85257cbf4dcff7bfc786df7321"; - sha256 = "0fyds54znn0hxd60aylfixal8xgw3vw07q28lb5drxa4mg38gjfv"; - }; - jar = { - sha1 = "95f0003cea7ebf26aef5ed64c77c05fcd1ff9648"; - sha256 = "1h090k4f8idv3a5zsq4vn2d9x6mmal3jpm6qgphpfimw3akhj3p0"; - }; - }; - "https://repo1.maven.org/maven2/org/msgpack/msgpack/0.6.12/msgpack-0.6.12" = - { - host = repositories.maven; - path = - "org/msgpack/msgpack/0.6.12/msgpack-0.6.12"; - type = "jar"; - pom = { - sha1 = "92138e8a6a64f25d226b6244f80dc22154d79fa7"; - sha256 = "1vkd0p2rb1pdxh963235mkczamqg05p17mdplmcq3ppq0a7psjcl"; - }; - jar = { - sha1 = "6a0c88fe022993c490011c3dce7127b29f9a9b3b"; - sha256 = "0plvpp9ra9848sb3psx2yi0gvk5gm146hhnwln08wj10hmfsd770"; - }; - }; - "https://repo1.maven.org/maven2/org/ow2/asm/asm-all/4.2/asm-all-4.2" = - { - host = repositories.maven; - path = - "org/ow2/asm/asm-all/4.2/asm-all-4.2"; - type = "jar"; - pom = { - sha1 = "7617be8df6235b6f36e2203b8d598a9c9361db4f"; - sha256 = "16wrb6rrkgagzymzcgalxic87ficq74ga8ymvk81ryrf0a1lrz54"; - }; - jar = { - sha1 = "7f7277e5b8002226ebfc8b861c775da8f6a55afd"; - sha256 = "15kppkl7mwkp77irlbxvmjrgs74ggwbvs7kwsv4ad2dq3np9igvh"; - }; - }; - "https://repo1.maven.org/maven2/org/ow2/asm/asm-parent/4.2/asm-parent-4.2" = - { - host = repositories.maven; - path = - "org/ow2/asm/asm-parent/4.2/asm-parent-4.2"; - type = "jar"; - pom = { - sha1 = "10baedb8215a42263be17a16707985bab3b33f9e"; - sha256 = "08jjay2ziyad97vbgyh8cb1pqnr8m8j109qmdaln2n3gnhcs4kqz"; - }; - }; - "https://repo1.maven.org/maven2/org/ow2/ow2/1.3/ow2-1.3" = - { - host = repositories.maven; - path = - "org/ow2/ow2/1.3/ow2-1.3"; - type = "jar"; - pom = { - sha1 = "f679d6639bfb209b0836a5e7cf09bfbcc1a41f06"; - sha256 = "1yr8hfx8gffpppa4ii6cvrsq029a6x8hzy7nsavxhs60s9kmq8ai"; - }; - }; - "https://repo1.maven.org/maven2/org/sonatype/oss/oss-parent/4/oss-parent-4" = - { - host = repositories.maven; - path = - "org/sonatype/oss/oss-parent/4/oss-parent-4"; - type = "jar"; - pom = { - sha1 = "281323f0e2b10184d6c6b230909401166b437e01"; - sha256 = "1vh6hjqq03hpwqvx7kf4lnzg2avvjf4narns9wyj3n8ry1f9j4y5"; - }; - }; - "https://repo1.maven.org/maven2/org/sonatype/oss/oss-parent/5/oss-parent-5" = - { - host = repositories.maven; - path = - "org/sonatype/oss/oss-parent/5/oss-parent-5"; - type = "jar"; - pom = { - sha1 = "3ae20880ad3d5da6b1caec19e3de7e70dd2dd762"; - sha256 = "0g8da9zsimg7drhsnzivb2c874jda96frbii05iqlpaq189d8y0n"; - }; - }; - "https://repo1.maven.org/maven2/org/sonatype/oss/oss-parent/7/oss-parent-7" = - { - host = repositories.maven; - path = - "org/sonatype/oss/oss-parent/7/oss-parent-7"; - type = "jar"; - pom = { - sha1 = "46b8a785b60a2767095b8611613b58577e96d4c9"; - sha256 = "0m4lallnlhyfj3z24ispxzwvsxzaznhw6zsmk4j74sibr5kqh7xm"; - }; - }; - "https://repo1.maven.org/maven2/org/sonatype/oss/oss-parent/9/oss-parent-9" = - { - host = repositories.maven; - path = - "org/sonatype/oss/oss-parent/9/oss-parent-9"; - type = "jar"; - pom = { - sha1 = "e5cdc4d23b86d79c436f16fed20853284e868f65"; - sha256 = "0yl2hbwz2kn1hll1i00ddzn8f89bfdcjwdifz0pj2j15k1gjch7v"; - }; - }; -} diff --git a/nix/mobile/android/default.nix b/nix/mobile/android/default.nix index 9438ed2b42..c0420bdcec 100644 --- a/nix/mobile/android/default.nix +++ b/nix/mobile/android/default.nix @@ -3,11 +3,11 @@ let gradle = gradle_5; # Currently 5.6.4 - leinProjectDeps = import ../../lein/lein-project-deps.nix { }; + clojureDeps = import ../../deps/clojure/deps.nix { }; # Import a jsbundle compiled out of clojure codebase jsbundle = callPackage ./jsbundle { - inherit leinProjectDeps localMavenRepoBuilder projectNodePackage; + inherit clojureDeps localMavenRepoBuilder projectNodePackage; }; # Import a patched version of watchman (important for sandboxed builds on macOS) diff --git a/nix/mobile/android/jsbundle/default.nix b/nix/mobile/android/jsbundle/default.nix index 5f70879261..35fcc16157 100644 --- a/nix/mobile/android/jsbundle/default.nix +++ b/nix/mobile/android/jsbundle/default.nix @@ -1,17 +1,15 @@ -# -# This Nix expression builds an index.*.js file for the current repository given a node modules Nix expression + +# This Nix expression builds the js files for the current repository given a node modules Nix expression # -{ target-os ? "android", - stdenv, lib, clojure, leiningen, nodejs, bash, git, - leinProjectDeps, localMavenRepoBuilder, projectNodePackage }: +{ target ? "android", + stdenv, lib, clojure, nodejs, bash, git, openjdk, + clojureDeps, localMavenRepoBuilder, projectNodePackage }: let - lein-command = if target-os == "all" then "lein jsbundle" else "lein jsbundle-${target-os}"; - leinProjectDepsLocalRepo = localMavenRepoBuilder "lein-project-deps" leinProjectDeps; - + clojureDepsLocal = localMavenRepoBuilder "clojure-project-deps" clojureDeps; in stdenv.mkDerivation { - name = "status-react-build-jsbundle-${target-os}"; + name = "status-react-build-jsbundle-${target}"; src = let path = ./../../../..; in builtins.path { # We use builtins.path so that we can name the resulting derivation, otherwise the name would be taken from the checkout directory, which is outside of our control @@ -26,52 +24,47 @@ in stdenv.mkDerivation { "VERSION" "BUILD_NUMBER" "scripts/version/.*" # I want to avoid including the whole .git directory ".git/HEAD" ".git/objects" ".git/refs/heads/.*" - "src/.*" "prod/.*" "env/prod/.*" - "components/src/.*" - "react-native/src" - "react-native/src/cljsjs/.*" - "react-native/src/mobile/.*" - "status-modules/cljs/.*" - "status-modules/resources/.*" - "build.clj" "externs.js" - "project.clj" "prepare-modules.js" - # lein jsbundle stat's images to check if they exist - "resources/.*" + "src/.*" "shadow-cljs.edn" "index.js" + # shadow-cljs expects these for deps resolution + "mobile/js_files/package.json" "mobile/js_files/yarn.lock" + # build stat's images to check if they exist + "resources/.*" "translations/.*" ]; exclude = [ "resources/fonts/.*" ]; }; }; - buildInputs = [ clojure leiningen nodejs bash git ]; + buildInputs = [ clojure nodejs bash git openjdk]; - LEIN_OFFLINE = "y"; - - phases = [ "unpackPhase" "patchPhase" "buildPhase" "installPhase" ]; + phases = [ "unpackPhase" "patchPhase" "configurePhase" "buildPhase" "installPhase" ]; + # Patching shadow-cljs.edn so it uses the local maven repo of dependencies provided by Nix patchPhase = - let anchor = '':url "https://github.com/status-im/status-react/"''; + let anchor = ''{:source-paths ["src" "test/cljs"]''; in '' - substituteInPlace project.clj \ + substituteInPlace shadow-cljs.edn \ --replace '${anchor}' \ '${anchor} - :local-repo "${leinProjectDepsLocalRepo}"' \ - --replace '[rasom/lein-githooks "' ';; [rasom/lein-githooks "' \ - --replace ':githooks' ';; :githooks' \ - --replace ':pre-commit' ';; :pre-commit' + :maven {:local-repo "${clojureDepsLocal}"}' ''; - buildPhase = '' + configurePhase = '' + # Symlink Node.js modules to build directory ln -s ${projectNodePackage}/node_modules - # On macOS, lein tries to create $HOME/.lein, which fails with java.lang.Exception: Couldn't create directories: /homeless-shelter/.lein, so we just make it use a temp dir - tmp=$(mktemp -d) - HOME=$tmp ${lein-command} - rm -rf $tmp - unset tmp + # 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. + # We append 'src' so it can find the local sources. + export CLASS_PATH="$(find ${clojureDepsLocal} -iname '*.jar' | tr '\n' ':')src" - node prepare-modules.js + # target must be one of the builds defined in shadow-cljs.edn + java -cp "$CLASS_PATH" clojure.main -m shadow.cljs.devtools.cli release ${target} ''; installPhase = '' mkdir -p $out - cp index.*.js $out/ + cp -r index.js app $out/ ''; } diff --git a/nix/mobile/android/targets/release-android.nix b/nix/mobile/android/targets/release-android.nix index 95086c7276..6c48e9a7cc 100644 --- a/nix/mobile/android/targets/release-android.nix +++ b/nix/mobile/android/targets/release-android.nix @@ -99,8 +99,8 @@ in stdenv.mkDerivation rec { # Ensure we have the right .env file cp -f $sourceRoot/${envFileName} $sourceRoot/.env - # Copy index.*.js input file - cp -a --no-preserve=ownership ${jsbundle}/index*.js $sourceRoot/ + # Copy index.js and app/ input files + cp -ra --no-preserve=ownership ${jsbundle}/* $sourceRoot/ # Copy android/ directory cp -a --no-preserve=ownership ${sourceProjectDir}/android/ $sourceRoot/ diff --git a/nix/shells.nix b/nix/shells.nix index c31289ee2c..9df897ff8f 100644 --- a/nix/shells.nix +++ b/nix/shells.nix @@ -20,7 +20,7 @@ let # core utilities that should always be present in a shell bash curl wget file unzip flock git gnumake jq ncurses # build specific utilities - clojure leiningen maven watchman + clojure maven watchman # other nice to have stuff yarn nodejs python27 ] # and some special cases @@ -43,12 +43,12 @@ let }; # An attrset for easier merging with default shell - shells = rec { + shells = { inherit default; - # for calling lein targets in CI or Makefile - lein = pkgs.mkShell { - buildInputs = with pkgs; [ clojure leiningen flock maven nodejs openjdk ]; + # for calling clojure targets in CI or Makefile + clojure = pkgs.mkShell { + buildInputs = with pkgs; [ clojure flock maven nodejs openjdk ]; }; # for 'make watchman-clean' @@ -73,12 +73,6 @@ let windows = targets.desktop.windows.shell; android = targets.mobile.android.shell; ios = targets.mobile.ios.shell; - - # all shells together depending on host OS - all = lib.mergeSh (pkgs.mkShell {}) (lib.unique ( - lib.optionals stdenv.isLinux [ android linux windows ] ++ - lib.optionals stdenv.isDarwin [ android macos ios ] - )); }; # for merging the default shell with others diff --git a/nix/tools/lein/fetch-maven-deps.sh b/nix/tools/lein/fetch-maven-deps.sh deleted file mode 100755 index 340d7b1304..0000000000 --- a/nix/tools/lein/fetch-maven-deps.sh +++ /dev/null @@ -1,32 +0,0 @@ -#!/usr/bin/env bash - -set -Eeu - -# This script computes the required Maven dependencies required by cljsbuild for this project -# and outputs them as a text file, where each line represents a URL to a Maven dependency -# (minus the extension). -# For this, we start with a clean cache (in a temporary directory) and call cljsbuild -# to cause it to download all the artifacts. - -GIT_ROOT=$(cd "${BASH_SOURCE%/*}" && git rev-parse --show-toplevel) -_current_dir=$(cd "${BASH_SOURCE%/*}" && pwd) -_project_file_name='project.clj' -_lein_cmd='lein with-profile prod cljsbuild once' -_repo_path=$(mktemp -d) - -function filter() { - sed -E "s;Retrieving ([^ ]+)\.(pom|jar) from $1.*;$2\1;" -} - -echo "Computing maven dependencies with \`$_lein_cmd\`..." > /dev/stderr -trap "rm -rf ${_repo_path}; [ -f ${_project_file_name}.bak ] && mv -f ${_project_file_name}.bak ${_project_file_name}" HUP ERR EXIT INT - -cd $GIT_ROOT - -# Add a :local-repo entry to project.clj so that we always start with a clean repo -sed -i'.bak' -E "s|(:license \{)|:local-repo \"$_repo_path\" \1|" ${_project_file_name} -rm -rf ./${_repo_path} -$_lein_cmd 2>&1 \ - | grep Retrieving \ - | filter clojars https://repo.clojars.org/ \ - | filter central https://repo1.maven.org/maven2/ # NOTE: We could use `lein pom` to figure out the repository names and URLs so they're not hardcoded diff --git a/nix/tools/lein/generate-nix.sh b/nix/tools/lein/generate-nix.sh deleted file mode 100755 index 594738565e..0000000000 --- a/nix/tools/lein/generate-nix.sh +++ /dev/null @@ -1,31 +0,0 @@ -#!/usr/bin/env bash - -if [[ -z "${IN_NIX_SHELL}" ]]; then - echo "Remember to call 'make shell'!" - exit 1 -fi - -# This script takes care of generating/updating the nix files in the directory passed as a single argument. -# For this, we start with a clean cache (in ./.m2~/repository/) and call cljsbuild -# to cause it to download all the artifacts. At the same time, we note them -# in $1/lein-project-deps-maven-inputs.txt so that we can use that as an input -# to ../maven/maven-inputs2nix.sh - -set -Eeuo pipefail - -output_dir=$1 -mkdir -p $output_dir - -_current_dir=$(cd "${BASH_SOURCE%/*}" && pwd) -_inputs_file_path="$output_dir/lein-project-deps-maven-inputs.txt" -_deps_nix_file_path="$output_dir/lein-project-deps.nix" -_nix_shell_opts="-I nixpkgs=https://github.com/status-im/nixpkgs/archive/db492b61572251c2866f6b5e6e94e9d70e7d3021.tar.gz" - -echo "Regenerating Nix files, this process should take 5-10 minutes" -nix-shell ${_nix_shell_opts} --run "set -Eeuo pipefail; $_current_dir/fetch-maven-deps.sh | sort -u > $_inputs_file_path" \ - --pure --packages leiningen git -echo "Generating $(basename $_deps_nix_file_path) from $(basename $_inputs_file_path)..." -nix-shell ${_nix_shell_opts} \ - --run "$_current_dir/../maven/maven-inputs2nix.sh $_inputs_file_path > $_deps_nix_file_path" \ - --packages maven -echo "Done" diff --git a/nix/tools/maven/maven-inputs2nix.sh b/nix/tools/maven/maven-inputs2nix.sh deleted file mode 100755 index 01ef3dd35e..0000000000 --- a/nix/tools/maven/maven-inputs2nix.sh +++ /dev/null @@ -1,157 +0,0 @@ -#!/usr/bin/env bash - -# -# This script takes a maven-inputs.txt file and builds a Nix expression that can be used by maven-repo-builder.nix to produce a path to a local Maven repository -# - -function getSHA() { - nix-prefetch-url --type sha256 "$1" 2> /dev/null -} - -_tmp=$(mktemp) -sort $1 | uniq > $_tmp -trap "rm $_tmp" EXIT INT - -apacheUrl='https://repo.maven.apache.org/maven2' -clojarsUrl='https://repo.clojars.org' -fabricUrl='https://maven.fabric.io/public' -googleUrl='https://dl.google.com/dl/android/maven2' -gradleUrl='http://repo.gradle.org/gradle/libs-releases-local' -gradlePluginsUrl='https://plugins.gradle.org/m2' -javaUrl='https://maven.java.net/content/repositories/releases' -jcenterUrl='https://jcenter.bintray.com' -jitpackUrl='https://jitpack.io' -mavenUrl='https://repo1.maven.org/maven2' -sonatypeSnapshotsUrl='https://oss.sonatype.org/content/repositories/snapshots' -sonatypePublicGridUrl='https://repository.sonatype.org/content/groups/sonatype-public-grid' - -# Writes Nix attribute set describing a package (represented by its URL) -function writeEntry() { - local depurl=$1 - if [[ "$depurl" = "$apacheUrl"* ]]; then - host='apache' - prefix=$apacheUrl - elif [[ "$depurl" = "$clojarsUrl"* ]]; then - host='clojars' - prefix=$clojarsUrl - elif [[ "$depurl" = "$fabricUrl"* ]]; then - host='fabric-io' - prefix=$fabricUrl - elif [[ "$depurl" = "$googleUrl"* ]]; then - host='google' - prefix=$googleUrl - elif [[ "$depurl" = "$gradleUrl"* ]]; then - host='gradle' - prefix=$gradleUrl - elif [[ "$depurl" = "$gradlePluginsUrl"* ]]; then - host='gradlePlugins' - prefix=$gradlePluginsUrl - elif [[ "$depurl" = "$jcenterUrl"* ]]; then - host='jcenter' - prefix=$jcenterUrl - elif [[ "$depurl" = "$jitpackUrl"* ]]; then - host='jitpack' - prefix=$jitpackUrl - elif [[ "$depurl" = "$javaUrl"* ]]; then - host='java' - prefix=$javaUrl - elif [[ "$depurl" = "$mavenUrl"* ]]; then - host='maven' - prefix=$mavenUrl - elif [[ "$depurl" = "$sonatypeSnapshotsUrl"* ]]; then - host='sonatypeSnapshots' - prefix=$sonatypeSnapshotsUrl - elif [[ "$depurl" = "$sonatypePublicGridUrl"* ]]; then - host='sonatypePublicGrid' - prefix=$sonatypePublicGridUrl - else - echo "Unknown host in $depurl, exiting." - exit 1 - fi - deppath="${depurl/$prefix\//}" - pom_sha256=$(getSHA "$depurl.pom") - [ -n "$pom_sha256" ] && pom_sha1=$(curl -s --location "$depurl.pom.sha1") || unset pom_sha1 - jar_sha256=$(getSHA "$depurl.jar") - type='jar' - if [ -z "$jar_sha256" ]; then - jar_sha256=$(getSHA "$depurl.aar") - [ -n "$jar_sha256" ] && type='aar' - fi - [ -n "$jar_sha256" ] && jar_sha1=$(curl -s --location "$depurl.${type}.sha1") || unset jar_sha1 - - if [ -z "$pom_sha256" ] && [ -z "$jar_sha256" ] && [ -z "$aar_sha256" ]; then - echo "Warning: failed to download $depurl" > /dev/stderr - echo "Exiting." > /dev/stderr - exit 1 - fi - - echo -n " \"$depurl\" = - { - host = repositories.$host; - path = - \"$deppath\"; - type = \"$type\";" - if [ -n "$pom_sha256" ]; then - echo -n " - pom = { - sha1 = \"$pom_sha1\"; - sha256 = \"$pom_sha256\"; - };" - fi - if [ -n "$jar_sha256" ]; then - echo -n " - jar = { - sha1 = \"$jar_sha1\"; - sha256 = \"$jar_sha256\"; - };" - fi - echo " - };" -} - -lineCount=$(wc -l $1 | cut -f 1 -d ' ') -currentLine=0 -pstr="[=======================================================================]" - -echo "# Auto-generated by $(realpath --relative-to="$(dirname $1)" ${BASH_SOURCE}) -{ }: - -let - repositories = { - apache = \"$mavenUrl\"; - clojars = \"$clojarsUrl\"; - fabric-io = \"$fabricUrl\"; - google = \"$googleUrl\"; - gradle = \"$gradleUrl\"; - gradlePlugins = \"$gradlePluginsUrl\"; - java = \"$javaUrl\"; - jcenter = \"$jcenterUrl\"; - jitpack = \"$jitpackUrl\"; - maven = \"$mavenUrl\"; - sonatypeSnapshots = - \"$sonatypeSnapshotsUrl\"; - sonatypePublicGrid = - \"$sonatypePublicGridUrl\"; - }; - -in {" -echo "Generating Nix file from $1..." > /dev/stderr -while read depurl -do - currentLine=$(( $currentLine + 1 )) - pd=$(( $currentLine * 73 / $lineCount )) - printf "\r%3d.%1d%% %.${pd}s" $(( $currentLine * 100 / $lineCount )) $(( ($currentLine * 1000 / $lineCount) % 10 )) $pstr > /dev/stderr - - if [ -z "$depurl" ]; then - continue - fi - writeEntry $depurl - - # com.android.tools.build:aapt2 package also includes a platform-specific package, so we should add that too - if [[ "$depurl" = *'com/android/tools/build/aapt2/'* ]]; then - writeEntry "$depurl-linux" - writeEntry "$depurl-osx" - fi -done < $_tmp - -echo "}" diff --git a/nix/tools/maven/maven-repo-builder.nix b/nix/tools/maven/maven-repo-builder.nix index 35011fdeec..a151e90517 100644 --- a/nix/tools/maven/maven-repo-builder.nix +++ b/nix/tools/maven/maven-repo-builder.nix @@ -4,40 +4,51 @@ name: source: let + inherit (lib) + removeSuffix optionalString splitString concatMapStrings + attrByPath attrValues last makeOverridable; + + # some .jar files have an `-aot` suffix that doesn't work for .pom files + getPOM = jarUrl: "${removeSuffix "-aot" jarUrl}.pom"; + script = writeShellScriptBin "create-local-maven-repo" ('' mkdir -p $out cd $out '' + - (lib.concatMapStrings (dep': + (concatMapStrings (dep': let dep = { postCopy = ""; } // dep'; url = "${dep.host}/${dep.path}"; pom = { - sha1 = lib.attrByPath [ "pom" "sha1" ] "" dep; - sha256 = lib.attrByPath [ "pom" "sha256" ] "" dep; + sha1 = attrByPath [ "pom" "sha1" ] "" dep; + sha256 = attrByPath [ "pom" "sha256" ] "" dep; }; - pom-download = lib.optionalString (pom.sha256 != "") (fetchurl { url = "${url}.pom"; inherit (pom) sha256; }); + pom-download = optionalString (pom.sha256 != "") ( + fetchurl { url = getPOM url; inherit (pom) sha256; } + ); jar = { - sha1 = lib.attrByPath [ "jar" "sha1" ] "" dep; - sha256 = lib.attrByPath [ "jar" "sha256" ] "" dep; + sha1 = attrByPath [ "jar" "sha1" ] "" dep; + sha256 = attrByPath [ "jar" "sha256" ] "" dep; }; - jar-download = lib.optionalString (jar.sha256 != "") (fetchurl { url = "${url}.${dep.type}"; inherit (jar) sha256; }); - fileName = lib.last (lib.splitString "/" dep.path); - directory = lib.removeSuffix fileName dep.path; + jar-download = optionalString (jar.sha256 != "") ( + fetchurl { url = "${url}.${dep.type}"; inherit (jar) sha256; } + ); + fileName = last (splitString "/" dep.path); + directory = removeSuffix fileName dep.path; in '' mkdir -p ${directory} - ${lib.optionalString (pom-download != "") '' - cp -f "${pom-download}" "${dep.path}.pom" + ${optionalString (pom-download != "") '' + cp -f "${pom-download}" "${getPOM dep.path}" ''} - ${lib.optionalString (pom.sha1 != "") '' - echo "${pom.sha1}" > "${dep.path}.pom.sha1" + ${optionalString (pom.sha1 != "") '' + echo "${pom.sha1}" > "${getPOM dep.path}.sha1" ''} - ${lib.optionalString (jar-download != "") '' + ${optionalString (jar-download != "") '' cp -f "${jar-download}" "${dep.path}.${dep.type}" ''} - ${lib.optionalString (jar.sha1 != "") '' + ${optionalString (jar.sha1 != "") '' echo "${jar.sha1}" > "${dep.path}.${dep.type}.sha1" ''} @@ -48,9 +59,9 @@ let '' else "" } '') - (lib.attrValues source))); + (attrValues source))); -in lib.makeOverridable stdenv.mkDerivation { +in makeOverridable stdenv.mkDerivation { inherit name; phases = [ "buildPhase" ]; buildPhase = "${script}/bin/create-local-maven-repo"; diff --git a/prepare-modules.js b/prepare-modules.js deleted file mode 100644 index 805ac51ac7..0000000000 --- a/prepare-modules.js +++ /dev/null @@ -1,25 +0,0 @@ -var fs = require("fs"); -var path = require('path'); -var dirs = ["status-modules/cljs", "status-modules/resources"]; - -dirs.forEach(dir => { - fs.readdir(dir, (err, files) => { - if (files) { - files.forEach(file => { - if (file.endsWith("-raw.js")) { - const filePath = path.resolve(dir, file); - fs.readFile(filePath, "utf8", function (err, data) { - if (err) throw err; - fs.writeFile(filePath.replace("-raw.js", ".js"), - ("module.exports=`" + data.replace(/[\\$'"]/g, "\\$&") + "`;"), - function (err) { - if (err) { - return console.log(err); - } - }); - }); - } - }); - } - }); -}); diff --git a/prod/status_im/i18n_resources.cljs b/prod/status_im/i18n_resources.cljs deleted file mode 100644 index 461461f864..0000000000 --- a/prod/status_im/i18n_resources.cljs +++ /dev/null @@ -1,62 +0,0 @@ -(ns status-im.i18n-resources - (:require [status-im.react-native.js-dependencies :as rn-dependencies] - [clojure.string :as string])) - -(def default-device-language - (keyword (.-language rn-dependencies/react-native-languages))) - -(def languages [:ar :en :es :es_419 :fil :fr :id :in :it :ko :ru :zh :zh_Hant :zh_TW]) - -(defonce loaded-languages - (atom - (conj #{:en} default-device-language))) - - (def prod-translations - { - :ar (js/require "status-modules/translations/ar.json") - :en (js/require "status-modules/translations/en.json") - :es (js/require "status-modules/translations/es.json") - :es_419 (js/require "status-modules/translations/es_419.json") - :fil (js/require "status-modules/translations/fil.json") - :fr (js/require "status-modules/translations/fr.json") - :id (js/require "status-modules/translations/id.json") - :in (js/require "status-modules/translations/id.json") - :it (js/require "status-modules/translations/it.json") - :ko (js/require "status-modules/translations/ko.json") - :ru (js/require "status-modules/translations/ru.json") - :zh (js/require "status-modules/translations/zh.json") - :zh_Hant (js/require "status-modules/translations/zh_TW.json") - :zh_TW (js/require "status-modules/translations/zh_TW.json")}) - -(defn valid-language [lang] - (if (contains? prod-translations lang) - lang - (let [parts (string/split (name lang) #"_") - short-lang (keyword (str (first parts) "_" (second parts))) - shortest-lang (keyword (first parts))] - (if (and (> (count parts) 2) (contains? prod-translations short-lang)) - short-lang - (when (contains? prod-translations shortest-lang) - shortest-lang))))) - -(defn require-translation [lang-key] - (when-let [lang (valid-language lang-key)] - (get prod-translations lang))) - -;; translations -(def translations-by-locale - (cond-> - {:en (require-translation :en)} - (not= :en default-device-language) - (assoc default-device-language - (require-translation (-> (name default-device-language) - (string/replace "-" "_") - keyword))))) - -(defn load-language [lang] - (let [lang-key (valid-language (keyword lang))] - (when-not (contains? @loaded-languages lang-key) - (aset (.-translations rn-dependencies/i18n) - lang - (require-translation lang-key)) - (swap! loaded-languages conj lang-key)))) diff --git a/project.clj b/project.clj deleted file mode 100644 index eb132e296e..0000000000 --- a/project.clj +++ /dev/null @@ -1,183 +0,0 @@ -(defproject status-im "0.1.0-SNAPSHOT" - :url "https://github.com/status-im/status-react/" - :license {:name "Eclipse Public License" - :url "http://www.eclipse.org/legal/epl-v10.html"} - ;; NOTE: Dependecies here are used in CI, till the CI script will be updated - ;; all deps should be maintained in deps.edn and here. - :dependencies [[org.clojure/clojure "1.10.0"] - [org.clojure/clojurescript "1.10.520" - :exclusions - [com.google.javascript/closure-compiler-unshaded - org.clojure/google-closure-library]] - ;; [com.google.javascript/closure-compiler-unshaded "v20180319"] - ;; v20180506 - [com.google.javascript/closure-compiler-unshaded "v20190325"] - [org.clojure/google-closure-library "0.0-20190213-2033d5d9"] - [org.clojure/core.async "0.4.474"] - [reagent "0.7.0" :exclusions [cljsjs/react cljsjs/react-dom cljsjs/react-dom-server cljsjs/create-react-class]] - [re-frame "0.12.0"] - [com.andrewmcveigh/cljs-time "0.5.2"] - [status-im/timbre "4.10.0-2-status"] - [com.taoensso/encore "2.94.0"] - [hickory "0.7.1"] - [cljs-bean "1.3.0"] - [binaryage/oops "0.7.0"] - [mvxcvi/alphabase "1.0.0"]] - :plugins [[rasom/lein-githooks "0.1.5"] - [lein-cljsbuild "1.1.7"] - [lein-cljfmt "0.5.7"]] - :githooks {:auto-install true - :pre-commit ["lein cljfmt check src/status_im/core.cljs $(git diff --diff-filter=d --cached --name-only src test/cljs)"]} - :cljfmt {:indents {letsubs [[:inner 0]]}} - :clean-targets ["target/" "index.ios.js" "index.android.js" "status-modules/cljs"] - :aliases {"jsbundle" ^{:doc "Recompile code with prod profile."} - ["do" "clean" - ["with-profile" "prod" "cljsbuild" "once" "ios"] - ["with-profile" "prod" "cljsbuild" "once" "android"] - ["with-profile" "prod" "cljsbuild" "once" "desktop"]] - "jsbundle-android" ^{:doc "Recompile code for Android with prod profile."} - ["do" "clean" - ["with-profile" "prod" "cljsbuild" "once" "android"]] - "jsbundle-ios" ^{:doc "Recompile code for iOS with prod profile."} - ["do" "clean" - ["with-profile" "prod" "cljsbuild" "once" "ios"]] - "jsbundle-desktop" ^{:doc "Recompile code for desktop with prod profile."} - ["do" "clean" - ["with-profile" "prod" "cljsbuild" "once" "desktop"]] - "figwheel-repl" ["with-profile" "+figwheel" "run" "-m" "clojure.main" "env/dev/run.clj"] - "test-cljs" ["with-profile" "test" "doo" "node" "test" "once"] - "test-cljs-auto" ["with-profile" "test" "doo" "node" "test" "auto"] - "test-protocol" ["with-profile" "test" "doo" "node" "protocol" "once"] - "test-env-dev-utils" ["with-profile" "test" "doo" "node" "env-dev-utils" "once"]} - :profiles {:dev {:dependencies [[cider/piggieback "0.4.0"]] - :cljsbuild {:builds - {:ios - {:source-paths ["components/src" "react-native/src/cljsjs" "react-native/src/mobile" "src" "dev"] - :compiler {:output-to "target/ios/app.js" - :main "env.ios.main" - :output-dir "target/ios" - :optimizations :none}} - :android - {:source-paths ["components/src" "react-native/src/cljsjs" "react-native/src/mobile" "src" "dev"] - :compiler {:output-to "target/android/app.js" - :main "env.android.main" - :output-dir "target/android" - :optimizations :none} - :warning-handlers [status-im.utils.build/warning-handler]} - :desktop - {:source-paths ["components/src" "react-native/src/cljsjs" "react-native/src/desktop" "src" "dev"] - :compiler {:output-to "target/desktop/app.js" - :main "env.desktop.main" - :output-dir "target/desktop" - :optimizations :none}}}} - :repl-options {:nrepl-middleware [cider.piggieback/wrap-cljs-repl] - :timeout 240000}} - :test {:dependencies [[com.taoensso/tufte "2.1.0"] - [day8.re-frame/test "0.1.5"]] - :plugins [[lein-doo "0.1.9"]] - :cljsbuild {:builds - [{:id "test" - :source-paths ["components/src" "src" "test/cljs" "dev"] - :compiler {:main status-im.test.runner - :output-to "target/test/test.js" - :output-dir "target/test" - :optimizations :none - :preamble ["js/hook-require.js"] - :target :nodejs}} - {:id "protocol" - :source-paths ["components/src" "src" "test/cljs" "dev"] - :compiler {:main status-im.test.protocol.runner - :output-to "target/test/test.js" - :output-dir "target/test" - :optimizations :none - :preamble ["js/hook-require.js"] - :target :nodejs}} - {:id "env-dev-utils" - :source-paths ["env/dev/env/utils.cljs" "test/env/dev" "dev"] - :compiler {:main env.test.runner - :output-to "target/test/test.js" - :output-dir "target/test" - :optimizations :none - :target :nodejs}}]}} - :prod {:cljsbuild {:builds - {:ios - {:source-paths ["components/src" "react-native/src/cljsjs" "react-native/src/mobile" "src" "env/prod" "prod"] - :compiler {:main "env.ios.main" - :output-dir "target/ios-prod" - :static-fns true - :fn-invoke-direct true - :optimize-constants true - :optimizations :advanced - :pseudo-names false - :pretty-print false - :closure-defines {"goog.DEBUG" false} - :parallel-build false - :elide-asserts true - :externs ["externs.js"] - :language-in :es-2015 - :language-out :es-2015 - :modules {:cljs-base {:output-to "index.ios.js"} - :i18n {:entries #{"status_im.goog.i18n"} - :output-to "status-modules/cljs/i18n-raw.js"} - :network {:entries #{"status_im.network.ui.network_details.views" - "status_im.network.ui.edit_network.views" - "status_im.network.ui.edit_network.styles" - "status_im.network.ui.views" - "status_im.network.ui.styles" - "status_im.network.core"} - :output-to "status-modules/cljs/network-raw.js"}}} - :warning-handlers [status-im.utils.build/warning-handler]} - :android - {:source-paths ["components/src" "react-native/src/cljsjs" "react-native/src/mobile" "src" "env/prod" "prod"] - :compiler {:main "env.android.main" - :output-dir "target/android-prod" - :static-fns true - :fn-invoke-direct true - :optimize-constants true - :optimizations :advanced - :stable-names true - :pseudo-names false - :pretty-print false - :closure-defines {"goog.DEBUG" false} - :parallel-build false - :elide-asserts true - :externs ["externs.js"] - :language-in :es-2015 - :language-out :es-2015 - :modules {:cljs-base {:output-to "index.android.js"} - :i18n {:entries #{"status_im.goog.i18n"} - :output-to "status-modules/cljs/i18n-raw.js"} - :network {:entries #{"status_im.network.ui.network_details.views" - "status_im.network.ui.edit_network.views" - "status_im.network.ui.edit_network.styles" - "status_im.network.ui.views" - "status_im.network.ui.styles" - "status_im.network.core"} - :output-to "status-modules/cljs/network-raw.js"}}} - :warning-handlers [status-im.utils.build/warning-handler]} - :desktop - {:source-paths ["components/src" "react-native/src/cljsjs" "react-native/src/desktop" "src" "env/prod" "prod"] - :compiler {:main "env.desktop.main" - :output-dir "target/desktop-prod" - :static-fns true - :fn-invoke-direct true - :optimize-constants true - :optimizations :simple - :closure-defines {"goog.DEBUG" false} - :pseudo-names false - :pretty-print false - :parallel-build false - :elide-asserts true - :language-in :es-2015 - :language-out :es-2015 - :modules {:cljs-base {:output-to "index.desktop.js"} - :i18n {:entries #{"status_im.goog.i18n"} - :output-to "status-modules/cljs/i18n-raw.js"} - :network {:entries #{"status_im.network.ui.network_details.views" - "status_im.network.ui.edit_network.views" - "status_im.network.ui.edit_network.styles" - "status_im.network.ui.views" - "status_im.network.ui.styles" - "status_im.network.core"} - :output-to "status-modules/cljs/network-raw.js"}}} - :warning-handlers [status-im.utils.build/warning-handler]}}}}}) diff --git a/react-native/src/cljsjs/cljsjs/create_react_class.cljs b/react-native/src/cljsjs/cljsjs/create_react_class.cljs deleted file mode 100644 index 2b565554c1..0000000000 --- a/react-native/src/cljsjs/cljsjs/create_react_class.cljs +++ /dev/null @@ -1 +0,0 @@ -(ns cljsjs.create-react-class) diff --git a/react-native/src/cljsjs/cljsjs/react.cljs b/react-native/src/cljsjs/cljsjs/react.cljs deleted file mode 100644 index 81d07942a1..0000000000 --- a/react-native/src/cljsjs/cljsjs/react.cljs +++ /dev/null @@ -1,5 +0,0 @@ -(ns cljsjs.react - (:require [status-im.react-native.js-dependencies :as rn-dependencies])) - -(when (exists? js/window) - (set! js/ReactNative rn-dependencies/react-native)) diff --git a/react-native/src/cljsjs/cljsjs/react/dom.cljs b/react-native/src/cljsjs/cljsjs/react/dom.cljs deleted file mode 100644 index 3c69f0090f..0000000000 --- a/react-native/src/cljsjs/cljsjs/react/dom.cljs +++ /dev/null @@ -1 +0,0 @@ -(ns cljsjs.react.dom) \ No newline at end of file diff --git a/react-native/src/cljsjs/cljsjs/react/dom/server.cljs b/react-native/src/cljsjs/cljsjs/react/dom/server.cljs deleted file mode 100644 index c7ffcf638f..0000000000 --- a/react-native/src/cljsjs/cljsjs/react/dom/server.cljs +++ /dev/null @@ -1 +0,0 @@ -(ns cljsjs.react.dom.server) \ No newline at end of file diff --git a/react-native/src/desktop/status_im/react_native/js_dependencies.cljs b/react-native/src/desktop/status_im/react_native/js_dependencies.cljs deleted file mode 100644 index 3579e4670c..0000000000 --- a/react-native/src/desktop/status_im/react_native/js_dependencies.cljs +++ /dev/null @@ -1,41 +0,0 @@ -(ns status-im.react-native.js-dependencies) - -(def config (js/require "react-native-config")) -(def fs (js/require "react-native-fs")) -(def keychain (js/require "react-native-keychain")) -(def qr-code (js/require "qrcode")) -(def react-native (js/require "react-native")) -(def webview-bridge (js/require "react-native-webview-bridge")) -(def webview #js {:WebView #js {}}) -(def EventEmmiter #js {}) -(def fetch-polyfill (js/require "react-native-fetch-polyfill")) -(def fetch (.-default fetch-polyfill)) -(def i18n (js/require "i18n-js")) -(def react-native-languages (.-default (js/require "react-native-languages"))) -(def desktop-linking (.-DesktopLinking (.-NativeModules react-native))) -(def desktop-menu (js/require "react-native-desktop-menu")) -(def desktop-config (js/require "react-native-desktop-config")) -(def desktop-shortcuts (js/require "react-native-desktop-shortcuts")) -(def touchid #js {}) -(def camera #js {:RNCamera #js {:constants #js {:Aspect "Portrait"}}}) -(def status-keycard #js {:default #js {}}) -(def dialogs #js {}) -(def dismiss-keyboard #()) -(def image-crop-picker #js {}) -(def image-resizer #js {}) -(def svg #js {}) -(def snoopy #js {}) -(def snoopy-filter #js {}) -(def snoopy-bars #js {}) -(def snoopy-buffer #js {}) -(def react-native-screens #js {}) -(def background-timer #js {:setTimeout (fn [cb ms] (js/setTimeout cb ms))}) -(def react-navigation (js/require "react-navigation")) -(def react-native-navigation-twopane (js/require "react-native-navigation-twopane")) -(def react-native-shake #js {}) -(def net-info #js {:default #js {}}) -(def react-native-mail #js {:mail (fn [])}) -(def async-storage #js {}) -(def back-handler #js {:addEventListener (fn [])}) -(def safe-area-context #js {}) -(def react-native-dark-mode #js {}) diff --git a/react-native/src/mobile/status_im/react_native/js_dependencies.cljs b/react-native/src/mobile/status_im/react_native/js_dependencies.cljs deleted file mode 100644 index c68204dd6f..0000000000 --- a/react-native/src/mobile/status_im/react_native/js_dependencies.cljs +++ /dev/null @@ -1,51 +0,0 @@ -(ns status-im.react-native.js-dependencies) - -(def config (js/require "react-native-config")) -(def fs (js/require "react-native-fs")) -(def keychain (js/require "react-native-keychain")) -(def qr-code (js/require "qrcode")) -(def react (js/require "react")) -(def react-native (js/require "react-native")) -(def status-keycard (js/require "react-native-status-keycard")) -(def webview (js/require "react-native-webview")) -(def touchid-class (js/require "react-native-touch-id")) -(def touchid (.-default touchid-class)) -(def EventEmmiter (js/require "react-native/Libraries/vendor/emitter/EventEmitter")) -(def fetch-polyfill (js/require "react-native-fetch-polyfill")) -(def fetch (.-default fetch-polyfill)) -(def i18n (js/require "i18n-js")) -(def react-native-languages (.-default (js/require "react-native-languages"))) -(def camera (js/require "react-native-camera")) -(def dialogs (js/require "react-native-dialogs")) -(def image-crop-picker (js/require "react-native-image-crop-picker")) -(def image-resizer (js/require "react-native-image-resizer")) -(def snoopy (js/require "rn-snoopy")) -(def snoopy-filter (js/require "rn-snoopy/stream/filter")) -(def snoopy-bars (js/require "rn-snoopy/stream/bars")) -(def snoopy-buffer (js/require "rn-snoopy/stream/buffer")) -(def background-timer-class (js/require "react-native-background-timer")) -(def background-timer (.-default background-timer-class)) -(def svg (js/require "react-native-svg")) -(def react-native-shake (js/require "react-native-shake")) -(def react-native-screens (js/require "react-native-screens")) -(def net-info (js/require "@react-native-community/netinfo")) -(def mail-class (js/require "react-native-mail")) -(def react-native-mail (.-default mail-class)) -(def async-storage (.-AsyncStorage react-native)) -(def back-handler (.-BackHandler react-native)) -(def desktop-linking #js {:addEventListener (fn [])}) -(def desktop-menu #js {:addEventListener (fn [])}) -(def desktop-config #js {:addEventListener (fn [])}) -(def desktop-shortcuts #js {:addEventListener (fn [])}) -(def safe-area-context (js/require "react-native-safe-area-context")) -(def react-native-dark-mode (js/require "react-native-dark-mode")) - -(def react-navigation-native (js/require "@react-navigation/native")) -(def react-navigation-stack (js/require "@react-navigation/stack")) -(def react-navigation-bottom-tabs (js/require "@react-navigation/bottom-tabs")) - -(def react-native-haptic-feedback (js/require "react-native-haptic-feedback")) - -(def react-native-reanimated (js/require "react-native-reanimated")) -(def react-native-redash (js/require "react-native-redash")) -(def react-native-gesture-handler (js/require "react-native-gesture-handler")) diff --git a/scripts/start-react-native.sh b/scripts/start-react-native.sh index 281f9d7b52..e3a06fe068 100755 --- a/scripts/start-react-native.sh +++ b/scripts/start-react-native.sh @@ -1,3 +1,4 @@ + #!/usr/bin/env bash GIT_ROOT=$(cd "${BASH_SOURCE%/*}" && git rev-parse --show-toplevel) diff --git a/shadow-cljs.edn b/shadow-cljs.edn new file mode 100644 index 0000000000..bdf69130b9 --- /dev/null +++ b/shadow-cljs.edn @@ -0,0 +1,95 @@ +;; shadow-cljs configuration +{:source-paths ["src" "test/cljs"] + + :dependencies [[org.clojure/core.async "0.4.474"] + [reagent "0.10.0"] + [re-frame "0.12.0"] + [binaryage/oops "0.7.0"] + [com.andrewmcveigh/cljs-time "0.5.2"] + [status-im/timbre "4.10.0-2-status"] + [com.taoensso/encore "2.94.0"] + [hickory "0.7.1"] + [cljs-bean "1.3.0"] + [com.cognitect/transit-cljs "0.8.248"] + [mvxcvi/alphabase "1.0.0"] + ;; dev dependencies + [refactor-nrepl "2.5.0"] + [cider/cider-nrepl "0.24.0"] + [cider/piggieback "0.4.1"] + ;; test dependencies + [day8.re-frame/test "0.1.5"] + [com.taoensso/tufte "2.1.0"]] + + ;; port and middleware for repl in development + :nrepl {:port 7888 + :middleware [cider.piggieback/wrap-cljs-repl + refactor-nrepl.middleware/wrap-refactor]} + + ;; shadow-cljs web interface + :http {:port 3449 + :host "0.0.0.0"} + + :builds {:android + {:target :react-native + :output-dir "app" + :init-fn status-im.android.core/init + :dev {:devtools {:autoload true} + ;; if you want to use a real device, set your local ip + ;; in the SHADOW_HOST env variable to make sure that + ;; it will use the right interface + :local-ip #shadow/env "SHADOW_HOST"} + :chunks {:fleets status-im.default-fleet/default-fleets} + :release {:compiler-options {:output-feature-set :es6 + ;;disable for android build as there + ;;is an intermittent warning with deftype + :warnings-as-errors false + :infer-externs :auto + :static-fns true + :fn-invoke-direct true + :optimizations :advanced + :js-options {:js-provider :closure}}}} + :ios + {:target :react-native + :output-dir "app" + :init-fn status-im.ios.core/init + :dev {:devtools {:autoload true} + ;; if you want to use a real device, set your local ip + ;; in the SHADOW_HOST env variable to make sure that + ;; it will use the right interface + :local-ip #shadow/env "SHADOW_HOST"} + :chunks {:fleets status-im.default-fleet/default-fleets} + :release {:compiler-options {:output-feature-set :es6 + :warnings-as-errors true + :infer-externs :auto + :static-fns true + :fn-invoke-direct true + :optimizations :advanced + :js-options {:js-provider :closure}}}} + ;; the tests are ran with node, react-native dependencies are mocked + ;; by using node --require override.js, which uses the node-library + ;; produced by the target :mocks below and redefines node require + ;; function to use the mocks instead of the rn libraries + :test + {:ns-regexp "status-im.test." + :output-to "target/test/test.js" + :output-dir "target/test" + :optimizations :simple + :target :node-test + :compiler-options {;; needed because we override require and it + ;; messes with source-map which reports callstack + ;; exceeded exceptions instead of real issues + :source-map false + ;; needed because we use deref in tests + :static-fns false + :optimizations :simple}} + + ;; mock.js-dependencies is mocking the react-native libraries + ;; we build it as a node library so that it can be required by + ;; override.js + :mocks + {:target :node-library + :exports {:mocks mocks.js-dependencies/mock} + :output-to "target/mocks/mocks.js" + :output-dir "target/mocks" + :compiler-options {:optimizations :simple + :source-map false}}}} diff --git a/test/cljs/status_im/react_native/js_dependencies.cljs b/src/mocks/js_dependencies.cljs similarity index 64% rename from test/cljs/status_im/react_native/js_dependencies.cljs rename to src/mocks/js_dependencies.cljs index 7ee4e923c6..f561006da4 100644 --- a/test/cljs/status_im/react_native/js_dependencies.cljs +++ b/src/mocks/js_dependencies.cljs @@ -1,4 +1,5 @@ -(ns status-im.react-native.js-dependencies) +(ns mocks.js-dependencies + (:require [status-im.default-fleet :refer (default-fleets)])) (def action-button #js {:default #js {:Item #js {}}}) (def config #js {:default #js {}}) @@ -8,20 +9,51 @@ (def emoji-picker #js {:default #js {}}) (def fs #js {}) (def i18n #js {:locale "en"}) -(def react-native-languages #js {:language "en", :addEventListener (fn []), :removeEventListener (fn [])}) (def image-crop-picker #js {}) (def image-resizer #js {}) (def qr-code #js {}) (def svg #js {}) (def react-native - #js {:NativeModules #js {} - :Animated #js {:View #js {} - :FlatList #js {} - :Text #js {}} - :Easing #js {:bezier (fn [])} - :DeviceEventEmitter #js {:addListener (fn [])} - :Dimensions #js {:get (fn [])}}) + (clj->js {:NativeModules {:RNGestureHandlerModule {:Direction (fn [])} + :ReanimatedModule {:configureProps (fn [])}} + + :View {} + :FlatList {} + :Text {} + :ProgressBarAndroid {} + :StatusBar {} + :ScrollView {} + :KeyboardAvoidingView {} + :TextInput {} + :Image {} + :Picker {:Item {}} + :Switch {} + :Modal {} + :Keyboard {:dismiss (fn [])} + :Linking {} + :TouchableWithoutFeedback {} + :TouchableHighlight {} + :TouchableOpacity {} + :ActivityIndicator {} + :StyleSheet {:create (fn [])} + :Animated {:createAnimatedComponent identity + :Value (fn []) + :ValueXY (fn []) + :View {} + :FlatList {} + :Text {}} + :Easing {:bezier (fn []) + :poly (fn []) + :out (fn []) + :in (fn []) + :inOut (fn [])} + :DeviceEventEmitter {:addListener (fn [])} + :Dimensions {:get (fn [])} + :Platform {:select (fn [])} + :I18nManager {:isRTL ""} + :NativeEventEmitter (fn []) + :requireNativeComponent (fn [] {:propTypes ""})})) (set! js/ReactNative react-native) @@ -38,10 +70,10 @@ (def snoopy-buffer #js {:default #js {}}) (def fetch #js {}) -(def background-timer #js {:setTimeout js/setTimeout - :setInterval js/setInterval - :clearTimeout js/clearTimeout - :clearInterval js/clearInterval}) +(def background-timer (clj->js {:default {:setTimeout js/setTimeout + :setInterval js/setInterval + :clearTimeout js/clearTimeout + :clearInterval js/clearInterval}})) (def keychain #js {:setGenericPassword (constantly (.resolve js/Promise true)) "ACCESSIBLE" {} @@ -54,7 +86,9 @@ (def react-native-shake #js {}) (def net-info #js {}) (def touchid #js {}) -(def safe-area-context #js {}) +(def safe-area-context (clj->js {:SafeAreaProvider {:_reactNativeIphoneXHelper {:getStatusBarHeight (fn [])}} + :SafeAreaConsumer {} + :SafeAreaView {}})) (def react-native-dark-mode #js {"eventEmitter" {} "initialMode" {}}) (def back-handler #js {:addEventListener identity @@ -104,7 +138,7 @@ :View #js {} :ScrollView #js {} :Text #js {} - :extrapolate #js {:CLAMP nil} + :Extrapolate #js {:CLAMP nil} :Code #js {}} :Easing #js {:bezier nil :linear nil} @@ -124,3 +158,35 @@ :createNativeWrapper identity}) (def react-native-redash #js {:clamp nil}) + +(def react-native-languages + (clj->js {:default {:language "en", + :addEventListener (fn []), + :removeEventListener (fn [])}})) + +(defn mock [module] + (case module + "react-native-languages" react-native-languages + "react-native-background-timer" background-timer + "react-native-image-crop-picker" image-crop-picker + "react-native-gesture-handler" react-native-gesture-handler + "react-native-safe-area-context" safe-area-context + "react-native-config" config + "react-native-dark-mode" react-native-dark-mode + "react-native-iphone-x-helper" (clj->js {:getStatusBarHeight (fn []) + :getBottomSpace (fn [])}) + "react-native-screens" (clj->js {}) + "react-native-reanimated" react-native-reanimated + "react-native-redash" react-native-redash + "react-native-fetch-polyfill" fetch + "react-native-status-keycard" status-keycard + "react-native-keychain" keychain + "react-native-touch-id" touchid + "@react-native-community/netinfo" net-info + "react-native-dialogs" dialogs + "react-native" react-native + "react-native-fs" fs + "react-native-mail" react-native-mail + "react-native-image-resizer" image-resizer + "./fleets.js" default-fleets + nil)) diff --git a/src/quo/animated.cljs b/src/quo/animated.cljs index 592cf7a557..376657847d 100644 --- a/src/quo/animated.cljs +++ b/src/quo/animated.cljs @@ -2,18 +2,13 @@ (:refer-clojure :exclude [set]) (:require [reagent.core :as reagent] [oops.core :refer [oget ocall]] - [status-im.react-native.js-dependencies :as js-deps])) + ["react-native-reanimated" :default animated :refer (clockRunning Easing)] + ["react-native-redash" :as redash])) -(def animated (oget js-deps/react-native-reanimated "default")) -(def createAnimatedComponent (oget animated "createAnimatedComponent")) - -(def view (reagent/adapt-react-class (oget animated "View"))) -(def text (reagent/adapt-react-class (oget animated "Text"))) -(def scroll-view (reagent/adapt-react-class (oget animated "ScrollView"))) -(def code (reagent/adapt-react-class (oget animated "Code"))) - -(def clock-running (oget js-deps/react-native-reanimated "clockRunning")) -(def Easing (oget js-deps/react-native-reanimated "Easing")) +(def view (reagent/adapt-react-class (.-View animated))) +(def text (reagent/adapt-react-class (.-Text animated))) +(def scroll-view (reagent/adapt-react-class (.-ScrollView animated))) +(def code (reagent/adapt-react-class (.-Code animated))) (def eq (oget animated "eq")) (def neq (oget animated "neq")) @@ -33,8 +28,8 @@ (def set (oget animated "set")) (def start-clock (oget animated "startClock")) (def stop-clock (oget animated "stopClock")) -(def bezier (oget Easing "bezier")) -(def linear (oget Easing "linear")) +(def bezier (.-bezier ^js Easing)) +(def linear (.-linear ^js Easing)) (defn set-value [anim val] (ocall anim "setValue" val)) @@ -103,8 +98,6 @@ ;; utilities -(def redash js-deps/react-native-redash) - (def clamp (oget redash "clamp")) (defn with-spring [config] @@ -117,4 +110,4 @@ (ocall redash "timing" (clj->js config))) (defn on-scroll [opts] - (ocall redash "onScroll" (clj->js opts))) + (ocall redash "onScrollEvent" (clj->js opts))) diff --git a/src/quo/components/safe_area.cljs b/src/quo/components/safe_area.cljs index d9416f7d9f..94e391dfc1 100644 --- a/src/quo/components/safe_area.cljs +++ b/src/quo/components/safe_area.cljs @@ -1,11 +1,11 @@ (ns quo.components.safe-area - (:require [status-im.react-native.js-dependencies :refer [safe-area-context]] - [reagent.core :as reagent] - [oops.core :refer [oget]])) + (:require ["react-native-safe-area-context" :as safe-area-context + :refer (SafeAreaView SafeAreaProvider SafeAreaConsumer)] + [reagent.core :as reagent])) -(def provider (reagent/adapt-react-class (oget safe-area-context "SafeAreaProvider"))) -(def ^:private consumer-raw (reagent/adapt-react-class (oget safe-area-context "SafeAreaConsumer"))) -(def view (reagent/adapt-react-class (oget safe-area-context "SafeAreaView"))) +(def provider (reagent/adapt-react-class SafeAreaProvider)) +(def ^:private consumer-raw (reagent/adapt-react-class SafeAreaConsumer)) +(def view (reagent/adapt-react-class SafeAreaView)) (defn consumer [component] [consumer-raw diff --git a/src/quo/design_system/colors.cljs b/src/quo/design_system/colors.cljs index 26cb449ad8..8d70adac0a 100644 --- a/src/quo/design_system/colors.cljs +++ b/src/quo/design_system/colors.cljs @@ -39,7 +39,7 @@ :icon-03 "rgba(255,255,255,0.4)" ; Secondary icons on accent bg :icon-04 "rgba(255,255,255,1)" ; Icons inverse on accent background :shadow-01 "rgba(0,9,26,0.12)" ; Main shadow color -}) + }) (def dark-theme {:positive-01 "rgba(68,208,88,1)" diff --git a/src/quo/gesture_handler.cljs b/src/quo/gesture_handler.cljs index 5dad6ea7fa..28d81c5c7f 100644 --- a/src/quo/gesture_handler.cljs +++ b/src/quo/gesture_handler.cljs @@ -1,28 +1,25 @@ (ns quo.gesture-handler (:require [oops.core :refer [oget]] - [quo.animated :as animated] + ["react-native-reanimated" :default animated] [reagent.core :as reagent] - [status-im.react-native.js-dependencies :as js-deps])) + ["react-native-gesture-handler" + :refer (TapGestureHandler PanGestureHandler LongPressGestureHandler + PureNativeButton TouchableWithoutFeedback createNativeWrapper State)])) (def tap-gesture-handler - (reagent/adapt-react-class - (oget js-deps/react-native-gesture-handler "TapGestureHandler"))) + (reagent/adapt-react-class TapGestureHandler)) (def pan-gesture-handler - (reagent/adapt-react-class - (oget js-deps/react-native-gesture-handler "PanGestureHandler"))) + (reagent/adapt-react-class PanGestureHandler)) (def long-press-gesture-handler - (reagent/adapt-react-class - (oget js-deps/react-native-gesture-handler "LongPressGestureHandler"))) + (reagent/adapt-react-class LongPressGestureHandler)) -(def pure-native-button (oget js-deps/react-native-gesture-handler "PureNativeButton")) +(def pure-native-button PureNativeButton) -(def touchable-without-feedback-class - (oget js-deps/react-native-gesture-handler "TouchableWithoutFeedback")) +(def touchable-without-feedback-class TouchableWithoutFeedback) -(def createNativeWrapper - (oget js-deps/react-native-gesture-handler "createNativeWrapper")) +(def createNativeWrapper createNativeWrapper) (def touchable-without-feedback (reagent/adapt-react-class touchable-without-feedback-class)) @@ -30,9 +27,9 @@ (def animated-raw-button (reagent/adapt-react-class (createNativeWrapper - (animated/createAnimatedComponent touchable-without-feedback-class)))) + (.createAnimatedComponent animated touchable-without-feedback-class)))) -(def state (oget js-deps/react-native-gesture-handler "State")) +(def state State) (def states {:began (oget state "BEGAN") :active (oget state "ACTIVE") diff --git a/src/quo/previews/main.cljs b/src/quo/previews/main.cljs index 99c2b492d9..5bce49da23 100644 --- a/src/quo/previews/main.cljs +++ b/src/quo/previews/main.cljs @@ -4,7 +4,6 @@ [quo.previews.text :as text] [quo.react-native :as rn] [reagent.core :as reagent] - [status-im.react-native.js-dependencies :refer [react-native]] [status-im.ui.screens.routing.core :as navigation])) (def screens [{:name :texts @@ -44,10 +43,12 @@ :component main-screen}] screens)]])) + + ;; TODO(Ferossgp): Add separate build when shadow-cljs will be integrated ;; NOTE(Ferossgp): Separate app can be used to preview all available -;; and possible state for componetns, and for UI testing based on screenshots +;; and possible state for components, and for UI testing based on screenshots + + (defn init [] - (ocall react-native ["AppRegistry" "registerComponent"] - "StatusIm" - #(reagent/reactify-component preview-screens))) + (.registerComponent ^js rn/app-registry "StatusIm" #(reagent/reactify-component preview-screens))) diff --git a/src/quo/react.cljs b/src/quo/react.cljs index 44bc87f91e..a493630a2d 100644 --- a/src/quo/react.cljs +++ b/src/quo/react.cljs @@ -1,7 +1,7 @@ (ns quo.react (:require [oops.core :refer [oget]] [reagent.core :as reagent] - [status-im.react-native.js-dependencies :refer [react]])) + ["react" :as react])) ;; NOTE(Ferossgp): Available in new versions of reagent as `:<>` (def fragment (reagent/adapt-react-class (oget react "Fragment"))) diff --git a/src/quo/react_native.cljs b/src/quo/react_native.cljs index 904b87f982..26961b865a 100644 --- a/src/quo/react_native.cljs +++ b/src/quo/react_native.cljs @@ -1,15 +1,16 @@ (ns quo.react-native - (:require [oops.core :refer [oget]] - [reagent.core :as reagent] - [status-im.react-native.js-dependencies :refer [react-native]])) + (:require [reagent.core :as reagent] + ["react-native" :as rn])) -(def platform (oget react-native "Platform")) +(def app-registry (.-AppRegistry rn)) -(def view (reagent/adapt-react-class (oget react-native "View"))) +(def platform (.-Platform ^js rn)) -(def text (reagent/adapt-react-class (oget react-native "Text"))) +(def view (reagent/adapt-react-class (.-View ^js rn))) -(def scroll-view (reagent/adapt-react-class (oget react-native "ScrollView"))) +(def text (reagent/adapt-react-class (.-Text ^js rn))) -(def touchable-opacity (reagent/adapt-react-class (oget react-native "TouchableOpacity"))) -(def touchable-highlight (reagent/adapt-react-class (oget react-native "TouchableHighlight"))) +(def scroll-view (reagent/adapt-react-class (.-ScrollView ^js rn))) + +(def touchable-opacity (reagent/adapt-react-class (.-TouchableOpacity ^js rn))) +(def touchable-highlight (reagent/adapt-react-class (.-TouchableHighlight ^js rn))) diff --git a/src/reagent/dom.cljs b/src/reagent/dom.cljs new file mode 100644 index 0000000000..7d38dc93d5 --- /dev/null +++ b/src/reagent/dom.cljs @@ -0,0 +1,11 @@ +(ns reagent.dom) +;; Shimmed namespace to make reagent 0.6.0 work with react native packager + +(defn render + ([_ _]) + ([_ _ _])) +(defn unmount-component-at-node [_]) + +(defn dom-node [_]) + +(defn force-update-all []) diff --git a/src/status_im/android/core.cljs b/src/status_im/android/core.cljs index 8267589983..bb74d57b1e 100644 --- a/src/status_im/android/core.cljs +++ b/src/status_im/android/core.cljs @@ -1,59 +1,7 @@ (ns status-im.android.core - (:require [reagent.core :as reagent] - [re-frame.core :refer [subscribe dispatch dispatch-sync]] - status-im.utils.db - status-im.ui.screens.db - status-im.ui.screens.events - status-im.subs - [status-im.ui.screens.views :as views] - [status-im.ui.components.react :as react] - [status-im.native-module.core :as status] - [status-im.core :as core] - [oops.core :refer [ocall]] - [status-im.react-native.js-dependencies :as rn-dependencies] - [status-im.utils.snoopy :as snoopy] - [status-im.i18n :as i18n] - [status-im.ui.screens.routing.core :as routing])) - -(defn app-state-change-handler [state] - (dispatch [:app-state-change state])) - -(defn on-languages-change [event] - (i18n/set-language (.-language event))) - -(defn on-shake [] - (dispatch [:shake-event])) - -(defn app-root [props] - (reagent/create-class - {:component-did-mount - (fn [this] - (.addListener react/keyboard - "keyboardDidShow" - (fn [e] - (let [h (.. e -endCoordinates -height)] - (dispatch-sync [:set :keyboard-height h]) - (dispatch-sync [:set :keyboard-max-height h])))) - (.addListener react/keyboard - "keyboardDidHide" - (fn [_] - (dispatch-sync [:set :keyboard-height 0]))) - (.hide react/splash-screen) - (.addEventListener react/app-state "change" app-state-change-handler) - (.addEventListener rn-dependencies/react-native-languages "change" on-languages-change) - (.addEventListener rn-dependencies/react-native-shake - "ShakeEvent" - on-shake) - (dispatch [:set-initial-props (reagent/props this)])) - :component-will-unmount - (fn [] - (.removeEventListener react/app-state "change" app-state-change-handler) - (.removeEventListener rn-dependencies/react-native-languages "change" on-languages-change)) - :display-name "root" - :reagent-render views/main})) + (:require [status-im.native-module.core :as status] + [status-im.core :as core])) (defn init [] (status/set-soft-input-mode status/adjust-resize) - (ocall rn-dependencies/react-native-screens "enableScreens") - (core/init app-root) - (snoopy/subscribe!)) + (core/init core/root)) diff --git a/src/status_im/browser/core.cljs b/src/status_im/browser/core.cljs index a3611801a6..9c2914a9eb 100644 --- a/src/status_im/browser/core.cljs +++ b/src/status_im/browser/core.cljs @@ -8,7 +8,6 @@ [status-im.ethereum.json-rpc :as json-rpc] [status-im.ethereum.resolver :as resolver] [status-im.i18n :as i18n] - [status-im.js-dependencies :as js-dependencies] [status-im.native-module.core :as status] [status-im.ui.components.list-selection :as list-selection] [status-im.ui.screens.navigation :as navigation] @@ -24,7 +23,10 @@ [status-im.signing.core :as signing] [status-im.multiaccounts.update.core :as multiaccounts.update] [status-im.ui.components.bottom-sheet.core :as bottom-sheet] - [status-im.browser.webview-ref :as webview-ref])) + [status-im.browser.webview-ref :as webview-ref] + [alphabase.base58 :as alphabase.base58] + ["eth-phishing-detect" :as eth-phishing-detect] + ["hi-base32" :as hi-base32])) (fx/defn update-browser-option [{:keys [db]} option-key option-value] @@ -69,7 +71,7 @@ (defn check-if-phishing-url [{:keys [history history-index] :as browser}] (let [history-host (http/url-host (try (nth history history-index) (catch js/Error _)))] - (cond-> browser history-host (assoc :unsafe? (js-dependencies/phishing-detect history-host))))) + (cond-> browser history-host (assoc :unsafe? (eth-phishing-detect history-host))))) (defn- content->hash [hex] (when (and hex (not= hex "0x")) @@ -105,13 +107,13 @@ (fx/defn resolve-ens-contenthash [{:keys [db]}] (let [current-url (get-current-url (get-current-browser db)) - host (http/url-host current-url)] - (let [chain (ethereum/chain-keyword db)] - {:db (update db :browser/options assoc :resolving? true) - :browser/resolve-ens-contenthash {:registry (get ens/ens-registries - chain) - :ens-name host - :cb resolve-ens-contenthash-callback}}))) + host (http/url-host current-url) + chain (ethereum/chain-keyword db)] + {:db (update db :browser/options assoc :resolving? true) + :browser/resolve-ens-contenthash {:registry (get ens/ens-registries + chain) + :ens-name host + :cb resolve-ens-contenthash-callback}})) (fx/defn update-browser [{:keys [db now]} @@ -163,7 +165,7 @@ (defmethod storage-gateway :ipfs [{:keys [hash]}] - (let [base32hash (-> (.encode js-dependencies/hi-base32 (alphabase.base58/decode hash)) + (let [base32hash (-> (.encode ^js hi-base32 (alphabase.base58/decode hash)) (string/replace #"=" "") (string/lower-case))] (str base32hash ".infura.status.im"))) @@ -176,7 +178,7 @@ [{:keys [db] :as cofx} m] (let [current-url (get-current-url (get-current-browser db)) host (http/url-host current-url) - path (subs current-url (+ (.indexOf current-url host) (count host))) + path (subs current-url (+ (.indexOf ^js current-url host) (count host))) gateway (storage-gateway m)] (fx/merge cofx {:db (-> (update db :browser/options @@ -214,7 +216,8 @@ options (get-in cofx [:db :browser/options]) current-url (:url options)] (when (and (not= "about:blank" url) (not= current-url url) (not= (str current-url "/") url)) - (let [resolved-ens (first (filter #(not= (.indexOf url (second %)) -1) (:resolved-ens options))) + + (let [resolved-ens (first (filter #(not= (.indexOf ^js url (second %)) -1) (:resolved-ens options))) resolved-url (if resolved-ens (string/replace url (second resolved-ens) (first resolved-ens)) url)] (fx/merge cofx (update-browser-history browser resolved-url) @@ -285,7 +288,7 @@ (fx/defn web3-error-callback {:events [:browser.dapp/transaction-on-error]} - [cofx message-id message] + [_ message-id message] {:browser/send-to-bridge {:type constants/web3-send-async-callback :messageId message-id @@ -293,7 +296,7 @@ (fx/defn dapp-complete-transaction {:events [:browser.dapp/transaction-on-result]} - [cofx message-id id result] + [_ message-id id result] ;;TODO check and test id {:browser/send-to-bridge {:type constants/web3-send-async-callback @@ -394,7 +397,8 @@ (= type constants/api-request) (browser.permissions/process-permission cofx dapp-name permission messageId params)))) -(defn filter-letters-numbers-and-replace-dot-on-dash [value] +(defn filter-letters-numbers-and-replace-dot-on-dash + [^js value] (let [cc (.charCodeAt value 0)] (cond (or (and (> cc 96) (< cc 123)) (and (> cc 64) (< cc 91)) @@ -421,7 +425,7 @@ (re-frame/reg-fx :browser/send-to-bridge (fn [message] - (let [webview @webview-ref/webview-ref + (let [^js webview @webview-ref/webview-ref msg (str "ReactNativeWebView.onMessage('" (types/clj->json message) "');")] diff --git a/src/status_im/chat/models.cljs b/src/status_im/chat/models.cljs index c717fba008..fbd2715cad 100644 --- a/src/status_im/chat/models.cljs +++ b/src/status_im/chat/models.cljs @@ -296,7 +296,7 @@ (defn set-dock-badge-label [label] "Sets dock badge label (OSX only for now). Label must be a string. Pass nil or empty string to clear the label." - (.setDockBadgeLabel react/desktop-notification label)) + (.setDockBadgeLabel ^js react/desktop-notification label)) (re-frame/reg-fx :set-dock-badge-label diff --git a/src/status_im/chat/models/input.cljs b/src/status_im/chat/models/input.cljs index 1d43f6f4bc..8ae98ccf7b 100644 --- a/src/status_im/chat/models/input.cljs +++ b/src/status_im/chat/models/input.cljs @@ -7,10 +7,10 @@ [status-im.chat.models.message-content :as message-content] [status-im.chat.models.message :as chat.message] [status-im.constants :as constants] - [status-im.js-dependencies :as dependencies] [status-im.utils.datetime :as datetime] [status-im.utils.fx :as fx] - [taoensso.timbre :as log])) + [taoensso.timbre :as log] + ["emojilib" :as emojis])) (defn text->emoji "Replaces emojis in a specified `text`" @@ -19,8 +19,8 @@ (string/replace text #":([a-z_\-+0-9]*):" (fn [[original emoji-id]] - (if-let [emoji-map (object/get (object/get dependencies/emojis "lib") emoji-id)] - (object/get emoji-map "char") + (if-let [emoji-map (object/get (.-lib emojis) emoji-id)] + (.-char ^js emoji-map) original))))) (fx/defn set-chat-input-text @@ -133,12 +133,11 @@ ;;TODO: should be implemented on status-go side ;;see https://github.com/status-im/team-core/blob/6c3d67d8e8bd8500abe52dab06a59e976ec942d2/rfc-001.md#status-gostatus-react-interface - ;; effects (re-frame/reg-fx ::focus-rn-component - (fn [ref] + (fn [^js ref] (try (.focus ref) (catch :default e diff --git a/src/status_im/chat/models/loading.cljs b/src/status_im/chat/models/loading.cljs index c7d0523dbd..ba78fad937 100644 --- a/src/status_im/chat/models/loading.cljs +++ b/src/status_im/chat/models/loading.cljs @@ -12,7 +12,8 @@ [taoensso.timbre :as log] [status-im.chat.models.message-seen :as message-seen])) -(defn cursor->clock-value [cursor] +(defn cursor->clock-value + [^js cursor] (js/parseInt (.substring cursor 51 64))) (defn clock-value->cursor [clock-value] @@ -37,9 +38,9 @@ (fx/defn handle-chat-visibility-changed {:events [:chat.ui/message-visibility-changed]} - [{:keys [db] :as cofx} event] - (let [viewable-items (.-viewableItems event) - last-element (aget viewable-items (dec (.-length viewable-items)))] + [{:keys [db] :as cofx} ^js event] + (let [^js viewable-items (.-viewableItems event) + ^js last-element (aget viewable-items (dec (.-length viewable-items)))] (when last-element (let [last-element-clock-value (:clock-value (.-item last-element)) chat-id (:chat-id (.-item last-element))] diff --git a/src/status_im/chat/models/message_content.cljs b/src/status_im/chat/models/message_content.cljs index 39a3658055..bbc5543c94 100644 --- a/src/status_im/chat/models/message_content.cljs +++ b/src/status_im/chat/models/message_content.cljs @@ -13,19 +13,21 @@ [:tag constants/regx-tag] [:mention constants/regx-mention]]) +(def blank " ") + (defn- blank-string [size] - (.repeat " " size)) + (.repeat ^js blank size)) (defn- clear-ranges [ranges input] (reduce (fn [acc [start end]] - (.concat (subs acc 0 start) (blank-string (- end start)) (subs acc end))) + (.concat ^js (subs acc 0 start) (blank-string (- end start)) (subs acc end))) input ranges)) -(defn- query-regex [regex content] +(defn- query-regex [^js regex content] (loop [input content matches [] offset 0] - (if-let [match (.exec regex input)] + (if-let [^js match (.exec regex input)] (let [match-value (first match) match-size (count match-value) relative-index (.-index match) diff --git a/src/status_im/chat/models/message_list.cljs b/src/status_im/chat/models/message_list.cljs index 4efd52dc98..6252d48a89 100644 --- a/src/status_im/chat/models/message_list.cljs +++ b/src/status_im/chat/models/message_list.cljs @@ -1,6 +1,6 @@ (ns status-im.chat.models.message-list (:require - [status-im.js-dependencies :as dependencies] + ["functional-red-black-tree" :as rb-tree] [taoensso.timbre :as log] [status-im.constants :as constants] [status-im.utils.fx :as fx] @@ -117,7 +117,7 @@ (defn get-prev-element "Get previous item in the iterator, and wind it back to the initial state" - [iter] + [^js iter] (.prev iter) (let [e (.-value iter)] (.next iter) @@ -125,7 +125,7 @@ (defn get-next-element "Get next item in the iterator, and wind it back to the initial state" - [iter] + [^js iter] (.next iter) (let [e (.-value iter)] (.prev iter) @@ -133,34 +133,34 @@ (defn update-message "Update the message and siblings with positional info" - [tree message] - (let [iter (.find tree message) - previous-message (when (.-hasPrev iter) - (get-prev-element iter)) - next-message (when (.-hasNext iter) - (get-next-element iter)) - message-with-pos-data (add-group-info message previous-message next-message)] + [^js tree message] + (let [^js iter (.find tree message) + ^js previous-message (when (.-hasPrev iter) + (get-prev-element iter)) + ^js next-message (when (.-hasNext iter) + (get-next-element iter)) + ^js message-with-pos-data (add-group-info message previous-message next-message)] (cond-> (.update iter message-with-pos-data) next-message - (-> (.find next-message) + (-> ^js (.find next-message) (.update (update-next-message message-with-pos-data next-message))) (and previous-message (not= :datemark (:type previous-message))) - (-> (.find previous-message) + (-> ^js (.find previous-message) (.update (update-previous-message message-with-pos-data previous-message)))))) (defn remove-message "Remove a message in the list" - [tree prepared-message] + [^js tree prepared-message] (let [iter (.find tree prepared-message)] (if (not iter) tree - (let [new-tree (.remove iter) - next-message (when (.-hasNext iter) - (get-next-element iter))] + (let [^js new-tree (.remove iter) + ^js next-message (when (.-hasNext iter) + (get-next-element iter))] (if (not next-message) new-tree (update-message new-tree next-message)))))) @@ -170,12 +170,12 @@ its positional metadata, and update the left & right messages if necessary, this operation is O(logN) for insertion, and O(logN) for the updates, as we need to re-find (there's probably a better way)" - [old-message-list prepared-message] - (let [tree (.insert old-message-list prepared-message prepared-message)] + [^js old-message-list prepared-message] + (let [^js tree (.insert old-message-list prepared-message prepared-message)] (update-message tree prepared-message))) (defn add [message-list message] - (insert-message (or message-list (dependencies/rb-tree compare-fn)) + (insert-message (or message-list (rb-tree compare-fn)) (prepare-message message))) (defn add-many [message-list messages] @@ -183,7 +183,7 @@ message-list messages)) -(defn ->seq [message-list] +(defn ->seq [^js message-list] (if message-list (array-seq (.-values message-list)) [])) diff --git a/src/status_im/core.cljs b/src/status_im/core.cljs index 67721e31b6..9e97c3cbb2 100644 --- a/src/status_im/core.cljs +++ b/src/status_im/core.cljs @@ -2,21 +2,81 @@ (:require [re-frame.core :as re-frame] [status-im.utils.error-handler :as error-handler] [status-im.utils.platform :as platform] + [status-im.ui.screens.views :as views] [status-im.ui.components.react :as react] [reagent.core :as reagent] - [status-im.react-native.js-dependencies :as js-dependencies] + status-im.utils.db + status-im.ui.screens.db + status-im.ui.screens.events + status-im.subs + ["react-native-languages" :default react-native-languages] + ["react-native-shake" :as react-native-shake] + ["react-native-screens" :refer (enableScreens)] [status-im.utils.logging.core :as utils.logs] - cljs.core.specs.alpha)) + ["react-native" :as rn] + [status-im.utils.snoopy :as snoopy] + [status-im.i18n :as i18n] + [re-frame.interop :as interop] + [reagent.impl.batching :as batching])) + +(set! interop/next-tick js/setTimeout) +(set! batching/fake-raf #(js/setTimeout % 0)) (if js/goog.DEBUG - (.ignoreWarnings (.-YellowBox js-dependencies/react-native) + (.ignoreWarnings (.-YellowBox ^js rn) #js ["re-frame: overwriting" "Warning: componentWillMount has been renamed, and is not recommended for use. See https://fb.me/react-async-component-lifecycle-hooks for details." "Warning: componentWillUpdate has been renamed, and is not recommended for use. See https://fb.me/react-async-component-lifecycle-hooks for details."]) (aset js/console "disableYellowBox" true)) +(def app-registry (.-AppRegistry rn)) +(def splash-screen (-> rn .-NativeModules .-SplashScreen)) + +(defn on-languages-change [^js event] + (i18n/set-language (.-language event))) + +(defn on-shake [] + (re-frame/dispatch [:shake-event])) + +(defn app-state-change-handler [state] + (re-frame/dispatch [:app-state-change state])) + +(defn root [props] + (reagent/create-class + {:component-did-mount + (fn [this] + (.addListener ^js react/keyboard + (if platform/ios? + "keyboardWillShow" + "keyboardDidShow") + (fn [^js e] + (let [h (.. e -endCoordinates -height)] + (re-frame/dispatch-sync [:set :keyboard-height h]) + (re-frame/dispatch-sync [:set :keyboard-max-height h])))) + (.addListener ^js react/keyboard + (if platform/ios? + "keyboardWillHide" + "keyboardWDidHide") + (fn [_] + (re-frame/dispatch-sync [:set :keyboard-height 0]))) + (.addEventListener ^js react/app-state "change" app-state-change-handler) + (.addEventListener react-native-languages "change" on-languages-change) + (.addEventListener react-native-shake + "ShakeEvent" + on-shake) + (re-frame/dispatch [:set-initial-props (reagent/props this)]) + (.hide ^js splash-screen)) + :component-will-unmount + (fn [] + (.removeEventListener ^js react/app-state "change" app-state-change-handler) + (.removeEventListener react-native-languages "change" on-languages-change)) + :display-name "root" + :reagent-render views/main})) + (defn init [app-root] (utils.logs/init-logs) (error-handler/register-exception-handler!) + (enableScreens) (re-frame/dispatch-sync [:init/app-started]) - (.registerComponent react/app-registry "StatusIm" #(reagent/reactify-component app-root))) + (.registerComponent ^js app-registry "StatusIm" #(reagent/reactify-component app-root)) + (snoopy/subscribe!)) diff --git a/src/status_im/default_fleet.cljs b/src/status_im/default_fleet.cljs new file mode 100644 index 0000000000..eefcd8eeed --- /dev/null +++ b/src/status_im/default_fleet.cljs @@ -0,0 +1,5 @@ +(ns status-im.default-fleet + (:require-macros [status-im.utils.slurp :refer [slurp]])) + +(def default-fleets + (slurp "resources/config/fleets.json")) diff --git a/src/status_im/desktop/core.cljs b/src/status_im/desktop/core.cljs index 42fa7b045e..39dc07a408 100644 --- a/src/status_im/desktop/core.cljs +++ b/src/status_im/desktop/core.cljs @@ -21,20 +21,20 @@ (reagent/create-class {:component-did-mount (fn [this] - (.addEventListener react/app-state "change" app-state-change-handler) + (.addEventListener ^js react/app-state "change" app-state-change-handler) (re-frame/dispatch [:set-initial-props (reagent/props this)])) :component-will-unmount (fn [] - (.removeEventListener react/app-state "change" app-state-change-handler)) + (.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) + ;(shortcuts/register-default-shortcuts) (deep-links/add-event-listener)) :reagent-render (fn [props] desktop-views/main)}))) (defn init [] - (core/init app-root)) + (core/init)) diff --git a/src/status_im/desktop/deep_links.cljs b/src/status_im/desktop/deep_links.cljs index 539ca7ecb0..e0158fd211 100644 --- a/src/status_im/desktop/deep_links.cljs +++ b/src/status_im/desktop/deep_links.cljs @@ -1,14 +1,15 @@ (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])) + [taoensso.timbre :as log] + ["react-native" :refer (NativeEventEmitter)])) (defn add-event-listener [] - (let [event-emitter (new (.-NativeEventEmitter js-dependencies/react-native) - js-dependencies/desktop-linking)] + (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])))))) \ No newline at end of file + (re-frame/dispatch [:handle-universal-link url])))))) diff --git a/src/status_im/ethereum/abi_spec.cljs b/src/status_im/ethereum/abi_spec.cljs index fcdbbe3727..a13b8cbf84 100644 --- a/src/status_im/ethereum/abi_spec.cljs +++ b/src/status_im/ethereum/abi_spec.cljs @@ -2,12 +2,10 @@ (:require [cljs.spec.alpha :as spec] [clojure.string :as string] [status-im.ethereum.core :as ethereum] - [status-im.js-dependencies :as dependencies])) + ["web3-utils" :as utils])) ;; Utility functions for encoding -(def utils dependencies/web3-utils) - (defn right-pad [x] (let [len (count x) to-pad (- 64 (mod len 64))] diff --git a/src/status_im/ethereum/core.cljs b/src/status_im/ethereum/core.cljs index b24fa7f81d..41f7bcc99c 100644 --- a/src/status_im/ethereum/core.cljs +++ b/src/status_im/ethereum/core.cljs @@ -1,10 +1,8 @@ (ns status-im.ethereum.core (:require [clojure.string :as string] [status-im.ethereum.tokens :as tokens] - [status-im.js-dependencies :as dependencies] - [status-im.utils.money :as money])) - -(def utils dependencies/web3-utils) + [status-im.utils.money :as money] + ["web3-utils" :as utils])) (defn sha3 [s] (when s @@ -122,7 +120,7 @@ (if (tokens/ethereum? symbol) default-transaction-gas ;; TODO(jeluard) Rely on estimateGas call - (.times default-transaction-gas 5))) + (.times ^js default-transaction-gas 5))) (defn address= [address1 address2] (and address1 address2 diff --git a/src/status_im/ethereum/eip55.cljs b/src/status_im/ethereum/eip55.cljs index fdd42d3e9c..c6468a4270 100644 --- a/src/status_im/ethereum/eip55.cljs +++ b/src/status_im/ethereum/eip55.cljs @@ -5,9 +5,7 @@ e.g. 0x5aAeb6053F3E94C9b9A09f33669435E7Ef1BeAed" (:require [clojure.string :as string] - [status-im.js-dependencies :as dependencies])) - -(def utils dependencies/web3-utils) + ["web3-utils" :as utils])) (def hex-prefix "0x") diff --git a/src/status_im/ethereum/eip681.cljs b/src/status_im/ethereum/eip681.cljs index acc9f63850..bba5dc85bc 100644 --- a/src/status_im/ethereum/eip681.cljs +++ b/src/status_im/ethereum/eip681.cljs @@ -44,9 +44,9 @@ arguments))) (defn parse-uri - "Parse a EIP 681 URI as a map (keyword / strings). Parsed map will contain at least the key `address` + "Parse a EIP 681 URI as a map (keyword / strings). Parsed map will contain at least the key `address` which will be either a valid ENS or Ethereum address. - Note that values are not decoded and you might need to rely on specific methods for some fields + Note that values are not decoded and you might need to rely on specific methods for some fields (parse-value, parse-number). Invalid URI will be parsed as `nil`." [s] @@ -78,7 +78,7 @@ "Takes a map as returned by `parse-uri` and returns value as BigNumber" (when (string? s) (let [eth? (string/ends-with? s "ETH") - n (money/bignumber (string/replace s "ETH" ""))] + ^js n (money/bignumber (string/replace s "ETH" ""))] (if eth? (.times n 1e18) n)))) (defn extract-request-details [{:keys [value address function-name function-arguments] :as details} all-tokens] diff --git a/src/status_im/ethereum/encode.cljs b/src/status_im/ethereum/encode.cljs index ee5a8d9c9f..252e4851e4 100644 --- a/src/status_im/ethereum/encode.cljs +++ b/src/status_im/ethereum/encode.cljs @@ -1,7 +1,5 @@ (ns status-im.ethereum.encode - (:require [status-im.js-dependencies :as dependencies])) - -(def utils dependencies/web3-utils) + (:require ["web3-utils" :as utils])) (defn uint [x] diff --git a/src/status_im/ethereum/ens.cljs b/src/status_im/ethereum/ens.cljs index 07b3afa3d8..7435973158 100644 --- a/src/status_im/ethereum/ens.cljs +++ b/src/status_im/ethereum/ens.cljs @@ -28,8 +28,8 @@ (let [[label remainder] (-> s string/lower-case (string/split #"\." 2))] - (ethereum/sha3 (+ (namehash remainder) - (subs (ethereum/sha3 label) 2))))))) + (ethereum/sha3 (str (namehash remainder) + (subs (ethereum/sha3 label) 2))))))) ;; Registry contract diff --git a/src/status_im/ethereum/macros.clj b/src/status_im/ethereum/macros.clj index 4891fa0dce..54cd3eead2 100644 --- a/src/status_im/ethereum/macros.clj +++ b/src/status_im/ethereum/macros.clj @@ -4,7 +4,7 @@ (defn token-icon-path [network symbol] - (let [s (str "./resources/images/tokens/" (name network) "/" (name symbol) ".png") + (let [s (str "../resources/images/tokens/" (name network) "/" (name symbol) ".png") image (gensym)] (if (.exists (io/file s)) `(let [~image (atom nil)] @@ -16,7 +16,7 @@ (or @~image (reset! ~image - (js/require "./resources/images/tokens/default-token.png")))))))) + (js/require "../resources/images/tokens/default-token.png")))))))) (defn- token->icon [network {:keys [icon symbol]}] ;; Tokens can define their own icons. @@ -33,7 +33,7 @@ tokens)) (defn network->icon [network] - (let [s (str "./resources/images/tokens/" (name network) "/0-native.png") + (let [s (str "../resources/images/tokens/" (name network) "/0-native.png") image (gensym)] (if (.exists (io/file s)) `(let [~image (atom nil)] @@ -45,7 +45,7 @@ (or @~image (reset! ~image - (js/require "./resources/images/tokens/default-native.png")))))))) + (js/require "../resources/images/tokens/default-native.png")))))))) (defmacro resolve-native-currency-icons "In react-native arguments to require must be static strings. diff --git a/src/status_im/ethereum/stateofus.cljs b/src/status_im/ethereum/stateofus.cljs index f5fd0576ae..9febfc1df5 100644 --- a/src/status_im/ethereum/stateofus.cljs +++ b/src/status_im/ethereum/stateofus.cljs @@ -28,7 +28,7 @@ {:mainnet "0xDB5ac1a559b02E12F29fC0eC0e37Be8E046DEF49" ;;NOTE: can be enabled for testing builds ;;:testnet "0x11d9F481effd20D76cEE832559bd9Aca25405841" -}) + }) (defn lower-case? [s] (when s diff --git a/src/status_im/ethereum/tokens.cljs b/src/status_im/ethereum/tokens.cljs index c2762a8ef4..d897d6f4f2 100644 --- a/src/status_im/ethereum/tokens.cljs +++ b/src/status_im/ethereum/tokens.cljs @@ -12,7 +12,7 @@ {:name "Native" :symbol :ETH :decimals 18 - :icon {:source (js/require "./resources/images/tokens/default-native.png")}}))) + :icon {:source (js/require "../resources/images/tokens/default-native.png")}}))) (def all-native-currencies (ethereum.macros/resolve-native-currency-icons diff --git a/src/status_im/events.cljs b/src/status_im/events.cljs index 0e700bcccc..13c02dc572 100644 --- a/src/status_im/events.cljs +++ b/src/status_im/events.cljs @@ -96,7 +96,7 @@ (def CUD-url "https://chaos-unicorn-day.org") (defn open-chaos-unicorn-day-link [] - (.openURL react/linking CUD-url)) + (.openURL ^js react/linking CUD-url)) (handlers/register-handler-fx :multiaccounts.ui/chaos-mode-switched diff --git a/src/status_im/goog/i18n.cljs b/src/status_im/goog/i18n.cljs index a780a723f5..e876e41336 100644 --- a/src/status_im/goog/i18n.cljs +++ b/src/status_im/goog/i18n.cljs @@ -240,118 +240,118 @@ goog.i18n.TimeZone)) (def locales - {"af" goog/i18n.DateTimeSymbols_af - "am" goog/i18n.DateTimeSymbols_am - "ar" goog/i18n.DateTimeSymbols_ar - "ar_DZ" goog/i18n.DateTimeSymbols_ar_DZ - "ar_EG" goog/i18n.DateTimeSymbols_ar_EG - "az" goog/i18n.DateTimeSymbols_az - "be" goog/i18n.DateTimeSymbols_be - "bg" goog/i18n.DateTimeSymbols_bg - "bn" goog/i18n.DateTimeSymbols_bn - "br" goog/i18n.DateTimeSymbols_br - "bs" goog/i18n.DateTimeSymbols_bs - "ca" goog/i18n.DateTimeSymbols_ca - "chr" goog/i18n.DateTimeSymbols_chr - "cs" goog/i18n.DateTimeSymbols_cs - "cy" goog/i18n.DateTimeSymbols_cy - "da" goog/i18n.DateTimeSymbols_da - "de" goog/i18n.DateTimeSymbols_de - "de_AT" goog/i18n.DateTimeSymbols_de_AT - "de_CH" goog/i18n.DateTimeSymbols_de_CH - "el" goog/i18n.DateTimeSymbols_el - "en" goog/i18n.DateTimeSymbols_en - "en_AU" goog/i18n.DateTimeSymbols_en_AU - "en_CA" goog/i18n.DateTimeSymbols_en_CA - "en_GB" goog/i18n.DateTimeSymbols_en_GB - "en_IE" goog/i18n.DateTimeSymbols_en_IE - "en_IN" goog/i18n.DateTimeSymbols_en_IN - "en_ISO" goog/i18n.DateTimeSymbols_en_ISO - "en_SG" goog/i18n.DateTimeSymbols_en_SG - "en_US" goog/i18n.DateTimeSymbols_en_US - "en_ZA" goog/i18n.DateTimeSymbols_en_ZA - "es" goog/i18n.DateTimeSymbols_es - "es_419" goog/i18n.DateTimeSymbols_es_419 - "es_ES" goog/i18n.DateTimeSymbols_es_ES - "es_MX" goog/i18n.DateTimeSymbols_es_MX - "es_US" goog/i18n.DateTimeSymbols_es_US - "et" goog/i18n.DateTimeSymbols_et - "eu" goog/i18n.DateTimeSymbols_eu - "fa" goog/i18n.DateTimeSymbols_fa - "fi" goog/i18n.DateTimeSymbols_fi - "fil" goog/i18n.DateTimeSymbols_fil - "fr" goog/i18n.DateTimeSymbols_fr - "fr_CA" goog/i18n.DateTimeSymbols_fr_CA - "ga" goog/i18n.DateTimeSymbols_ga - "gl" goog/i18n.DateTimeSymbols_gl - "gsw" goog/i18n.DateTimeSymbols_gsw - "gu" goog/i18n.DateTimeSymbols_gu - "haw" goog/i18n.DateTimeSymbols_haw - "he" goog/i18n.DateTimeSymbols_he - "hi" goog/i18n.DateTimeSymbols_hi - "hr" goog/i18n.DateTimeSymbols_hr - "hu" goog/i18n.DateTimeSymbols_hu - "hy" goog/i18n.DateTimeSymbols_hy - "id" goog/i18n.DateTimeSymbols_id - "in" goog/i18n.DateTimeSymbols_in - "is" goog/i18n.DateTimeSymbols_is - "it" goog/i18n.DateTimeSymbols_it - "iw" goog/i18n.DateTimeSymbols_iw - "ja" goog/i18n.DateTimeSymbols_ja - "ka" goog/i18n.DateTimeSymbols_ka - "kk" goog/i18n.DateTimeSymbols_kk - "km" goog/i18n.DateTimeSymbols_km - "kn" goog/i18n.DateTimeSymbols_kn - "ko" goog/i18n.DateTimeSymbols_ko - "ky" goog/i18n.DateTimeSymbols_ky - "ln" goog/i18n.DateTimeSymbols_ln - "lo" goog/i18n.DateTimeSymbols_lo - "lt" goog/i18n.DateTimeSymbols_lt - "lv" goog/i18n.DateTimeSymbols_lv - "mk" goog/i18n.DateTimeSymbols_mk - "ml" goog/i18n.DateTimeSymbols_ml - "mn" goog/i18n.DateTimeSymbols_mn - "mo" goog/i18n.DateTimeSymbols_mo - "mr" goog/i18n.DateTimeSymbols_mr - "ms" goog/i18n.DateTimeSymbols_ms - "mt" goog/i18n.DateTimeSymbols_mt - "my" goog/i18n.DateTimeSymbols_my - "nb" goog/i18n.DateTimeSymbols_nb - "ne" goog/i18n.DateTimeSymbols_ne - "nl" goog/i18n.DateTimeSymbols_nl - "no" goog/i18n.DateTimeSymbols_no - "no_NO" goog/i18n.DateTimeSymbols_no_NO - "or" goog/i18n.DateTimeSymbols_or - "pa" goog/i18n.DateTimeSymbols_pa - "pl" goog/i18n.DateTimeSymbols_pl - "pt" goog/i18n.DateTimeSymbols_pt - "pt_BR" goog/i18n.DateTimeSymbols_pt_BR - "pt_PT" goog/i18n.DateTimeSymbols_pt_PT - "ro" goog/i18n.DateTimeSymbols_ro - "ru" goog/i18n.DateTimeSymbols_ru - "sh" goog/i18n.DateTimeSymbols_sh - "si" goog/i18n.DateTimeSymbols_si - "sk" goog/i18n.DateTimeSymbols_sk - "sl" goog/i18n.DateTimeSymbols_sl - "sq" goog/i18n.DateTimeSymbols_sq - "sr" goog/i18n.DateTimeSymbols_sr - "sr_Latn" goog/i18n.DateTimeSymbols_sr_Latn - "sv" goog/i18n.DateTimeSymbols_sv - "sw" goog/i18n.DateTimeSymbols_sw - "ta" goog/i18n.DateTimeSymbols_ta - "te" goog/i18n.DateTimeSymbols_te - "th" goog/i18n.DateTimeSymbols_th - "tl" goog/i18n.DateTimeSymbols_tl - "tr" goog/i18n.DateTimeSymbols_tr - "uk" goog/i18n.DateTimeSymbols_uk - "ur" goog/i18n.DateTimeSymbols_ur - "uz" goog/i18n.DateTimeSymbols_uz - "vi" goog/i18n.DateTimeSymbols_vi - "zh" goog/i18n.DateTimeSymbols_zh - "zh_CN" goog/i18n.DateTimeSymbols_zh_CN - "zh_HK" goog/i18n.DateTimeSymbols_zh_HK - "zh_TW" goog/i18n.DateTimeSymbols_zh_TW - "zu" goog/i18n.DateTimeSymbols_zu}) + {"af" ^js goog.i18n.DateTimeSymbols_af + "am" ^js goog.i18n.DateTimeSymbols_am + "ar" ^js goog.i18n.DateTimeSymbols_ar + "ar_DZ" ^js goog.i18n.DateTimeSymbols_ar_DZ + "ar_EG" ^js goog.i18n.DateTimeSymbols_ar_EG + "az" ^js goog.i18n.DateTimeSymbols_az + "be" ^js goog.i18n.DateTimeSymbols_be + "bg" ^js goog.i18n.DateTimeSymbols_bg + "bn" ^js goog.i18n.DateTimeSymbols_bn + "br" ^js goog.i18n.DateTimeSymbols_br + "bs" ^js goog.i18n.DateTimeSymbols_bs + "ca" ^js goog.i18n.DateTimeSymbols_ca + "chr" ^js goog.i18n.DateTimeSymbols_chr + "cs" ^js goog.i18n.DateTimeSymbols_cs + "cy" ^js goog.i18n.DateTimeSymbols_cy + "da" ^js goog.i18n.DateTimeSymbols_da + "de" ^js goog.i18n.DateTimeSymbols_de + "de_AT" ^js goog.i18n.DateTimeSymbols_de_AT + "de_CH" ^js goog.i18n.DateTimeSymbols_de_CH + "el" ^js goog.i18n.DateTimeSymbols_el + "en" ^js goog.i18n.DateTimeSymbols_en + "en_AU" ^js goog.i18n.DateTimeSymbols_en_AU + "en_CA" ^js goog.i18n.DateTimeSymbols_en_CA + "en_GB" ^js goog.i18n.DateTimeSymbols_en_GB + "en_IE" ^js goog.i18n.DateTimeSymbols_en_IE + "en_IN" ^js goog.i18n.DateTimeSymbols_en_IN + "en_ISO" ^js goog.i18n.DateTimeSymbols_en_ISO + "en_SG" ^js goog.i18n.DateTimeSymbols_en_SG + "en_US" ^js goog.i18n.DateTimeSymbols_en_US + "en_ZA" ^js goog.i18n.DateTimeSymbols_en_ZA + "es" ^js goog.i18n.DateTimeSymbols_es + "es_419" ^js goog.i18n.DateTimeSymbols_es_419 + "es_ES" ^js goog.i18n.DateTimeSymbols_es_ES + "es_MX" ^js goog.i18n.DateTimeSymbols_es_MX + "es_US" ^js goog.i18n.DateTimeSymbols_es_US + "et" ^js goog.i18n.DateTimeSymbols_et + "eu" ^js goog.i18n.DateTimeSymbols_eu + "fa" ^js goog.i18n.DateTimeSymbols_fa + "fi" ^js goog.i18n.DateTimeSymbols_fi + "fil" ^js goog.i18n.DateTimeSymbols_fil + "fr" ^js goog.i18n.DateTimeSymbols_fr + "fr_CA" ^js goog.i18n.DateTimeSymbols_fr_CA + "ga" ^js goog.i18n.DateTimeSymbols_ga + "gl" ^js goog.i18n.DateTimeSymbols_gl + "gsw" ^js goog.i18n.DateTimeSymbols_gsw + "gu" ^js goog.i18n.DateTimeSymbols_gu + "haw" ^js goog.i18n.DateTimeSymbols_haw + "he" ^js goog.i18n.DateTimeSymbols_he + "hi" ^js goog.i18n.DateTimeSymbols_hi + "hr" ^js goog.i18n.DateTimeSymbols_hr + "hu" ^js goog.i18n.DateTimeSymbols_hu + "hy" ^js goog.i18n.DateTimeSymbols_hy + "id" ^js goog.i18n.DateTimeSymbols_id + "in" ^js goog.i18n.DateTimeSymbols_in + "is" ^js goog.i18n.DateTimeSymbols_is + "it" ^js goog.i18n.DateTimeSymbols_it + "iw" ^js goog.i18n.DateTimeSymbols_iw + "ja" ^js goog.i18n.DateTimeSymbols_ja + "ka" ^js goog.i18n.DateTimeSymbols_ka + "kk" ^js goog.i18n.DateTimeSymbols_kk + "km" ^js goog.i18n.DateTimeSymbols_km + "kn" ^js goog.i18n.DateTimeSymbols_kn + "ko" ^js goog.i18n.DateTimeSymbols_ko + "ky" ^js goog.i18n.DateTimeSymbols_ky + "ln" ^js goog.i18n.DateTimeSymbols_ln + "lo" ^js goog.i18n.DateTimeSymbols_lo + "lt" ^js goog.i18n.DateTimeSymbols_lt + "lv" ^js goog.i18n.DateTimeSymbols_lv + "mk" ^js goog.i18n.DateTimeSymbols_mk + "ml" ^js goog.i18n.DateTimeSymbols_ml + "mn" ^js goog.i18n.DateTimeSymbols_mn + "mo" ^js goog.i18n.DateTimeSymbols_mo + "mr" ^js goog.i18n.DateTimeSymbols_mr + "ms" ^js goog.i18n.DateTimeSymbols_ms + "mt" ^js goog.i18n.DateTimeSymbols_mt + "my" ^js goog.i18n.DateTimeSymbols_my + "nb" ^js goog.i18n.DateTimeSymbols_nb + "ne" ^js goog.i18n.DateTimeSymbols_ne + "nl" ^js goog.i18n.DateTimeSymbols_nl + "no" ^js goog.i18n.DateTimeSymbols_no + "no_NO" ^js goog.i18n.DateTimeSymbols_no_NO + "or" ^js goog.i18n.DateTimeSymbols_or + "pa" ^js goog.i18n.DateTimeSymbols_pa + "pl" ^js goog.i18n.DateTimeSymbols_pl + "pt" ^js goog.i18n.DateTimeSymbols_pt + "pt_BR" ^js goog.i18n.DateTimeSymbols_pt_BR + "pt_PT" ^js goog.i18n.DateTimeSymbols_pt_PT + "ro" ^js goog.i18n.DateTimeSymbols_ro + "ru" ^js goog.i18n.DateTimeSymbols_ru + "sh" ^js goog.i18n.DateTimeSymbols_sh + "si" ^js goog.i18n.DateTimeSymbols_si + "sk" ^js goog.i18n.DateTimeSymbols_sk + "sl" ^js goog.i18n.DateTimeSymbols_sl + "sq" ^js goog.i18n.DateTimeSymbols_sq + "sr" ^js goog.i18n.DateTimeSymbols_sr + "sr_Latn" ^js goog.i18n.DateTimeSymbols_sr_Latn + "sv" ^js goog.i18n.DateTimeSymbols_sv + "sw" ^js goog.i18n.DateTimeSymbols_sw + "ta" ^js goog.i18n.DateTimeSymbols_ta + "te" ^js goog.i18n.DateTimeSymbols_te + "th" ^js goog.i18n.DateTimeSymbols_th + "tl" ^js goog.i18n.DateTimeSymbols_tl + "tr" ^js goog.i18n.DateTimeSymbols_tr + "uk" ^js goog.i18n.DateTimeSymbols_uk + "ur" ^js goog.i18n.DateTimeSymbols_ur + "uz" ^js goog.i18n.DateTimeSymbols_uz + "vi" ^js goog.i18n.DateTimeSymbols_vi + "zh" ^js goog.i18n.DateTimeSymbols_zh + "zh_CN" ^js goog.i18n.DateTimeSymbols_zh_CN + "zh_HK" ^js goog.i18n.DateTimeSymbols_zh_HK + "zh_TW" ^js goog.i18n.DateTimeSymbols_zh_TW + "zu" ^js goog.i18n.DateTimeSymbols_zu}) ;; xx-YY locale, xx locale or en fallback (defn locale-symbols [locale-name] @@ -359,90 +359,88 @@ loc (let [name-first (string/replace (or locale-name "") #"-.*$" "") loc (get locales name-first)] - (or loc goog/i18n.DateTimeSymbols_en)))) + (or loc goog.i18n.DateTimeSymbols_en)))) ;; get formatter for current locale symbols and format function (defn mk-fmt [locale format-fn] (let [locsym (locale-symbols locale)] - (goog/i18n.DateTimeFormat. (format-fn locsym) locsym))) + (goog.i18n.DateTimeFormat. (format-fn locsym) locsym))) (defn format-currency + "Formats an amount of a currency based on the currency pattern + If currency-symbol? is false, the currency symbol is excluded from the + formatting" ([value currency-code] (format-currency value currency-code true)) ([value currency-code currency-symbol?] - (.addTier2Support goog/i18n.currency) - (let [currency-code-to-nfs-map {"ZAR" goog/i18n.NumberFormatSymbols_af - "ETB" goog/i18n.NumberFormatSymbols_am - "EGP" goog/i18n.NumberFormatSymbols_ar - "DZD" goog/i18n.NumberFormatSymbols_ar_DZ - "AZN" goog/i18n.NumberFormatSymbols_az - "BYN" goog/i18n.NumberFormatSymbols_be - "BGN" goog/i18n.NumberFormatSymbols_bg - "BDT" goog/i18n.NumberFormatSymbols_bn - "EUR" goog/i18n.NumberFormatSymbols_br - "BAM" goog/i18n.NumberFormatSymbols_bs - "USD" goog/i18n.NumberFormatSymbols_en - "CZK" goog/i18n.NumberFormatSymbols_cs - "GBP" goog/i18n.NumberFormatSymbols_cy - "DKK" goog/i18n.NumberFormatSymbols_da - "CHF" goog/i18n.NumberFormatSymbols_de_CH - "AUD" goog/i18n.NumberFormatSymbols_en_AU - "CAD" goog/i18n.NumberFormatSymbols_en_CA - "INR" goog/i18n.NumberFormatSymbols_en_IN - "SGD" goog/i18n.NumberFormatSymbols_en_SG - "MXN" goog/i18n.NumberFormatSymbols_es_419 - "IRR" goog/i18n.NumberFormatSymbols_fa - "PHP" goog/i18n.NumberFormatSymbols_fil - "ILS" goog/i18n.NumberFormatSymbols_he - "HRK" goog/i18n.NumberFormatSymbols_hr - "HUF" goog/i18n.NumberFormatSymbols_hu - "AMD" goog/i18n.NumberFormatSymbols_hy - "IDR" goog/i18n.NumberFormatSymbols_id - "ISK" goog/i18n.NumberFormatSymbols_is - "JPY" goog/i18n.NumberFormatSymbols_ja - "GEL" goog/i18n.NumberFormatSymbols_ka - "KZT" goog/i18n.NumberFormatSymbols_kk - "KHR" goog/i18n.NumberFormatSymbols_km - "KRW" goog/i18n.NumberFormatSymbols_ko - "KGS" goog/i18n.NumberFormatSymbols_ky - "CDF" goog/i18n.NumberFormatSymbols_ln - "LAK" goog/i18n.NumberFormatSymbols_lo - "MKD" goog/i18n.NumberFormatSymbols_mk - "MNT" goog/i18n.NumberFormatSymbols_mn - "MDL" goog/i18n.NumberFormatSymbols_mo - "MYR" goog/i18n.NumberFormatSymbols_ms - "MMK" goog/i18n.NumberFormatSymbols_my - "NOK" goog/i18n.NumberFormatSymbols_nb - "NPR" goog/i18n.NumberFormatSymbols_ne - "PLN" goog/i18n.NumberFormatSymbols_pl - "BRL" goog/i18n.NumberFormatSymbols_pt - "RON" goog/i18n.NumberFormatSymbols_ro - "RUB" goog/i18n.NumberFormatSymbols_ru - "RSD" goog/i18n.NumberFormatSymbols_sh - "LKR" goog/i18n.NumberFormatSymbols_si - "ALL" goog/i18n.NumberFormatSymbols_sq - "SEK" goog/i18n.NumberFormatSymbols_sv - "TZS" goog/i18n.NumberFormatSymbols_sw - "THB" goog/i18n.NumberFormatSymbols_th - "TRY" goog/i18n.NumberFormatSymbols_tr - "UAH" goog/i18n.NumberFormatSymbols_uk - "PKR" goog/i18n.NumberFormatSymbols_ur - "UZS" goog/i18n.NumberFormatSymbols_uz - "VND" goog/i18n.NumberFormatSymbols_vi - "CNY" goog/i18n.NumberFormatSymbols_zh - "HKD" goog/i18n.NumberFormatSymbols_zh_HK - "TWD" goog/i18n.NumberFormatSymbols_zh_TW} + (.addTier2Support ^js goog.i18n.currency) + (let [currency-code-to-nfs-map {"ZAR" ^js goog.i18n.NumberFormatSymbols_af + "ETB" ^js goog.i18n.NumberFormatSymbols_am + "EGP" ^js goog.i18n.NumberFormatSymbols_ar + "DZD" ^js goog.i18n.NumberFormatSymbols_ar_DZ + "AZN" ^js goog.i18n.NumberFormatSymbols_az + "BYN" ^js goog.i18n.NumberFormatSymbols_be + "BGN" ^js goog.i18n.NumberFormatSymbols_bg + "BDT" ^js goog.i18n.NumberFormatSymbols_bn + "EUR" ^js goog.i18n.NumberFormatSymbols_br + "BAM" ^js goog.i18n.NumberFormatSymbols_bs + "USD" ^js goog.i18n.NumberFormatSymbols_en + "CZK" ^js goog.i18n.NumberFormatSymbols_cs + "GBP" ^js goog.i18n.NumberFormatSymbols_cy + "DKK" ^js goog.i18n.NumberFormatSymbols_da + "CHF" ^js goog.i18n.NumberFormatSymbols_de_CH + "AUD" ^js goog.i18n.NumberFormatSymbols_en_AU + "CAD" ^js goog.i18n.NumberFormatSymbols_en_CA + "INR" ^js goog.i18n.NumberFormatSymbols_en_IN + "SGD" ^js goog.i18n.NumberFormatSymbols_en_SG + "MXN" ^js goog.i18n.NumberFormatSymbols_es_419 + "IRR" ^js goog.i18n.NumberFormatSymbols_fa + "PHP" ^js goog.i18n.NumberFormatSymbols_fil + "ILS" ^js goog.i18n.NumberFormatSymbols_he + "HRK" ^js goog.i18n.NumberFormatSymbols_hr + "HUF" ^js goog.i18n.NumberFormatSymbols_hu + "AMD" ^js goog.i18n.NumberFormatSymbols_hy + "IDR" ^js goog.i18n.NumberFormatSymbols_id + "ISK" ^js goog.i18n.NumberFormatSymbols_is + "JPY" ^js goog.i18n.NumberFormatSymbols_ja + "GEL" ^js goog.i18n.NumberFormatSymbols_ka + "KZT" ^js goog.i18n.NumberFormatSymbols_kk + "KHR" ^js goog.i18n.NumberFormatSymbols_km + "KRW" ^js goog.i18n.NumberFormatSymbols_ko + "KGS" ^js goog.i18n.NumberFormatSymbols_ky + "CDF" ^js goog.i18n.NumberFormatSymbols_ln + "LAK" ^js goog.i18n.NumberFormatSymbols_lo + "MKD" ^js goog.i18n.NumberFormatSymbols_mk + "MNT" ^js goog.i18n.NumberFormatSymbols_mn + "MDL" ^js goog.i18n.NumberFormatSymbols_mo + "MYR" ^js goog.i18n.NumberFormatSymbols_ms + "MMK" ^js goog.i18n.NumberFormatSymbols_my + "NOK" ^js goog.i18n.NumberFormatSymbols_nb + "NPR" ^js goog.i18n.NumberFormatSymbols_ne + "PLN" ^js goog.i18n.NumberFormatSymbols_pl + "BRL" ^js goog.i18n.NumberFormatSymbols_pt + "RON" ^js goog.i18n.NumberFormatSymbols_ro + "RUB" ^js goog.i18n.NumberFormatSymbols_ru + "RSD" ^js goog.i18n.NumberFormatSymbols_sh + "LKR" ^js goog.i18n.NumberFormatSymbols_si + "ALL" ^js goog.i18n.NumberFormatSymbols_sq + "SEK" ^js goog.i18n.NumberFormatSymbols_sv + "TZS" ^js goog.i18n.NumberFormatSymbols_sw + "THB" ^js goog.i18n.NumberFormatSymbols_th + "TRY" ^js goog.i18n.NumberFormatSymbols_tr + "UAH" ^js goog.i18n.NumberFormatSymbols_uk + "PKR" ^js goog.i18n.NumberFormatSymbols_ur + "UZS" ^js goog.i18n.NumberFormatSymbols_uz + "VND" ^js goog.i18n.NumberFormatSymbols_vi + "CNY" ^js goog.i18n.NumberFormatSymbols_zh + "HKD" ^js goog.i18n.NumberFormatSymbols_zh_HK + "TWD" ^js goog.i18n.NumberFormatSymbols_zh_TW} nfs (or (get currency-code-to-nfs-map currency-code) - goog/i18n.NumberFormatSymbols_en)] - (set! goog/i18n.NumberFormatSymbols - (if currency-symbol? - nfs - (-> nfs - (js->clj :keywordize-keys true) - ;; Remove any currency symbol placeholders in the pattern - (update :CURRENCY_PATTERN (fn [pat] - (string/replace pat #"\s*¤\s*" ""))) - clj->js))) + ^js goog.i18n.NumberFormatSymbols_en)] (.format - (new goog/i18n.NumberFormat goog/i18n.NumberFormat.Format.CURRENCY currency-code) + ^js (new ^js goog.i18n.NumberFormat + (let [pattern (.-CURRENCY_PATTERN ^js nfs)] + (if currency-symbol? + pattern + (string/replace pattern #"\s*¤\s*" "")))) value)))) diff --git a/src/status_im/goog/i18n_module.cljs b/src/status_im/goog/i18n_module.cljs deleted file mode 100644 index fec8a1a439..0000000000 --- a/src/status_im/goog/i18n_module.cljs +++ /dev/null @@ -1,15 +0,0 @@ -(ns status-im.goog.i18n-module - (:require-macros [status-im.modules :as modules])) - -(modules/defmodule i18n - {:mk-fmt 'status-im.goog.i18n/mk-fmt - :format-currency 'status-im.goog.i18n/format-currency}) - -(defn mk-fmt [locale format-fn] - ((get-symbol :mk-fmt) locale format-fn)) - -(defn format-currency - ([value currency-code] - ((get-symbol :format-currency) value currency-code true)) - ([value currency-code currency-symbol?] - ((get-symbol :format-currency) value currency-code currency-symbol?))) diff --git a/src/status_im/hardwallet/card.cljs b/src/status_im/hardwallet/card.cljs index d66f58b3bf..d2b1061e29 100644 --- a/src/status_im/hardwallet/card.cljs +++ b/src/status_im/hardwallet/card.cljs @@ -4,10 +4,11 @@ [status-im.hardwallet.real-keycard :as real-keycard] [status-im.hardwallet.simulated-keycard :as simulated-keycard] [status-im.hardwallet.ios-keycard :as ios-keycard] - [status-im.utils.platform :as platform] [taoensso.timbre :as log] [re-frame.core :as re-frame] - [status-im.utils.config :as config])) + [status-im.utils.config :as config] + [status-im.utils.platform :as platform] + ["react-native" :as react-native])) (defonce card (if config/keycard-test-menu-enabled? (simulated-keycard/SimulatedKeycard.) @@ -71,7 +72,7 @@ :on-nfc-disabled #(re-frame/dispatch [:hardwallet.callback/check-nfc-enabled-success false])})) -(defn- error-object->map [object] +(defn- error-object->map [^js object] {:code (.-code object) :error (.-message object)}) diff --git a/src/status_im/hardwallet/core.cljs b/src/status_im/hardwallet/core.cljs index 95eeb6c62e..9912e859ef 100644 --- a/src/status_im/hardwallet/core.cljs +++ b/src/status_im/hardwallet/core.cljs @@ -1,6 +1,5 @@ (ns status-im.hardwallet.core - (:require [re-frame.core :as re-frame] - [status-im.multiaccounts.create.core :as multiaccounts.create] + (:require [status-im.multiaccounts.create.core :as multiaccounts.create] [status-im.i18n :as i18n] [status-im.ui.screens.navigation :as navigation] [status-im.utils.datetime :as utils.datetime] @@ -490,4 +489,3 @@ {:events [:hardwallet.callback/on-register-card-events]} [{:keys [db]} listeners] {:db (update-in db [:hardwallet :listeners] merge listeners)}) - diff --git a/src/status_im/hardwallet/fx.cljs b/src/status_im/hardwallet/fx.cljs index 9532a8f844..a90b484602 100644 --- a/src/status_im/hardwallet/fx.cljs +++ b/src/status_im/hardwallet/fx.cljs @@ -3,8 +3,8 @@ [status-im.utils.types :as types] [status-im.hardwallet.card :as card] [status-im.native-module.core :as status] - [status-im.react-native.js-dependencies :as js-dependencies] - [status-im.utils.platform :as platform])) + [status-im.utils.platform :as platform] + ["react-native" :refer (AsyncStorage BackHandler)])) (re-frame/reg-fx :hardwallet/get-application-info @@ -106,14 +106,14 @@ (re-frame/reg-fx :hardwallet/persist-pairings (fn [pairings] - (.. js-dependencies/async-storage + (.. AsyncStorage (setItem "status-keycard-pairings" (types/serialize pairings))))) (re-frame/reg-fx :hardwallet/retrieve-pairings (fn [] (when platform/android? - (.. js-dependencies/async-storage + (.. AsyncStorage (getItem "status-keycard-pairings") (then #(re-frame/dispatch [:hardwallet.callback/on-retrieve-pairings-success (types/deserialize %)])))))) @@ -121,18 +121,18 @@ ;; TODO: Should act differently on different views (re-frame/reg-fx :hardwallet/listen-to-hardware-back-button - ;;NOTE: not done in view because effect should happen under different conditions and is not dependent on + ;;NOTE: not done in view because effect should happen under different conditions and is not dependent on ;;particular screen to be loaded. An fx is easier to re-use and test. (fn [] (re-frame/dispatch [:hardwallet/add-listener-to-hardware-back-button - (.addEventListener js-dependencies/back-handler "hardwareBackPress" + (.addEventListener BackHandler "hardwareBackPress" (fn [] (re-frame/dispatch [:hardwallet/back-button-pressed]) true))]))) (re-frame/reg-fx :hardwallet/remove-listener-to-hardware-back-button - (fn [listener] + (fn [^js listener] (.remove listener))) (re-frame/reg-fx diff --git a/src/status_im/hardwallet/onboarding.cljs b/src/status_im/hardwallet/onboarding.cljs index 01b06f313c..082aa311d9 100644 --- a/src/status_im/hardwallet/onboarding.cljs +++ b/src/status_im/hardwallet/onboarding.cljs @@ -82,7 +82,7 @@ (fx/defn recovery-phrase-learn-more-pressed {:events [:keycard.onboarding.recovery-phrase.ui/learn-more-pressed]} [_] - (.openURL react/linking "https://keycard.status.im")) + (.openURL ^js react/linking "https://keycard.status.im")) (fx/defn recovery-phrase-next-pressed {:events [:keycard.onboarding.recovery-phrase.ui/next-pressed diff --git a/src/status_im/hardwallet/real_keycard.cljs b/src/status_im/hardwallet/real_keycard.cljs index b2a5cc4e29..b18e7ab19d 100644 --- a/src/status_im/hardwallet/real_keycard.cljs +++ b/src/status_im/hardwallet/real_keycard.cljs @@ -1,11 +1,11 @@ (ns status-im.hardwallet.real-keycard - (:require [status-im.react-native.js-dependencies :as js-dependencies] - [status-im.hardwallet.keycard :as keycard] + (:require ["react-native-status-keycard" :default status-keycard] + ["react-native" :as rn] + [status-im.utils.types :as types] [status-im.native-module.core :as status] - [status-im.utils.types :as types])) + [status-im.hardwallet.keycard :as keycard])) -(defonce status-keycard (.-default js-dependencies/status-keycard)) -(defonce event-emitter (.-DeviceEventEmitter js-dependencies/react-native)) +(defonce event-emitter (.-DeviceEventEmitter rn)) (defonce active-listeners (atom [])) (defn check-nfc-support [{:keys [on-success]}] @@ -23,24 +23,30 @@ (defn remove-event-listeners [] (doseq [event ["keyCardOnConnected" "keyCardOnDisconnected"]] - (.removeAllListeners event-emitter event))) + (.removeAllListeners ^js event-emitter event))) -(defn remove-event-listener [event] +(defn remove-event-listener + [^js event] (.remove event)) -(defn on-card-connected [callback] - (.addListener event-emitter "keyCardOnConnected" callback)) +(defn on-card-connected + [callback] + (.addListener ^js event-emitter "keyCardOnConnected" callback)) -(defn on-card-disconnected [callback] - (.addListener event-emitter "keyCardOnDisconnected" callback)) +(defn on-card-disconnected + [callback] + (.addListener ^js event-emitter "keyCardOnDisconnected" callback)) -(defn on-nfc-enabled [callback] - (.addListener event-emitter "keyCardOnNFCEnabled" callback)) +(defn on-nfc-enabled + [callback] + (.addListener ^js event-emitter "keyCardOnNFCEnabled" callback)) -(defn on-nfc-disabled [callback] - (.addListener event-emitter "keyCardOnNFCDisabled" callback)) +(defn on-nfc-disabled + [callback] + (.addListener ^js event-emitter "keyCardOnNFCDisabled" callback)) -(defn register-card-events [args] +(defn register-card-events + [args] (doseq [listener @active-listeners] (remove-event-listener listener)) (reset! active-listeners @@ -49,7 +55,8 @@ (on-nfc-enabled (:on-nfc-enabled args)) (on-nfc-disabled (:on-nfc-disabled args))])) -(defn get-application-info [{:keys [pairing on-success on-failure]}] +(defn get-application-info + [{:keys [pairing on-success on-failure]}] (.. status-keycard (getApplicationInfo (str pairing)) (then on-success) diff --git a/src/status_im/hardwallet/sign.cljs b/src/status_im/hardwallet/sign.cljs index 1a7da40c06..96cd9b25fa 100644 --- a/src/status_im/hardwallet/sign.cljs +++ b/src/status_im/hardwallet/sign.cljs @@ -116,7 +116,7 @@ {:events [:hardwallet/fetch-currency-decimals-on-success]} [{:keys [db] :as cofx} decimals] {:db (update-in db [:signing/sign :formatted-data :message] - #(assoc % :formatted-amount (.dividedBy (money/bignumber (:amount %)) + #(assoc % :formatted-amount (.dividedBy ^js (money/bignumber (:amount %)) (money/bignumber (money/from-decimal decimals)))))}) (fx/defn store-hash-and-sign-typed diff --git a/src/status_im/hardwallet/simulated_keycard.cljs b/src/status_im/hardwallet/simulated_keycard.cljs index 66f6ade53b..b9c4c403e8 100644 --- a/src/status_im/hardwallet/simulated_keycard.cljs +++ b/src/status_im/hardwallet/simulated_keycard.cljs @@ -77,8 +77,8 @@ (defn get-application-info [{:keys [on-success]}] (later #(on-success (get @state :application-info)))) -(defn install-applet [args]) -(defn install-cash-applet [args]) +(defn install-applet [_]) +(defn install-cash-applet [_]) (def kk1-password "6d9ZHjn94kFP4bPm") @@ -96,7 +96,7 @@ :puk "320612366918" :pin pin}))) -(defn install-applet-and-init-card [args]) +(defn install-applet-and-init-card [_]) (def kk1-pair "ADEol+GCD67EO7zU6ko0DNK7XrNs9w2+h9GxcibNY4yf") @@ -134,20 +134,20 @@ :wallet-address (:address wallet) :wallet-public-key (:public-key wallet)}))))) -(defn unblock-pin [args]) +(defn unblock-pin [_]) (defn verify-pin [{:keys [pin pairing on-success]}] (when (and (= pairing kk1-pair) (= pin (get @state :pin))) (later #(on-success 3)))) -(defn change-pin [args]) -(defn unpair [args]) -(defn delete [args]) -(defn remove-key [args]) -(defn remove-key-with-unpair [args]) -(defn export-key [args]) -(defn unpair-and-delete [args]) +(defn change-pin [_]) +(defn unpair [_]) +(defn delete [_]) +(defn remove-key [_]) +(defn remove-key-with-unpair [_]) +(defn export-key [_]) +(defn unpair-and-delete [_]) (defn get-keys [{:keys [on-success pin]}] ;;TODO(rasom): verify password before callback (later @@ -155,8 +155,8 @@ {:key-uid (get-in @state [:application-info :key-uid]) :encryption-public-key (ethereum/sha3 pin)}))) -(defn sign [args]) -(defn sign-typed-data [args]) +(defn sign [_]) +(defn sign-typed-data [_]) (defn save-multiaccount-and-login [{:keys [multiaccount-data password settings node-config accounts-data]}] diff --git a/src/status_im/i18n.cljs b/src/status_im/i18n.cljs index 9c574b0fb9..809975f216 100644 --- a/src/status_im/i18n.cljs +++ b/src/status_im/i18n.cljs @@ -1,27 +1,27 @@ (ns status-im.i18n (:require - [status-im.react-native.js-dependencies :as rn-dependencies] [clojure.string :as string] + ["i18n-js" :as i18n] [status-im.i18n-resources :as i18n-resources] - [status-im.goog.i18n-module :as goog.i18n])) + [status-im.goog.i18n :as goog.i18n])) -(set! (.-locale rn-dependencies/i18n) (name i18n-resources/default-device-language)) -(set! (.-fallbacks rn-dependencies/i18n) true) -(set! (.-defaultSeparator rn-dependencies/i18n) "/") +(set! (.-locale i18n) (name i18n-resources/default-device-language)) +(set! (.-fallbacks i18n) true) +(set! (.-defaultSeparator i18n) "/") -(set! (.-translations rn-dependencies/i18n) +(set! (.-translations i18n) (clj->js i18n-resources/translations-by-locale)) (defn set-language [lang] (i18n-resources/load-language lang) - (set! (.-locale rn-dependencies/i18n) lang)) + (set! (.-locale i18n) lang)) ;;:zh, :zh-hans-xx, :zh-hant-xx have been added until this bug will be fixed https://github.com/fnando/i18n-js/issues/460 (def delimeters "This function is a hack: mobile Safari doesn't support toLocaleString(), so we need to pass this map to WKWebView to make number formatting work." - (let [n (.toLocaleString (js/Number 1000.1)) + (let [n (.toLocaleString ^js (js/Number 1000.1)) delimiter? (= (count n) 7)] (if delimiter? {:delimiter (subs n 1 2) @@ -32,7 +32,7 @@ (defn label-number [number] (when number (let [{:keys [delimiter separator]} delimeters] - (.toNumber rn-dependencies/i18n + (.toNumber i18n (string/replace number #"," ".") (clj->js {:precision 10 :strip_insignificant_zeros true @@ -48,17 +48,17 @@ (defn label ([path] (label path {})) ([path options] - (if (exists? rn-dependencies/i18n.t) + (if (exists? (.t i18n)) (let [options (update options :amount label-number)] - (.t rn-dependencies/i18n (name path) (clj->js (label-options options)))) + (.t i18n (name path) (clj->js (label-options options)))) (name path)))) (defn label-pluralize [count path & options] - (if (exists? rn-dependencies/i18n.t) - (.p rn-dependencies/i18n count (name path) (clj->js options)) + (if (exists? (.t i18n)) + (.p i18n count (name path) (clj->js options)) (name path))) (def locale - (.-locale rn-dependencies/i18n)) + (.-locale i18n)) (def format-currency goog.i18n/format-currency) diff --git a/dev/status_im/i18n_resources.cljs b/src/status_im/i18n_resources.cljs similarity index 69% rename from dev/status_im/i18n_resources.cljs rename to src/status_im/i18n_resources.cljs index 0944395be8..edc4deea30 100644 --- a/dev/status_im/i18n_resources.cljs +++ b/src/status_im/i18n_resources.cljs @@ -1,11 +1,11 @@ (ns status-im.i18n-resources (:require-macros [status-im.i18n :as i18n]) - (:require [status-im.react-native.js-dependencies :as rn-dependencies] - [status-im.utils.types :as types] - [clojure.string :as string])) + (:require [status-im.utils.types :as types] + [clojure.string :as string] + ["react-native-languages" :default react-native-languages])) (def default-device-language - (keyword (.-language rn-dependencies/react-native-languages))) + (keyword (.-language react-native-languages))) ;; translations (def translations-by-locale diff --git a/src/status_im/init/core.cljs b/src/status_im/init/core.cljs index e661cff3cf..a764db6e32 100644 --- a/src/status_im/init/core.cljs +++ b/src/status_im/init/core.cljs @@ -5,21 +5,12 @@ [status-im.multiaccounts.login.core :as multiaccounts.login] [status-im.native-module.core :as status] [status-im.network.net-info :as network] - [status-im.react-native.js-dependencies :as rn-dependencies] [status-im.ui.components.colors :as colors] [status-im.ui.screens.db :refer [app-db]] [status-im.utils.fx :as fx] [status-im.utils.platform :as platform] [status-im.utils.theme :as theme])) -(defn restore-native-settings! [] - (when platform/desktop? - (.getValue rn-dependencies/desktop-config "logging_enabled" - #(re-frame/dispatch [:set-in [:desktop/desktop :logging-enabled] - (if (boolean? %) - % - (cljs.reader/read-string %))])))) - (fx/defn initialize-app-db "Initialize db to initial state" [{{:keys [hardwallet initial-props desktop/desktop @@ -67,7 +58,6 @@ {:get-supported-biometric-auth nil ::init-theme nil ::init-keystore nil - ::restore-native-settings nil ::open-multiaccounts #(re-frame/dispatch [::initialize-multiaccounts % {:logout? false}]) :ui/listen-to-window-dimensions-change nil ::network/listen-to-network-info nil @@ -77,10 +67,6 @@ :hardwallet/retrieve-pairings nil} (initialize-app-db))) -(re-frame/reg-fx - ::restore-native-settings - restore-native-settings!) - (re-frame/reg-fx ::open-multiaccounts (fn [callback] diff --git a/src/status_im/ios/core.cljs b/src/status_im/ios/core.cljs index 3b01d97107..38bdfd04ba 100644 --- a/src/status_im/ios/core.cljs +++ b/src/status_im/ios/core.cljs @@ -1,55 +1,5 @@ (ns status-im.ios.core - (:require [reagent.core :as reagent] - [re-frame.core :refer [subscribe dispatch dispatch-sync]] - status-im.utils.db - status-im.ui.screens.db - status-im.ui.screens.events - status-im.subs - [status-im.react-native.js-dependencies :as rn-dependencies] - [oops.core :refer [ocall]] - [status-im.ui.screens.views :as views] - [status-im.ui.components.react :as react] - [status-im.core :as core] - [status-im.utils.snoopy :as snoopy] - [status-im.i18n :as i18n])) - -(defn app-state-change-handler [state] - (dispatch [:app-state-change state])) - -(defn on-languages-change [event] - (i18n/set-language (.-language event))) - -(defn on-shake [] - (dispatch [:shake-event])) - -(defn app-root [props] - (reagent/create-class - {:component-did-mount - (fn [this] - (.addListener react/keyboard - "keyboardWillShow" - (fn [e] - (let [h (.. e -endCoordinates -height)] - (dispatch-sync [:set :keyboard-height h]) - (dispatch-sync [:set :keyboard-max-height h])))) - (.addListener react/keyboard - "keyboardWillHide" - #(dispatch-sync [:set :keyboard-height 0])) - (.hide react/splash-screen) - (.addEventListener react/app-state "change" app-state-change-handler) - (.addEventListener rn-dependencies/react-native-languages "change" on-languages-change) - (.addEventListener rn-dependencies/react-native-shake - "ShakeEvent" - on-shake) - (dispatch [:set-initial-props (reagent/props this)])) - :component-will-unmount - (fn [] - (.removeEventListener react/app-state "change" app-state-change-handler) - (.removeEventListener rn-dependencies/react-native-languages "change" on-languages-change)) - :display-name "root" - :reagent-render views/main})) + (:require [status-im.core :as core])) (defn init [] - (ocall rn-dependencies/react-native-screens "enableScreens") - (core/init app-root) - (snoopy/subscribe!)) + (core/init core/root)) diff --git a/src/status_im/ios/platform.cljs b/src/status_im/ios/platform.cljs index af1ba0edd6..2a0a32a973 100644 --- a/src/status_im/ios/platform.cljs +++ b/src/status_im/ios/platform.cljs @@ -1,12 +1,12 @@ (ns status-im.ios.platform - (:require [status-im.react-native.js-dependencies :as rn-dependencies])) + (:require ["react-native" :refer (Dimensions)])) ;; iPhone X dimensions (def x-height 812) (def xs-height 896) (defn iphone-x-dimensions? [] - (let [{:keys [width height]} (-> (.-Dimensions rn-dependencies/react-native) + (let [{:keys [width height]} (-> Dimensions (.get "window") (js->clj :keywordize-keys true))] (or (= height x-height) (= height xs-height)))) diff --git a/src/status_im/js_dependencies.cljs b/src/status_im/js_dependencies.cljs deleted file mode 100644 index 9617f8f9b4..0000000000 --- a/src/status_im/js_dependencies.cljs +++ /dev/null @@ -1,9 +0,0 @@ -(ns status-im.js-dependencies) - -(def Chance (js/require "chance")) -(def emojis (js/require "emojilib")) -(def phishing-detect (js/require "eth-phishing-detect")) -(def BigNumber (js/require "bignumber.js")) -(def web3-utils (js/require "web3-utils")) -(def hi-base32 (js/require "hi-base32")) -(def rb-tree (js/require "functional-red-black-tree")) diff --git a/src/status_im/log_level/core.cljs b/src/status_im/log_level/core.cljs index 267b55e1fd..f105c6bb7d 100644 --- a/src/status_im/log_level/core.cljs +++ b/src/status_im/log_level/core.cljs @@ -1,7 +1,6 @@ (ns status-im.log-level.core (:require [re-frame.core :as re-frame] [status-im.multiaccounts.update.core :as multiaccounts.update] - [status-im.react-native.js-dependencies :as rn-dependencies] [status-im.node.core :as node] [status-im.i18n :as i18n] [status-im.utils.fx :as fx])) diff --git a/src/status_im/modules.clj b/src/status_im/modules.clj deleted file mode 100644 index d30b0dfac2..0000000000 --- a/src/status_im/modules.clj +++ /dev/null @@ -1,56 +0,0 @@ -(ns status-im.modules) - -(def prod? (= "prod" (System/getenv "BUILD_ENV"))) - -(defn prepare-symbols [symbols] - (mapcat (fn [[k v]] - [k `(resolve ~v)]) - symbols)) - -(defn require-namespaces [symbols] - (distinct - (map (fn [[_ [_ v]]] - `(quote ~(symbol (namespace v)))) - symbols))) - -(defmacro defmodule [module-name symbols] - (let [module (gensym "module") - loaded? (gensym "loaded?") - path (str "status-modules/cljs/" module-name ".js") - k (gensym) - get-symbol 'get-symbol - load-module 'load-module - load-module-later 'load-module-later] - (if prod? - `(do - (defonce ~loaded? (atom false)) - (defonce ~module (atom {})) - (defn ~load-module [] - (when-not @~loaded? - (js/eval (js/require ~path)) - (reset! ~module - (hash-map ~@(prepare-symbols symbols))) - (reset! ~loaded? true))) - (defn ~load-module-later [] - ((resolve 'status-im.utils.utils/set-timeout) - (fn [] (~load-module)) - 10)) - (defn ~get-symbol [~k] - (~load-module) - (get @~module ~k))) - `(do - (require ~@(require-namespaces symbols)) - (defonce ~loaded? (atom false)) - (defonce ~module (atom {})) - (defn ~load-module [] - (when-not @~loaded? - (reset! ~module - (hash-map ~@(prepare-symbols symbols))) - (reset! ~loaded? true))) - (defn ~load-module-later [] - ((resolve 'status-im.utils.utils/set-timeout) - (fn [] (~load-module)) - 10)) - (defn ~get-symbol [~k] - (~load-module) - (get @~module ~k)))))) diff --git a/src/status_im/multiaccounts/biometric/core.cljs b/src/status_im/multiaccounts/biometric/core.cljs index 52a45dfe21..6feee8f367 100644 --- a/src/status_im/multiaccounts/biometric/core.cljs +++ b/src/status_im/multiaccounts/biometric/core.cljs @@ -8,11 +8,11 @@ [status-im.utils.platform :as platform] [status-im.ui.components.colors :as colors] [status-im.i18n :as i18n] - [status-im.react-native.js-dependencies :as js-dependencies] [re-frame.core :as re-frame] [status-im.ethereum.json-rpc :as json-rpc] [status-im.utils.keychain.core :as keychain] - [taoensso.timbre :as log])) + [taoensso.timbre :as log] + ["react-native-touch-id" :default touchid])) ;; currently, for android, react-native-touch-id ;; is not returning supported biometric type @@ -77,7 +77,7 @@ :bioauth-message (get-error-message code)})) (defn- do-get-supported [callback] - (-> (.isSupported js-dependencies/touchid) + (-> (.isSupported touchid) (.then #(callback (or (keyword %) android-default-support))) (.catch #(callback nil)))) @@ -94,7 +94,7 @@ (authenticate-fx cb nil)) ([cb {:keys [reason ios-fallback-label]}] (log/debug "[biometric] authenticate-fx") - (-> (.authenticate js-dependencies/touchid reason (authenticate-options ios-fallback-label)) + (-> (.authenticate touchid reason (authenticate-options ios-fallback-label)) (.then #(cb success-result)) (.catch #(cb (generate-error-result %)))))) diff --git a/src/status_im/multiaccounts/db.cljs b/src/status_im/multiaccounts/db.cljs index c89a25bb6d..97f40ba856 100644 --- a/src/status_im/multiaccounts/db.cljs +++ b/src/status_im/multiaccounts/db.cljs @@ -1,6 +1,5 @@ (ns status-im.multiaccounts.db (:require status-im.utils.db - status-im.network.module status-im.ui.screens.bootnodes-settings.db [cljs.spec.alpha :as spec] [status-im.constants :as const])) diff --git a/src/status_im/native_module/core.cljs b/src/status_im/native_module/core.cljs index 783efb15e9..bc531b36d0 100644 --- a/src/status_im/native_module/core.cljs +++ b/src/status_im/native_module/core.cljs @@ -1,47 +1,47 @@ (ns status-im.native-module.core (:require [clojure.string :as string] [re-frame.core :as re-frame] - [status_im.utils.db :as utils.db] - [status-im.react-native.js-dependencies :as rn-dependencies] + [status-im.utils.db :as utils.db] [status-im.ui.components.react :as react] [status-im.utils.platform :as platform] [status-im.utils.types :as types] - [taoensso.timbre :as log])) + [taoensso.timbre :as log] + ["react-native" :as react-native])) (defn status [] - (when (exists? (.-NativeModules rn-dependencies/react-native)) - (.-Status (.-NativeModules rn-dependencies/react-native)))) + (when (exists? (.-NativeModules react-native)) + (.-Status ^js (.-NativeModules react-native)))) (def adjust-resize 16) (defn clear-web-data [] (log/debug "[native-module] clear-web-data") (when (status) - (.clearCookies (status)) - (.clearStorageAPIs (status)))) + (.clearCookies ^js (status)) + (.clearStorageAPIs ^js (status)))) (defn init-keystore [] (log/debug "[native-module] init-keystore") - (.initKeystore (status))) + (.initKeystore ^js (status))) (defn open-accounts [callback] (log/debug "[native-module] open-accounts") - (.openAccounts (status) #(callback (types/json->clj %)))) + (.openAccounts ^js (status) #(callback (types/json->clj %)))) (defn prepare-dir-and-update-config [config callback] (log/debug "[native-module] prepare-dir-and-update-config") - (.prepareDirAndUpdateConfig (status) + (.prepareDirAndUpdateConfig ^js (status) config #(callback (types/json->clj %)))) (defn enable-notifications [] (log/debug "[native-module] enable-notifications") - (.enableNotifications (status))) + (.enableNotifications ^js (status))) (defn disable-notifications [] (log/debug "[native-module] disable-notifications") - (.disableNotifications (status))) + (.disableNotifications ^js (status))) (defn save-account-and-login "NOTE: beware, the password has to be sha3 hashed" @@ -50,30 +50,30 @@ "multiaccount-data" multiaccount-data) (clear-web-data) (.saveAccountAndLogin - (status) multiaccount-data hashed-password settings config accounts-data)) + ^js (status) multiaccount-data hashed-password settings config accounts-data)) (defn save-multiaccount-and-login-with-keycard "NOTE: chat-key is a whisper private key sent from keycard" [multiaccount-data password settings config accounts-data chat-key] (log/debug "[native-module] save-account-and-login-with-keycard") (.saveAccountAndLoginWithKeycard - (status) multiaccount-data password settings config accounts-data chat-key)) + ^js (status) multiaccount-data password settings config accounts-data chat-key)) (defn login "NOTE: beware, the password has to be sha3 hashed" [account-data hashed-password] (log/debug "[native-module] login") (clear-web-data) - (.login (status) account-data hashed-password)) + (.login ^js (status) account-data hashed-password)) (defn logout [] (log/debug "[native-module] logout") (clear-web-data) - (.logout (status))) + (.logout ^js (status))) (defonce listener - (.addListener react/device-event-emitter "gethEvent" - #(re-frame/dispatch [:signals/signal-received (.-jsonEvent %)]))) + (.addListener ^js react/device-event-emitter "gethEvent" + #(re-frame/dispatch [:signals/signal-received (.-jsonEvent ^js %)]))) (defn multiaccount-load-account "NOTE: beware, the password has to be sha3 hashed @@ -83,7 +83,7 @@ from memory" [address hashed-password callback] (log/debug "[native-module] multiaccount-load-account") - (.multiAccountLoadAccount (status) + (.multiAccountLoadAccount ^js (status) (types/clj->json {:address address :password hashed-password}) callback)) @@ -93,7 +93,7 @@ if usage isn't planned, remove" [callback] (log/debug "[native-module] multiaccount-reset") - (.multiAccountReset (status) + (.multiAccountReset ^js (status) callback)) (defn multiaccount-derive-addresses @@ -104,7 +104,7 @@ [account-id paths callback] (log/debug "[native-module] multiaccount-derive-addresses") (when (status) - (.multiAccountDeriveAddresses (status) + (.multiAccountDeriveAddresses ^js (status) (types/clj->json {:accountID account-id :paths paths}) callback))) @@ -120,21 +120,21 @@ [account-id hashed-password callback] (log/debug "[native-module] multiaccount-store-account") (when (status) - (.multiAccountStoreAccount (status) - (types/clj->json {:accountID account-id - :password hashed-password}) - callback))) + (.multiAccountStoreAccount ^js (status) + (types/clj->json {:accountID account-id + :password hashed-password}) + callback))) (defn multiaccount-store-derived "NOTE: beware, the password has to be sha3 hashed" [account-id paths hashed-password callback] (log/debug "[native-module] multiaccount-store-derived" "account-id" account-id) - (.multiAccountStoreDerived (status) - (types/clj->json {:accountID account-id - :paths paths - :password hashed-password}) - callback)) + (.multiAccountStoreDerived ^js (status) + (types/clj->json {:accountID account-id + :paths paths + :password hashed-password}) + callback)) (defn multiaccount-generate-and-derive-addresses "used to generate multiple multiaccounts for onboarding @@ -143,26 +143,26 @@ to store the key" [n mnemonic-length paths callback] (log/debug "[native-module] multiaccount-generate-and-derive-addresses") - (.multiAccountGenerateAndDeriveAddresses (status) - (types/clj->json {:n n - :mnemonicPhraseLength mnemonic-length - :bip39Passphrase "" - :paths paths}) - callback)) + (.multiAccountGenerateAndDeriveAddresses ^js (status) + (types/clj->json {:n n + :mnemonicPhraseLength mnemonic-length + :bip39Passphrase "" + :paths paths}) + callback)) (defn multiaccount-import-mnemonic [mnemonic password callback] (log/debug "[native-module] multiaccount-import-mnemonic") - (.multiAccountImportMnemonic (status) - (types/clj->json {:mnemonicPhrase mnemonic - ;;NOTE this is not the multiaccount password - :Bip39Passphrase password}) - callback)) + (.multiAccountImportMnemonic ^js (status) + (types/clj->json {:mnemonicPhrase mnemonic + ;;NOTE this is not the multiaccount password + :Bip39Passphrase password}) + callback)) (defn multiaccount-import-private-key [private-key callback] (log/debug "[native-module] multiaccount-import-private-key") - (.multiAccountImportPrivateKey (status) + (.multiAccountImportPrivateKey ^js (status) (types/clj->json {:privateKey private-key}) callback)) @@ -170,128 +170,128 @@ "NOTE: beware, the password has to be sha3 hashed" [address hashed-password callback] (log/debug "[native-module] verify") - (.verify (status) address hashed-password callback)) + (.verify ^js (status) address hashed-password callback)) (defn login-with-keycard [{:keys [multiaccount-data password chat-key]}] (log/debug "[native-module] login-with-keycard") (clear-web-data) - (.loginWithKeycard (status) multiaccount-data password chat-key)) + (.loginWithKeycard ^js (status) multiaccount-data password chat-key)) (defn set-soft-input-mode [mode] (log/debug "[native-module] set-soft-input-mode") - (.setSoftInputMode (status) mode)) + (.setSoftInputMode ^js (status) mode)) (defn call-rpc [payload callback] (log/debug "[native-module] call-rpc") - (.callRPC (status) payload callback)) + (.callRPC ^js (status) payload callback)) (defn call-private-rpc [payload callback] - (.callPrivateRPC (status) payload callback)) + (.callPrivateRPC ^js (status) payload callback)) (defn hash-transaction "used for keycard" [rpcParams callback] (log/debug "[native-module] hash-transaction") - (.hashTransaction (status) rpcParams callback)) + (.hashTransaction ^js (status) rpcParams callback)) (defn hash-message "used for keycard" [message callback] (log/debug "[native-module] hash-message") - (.hashMessage (status) message callback)) + (.hashMessage ^js (status) message callback)) (defn hash-typed-data "used for keycard" [data callback] (log/debug "[native-module] hash-typed-data") - (.hashTypedData (status) data callback)) + (.hashTypedData ^js (status) data callback)) (defn send-transaction-with-signature "used for keycard" [rpcParams sig callback] (log/debug "[native-module] send-transaction-with-signature") - (.sendTransactionWithSignature (status) rpcParams sig callback)) + (.sendTransactionWithSignature ^js (status) rpcParams sig callback)) (defn sign-message "NOTE: beware, the password in rpcParams has to be sha3 hashed" [rpcParams callback] (log/debug "[native-module] sign-message") - (.signMessage (status) rpcParams callback)) + (.signMessage ^js (status) rpcParams callback)) (defn send-transaction "NOTE: beware, the password has to be sha3 hashed" [rpcParams hashed-password callback] (log/debug "[native-module] send-transaction") - (.sendTransaction (status) rpcParams hashed-password callback)) + (.sendTransaction ^js (status) rpcParams hashed-password callback)) (defn sign-typed-data "NOTE: beware, the password has to be sha3 hashed" [data account hashed-password callback] (log/debug "[native-module] clear-web-data") - (.signTypedData (status) data account hashed-password callback)) + (.signTypedData ^js (status) data account hashed-password callback)) (defn send-logs [dbJson js-logs callback] (log/debug "[native-module] send-logs") - (.sendLogs (status) dbJson js-logs callback)) + (.sendLogs ^js (status) dbJson js-logs callback)) (defn add-peer [enode on-result] (log/debug "[native-module] add-peer") - (.addPeer (status) enode on-result)) + (.addPeer ^js (status) enode on-result)) (defn close-application [] (log/debug "[native-module] close-application") - (.closeApplication (status))) + (.closeApplication ^js (status))) (defn connection-change [type expensive?] (log/debug "[native-module] connection-change") - (.connectionChange (status) type (boolean expensive?))) + (.connectionChange ^js (status) type (boolean expensive?))) (defn app-state-change [state] (log/debug "[native-module] app-state-change") - (.appStateChange (status) state)) + (.appStateChange ^js (status) state)) (defn set-blank-preview-flag [flag] (log/debug "[native-module] set-blank-preview-flag") - (.setBlankPreviewFlag (status) flag)) + (.setBlankPreviewFlag ^js (status) flag)) (defn is24Hour [] (log/debug "[native-module] is24Hour") ;;NOTE: we have to check for status module because of tests (when (status) - (.-is24Hour (status)))) + (.-is24Hour ^js (status)))) (defn get-device-model-info [] (log/debug "[native-module] get-device-model-info") ;;NOTE: we have to check for status module because of tests - (when (status) - {:model (.-model (status)) - :brand (.-brand (status)) - :build-id (.-buildId (status)) - :device-id (.-deviceId (status))})) + (when-let [^js status (status)] + {:model (.-model status) + :brand (.-brand status) + :build-id (.-buildId status) + :device-id (.-deviceId status)})) (defn extract-group-membership-signatures [signature-pairs callback] (log/debug "[native-module] extract-group-membership-signatures") - (.extractGroupMembershipSignatures (status) signature-pairs callback)) + (.extractGroupMembershipSignatures ^js (status) signature-pairs callback)) (defn sign-group-membership [content callback] (log/debug "[native-module] sign-group-membership") - (.signGroupMembership (status) content callback)) + (.signGroupMembership ^js (status) content callback)) (defn update-mailservers [enodes on-result] (log/debug "[native-module] update-mailservers") - (.updateMailservers (status) enodes on-result)) + (.updateMailservers ^js (status) enodes on-result)) (defn chaos-mode-update [on on-result] (log/debug "[native-module] chaos-mode-update") - (.chaosModeUpdate (status) on on-result)) + (.chaosModeUpdate ^js (status) on on-result)) (defn get-nodes-from-contract [rpc-endpoint contract-address on-result] (log/debug "[native-module] get-nodes-from-contract") - (.getNodesFromContract (status) rpc-endpoint contract-address on-result)) + (.getNodesFromContract ^js (status) rpc-endpoint contract-address on-result)) (defn rooted-device? [callback] (log/debug "[native-module] rooted-device?") @@ -308,7 +308,7 @@ ;; we check root on android platform/android? (if (status) - (.isDeviceRooted (status) callback) + (.isDeviceRooted ^js (status) callback) ;; if module isn't initialized we return true to avoid degrading security (callback true)) @@ -320,33 +320,33 @@ [public-key] {:pre [(utils.db/valid-public-key? public-key)]} (log/debug "[native-module] generate-gfycat") - (.generateAlias (status) public-key)) + (.generateAlias ^js (status) public-key)) (defn generate-gfycat-async "Generate a 3 words random name based on the user public-key, asynchronously" [public-key callback] {:pre [(utils.db/valid-public-key? public-key)]} - (.generateAliasAsync (status) public-key callback)) + (.generateAliasAsync ^js (status) public-key callback)) (defn identicon "Generate a icon based on a string, synchronously" [seed] (log/debug "[native-module] identicon") - (.identicon (status) seed)) + (.identicon ^js (status) seed)) (defn identicon-async "Generate a icon based on a string, asynchronously" [seed callback] - (.identiconAsync (status) seed callback)) + (.identiconAsync ^js (status) seed callback)) (defn gfycat-identicon-async "Generate an icon based on a string and 3 words random name asynchronously" [seed callback] (log/debug "[native-module] gfycat-identicon-async") - (.generateAliasAndIdenticonAsync (status) seed callback)) + (.generateAliasAndIdenticonAsync ^js (status) seed callback)) (defn validate-mnemonic "Validate that a mnemonic conforms to BIP39 dictionary/checksum standards" [mnemonic callback] (log/debug "[native-module] validate-mnemonic") - (.validateMnemonic (status) mnemonic callback)) + (.validateMnemonic ^js (status) mnemonic callback)) diff --git a/src/status_im/network/module.cljs b/src/status_im/network/module.cljs deleted file mode 100644 index 7cfefbb849..0000000000 --- a/src/status_im/network/module.cljs +++ /dev/null @@ -1,20 +0,0 @@ -(ns status-im.network.module - (:require-macros [status-im.modules :as modules]) - (:require status-im.network.net-info - status-im.network.ui.db - [re-frame.core :as re-frame] - [status-im.ethereum.core :as ethereum])) - -(modules/defmodule network - {:edit-network-view 'status-im.network.ui.edit-network.views/edit-network - :network-settings-view 'status-im.network.ui.views/network-settings - :network-details-view 'status-im.network.ui.network-details.views/network-details}) - -(defn edit-network-view [] - [(get-symbol :edit-network-view)]) - -(defn network-settings-view [] - [(get-symbol :network-settings-view)]) - -(defn network-details-view [] - [(get-symbol :network-details-view)]) diff --git a/src/status_im/network/net_info.cljs b/src/status_im/network/net_info.cljs index f0833353f4..a879c388ab 100644 --- a/src/status_im/network/net_info.cljs +++ b/src/status_im/network/net_info.cljs @@ -1,6 +1,5 @@ (ns status-im.network.net-info (:require [taoensso.timbre :as log] - [status-im.ui.components.react :as react-components] [status-im.utils.platform :as platform] [re-frame.core :as re-frame] [status-im.utils.fx :as fx] @@ -8,7 +7,8 @@ [status-im.chaos-mode.core :as chaos-mode] [status-im.native-module.core :as status] [status-im.ui.screens.mobile-network-settings.events :as mobile-network] - [status-im.wallet.core :as wallet])) + [status-im.wallet.core :as wallet] + ["@react-native-community/netinfo" :default net-info])) (fx/defn change-network-status [{:keys [db] :as cofx} is-connected?] @@ -38,8 +38,8 @@ (change-network-type old-network-type type (:is-connection-expensive details)))))) (defn add-net-info-listener [] - (when react-components/net-info - (.addEventListener react-components/net-info + (when net-info + (.addEventListener ^js net-info #(re-frame/dispatch [::network-info-changed (js->clj % :keywordize-keys true)])))) diff --git a/src/status_im/node/core.cljs b/src/status_im/node/core.cljs index 5660af07f2..8840b5e4bc 100644 --- a/src/status_im/node/core.cljs +++ b/src/status_im/node/core.cljs @@ -8,8 +8,7 @@ [status-im.utils.platform :as utils.platform] [status-im.utils.types :as types] [taoensso.timbre :as log] - [status-im.ethereum.ens :as ens]) - (:require-macros [status-im.utils.slurp :refer [slurp]])) + [status-im.ethereum.ens :as ens])) (defn- add-custom-bootnodes [config network all-bootnodes] (let [bootnodes (as-> all-bootnodes $ @@ -71,10 +70,8 @@ [limit nodes] (take limit (shuffle nodes))) -(def default-fleets (slurp "resources/config/fleets.json")) - (defn fleets [{:keys [custom-fleets]}] - (as-> [(default-fleets)] $ + (as-> [(js/require "./fleets.js")] $ (mapv #(:fleets (types/json->clj %)) $) (conj $ custom-fleets) (reduce merge $))) diff --git a/src/status_im/privacy_policy/core.cljs b/src/status_im/privacy_policy/core.cljs index 7172090d8d..c3a95561a3 100644 --- a/src/status_im/privacy_policy/core.cljs +++ b/src/status_im/privacy_policy/core.cljs @@ -6,7 +6,7 @@ (def ^:const privacy-policy-link "https://www.iubenda.com/privacy-policy/45710059") (defn open-privacy-policy-link! [] - (.openURL react/linking privacy-policy-link)) + (.openURL ^js react/linking privacy-policy-link)) (re-frame/reg-fx :privacy-policy/open-privacy-policy-link diff --git a/src/status_im/react_native/resources.cljs b/src/status_im/react_native/resources.cljs new file mode 100644 index 0000000000..b5924374db --- /dev/null +++ b/src/status_im/react_native/resources.cljs @@ -0,0 +1,52 @@ +(ns status-im.react-native.resources + (:require [status-im.ui.components.colors :as colors])) + +(def ui + {:empty-chats-header (js/require "../resources/images/ui/empty-chats-header.png") + :welcome (js/require "../resources/images/ui/welcome.jpg") + :welcome-dark (js/require "../resources/images/ui/welcome-dark.jpg") + :chat (js/require "../resources/images/ui/chat.jpg") + :wallet (js/require "../resources/images/ui/wallet.jpg") + :browser (js/require "../resources/images/ui/browser.jpg") + :chat-dark (js/require "../resources/images/ui/chat-dark.jpg") + :wallet-dark (js/require "../resources/images/ui/wallet-dark.jpg") + :browser-dark (js/require "../resources/images/ui/browser-dark.jpg") + :keys (js/require "../resources/images/ui/keys.jpg") + :keys-dark (js/require "../resources/images/ui/keys-dark.jpg") + :lock (js/require "../resources/images/ui/lock.png") + :tribute-to-talk (js/require "../resources/images/ui/tribute-to-talk.png") + :hardwallet-card (js/require "../resources/images/ui/hardwallet-card.png") + :keycard-lock (js/require "../resources/images/ui/keycard-lock.png") + :keycard (js/require "../resources/images/ui/keycard.png") + :keycard-logo (js/require "../resources/images/ui/keycard-logo.png") + :keycard-logo-blue (js/require "../resources/images/ui/keycard-logo-blue.png") + :keycard-logo-gray (js/require "../resources/images/ui/keycard-logo-gray.png") + :keycard-key (js/require "../resources/images/ui/keycard-key.png") + :keycard-empty (js/require "../resources/images/ui/keycard-empty.png") + :keycard-phone (js/require "../resources/images/ui/keycard-phone.png") + :keycard-connection (js/require "../resources/images/ui/keycard-connection.png") + :keycard-wrong (js/require "../resources/images/ui/keycard-wrong.png") + :not-keycard (js/require "../resources/images/ui/not-keycard.png") + :status-logo (js/require "../resources/images/ui/status-logo.png") + :warning-sign (js/require "../resources/images/ui/warning-sign.png") + :phone-nfc-on (js/require "../resources/images/ui/phone-nfc-on.png") + :phone-nfc-off (js/require "../resources/images/ui/phone-nfc-off.png") + :dapp-store (js/require "../resources/images/ui/dapp-store.png") + :ens-header (js/require "../resources/images/ui/ens-header.png") + :ens-header-dark (js/require "../resources/images/ui/ens-header-dark.png") + :new-chat-header (js/require "../resources/images/ui/new-chat-header.png") + :onboarding-phone (js/require "../resources/images/ui/onboarding-phone.png") + :theme-dark (js/require "../resources/images/ui/theme-dark.png") + :theme-light (js/require "../resources/images/ui/theme-light.png") + :theme-system (js/require "../resources/images/ui/theme-system.png")}) + +(defn get-theme-image [k] + (get ui (when (colors/dark?) (keyword (str (name k) "-dark"))) (get ui k))) + +(def loaded-images (atom {})) + +(defn get-image [k] + (if (contains? @loaded-images k) + (get @loaded-images k) + (get (swap! loaded-images assoc k + (get ui k)) k))) diff --git a/src/status_im/signals/core.cljs b/src/status_im/signals/core.cljs index ed92246849..9e99f63732 100644 --- a/src/status_im/signals/core.cljs +++ b/src/status_im/signals/core.cljs @@ -48,8 +48,8 @@ ;; We only convert to clojure when strictly necessary or we know it ;; won't impact performance, as it is a fairly costly operation on large-ish ;; data structures - (let [data (.parse js/JSON event-str) - event-js (.-event data) + (let [^js data (.parse js/JSON event-str) + ^js event-js (.-event data) type (.-type data)] (case type "node.login" (status-node-started cofx (js->clj event-js :keywordize-keys true)) diff --git a/src/status_im/signing/gas.cljs b/src/status_im/signing/gas.cljs index 226a81e794..020ddf802c 100644 --- a/src/status_im/signing/gas.cljs +++ b/src/status_im/signing/gas.cljs @@ -6,20 +6,20 @@ [re-frame.core :as re-frame] [status-im.ethereum.json-rpc :as json-rpc])) -(def min-gas-price-wei (money/bignumber 1)) +(def min-gas-price-wei ^js (money/bignumber 1)) (defmulti get-error-label-key (fn [type _] type)) (defmethod get-error-label-key :gasPrice [_ value] (cond (not value) :t/invalid-number - (.lt (money/->wei :gwei value) min-gas-price-wei) :t/wallet-send-min-wei + (.lt ^js (money/->wei :gwei value) min-gas-price-wei) :t/wallet-send-min-wei (-> (money/->wei :gwei value) .decimalPlaces pos?) :t/invalid-number)) -(defmethod get-error-label-key :gas [_ value] +(defmethod get-error-label-key :gas [_ ^js value] (cond (not value) :t/invalid-number - (.lt value (money/bignumber 1)) :t/invalid-number + (.lt value ^js (money/bignumber 1)) :t/invalid-number (-> value .decimalPlaces pos?) :t/invalid-number)) (defmethod get-error-label-key :default [_ value] @@ -28,7 +28,7 @@ :t/invalid-number)) (defn calculate-max-fee - [gas gasPrice] + [^js gas ^js gasPrice] (if (and gas gasPrice) (money/to-fixed (money/wei->ether (.times gas gasPrice))) "0")) @@ -42,7 +42,7 @@ "Takes the previous edit, either :gas or :gas-price and a value as string. Wei for gas, and gwei for gas price. Validates them and sets max fee" - (let [bn-value (money/bignumber value) + (let [^js bn-value (money/bignumber value) error-label-key (get-error-label-key key bn-value) data (if error-label-key {:value value @@ -119,4 +119,4 @@ {:method "eth_estimateGas" :params [obj] :on-success #(re-frame/dispatch [success-event %]) - :on-error #(re-frame/dispatch [error-event %])}))) \ No newline at end of file + :on-error #(re-frame/dispatch [error-event %])}))) diff --git a/src/status_im/subs.cljs b/src/status_im/subs.cljs index 485d8a5023..17980859ff 100644 --- a/src/status_im/subs.cljs +++ b/src/status_im/subs.cljs @@ -451,8 +451,6 @@ (fn [chain-keyword] (tokens/native-currency chain-keyword))) -(reg-root-key-sub :ethereum/current-block :ethereum/current-block) - ;;MULTIACCOUNT ============================================================================================================== (re-frame/reg-sub @@ -1075,7 +1073,7 @@ (every? (fn [balance] (every? - (fn [asset] + (fn [^js asset] (or (nil? asset) (.isZero asset))) (vals balance))) balances))) @@ -1103,7 +1101,7 @@ (reduce-kv (fn [acc symbol value] (if-let [price (get-in prices [symbol currency :price])] (+ acc (or (some-> (money/internal->formatted value symbol (token->decimals symbol)) - (money/crypto->fiat price) + ^js (money/crypto->fiat price) .toNumber) 0)) acc)) 0 balance)) @@ -1233,7 +1231,7 @@ (money/crypto->fiat price) (money/with-precision 2) str - (i18n/format-currency (:code currency)))))))) + (i18n/format-currency (:code currency) false))))))) (re-frame/reg-sub :wallet/visible-assets-with-values @@ -1248,10 +1246,10 @@ :nfts nfts}))) (defn get-asset-amount [balances sym] - (reduce #(if-let [bl (get %2 sym)] - (.plus %1 bl) + (reduce #(if-let [^js bl (get %2 sym)] + (.plus ^js %1 bl) %1) - (money/bignumber 0) + ^js (money/bignumber 0) balances)) (re-frame/reg-sub @@ -2078,7 +2076,7 @@ "Checks if number has any extra digit beyond the allowed number of decimals. It does so by checking the number against its rounded value." [amount decimals] - (let [bn (money/bignumber amount)] + (let [^js bn (money/bignumber amount)] (not (.eq bn (.round bn decimals))))) (defn get-amount-error [amount decimals] @@ -2100,13 +2098,13 @@ {:amount-error (i18n/label :t/wallet-insufficient-funds)})) (defn get-sufficient-gas-error - [balance symbol amount gas gasPrice] + [balance symbol amount ^js gas ^js gasPrice] (if (and gas gasPrice) - (let [fee (.times gas gasPrice) - available-ether (money/bignumber (get balance :ETH 0)) - available-for-gas (if (= :ETH symbol) - (.minus available-ether (money/bignumber amount)) - available-ether)] + (let [^js fee (.times gas gasPrice) + ^js available-ether (money/bignumber (get balance :ETH 0)) + ^js available-for-gas (if (= :ETH symbol) + (.minus available-ether (money/bignumber amount)) + available-ether)] (when-not (money/sufficient-funds? fee (money/bignumber available-for-gas)) {:gas-error (i18n/label :t/wallet-insufficient-gas)})) {:gas-error (i18n/label :t/invalid-number)})) diff --git a/src/status_im/transport/message/core.cljs b/src/status_im/transport/message/core.cljs index f905aabdc8..db44867c87 100644 --- a/src/status_im/transport/message/core.cljs +++ b/src/status_im/transport/message/core.cljs @@ -11,7 +11,7 @@ [status-im.utils.fx :as fx] [status-im.utils.types :as types])) -(defn- js-obj->seq [obj] +(defn- js-obj->seq [^js obj] ;; Sometimes the filter will return a single object instead of a collection (if (array? obj) (for [i (range (.-length obj))] @@ -27,11 +27,11 @@ (fx/defn handle-message [cofx message] (models.message/receive-one cofx message)) -(fx/defn process-response [cofx response-js] - (let [chats (.-chats response-js) - contacts (.-contacts response-js) - installations (.-installations response-js) - messages (.-messages response-js)] +(fx/defn process-response [cofx ^js response-js] + (let [^js chats (.-chats response-js) + ^js contacts (.-contacts response-js) + ^js installations (.-installations response-js) + ^js messages (.-messages response-js)] (cond (seq installations) (let [installations-clj (types/js->clj installations)] diff --git a/src/status_im/transport/utils.cljs b/src/status_im/transport/utils.cljs index a64ff7b4b3..3a1acc6b11 100644 --- a/src/status_im/transport/utils.cljs +++ b/src/status_im/transport/utils.cljs @@ -1,8 +1,7 @@ (ns ^{:doc "Utils for transport layer"} status-im.transport.utils (:require [clojure.string :as string] - [status-im.ethereum.core :as ethereum] - [status-im.js-dependencies :as dependencies])) + [status-im.ethereum.core :as ethereum])) (defn get-topic "Get the topic of a group chat or public chat from the chat-id" diff --git a/src/status_im/tribute_to_talk/db.cljs b/src/status_im/tribute_to_talk/db.cljs index f8ec6900a9..558467b23b 100644 --- a/src/status_im/tribute_to_talk/db.cljs +++ b/src/status_im/tribute_to_talk/db.cljs @@ -1,8 +1,8 @@ (ns status-im.tribute-to-talk.db (:require [status-im.ethereum.core :as ethereum] [status-im.i18n :as i18n] - [status-im.js-dependencies :as dependencies] - [status-im.utils.money :as money])) + [status-im.utils.money :as money] + ["web3-utils" :as utils])) (defn tribute-received? [contact] @@ -10,8 +10,6 @@ (def max-snt-amount 1000000) -(def utils dependencies/web3-utils) - (defn to-wei [s] (when s @@ -67,7 +65,7 @@ (and transaction (pos? (- current-block (js/parseInt transaction-block))) - (.lessThanOrEqualTo (money/bignumber tribute-required) + (.lessThanOrEqualTo ^js (money/bignumber tribute-required) (money/bignumber value)) (ethereum/address= (ethereum/public-key->address from-public-key) from)))) diff --git a/src/status_im/ui/components/action_sheet.cljs b/src/status_im/ui/components/action_sheet.cljs index 7a0dacde28..495cea8916 100644 --- a/src/status_im/ui/components/action_sheet.cljs +++ b/src/status_im/ui/components/action_sheet.cljs @@ -1,7 +1,7 @@ (ns status-im.ui.components.action-sheet (:require [status-im.i18n :as i18n] [status-im.utils.core :as utils] - [status-im.react-native.js-dependencies :as js-dependencies])) + ["react-native" :refer (ActionSheetIOS)])) (defn- callback [options on-cancel] (fn [index] @@ -21,6 +21,6 @@ (when message {:message message}))))) (defn show [{:keys [title message options on-cancel]}] - (.showActionSheetWithOptions (.-ActionSheetIOS js-dependencies/react-native) + (.showActionSheetWithOptions ActionSheetIOS (prepare-options title message options) (callback options on-cancel))) diff --git a/src/status_im/ui/components/animation.cljs b/src/status_im/ui/components/animation.cljs index 8bad1c9464..b45c7086f4 100644 --- a/src/status_im/ui/components/animation.cljs +++ b/src/status_im/ui/components/animation.cljs @@ -1,14 +1,15 @@ (ns status-im.ui.components.animation - (:require [status-im.ui.components.react :as react])) + (:require [status-im.ui.components.react :as react] + ["react-native" :as rn])) (defn start - ([anim] (.start anim)) - ([anim callback] (.start anim callback))) + ([^js anim] (.start anim)) + ([^js anim callback] (.start anim callback))) (defn anim-loop [animation] - (.loop react/animated animation)) + (.loop ^js react/animated animation)) -(defn interpolate [anim-value config] +(defn interpolate [^js anim-value config] (.interpolate anim-value (clj->js config))) (defn add-native-driver [{:keys [useNativeDriver] :as config}] @@ -19,68 +20,72 @@ useNativeDriver))) (defn timing [anim-value config] - (.timing react/animated + (.timing ^js react/animated anim-value (clj->js (add-native-driver config)))) (defn spring [anim-value config] - (.spring react/animated + (.spring ^js react/animated anim-value (clj->js (add-native-driver config)))) (defn decay [anim-value config] - (.decay react/animated + (.decay ^js react/animated anim-value (clj->js (add-native-driver config)))) (defn anim-sequence [animations] - (.sequence react/animated (clj->js animations))) + (.sequence ^js react/animated (clj->js animations))) (defn parallel [animations] - (.parallel react/animated (clj->js animations))) + (.parallel ^js react/animated (clj->js animations))) (defn anim-delay [duration] - (.delay react/animated duration)) + (.delay ^js react/animated duration)) (defn event [mapping config] - (.event react/animated (clj->js mapping) (clj->js config))) + (.event ^js react/animated (clj->js mapping) (clj->js config))) -(defn add-listener [anim-value listener] +(defn add-listener [^js anim-value listener] (.addListener anim-value listener)) -(defn remove-all-listeners [anim-value] +(defn remove-all-listeners [^js anim-value] (.removeAllListeners anim-value)) -(defn stop-animation [anim-value] +(defn stop-animation [^js anim-value] (.stopAnimation anim-value)) -(defn set-value [anim-value value] +(defn set-value [^js anim-value value] (.setValue anim-value value)) +(def animated (.-Animated ^js rn)) +(def animated-value (-> ^js rn .-Animated .-Value)) +(def animated-value-xy (-> ^js rn .-Animated .-ValueXY)) +(def easing (-> ^js rn .-Easing)) + (defn create-value [value] - (js/ReactNative.Animated.Value. value)) + (new animated-value value)) (defn create-value-xy [value] - (js/ReactNative.Animated.ValueXY. value)) + (new animated-value-xy value)) (defn add [anim-x anim-y] - (js/ReactNative.Animated.add. anim-x anim-y)) + ((-> ^js rn .-Animated .add) anim-x anim-y)) (defn subtract [anim-x anim-y] - (js/ReactNative.Animated.subtract. anim-x anim-y)) + ((-> ^js rn .-Animated .substract) anim-x anim-y)) -(defn x [value-xy] +(defn x [^js value-xy] (.-x value-xy)) -(defn y [value-xy] +(defn y [^js value-xy] (.-y value-xy)) -(defn get-layout [value-xy] +(defn get-layout [^js value-xy] (js->clj (.getLayout value-xy))) -(defn easing [] js/ReactNative.Easing) -(defn easing-in [] (.-in (easing))) -(defn easing-out [] (.-out (easing))) +(defn easing-in [] (.-in ^js easing)) +(defn easing-out [] (.-out ^js easing)) -(defn cubic [] (.-cubic (easing))) -(def bezier (.-bezier (easing))) +(defn cubic [] (.-cubic ^js easing)) +(def bezier (.-bezier ^js easing)) diff --git a/src/status_im/ui/components/bottom_panel/views.cljs b/src/status_im/ui/components/bottom_panel/views.cljs index 382cb445b6..819ee6a28b 100644 --- a/src/status_im/ui/components/bottom_panel/views.cljs +++ b/src/status_im/ui/components/bottom_panel/views.cljs @@ -4,18 +4,18 @@ [status-im.ui.components.animation :as anim] [reagent.core :as reagent] [status-im.ui.components.colors :as colors] - [status-im.react-native.js-dependencies :as js-dependencies])) + ["react-native" :refer (BackHandler)])) (def back-listener (atom nil)) (defn remove-back-listener [] (when @back-listener - (.remove @back-listener) + (.remove ^js @back-listener) (reset! back-listener nil))) (defn add-back-listener [] (remove-back-listener) - (reset! back-listener (.addEventListener js-dependencies/back-handler + (reset! back-listener (.addEventListener BackHandler "hardwareBackPress" (fn [] true)))) diff --git a/src/status_im/ui/components/bottom_sheet/view.cljs b/src/status_im/ui/components/bottom_sheet/view.cljs index e0f0f4772a..b5e957ec5f 100644 --- a/src/status_im/ui/components/bottom_sheet/view.cljs +++ b/src/status_im/ui/components/bottom_sheet/view.cljs @@ -2,8 +2,8 @@ (:require [status-im.ui.components.react :as react] [status-im.ui.components.animation :as animation] [status-im.ui.components.bottom-sheet.styles :as styles] - [status-im.react-native.js-dependencies :as js-dependencies] [status-im.utils.platform :as platform] + ["react-native" :refer (BackHandler)] [reagent.core :as reagent] [re-frame.core :as re-frame])) @@ -36,7 +36,7 @@ (defn- on-move [{:keys [height bottom-value opacity-value]}] - (fn [_ state] + (fn [_ ^js state] (let [dy (.-dy state)] (cond (pos? dy) (let [opacity (max min-opacity (- 1 (/ dy (- height swipe-opacity-range))))] @@ -76,16 +76,16 @@ (defn- swipe-pan-responder [opts] (.create - react/pan-responder + ^js react/pan-responder (clj->js - {:onMoveShouldSetPanResponder (fn [_ state] + {:onMoveShouldSetPanResponder (fn [_ ^js state] (or (< 10 (js/Math.abs (.-dx state))) (< 5 (js/Math.abs (.-dy state))))) :onPanResponderMove (on-move opts) :onPanResponderRelease (on-release opts) :onPanResponderTerminate (on-release opts)}))) -(defn- pan-handlers [pan-responder] +(defn- pan-handlers [^js pan-responder] (js->clj (.-panHandlers pan-responder))) (defn- on-open [{:keys [bottom-value internal-atom opacity-value]}] @@ -134,7 +134,7 @@ sheet-height (min max-height height) close-sheet (fn [] (when (and platform/android? @back-listener) - (.remove @back-listener) + (.remove ^js @back-listener) (reset! back-listener nil)) (on-close {:opacity-value opacity-value :bottom-value bottom-value @@ -154,7 +154,7 @@ :internal-atom internal-visible :height height}) (when platform/android? - (reset! back-listener (.addEventListener js-dependencies/back-handler + (reset! back-listener (.addEventListener BackHandler "hardwareBackPress" handle-back)))) @@ -196,7 +196,7 @@ [react/view {:style {:padding-top styles/vertical-padding :padding-bottom (+ styles/vertical-padding (:bottom safe-area))} - :on-layout #(->> % + :on-layout #(->> ^js % .-nativeEvent .-layout .-height diff --git a/src/status_im/ui/components/button/haptic.cljs b/src/status_im/ui/components/button/haptic.cljs index fe13897f59..ed84953d53 100644 --- a/src/status_im/ui/components/button/haptic.cljs +++ b/src/status_im/ui/components/button/haptic.cljs @@ -1,8 +1,6 @@ (ns status-im.ui.components.button.haptic (:require [oops.core :refer [oget ocall]] - [status-im.react-native.js-dependencies :as js-deps])) - -(def haptic-feedback (oget js-deps/react-native-haptic-feedback "default")) + [react-native-haptic-feedback :default react-native-haptic-feedback])) (def haptic-methods {:selection "selection" @@ -21,7 +19,7 @@ :text-handle-move "textHandleMove" ; (Android only) :virtual-key "virtualKey" ; (Android only) :virtual-key-release "virtualKeyRelease" ; (Android only) -}) + }) (defn trigger [method] - (ocall haptic-feedback "trigger" (get haptic-methods method))) + (ocall react-native-haptic-feedback "trigger" (get haptic-methods method))) diff --git a/src/status_im/ui/components/camera.cljs b/src/status_im/ui/components/camera.cljs index c95c93616e..a1e20e4dd5 100644 --- a/src/status_im/ui/components/camera.cljs +++ b/src/status_im/ui/components/camera.cljs @@ -3,37 +3,30 @@ [reagent.core :as reagent] [clojure.string :as string] [clojure.walk :as walk] - [status-im.react-native.js-dependencies :as js-dependencies] - [status-im.utils.platform :as platform])) - -(def default-camera - (-> js-dependencies/camera - (object/get "RNCamera"))) + ["react-native-camera" :refer (RNCamera)])) (defn- constants [t] - (if platform/desktop? - nil - (-> default-camera - (object/get "Constants") - (object/get t) - (js->clj) - (walk/keywordize-keys)))) + (-> RNCamera + (object/get "Constants") + (object/get t) + (js->clj) + (walk/keywordize-keys))) (def aspects (constants "Orientation")) (def capture-targets (constants "CaptureTarget")) (def torch-modes (constants "FlashMode")) (defn set-torch [state] - (set! (.-flashMode default-camera) (get torch-modes state))) + (set! (.-flashMode RNCamera) (get torch-modes state))) (defn request-access-ios [then else] - (-> (.checkVideoAuthorizationStatus default-camera) + (-> (.checkVideoAuthorizationStatus RNCamera) (.then (fn [allowed?] (if allowed? (then) (else)))) (.catch else))) (defn camera [props] - (reagent/create-element default-camera (clj->js (merge {:inverted true} props)))) + (reagent/create-element RNCamera (clj->js (merge {:inverted true} props)))) -(defn get-qr-code-data [code] +(defn get-qr-code-data [^js code] (when-let [data (.-data code)] (string/trim data))) diff --git a/src/status_im/ui/components/common/common.cljs b/src/status_im/ui/components/common/common.cljs index 62d416439b..af6340f071 100644 --- a/src/status_im/ui/components/common/common.cljs +++ b/src/status_im/ui/components/common/common.cljs @@ -74,7 +74,7 @@ (letsubs [content-width (reagent/atom 0) {window-width :width window-height :height} [:dimensions/window]] [react/view {:style (merge styles/image-contain container-style) - :on-layout #(reset! content-width (-> % .-nativeEvent .-layout .-width))} + :on-layout #(reset! content-width (-> ^js % .-nativeEvent .-layout .-width))} [react/image {:source image :resize-mode :contain :style (merge style diff --git a/src/status_im/ui/components/connectivity/view.cljs b/src/status_im/ui/components/connectivity/view.cljs index 53bfad3c45..ab1a920322 100644 --- a/src/status_im/ui/components/connectivity/view.cljs +++ b/src/status_im/ui/components/connectivity/view.cljs @@ -27,7 +27,7 @@ :easing ((if (= :in direction) (animation/easing-in) (animation/easing-out)) - (.-quad (animation/easing))) + (.-quad ^js animation/easing)) :duration 400 :useNativeDriver true}) @@ -90,15 +90,15 @@ all connectivity views (we have at least one view in home and one in chat)" {:toValue 0 :delay 800 :duration 150 - :easing (.-ease (animation/easing)) + :easing (.-ease ^js animation/easing) :useNativeDriver true}) (animation/timing anim-y {:toValue (if platform/desktop? 0 neg-connectivity-bar-height) :delay 800 :duration 150 - :easing (.-ease (animation/easing)) + :easing (.-ease ^js animation/easing) :useNativeDriver true})]) - ;; second param of start() - a callback that fires when animation stops + ;; second param of start() - a callback that fires when animation stops #(do (reset! to-hide? false) (reset! status-hidden true)))) (do (animation/set-value anim-opacity 0) @@ -113,14 +113,14 @@ all connectivity views (we have at least one view in home and one in chat)" [(animation/timing anim-opacity {:toValue 1 :duration 150 - :easing (.-ease (animation/easing)) + :easing (.-ease ^js animation/easing) :useNativeDriver true}) (animation/timing anim-y {:toValue (if platform/desktop? connectivity-bar-height 0) :duration 150 - :easing (.-ease (animation/easing)) + :easing (.-ease ^js animation/easing) :useNativeDriver true})]) - ;; second param of start() - a callback that fires when animation stops + ;; second param of start() - a callback that fires when animation stops #(do (reset! to-hide? true) (reset! status-hidden false)))) (do (animation/set-value anim-opacity 1) @@ -234,7 +234,7 @@ all connectivity views (we have at least one view in home and one in chat)" window-width (reagent/atom 0)] (let [loading-indicator? (:loading-indicator? ui-status-properties)] [react/view {:style {:flex 1} - :on-layout #(reset! window-width (-> % .-nativeEvent .-layout .-width))} + :on-layout #(reset! window-width (-> ^js % .-nativeEvent .-layout .-width))} [react/view {:style {:z-index 2 :background-color colors/white}} header [react/view @@ -250,4 +250,4 @@ all connectivity views (we have at least one view in home and one in chat)" :app-active-since app-active-since :logged-in-since logged-in-since :ui-status-properties ui-status-properties}] - footer]))) \ No newline at end of file + footer]))) diff --git a/src/status_im/ui/components/copyable_text.cljs b/src/status_im/ui/components/copyable_text.cljs index 01b087fce1..88277f92f2 100644 --- a/src/status_im/ui/components/copyable_text.cljs +++ b/src/status_im/ui/components/copyable_text.cljs @@ -14,14 +14,14 @@ {:toValue 0 :duration 140 :delay 1000 - :easing (.-ease (animation/easing)) + :easing (.-ease ^js animation/easing) :useNativeDriver true}) (animation/timing anim-y {:toValue 0 :duration 140 :delay 1000 - :easing (.-ease (animation/easing)) + :easing (.-ease ^js animation/easing) :useNativeDriver true})]) #(reset! cue-atom false))) @@ -33,13 +33,13 @@ anim-opacity {:toValue 1 :duration 140 - :easing (.-ease (animation/easing)) + :easing (.-ease ^js animation/easing) :useNativeDriver true}) (animation/timing anim-y {:toValue y :duration 140 - :easing (.-ease (animation/easing)) + :easing (.-ease ^js animation/easing) :useNativeDriver true})]) #(hide-cue-atom anim-opacity anim-y cue-atom)))) @@ -93,8 +93,8 @@ {:style (if container-style container-style {}) :on-layout #(do - (reset! width (-> % .-nativeEvent .-layout .-width)) - (reset! height (-> % .-nativeEvent .-layout .-height)))} + (reset! width (-> ^js % .-nativeEvent .-layout .-width)) + (reset! height (-> ^js % .-nativeEvent .-layout .-height)))} (when label [react/text {:style diff --git a/src/status_im/ui/components/dialog.cljs b/src/status_im/ui/components/dialog.cljs index 1275f35d61..a8e68b359a 100644 --- a/src/status_im/ui/components/dialog.cljs +++ b/src/status_im/ui/components/dialog.cljs @@ -1,7 +1,5 @@ (ns status-im.ui.components.dialog - (:require [status-im.react-native.js-dependencies :as rn-dependencies])) - -(def dialogs (.-default rn-dependencies/dialogs)) + (:require ["react-native-dialogs" :default dialogs])) (defn show [{:keys [title options cancel-text on-cancel]}] (.. dialogs diff --git a/src/status_im/ui/components/large_toolbar/styles.cljs b/src/status_im/ui/components/large_toolbar/styles.cljs index 1b3c8a804b..a73393e040 100644 --- a/src/status_im/ui/components/large_toolbar/styles.cljs +++ b/src/status_im/ui/components/large_toolbar/styles.cljs @@ -16,7 +16,7 @@ anim-opacity {:toValue 1 :duration 200 - :easing (.-ease (animation/easing)) + :easing (.-ease ^js animation/easing) :useNativeDriver true})) (defn minimized-toolbar-fade-out [anim-opacity] @@ -24,7 +24,7 @@ anim-opacity {:toValue 0 :duration 200 - :easing (.-ease (animation/easing)) + :easing (.-ease ^js animation/easing) :useNativeDriver true})) (defn- ios-shadow-opacity-anim [scroll-y] diff --git a/src/status_im/ui/components/large_toolbar/view.cljs b/src/status_im/ui/components/large_toolbar/view.cljs index 39a5129bee..0d5ac7fce8 100644 --- a/src/status_im/ui/components/large_toolbar/view.cljs +++ b/src/status_im/ui/components/large_toolbar/view.cljs @@ -9,7 +9,7 @@ ;; header-in-toolbar - component - small header in toolbar ;; nav-item - component/nil - if nav-item like back button is needed, else nil -;; action-items - status-im.ui.components.toolbar.view/actions +;; action-items - status-im.ui.components.toolbar.view/actions (defn minimized-toolbar [header-in-toolbar nav-item action-items anim-opacity] (let [has-nav? (boolean nav-item)] [toolbar/toolbar @@ -49,7 +49,7 @@ {:style styles/flat-list :data wrapped-data :initial-num-to-render 3 - :ref #(when % (reset! list-ref (.getNode %))) + :ref #(when % (reset! list-ref (.getNode ^js %))) :render-fn list.views/flat-list-generic-render-fn :key-fn (fn [item idx] (str idx)) :scrollEventThrottle 16 @@ -68,7 +68,7 @@ (let [to-hide (reagent/atom true) anim-opacity (animation/create-value 0) scroll-y (animation/create-value 0)] - (animation/add-listener scroll-y (fn [anim] + (animation/add-listener scroll-y (fn [^js anim] (cond (and (>= (.-value anim) 40) (not @to-hide)) (animation/start @@ -86,7 +86,7 @@ (let [to-hide (atom false)] (animation/add-listener scroll-y - (fn [anim] + (fn [^js anim] (cond (and (>= (.-value anim) 40) (not @to-hide)) (animation/start diff --git a/src/status_im/ui/components/list/views.cljs b/src/status_im/ui/components/list/views.cljs index 6bdb84eed8..9de1169490 100644 --- a/src/status_im/ui/components/list/views.cljs +++ b/src/status_im/ui/components/list/views.cljs @@ -29,11 +29,12 @@ [status-im.ui.components.list.styles :as styles] [status-im.ui.components.react :as react] [status-im.utils.platform :as platform] - [status-im.ui.components.radio :as radio]) + [status-im.ui.components.radio :as radio] + ["react-native" :as react-native]) (:require-macros [status-im.utils.views :as views])) -(def flat-list-class (react/get-class "FlatList")) -(def section-list-class (react/get-class "SectionList")) +(def flat-list-class (reagent/adapt-react-class (.-FlatList react-native))) +(def section-list-class (reagent/adapt-react-class (.-SectionList react-native))) ;;TODO THIS NAMESPACE is DEPRECATED, use status-im.ui.components.list-item.views ;;TODO DEPRECATED, use status-im.ui.components.list-item.views @@ -171,7 +172,7 @@ [vector-icons/icon :main-icons/next {:color colors/gray-transparent-40}])]]) (defn- wrap-render-fn [f] - (fn [data] + (fn [^js data] (reagent/as-element (f (.-item data) (.-index data) (.-separators data))))) (defn- wrap-key-fn [f] @@ -224,8 +225,8 @@ :else [item])) (defn- wrap-render-section-header-fn [f] - (fn [data] - (let [section (.-section data)] + (fn [^js data] + (let [^js section (.-section data)] (reagent/as-element (f {:title (.-title section) :data (.-data section)}))))) diff --git a/src/status_im/ui/components/list_item/views.cljs b/src/status_im/ui/components/list_item/views.cljs index 0a1f49299c..157bdff69a 100644 --- a/src/status_im/ui/components/list_item/views.cljs +++ b/src/status_im/ui/components/list_item/views.cljs @@ -141,7 +141,7 @@ {:style styles/subtitle-row-accessory-container :on-layout #(reset! subtitle-row-accessory-width - (-> % .-nativeEvent .-layout .-width))} + (-> ^js % .-nativeEvent .-layout .-width))} ;; We do this so that the bottom of the component is 12 device px ;; from bottom of the touchable container, instead of 10. [react/view {:transform [{:translateY -2}]} @@ -382,7 +382,7 @@ divider [react/view {:style {:margin-top container-margin-top :margin-bottom container-margin-bottom} - :on-layout #(reset! width (-> % .-nativeEvent .-layout .-width))} + :on-layout #(reset! width (-> ^js % .-nativeEvent .-layout .-width))} [react/touchable-highlight (cond-> {:on-press (when (not theme-select?) on-press) :on-press-in (when theme-select? on-press) diff --git a/src/status_im/ui/components/list_selection.cljs b/src/status_im/ui/components/list_selection.cljs index ae560aab10..1b3b7c30ad 100644 --- a/src/status_im/ui/components/list_selection.cljs +++ b/src/status_im/ui/components/list_selection.cljs @@ -5,19 +5,17 @@ [status-im.ui.components.dialog :as dialog] [status-im.ui.components.react :as react] [status-im.utils.platform :as platform] - [status-im.utils.http :as http] - [status-im.ui.components.popup-menu.views :refer [show-desktop-menu]])) + [status-im.utils.http :as http])) (defn open-share [content] (when (or (:message content) (:url content)) - (.share react/sharing (clj->js content)))) + (.share ^js react/sharing (clj->js content)))) (defn show [options] (cond platform/ios? (action-sheet/show options) - platform/android? (dialog/show options) - platform/desktop? (show-desktop-menu (->> (:options options) (remove nil?))))) + platform/android? (dialog/show options))) (defn- platform-web-browser [] (if platform/ios? :t/browsing-open-in-ios-web-browser :t/browsing-open-in-android-web-browser)) @@ -27,13 +25,13 @@ :options [{:label (i18n/label :t/browsing-open-in-status) :action #(re-frame/dispatch [:browser.ui/open-url link])} {:label (i18n/label (platform-web-browser)) - :action #(.openURL react/linking (http/normalize-url link))}] + :action #(.openURL ^js react/linking (http/normalize-url link))}] :cancel-text (i18n/label :t/browsing-cancel)})) (defn browse-in-web-browser [link] (show {:title (i18n/label :t/browsing-title) :options [{:label (i18n/label (platform-web-browser)) - :action #(.openURL react/linking (http/normalize-url link))}] + :action #(.openURL ^js react/linking (http/normalize-url link))}] :cancel-text (i18n/label :t/browsing-cancel)})) (defn browse-dapp [link] diff --git a/src/status_im/ui/components/permissions.cljs b/src/status_im/ui/components/permissions.cljs index 84aa16661e..468585ae4f 100644 --- a/src/status_im/ui/components/permissions.cljs +++ b/src/status_im/ui/components/permissions.cljs @@ -1,8 +1,6 @@ (ns status-im.ui.components.permissions (:require [status-im.utils.platform :as platform] - [status-im.react-native.js-dependencies :as js-dependencies])) - -(def permissions-class (.-PermissionsAndroid js-dependencies/react-native)) + ["react-native" :refer (PermissionsAndroid)])) (def permissions-map {:read-external-storage "android.permission.READ_EXTERNAL_STORAGE" @@ -20,7 +18,7 @@ :as options}] (if platform/android? (let [permissions (mapv #(get permissions-map %) permissions)] - (-> (.requestMultiple permissions-class (clj->js permissions)) + (-> (.requestMultiple PermissionsAndroid (clj->js permissions)) (.then #(if (all-granted? (js->clj %)) (on-allowed) (on-denied))) diff --git a/src/status_im/ui/components/popup_menu/views.cljs b/src/status_im/ui/components/popup_menu/views.cljs index 24c5ab0b35..5c549a9828 100644 --- a/src/status_im/ui/components/popup_menu/views.cljs +++ b/src/status_im/ui/components/popup_menu/views.cljs @@ -1,18 +1,11 @@ (ns status-im.ui.components.popup-menu.views (:require [status-im.ui.components.react :as react] - [status-im.react-native.js-dependencies :as rn-dependencies] [status-im.utils.platform :as platform] [status-im.i18n :as i18n] [re-frame.core :as re-frame] [taoensso.timbre :as log] [status-im.utils.config :as config])) -(defn show-desktop-menu [items] - (.show rn-dependencies/desktop-menu - (if config/mobile-ui-for-desktop? - (clj->js (mapv #(hash-map :text (:label %1) :onPress (:action %1)) items)) - (clj->js (mapv #(hash-map :text (:text %1) :onPress (:on-select %1)) items))))) - (defn get-chat-menu-items [group-chat public? chat-id] (->> [(when (and (not group-chat) (not public?)) {:text (i18n/label :t/view-profile) diff --git a/src/status_im/ui/components/qr_code_viewer/views.cljs b/src/status_im/ui/components/qr_code_viewer/views.cljs index 9f515e1430..e2c47846a2 100644 --- a/src/status_im/ui/components/qr_code_viewer/views.cljs +++ b/src/status_im/ui/components/qr_code_viewer/views.cljs @@ -1,15 +1,15 @@ (ns status-im.ui.components.qr-code-viewer.views (:require [cljs-bean.core :as bean] [reagent.core :as reagent] - [status-im.react-native.js-dependencies :as rn-dependencies] [status-im.ui.components.qr-code-viewer.styles :as styles] [status-im.ui.components.react :as react] - [status-im.ui.components.svg :as svg])) + [status-im.ui.components.svg :as svg] + ["qrcode" :as qr-code-js])) (defn qr-code [{:keys [size value]}] (let [uri (reagent/atom nil)] (.toString - rn-dependencies/qr-code + qr-code-js value (bean/->js {:margin 0 :width size}) #(reset! uri %2)) diff --git a/components/src/status_im/ui/components/react.cljs b/src/status_im/ui/components/react.cljs similarity index 54% rename from components/src/status_im/ui/components/react.cljs rename to src/status_im/ui/components/react.cljs index eaca8b82e0..e166eb4ace 100644 --- a/components/src/status_im/ui/components/react.cljs +++ b/src/status_im/ui/components/react.cljs @@ -1,51 +1,38 @@ (ns status-im.ui.components.react (:require-macros [status-im.utils.views :as views]) - (:require [goog.object :as object] - [reagent.core :as reagent] + (:require [reagent.core :as reagent] [status-im.ui.components.styles :as styles] [status-im.utils.utils :as utils] [status-im.utils.core :as utils.core] [status-im.utils.platform :as platform] [status-im.i18n :as i18n] - [status-im.react-native.js-dependencies :as js-dependencies] + ["react-native" :as react-native :refer (Keyboard)] + ["react-native-image-crop-picker" :default image-picker] + ["react-native-gesture-handler" :refer (TouchableWithoutFeedback)] + ["react-native-safe-area-context" :as safe-area-context + :refer (SafeAreaView SafeAreaProvider SafeAreaConsumer)] [status-im.ui.components.colors :as colors] [status-im.ui.components.typography :as typography])) -(defn get-react-property [name] - (if js-dependencies/react-native - (or (object/get js-dependencies/react-native name) {}) - #js {})) - -(defn adapt-class [class] - (when class - (reagent/adapt-react-class class))) - -(defn get-class [name] - (adapt-class (get-react-property name))) - -(def native-modules (.-NativeModules js-dependencies/react-native)) -(def device-event-emitter (.-DeviceEventEmitter js-dependencies/react-native)) - -(def splash-screen (.-SplashScreen native-modules)) +(def native-modules (.-NativeModules react-native)) +(def device-event-emitter (.-DeviceEventEmitter react-native)) ;; React Components -(def app-registry (get-react-property "AppRegistry")) -(def app-state (get-react-property "AppState")) -(def view (get-class "View")) -(def progress-bar (get-class "ProgressBarAndroid")) +(def app-state (.-AppState react-native)) +(def view (reagent/adapt-react-class (.-View react-native))) +(def progress-bar (reagent/adapt-react-class (.-ProgressBarAndroid react-native))) -(def status-bar-class (when-not platform/desktop? (get-react-property "StatusBar"))) +(def status-bar-class (.-StatusBar react-native)) -(def scroll-view-class (get-class "ScrollView")) -(def keyboard-avoiding-view-class (get-class "KeyboardAvoidingView")) +(def scroll-view-class (reagent/adapt-react-class (.-ScrollView react-native))) +(def keyboard-avoiding-view-class (reagent/adapt-react-class (.-KeyboardAvoidingView react-native))) - -(def text-class (get-class "Text")) -(def text-input-class (get-class "TextInput")) -(def image-class (get-class "Image")) -(def picker-class (get-class "Picker")) -(def picker-item-class (adapt-class (.-Item (get-react-property "Picker")))) +(def text-class (reagent/adapt-react-class (.-Text react-native))) +(def text-input-class (reagent/adapt-react-class (.-TextInput react-native))) +(def image-class (reagent/adapt-react-class (.-Image react-native))) +(def picker-class (reagent/adapt-react-class (.-Picker react-native))) +(def picker-item-class (reagent/adapt-react-class (.-Item (.-Picker react-native)))) (defn valid-source? [source] (or (not (map? source)) @@ -57,15 +44,15 @@ (when (valid-source? source) [image-class props])) -(def switch-class (get-class "Switch")) +(def switch-class (reagent/adapt-react-class (.-Switch react-native))) (defn switch [props] [switch-class props]) -(def touchable-highlight-class (get-class "TouchableHighlight")) -(def touchable-without-feedback-class (get-class "TouchableWithoutFeedback")) -(def touchable-opacity-class (get-class "TouchableOpacity")) -(def activity-indicator-class (get-class "ActivityIndicator")) +(def touchable-highlight-class (reagent/adapt-react-class (.-TouchableHighlight react-native))) +(def touchable-without-feedback-class (reagent/adapt-react-class (.-TouchableWithoutFeedback react-native))) +(def touchable-opacity-class (reagent/adapt-react-class (.-TouchableOpacity react-native))) +(def activity-indicator-class (reagent/adapt-react-class (.-ActivityIndicator react-native))) (defn activity-indicator [props] [activity-indicator-class props]) @@ -75,25 +62,25 @@ :ios {:size :small} :android {:size :16}}]) -(def modal (get-class "Modal")) +(def modal (reagent/adapt-react-class (.-Modal react-native))) -(def pan-responder (.-PanResponder js-dependencies/react-native)) -(def animated (.-Animated js-dependencies/react-native)) +(def pan-responder (.-PanResponder react-native)) +(def animated (.-Animated react-native)) (def animated-view-class - (reagent/adapt-react-class (.-View animated))) + (reagent/adapt-react-class (.-View ^js animated))) (def animated-flat-list-class - (reagent/adapt-react-class (.-FlatList animated))) + (reagent/adapt-react-class (.-FlatList ^js animated))) (defn animated-view [props & content] (vec (conj content props animated-view-class))) -(def dimensions (.-Dimensions js-dependencies/react-native)) -(def keyboard (.-Keyboard js-dependencies/react-native)) -(defn dismiss-keyboard! [] (.dismiss keyboard)) -(def linking (.-Linking js-dependencies/react-native)) -(def desktop-notification (.-DesktopNotification (.-NativeModules js-dependencies/react-native))) +(def dimensions (.-Dimensions react-native)) +(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) @@ -144,32 +131,32 @@ (let [render-fn (fn [options text] [text-input-class (merge - {:underline-color-android :transparent - :max-font-size-multiplier max-font-size-multiplier - :placeholder-text-color colors/text-gray - :placeholder (i18n/label :t/type-a-message) - :value text} - (-> options - (dissoc :preserve-input?) - (update :style typography/get-style) - (update :style dissoc :line-height)))])] + {:underline-color-android :transparent + :max-font-size-multiplier max-font-size-multiplier + :placeholder-text-color colors/text-gray + :placeholder (i18n/label :t/type-a-message) + :value text} + (-> options + (dissoc :preserve-input?) + (update :style typography/get-style) + (update :style dissoc :line-height)))])] (if (:preserve-input? options) render-fn (let [input-ref (atom nil)] (reagent/create-class - {:component-will-unmount #(when @input-ref - (swap! text-input-refs dissoc @input-ref)) - :reagent-render - (fn [options text] - (render-fn (assoc options :ref - (fn [r] - ;; Store input and its defaultValue - ;; one we receive a non-nil ref - (when (and r (nil? @input-ref)) - (swap! text-input-refs assoc r (:default-value options))) - (reset! input-ref r) - (when (:ref options) - ((:ref options) r)))) text))}))))) + {:component-will-unmount #(when @input-ref + (swap! text-input-refs dissoc @input-ref)) + :reagent-render + (fn [options text] + (render-fn (assoc options :ref + (fn [r] + ;; Store input and its defaultValue + ;; one we receive a non-nil ref + (when (and r (nil? @input-ref)) + (swap! text-input-refs assoc r (:default-value options))) + (reset! input-ref r) + (when (:ref options) + ((:ref options) r)))) text))}))))) (defn i18n-text [{:keys [style key]}] @@ -197,7 +184,7 @@ content]) (defn get-dimensions [name] - (js->clj (.get dimensions name) :keywordize-keys true)) + (js->clj (.get ^js dimensions name) :keywordize-keys true)) (defn list-item [component] (reagent/as-element component)) @@ -214,11 +201,8 @@ (map value->picker-item data))) ;; Image picker - -(def image-picker-class js-dependencies/image-crop-picker) - (defn show-access-error [o] - (when (= "E_PERMISSION_MISSING" (object/get o "code")) + (when (= "E_PERMISSION_MISSING" (.-code ^js o)) (utils/show-popup (i18n/label :t/error) (i18n/label :t/photos-access-error)))) @@ -226,27 +210,21 @@ ([images-fn] (show-image-picker images-fn nil)) ([images-fn media-type] - (let [image-picker (.-default image-picker-class)] - (-> image-picker - (.openPicker (clj->js {:multiple false :mediaType (or media-type "any")})) - (.then images-fn) - (.catch show-access-error))))) - -;; Net info -(def net-info (if platform/desktop? - (get-react-property "NetInfo") - (.-default js-dependencies/net-info))) + (-> ^js image-picker + (.openPicker (clj->js {:multiple false :mediaType (or media-type "any")})) + (.then images-fn) + (.catch show-access-error)))) ;; Clipboard (def sharing - (.-Share js-dependencies/react-native)) + (.-Share react-native)) (defn copy-to-clipboard [text] - (.setString (.-Clipboard js-dependencies/react-native) text)) + (.setString ^js (.-Clipboard react-native) text)) (defn get-from-clipboard [clbk] - (let [clipboard-contents (.getString (.-Clipboard js-dependencies/react-native))] + (let [clipboard-contents (.getString ^js (.-Clipboard react-native))] (.then clipboard-contents #(clbk %)))) ;; KeyboardAvoidingView @@ -262,7 +240,7 @@ (views/defview with-activity-indicator [{:keys [timeout style enabled? preview]} comp] (views/letsubs - [loading (reagent/atom true)] + [loading (reagent/atom true)] {:component-did-mount (fn [] (if (or (nil? timeout) (> 100 timeout)) @@ -276,10 +254,9 @@ [activity-indicator {:animating true}]]) comp))) -(def safe-area-provider (adapt-class (object/get js-dependencies/safe-area-context "SafeAreaProvider"))) -(def safe-area-consumer (adapt-class (object/get js-dependencies/safe-area-context "SafeAreaConsumer"))) +(def safe-area-provider (reagent/adapt-react-class SafeAreaProvider)) +(def safe-area-consumer (reagent/adapt-react-class SafeAreaConsumer)) -(def safe-area-view (adapt-class (object/get js-dependencies/safe-area-context "SafeAreaView"))) +(def safe-area-view (reagent/adapt-react-class SafeAreaView)) - -(def touchable-without-feedback-gesture (adapt-class (object/get js-dependencies/react-native-gesture-handler "TouchableWithoutFeedback"))) +(def touchable-without-feedback-gesture (reagent/adapt-react-class TouchableWithoutFeedback)) diff --git a/src/status_im/ui/components/search_input/view.cljs b/src/status_im/ui/components/search_input/view.cljs index 71b3849e42..812011f694 100644 --- a/src/status_im/ui/components/search_input/view.cljs +++ b/src/status_im/ui/components/search_input/view.cljs @@ -31,15 +31,15 @@ (on-focus search-filter)) (reset! search-active? true)) :on-change (fn [e] - (let [native-event (.-nativeEvent e) + (let [^js native-event (.-nativeEvent ^js e) text (.-text native-event)] (when on-change (on-change text))))}]] (when @search-active? [react/touchable-highlight {:on-press (fn [] - (.clear @input-ref) - (.blur @input-ref) + (.clear ^js @input-ref) + (.blur ^js @input-ref) (when on-cancel (on-cancel)) (reset! search-active? false)) :style {:margin-left 16}} diff --git a/src/status_im/ui/components/status_bar/view.cljs b/src/status_im/ui/components/status_bar/view.cljs index b235aa6b3d..349a7fe7b3 100644 --- a/src/status_im/ui/components/status_bar/view.cljs +++ b/src/status_im/ui/components/status_bar/view.cljs @@ -33,14 +33,14 @@ :black (styles/status-bar-black) (styles/status-bar-default))] (when bar-style - (.setBarStyle react/status-bar-class (clj->js bar-style)) true) + (.setBarStyle ^js react/status-bar-class (clj->js bar-style)) true) (when (and background-color platform/android?) - (.setBackgroundColor react/status-bar-class (clj->js background-color))) + (.setBackgroundColor ^js react/status-bar-class (clj->js background-color))) (when hidden - (.setHidden react/status-bar-class (clj->js hidden))) + (.setHidden ^js react/status-bar-class (clj->js hidden))) (when network-activity-indicator-visible (.setNetworkActivityIndicatorVisible - react/status-bar-class + ^js react/status-bar-class (clj->js network-activity-indicator-visible))) (when translucent - (.setTranslucent react/status-bar-class (clj->js translucent))))) + (.setTranslucent ^js react/status-bar-class (clj->js translucent))))) diff --git a/src/status_im/ui/components/svg.cljs b/src/status_im/ui/components/svg.cljs index c28154564c..12d850889f 100644 --- a/src/status_im/ui/components/svg.cljs +++ b/src/status_im/ui/components/svg.cljs @@ -1,16 +1,5 @@ (ns status-im.ui.components.svg - (:require [goog.object :as object] - [status-im.react-native.js-dependencies :as js-dependencies] - [reagent.core :as reagent])) + (:require [reagent.core :as reagent] + ["react-native-svg" :refer (SvgXml)])) -(defn get-property [name] - (object/get js-dependencies/svg name)) - -(defn adapt-class [class] - (when class - (reagent/adapt-react-class class))) - -(defn get-class [name] - (adapt-class (get-property name))) - -(def svgxml (get-class "SvgXml")) \ No newline at end of file +(def svgxml (reagent/adapt-react-class SvgXml)) diff --git a/src/status_im/ui/components/svgimage.cljs b/src/status_im/ui/components/svgimage.cljs index c9ec6571d8..755c170f86 100644 --- a/src/status_im/ui/components/svgimage.cljs +++ b/src/status_im/ui/components/svgimage.cljs @@ -45,7 +45,7 @@ (when (and source uri (http/url-sanitized? uri)) (fn [] [react/view {:style style - :on-layout #(reset! width (-> % .-nativeEvent .-layout .-width))} + :on-layout #(reset! width (-> ^js % .-nativeEvent .-layout .-width))} [components.webview/webview {:java-script-enabled false :third-party-cookies-enabled false diff --git a/src/status_im/ui/components/tabbar/core.cljs b/src/status_im/ui/components/tabbar/core.cljs index 6d4bffda9f..a46104325e 100644 --- a/src/status_im/ui/components/tabbar/core.cljs +++ b/src/status_im/ui/components/tabbar/core.cljs @@ -102,7 +102,7 @@ (when platform/android? (reset! listeners - [(.addListener react/keyboard "keyboardDidShow" + [(.addListener ^js react/keyboard "keyboardDidShow" (fn [] (reset! keyboard-shown? true) (reagent/flush) @@ -110,7 +110,7 @@ (animation/timing keyboard-visible {:toValue 1 :duration 200})))) - (.addListener react/keyboard "keyboardDidHide" + (.addListener ^js react/keyboard "keyboardDidHide" (fn [] (animation/start (animation/timing keyboard-visible @@ -121,7 +121,7 @@ :component-will-unmount (fn [] (when (not-empty @listeners) - (doseq [listener @listeners] + (doseq [^js listener @listeners] (when listener (.remove listener))))) :reagent-render diff --git a/src/status_im/ui/components/tooltip/animations.cljs b/src/status_im/ui/components/tooltip/animations.cljs index 269792d974..78daa6b992 100644 --- a/src/status_im/ui/components/tooltip/animations.cljs +++ b/src/status_im/ui/components/tooltip/animations.cljs @@ -9,6 +9,6 @@ :duration 500 :useNativeDriver true}) (animation/timing bottom-anim-value {:toValue (- bottom-value delta) - :easing (.bezier (animation/easing) 0.685, 0.000, 0.025, 1.185) + :easing (.bezier ^js animation/easing 0.685, 0.000, 0.025, 1.185) :duration 500 :useNativeDriver true})])))) diff --git a/src/status_im/ui/components/topbar.cljs b/src/status_im/ui/components/topbar.cljs index df46c21928..4def503f29 100644 --- a/src/status_im/ui/components/topbar.cljs +++ b/src/status_im/ui/components/topbar.cljs @@ -15,7 +15,7 @@ (into [] (concat [react/view {:style style - :on-layout #(reset! title-padding (max (-> % .-nativeEvent .-layout .-width) + :on-layout #(reset! title-padding (max (-> ^js % .-nativeEvent .-layout .-width) @title-padding))}] children))) diff --git a/src/status_im/ui/components/webview.cljs b/src/status_im/ui/components/webview.cljs index 5b04b79244..337bb4f4a9 100644 --- a/src/status_im/ui/components/webview.cljs +++ b/src/status_im/ui/components/webview.cljs @@ -1,16 +1,15 @@ (ns status-im.ui.components.webview (:require [reagent.core :as reagent] - [status-im.react-native.js-dependencies :as js-dependencies] [reagent.core :as reagent.core] [status-im.utils.platform :as platform] - [status-im.utils.config :as config])) + [status-im.utils.config :as config] + ["react-native" :as react-native] + ["react-native-webview" :default rn-webview])) (def webview-class - (memoize - (fn [] - (reagent/adapt-react-class (.-default js-dependencies/webview))))) + (reagent/adapt-react-class rn-webview)) -(defn module [] (.-WebViewModule (.-NativeModules js-dependencies/react-native))) +(defn module [] (.-WebViewModule ^js (.-NativeModules react-native))) (defn webview [{:keys [dapp? dapp-name] :as opts}] (if (and config/cached-webviews-enabled? platform/android? dapp?) @@ -26,5 +25,5 @@ :reagent-render (fn [opts] (when @dapp-name-sent? - [(webview-class) opts]))})) - [(webview-class) opts])) + [webview-class opts]))})) + [webview-class opts])) diff --git a/src/status_im/ui/screens/browser/site_blocked/views.cljs b/src/status_im/ui/screens/browser/site_blocked/views.cljs index 3be32a8fa0..3cd22db1e9 100644 --- a/src/status_im/ui/screens/browser/site_blocked/views.cljs +++ b/src/status_im/ui/screens/browser/site_blocked/views.cljs @@ -18,7 +18,7 @@ (i18n/label :t/browsing-site-blocked-title)] [react/nested-text {:style styles/description-text} (i18n/label :t/browsing-site-blocked-description1) - [{:on-press #(.openURL react/linking "status-im://chat/public/status") + [{:on-press #(.openURL ^js react/linking "status-im://chat/public/status") :style styles/chat-link-text} "#status"] (i18n/label :t/browsing-site-blocked-description2)] diff --git a/src/status_im/ui/screens/browser/views.cljs b/src/status_im/ui/screens/browser/views.cljs index dcc1f1ad96..07bc51a1ad 100644 --- a/src/status_im/ui/screens/browser/views.cljs +++ b/src/status_im/ui/screens/browser/views.cljs @@ -24,7 +24,6 @@ [status-im.utils.debounce :as debounce] [status-im.browser.webview-ref :as webview-ref]) (:require-macros - [status-im.utils.slurp :refer [slurp]] [status-im.utils.views :as views])) (defn toolbar-content [url url-original {:keys [secure?]} url-editing?] @@ -48,7 +47,7 @@ [react/touchable-highlight {:style styles/url-text-container :on-press #(re-frame/dispatch [:browser.ui/url-input-pressed])} [react/text (http/url-host url-original)]]) - [react/touchable-highlight {:on-press #(.reload @webview-ref/webview-ref) + [react/touchable-highlight {:on-press #(.reload ^js @webview-ref/webview-ref) :accessibility-label :refresh-page-button} [icons/icon :main-icons/refresh]]])) @@ -132,13 +131,13 @@ (debounce/debounce-and-dispatch [:browser/navigation-state-changed % error?] 500)) - ;; Extract event data here due to - ;; https://reactjs.org/docs/events.html#event-pooling - :on-message #(re-frame/dispatch [:browser/bridge-message-received (.. % -nativeEvent -data)]) + ;; Extract event data here due to + ;; https://reactjs.org/docs/events.html#event-pooling + :on-message #(re-frame/dispatch [:browser/bridge-message-received (.. ^js % -nativeEvent -data)]) :on-load #(re-frame/dispatch [:browser/loading-started]) :on-error #(re-frame/dispatch [:browser/error-occured]) :injected-java-script-before-content-loaded (js-res/ethereum-provider (str network-id)) - :injected-java-script (js-res/webview-js)}])] + :injected-java-script js-res/webview-js}])] [navigation url-original can-go-back? can-go-forward? dapps-account] [permissions.views/permissions-panel [(:dapp? browser) (:dapp browser) dapps-account] show-permission] (when show-tooltip diff --git a/src/status_im/ui/screens/chat/input/input.cljs b/src/status_im/ui/screens/chat/input/input.cljs index 8a09797fec..abecdca0e8 100644 --- a/src/status_im/ui/screens/chat/input/input.cljs +++ b/src/status_im/ui/screens/chat/input/input.cljs @@ -24,7 +24,7 @@ :editable (not cooldown-enabled?) :blur-on-submit false :on-focus #(re-frame/dispatch-sync [:chat.ui/input-on-focus]) - :on-change #(re-frame/dispatch [:chat.ui/set-chat-input-text (.-text (.-nativeEvent %))]) + :on-change #(re-frame/dispatch [:chat.ui/set-chat-input-text (.-text ^js (.-nativeEvent ^js %))]) :style style/input-view :placeholder (if cooldown-enabled? (i18n/label :cooldown/text-input-disabled) diff --git a/src/status_im/ui/screens/chat/message/gap.cljs b/src/status_im/ui/screens/chat/message/gap.cljs index fcd49c3a45..66b6e8bc59 100644 --- a/src/status_im/ui/screens/chat/message/gap.cljs +++ b/src/status_im/ui/screens/chat/message/gap.cljs @@ -11,7 +11,7 @@ [ids first-gap? idx list-ref] (fn [] (when (and list-ref @list-ref (not platform/desktop?)) - (.scrollToIndex @list-ref + (.scrollToIndex ^js @list-ref #js {:index (max 0 (dec idx)) :viewOffset 20 :viewPosition 0.5})) diff --git a/src/status_im/ui/screens/chat/message/message.cljs b/src/status_im/ui/screens/chat/message/message.cljs index 58b060b806..d2ae778f0c 100644 --- a/src/status_im/ui/screens/chat/message/message.cljs +++ b/src/status_im/ui/screens/chat/message/message.cljs @@ -77,7 +77,7 @@ #(when (and (security/safe-link? destination) (security/safe-link-text? message-text)) (if platform/desktop? - (.openURL react/linking (http/normalize-url destination)) + (.openURL ^js react/linking (http/normalize-url destination)) (re-frame/dispatch [:browser.ui/message-link-pressed destination])))} destination]) @@ -90,7 +90,8 @@ :else colors/mention-incoming)} :on-press (when-not (= content-type constants/content-type-system-text) #(re-frame/dispatch [:chat.ui/start-chat literal {:navigation-reset? true}]))} - [mention-element literal]]) "status-tag" + [mention-element literal]]) + "status-tag" (conj acc [react/text-class {:style {:color (if outgoing colors/white-persist colors/blue) :text-decoration-line :underline} @@ -111,7 +112,7 @@ (-> content :parsed-text peek :children))]]) (defn render-block [{:keys [content outgoing content-type]} acc - {:keys [type literal children]}] + {:keys [type ^js literal children]}] (case type "paragraph" @@ -185,15 +186,12 @@ [chat-id message-id] [react/touchable-highlight {:on-press - (fn [] (if platform/desktop? - (desktop.pop-up/show-desktop-menu - (desktop.pop-up/get-message-menu-items chat-id message-id)) - (do - (re-frame/dispatch - [:bottom-sheet/show-sheet - {:content (sheets/options chat-id message-id) - :content-height 200}]) - (react/dismiss-keyboard!))))} + (fn [] + (re-frame/dispatch + [:bottom-sheet/show-sheet + {:content (sheets/options chat-id message-id) + :content-height 200}]) + (react/dismiss-keyboard!))} [react/view style/not-sent-view [react/text {:style style/not-sent-text} (i18n/label (if platform/desktop? diff --git a/src/status_im/ui/screens/chat/stickers/views.cljs b/src/status_im/ui/screens/chat/stickers/views.cljs index e03e21b612..2fb4feb35e 100644 --- a/src/status_im/ui/screens/chat/stickers/views.cljs +++ b/src/status_im/ui/screens/chat/stickers/views.cljs @@ -68,7 +68,7 @@ :font-size 17}} (i18n/label :t/recently-used-stickers)]]))) -(defn update-scroll-position [ref installed-packs selected-pack window-width animated?] +(defn update-scroll-position [^js ref installed-packs selected-pack window-width animated?] (when ref ;; bug on Android https://github.com/facebook/react-native/issues/24531 (js/setTimeout @@ -81,7 +81,7 @@ (.scrollTo ref #js {:x x :animated animated?}))) 1))) -(defn on-scroll [e installed-packs window-width] +(defn on-scroll [^js e installed-packs window-width] (let [num (/ (.-nativeEvent.contentOffset.x e) window-width) pack-id (if (zero? num) :recent @@ -103,7 +103,7 @@ :on-momentum-scroll-end #(on-scroll % installed-packs width) :scroll-event-throttle 8 :scroll-to-overflow-enabled true - :on-scroll #(reset! scroll-x (.-nativeEvent.contentOffset.x %))} + :on-scroll #(reset! scroll-x (.-nativeEvent.contentOffset.x ^js %))} ^{:key "recent"} [recent-stickers-panel width] (for [{:keys [stickers id]} installed-packs] diff --git a/src/status_im/ui/screens/chat/views.cljs b/src/status_im/ui/screens/chat/views.cljs index b5a9b5ce8e..aa48453610 100644 --- a/src/status_im/ui/screens/chat/views.cljs +++ b/src/status_im/ui/screens/chat/views.cljs @@ -93,16 +93,16 @@ (defonce messages-list-ref (atom nil)) -(defn on-viewable-items-changed [e] +(defn on-viewable-items-changed [^js e] (when @messages-list-ref (reset! state/first-not-visible-item - (when-let [last-visible-element (aget (.-viewableItems e) (dec (.-length (.-viewableItems e))))] - (let [index (.-index last-visible-element) + (when-let [^js last-visible-element (aget (.-viewableItems e) (dec (.-length ^js (.-viewableItems e))))] + (let [index (.-index last-visible-element) ;; Get first not visible element, if it's a datemark/gap ;; we might unnecessarely add messages on receiving as ;; they do not have a clock value, but most of the times ;; it will be a message - first-not-visible (aget (.-data (.-props @messages-list-ref)) (inc index))] + first-not-visible (aget (.-data ^js (.-props ^js @messages-list-ref)) (inc index))] (when (and first-not-visible (= :message (:type first-not-visible))) first-not-visible))))) diff --git a/src/status_im/ui/screens/db.cljs b/src/status_im/ui/screens/db.cljs index c12f71e9f1..6f2a6bbfd5 100644 --- a/src/status_im/ui/screens/db.cljs +++ b/src/status_im/ui/screens/db.cljs @@ -9,7 +9,6 @@ status-im.ui.screens.group.db status-im.chat.specs status-im.ui.screens.profile.db - status-im.network.module status-im.mailserver.db status-im.ens.db status-im.browser.db diff --git a/src/status_im/ui/screens/desktop/views.cljs b/src/status_im/ui/screens/desktop/views.cljs index f2f493ef5a..677c7794de 100644 --- a/src/status_im/ui/screens/desktop/views.cljs +++ b/src/status_im/ui/screens/desktop/views.cljs @@ -12,7 +12,6 @@ [status-im.ui.screens.multiaccounts.views :as multiaccounts.views] [status-im.utils.platform :as platform] [status-im.i18n :as i18n] - [status-im.react-native.js-dependencies :as rn-dependencies] [taoensso.timbre :as log] [status-im.utils.utils :as utils])) @@ -25,7 +24,7 @@ (fn [] (.getValue rn-dependencies/desktop-config "desktop-alpha-warning-shown-for-version" #(when-not (= %1 version) - (.setValue rn-dependencies/desktop-config "desktop-alpha-warning-shown-for-version" 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 diff --git a/src/status_im/ui/screens/ens/views.cljs b/src/status_im/ui/screens/ens/views.cljs index 3f2ef35c84..c23a359acf 100644 --- a/src/status_im/ui/screens/ens/views.cljs +++ b/src/status_im/ui/screens/ens/views.cljs @@ -189,7 +189,7 @@ ;; [:> navigation/navigation-events ;; {:on-did-focus ;; (fn [] - ;; (.focus @input-ref))}] + ;; (.focus ^js @input-ref))}] ;;NOTE setting the key as placeholder forces the component to remount ;;when the placeholder changes, this prevents the placeholder from ;;disappearing when switching between stateofus and custom domain @@ -464,12 +464,12 @@ [term-point (i18n/label :t/ens-terms-point-9 {:address contract})] [react/view {:style {:align-items :center :margin-top 16 :margin-bottom 8}} - [link {:on-press #(.openURL react/linking (etherscan-url contract))} + [link {:on-press #(.openURL ^js react/linking (etherscan-url contract))} (i18n/label :t/etherscan-lookup)]] [term-point (i18n/label :t/ens-terms-point-10)] [react/view {:style {:align-items :center :margin-top 16 :margin-bottom 8}} - [link {:on-press #(.openURL react/linking (etherscan-url (:mainnet ethereum.ens/ens-registries)))} + [link {:on-press #(.openURL ^js react/linking (etherscan-url (:mainnet ethereum.ens/ens-registries)))} (i18n/label :t/etherscan-lookup)]]]])) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; @@ -479,7 +479,7 @@ (def ^:const release-instructions-link "https://our.status.im/managing-your-ens-name-in-v1/") (defn open-release-instructions-link! [] - (.openURL react/linking release-instructions-link)) + (.openURL ^js react/linking release-instructions-link)) (views/defview name-details [] (views/letsubs [{:keys [name address custom-domain? public-key diff --git a/src/status_im/ui/screens/hardwallet/settings/views.cljs b/src/status_im/ui/screens/hardwallet/settings/views.cljs index fb11c8a81f..ccc2d057c3 100644 --- a/src/status_im/ui/screens/hardwallet/settings/views.cljs +++ b/src/status_im/ui/screens/hardwallet/settings/views.cljs @@ -110,7 +110,7 @@ [react/view [action-row {:icon :main-icons/help :label :t/help-capitalized - :on-press #(.openURL react/linking "https://hardwallet.status.im")}] + :on-press #(.openURL ^js react/linking "https://hardwallet.status.im")}] (when pairing [react/view [action-row {:icon :main-icons/add @@ -121,7 +121,7 @@ #_[action-row {:icon :main-icons/close :label :t/unpair-card :on-press #(re-frame/dispatch [:keycard-settings.ui/unpair-card-pressed])}]])])] - ; NOTE: Reset card is hidden until multiaccount removal will be implemented + ; NOTE: Reset card is hidden until multiaccount removal will be implemented #_(when pairing [react/view {:margin-bottom 35 :margin-left 16} diff --git a/src/status_im/ui/screens/help_center/views.cljs b/src/status_im/ui/screens/help_center/views.cljs index b95edaf240..5703aadab0 100644 --- a/src/status_im/ui/screens/help_center/views.cljs +++ b/src/status_im/ui/screens/help_center/views.cljs @@ -11,7 +11,7 @@ :title :t/faq :accessibility-label :faq-button :on-press - #(.openURL react/linking + #(.openURL ^js react/linking (if platform/desktop? "https://status.im/docs/FAQ-desktop.html" "https://status.im/docs/FAQs.html")) diff --git a/src/status_im/ui/screens/home/views.cljs b/src/status_im/ui/screens/home/views.cljs index 50bd22687d..ef27c52810 100644 --- a/src/status_im/ui/screens/home/views.cljs +++ b/src/status_im/ui/screens/home/views.cljs @@ -22,7 +22,7 @@ (defn welcome-image-wrapper [] (let [dimensions (reagent/atom {})] (fn [] - [react/view {:on-layout (fn [e] + [react/view {:on-layout (fn [^js e] (reset! dimensions (bean/->clj (-> e .-nativeEvent .-layout)))) :style {:align-items :center :justify-content :center diff --git a/src/status_im/ui/screens/home/views/inner_item.cljs b/src/status_im/ui/screens/home/views/inner_item.cljs index 94b6d6d276..ca1f602c5a 100644 --- a/src/status_im/ui/screens/home/views/inner_item.cljs +++ b/src/status_im/ui/screens/home/views/inner_item.cljs @@ -92,4 +92,4 @@ :on-long-press #(re-frame/dispatch [:bottom-sheet/show-sheet {:content (fn [] [sheets/actions home-item]) - :height 256}])}])) \ No newline at end of file + :height 256}])}])) diff --git a/src/status_im/ui/screens/intro/views.cljs b/src/status_im/ui/screens/intro/views.cljs index 4fa6cd9d3e..8360fdab1d 100644 --- a/src/status_im/ui/screens/intro/views.cljs +++ b/src/status_im/ui/screens/intro/views.cljs @@ -42,7 +42,7 @@ :flex 1 :margin-bottom bottom-margin :justify-content :flex-end} - :on-layout (fn [e] + :on-layout (fn [^js e] (reset! width (-> e .-nativeEvent .-layout .-width)))} [react/scroll-view {:horizontal true :paging-enabled true @@ -50,7 +50,7 @@ :shows-vertical-scroll-indicator false :shows-horizontal-scroll-indicator false :pinch-gesture-enabled false - :on-scroll #(let [x (.-nativeEvent.contentOffset.x %)] + :on-scroll #(let [^js x (.-nativeEvent.contentOffset.x ^js %)] (reset! scroll-x x)) :style {;:width @width :margin-bottom bottom-margin}} @@ -65,7 +65,7 @@ (let [margin 32 size (min @width @height) #_(- (min @width @height) #_(* 2 margin))] [react/view {:style {:flex 1} - :on-layout (fn [e] + :on-layout (fn [^js e] (reset! height (-> e .-nativeEvent .-layout .-height)))} [react/image {:source (:image s) :resize-mode :contain @@ -108,7 +108,7 @@ (defn generate-key [] (let [dimensions (r/atom {})] (fn [] - [react/view {:on-layout (fn [e] + [react/view {:on-layout (fn [^js e] (reset! dimensions (js->clj (-> e .-nativeEvent .-layout) :keywordize-keys true))) :style {:align-items :center :justify-content :center diff --git a/src/status_im/ui/screens/keycard/onboarding/views.cljs b/src/status_im/ui/screens/keycard/onboarding/views.cljs index df46d7ab1b..86f8733070 100644 --- a/src/status_im/ui/screens/keycard/onboarding/views.cljs +++ b/src/status_im/ui/screens/keycard/onboarding/views.cljs @@ -44,7 +44,7 @@ :text-align :center}} (i18n/label :t/keycard-onboarding-intro-text)]] [react/view - [react/touchable-highlight {:on-press #(.openURL react/linking "https://keycard.status.im")} + [react/touchable-highlight {:on-press #(.openURL ^js react/linking "https://keycard.status.im")} [react/view {:flex-direction :row :align-items :center :justify-content :center} diff --git a/src/status_im/ui/screens/keycard/recovery/views.cljs b/src/status_im/ui/screens/keycard/recovery/views.cljs index 577276e973..a55dc1f3e1 100644 --- a/src/status_im/ui/screens/keycard/recovery/views.cljs +++ b/src/status_im/ui/screens/keycard/recovery/views.cljs @@ -42,7 +42,7 @@ :text-align :center}} (i18n/label :t/keycard-recovery-intro-text)]] [react/view {:margin-top 33} - [react/touchable-highlight {:on-press #(.openURL react/linking "https://keycard.status.im")} + [react/touchable-highlight {:on-press #(.openURL ^js react/linking "https://keycard.status.im")} [react/view {:flex-direction :row :align-items :center :justify-content :center} diff --git a/src/status_im/ui/screens/keycard/views.cljs b/src/status_im/ui/screens/keycard/views.cljs index 8811b6bc2d..14572a16ec 100644 --- a/src/status_im/ui/screens/keycard/views.cljs +++ b/src/status_im/ui/screens/keycard/views.cljs @@ -196,7 +196,7 @@ :style {:width 144 :height 120}}] [react/view {:margin-top 40} - [react/touchable-highlight {:on-press #(.openURL react/linking "https://keycard.status.im")} + [react/touchable-highlight {:on-press #(.openURL ^js react/linking "https://keycard.status.im")} [react/view {:flex-direction :row :align-items :center :justify-content :center} diff --git a/src/status_im/ui/screens/multiaccounts/login/views.cljs b/src/status_im/ui/screens/multiaccounts/login/views.cljs index fa6c5fa90e..499a29a2d7 100644 --- a/src/status_im/ui/screens/multiaccounts/login/views.cljs +++ b/src/status_im/ui/screens/multiaccounts/login/views.cljs @@ -17,7 +17,7 @@ [status-im.ui.components.topbar :as topbar]) (:require-macros [status-im.utils.views :refer [defview letsubs]])) -(defn login-multiaccount [password-text-input] +(defn login-multiaccount [^js password-text-input] (.blur password-text-input) (re-frame/dispatch [:multiaccounts.login.ui/password-input-submitted])) diff --git a/src/status_im/ui/screens/navigation.cljs b/src/status_im/ui/screens/navigation.cljs index af352f3ac9..e5e5142e7a 100644 --- a/src/status_im/ui/screens/navigation.cljs +++ b/src/status_im/ui/screens/navigation.cljs @@ -51,12 +51,6 @@ (log/debug :navigate-to view-id params) (navigation/navigate-to (name view-id) params))) -(re-frame/reg-fx - ::navigate-replace - (fn [[view-id params]] - (log/debug :navigate-replace view-id params) - (navigation/navigate-replace (name view-id) params))) - (re-frame/reg-fx ::navigate-back (fn [] diff --git a/src/status_im/ui/screens/pairing/views.cljs b/src/status_im/ui/screens/pairing/views.cljs index e50b8e80e6..ea0daee512 100644 --- a/src/status_im/ui/screens/pairing/views.cljs +++ b/src/status_im/ui/screens/pairing/views.cljs @@ -173,7 +173,7 @@ (defn info-section [] [react/view {:style styles/info-section} - [react/touchable-highlight {:on-press #(.openURL react/linking "https://status.im/tutorials/pairing.html")} + [react/touchable-highlight {:on-press #(.openURL ^js react/linking "https://status.im/tutorials/pairing.html")} [react/text {:style styles/info-section-text} (i18n/label :t/learn-more)]]]) (defn installations-list [installations] diff --git a/src/status_im/ui/screens/popover/views.cljs b/src/status_im/ui/screens/popover/views.cljs index adf77ac663..7651b0fa40 100644 --- a/src/status_im/ui/screens/popover/views.cljs +++ b/src/status_im/ui/screens/popover/views.cljs @@ -8,11 +8,11 @@ [status-im.ui.screens.wallet.signing-phrase.views :as signing-phrase] [status-im.ui.screens.wallet.request.views :as request] [status-im.ui.screens.profile.user.views :as profile.user] + ["react-native" :refer (BackHandler)] [status-im.ui.screens.multiaccounts.recover.views :as multiaccounts.recover] - [status-im.react-native.js-dependencies :as js-dependencies] - [status-im.ui.components.colors :as colors] [status-im.ui.screens.signing.views :as signing] - [status-im.ui.screens.biometric.views :as biometric])) + [status-im.ui.screens.biometric.views :as biometric] + [status-im.ui.components.colors :as colors])) (defn hide-panel-anim [bottom-anim-value alpha-value window-height] @@ -34,7 +34,7 @@ :duration 500 :useNativeDriver true})]))) -(defn popover-view [popover window-height] +(defn popover-view [_ window-height] (let [bottom-anim-value (anim/create-value window-height) alpha-value (anim/create-value 0) clear-timeout (atom nil) @@ -51,15 +51,15 @@ on-show (fn [] (show-panel-anim bottom-anim-value alpha-value) (when platform/android? - (.removeEventListener js-dependencies/back-handler + (.removeEventListener BackHandler "hardwareBackPress" request-close) - (.addEventListener js-dependencies/back-handler + (.addEventListener BackHandler "hardwareBackPress" request-close))) on-hide (fn [] (when platform/android? - (.removeEventListener js-dependencies/back-handler + (.removeEventListener BackHandler "hardwareBackPress" request-close)))] (reagent/create-class diff --git a/src/status_im/ui/screens/privacy_and_security_settings/views.cljs b/src/status_im/ui/screens/privacy_and_security_settings/views.cljs index 9a68f8ed96..115e9d9d87 100644 --- a/src/status_im/ui/screens/privacy_and_security_settings/views.cljs +++ b/src/status_im/ui/screens/privacy_and_security_settings/views.cljs @@ -1,18 +1,15 @@ (ns status-im.ui.screens.privacy-and-security-settings.views - (:require [clojure.string :as string] - [reagent.core :as reagent] - [re-frame.core :as re-frame] + (:require [re-frame.core :as re-frame] [status-im.i18n :as i18n] [status-im.ui.components.colors :as colors] [status-im.ui.components.common.common :as components.common] [status-im.ui.components.list.views :as list] [status-im.ui.components.react :as react] - [status-im.ui.components.toolbar.view :as toolbar] [status-im.multiaccounts.biometric.core :as biometric] [status-im.ui.components.topbar :as topbar]) (:require-macros [status-im.utils.views :as views])) -(defn- list-data [mnemonic preview-privacy? supported-biometric-auth biometric-auth? keycard?] +(defn- list-data [mnemonic preview-privacy? supported-biometric-auth biometric-auth? _] [{:type :section-header :title :t/security :container-margin-top 6} diff --git a/src/status_im/ui/screens/profile/components/sheets.cljs b/src/status_im/ui/screens/profile/components/sheets.cljs index 2ceafb8faa..c591866b46 100644 --- a/src/status_im/ui/screens/profile/components/sheets.cljs +++ b/src/status_im/ui/screens/profile/components/sheets.cljs @@ -2,7 +2,6 @@ (:require [re-frame.core :as re-frame] [status-im.ui.components.react :as react] [status-im.i18n :as i18n] - [status-im.ui.components.colors :as colors] [status-im.ui.components.list-item.views :as list-item] [status-im.ui.screens.profile.components.styles :as styles]) (:require-macros [status-im.utils.views :as views])) @@ -42,4 +41,4 @@ {:theme :action-destructive :accessibility-label :block-contact-confirm :title :t/block-contact - :on-press #(hide-sheet-and-dispatch [:contact.ui/block-contact-confirmed public-key])}]])) \ No newline at end of file + :on-press #(hide-sheet-and-dispatch [:contact.ui/block-contact-confirmed public-key])}]])) diff --git a/src/status_im/ui/screens/profile/components/styles.cljs b/src/status_im/ui/screens/profile/components/styles.cljs index 46751eee06..2360316193 100644 --- a/src/status_im/ui/screens/profile/components/styles.cljs +++ b/src/status_im/ui/screens/profile/components/styles.cljs @@ -1,6 +1,5 @@ (ns status-im.ui.screens.profile.components.styles - (:require [status-im.ui.components.colors :as colors] - [status-im.utils.styles :as styles])) + (:require [status-im.ui.components.colors :as colors])) ;; profile header elements @@ -27,18 +26,6 @@ (def profile-three-words {:color colors/gray}) -(styles/def profile-name-input-text - {:text-align :center - :flex 1 - :desktop {:height 20 - :width 200} - :ios {:margin-top 1 - :height 45 - :border-bottom-width 1 - :border-bottom-color colors/black-transparent} - :android {:border-bottom-width 2 - :border-bottom-color colors/blue}}) - (def profile-header-name-container {:flex 1 :justify-content :center diff --git a/src/status_im/ui/screens/profile/components/views.cljs b/src/status_im/ui/screens/profile/components/views.cljs index 57e25740bb..735ed4ea7b 100644 --- a/src/status_im/ui/screens/profile/components/views.cljs +++ b/src/status_im/ui/screens/profile/components/views.cljs @@ -2,7 +2,6 @@ (:require [clojure.string :as string] [re-frame.core :as re-frame] [status-im.multiaccounts.core :as multiaccounts] - [status-im.ethereum.stateofus :as stateofus] [status-im.i18n :as i18n] [status-im.ui.components.chat-icon.screen :as chat-icon.screen] [status-im.ui.components.colors :as colors] @@ -10,25 +9,10 @@ [status-im.ui.components.icons.vector-icons :as vector-icons] [status-im.ui.components.react :as react] [status-im.utils.gfycat.core :as gfy] - [status-im.ui.components.list-selection :as list-selection] [status-im.ui.screens.profile.user.sheet.views :as sheets] [status-im.ui.screens.profile.components.styles :as styles])) -;; profile header elements - -(defn- profile-name-input [name on-change-text-event & [props]] - [react/view - [react/text-input - (merge {:style styles/profile-name-input-text - :placeholder "" - :default-value name - :auto-focus true - :on-change-text #(when on-change-text-event - (re-frame/dispatch [on-change-text-event %])) - :accessibility-label :username-input} - props)]]) - -(defn- names [{:keys [usernames name public-key] :as contact}] +(defn- names [{:keys [usernames public-key] :as contact}] (let [generated-name (when public-key (gfy/generate-gfy public-key))] [react/view styles/profile-header-name-container-with-subtitle [react/text {:style styles/profile-name-text-with-subtitle @@ -48,7 +32,7 @@ :ens-name ens-name}])) (defn- profile-header-display - [{:keys [name public-key preferred-name ens-name] :as contact} + [{:keys [public-key preferred-name ens-name] :as contact} allow-icon-change? include-remove-action?] [react/touchable-opacity {:on-press #(chat-key-popover public-key (or ens-name diff --git a/src/status_im/ui/screens/profile/events.cljs b/src/status_im/ui/screens/profile/events.cljs index c24c1c0b14..3862272ffa 100644 --- a/src/status_im/ui/screens/profile/events.cljs +++ b/src/status_im/ui/screens/profile/events.cljs @@ -1,6 +1,5 @@ (ns status-im.ui.screens.profile.events (:require [re-frame.core :as re-frame] - [status-im.browser.core :as browser] [status-im.multiaccounts.model :as multiaccounts.model] [status-im.ui.screens.profile.models :as profile.models] [status-im.ui.screens.profile.navigation] 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 ff4e8bda41..411a192bdb 100644 --- a/src/status_im/ui/screens/profile/group_chat/views.cljs +++ b/src/status_im/ui/screens/profile/group_chat/views.cljs @@ -93,7 +93,6 @@ (defview group-chat-profile [] (letsubs [{:keys [admins chat-id joined?] :as current-chat} [:chats/current-chat] - editing? [:group-chat-profile/editing?] members [:contacts/current-chat-contacts] changed-chat [:group-chat-profile/profile] current-pk [:multiaccount/public-key]] diff --git a/src/status_im/ui/screens/profile/models.cljs b/src/status_im/ui/screens/profile/models.cljs index 2c389f8cba..7f071f58eb 100644 --- a/src/status_im/ui/screens/profile/models.cljs +++ b/src/status_im/ui/screens/profile/models.cljs @@ -1,5 +1,6 @@ (ns status-im.ui.screens.profile.models (:require [clojure.spec.alpha :as spec] + [clojure.string :as clojure.string] [re-frame.core :as re-frame] [status-im.ui.components.react :as react] [status-im.ui.screens.profile.navigation] @@ -21,9 +22,9 @@ (image-processing/img->base64 path on-success on-error 150 150))) "photo")) -(defn send-transaction [chat-id {:keys [db] :as cofx}] +(defn send-transaction [chat-id cofx] ;;TODO start send transaction command flow - (chat-models/start-chat chat-id {:navigation-reset? true})) + (chat-models/start-chat cofx chat-id {:navigation-reset? true})) (defn- valid-name? [name] (spec/valid? :profile/name name)) diff --git a/src/status_im/ui/screens/profile/photo_capture/views.cljs b/src/status_im/ui/screens/profile/photo_capture/views.cljs index b47ac8905d..570bc2d6f5 100644 --- a/src/status_im/ui/screens/profile/photo_capture/views.cljs +++ b/src/status_im/ui/screens/profile/photo_capture/views.cljs @@ -3,7 +3,6 @@ [reagent.core :as reagent] [status-im.ui.components.camera :as camera] [status-im.ui.components.react :as react] - [status-im.i18n :as i18n] [status-im.ui.screens.profile.photo-capture.styles :as styles] [status-im.utils.image-processing :as image-processing] [taoensso.timbre :as log] @@ -11,7 +10,7 @@ [status-im.ui.components.topbar :as topbar] [status-im.ui.components.colors :as colors])) -(defn image-captured [data] +(defn image-captured [^js data] (let [path (.-uri data) _ (log/debug "Captured image: " path) on-success (fn [base64] @@ -27,17 +26,18 @@ [react/view styles/container [topbar/topbar {:title :t/image-source-title}] [camera/camera {:style {:flex 1} - ;:aspect (:fill camera/aspects) + ;;:aspect (:fill camera/aspects) :captureQuality "480p" - ;:captureTarget (:disk camera/capture-targets) + ;;:captureTarget (:disk camera/capture-targets) :type "front" :ref #(reset! camera-ref %)}] [react/view styles/button-container [react/view styles/button - [react/touchable-highlight {:on-press (fn [] - (let [camera @camera-ref] - (-> (.takePictureAsync camera) - (.then image-captured) - (.catch #(log/debug "Error capturing image: " %)))))} + [react/touchable-highlight + {:on-press (fn [] + (let [^js camera @camera-ref] + (-> (.takePictureAsync camera) + (.then image-captured) + (.catch #(log/debug "Error capturing image: " %)))))} [react/view [icons/icon :main-icons/camera {:color colors/white}]]]]]])) diff --git a/src/status_im/ui/screens/profile/seed/styles.cljs b/src/status_im/ui/screens/profile/seed/styles.cljs index 133ad6e2e7..89f08a09ea 100644 --- a/src/status_im/ui/screens/profile/seed/styles.cljs +++ b/src/status_im/ui/screens/profile/seed/styles.cljs @@ -1,6 +1,5 @@ (ns status-im.ui.screens.profile.seed.styles - (:require [status-im.ui.components.colors :as colors] - [status-im.ui.components.styles :as common.styles])) + (:require [status-im.ui.components.colors :as colors])) (def intro-image {:margin-top 16 diff --git a/src/status_im/ui/screens/profile/seed/views.cljs b/src/status_im/ui/screens/profile/seed/views.cljs index d486458088..0374a67fd8 100644 --- a/src/status_im/ui/screens/profile/seed/views.cljs +++ b/src/status_im/ui/screens/profile/seed/views.cljs @@ -3,22 +3,17 @@ (:require [status-im.ui.components.react :as react] [status-im.ui.components.toolbar.view :as toolbar] [status-im.ui.components.toolbar.actions :as actions] - [status-im.ui.components.colors :as colors] - [status-im.react-native.js-dependencies :as js-dependencies] [status-im.react-native.resources :as resources] [status-im.ui.components.common.common :as components.common] [re-frame.core :as re-frame] [reagent.core :as reagent] [status-im.ui.components.text-input.view :as text-input] [status-im.ui.components.icons.vector-icons :as icons] - [status-im.ui.components.common.common :as components.common] [status-im.ui.components.common.styles :as components.common.styles] [clojure.string :as string] - [status-im.utils.config :as config] [status-im.utils.utils :as utils] [status-im.ui.screens.profile.seed.styles :as styles] [status-im.i18n :as i18n] - [status-im.ui.components.styles :as common.styles] [status-im.utils.platform :as platform])) (def steps-numbers diff --git a/src/status_im/ui/screens/profile/tribute_to_talk/views.cljs b/src/status_im/ui/screens/profile/tribute_to_talk/views.cljs index a05047a8a9..dd954d93c3 100644 --- a/src/status_im/ui/screens/profile/tribute_to_talk/views.cljs +++ b/src/status_im/ui/screens/profile/tribute_to_talk/views.cljs @@ -1,6 +1,5 @@ (ns status-im.ui.screens.profile.tribute-to-talk.views - (:require [clojure.string :as string] - [re-frame.core :as re-frame] + (:require [re-frame.core :as re-frame] [status-im.i18n :as i18n] [status-im.react-native.resources :as resources] [status-im.ui.components.colors :as colors] diff --git a/src/status_im/ui/screens/profile/user/views.cljs b/src/status_im/ui/screens/profile/user/views.cljs index 11af4aff2d..486e0d00e7 100644 --- a/src/status_im/ui/screens/profile/user/views.cljs +++ b/src/status_im/ui/screens/profile/user/views.cljs @@ -26,7 +26,7 @@ (views/letsubs [{:keys [address ens-name]} [:popover/popover] width (reagent/atom nil)] (let [link (universal-links/generate-link :user :external (or ens-name address))] - [react/view {:on-layout #(reset! width (-> % .-nativeEvent .-layout .-width))} + [react/view {:on-layout #(reset! width (-> ^js % .-nativeEvent .-layout .-width))} [react/view {:style {:padding-top 16 :padding-horizontal 16}} (when @width [qr-code-viewer/qr-code-view (- @width 32) address]) @@ -61,7 +61,7 @@ ;:icon :main-icons/link :accessibility-label :share-my-contact-code-button}]]]))) -(defn- header [{:keys [photo-path public-key ens-name] :as account} photo-added?] +(defn- header [account photo-added?] [profile.components/profile-header {:contact account ;;set to true if we want to re-enable custom icon diff --git a/src/status_im/ui/screens/progress/views.cljs b/src/status_im/ui/screens/progress/views.cljs index b92378d26c..47dd940909 100644 --- a/src/status_im/ui/screens/progress/views.cljs +++ b/src/status_im/ui/screens/progress/views.cljs @@ -1,10 +1,9 @@ (ns status-im.ui.screens.progress.views - (:require-macros [status-im.utils.views :refer [defview letsubs]]) + (:require-macros [status-im.utils.views :refer [defview]]) (:require [status-im.ui.screens.progress.styles :as styles] - [status-im.ui.components.react :as react] - [status-im.ui.components.react :as components])) + [status-im.ui.components.react :as react])) ;; a simple view with animated progress indicator in its center (defview progress [_] [react/keyboard-avoiding-view {:style (styles/container)} - [components/activity-indicator {:animating true}]]) + [react/activity-indicator {:animating true}]]) diff --git a/src/status_im/ui/screens/qr_scanner/views.cljs b/src/status_im/ui/screens/qr_scanner/views.cljs index 57da776de2..baf8de46ff 100644 --- a/src/status_im/ui/screens/qr_scanner/views.cljs +++ b/src/status_im/ui/screens/qr_scanner/views.cljs @@ -11,7 +11,7 @@ [status-im.utils.config :as config] [status-im.ui.components.button :as button])) -(defn- topbar [camera-flashlight {:keys [title] :as opts}] +(defn- topbar [_ {:keys [title] :as opts}] [topbar/toolbar {:transparent? true} [topbar/nav-text diff --git a/src/status_im/ui/screens/routing/chat_stack.cljs b/src/status_im/ui/screens/routing/chat_stack.cljs index 8f3809e39c..5d5e5a3452 100644 --- a/src/status_im/ui/screens/routing/chat_stack.cljs +++ b/src/status_im/ui/screens/routing/chat_stack.cljs @@ -5,8 +5,6 @@ [status-im.ui.screens.profile.contact.views :as profile.contact] [status-im.ui.screens.group.views :as group] [status-im.ui.screens.profile.group-chat.views :as profile.group-chat] - [status-im.chat.models.loading :as chat.loading] - [status-im.ui.screens.group.events :as group.events] [status-im.chat.models :as chat.models] [status-im.ui.components.tabbar.styles :as tabbar.styles] [status-im.ui.screens.stickers.views :as stickers])) diff --git a/src/status_im/ui/screens/routing/core.cljs b/src/status_im/ui/screens/routing/core.cljs index 78240927e9..a2b58d35ad 100644 --- a/src/status_im/ui/screens/routing/core.cljs +++ b/src/status_im/ui/screens/routing/core.cljs @@ -1,31 +1,36 @@ (ns status-im.ui.screens.routing.core - (:require - [reagent.core :as reagent] - [status-im.ui.components.react :as react] - [re-frame.core :as re-frame] - [taoensso.timbre :as log] - [status-im.utils.platform :as platform] - [oops.core :refer [ocall oget]] - [status-im.react-native.js-dependencies :as js-dependencies] - [status-im.ui.components.colors :as colors])) + (:require [reagent.core :as reagent] + [status-im.ui.components.colors :as colors] + [re-frame.core :as re-frame] + [taoensso.timbre :as log] + [status-im.utils.platform :as platform] + [status-im.ui.components.react :as react] + ["react" :refer (useCallback useEffect)] + ["react-native" :refer (BackHandler)] + ["@react-navigation/native" :refer (NavigationContainer StackActions CommonActions useFocusEffect) :as react-navigation] + ["@react-navigation/stack" :refer (createStackNavigator TransitionPresets)] + ["@react-navigation/bottom-tabs" :refer (createBottomTabNavigator)] + [oops.core :refer [ocall oget]])) -(defonce native js-dependencies/react-navigation-native) -(defonce stack js-dependencies/react-navigation-stack) -(defonce bottom-tabs js-dependencies/react-navigation-bottom-tabs) +(defonce native react-navigation) -(def navigation-container (reagent/adapt-react-class - (oget native "NavigationContainer"))) +(def navigation-container (reagent/adapt-react-class NavigationContainer)) -(def use-focus-effect (oget native "useFocusEffect")) -(def use-callback (oget js-dependencies/react "useCallback")) -(def use-effect (oget js-dependencies/react "useEffect")) +(def use-focus-effect useFocusEffect) +(def use-callback useCallback) +(def use-effect useEffect) -(def add-back-handler-listener (oget js-dependencies/back-handler "addEventListener")) -(def remove-back-handler-listener (oget js-dependencies/back-handler "removeEventListener")) +(defn add-back-handler-listener + [callback] + (.addEventListener BackHandler "hardwareBackPress" callback)) -(def transition-presets (oget stack "TransitionPresets")) +(defn remove-back-handler-listener + [callback] + (.removeEventListener BackHandler "hardwareBackPress" callback)) -(def modal-presentation-ios (merge (js->clj (oget transition-presets "ModalPresentationIOS")) +(def transition-presets TransitionPresets) + +(def modal-presentation-ios (merge (js->clj (.-ModalPresentationIOS ^js transition-presets)) {:gestureEnabled true :cardOverlayEnabled true})) @@ -42,9 +47,9 @@ (re-frame/dispatch back-handler)) (boolean back-handler))] (when on-focus (re-frame/dispatch on-focus)) - (add-back-handler-listener "hardwareBackPress" on-back-press) + (add-back-handler-listener on-back-press) (fn [] - (remove-back-handler-listener "hardwareBackPress" on-back-press)))) + (remove-back-handler-listener on-back-press)))) #js []))) (defn handle-on-screen-blur [navigation] @@ -54,7 +59,7 @@ (fn [] ;; Reset currently mounted text inputs to their default values ;; on navigating away; this is a privacy measure - (doseq [[text-input default-value] @react/text-input-refs] + (doseq [[^js text-input default-value] @react/text-input-refs] (.setNativeProps text-input (clj->js {:text default-value})))))) #js [navigation])) @@ -109,15 +114,15 @@ (mapv screen children))))) (defn create-stack [] - (let [nav-obj (ocall stack "createStackNavigator")] + (let [nav-obj (createStackNavigator)] (get-navigator nav-obj))) (defn create-bottom-tabs [] - (let [nav-obj (ocall bottom-tabs "createBottomTabNavigator")] + (let [nav-obj (createBottomTabNavigator)] (get-navigator nav-obj))) -(def common-actions (oget native "CommonActions")) -(def stack-actions (oget native "StackActions")) +(def common-actions CommonActions) +(def stack-actions StackActions) (defonce navigator-ref (reagent/atom nil)) diff --git a/src/status_im/ui/screens/routing/intro_login_stack.cljs b/src/status_im/ui/screens/routing/intro_login_stack.cljs index 54ff404722..98fefa7676 100644 --- a/src/status_im/ui/screens/routing/intro_login_stack.cljs +++ b/src/status_im/ui/screens/routing/intro_login_stack.cljs @@ -1,7 +1,6 @@ (ns status-im.ui.screens.routing.intro-login-stack (:require-macros [status-im.utils.views :as views]) - (:require [re-frame.core :as re-frame] - [status-im.ui.screens.multiaccounts.login.views :as login] + (:require [status-im.ui.screens.multiaccounts.login.views :as login] [status-im.ui.screens.progress.views :as progress] [status-im.ui.screens.multiaccounts.views :as multiaccounts] [status-im.ui.screens.intro.views :as intro] diff --git a/src/status_im/ui/screens/routing/main.cljs b/src/status_im/ui/screens/routing/main.cljs index d9988ff1cf..5f768574de 100644 --- a/src/status_im/ui/screens/routing/main.cljs +++ b/src/status_im/ui/screens/routing/main.cljs @@ -1,8 +1,6 @@ (ns status-im.ui.screens.routing.main (:require-macros [status-im.utils.views :as views]) - (:require [reagent.core :as reagent] - [re-frame.core :as re-frame] - [status-im.ui.screens.profile.tribute-to-talk.views :as tr-to-talk] + (:require [status-im.ui.screens.profile.tribute-to-talk.views :as tr-to-talk] [status-im.ui.screens.add-new.new-public-chat.view :as new-public-chat] [status-im.ui.screens.wallet.components.views :as wallet.components] [status-im.ui.screens.qr-scanner.views :as qr-scanner] diff --git a/src/status_im/ui/screens/routing/profile_stack.cljs b/src/status_im/ui/screens/routing/profile_stack.cljs index 120538f025..00de459350 100644 --- a/src/status_im/ui/screens/routing/profile_stack.cljs +++ b/src/status_im/ui/screens/routing/profile_stack.cljs @@ -1,6 +1,5 @@ (ns status-im.ui.screens.routing.profile-stack - (:require [status-im.utils.config :as config] - [status-im.ui.screens.profile.user.views :as profile.user] + (:require [status-im.ui.screens.profile.user.views :as profile.user] [status-im.ui.screens.ens.views :as ens] [status-im.ui.screens.contacts-list.views :as contacts-list] [status-im.ui.screens.profile.contact.views :as profile.contact] @@ -28,7 +27,9 @@ [status-im.ui.screens.mobile-network-settings.view :as mobile-network-settings] - [status-im.network.module :as network] + [status-im.network.ui.edit-network.views :as edit-network] + [status-im.network.ui.views :as network] + [status-im.network.ui.network-details.views :as network-details] [status-im.ui.screens.network-info.views :as network-info] [status-im.ui.screens.log-level-settings.views :as log-level-settings] [status-im.ui.screens.fleet-settings.views :as fleet-settings] @@ -101,13 +102,13 @@ {:name :manage-dapps-permissions :component dapps-permissions/manage} {:name :network-settings - :component network/network-settings-view} + :component network/network-settings} {:name :network-details - :component network/network-details-view} + :component network-details/network-details} {:name :network-info :component network-info/network-info} {:name :edit-network - :component network/edit-network-view} + :component edit-network/edit-network} {:name :log-level-settings :component log-level-settings/log-level-settings} {:name :fleet-settings diff --git a/src/status_im/ui/screens/routing/wallet_stack.cljs b/src/status_im/ui/screens/routing/wallet_stack.cljs index 5317d7df40..15381cda4f 100644 --- a/src/status_im/ui/screens/routing/wallet_stack.cljs +++ b/src/status_im/ui/screens/routing/wallet_stack.cljs @@ -1,6 +1,5 @@ (ns status-im.ui.screens.routing.wallet-stack - (:require [status-im.utils.config :as config] - [status-im.ui.screens.currency-settings.views :as currency-settings] + (:require [status-im.ui.screens.currency-settings.views :as currency-settings] [status-im.ui.screens.wallet.collectibles.views :as collectibles] [status-im.ui.screens.wallet.settings.views :as wallet-settings] [status-im.ui.screens.wallet.transactions.views :as wallet-transactions] diff --git a/src/status_im/ui/screens/signing/views.cljs b/src/status_im/ui/screens/signing/views.cljs index 109eae6f5d..55b65282c7 100644 --- a/src/status_im/ui/screens/signing/views.cljs +++ b/src/status_im/ui/screens/signing/views.cljs @@ -65,7 +65,7 @@ (defn header [{:keys [in-progress?] :as sign} - {:keys [contact amount token approve?] :as tx} + {:keys [contact amount approve?]} display-symbol fee fee-display-symbol] [react/view styles/header (when sign @@ -133,10 +133,8 @@ [react/view {:align-items :center :margin-top 16 :margin-bottom 40} [sign-with-keycard-button nil nil]])]) -(defn signature-request [{:keys [error formatted-data - fiat-amount fiat-currency - keycard-step - in-progress? enabled?] :as sign} small-screen?] +(defn signature-request + [{:keys [formatted-data fiat-amount fiat-currency keycard-step]} small-screen?] (let [message (:message formatted-data) title (case keycard-step :connect :t/looking-for-cards @@ -326,7 +324,8 @@ :type :small :accessories [[react/text network-name]]}])) -(views/defview sheet [{:keys [from contact amount token approve?] :as tx}] +(views/defview sheet + [{:keys [from contact amount token] :as tx}] (views/letsubs [fee [:signing/fee] sign [:signing/sign] chain [:ethereum/chain-keyword] diff --git a/src/status_im/ui/screens/stickers/views.cljs b/src/status_im/ui/screens/stickers/views.cljs index f0488359e0..d07892d9cc 100644 --- a/src/status_im/ui/screens/stickers/views.cljs +++ b/src/status_im/ui/screens/stickers/views.cljs @@ -1,12 +1,10 @@ (ns status-im.ui.screens.stickers.views (:require [re-frame.core :as re-frame] - [status-im.ethereum.core :as ethereum] [status-im.i18n :as i18n] [status-im.ui.components.colors :as colors] [status-im.ui.components.icons.vector-icons :as icons] [status-im.ui.components.react :as react] [status-im.ui.components.styles :as components.styles] - [status-im.ui.components.toolbar.view :as toolbar] [status-im.ui.screens.stickers.styles :as styles] [status-im.utils.contenthash :as contenthash] [status-im.utils.money :as money] diff --git a/src/status_im/ui/screens/sync_settings/views.cljs b/src/status_im/ui/screens/sync_settings/views.cljs index bd0bd48c68..046888d249 100644 --- a/src/status_im/ui/screens/sync_settings/views.cljs +++ b/src/status_im/ui/screens/sync_settings/views.cljs @@ -1,11 +1,9 @@ (ns status-im.ui.screens.sync-settings.views (:require-macros [status-im.utils.views :as views]) (:require [re-frame.core :as re-frame] - [status-im.i18n :as i18n] [status-im.ui.components.colors :as colors] [status-im.ui.components.list.views :as list] [status-im.ui.components.react :as react] - [status-im.ui.components.toolbar.view :as toolbar] [status-im.ui.components.topbar :as topbar])) (defn- list-data [mailserver-id use-mobile-data?] diff --git a/src/status_im/ui/screens/views.cljs b/src/status_im/ui/screens/views.cljs index 5926615fe7..223675b879 100644 --- a/src/status_im/ui/screens/views.cljs +++ b/src/status_im/ui/screens/views.cljs @@ -2,7 +2,6 @@ (:require-macros [status-im.utils.views :refer [defview letsubs] :as views]) (:require [status-im.utils.universal-links.core :as utils.universal-links] [re-frame.core :as re-frame] - [status-im.utils.platform :as platform] [status-im.ui.screens.about-app.views :as about-app] [status-im.ui.components.react :as react] [status-im.ui.components.bottom-sheet.core :as bottom-sheet] @@ -94,7 +93,7 @@ (defn main [] (let [two-pane? (reagent/atom (dimensions/fit-two-pane?))] - (.addEventListener react/dimensions + (.addEventListener ^js react/dimensions "change" (fn [_] (let [two-pane-enabled? (dimensions/fit-two-pane?)] diff --git a/src/status_im/ui/screens/wallet/accounts/views.cljs b/src/status_im/ui/screens/wallet/accounts/views.cljs index d2be859061..275126ed1d 100644 --- a/src/status_im/ui/screens/wallet/accounts/views.cljs +++ b/src/status_im/ui/screens/wallet/accounts/views.cljs @@ -88,7 +88,7 @@ (assoc :on-press #(on-press token)))])) (views/defview assets [] - (views/letsubs [{:keys [tokens nfts]} [:wallet/all-visible-assets-with-values] + (views/letsubs [{:keys [tokens]} [:wallet/all-visible-assets-with-values] currency [:wallet/currency] prices-loading? [:prices-loading?]] [list/flat-list {:data tokens @@ -98,8 +98,7 @@ (views/defview total-value [{:keys [y]}] (views/letsubs [currency [:wallet/currency] - portfolio-value [:portfolio-value] - prices-loading? [:prices-loading?]] + portfolio-value [:portfolio-value]] [reanimated/view {:style (styles/value-container y)} [reanimated/text {:style (styles/value-text y)} portfolio-value diff --git a/src/status_im/ui/screens/wallet/collectibles/cryptokitties/views.cljs b/src/status_im/ui/screens/wallet/collectibles/cryptokitties/views.cljs index f8393d2c0c..e69865f186 100644 --- a/src/status_im/ui/screens/wallet/collectibles/cryptokitties/views.cljs +++ b/src/status_im/ui/screens/wallet/collectibles/cryptokitties/views.cljs @@ -1,7 +1,6 @@ (ns status-im.ui.screens.wallet.collectibles.cryptokitties.views (:require [re-frame.core :as re-frame] [status-im.i18n :as i18n] - [status-im.ui.components.colors :as colors] [status-im.ui.components.react :as react] [status-im.ui.screens.wallet.collectibles.styles :as styles] [status-im.ui.screens.wallet.collectibles.views :as collectibles] diff --git a/src/status_im/ui/screens/wallet/components/views.cljs b/src/status_im/ui/screens/wallet/components/views.cljs index 6b4c155370..84dd37f249 100644 --- a/src/status_im/ui/screens/wallet/components/views.cljs +++ b/src/status_im/ui/screens/wallet/components/views.cljs @@ -4,7 +4,6 @@ [reagent.core :as reagent] [status-im.i18n :as i18n] [status-im.ui.components.react :as react] - [status-im.ui.components.styles :as components.styles] [status-im.ui.components.toolbar.view :as topbar] [status-im.ui.screens.wallet.components.styles :as styles] [status-im.ui.components.text-input.view :as text-input] diff --git a/src/status_im/ui/screens/wallet/custom_tokens/views.cljs b/src/status_im/ui/screens/wallet/custom_tokens/views.cljs index 0ac9e669b0..d5c4598dd9 100644 --- a/src/status_im/ui/screens/wallet/custom_tokens/views.cljs +++ b/src/status_im/ui/screens/wallet/custom_tokens/views.cljs @@ -3,7 +3,6 @@ (:require [re-frame.core :as re-frame] [status-im.ui.components.colors :as colors] [status-im.ui.components.react :as react] - [status-im.ui.components.toolbar.view :as toolbar] [status-im.ui.components.text-input.view :as text-input] [status-im.ui.components.common.common :as components.common] [clojure.string :as string] @@ -22,14 +21,14 @@ 500)))) (defview add-custom-token [] - (letsubs [{:keys [contract name symbol balance decimals in-progress? error error-name error-symbol]} + (letsubs [{:keys [contract name symbol decimals in-progress? error error-name error-symbol]} [:wallet/custom-token-screen]] [react/keyboard-avoiding-view {:flex 1 :background-color colors/white} [topbar/topbar {:title :t/add-custom-token}] [react/scroll-view {:keyboard-should-persist-taps :handled :style {:flex 1 :margin-top 8 :padding-horizontal 16}} [react/view {:style {:flex-direction :row :justify-content :space-between :padding-vertical 10}} [react/text (i18n/label :t/contract-address)] - (if in-progress? + (when in-progress? [react/view {:flex-direction :row :justify-content :center} [react/view {:height 20} [react/activity-indicator {:width 24 :height 24 :animating true}]] diff --git a/src/status_im/ui/screens/wallet/request/views.cljs b/src/status_im/ui/screens/wallet/request/views.cljs index b399bb8326..486c748497 100644 --- a/src/status_im/ui/screens/wallet/request/views.cljs +++ b/src/status_im/ui/screens/wallet/request/views.cljs @@ -13,7 +13,7 @@ (views/letsubs [{:keys [address]} [:popover/popover] chain-id [:chain-id] width (reagent/atom nil)] - [react/view {:on-layout #(reset! width (-> % .-nativeEvent .-layout .-width))} + [react/view {:on-layout #(reset! width (-> ^js % .-nativeEvent .-layout .-width))} [react/view {:style {:padding-top 16 :padding-horizontal 16}} (when @width [qr-code-viewer/qr-code-view diff --git a/src/status_im/ui/screens/wallet/send/sheets.cljs b/src/status_im/ui/screens/wallet/send/sheets.cljs index d68e478e99..11e7eff4de 100644 --- a/src/status_im/ui/screens/wallet/send/sheets.cljs +++ b/src/status_im/ui/screens/wallet/send/sheets.cljs @@ -1,5 +1,5 @@ (ns status-im.ui.screens.wallet.send.sheets - (:require-macros [status-im.utils.views :refer [defview letsubs] :as views]) + (:require-macros [status-im.utils.views :as views]) (:require [re-frame.core :as re-frame] [status-im.i18n :as i18n] [status-im.ui.components.react :as react] diff --git a/src/status_im/ui/screens/wallet/send/views.cljs b/src/status_im/ui/screens/wallet/send/views.cljs index 715d479b0c..e8954cdd12 100644 --- a/src/status_im/ui/screens/wallet/send/views.cljs +++ b/src/status_im/ui/screens/wallet/send/views.cljs @@ -145,7 +145,7 @@ :wallet.ui/sign-transaction-button-clicked) tx])}}]]))) (views/defview request-sheet [_] - (views/letsubs [{:keys [amount-error amount-text from token to sign-enabled? from-chat?] :as tx} + (views/letsubs [{:keys [amount-error amount-text from token sign-enabled?] :as tx} [:wallet.request/prepare-transaction-with-balance] window-height [:dimensions/window-height] keyboard-height [:keyboard-height]] diff --git a/src/status_im/ui/screens/wallet/settings/views.cljs b/src/status_im/ui/screens/wallet/settings/views.cljs index 84165eb2ad..7c16084a3c 100644 --- a/src/status_im/ui/screens/wallet/settings/views.cljs +++ b/src/status_im/ui/screens/wallet/settings/views.cljs @@ -44,10 +44,10 @@ [:wallet.custom-token.ui/remove-pressed token])}])])) (defn render-token - [{:keys [symbol name icon color custom? checked?] :as token}] + [_] (reagent/create-class {:should-component-update - (fn [this [_ old-token] [_ new-token]] + (fn [_ [_ old-token] [_ new-token]] (not= (:checked? old-token) (:checked? new-token))) :reagent-render (fn [{:keys [symbol name icon color custom? checked?] :as token}] @@ -109,6 +109,6 @@ :key-fn :address :stickySectionHeadersEnabled false :render-section-header-fn - (fn [{:keys [title data]}] + (fn [{:keys [title]}] [list-item/list-item {:type :section-header :title title}]) - :render-fn render-token-wrapper}]]])) \ No newline at end of file + :render-fn render-token-wrapper}]]])) diff --git a/src/status_im/ui/screens/wallet/transactions/views.cljs b/src/status_im/ui/screens/wallet/transactions/views.cljs index 613504cc05..08cbc427c0 100644 --- a/src/status_im/ui/screens/wallet/transactions/views.cljs +++ b/src/status_im/ui/screens/wallet/transactions/views.cljs @@ -77,7 +77,7 @@ (let [link @(re-frame/subscribe [:wallet/etherscan-link address])] [react/touchable-highlight {:on-press #(when link - (.openURL react/linking link))} + (.openURL ^js react/linking link))} [react/view {:style {:flex 1 :padding-horizontal 14 @@ -146,7 +146,7 @@ ;; NOTE: Is this needed? (defview filter-history [] - (letsubs [{:keys [filters all-filters? on-touch-select-all]} + (letsubs [{:keys [filters on-touch-select-all]} [:wallet.transactions.filters/screen]] [react/view styles/filter-container [topbar/topbar {:title :t/transactions-filter-title @@ -243,7 +243,7 @@ [(actions/opts [{:label (i18n/label :t/copy-transaction-hash) :action #(react/copy-to-clipboard hash)} {:label (i18n/label :t/open-on-etherscan) - :action #(.openURL react/linking url)}])]) + :action #(.openURL ^js react/linking url)}])]) (defview transaction-details-view [hash address] (letsubs [{:keys [url type confirmations confirmations-progress diff --git a/src/status_im/utils/build.clj b/src/status_im/utils/build.clj index e8dd88e986..90756e97fd 100644 --- a/src/status_im/utils/build.clj +++ b/src/status_im/utils/build.clj @@ -26,8 +26,9 @@ :out (string/replace "\n" ""))) -(defmacro get-current-sha [] +(defmacro get-current-sha "fetches the latest commit sha from the current branch" + [] (-> (shell/sh "git" "rev-parse" "--short" "HEAD") :out (string/replace "\n" ""))) diff --git a/src/status_im/utils/config.cljs b/src/status_im/utils/config.cljs index d99be06fee..241dd9e4fb 100644 --- a/src/status_im/utils/config.cljs +++ b/src/status_im/utils/config.cljs @@ -1,12 +1,11 @@ (ns status-im.utils.config - (:require [status-im.react-native.js-dependencies :as rn-dependencies] - [status-im.utils.platform :as platform] - [clojure.string :as string])) + (:require [clojure.string :as string] + ["react-native-config" :default react-native-config])) (def config (memoize (fn [] - (js->clj (.-default rn-dependencies/config) :keywordize-keys true)))) + (js->clj react-native-config :keywordize-keys true)))) (defn get-config ([k] (get (config) k)) diff --git a/src/status_im/utils/core.cljc b/src/status_im/utils/core.cljc index 859bc7a963..60c051de25 100644 --- a/src/status_im/utils/core.cljc +++ b/src/status_im/utils/core.cljc @@ -1,6 +1,6 @@ (ns status-im.utils.core - (:require [clojure.string :as str] - [taoensso.timbre :as log])) + (:require [clojure.string :as string] + #?(:cljs [taoensso.timbre :as log]))) (defn truncate-str "Given string and max threshold, trims the string to threshold length with `...` @@ -21,9 +21,9 @@ (defn clean-text [s] (-> s - (str/replace #"\n" "") - (str/replace #"\r" "") - (str/trim))) + (string/replace #"\n" "") + (string/replace #"\r" "") + (string/trim))) (defn first-index "Returns first index in coll where predicate on coll element is truthy" @@ -68,6 +68,6 @@ #?(:cljs (defn safe-read-message-content [content] (try - (js->clj (.parse js/JSON content) :keywordize-keys true) + (js->clj (.parse js/JSON content) :keywordize-keys true) (catch :default e (log/warn "failed to transform message with " e))))) diff --git a/src/status_im/utils/datetime.cljs b/src/status_im/utils/datetime.cljs index b2207e7e59..c72341ba5e 100644 --- a/src/status_im/utils/datetime.cljs +++ b/src/status_im/utils/datetime.cljs @@ -1,15 +1,14 @@ (ns status-im.utils.datetime (:require [re-frame.core :as re-frame] - [cljs-time.core :as t :refer [date-time plus minus days hours before?]] - [cljs-time.coerce :refer [from-long to-long from-date]] + [cljs-time.core :as t :refer [plus minus days hours before?]] + [cljs-time.coerce :refer [from-long from-date]] [cljs-time.format :refer [formatters formatter unparse]] [status-im.i18n :refer [label label-pluralize]] [status-im.native-module.core :as status] [clojure.string :as s] - [goog.object :refer [get]] - [status-im.goog.i18n-module :as goog.18n])) + [status-im.goog.i18n :as goog.18n])) (defn now [] (t/now)) @@ -22,10 +21,10 @@ {:name :t/datetime-hour :limit 86400 :in-second 3600} {:name :t/datetime-day :limit nil :in-second 86400}]) -(def time-zone-offset (hours (- (/ (.getTimezoneOffset (js/Date.)) 60)))) +(def time-zone-offset (hours (- (/ (.getTimezoneOffset ^js (js/Date.)) 60)))) ;; detects if given locale symbols timeformat generates AM/PM ("a") -(defn- is24Hour-locsym [locsym] +(defn- is24Hour-locsym [^js locsym] (not (s/includes? (nth (.-TIMEFORMATS locsym) 2) "a"))) @@ -42,8 +41,8 @@ (defn- time-format [locsym] (if (is24Hour locsym) "HH:mm:ss" "h:mm:ss a")) ;; date formats -(defn- short-date-format [locsym] "dd MMM") -(defn- medium-date-format [locsym] (nth (.-DATEFORMATS locsym) 2)) ; get medium format from current locale symbols +(defn- short-date-format [_] "dd MMM") +(defn- medium-date-format [^js locsym] (nth (.-DATEFORMATS locsym) 2)) ; get medium format from current locale symbols ;; date-time formats (defn- medium-date-time-format [locsym] @@ -82,25 +81,25 @@ (defn to-short-str [ms] (to-str ms - #(.format (date-fmt) %) + #(.format ^js (date-fmt) %) #(label :t/datetime-yesterday) - #(.format (time-fmt) %))) + #(.format ^js (time-fmt) %))) (defn day-relative [ms] (to-str ms - #(.format (date-fmt) %) + #(.format ^js (date-fmt) %) #(label :t/datetime-yesterday) #(label :t/datetime-today))) (defn timestamp->mini-date [ms] - (.format (short-date-fmt) (-> ms - from-long - (plus time-zone-offset)))) + (.format ^js (short-date-fmt) (-> ms + from-long + (plus time-zone-offset)))) (defn timestamp->time [ms] - (.format (time-fmt) (-> ms - from-long - (plus time-zone-offset)))) + (.format ^js (time-fmt) (-> ms + from-long + (plus time-zone-offset)))) (defn timestamp->date-key [ms] (keyword (unparse (formatter "YYYYMMDD") (-> ms @@ -108,9 +107,9 @@ (plus time-zone-offset))))) (defn timestamp->long-date [ms] - (.format (date-time-fmt) (-> ms - from-long - (plus time-zone-offset)))) + (.format ^js (date-time-fmt) (-> ms + from-long + (plus time-zone-offset)))) (defn format-time-ago [diff unit] (let [name (label-pluralize diff (:name unit))] diff --git a/src/status_im/utils/dimensions.cljs b/src/status_im/utils/dimensions.cljs index ab1b5bfeaf..bfc6d6e347 100644 --- a/src/status_im/utils/dimensions.cljs +++ b/src/status_im/utils/dimensions.cljs @@ -6,7 +6,7 @@ (declare window) (defn add-event-listener [] - (.addEventListener react/dimensions + (.addEventListener ^js react/dimensions "change" #(do (re-frame/dispatch [:update-window-dimensions %])))) diff --git a/src/status_im/utils/email.cljs b/src/status_im/utils/email.cljs index 389571b8ef..8c0d1c7c49 100644 --- a/src/status_im/utils/email.cljs +++ b/src/status_im/utils/email.cljs @@ -1,13 +1,13 @@ (ns status-im.utils.email (:require [re-frame.core :as re-frame] [status-im.utils.fx :as fx] - [status-im.react-native.js-dependencies :as dependencies])) + ["react-native-mail" :default react-native-mail])) (re-frame/reg-fx :email/send ;; https://github.com/chirag04/react-native-mail#example (fn [[opts callback]] - (.mail dependencies/react-native-mail + (.mail react-native-mail (clj->js opts) callback))) diff --git a/src/status_im/utils/error_handler.cljs b/src/status_im/utils/error_handler.cljs index 06dbc8576a..79ff1ccae9 100644 --- a/src/status_im/utils/error_handler.cljs +++ b/src/status_im/utils/error_handler.cljs @@ -27,10 +27,10 @@ (defn format-error [e] (if (instance? js/Error e) - {:name (.-name e) :message (.-message e) :stack (.-stack e)} + {:name (.-name ^js e) :message (.-message ^js e) :stack (.-stack ^js e)} {:message (pr-str e)})) -(defn handle-error [e is-fatal] +(defn handle-error [e _] (let [f (format-error e)] (js/console.log (str "PRETTY PRINTED EXCEPTION" "\n\n***\nNAME: " @@ -50,9 +50,9 @@ (downgrade-reagent-errors!) (when-not @!error-handler-set? (reset! !error-handler-set? true) - (let [orig-handler (some-> js/ErrorUtils .-getGlobalHandler (.call))] + (let [^js orig-handler (some-> js/ErrorUtils ^js .-getGlobalHandler (.call))] (js/ErrorUtils.setGlobalHandler - (fn [e isFatal] + (fn [^js e isFatal] (handle-error e isFatal) (if js/goog.DEBUG (some-> orig-handler (.call nil e isFatal)) diff --git a/src/status_im/utils/fs.cljs b/src/status_im/utils/fs.cljs index 8052e9712c..ca7a3fdceb 100644 --- a/src/status_im/utils/fs.cljs +++ b/src/status_im/utils/fs.cljs @@ -1,22 +1,22 @@ (ns status-im.utils.fs - (:require [status-im.react-native.js-dependencies :as rn-dependencies])) + (:require ["react-native-fs" :as react-native-fs])) (defn move-file [src dst] - (.moveFile rn-dependencies/fs src dst)) + (.moveFile react-native-fs src dst)) (defn read-file [path encoding on-read on-error] - (-> (.readFile rn-dependencies/fs path encoding) + (-> (.readFile react-native-fs path encoding) (.then on-read) (.catch on-error))) (defn read-dir [path] - (.readDir rn-dependencies/fs path)) + (.readDir react-native-fs path)) (defn mkdir [path] - (.mkdir rn-dependencies/fs path)) + (.mkdir react-native-fs path)) (defn unlink [path] - (.unlink rn-dependencies/fs path)) + (.unlink react-native-fs path)) (defn file-exists? [path] - (.exists rn-dependencies/fs path)) + (.exists react-native-fs path)) diff --git a/src/status_im/utils/fx.cljs b/src/status_im/utils/fx.cljs index e4b42cf442..7b029fe162 100644 --- a/src/status_im/utils/fx.cljs +++ b/src/status_im/utils/fx.cljs @@ -1,7 +1,6 @@ (ns status-im.utils.fx (:require-macros status-im.utils.fx) - (:require [clojure.set :as set] - [status-im.ethereum.json-rpc :as json-rpc] + (:require [status-im.ethereum.json-rpc :as json-rpc] [taoensso.timbre :as log] status-im.utils.handlers) (:refer-clojure :exclude [merge reduce])) diff --git a/src/status_im/utils/gfycat/core.cljs b/src/status_im/utils/gfycat/core.cljs index 138b0c1c4a..4b1b5f7a8c 100644 --- a/src/status_im/utils/gfycat/core.cljs +++ b/src/status_im/utils/gfycat/core.cljs @@ -1,7 +1,6 @@ (ns status-im.utils.gfycat.core (:require [status-im.native-module.core :as native-module] - [re-frame.core :as re-frame] - [status-im.utils.datetime :as datetime])) + [re-frame.core :as re-frame])) (def unknown-gfy "Unknown") diff --git a/src/status_im/utils/handlers.cljs b/src/status_im/utils/handlers.cljs index 14c723fca8..80e730fc83 100644 --- a/src/status_im/utils/handlers.cljs +++ b/src/status_im/utils/handlers.cljs @@ -13,7 +13,7 @@ db)) (defn- pretty-print-event [ctx] - (let [[first second] (get-coeffect ctx :event)] + (let [[first _] (get-coeffect ctx :event)] first)) (def debug-handlers-names @@ -101,7 +101,7 @@ (= (:error res) "")) {:result true} res)) - (catch :default e + (catch :default ^js e {:error (.-message e)}))) (defn response-handler [success-fn error-fn] diff --git a/src/status_im/utils/http.cljs b/src/status_im/utils/http.cljs index ea8b8d822b..b321f2eba0 100644 --- a/src/status_im/utils/http.cljs +++ b/src/status_im/utils/http.cljs @@ -1,15 +1,15 @@ (ns status-im.utils.http (:require [status-im.utils.utils :as utils] - [status-im.react-native.js-dependencies :as rn-dependencies] [taoensso.timbre :as log] - [clojure.string :as string]) + [clojure.string :as string] + ["react-native-fetch-polyfill" :default fetch]) (:refer-clojure :exclude [get])) ;; Default HTTP request timeout ms (def http-request-default-timeout-ms 3000) -(defn- headers [response] - (let [entries (es6-iterator-seq (.entries (.-headers response)))] +(defn- headers [^js response] + (let [entries (es6-iterator-seq (.entries ^js (.-headers response)))] (reduce #(assoc %1 (string/trim (string/lower-case (first %2))) (string/trim (second %2))) {} entries))) (defn raw-post @@ -18,13 +18,13 @@ ([url body on-success on-error] (raw-post url body on-success on-error nil)) ([url body on-success on-error {:keys [timeout-ms]}] - (-> (rn-dependencies/fetch + (-> (fetch url (clj->js {:method "POST" :headers {"Cache-Control" "no-cache"} :body body :timeout (or timeout-ms http-request-default-timeout-ms)})) - (.then (fn [response] + (.then (fn [^js response] (-> (.text response) (.then (fn [body] @@ -42,14 +42,14 @@ ([url data on-success on-error] (post url data on-success on-error nil)) ([url data on-success on-error {:keys [valid-response? timeout-ms headers]}] - (-> (rn-dependencies/fetch + (-> (fetch url (clj->js (merge {:method "POST" :body data :timeout (or timeout-ms http-request-default-timeout-ms)} (when headers {:headers headers})))) - (.then (fn [response] + (.then (fn [^js response] (-> (.text response) (.then (fn [response-body] @@ -82,12 +82,12 @@ ([url on-success on-error] (raw-get url on-success on-error nil)) ([url on-success on-error {:keys [timeout-ms]}] - (-> (rn-dependencies/fetch + (-> (fetch url (clj->js {:method "GET" :headers {"Cache-Control" "no-cache"} :timeout (or timeout-ms http-request-default-timeout-ms)})) - (.then (fn [response] + (.then (fn [^js response] (-> (.text response) (.then (fn [body] @@ -107,12 +107,12 @@ ([url on-success on-error params] (get url on-success on-error params nil)) ([url on-success on-error {:keys [valid-response? timeout-ms]} headers] - (-> (rn-dependencies/fetch + (-> (fetch url (clj->js {:method "GET" :headers (merge {"Cache-Control" "no-cache"} headers) :timeout (or timeout-ms http-request-default-timeout-ms)})) - (.then (fn [response] + (.then (fn [^js response] (-> (.text response) (.then (fn [response-body] @@ -141,7 +141,7 @@ (defn url-host [url] (try - (when-let [host (.getDomain (goog.Uri. url))] + (when-let [host (.getDomain ^js (goog.Uri. url))] (when-not (string/blank? host) (string/replace host #"www." ""))) (catch :default _ nil))) diff --git a/src/status_im/utils/image_processing.cljs b/src/status_im/utils/image_processing.cljs index 5c5568063c..410b40ea6f 100644 --- a/src/status_im/utils/image_processing.cljs +++ b/src/status_im/utils/image_processing.cljs @@ -1,15 +1,12 @@ (ns status-im.utils.image-processing (:require [goog.object :as object] [status-im.utils.fs :as fs] - [status-im.react-native.js-dependencies :as rn-dependencies])) + ["react-native-image-resizer" :as image-resizer])) (defn- resize [path max-width max-height on-resize on-error] - (let [resize-fn (-> rn-dependencies/image-resizer - (object/get "default") - (object/get "createResizedImage"))] - (-> (resize-fn path max-width max-height "JPEG" 75 0 nil) - (.then on-resize) - (.catch on-error)))) + (-> (.createResizedImage image-resizer path max-width max-height "JPEG" 75 0 nil) + (.then on-resize) + (.catch on-error))) (defn- image-base64-encode [path on-success on-error] (fs/read-file path "base64" on-success #(on-error :base64 %))) diff --git a/src/status_im/utils/js_resources.cljs b/src/status_im/utils/js_resources.cljs index 89ead3bca7..cff97e1e85 100644 --- a/src/status_im/utils/js_resources.cljs +++ b/src/status_im/utils/js_resources.cljs @@ -6,4 +6,4 @@ (defn ethereum-provider [network-id] (str "var networkId = \"" network-id "\";" - (provider-file))) \ No newline at end of file + provider-file)) diff --git a/src/status_im/utils/keychain/core.cljs b/src/status_im/utils/keychain/core.cljs index cc19852d69..ee2daef6cd 100644 --- a/src/status_im/utils/keychain/core.cljs +++ b/src/status_im/utils/keychain/core.cljs @@ -1,13 +1,12 @@ (ns status-im.utils.keychain.core (:require [re-frame.core :as re-frame] [taoensso.timbre :as log] - [status-im.react-native.js-dependencies :as rn] [status-im.utils.platform :as platform] [status-im.utils.security :as security] [status-im.native-module.core :as status] [status-im.utils.fx :as fx] - [goog.object :as object] - [clojure.string :as string])) + [clojure.string :as string] + ["react-native-keychain" :as react-native-keychain])) (defn- check-conditions [callback & checks] (if (= (count checks) 0) @@ -30,9 +29,7 @@ ;; to an address (`server`) property. (defn enum-val [enum-name value-name] - (-> rn/keychain - (object/get enum-name) - (object/get value-name))) + (get-in (js->clj react-native-keychain) [enum-name value-name])) ;; We need a more strict access mode for keychain entries that save user password. ;; iOS @@ -67,14 +64,16 @@ ;; Android only (defn- secure-hardware-available? [callback] - (-> (.getSecurityLevel rn/keychain) + (-> (.getSecurityLevel react-native-keychain) (.then (fn [level] (callback (= level keychain-secure-hardware)))))) ;; iOS only (defn- device-encrypted? [callback] (-> (.canImplyAuthentication - rn/keychain - #js {:authenticationType (enum-val "ACCESS_CONTROL" "BIOMETRY_ANY_OR_DEVICE_PASSCODE")}) + react-native-keychain + (clj->js + {:authenticationType + (enum-val "ACCESS_CONTROL" "BIOMETRY_ANY_OR_DEVICE_PASSCODE")})) (.then callback))) (defn- whisper-key-name [address] @@ -96,7 +95,8 @@ "Stores the credentials for the address to the Keychain" [server username password callback] (log/debug "[keychain] save-credentials") - (-> (.setInternetCredentials rn/keychain (string/lower-case server) username password + (-> (.setInternetCredentials react-native-keychain + (string/lower-case server) username password keychain-secure-hardware keychain-restricted-availability) (.then callback))) @@ -105,7 +105,7 @@ [server callback] (log/debug "[keychain] get-credentials") (if platform/mobile? - (-> (.getInternetCredentials rn/keychain (string/lower-case server)) + (-> (.getInternetCredentials react-native-keychain (string/lower-case server)) (.then callback)) (callback))) ;; no-op for Desktop @@ -122,25 +122,25 @@ (if can-save? (get-credentials (str key-uid "-auth") #(callback (if % - (.-password %) + (.-password ^js %) auth-method-none))) (callback nil)))))) (re-frame/reg-fx :keychain/get-user-password (fn [[key-uid callback]] - (get-credentials key-uid #(if % (callback (security/mask-data (.-password %))) (callback nil))))) + (get-credentials key-uid #(if % (callback (security/mask-data (.-password ^js %))) (callback nil))))) (re-frame/reg-fx :keychain/get-hardwallet-keys (fn [[key-uid callback]] (get-credentials key-uid - (fn [encryption-key-data] + (fn [^js encryption-key-data] (if encryption-key-data (get-credentials (whisper-key-name key-uid) - (fn [whisper-key-data] + (fn [^js whisper-key-data] (if whisper-key-data (callback [(.-password encryption-key-data) (.-password whisper-key-data)]) @@ -199,7 +199,7 @@ :keychain/clear-user-password (fn [key-uid] (when platform/mobile? - (-> (.resetInternetCredentials rn/keychain (string/lower-case key-uid)) + (-> (.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 diff --git a/src/status_im/utils/logging/core.cljs b/src/status_im/utils/logging/core.cljs index 31a0e12916..19c27617b2 100644 --- a/src/status_im/utils/logging/core.cljs +++ b/src/status_im/utils/logging/core.cljs @@ -1,5 +1,6 @@ (ns status-im.utils.logging.core - (:require [re-frame.core :as re-frame] + (:require [clojure.string :as clojure.string] + [re-frame.core :as re-frame] [status-im.native-module.core :as status] [status-im.utils.fx :as fx] [status-im.utils.types :as types] @@ -91,10 +92,9 @@ {:db (dissoc db :logging/dialog-shown?)}) (defn email-body - [{:keys [:web3-node-version :mailserver/current-id - :node-info :peers-summary] - :as db}] "logs attached" + [{:keys [:web3-node-version :mailserver/current-id + :node-info :peers-summary]}] (let [build-number (if platform/desktop? build/version build/build-no) build-version (str build/version " (" build-number ")") separator (clojure.string/join (take 40 (repeat "-"))) diff --git a/src/status_im/utils/money.cljs b/src/status_im/utils/money.cljs index 88e4cb91fb..63d83b8c34 100644 --- a/src/status_im/utils/money.cljs +++ b/src/status_im/utils/money.cljs @@ -1,6 +1,6 @@ (ns status-im.utils.money (:require [clojure.string :as string] - [status-im.js-dependencies :as dependencies])) + ["bignumber.js" :as BigNumber])) ;; The BigNumber version included in web3 sometimes hangs when dividing large ;; numbers Hence we want to use these functions instead of fromWei etc, which @@ -30,10 +30,10 @@ (defn bignumber [n] (when n (try - (new dependencies/BigNumber (normalize (str n))) - (catch :default err nil)))) + (new BigNumber (normalize (str n))) + (catch :default _ nil)))) -(defn valid? [bn] +(defn valid? [^js bn] (when bn (.greaterThanOrEqualTo bn 0))) @@ -55,18 +55,18 @@ :teth (bignumber (from-decimal 30))}) (defn wei-> [unit n] - (when-let [bn (bignumber n)] + (when-let [^js bn (bignumber n)] (.dividedBy bn (eth-units unit)))) (defn ->wei [unit n] - (when-let [bn (bignumber n)] + (when-let [^js bn (bignumber n)] (.times bn (eth-units unit)))) -(defn to-fixed [bn] +(defn to-fixed [^js bn] (when bn (.toFixed bn))) -(defn to-number [bn] +(defn to-number [^js bn] (when bn (.toNumber bn))) @@ -78,19 +78,19 @@ (defn wei->ether [n] (wei-> :eth n)) -(defn ether->wei [bn] +(defn ether->wei [^js bn] (when bn - (.times bn (bignumber 1e18)))) + (.times bn ^js (bignumber 1e18)))) (defn token->unit [n decimals] - (when-let [bn (bignumber n)] + (when-let [^js bn (bignumber n)] (when-let [d (from-decimal decimals)] - (.dividedBy bn (bignumber d))))) + (.dividedBy bn ^js (bignumber d))))) (defn unit->token [n decimals] - (when-let [bn (bignumber n)] + (when-let [^js bn (bignumber n)] (when-let [d (from-decimal decimals)] - (.times bn (bignumber d))))) + (.times bn ^js (bignumber d))))) ;;NOTE(goranjovic) - We have two basic representations of values that refer to cryptocurrency amounts: formatted and ;; internal. Formatted representation is the one we show on screens and include in reports, whereas internal @@ -115,25 +115,25 @@ (token->unit n decimals))) (defn fee-value [gas gas-price] - (.times (bignumber gas) (bignumber gas-price))) + (.times ^js (bignumber gas) ^js (bignumber gas-price))) (defn crypto->fiat [crypto fiat-price] - (when-let [bn (bignumber crypto)] - (.times bn (bignumber fiat-price)))) + (when-let [^js bn (bignumber crypto)] + (.times bn ^js (bignumber fiat-price)))) (defn percent-change [from to] - (let [bnf (bignumber from) - bnt (bignumber to)] + (let [^js bnf (bignumber from) + ^js bnt (bignumber to)] (when (and bnf bnt) - (-> (.dividedBy bnf bnt) - (.minus 1) - (.times 100))))) + (-> ^js (.dividedBy bnf bnt) + ^js (.minus 1) + ^js (.times 100))))) (defn with-precision [n decimals] - (when-let [bn (bignumber n)] + (when-let [^js bn (bignumber n)] (.round bn decimals))) -(defn sufficient-funds? [amount balance] +(defn sufficient-funds? [^js amount ^js balance] (when (and amount balance) (.greaterThanOrEqualTo balance amount))) @@ -141,6 +141,6 @@ (-> amount-str (js/parseFloat) bignumber - (crypto->fiat (get-in prices [from to :price] (bignumber 0))) + (crypto->fiat (get-in prices [from to :price] ^js (bignumber 0))) (with-precision 2) str)) diff --git a/src/status_im/utils/platform.cljs b/src/status_im/utils/platform.cljs index cbc9274404..427f015fcf 100644 --- a/src/status_im/utils/platform.cljs +++ b/src/status_im/utils/platform.cljs @@ -2,18 +2,18 @@ (:require [status-im.android.platform :as android] [status-im.ios.platform :as ios] [status-im.desktop.platform :as desktop] - [status-im.react-native.js-dependencies :as rn-dependencies])) + ["react-native" :as react-native])) (def platform - (.-Platform rn-dependencies/react-native)) + (.-Platform react-native)) (def os (when platform - (.-OS platform))) + (.-OS ^js platform))) (def version (when platform - (.-Version platform))) + (.-Version ^js platform))) (def android? (= os "android")) (def ios? (= os "ios")) @@ -21,9 +21,9 @@ (def mobile? (not= os "desktop")) (def iphone-x? (and ios? (ios/iphone-x-dimensions?))) -(def isMacOs? (when platform (.-isMacOs platform))) -(def isNix? (when platform (or (.-isLinux platform) (.-isUnix platform)))) -(def isWin? (when platform (.-isWin platform))) +(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 diff --git a/src/status_im/utils/priority_map.cljs b/src/status_im/utils/priority_map.cljs index 7903406700..6c0816ad7f 100644 --- a/src/status_im/utils/priority_map.cljs +++ b/src/status_im/utils/priority_map.cljs @@ -1,6 +1,6 @@ (ns status-im.utils.priority-map - (:require [cljs.core :as core]) - (:use [cljs.reader :only [register-tag-parser!]]) + (:require [cljs.core :as core] + [cljs.reader :refer [register-tag-parser!]]) (:require-macros [cljs.core :as coreclj])) ;; from https://github.com/tailrecursion/cljs-priority-map/blob/master/src/cljs/tailrecursion/priority_map.cljs @@ -41,7 +41,7 @@ ISeqable (-seq [this] (if keyfn - (seq (for [[priority item-set] priority->set-of-items, item item-set] + (seq (for [[_ item-set] priority->set-of-items, item item-set] (MapEntry. item (item->priority item) nil))) (seq (for [[priority item-set] priority->set-of-items, item item-set] (MapEntry. item priority nil))))) @@ -49,7 +49,7 @@ IReversible (-rseq [coll] (if keyfn - (seq (for [[priority item-set] (rseq priority->set-of-items), item item-set] + (seq (for [[_ item-set] (rseq priority->set-of-items), item item-set] (MapEntry. item (item->priority item) nil))) (seq (for [[priority item-set] (rseq priority->set-of-items), item item-set] (MapEntry. item priority nil))))) @@ -158,7 +158,7 @@ (subseq priority->set-of-items >= k) (rsubseq priority->set-of-items <= k))] (if keyfn - (seq (for [[priority item-set] sets, item item-set] + (seq (for [[_ item-set] sets, item item-set] [item (item->priority item)])) (seq (for [[priority item-set] sets, item item-set] [item priority]))))) @@ -184,7 +184,7 @@ (defn- read-priority-map [elems] (if (map? elems) - (into status-im.utils-map.PersistentPriorityMap.EMPTY elems) + (into PersistentPriorityMap.EMPTY elems) (throw (js/Error "Priority map literal expects a map for its elements.")))) (register-tag-parser! "status-im.utils.priority-map" read-priority-map) diff --git a/src/status_im/utils/publisher.cljs b/src/status_im/utils/publisher.cljs index 110e491c12..1d5445605f 100644 --- a/src/status_im/utils/publisher.cljs +++ b/src/status_im/utils/publisher.cljs @@ -1,10 +1,8 @@ (ns status-im.utils.publisher (:require [re-frame.core :as re-frame] [re-frame.db] - [status-im.multiaccounts.update.publisher :as multiaccounts] [status-im.utils.async :as async-util] [status-im.mailserver.core :as mailserver] - [status-im.utils.datetime :as datetime] [status-im.utils.fx :as fx])) (defonce polling-executor (atom nil)) @@ -17,10 +15,8 @@ (reset! polling-executor (async-util/async-periodic-exec (fn [done-fn] - (let [cofx {:now (datetime/timestamp) - :db @re-frame.db/app-db}] - (mailserver/check-connection!) - (done-fn))) + (mailserver/check-connection!) + (done-fn)) sync-interval-ms sync-timeout-ms))) @@ -34,9 +30,9 @@ (async-util/async-periodic-stop! @polling-executor))) (fx/defn start-fx - [cofx] + [_] {::start-publisher nil}) (fx/defn stop-fx - [cofx] + [_] {::stop-publisher []}) diff --git a/src/status_im/utils/random.cljs b/src/status_im/utils/random.cljs index 6a4bbb7a47..e2648fc745 100644 --- a/src/status_im/utils/random.cljs +++ b/src/status_im/utils/random.cljs @@ -1,22 +1,22 @@ (ns status-im.utils.random (:require [re-frame.core :as re-frame] - [status-im.js-dependencies :as dependencies] - [status-im.utils.datetime :as datetime])) + [status-im.utils.datetime :as datetime] + ["chance" :as Chance])) -(def chance (dependencies/Chance.)) +(def chance (Chance.)) (defn guid [] - (.guid chance)) + (.guid ^js chance)) (defn id [] - (str (datetime/timestamp) "-" (.guid chance))) + (str (datetime/timestamp) "-" (.guid ^js chance))) (defn rand-gen [seed] - (dependencies/Chance. seed)) + (Chance. seed)) (defn seeded-rand-int - [gen n] (.integer gen #js {:min 0 :max (dec n)})) + [^js gen n] (.integer ^js gen (clj->js {:min 0 :max (dec n)}))) (defn seeded-rand-nth [gen coll] diff --git a/src/status_im/utils/security.cljs b/src/status_im/utils/security.cljs index 8705e22d91..9bd37a4662 100644 --- a/src/status_im/utils/security.cljs +++ b/src/status_im/utils/security.cljs @@ -11,7 +11,7 @@ Object (toString [_] "******") Unmaskable - (unmask [this] + (unmask [^js this] (.-data this))) ;; Returns a MaskedData instance that stores the piece of data. diff --git a/src/status_im/utils/slurp.clj b/src/status_im/utils/slurp.clj index 6c8b56d9d0..194b1384b5 100644 --- a/src/status_im/utils/slurp.clj +++ b/src/status_im/utils/slurp.clj @@ -1,31 +1,5 @@ (ns status-im.utils.slurp - (:refer-clojure :exclude [slurp]) - (:require [clojure.java.io :as io] - [clojure.string :as str]) - (:import (java.io File))) - -(def prod? (= "prod" (System/getenv "BUILD_ENV"))) - -(defn copy-file [source-path dest-path] - (io/copy (io/file source-path) (io/file dest-path))) - -(def resources-dir "status-modules/resources/") - -(defn check-resources-dir [] - (let [resources (File. resources-dir)] - (when-not (.exists resources) - (.mkdir resources)))) + (:refer-clojure :exclude [slurp])) (defmacro slurp [file] - (if prod? - (let [name (str/replace file #"[\/\.]" "_") - file-name (str resources-dir name)] - (check-resources-dir) - (copy-file file (str file-name "-raw.js")) - (let [res (gensym "res")] - `(let [~res (atom nil)] - (fn [] - (or @~res - (reset! ~res (js/require ~(str file-name ".js")))))))) - `(fn [] - ~(clojure.core/slurp file)))) + (clojure.core/slurp file)) diff --git a/src/status_im/utils/snoopy.cljs b/src/status_im/utils/snoopy.cljs index a0515a5d95..c44260997d 100644 --- a/src/status_im/utils/snoopy.cljs +++ b/src/status_im/utils/snoopy.cljs @@ -1,17 +1,17 @@ (ns status-im.utils.snoopy - (:require [status-im.react-native.js-dependencies :as js-dependencies] - [status-im.utils.config :as config])) - -(def snoopy (.-default js-dependencies/snoopy)) -(def sn-filter (.-default js-dependencies/snoopy-filter)) -(def bars (.-default js-dependencies/snoopy-bars)) -(def buffer (.-default js-dependencies/snoopy-buffer)) + (:require [clojure.string :as clojure.string] + [status-im.utils.config :as config] + ["react-native/Libraries/vendor/emitter/EventEmitter" :refer [EventEmitter]] + ["rn-snoopy" :default snoopy] + ["rn-snoopy/stream/filter" :default sn-filter] + ["rn-snoopy/stream/bars" :default bars] + ["rn-snoopy/stream/buffer" :default buffer])) (defn create-filter [f] - (fn [message] + (fn [^js message] (let [method (.-method message) module (.-module message) - args (.-args message) + ^js args (.-args message) first-arg (when (pos? (.-length args)) (aget args 0))] (f {:method method @@ -54,16 +54,16 @@ (defn threshold-warnings [{:keys [filter-fn label tick? print-events? threshold events threshold-message]}] - (.subscribe ((bars - (fn [a] (.-length a)) - threshold - tick? - true - label - threshold-message) - ((buffer) ((sn-filter (create-filter filter-fn) - print-events?) - events))))) + (.subscribe ^js ((bars + (fn [^js a] (.-length a)) + threshold + tick? + true + label + threshold-message) + ((buffer) ((sn-filter (create-filter filter-fn) + print-events?) + events))))) ;; In order to enable snoopy set SNOOPY=1 in .env file. ;; By default events are not printed and you will see warnings only when @@ -73,7 +73,7 @@ ;; and then collect printed data in logs. (defn subscribe! [] (when config/snoopy-enabled? - (let [emitter-class js-dependencies/EventEmmiter + (let [emitter-class EventEmitter emitter (emitter-class.) events (.stream snoopy emitter)] (threshold-warnings @@ -101,8 +101,7 @@ "Please consider preloading of screens or lazy loading of some components") :tick? false :print-events? true - ;; todo(rasom): revisit this number when/if - ;; https://github.com/status-im/status-react/pull/2849 will be merged + ;; todo(rasom): revisit this number when/if + ;; https://github.com/status-im/status-react/pull/2849 will be merged :threshold 200 :events events})))) - diff --git a/src/status_im/utils/theme.cljs b/src/status_im/utils/theme.cljs index d21444b157..1473ec93fc 100644 --- a/src/status_im/utils/theme.cljs +++ b/src/status_im/utils/theme.cljs @@ -1,13 +1,13 @@ (ns status-im.utils.theme - (:require [status-im.react-native.js-dependencies :as js-dependencies] + (:require ["react-native-dark-mode" :as react-native-dark-mode] [oops.core :refer [oget ocall]])) -(def event-emitter (oget js-dependencies/react-native-dark-mode "eventEmitter")) -(def initial-mode (atom (oget js-dependencies/react-native-dark-mode "initialMode"))) +(def event-emitter (oget react-native-dark-mode "eventEmitter")) +(def initial-mode (atom (oget react-native-dark-mode "initialMode"))) (defn add-mode-change-listener [callback] (ocall event-emitter "on" "currentModeChanged" #(do (reset! initial-mode %) (callback (keyword %))))) (defn is-dark-mode [] - (= @initial-mode "dark")) \ No newline at end of file + (= @initial-mode "dark")) diff --git a/src/status_im/utils/types.cljs b/src/status_im/utils/types.cljs index 4e11d83663..f917a12a43 100644 --- a/src/status_im/utils/types.cljs +++ b/src/status_im/utils/types.cljs @@ -20,4 +20,5 @@ (catch js/Error _ (when (string? json) json))))) (def serialize clj->json) -(defn deserialize [o] (try (json->clj o) (catch :default e nil))) +(defn deserialize [o] (try (json->clj o) + (catch :default _ nil))) diff --git a/src/status_im/utils/universal_links/core.cljs b/src/status_im/utils/universal_links/core.cljs index 63e5571c2c..f213bfc07a 100644 --- a/src/status_im/utils/universal_links/core.cljs +++ b/src/status_im/utils/universal_links/core.cljs @@ -8,7 +8,6 @@ [status-im.constants :as constants] [status-im.ethereum.ens :as ens] [status-im.ethereum.core :as ethereum] - [status-im.pairing.core :as pairing] [status-im.utils.security :as security] [status-im.ui.components.list-selection :as list-selection] [status-im.ui.components.react :as react] @@ -186,16 +185,13 @@ ;;NOTE: https://github.com/facebook/react-native/issues/15961 ;; workaround for getInitialURL returning null when opening the ;; app from a universal link after closing it with the back button - (js/setTimeout #(.. react/linking - (getInitialURL) - (then dispatch-url)) + (js/setTimeout #(-> (.getInitialURL ^js react/linking) + (.then dispatch-url)) 200) - (.. react/linking - (addEventListener "url" url-event-listener))) + (.addEventListener ^js react/linking "url" url-event-listener)) (defn finalize "Remove event listener for url" [] (log/debug "universal-links: finalizing") - (.. react/linking - (removeEventListener "url" url-event-listener))) + (.removeEventListener ^js react/linking "url" url-event-listener)) diff --git a/src/status_im/utils/utils.cljs b/src/status_im/utils/utils.cljs index 2953bff0ac..8d5fb3a4a4 100644 --- a/src/status_im/utils/utils.cljs +++ b/src/status_im/utils/utils.cljs @@ -1,19 +1,19 @@ (ns status-im.utils.utils (:require [clojure.string :as string] [goog.string :as gstring] - [goog.string.format] [status-im.i18n :as i18n] - [status-im.react-native.js-dependencies :as rn-dependencies] [re-frame.core :as re-frame] [status-im.utils.platform :as platform] [status-im.ethereum.eip55 :as eip55] - [status-im.ethereum.core :as ethereum])) + [status-im.ethereum.core :as ethereum] + ["react-native" :as react-native] + ["react-native-background-timer" :default background-timer])) (defn show-popup ([title content] (show-popup title content nil)) ([title content on-dismiss] - (.alert (.-Alert rn-dependencies/react-native) + (.alert (.-Alert react-native) title content (clj->js @@ -25,7 +25,7 @@ (clj->js {:cancelable false}))))) (defn vibrate [] - #_(.vibrate (.-Vibration rn-dependencies/react-native))) + #_(.vibrate (.-Vibration react-native))) (re-frame/reg-fx :utils/show-popup @@ -33,9 +33,9 @@ (show-popup title content on-dismiss))) (defn show-confirmation - [{:keys [title content confirm-button-text on-dismiss on-accept on-cancel cancel-button-text + [{:keys [title content confirm-button-text on-accept on-cancel cancel-button-text extra-options]}] - (.alert (.-Alert rn-dependencies/react-native) + (.alert (.-Alert react-native) title content ;; Styles are only relevant on iOS. On Android first button is 'neutral' and second is 'positive' @@ -66,7 +66,7 @@ ([title content on-accept] (show-question title content on-accept nil)) ([title content on-accept on-cancel] - (.alert (.-Alert rn-dependencies/react-native) + (.alert (.-Alert react-native) title content (clj->js @@ -93,7 +93,7 @@ (defn set-timeout [cb ms] (if platform/desktop? (js/setTimeout cb ms) - (.setTimeout rn-dependencies/background-timer cb ms))) + (.setTimeout background-timer cb ms))) (defn unread-messages-count "display actual # if less than 1K, round to the lowest thousand if between 1 and 10K, otherwise 10K+ for anything larger" @@ -118,17 +118,17 @@ (defn clear-timeout [id] (if platform/desktop? (js/clearTimeout id) - (.clearTimeout rn-dependencies/background-timer id))) + (.clearTimeout background-timer id))) (defn set-interval [cb ms] (if platform/desktop? (js/setInterval cb ms) - (.setInterval rn-dependencies/background-timer cb ms))) + (.setInterval background-timer cb ms))) (defn clear-interval [id] (if platform/desktop? (js/clearInterval id) - (.clearInterval rn-dependencies/background-timer id))) + (.clearInterval background-timer id))) (defn format-decimals [amount places] (let [decimal-part (get (string/split (str amount) ".") 1)] diff --git a/src/status_im/utils/varint.cljs b/src/status_im/utils/varint.cljs index 9c863f95fb..d7a673afce 100644 --- a/src/status_im/utils/varint.cljs +++ b/src/status_im/utils/varint.cljs @@ -1,9 +1,7 @@ (ns ^{:doc "Implementation of varint based on https://github.com/chrisdickinson/varint"} status-im.utils.varint (:require [status-im.ethereum.abi-spec :as abi-spec] - [status-im.js-dependencies :as dependencies])) - -(def utils dependencies/web3-utils) + ["web3-utils" :as utils])) (def most-significant-bit 0x80) (def biggest-int-per-byte 0x7F) diff --git a/src/status_im/utils/views.clj b/src/status_im/utils/views.clj index a0c18796a5..9b3e884233 100644 --- a/src/status_im/utils/views.clj +++ b/src/status_im/utils/views.clj @@ -34,7 +34,7 @@ [form `(deref ~sym)])) pairs))])) -(defmacro letsubs [args & body]) +(defmacro letsubs [_ & _]) (defmacro defview [n params & rest-body] @@ -51,21 +51,18 @@ [(first rest-body') {} (second rest-body')])) 3 rest-body') [subs-bindings vars-bindings] (prepare-subs subs)] - `(do - (when-not (find-ns 're-frame.core) - (require 're-frame.core)) - (defn ~n ~params - (let [~@subs-bindings] - (reagent.core/create-class - (merge ~(->> component-map - (map (fn [[k f]] - (let [args (gensym "args")] - [k `(fn [& ~args] - (let [~@vars-bindings] - (apply ~f ~args)))]))) - (into {})) - {:display-name (name '~n) - :reagent-render - (fn ~params - (let [~@vars-bindings] - ~body))}))))))) + `(defn ~n ~params + (let [~@subs-bindings] + (reagent.core/create-class + (merge ~(->> component-map + (map (fn [[k f]] + (let [args (gensym "args")] + [k `(fn [& ~args] + (let [~@vars-bindings] + (apply ~f ~args)))]))) + (into {})) + {:display-name (name '~n) + :reagent-render + (fn ~params + (let [~@vars-bindings] + ~body))})))))) diff --git a/src/status_im/wallet/accounts/core.cljs b/src/status_im/wallet/accounts/core.cljs index 1c893916b6..96e05b4cd2 100644 --- a/src/status_im/wallet/accounts/core.cljs +++ b/src/status_im/wallet/accounts/core.cljs @@ -218,7 +218,7 @@ (let [{:keys [error]} (types/json->clj result)] (if (not (string/blank? error)) (new-account-error cofx :password-error error) - (let [{:keys [type step seed private-key]} (:add-account db)] + (let [{:keys [type seed private-key]} (:add-account db)] (case type :seed (import-new-account-seed cofx seed hashed-password) @@ -251,7 +251,7 @@ (fx/defn save-account {:events [:wallet.accounts/save-account]} - [{:keys [db] :as cofx} account {:keys [name color]}] + [{:keys [db]} account {:keys [name color]}] (let [accounts (:multiaccount/accounts db) new-account (cond-> account name (assoc :name name) diff --git a/src/status_im/wallet/choose_recipient/core.cljs b/src/status_im/wallet/choose_recipient/core.cljs index ac239bad2a..2aaaea5a4a 100644 --- a/src/status_im/wallet/choose_recipient/core.cljs +++ b/src/status_im/wallet/choose_recipient/core.cljs @@ -39,7 +39,7 @@ (-> (js/Promise.all (clj->js (mapv (fn [ens-name] (js/Promise. - (fn [resolve reject] + (fn [resolve _] (ens/get-addr registry ens-name resolve)))) ens-names))) (.then callback) @@ -62,7 +62,7 @@ {:ui/show-error (i18n/label :t/wallet-invalid-address-checksum {:data recipient})})) (not (string/blank? recipient)) {::resolve-address {:registry (get ens/ens-registries chain) - :ens-name (if (= (.indexOf recipient ".") -1) + :ens-name (if (= (.indexOf ^js recipient ".") -1) (stateofus/subdomain recipient) recipient) :cb #(re-frame/dispatch [::recipient-address-resolved %])}} @@ -148,7 +148,7 @@ (fx/defn qr-scanner-result {:events [:wallet.send/qr-scanner-result]} - [{db :db :as cofx} data opts] + [cofx data _] (fx/merge cofx (navigation/navigate-back) (parse-eip681-uri-and-resolve-ens data) diff --git a/src/status_im/wallet/collectibles/core.cljs b/src/status_im/wallet/collectibles/core.cljs index 7e46effcb3..93d899acdf 100644 --- a/src/status_im/wallet/collectibles/core.cljs +++ b/src/status_im/wallet/collectibles/core.cljs @@ -1,7 +1,6 @@ (ns status-im.wallet.collectibles.core (:require [re-frame.core :as re-frame] [status-im.browser.core :as browser] - [status-im.constants :as constants] [status-im.ethereum.core :as ethereum] [status-im.ethereum.erc721 :as erc721] [status-im.ethereum.tokens :as tokens] @@ -109,7 +108,7 @@ #(re-frame/dispatch [:token-uri-success tokenId (when % - (subs % (.indexOf % "http")))]))))) ;; extra chars in rinkeby + (subs % (.indexOf ^js % "http")))]))))) ;; extra chars in rinkeby ;;Superrare (def superrare :SUPR) diff --git a/src/status_im/wallet/core.cljs b/src/status_im/wallet/core.cljs index 02ab47c57e..1d753b379d 100644 --- a/src/status_im/wallet/core.cljs +++ b/src/status_im/wallet/core.cljs @@ -1,6 +1,5 @@ (ns status-im.wallet.core - (:require [clojure.set :as set] - [re-frame.core :as re-frame] + (:require [re-frame.core :as re-frame] [status-im.multiaccounts.update.core :as multiaccounts.update] [status-im.constants :as constants] [status-im.waku.core :as waku] @@ -75,7 +74,7 @@ :outputs ["string"] :on-success (fn [[contract-name]] - (when (and (not (empty? contract-name)) + (when (and (seq contract-name) (not= name contract-name)) (let [message (i18n/label :t/token-auto-validate-name-error {:symbol symbol @@ -94,7 +93,7 @@ :on-success (fn [[contract-symbol]] ;;NOTE(goranjovic): skipping check if field not set in contract - (when (and (not (empty? contract-symbol)) + (when (and (seq contract-symbol) (not= (clojure.core/name symbol) contract-symbol)) (let [message (i18n/label :t/token-auto-validate-symbol-error {:symbol symbol @@ -291,13 +290,13 @@ (prices/update-prices)))) (fx/defn add-custom-token - [{:keys [db] :as cofx} {:keys [symbol]}] + [cofx {:keys [symbol]}] (fx/merge cofx (update-toggle-in-settings symbol true) (update-balances nil))) (fx/defn remove-custom-token - [{:keys [db] :as cofx} {:keys [symbol]}] + [cofx {:keys [symbol]}] (update-toggle-in-settings cofx symbol false)) (fx/defn set-and-validate-amount @@ -312,7 +311,7 @@ (fx/defn sign-transaction-button-clicked-from-chat {:events [:wallet.ui/sign-transaction-button-clicked-from-chat]} - [{:keys [db] :as cofx} {:keys [to amount from token request? from-chat? gas gasPrice]}] + [{:keys [db] :as cofx} {:keys [to amount from token]}] (let [{:keys [symbol address]} token amount-hex (str "0x" (abi-spec/number-to-hex amount)) to-norm (ethereum/normalized-hex (if (string? to) to (:address to))) @@ -350,9 +349,8 @@ (fx/defn request-transaction-button-clicked-from-chat {:events [:wallet.ui/request-transaction-button-clicked]} - [{:keys [db] :as cofx} {:keys [to amount from token from-chat? gas gasPrice]}] + [{:keys [db] :as cofx} {:keys [to amount from token]}] (let [{:keys [symbol address]} token - to-norm (ethereum/normalized-hex (if (string? to) to (:address to))) from-address (:address from) identity (:current-chat-id db)] (fx/merge cofx @@ -489,7 +487,7 @@ ens-verified (assoc ::resolve-address {:registry (get ens/ens-registries chain) - :ens-name (if (= (.indexOf name ".") -1) + :ens-name (if (= (.indexOf ^js name ".") -1) (stateofus/subdomain name) name) ;;TODO handle errors and timeout for ens name resolution diff --git a/src/status_im/wallet/custom_tokens/core.cljs b/src/status_im/wallet/custom_tokens/core.cljs index e4c1e16793..6eac43a46d 100644 --- a/src/status_im/wallet/custom_tokens/core.cljs +++ b/src/status_im/wallet/custom_tokens/core.cljs @@ -10,7 +10,6 @@ [status-im.utils.money :as money] [status-im.wallet.core :as wallet] [status-im.ui.screens.navigation :as navigation] - [status-im.multiaccounts.update.core :as multiaccounts.update] [status-im.wallet.prices :as prices])) (re-frame/reg-fx @@ -167,7 +166,6 @@ {:events [:wallet.custom-token.ui/add-pressed]} [{:keys [db] :as cofx}] (let [{:keys [contract name symbol decimals]} (get db :wallet/custom-token-screen) - chain-key (ethereum/chain-keyword db) symbol (keyword symbol) new-token {:address contract :name name @@ -187,15 +185,14 @@ (fx/defn remove-custom-token {:events [:wallet.custom-token.ui/remove-pressed]} [{:keys [db] :as cofx} {:keys [address] :as token} navigate-back?] - (let [chain-key (ethereum/chain-keyword db)] - (fx/merge cofx - {:db (update db :wallet/all-tokens dissoc address) - ::json-rpc/call [{:method "wallet_deleteCustomToken" - :params [address] - :on-success #()}]} - (wallet/remove-custom-token token) - (when navigate-back? - (navigation/navigate-back))))) + (fx/merge cofx + {:db (update db :wallet/all-tokens dissoc address) + ::json-rpc/call [{:method "wallet_deleteCustomToken" + :params [address] + :on-success #()}]} + (wallet/remove-custom-token token) + (when navigate-back? + (navigation/navigate-back)))) (fx/defn field-is-edited [{:keys [db] :as cofx} field-key value] diff --git a/src/status_im/wallet/db.cljs b/src/status_im/wallet/db.cljs index c8d25106d0..96d7bac9fd 100644 --- a/src/status_im/wallet/db.cljs +++ b/src/status_im/wallet/db.cljs @@ -40,7 +40,7 @@ "Checks if number has any extra digit beyond the allowed number of decimals. It does so by checking the number against its rounded value." [amount decimals] - (let [bn (money/bignumber amount)] + (let [^js bn (money/bignumber amount)] (not (.eq bn (.round bn decimals))))) @@ -72,13 +72,13 @@ (defn remove-transactions-since-block [accounts block] - (reduce-kv (fn [acc account-address {:keys [transactions] :as account}] + (reduce-kv (fn [acc account-address account] (assoc acc account-address (update account :transactions (fn [transactions] (into empty-transaction-map - (drop-while (fn [[k v]] + (drop-while (fn [[_ v]] (>= (int (:block v)) block)) transactions)))))) {} diff --git a/test-resources/override.js b/test-resources/override.js new file mode 100644 index 0000000000..0ee37faaad --- /dev/null +++ b/test-resources/override.js @@ -0,0 +1,29 @@ +var Mocks = require('../target/mocks/mocks.js'); +var Module = require('module'); + +const originalLoader = Module._load; + +/* + Hook `require` so that RN abuse of require does not break when running tests in nodejs. +*/ + +Module._load = function hookedLoader(request, parent, isMain) { + if (request.match(/.jpeg|.jpg|.png$/)) { + return { uri: request }; + } + + return originalLoader(request, parent, isMain); +}; + +var originalRequire = Module.prototype.require; + +Module.prototype.require = function(req){ + module = Mocks.mocks(req); + if (module == null) { + return originalRequire.apply(this, arguments); + } + else { + return module; + } +}; + diff --git a/test/cljs/cljsjs/create_react_class.cljs b/test/cljs/cljsjs/create_react_class.cljs deleted file mode 100644 index 2b565554c1..0000000000 --- a/test/cljs/cljsjs/create_react_class.cljs +++ /dev/null @@ -1 +0,0 @@ -(ns cljsjs.create-react-class) diff --git a/test/cljs/cljsjs/react.cljs b/test/cljs/cljsjs/react.cljs deleted file mode 100644 index 69f52779e9..0000000000 --- a/test/cljs/cljsjs/react.cljs +++ /dev/null @@ -1,2 +0,0 @@ -(ns cljsjs.react) - diff --git a/test/cljs/cljsjs/react/dom.cljs b/test/cljs/cljsjs/react/dom.cljs deleted file mode 100644 index 3c69f0090f..0000000000 --- a/test/cljs/cljsjs/react/dom.cljs +++ /dev/null @@ -1 +0,0 @@ -(ns cljsjs.react.dom) \ No newline at end of file diff --git a/test/cljs/cljsjs/react/dom/server.cljs b/test/cljs/cljsjs/react/dom/server.cljs deleted file mode 100644 index c7ffcf638f..0000000000 --- a/test/cljs/cljsjs/react/dom/server.cljs +++ /dev/null @@ -1 +0,0 @@ -(ns cljsjs.react.dom.server) \ No newline at end of file diff --git a/test/cljs/status_im/test/browser/core.cljs b/test/cljs/status_im/test/browser/core.cljs index dbc1752c8c..e616633eff 100644 --- a/test/cljs/status_im/test/browser/core.cljs +++ b/test/cljs/status_im/test/browser/core.cljs @@ -33,7 +33,7 @@ :history-index 0 :history ["http://cryptokitties.co"] :dapp? false - :name "browser" + :name "Browser" :timestamp 1})) "some properties of the browser are not correct") @@ -70,7 +70,7 @@ :history-index 0 :history ["http://cryptokitties.co"] :dapp? false - :name "browser" + :name "Browser" :timestamp 2})) "some properties of the browser are not correct") (is (nil? (browser/navigate-to-next-page result-open-existing)) @@ -91,7 +91,7 @@ :history-index 1 :history ["http://cryptokitties.co" dapp1-url2] :dapp? false - :name "browser" + :name "Browser" :timestamp 4})) "some properties of the browser are not correct") @@ -104,7 +104,7 @@ :history-index 0 :history ["http://cryptokitties.co" dapp1-url2] :dapp? false - :name "browser" + :name "Browser" :timestamp 5})) "some properties of the browser are not correct") @@ -117,6 +117,6 @@ :history-index 1 :history ["http://cryptokitties.co" dapp1-url2] :dapp? false - :name "browser" + :name "Browser" :timestamp 6})) "some properties of the browser are not correct")))))))))))) diff --git a/test/cljs/status_im/test/fleet/core.cljs b/test/cljs/status_im/test/fleet/core.cljs index afdb1be20d..842a71f079 100644 --- a/test/cljs/status_im/test/fleet/core.cljs +++ b/test/cljs/status_im/test/fleet/core.cljs @@ -4,25 +4,25 @@ [status-im.fleet.core :as fleet] [status-im.node.core :as node])) -(deftest fleets-test - (testing "not passing any extra fleet" - (testing "it returns the default fleets" - (is (= - #{:eth.prod - :eth.staging - :eth.test} - (into #{} - (keys (node/fleets {}))))))) - (testing "passing a custom fleet" - (testing "it sets the custom fleet" - (is (= {:mail {"a" "a"} - :whisper {"w" "w"} - :boot {"b" "b"}} - (:custom-fleet - (node/fleets {:custom-fleets {:custom-fleet - {:mail {"a" "a"} - :whisper {"w" "w"} - :boot {"b" "b"}}}}))))))) +#_(deftest fleets-test + (testing "not passing any extra fleet" + (testing "it returns the default fleets" + (is (= + #{:eth.prod + :eth.staging + :eth.test} + (into #{} + (keys (node/fleets {}))))))) + (testing "passing a custom fleet" + (testing "it sets the custom fleet" + (is (= {:mail {"a" "a"} + :whisper {"w" "w"} + :boot {"b" "b"}} + (:custom-fleet + (node/fleets {:custom-fleets {:custom-fleet + {:mail {"a" "a"} + :whisper {"w" "w"} + :boot {"b" "b"}}}}))))))) (deftest set-nodes-test (testing "set-nodes" diff --git a/test/cljs/status_im/test/i18n.cljs b/test/cljs/status_im/test/i18n.cljs index 6c0742cc51..35fcb38040 100644 --- a/test/cljs/status_im/test/i18n.cljs +++ b/test/cljs/status_im/test/i18n.cljs @@ -1017,7 +1017,7 @@ (get checkpoints-def checkpoint)) (defn checkpoint-val-to-compare [c] - (-> c name (string/replace #"^.*\|" "") int)) + (-> c name (string/replace #"^.*\|" "") js/parseInt)) (defn >checkpoints [& cs] (apply > (map checkpoint-val-to-compare cs))) diff --git a/test/cljs/status_im/test/multiaccounts/create/core.cljs b/test/cljs/status_im/test/multiaccounts/create/core.cljs deleted file mode 100644 index 79aac6ade8..0000000000 --- a/test/cljs/status_im/test/multiaccounts/create/core.cljs +++ /dev/null @@ -1,64 +0,0 @@ -(ns status-im.test.multiaccounts.create.core - (:require [cljs.test :refer-macros [deftest is testing]] - [status-im.utils.utils :as utils] - [status-im.multiaccounts.create.core :as models])) - -(deftest intro-step-back - (testing "Back from choose-key" - (let [db {:intro-wizard {:step :choose-key}} - result (get-in (models/intro-step-back {:db db}) [:db :intro-wizard])] - (is (= result {:step :generate-key})))) - - (testing "Back from create-code" - (let [db {:intro-wizard {:step :create-code :key-code "qwerty"}} - result (get-in (models/intro-step-back {:db db}) [:db :intro-wizard])] - (is (= result {:step :select-key-storage :key-code nil :weak-password? true})))) - - (testing "Back from confirm-code" - (let [db {:intro-wizard {:step :confirm-code :confirm-failure? true}} - result (get-in (models/intro-step-back {:db db}) [:db :intro-wizard])] - (is (= result {:step :create-code :key-code nil :confirm-failure? false :weak-password? true}))))) - -(deftest intro-step-forward - (testing "Forward from choose-key" - (let [db {:intro-wizard {:step :choose-key}} - ;; In this case intro-step-forward returns fx/merge result which is an fn - ;; to be invoked on cofx - result (get-in ((models/intro-step-forward {:db db}) {:db db}) [:db :intro-wizard])] - (is (= result {:step :select-key-storage})))) - - (testing "Forward from generate-key" - (let [db {:intro-wizard {:step :generate-key}} - result ((models/intro-step-forward {:db db}) {:db db})] - (is (= (select-keys (:db result) [:intro-wizard :node/on-ready]) {:intro-wizard {:step :generate-key :generating-keys? true} - :node/on-ready :start-onboarding})))) - - (testing "Forward from create-code" - (let [db {:intro-wizard {:step :create-code :key-code "qwerty"}} - result (get-in ((models/intro-step-forward {:db db}) {:db db}) [:db :intro-wizard])] - (is (= result {:step :confirm-code :key-code nil :stored-key-code "qwerty"})))) - - (testing "Forward from confirm-code (failure case)" - (with-redefs [utils/vibrate (fn [] "vibrating")] - (let [db {:intro-wizard {:step :confirm-code :key-code "abcdef" :encrypt-with-password? true :stored-key-code "qwerty"}} - result (get-in ((models/intro-step-forward {:db db}) {:db db}) [:db :intro-wizard])] - (is (= result {:step :confirm-code :key-code "abcdef" :confirm-failure? true - :encrypt-with-password? true - :stored-key-code "qwerty"})))))) - -(deftest on-keys-generated - (testing "Test merging of generated keys into app-db" - (let [db {:intro-wizard {:step :generate-key :generating-keys true}} - multiaccounts [{:id "0x01"} - {:id "0x02"} - {:id "0x03"} - {:id "0x04"} - {:id "0x05"}] - result (get-in (models/on-keys-generated {:db db} {:multiaccounts multiaccounts}) [:db :intro-wizard])] - (is (= result) {:step :choose-key :multiaccounts multiaccounts :selected-storage-type :default :selected-id (-> multiaccounts first :id)})))) - -(deftest get-new-key-code - (testing "Add new character to keycode" - (is (= "abcd" (models/get-new-key-code "abc" "d" true)))) - (testing "Remove trailing character from keycode" - (is (= "ab" (models/get-new-key-code "abc" :remove true))))) diff --git a/test/cljs/status_im/test/runner.cljs b/test/cljs/status_im/test/runner.cljs deleted file mode 100644 index b76c72b292..0000000000 --- a/test/cljs/status_im/test/runner.cljs +++ /dev/null @@ -1,134 +0,0 @@ -(ns status-im.test.runner - (:require [doo.runner :refer-macros [doo-tests]] - [status-im.test.browser.core] - [status-im.test.browser.permissions] - [status-im.test.chat.db] - [status-im.test.chat.models.input] - [status-im.test.chat.models.message] - [status-im.test.chat.models.message-list] - [status-im.test.chat.models] - [status-im.test.chat.views.photos] - [status-im.test.transport.filters.core] - [status-im.test.data-store.chats] - [status-im.test.data-store.messages] - [status-im.test.data-store.contacts] - [status-im.test.ethereum.abi-spec] - [status-im.test.ethereum.core] - [status-im.test.ethereum.eip55] - [status-im.test.ethereum.eip681] - [status-im.test.ethereum.ens] - [status-im.test.ethereum.mnemonic] - [status-im.test.ethereum.stateofus] - [status-im.test.fleet.core] - [status-im.test.hardwallet.core] - [status-im.test.hardwallet.common] - [status-im.test.i18n] - [status-im.test.mailserver.core] - [status-im.test.mailserver.topics] - [status-im.test.models.bootnode] - [status-im.test.models.contact] - status-im.test.multiaccounts.login.core - [status-im.test.multiaccounts.model] - [status-im.test.multiaccounts.recover.core] - [status-im.test.multiaccounts.update.core] - [status-im.test.network.core] - [status-im.test.search.core] - [status-im.test.sign-in.flow] - [status-im.test.stickers.core] - [status-im.test.transport.core] - [status-im.test.tribute-to-talk.core] - [status-im.test.tribute-to-talk.db] - [status-im.test.tribute-to-talk.whitelist] - [status-im.test.ui.screens.currency-settings.models] - [status-im.test.ui.screens.wallet.db] - [status-im.test.utils.async] - [status-im.test.utils.clocks] - [status-im.test.utils.contenthash] - [status-im.test.utils.datetime] - [status-im.test.utils.fx] - [status-im.test.utils.http] - [status-im.test.utils.money] - [status-im.test.utils.prices] - [status-im.test.utils.random] - [status-im.test.utils.security] - [status-im.test.utils.signing-phrase.core] - [status-im.test.utils.transducers] - [status-im.test.utils.universal-links.core] - [status-im.test.utils.utils] - [status-im.test.wallet.subs] - [status-im.test.wallet.transactions.subs] - [status-im.test.wallet.transactions] - [status-im.test.contacts.db] - [status-im.test.signing.core] - [status-im.test.signing.gas])) - -(enable-console-print!) - -;; Or doo will exit with an error, see: -;; https://github.com/bensu/doo/issues/83#issuecomment-165498172 -(set! (.-error js/console) (fn [x] (.log js/console x))) - -(set! goog.DEBUG false) - -(doo-tests - 'status-im.test.browser.core - 'status-im.test.browser.permissions - 'status-im.test.chat.db - 'status-im.test.chat.models - 'status-im.test.chat.models.input - 'status-im.test.chat.models.message - 'status-im.test.chat.models.message-list - 'status-im.test.chat.views.photos - 'status-im.test.transport.filters.core - 'status-im.test.contacts.db - 'status-im.test.data-store.chats - 'status-im.test.data-store.messages - 'status-im.test.data-store.contacts - 'status-im.test.ethereum.abi-spec - 'status-im.test.ethereum.core - 'status-im.test.ethereum.eip55 - 'status-im.test.ethereum.eip681 - 'status-im.test.ethereum.ens - 'status-im.test.ethereum.mnemonic - 'status-im.test.ethereum.stateofus - 'status-im.test.fleet.core - 'status-im.test.hardwallet.core - 'status-im.test.hardwallet.common - 'status-im.test.i18n - 'status-im.test.mailserver.core - 'status-im.test.mailserver.topics - 'status-im.test.models.bootnode - 'status-im.test.models.contact - 'status-im.test.multiaccounts.login.core - 'status-im.test.multiaccounts.model - 'status-im.test.multiaccounts.recover.core - 'status-im.test.multiaccounts.update.core - 'status-im.test.network.core - 'status-im.test.search.core - 'status-im.test.sign-in.flow - 'status-im.test.stickers.core - 'status-im.test.signing.core - 'status-im.test.signing.gas - 'status-im.test.transport.core - 'status-im.test.tribute-to-talk.core - 'status-im.test.tribute-to-talk.db - 'status-im.test.tribute-to-talk.whitelist - 'status-im.test.ui.screens.currency-settings.models - 'status-im.test.ui.screens.wallet.db - 'status-im.test.utils.async - 'status-im.test.utils.clocks - 'status-im.test.utils.contenthash - 'status-im.test.utils.datetime - 'status-im.test.utils.fx - 'status-im.test.utils.http - 'status-im.test.utils.money - 'status-im.test.utils.prices - 'status-im.test.utils.random - 'status-im.test.utils.security - 'status-im.test.utils.signing-phrase.core - 'status-im.test.utils.transducers - 'status-im.test.utils.universal-links.core - 'status-im.test.utils.utils - 'status-im.test.wallet.subs - 'status-im.test.wallet.transactions - 'status-im.test.wallet.transactions.subs) diff --git a/test/cljs/status_im/test/search/core.cljs b/test/cljs/status_im/test/search/core.cljs index 806d20ea9f..a3f17d1a9e 100644 --- a/test/cljs/status_im/test/search/core.cljs +++ b/test/cljs/status_im/test/search/core.cljs @@ -19,29 +19,35 @@ (is (= (count chats) (count (search.subs/apply-filter "" chats - search.subs/extract-chat-attributes))))) + search.subs/extract-chat-attributes + false))))) (testing "searching for a specific tag" (is (= 1 (count (search.subs/apply-filter "tag2" chats - search.subs/extract-chat-attributes))))) + search.subs/extract-chat-attributes + false))))) (testing "searching for a partial tag" (is (= 3 (count (search.subs/apply-filter "tag" chats - search.subs/extract-chat-attributes))))) + search.subs/extract-chat-attributes + false))))) (testing "searching for a specific random-name" (is (= 1 (count (search.subs/apply-filter "random-name1" chats - search.subs/extract-chat-attributes))))) + search.subs/extract-chat-attributes + false))))) (testing "searching for a partial random-name" (is (= 4 (count (search.subs/apply-filter "random-name" chats - search.subs/extract-chat-attributes))))) + search.subs/extract-chat-attributes + false))))) (testing "searching for a specific chat name" (is (= 1 (count (search.subs/apply-filter "name4" chats - search.subs/extract-chat-attributes))))))) + search.subs/extract-chat-attributes + false))))))) diff --git a/test/cljs/status_im/test/utils/datetime.cljs b/test/cljs/status_im/test/utils/datetime.cljs index cc0e8a97fd..b28d0c8e30 100644 --- a/test/cljs/status_im/test/utils/datetime.cljs +++ b/test/cljs/status_im/test/utils/datetime.cljs @@ -1,12 +1,11 @@ (ns status-im.test.utils.datetime (:require [cljs.test :refer-macros [deftest is]] [status-im.utils.datetime :as d] - [status-im.goog.i18n-module :as i18n-module] [status-im.goog.i18n :as i18n] [cljs-time.core :as t])) (defn match [name symbols] - (is (identical? (.-dateTimeSymbols_ (i18n-module/mk-fmt name d/medium-date-format)) + (is (identical? (.-dateTimeSymbols_ (i18n/mk-fmt name d/medium-date-format)) symbols))) (deftest date-time-formatter-test @@ -34,7 +33,7 @@ (deftest to-short-str-today-test (with-redefs [t/*ms-fn* (constantly epoch-plus-3d) - d/time-fmt (fn [] (i18n-module/mk-fmt "us" d/short-time-format)) + d/time-fmt (fn [] (i18n/mk-fmt "us" d/short-time-format)) d/time-zone-offset (t/period :hours 0)] (is (= (d/to-short-str epoch-plus-3d) "12:00 AM")))) @@ -55,25 +54,25 @@ (deftest to-short-str-before-yesterday-us-test (with-redefs [t/*ms-fn* (constantly epoch-plus-3d) d/time-zone-offset (t/period :hours 0) - d/date-fmt (fn [] (i18n-module/mk-fmt "us" d/medium-date-format))] + d/date-fmt (fn [] (i18n/mk-fmt "us" d/medium-date-format))] (is (= (d/to-short-str epoch) "Jan 1, 1970")))) (deftest to-short-str-before-yesterday-nb-test (with-redefs [d/time-zone-offset (t/period :hours 0) - d/date-fmt (fn [] (i18n-module/mk-fmt "nb-NO" d/medium-date-format)) + d/date-fmt (fn [] (i18n/mk-fmt "nb-NO" d/medium-date-format)) t/*ms-fn* (constantly epoch-plus-3d)] (is (= (d/to-short-str epoch) "1. jan. 1970")))) (deftest day-relative-before-yesterday-us-test (with-redefs [t/*ms-fn* (constantly epoch-plus-3d) d/time-zone-offset (t/period :hours 0) - d/date-fmt (fn [] (i18n-module/mk-fmt "us" d/medium-date-time-format))] + d/date-fmt (fn [] (i18n/mk-fmt "us" d/medium-date-time-format))] (is (= (d/day-relative epoch) "Jan 1, 1970, 12:00:00 AM")))) (deftest day-relative-before-yesterday-nb-test (with-redefs [t/*ms-fn* (constantly epoch-plus-3d) d/time-zone-offset (t/period :hours 0) - d/date-fmt (fn [] (i18n-module/mk-fmt "nb-NO" d/medium-date-time-format))] + d/date-fmt (fn [] (i18n/mk-fmt "nb-NO" d/medium-date-time-format))] (is (= (d/day-relative epoch) "1. jan. 1970, 00:00:00")))) #_((deftest day-relative-before-yesterday-force-24H-test diff --git a/test/cljs/status_im/test/utils/varint.cljs b/test/cljs/status_im/test/utils/varint.cljs index f827c4f14f..0b8b89d281 100644 --- a/test/cljs/status_im/test/utils/varint.cljs +++ b/test/cljs/status_im/test/utils/varint.cljs @@ -4,19 +4,19 @@ (deftest encode (is (= (varint/encode-hex 0x0) - "0")) + "00")) (is (= (varint/encode-hex 0x70) "70")) (is (= (varint/encode-hex 0xe3) "e301"))) (deftest decode - (is (= (varint/decode-hex "0") + (is (= (varint/decode-hex "00") 0x0)) (is (= (varint/decode-hex "70") 0x70)) (is (= (varint/decode-hex "e301") - 0xe301))) + 0xe3))) (defn test-roundtrip [n] (= (varint/decode-hex (varint/encode-hex n))