diff --git a/.github/codeql/codeql-config.yml b/.github/codeql/codeql-config.yml
new file mode 100644
index 00000000..c86731be
--- /dev/null
+++ b/.github/codeql/codeql-config.yml
@@ -0,0 +1,11 @@
+name: "Custom CodeQL Config"
+
+queries:
+- uses: security-and-quality
+- uses: ./.github/codeql/custom-queries/javascript
+
+paths:
+- src
+
+paths-ignore:
+- node_modules
diff --git a/.github/codeql/custom-queries/javascript/qlpack.yml b/.github/codeql/custom-queries/javascript/qlpack.yml
new file mode 100644
index 00000000..fcd24771
--- /dev/null
+++ b/.github/codeql/custom-queries/javascript/qlpack.yml
@@ -0,0 +1,4 @@
+name: custom-javascript-queries
+version: 0.0.0
+libraryPathDependencies:
+- codeql-javascript
diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml
new file mode 100644
index 00000000..accdfa15
--- /dev/null
+++ b/.github/workflows/codeql-analysis.yml
@@ -0,0 +1,68 @@
+# For most projects, this workflow file will not need changing; you simply need
+# to commit it to your repository.
+#
+# You may wish to alter this file to override the set of languages analyzed,
+# or to provide custom queries or build logic.
+#
+# ******** NOTE ********
+# We have attempted to detect the languages in your repository. Please check
+# the `language` matrix defined below to confirm you have the correct set of
+# supported CodeQL languages.
+#
+name: "CodeQL"
+
+on:
+ push:
+ branches: [ develop ]
+ pull_request:
+ # The branches below must be a subset of the branches above
+ branches: [ develop ]
+ schedule:
+ - cron: '16 21 * * 4'
+
+jobs:
+ analyze:
+ name: Analyze
+ runs-on: ubuntu-latest
+
+ strategy:
+ fail-fast: false
+ matrix:
+ language: [ 'javascript' ]
+ # CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python' ]
+ # Learn more:
+ # https://docs.github.com/en/free-pro-team@latest/github/finding-security-vulnerabilities-and-errors-in-your-code/configuring-code-scanning#changing-the-languages-that-are-analyzed
+
+ steps:
+ - name: Checkout repository
+ uses: actions/checkout@v2
+
+ # Initializes the CodeQL tools for scanning.
+ - name: Initialize CodeQL
+ uses: github/codeql-action/init@v1
+ with:
+ languages: ${{ matrix.language }}
+ config-file: ./.github/codeql/codeql-config.yml
+ # If you wish to specify custom queries, you can do so here or in a config file.
+ # By default, queries listed here will override any specified in a config file.
+ # Prefix the list here with "+" to use these queries and those in the config file.
+ # queries: ./path/to/local/query, your-org/your-repo/queries@main
+
+ # Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
+ # If this step fails, then you should remove it and run the build manually (see below)
+ - name: Autobuild
+ uses: github/codeql-action/autobuild@v1
+
+ # ℹ️ Command-line programs to run using the OS shell.
+ # 📚 https://git.io/JvXDl
+
+ # ✏️ If the Autobuild fails above, remove it and uncomment the following three lines
+ # and modify them (or add more) to build your code if your project
+ # uses a compiled language
+
+ #- run: |
+ # make bootstrap
+ # make release
+
+ - name: Perform CodeQL Analysis
+ uses: github/codeql-action/analyze@v1
diff --git a/.gitignore b/.gitignore
index 0503c21b..e75d0c54 100644
--- a/.gitignore
+++ b/.gitignore
@@ -68,4 +68,6 @@ ios-release.bundle.map
/ios/StandardNotes.xcodeproj/project.xcworkspace
# HProf
-/android/*.hprof
\ No newline at end of file
+/android/*.hprof
+
+codeqldb
diff --git a/.prettierignore b/.prettierignore
new file mode 100644
index 00000000..44174c5f
--- /dev/null
+++ b/.prettierignore
@@ -0,0 +1,2 @@
+.github
+codeqldb
diff --git a/.vscode/settings.json b/.vscode/settings.json
index 55712c19..3f5d681c 100644
--- a/.vscode/settings.json
+++ b/.vscode/settings.json
@@ -1,3 +1,6 @@
{
- "typescript.tsdk": "node_modules/typescript/lib"
+ "typescript.tsdk": "node_modules/typescript/lib",
+ "prettier.requireConfig": true,
+ "editor.defaultFormatter": "esbenp.prettier-vscode",
+ "editor.formatOnSave": true
}
\ No newline at end of file
diff --git a/Gemfile.lock b/Gemfile.lock
index 75ea260b..d2bfecb1 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -6,21 +6,21 @@ GEM
public_suffix (>= 2.0.2, < 5.0)
artifactory (3.0.15)
atomos (0.1.3)
- aws-eventstream (1.1.0)
- aws-partitions (1.422.0)
- aws-sdk-core (3.111.2)
+ aws-eventstream (1.1.1)
+ aws-partitions (1.451.0)
+ aws-sdk-core (3.114.0)
aws-eventstream (~> 1, >= 1.0.2)
aws-partitions (~> 1, >= 1.239.0)
aws-sigv4 (~> 1.1)
jmespath (~> 1.0)
- aws-sdk-kms (1.41.0)
- aws-sdk-core (~> 3, >= 3.109.0)
+ aws-sdk-kms (1.43.0)
+ aws-sdk-core (~> 3, >= 3.112.0)
aws-sigv4 (~> 1.1)
- aws-sdk-s3 (1.87.0)
- aws-sdk-core (~> 3, >= 3.109.0)
+ aws-sdk-s3 (1.94.1)
+ aws-sdk-core (~> 3, >= 3.112.0)
aws-sdk-kms (~> 1)
aws-sigv4 (~> 1.1)
- aws-sigv4 (1.2.2)
+ aws-sigv4 (1.2.3)
aws-eventstream (~> 1, >= 1.0.2)
babosa (1.0.4)
claide (1.0.3)
@@ -29,26 +29,29 @@ GEM
commander-fastlane (4.4.6)
highline (~> 1.7.2)
declarative (0.0.20)
- declarative-option (0.1.0)
digest-crc (0.6.3)
rake (>= 12.0.0, < 14.0.0)
domain_name (0.5.20190701)
unf (>= 0.0.5, < 1.0.0)
dotenv (2.7.6)
- emoji_regex (3.2.1)
- excon (0.79.0)
- faraday (1.3.0)
+ emoji_regex (3.2.2)
+ excon (0.81.0)
+ faraday (1.4.1)
+ faraday-excon (~> 1.1)
faraday-net_http (~> 1.0)
+ faraday-net_http_persistent (~> 1.1)
multipart-post (>= 1.2, < 3)
- ruby2_keywords
+ ruby2_keywords (>= 0.0.4)
faraday-cookie_jar (0.0.7)
faraday (>= 0.8.0)
http-cookie (~> 1.0.0)
+ faraday-excon (1.1.0)
faraday-net_http (1.0.1)
+ faraday-net_http_persistent (1.1.0)
faraday_middleware (1.0.0)
faraday (~> 1.0)
- fastimage (2.2.2)
- fastlane (2.172.0)
+ fastimage (2.2.3)
+ fastlane (2.181.0)
CFPropertyList (>= 2.3, < 4.0.0)
addressable (>= 2.3, < 3.0.0)
artifactory (~> 3.0)
@@ -72,6 +75,7 @@ GEM
jwt (>= 2.1.0, < 3)
mini_magick (>= 4.9.4, < 5.0.0)
multipart-post (~> 2.0.0)
+ naturally (~> 2.2)
plist (>= 3.1.0, < 4.0.0)
rubyzip (>= 2.0.0, < 3.0.0)
security (= 0.1.3)
@@ -100,7 +104,7 @@ GEM
representable (~> 3.0)
retriable (>= 2.0, < 4.0)
signet (~> 0.12)
- google-apis-core (0.2.1)
+ google-apis-core (0.3.0)
addressable (~> 2.5, >= 2.5.1)
googleauth (~> 0.14)
httpclient (>= 2.8.1, < 3.0)
@@ -110,17 +114,17 @@ GEM
rexml
signet (~> 0.14)
webrick
- google-apis-iamcredentials_v1 (0.1.0)
+ google-apis-iamcredentials_v1 (0.3.0)
google-apis-core (~> 0.1)
- google-apis-storage_v1 (0.1.0)
+ google-apis-storage_v1 (0.3.0)
google-apis-core (~> 0.1)
- google-cloud-core (1.5.0)
+ google-cloud-core (1.6.0)
google-cloud-env (~> 1.0)
google-cloud-errors (~> 1.0)
- google-cloud-env (1.4.0)
+ google-cloud-env (1.5.0)
faraday (>= 0.17.3, < 2.0)
- google-cloud-errors (1.0.1)
- google-cloud-storage (1.30.0)
+ google-cloud-errors (1.1.0)
+ google-cloud-storage (1.31.0)
addressable (~> 2.5)
digest-crc (~> 0.4)
google-apis-iamcredentials_v1 (~> 0.1)
@@ -128,7 +132,7 @@ GEM
google-cloud-core (~> 1.2)
googleauth (~> 0.9)
mini_mime (~> 1.0)
- googleauth (0.15.0)
+ googleauth (0.16.2)
faraday (>= 0.17.3, < 2.0)
jwt (>= 1.4, < 3.0)
memoist (~> 0.16)
@@ -141,10 +145,10 @@ GEM
httpclient (2.8.3)
jmespath (1.4.0)
json (2.5.1)
- jwt (2.2.2)
+ jwt (2.2.3)
memoist (0.16.2)
mini_magick (4.11.0)
- mini_mime (1.0.2)
+ mini_mime (1.1.0)
multi_json (1.15.0)
multipart-post (2.0.0)
nanaimo (0.3.0)
@@ -154,17 +158,17 @@ GEM
public_suffix (4.0.6)
rake (13.0.3)
rchardet (1.8.0)
- representable (3.0.4)
+ representable (3.1.1)
declarative (< 0.1.0)
- declarative-option (< 0.2.0)
+ trailblazer-option (>= 0.1.1, < 0.2.0)
uber (< 0.2.0)
retriable (3.1.2)
- rexml (3.2.4)
+ rexml (3.2.5)
rouge (2.0.7)
ruby2_keywords (0.0.4)
rubyzip (2.3.0)
security (0.1.3)
- signet (0.14.1)
+ signet (0.15.0)
addressable (~> 2.3)
faraday (>= 0.17.3, < 2.0)
jwt (>= 1.5, < 3.0)
@@ -176,6 +180,7 @@ GEM
terminal-notifier (2.0.0)
terminal-table (1.8.0)
unicode-display_width (~> 1.1, >= 1.1.1)
+ trailblazer-option (0.1.1)
tty-cursor (0.7.1)
tty-screen (0.8.1)
tty-spinner (0.9.3)
diff --git a/android/app/src/main/java/com/standardnotes/MainActivity.java b/android/app/src/main/java/com/standardnotes/MainActivity.java
index 79c701cf..a3577f8e 100644
--- a/android/app/src/main/java/com/standardnotes/MainActivity.java
+++ b/android/app/src/main/java/com/standardnotes/MainActivity.java
@@ -22,13 +22,12 @@ public class MainActivity extends ReactActivity {
super(activity, mainComponentName);
}
-
@Override
protected Bundle getLaunchOptions() {
String packageName = this.getContext().getPackageName();
Bundle props = new Bundle();
SharedPreferences settings = this.getContext().getSharedPreferences("react-native", Context.MODE_PRIVATE);
- String bugsnagOptOut = settings.getString("bugsnagoptout", "false");
+ String bugsnagOptOut = settings.getString("bugsnagoptout", "true");
props.putBoolean("bugsnagOptOut", bugsnagOptOut.equals("true"));
if (packageName.equals("com.standardnotes.dev")) {
props.putString("env", "dev");
diff --git a/android/app/src/main/java/com/standardnotes/MainApplication.java b/android/app/src/main/java/com/standardnotes/MainApplication.java
index fe96c133..69c40851 100644
--- a/android/app/src/main/java/com/standardnotes/MainApplication.java
+++ b/android/app/src/main/java/com/standardnotes/MainApplication.java
@@ -3,6 +3,7 @@ package com.standardnotes;
import android.app.Application;
import android.app.Activity;
import android.content.Context;
+import android.webkit.WebView;
import com.bugsnag.android.BreadcrumbType;
import com.bugsnag.android.Configuration;
@@ -65,6 +66,12 @@ public class MainApplication extends Application implements ReactApplication {
public void onCreate() {
super.onCreate();
+ // Enable Remote debugging for WebViews
+ String packageName = getApplicationContext().getPackageName();
+ if (packageName.equals("com.standardnotes.dev")) {
+ WebView.setWebContentsDebuggingEnabled(true);
+ }
+
rebuildOkHtttp();
Configuration config = Configuration.load(this);
@@ -79,7 +86,7 @@ public class MainApplication extends Application implements ReactApplication {
}});
SharedPreferences settings = getApplicationContext().getSharedPreferences("react-native", Context.MODE_PRIVATE);
- String bugsnagOptOut = settings.getString("bugsnagoptout", "false");
+ String bugsnagOptOut = settings.getString("bugsnagoptout", "true");
if (!bugsnagOptOut.equals("true")) {
Bugsnag.start(this, config);
diff --git a/fastlane/Fastfile b/fastlane/Fastfile
index 544bd909..a3c6b217 100755
--- a/fastlane/Fastfile
+++ b/fastlane/Fastfile
@@ -1,4 +1,4 @@
-fastlane_version "2.158.0"
+fastlane_version "2.181.0"
platform :ios do
def sign_ios(type = 'appstore')
diff --git a/ios/Podfile b/ios/Podfile
index 7e9a3c84..6998a8bc 100644
--- a/ios/Podfile
+++ b/ios/Podfile
@@ -15,10 +15,18 @@ pod 'TrustKit', '1.6.5'
target 'StandardNotes' do
config = use_native_modules!
- use_react_native!(:path => config["reactNativePath"])
+ use_react_native!(
+ :path => config["reactNativePath"],
+ :hermes_enabled => false,
+ )
end
target "StandardNotesDev" do
config = use_native_modules!
- use_react_native!(:path => config["reactNativePath"])
+ use_react_native!(
+ :path => config["reactNativePath"],
+
+ # Enabling hermes breaks fastlane build (at time of commit)
+ :hermes_enabled => false,
+ )
end
diff --git a/ios/Podfile.lock b/ios/Podfile.lock
index d72d98b6..e0adefe2 100644
--- a/ios/Podfile.lock
+++ b/ios/Podfile.lock
@@ -3,190 +3,208 @@ PODS:
- BugsnagReactNative (7.5.6):
- React
- DoubleConversion (1.1.6)
- - FBLazyVector (0.63.4)
- - FBReactNativeSpec (0.63.4):
- - Folly (= 2020.01.13.00)
- - RCTRequired (= 0.63.4)
- - RCTTypeSafety (= 0.63.4)
- - React-Core (= 0.63.4)
- - React-jsi (= 0.63.4)
- - ReactCommon/turbomodule/core (= 0.63.4)
- - Folly (2020.01.13.00):
- - boost-for-react-native
- - DoubleConversion
- - Folly/Default (= 2020.01.13.00)
- - glog
- - Folly/Default (2020.01.13.00):
- - boost-for-react-native
- - DoubleConversion
- - glog
+ - FBLazyVector (0.64.1)
+ - FBReactNativeSpec (0.64.1):
+ - RCT-Folly (= 2020.01.13.00)
+ - RCTRequired (= 0.64.1)
+ - RCTTypeSafety (= 0.64.1)
+ - React-Core (= 0.64.1)
+ - React-jsi (= 0.64.1)
+ - ReactCommon/turbomodule/core (= 0.64.1)
- glog (0.3.5)
- - RCTRequired (0.63.4)
- - RCTTypeSafety (0.63.4):
- - FBLazyVector (= 0.63.4)
- - Folly (= 2020.01.13.00)
- - RCTRequired (= 0.63.4)
- - React-Core (= 0.63.4)
- - React (0.63.4):
- - React-Core (= 0.63.4)
- - React-Core/DevSupport (= 0.63.4)
- - React-Core/RCTWebSocket (= 0.63.4)
- - React-RCTActionSheet (= 0.63.4)
- - React-RCTAnimation (= 0.63.4)
- - React-RCTBlob (= 0.63.4)
- - React-RCTImage (= 0.63.4)
- - React-RCTLinking (= 0.63.4)
- - React-RCTNetwork (= 0.63.4)
- - React-RCTSettings (= 0.63.4)
- - React-RCTText (= 0.63.4)
- - React-RCTVibration (= 0.63.4)
- - React-callinvoker (0.63.4)
- - React-Core (0.63.4):
- - Folly (= 2020.01.13.00)
+ - RCT-Folly (2020.01.13.00):
+ - boost-for-react-native
+ - DoubleConversion
- glog
- - React-Core/Default (= 0.63.4)
- - React-cxxreact (= 0.63.4)
- - React-jsi (= 0.63.4)
- - React-jsiexecutor (= 0.63.4)
+ - RCT-Folly/Default (= 2020.01.13.00)
+ - RCT-Folly/Default (2020.01.13.00):
+ - boost-for-react-native
+ - DoubleConversion
+ - glog
+ - RCTRequired (0.64.1)
+ - RCTTypeSafety (0.64.1):
+ - FBLazyVector (= 0.64.1)
+ - RCT-Folly (= 2020.01.13.00)
+ - RCTRequired (= 0.64.1)
+ - React-Core (= 0.64.1)
+ - React (0.64.1):
+ - React-Core (= 0.64.1)
+ - React-Core/DevSupport (= 0.64.1)
+ - React-Core/RCTWebSocket (= 0.64.1)
+ - React-RCTActionSheet (= 0.64.1)
+ - React-RCTAnimation (= 0.64.1)
+ - React-RCTBlob (= 0.64.1)
+ - React-RCTImage (= 0.64.1)
+ - React-RCTLinking (= 0.64.1)
+ - React-RCTNetwork (= 0.64.1)
+ - React-RCTSettings (= 0.64.1)
+ - React-RCTText (= 0.64.1)
+ - React-RCTVibration (= 0.64.1)
+ - React-callinvoker (0.64.1)
+ - React-Core (0.64.1):
+ - glog
+ - RCT-Folly (= 2020.01.13.00)
+ - React-Core/Default (= 0.64.1)
+ - React-cxxreact (= 0.64.1)
+ - React-jsi (= 0.64.1)
+ - React-jsiexecutor (= 0.64.1)
+ - React-perflogger (= 0.64.1)
- Yoga
- - React-Core/CoreModulesHeaders (0.63.4):
- - Folly (= 2020.01.13.00)
+ - React-Core/CoreModulesHeaders (0.64.1):
- glog
+ - RCT-Folly (= 2020.01.13.00)
- React-Core/Default
- - React-cxxreact (= 0.63.4)
- - React-jsi (= 0.63.4)
- - React-jsiexecutor (= 0.63.4)
+ - React-cxxreact (= 0.64.1)
+ - React-jsi (= 0.64.1)
+ - React-jsiexecutor (= 0.64.1)
+ - React-perflogger (= 0.64.1)
- Yoga
- - React-Core/Default (0.63.4):
- - Folly (= 2020.01.13.00)
+ - React-Core/Default (0.64.1):
- glog
- - React-cxxreact (= 0.63.4)
- - React-jsi (= 0.63.4)
- - React-jsiexecutor (= 0.63.4)
+ - RCT-Folly (= 2020.01.13.00)
+ - React-cxxreact (= 0.64.1)
+ - React-jsi (= 0.64.1)
+ - React-jsiexecutor (= 0.64.1)
+ - React-perflogger (= 0.64.1)
- Yoga
- - React-Core/DevSupport (0.63.4):
- - Folly (= 2020.01.13.00)
+ - React-Core/DevSupport (0.64.1):
- glog
- - React-Core/Default (= 0.63.4)
- - React-Core/RCTWebSocket (= 0.63.4)
- - React-cxxreact (= 0.63.4)
- - React-jsi (= 0.63.4)
- - React-jsiexecutor (= 0.63.4)
- - React-jsinspector (= 0.63.4)
+ - RCT-Folly (= 2020.01.13.00)
+ - React-Core/Default (= 0.64.1)
+ - React-Core/RCTWebSocket (= 0.64.1)
+ - React-cxxreact (= 0.64.1)
+ - React-jsi (= 0.64.1)
+ - React-jsiexecutor (= 0.64.1)
+ - React-jsinspector (= 0.64.1)
+ - React-perflogger (= 0.64.1)
- Yoga
- - React-Core/RCTActionSheetHeaders (0.63.4):
- - Folly (= 2020.01.13.00)
+ - React-Core/RCTActionSheetHeaders (0.64.1):
- glog
+ - RCT-Folly (= 2020.01.13.00)
- React-Core/Default
- - React-cxxreact (= 0.63.4)
- - React-jsi (= 0.63.4)
- - React-jsiexecutor (= 0.63.4)
+ - React-cxxreact (= 0.64.1)
+ - React-jsi (= 0.64.1)
+ - React-jsiexecutor (= 0.64.1)
+ - React-perflogger (= 0.64.1)
- Yoga
- - React-Core/RCTAnimationHeaders (0.63.4):
- - Folly (= 2020.01.13.00)
+ - React-Core/RCTAnimationHeaders (0.64.1):
- glog
+ - RCT-Folly (= 2020.01.13.00)
- React-Core/Default
- - React-cxxreact (= 0.63.4)
- - React-jsi (= 0.63.4)
- - React-jsiexecutor (= 0.63.4)
+ - React-cxxreact (= 0.64.1)
+ - React-jsi (= 0.64.1)
+ - React-jsiexecutor (= 0.64.1)
+ - React-perflogger (= 0.64.1)
- Yoga
- - React-Core/RCTBlobHeaders (0.63.4):
- - Folly (= 2020.01.13.00)
+ - React-Core/RCTBlobHeaders (0.64.1):
- glog
+ - RCT-Folly (= 2020.01.13.00)
- React-Core/Default
- - React-cxxreact (= 0.63.4)
- - React-jsi (= 0.63.4)
- - React-jsiexecutor (= 0.63.4)
+ - React-cxxreact (= 0.64.1)
+ - React-jsi (= 0.64.1)
+ - React-jsiexecutor (= 0.64.1)
+ - React-perflogger (= 0.64.1)
- Yoga
- - React-Core/RCTImageHeaders (0.63.4):
- - Folly (= 2020.01.13.00)
+ - React-Core/RCTImageHeaders (0.64.1):
- glog
+ - RCT-Folly (= 2020.01.13.00)
- React-Core/Default
- - React-cxxreact (= 0.63.4)
- - React-jsi (= 0.63.4)
- - React-jsiexecutor (= 0.63.4)
+ - React-cxxreact (= 0.64.1)
+ - React-jsi (= 0.64.1)
+ - React-jsiexecutor (= 0.64.1)
+ - React-perflogger (= 0.64.1)
- Yoga
- - React-Core/RCTLinkingHeaders (0.63.4):
- - Folly (= 2020.01.13.00)
+ - React-Core/RCTLinkingHeaders (0.64.1):
- glog
+ - RCT-Folly (= 2020.01.13.00)
- React-Core/Default
- - React-cxxreact (= 0.63.4)
- - React-jsi (= 0.63.4)
- - React-jsiexecutor (= 0.63.4)
+ - React-cxxreact (= 0.64.1)
+ - React-jsi (= 0.64.1)
+ - React-jsiexecutor (= 0.64.1)
+ - React-perflogger (= 0.64.1)
- Yoga
- - React-Core/RCTNetworkHeaders (0.63.4):
- - Folly (= 2020.01.13.00)
+ - React-Core/RCTNetworkHeaders (0.64.1):
- glog
+ - RCT-Folly (= 2020.01.13.00)
- React-Core/Default
- - React-cxxreact (= 0.63.4)
- - React-jsi (= 0.63.4)
- - React-jsiexecutor (= 0.63.4)
+ - React-cxxreact (= 0.64.1)
+ - React-jsi (= 0.64.1)
+ - React-jsiexecutor (= 0.64.1)
+ - React-perflogger (= 0.64.1)
- Yoga
- - React-Core/RCTSettingsHeaders (0.63.4):
- - Folly (= 2020.01.13.00)
+ - React-Core/RCTSettingsHeaders (0.64.1):
- glog
+ - RCT-Folly (= 2020.01.13.00)
- React-Core/Default
- - React-cxxreact (= 0.63.4)
- - React-jsi (= 0.63.4)
- - React-jsiexecutor (= 0.63.4)
+ - React-cxxreact (= 0.64.1)
+ - React-jsi (= 0.64.1)
+ - React-jsiexecutor (= 0.64.1)
+ - React-perflogger (= 0.64.1)
- Yoga
- - React-Core/RCTTextHeaders (0.63.4):
- - Folly (= 2020.01.13.00)
+ - React-Core/RCTTextHeaders (0.64.1):
- glog
+ - RCT-Folly (= 2020.01.13.00)
- React-Core/Default
- - React-cxxreact (= 0.63.4)
- - React-jsi (= 0.63.4)
- - React-jsiexecutor (= 0.63.4)
+ - React-cxxreact (= 0.64.1)
+ - React-jsi (= 0.64.1)
+ - React-jsiexecutor (= 0.64.1)
+ - React-perflogger (= 0.64.1)
- Yoga
- - React-Core/RCTVibrationHeaders (0.63.4):
- - Folly (= 2020.01.13.00)
+ - React-Core/RCTVibrationHeaders (0.64.1):
- glog
+ - RCT-Folly (= 2020.01.13.00)
- React-Core/Default
- - React-cxxreact (= 0.63.4)
- - React-jsi (= 0.63.4)
- - React-jsiexecutor (= 0.63.4)
+ - React-cxxreact (= 0.64.1)
+ - React-jsi (= 0.64.1)
+ - React-jsiexecutor (= 0.64.1)
+ - React-perflogger (= 0.64.1)
- Yoga
- - React-Core/RCTWebSocket (0.63.4):
- - Folly (= 2020.01.13.00)
+ - React-Core/RCTWebSocket (0.64.1):
- glog
- - React-Core/Default (= 0.63.4)
- - React-cxxreact (= 0.63.4)
- - React-jsi (= 0.63.4)
- - React-jsiexecutor (= 0.63.4)
+ - RCT-Folly (= 2020.01.13.00)
+ - React-Core/Default (= 0.64.1)
+ - React-cxxreact (= 0.64.1)
+ - React-jsi (= 0.64.1)
+ - React-jsiexecutor (= 0.64.1)
+ - React-perflogger (= 0.64.1)
- Yoga
- - React-CoreModules (0.63.4):
- - FBReactNativeSpec (= 0.63.4)
- - Folly (= 2020.01.13.00)
- - RCTTypeSafety (= 0.63.4)
- - React-Core/CoreModulesHeaders (= 0.63.4)
- - React-jsi (= 0.63.4)
- - React-RCTImage (= 0.63.4)
- - ReactCommon/turbomodule/core (= 0.63.4)
- - React-cxxreact (0.63.4):
+ - React-CoreModules (0.64.1):
+ - FBReactNativeSpec (= 0.64.1)
+ - RCT-Folly (= 2020.01.13.00)
+ - RCTTypeSafety (= 0.64.1)
+ - React-Core/CoreModulesHeaders (= 0.64.1)
+ - React-jsi (= 0.64.1)
+ - React-RCTImage (= 0.64.1)
+ - ReactCommon/turbomodule/core (= 0.64.1)
+ - React-cxxreact (0.64.1):
- boost-for-react-native (= 1.63.0)
- DoubleConversion
- - Folly (= 2020.01.13.00)
- glog
- - React-callinvoker (= 0.63.4)
- - React-jsinspector (= 0.63.4)
- - React-jsi (0.63.4):
+ - RCT-Folly (= 2020.01.13.00)
+ - React-callinvoker (= 0.64.1)
+ - React-jsi (= 0.64.1)
+ - React-jsinspector (= 0.64.1)
+ - React-perflogger (= 0.64.1)
+ - React-runtimeexecutor (= 0.64.1)
+ - React-jsi (0.64.1):
- boost-for-react-native (= 1.63.0)
- DoubleConversion
- - Folly (= 2020.01.13.00)
- glog
- - React-jsi/Default (= 0.63.4)
- - React-jsi/Default (0.63.4):
+ - RCT-Folly (= 2020.01.13.00)
+ - React-jsi/Default (= 0.64.1)
+ - React-jsi/Default (0.64.1):
- boost-for-react-native (= 1.63.0)
- DoubleConversion
- - Folly (= 2020.01.13.00)
- glog
- - React-jsiexecutor (0.63.4):
+ - RCT-Folly (= 2020.01.13.00)
+ - React-jsiexecutor (0.64.1):
- DoubleConversion
- - Folly (= 2020.01.13.00)
- glog
- - React-cxxreact (= 0.63.4)
- - React-jsi (= 0.63.4)
- - React-jsinspector (0.63.4)
+ - RCT-Folly (= 2020.01.13.00)
+ - React-cxxreact (= 0.64.1)
+ - React-jsi (= 0.64.1)
+ - React-perflogger (= 0.64.1)
+ - React-jsinspector (0.64.1)
- react-native-aes (1.3.9):
- React-Core
- react-native-fingerprint-scanner (5.0.0):
@@ -203,66 +221,70 @@ PODS:
- React-Core
- react-native-webview (11.0.3):
- React-Core
- - React-RCTActionSheet (0.63.4):
- - React-Core/RCTActionSheetHeaders (= 0.63.4)
- - React-RCTAnimation (0.63.4):
- - FBReactNativeSpec (= 0.63.4)
- - Folly (= 2020.01.13.00)
- - RCTTypeSafety (= 0.63.4)
- - React-Core/RCTAnimationHeaders (= 0.63.4)
- - React-jsi (= 0.63.4)
- - ReactCommon/turbomodule/core (= 0.63.4)
- - React-RCTBlob (0.63.4):
- - FBReactNativeSpec (= 0.63.4)
- - Folly (= 2020.01.13.00)
- - React-Core/RCTBlobHeaders (= 0.63.4)
- - React-Core/RCTWebSocket (= 0.63.4)
- - React-jsi (= 0.63.4)
- - React-RCTNetwork (= 0.63.4)
- - ReactCommon/turbomodule/core (= 0.63.4)
- - React-RCTImage (0.63.4):
- - FBReactNativeSpec (= 0.63.4)
- - Folly (= 2020.01.13.00)
- - RCTTypeSafety (= 0.63.4)
- - React-Core/RCTImageHeaders (= 0.63.4)
- - React-jsi (= 0.63.4)
- - React-RCTNetwork (= 0.63.4)
- - ReactCommon/turbomodule/core (= 0.63.4)
- - React-RCTLinking (0.63.4):
- - FBReactNativeSpec (= 0.63.4)
- - React-Core/RCTLinkingHeaders (= 0.63.4)
- - React-jsi (= 0.63.4)
- - ReactCommon/turbomodule/core (= 0.63.4)
- - React-RCTNetwork (0.63.4):
- - FBReactNativeSpec (= 0.63.4)
- - Folly (= 2020.01.13.00)
- - RCTTypeSafety (= 0.63.4)
- - React-Core/RCTNetworkHeaders (= 0.63.4)
- - React-jsi (= 0.63.4)
- - ReactCommon/turbomodule/core (= 0.63.4)
- - React-RCTSettings (0.63.4):
- - FBReactNativeSpec (= 0.63.4)
- - Folly (= 2020.01.13.00)
- - RCTTypeSafety (= 0.63.4)
- - React-Core/RCTSettingsHeaders (= 0.63.4)
- - React-jsi (= 0.63.4)
- - ReactCommon/turbomodule/core (= 0.63.4)
- - React-RCTText (0.63.4):
- - React-Core/RCTTextHeaders (= 0.63.4)
- - React-RCTVibration (0.63.4):
- - FBReactNativeSpec (= 0.63.4)
- - Folly (= 2020.01.13.00)
- - React-Core/RCTVibrationHeaders (= 0.63.4)
- - React-jsi (= 0.63.4)
- - ReactCommon/turbomodule/core (= 0.63.4)
- - ReactCommon/turbomodule/core (0.63.4):
+ - React-perflogger (0.64.1)
+ - React-RCTActionSheet (0.64.1):
+ - React-Core/RCTActionSheetHeaders (= 0.64.1)
+ - React-RCTAnimation (0.64.1):
+ - FBReactNativeSpec (= 0.64.1)
+ - RCT-Folly (= 2020.01.13.00)
+ - RCTTypeSafety (= 0.64.1)
+ - React-Core/RCTAnimationHeaders (= 0.64.1)
+ - React-jsi (= 0.64.1)
+ - ReactCommon/turbomodule/core (= 0.64.1)
+ - React-RCTBlob (0.64.1):
+ - FBReactNativeSpec (= 0.64.1)
+ - RCT-Folly (= 2020.01.13.00)
+ - React-Core/RCTBlobHeaders (= 0.64.1)
+ - React-Core/RCTWebSocket (= 0.64.1)
+ - React-jsi (= 0.64.1)
+ - React-RCTNetwork (= 0.64.1)
+ - ReactCommon/turbomodule/core (= 0.64.1)
+ - React-RCTImage (0.64.1):
+ - FBReactNativeSpec (= 0.64.1)
+ - RCT-Folly (= 2020.01.13.00)
+ - RCTTypeSafety (= 0.64.1)
+ - React-Core/RCTImageHeaders (= 0.64.1)
+ - React-jsi (= 0.64.1)
+ - React-RCTNetwork (= 0.64.1)
+ - ReactCommon/turbomodule/core (= 0.64.1)
+ - React-RCTLinking (0.64.1):
+ - FBReactNativeSpec (= 0.64.1)
+ - React-Core/RCTLinkingHeaders (= 0.64.1)
+ - React-jsi (= 0.64.1)
+ - ReactCommon/turbomodule/core (= 0.64.1)
+ - React-RCTNetwork (0.64.1):
+ - FBReactNativeSpec (= 0.64.1)
+ - RCT-Folly (= 2020.01.13.00)
+ - RCTTypeSafety (= 0.64.1)
+ - React-Core/RCTNetworkHeaders (= 0.64.1)
+ - React-jsi (= 0.64.1)
+ - ReactCommon/turbomodule/core (= 0.64.1)
+ - React-RCTSettings (0.64.1):
+ - FBReactNativeSpec (= 0.64.1)
+ - RCT-Folly (= 2020.01.13.00)
+ - RCTTypeSafety (= 0.64.1)
+ - React-Core/RCTSettingsHeaders (= 0.64.1)
+ - React-jsi (= 0.64.1)
+ - ReactCommon/turbomodule/core (= 0.64.1)
+ - React-RCTText (0.64.1):
+ - React-Core/RCTTextHeaders (= 0.64.1)
+ - React-RCTVibration (0.64.1):
+ - FBReactNativeSpec (= 0.64.1)
+ - RCT-Folly (= 2020.01.13.00)
+ - React-Core/RCTVibrationHeaders (= 0.64.1)
+ - React-jsi (= 0.64.1)
+ - ReactCommon/turbomodule/core (= 0.64.1)
+ - React-runtimeexecutor (0.64.1):
+ - React-jsi (= 0.64.1)
+ - ReactCommon/turbomodule/core (0.64.1):
- DoubleConversion
- - Folly (= 2020.01.13.00)
- glog
- - React-callinvoker (= 0.63.4)
- - React-Core (= 0.63.4)
- - React-cxxreact (= 0.63.4)
- - React-jsi (= 0.63.4)
+ - RCT-Folly (= 2020.01.13.00)
+ - React-callinvoker (= 0.64.1)
+ - React-Core (= 0.64.1)
+ - React-cxxreact (= 0.64.1)
+ - React-jsi (= 0.64.1)
+ - React-perflogger (= 0.64.1)
- ReactNativeAlternateIcons (0.3.0):
- React
- RNCAsyncStorage (1.12.1):
@@ -302,9 +324,9 @@ DEPENDENCIES:
- "BugsnagReactNative (from `../node_modules/@bugsnag/react-native`)"
- DoubleConversion (from `../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec`)
- FBLazyVector (from `../node_modules/react-native/Libraries/FBLazyVector`)
- - FBReactNativeSpec (from `../node_modules/react-native/Libraries/FBReactNativeSpec`)
- - Folly (from `../node_modules/react-native/third-party-podspecs/Folly.podspec`)
+ - FBReactNativeSpec (from `../node_modules/react-native/React/FBReactNativeSpec`)
- glog (from `../node_modules/react-native/third-party-podspecs/glog.podspec`)
+ - RCT-Folly (from `../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec`)
- RCTRequired (from `../node_modules/react-native/Libraries/RCTRequired`)
- RCTTypeSafety (from `../node_modules/react-native/Libraries/TypeSafety`)
- React (from `../node_modules/react-native/`)
@@ -325,6 +347,7 @@ DEPENDENCIES:
- react-native-sodium (from `../node_modules/react-native-sodium`)
- react-native-version-info (from `../node_modules/react-native-version-info`)
- react-native-webview (from `../node_modules/react-native-webview`)
+ - React-perflogger (from `../node_modules/react-native/ReactCommon/reactperflogger`)
- React-RCTActionSheet (from `../node_modules/react-native/Libraries/ActionSheetIOS`)
- React-RCTAnimation (from `../node_modules/react-native/Libraries/NativeAnimation`)
- React-RCTBlob (from `../node_modules/react-native/Libraries/Blob`)
@@ -334,6 +357,7 @@ DEPENDENCIES:
- React-RCTSettings (from `../node_modules/react-native/Libraries/Settings`)
- React-RCTText (from `../node_modules/react-native/Libraries/Text`)
- React-RCTVibration (from `../node_modules/react-native/Libraries/Vibration`)
+ - React-runtimeexecutor (from `../node_modules/react-native/ReactCommon/runtimeexecutor`)
- ReactCommon/turbomodule/core (from `../node_modules/react-native/ReactCommon`)
- ReactNativeAlternateIcons (from `../node_modules/react-native-alternate-icons`)
- "RNCAsyncStorage (from `../node_modules/@react-native-community/async-storage`)"
@@ -367,11 +391,11 @@ EXTERNAL SOURCES:
FBLazyVector:
:path: "../node_modules/react-native/Libraries/FBLazyVector"
FBReactNativeSpec:
- :path: "../node_modules/react-native/Libraries/FBReactNativeSpec"
- Folly:
- :podspec: "../node_modules/react-native/third-party-podspecs/Folly.podspec"
+ :path: "../node_modules/react-native/React/FBReactNativeSpec"
glog:
:podspec: "../node_modules/react-native/third-party-podspecs/glog.podspec"
+ RCT-Folly:
+ :podspec: "../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec"
RCTRequired:
:path: "../node_modules/react-native/Libraries/RCTRequired"
RCTTypeSafety:
@@ -408,6 +432,8 @@ EXTERNAL SOURCES:
:path: "../node_modules/react-native-version-info"
react-native-webview:
:path: "../node_modules/react-native-webview"
+ React-perflogger:
+ :path: "../node_modules/react-native/ReactCommon/reactperflogger"
React-RCTActionSheet:
:path: "../node_modules/react-native/Libraries/ActionSheetIOS"
React-RCTAnimation:
@@ -426,6 +452,8 @@ EXTERNAL SOURCES:
:path: "../node_modules/react-native/Libraries/Text"
React-RCTVibration:
:path: "../node_modules/react-native/Libraries/Vibration"
+ React-runtimeexecutor:
+ :path: "../node_modules/react-native/ReactCommon/runtimeexecutor"
ReactCommon:
:path: "../node_modules/react-native/ReactCommon"
ReactNativeAlternateIcons:
@@ -467,20 +495,20 @@ SPEC CHECKSUMS:
boost-for-react-native: 39c7adb57c4e60d6c5479dd8623128eb5b3f0f2c
BugsnagReactNative: 1ac1129bdf95273df07cfe4d89750dc3d9d888a3
DoubleConversion: cde416483dac037923206447da6e1454df403714
- FBLazyVector: 3bb422f41b18121b71783a905c10e58606f7dc3e
- FBReactNativeSpec: f2c97f2529dd79c083355182cc158c9f98f4bd6e
- Folly: b73c3869541e86821df3c387eb0af5f65addfab4
+ FBLazyVector: 7b423f9e248eae65987838148c36eec1dbfe0b53
+ FBReactNativeSpec: 016334cbf24e61c86998bb3d8550a3742040247d
glog: 40a13f7840415b9a77023fbcae0f1e6f43192af3
- RCTRequired: 082f10cd3f905d6c124597fd1c14f6f2655ff65e
- RCTTypeSafety: 8c9c544ecbf20337d069e4ae7fd9a377aadf504b
- React: b0a957a2c44da4113b0c4c9853d8387f8e64e615
- React-callinvoker: c3f44dd3cb195b6aa46621fff95ded79d59043fe
- React-Core: d3b2a1ac9a2c13c3bcde712d9281fc1c8a5b315b
- React-CoreModules: 0581ff36cb797da0943d424f69e7098e43e9be60
- React-cxxreact: c1480d4fda5720086c90df537ee7d285d4c57ac3
- React-jsi: a0418934cf48f25b485631deb27c64dc40fb4c31
- React-jsiexecutor: 93bd528844ad21dc07aab1c67cb10abae6df6949
- React-jsinspector: 58aef7155bc9a9683f5b60b35eccea8722a4f53a
+ RCT-Folly: ec7a233ccc97cc556cf7237f0db1ff65b986f27c
+ RCTRequired: ec2ebc96b7bfba3ca5c32740f5a0c6a014a274d2
+ RCTTypeSafety: 22567f31e67c3e088c7ac23ea46ab6d4779c0ea5
+ React: a241e3dbb1e91d06332f1dbd2b3ab26e1a4c4b9d
+ React-callinvoker: da4d1c6141696a00163960906bc8a55b985e4ce4
+ React-Core: 46ba164c437d7dac607b470c83c8308b05799748
+ React-CoreModules: 217bd14904491c7b9940ff8b34a3fe08013c2f14
+ React-cxxreact: 0090588ae6660c4615d3629fdd5c768d0983add4
+ React-jsi: 5de8204706bd872b78ea646aee5d2561ca1214b6
+ React-jsiexecutor: 124e8f99992490d0d13e0649d950d3e1aae06fe9
+ React-jsinspector: 500a59626037be5b3b3d89c5151bc3baa9abf1a9
react-native-aes: a13199300208e4eda1df14506a276415561e02bd
react-native-fingerprint-scanner: be63e626b31fb951780a5fac5328b065a61a3d6e
react-native-mail: 5fe7239a5b5c1e858d425501c03d1ab977434122
@@ -489,16 +517,18 @@ SPEC CHECKSUMS:
react-native-sodium: 6cc4c4c1ea331f9f2b478076e983e09827a7b23f
react-native-version-info: 36490da17d2c6b5cc21321c70e433784dee7ed0b
react-native-webview: 21fdfbdd5a2268195ca013174f8f656f3509de50
- React-RCTActionSheet: 89a0ca9f4a06c1f93c26067af074ccdce0f40336
- React-RCTAnimation: 1bde3ecc0c104c55df246eda516e0deb03c4e49b
- React-RCTBlob: a97d378b527740cc667e03ebfa183a75231ab0f0
- React-RCTImage: c1b1f2d3f43a4a528c8946d6092384b5c880d2f0
- React-RCTLinking: 35ae4ab9dc0410d1fcbdce4d7623194a27214fb2
- React-RCTNetwork: 29ec2696f8d8cfff7331fac83d3e893c95ef43ae
- React-RCTSettings: 60f0691bba2074ef394f95d4c2265ec284e0a46a
- React-RCTText: 5c51df3f08cb9dedc6e790161195d12bac06101c
- React-RCTVibration: ae4f914cfe8de7d4de95ae1ea6cc8f6315d73d9d
- ReactCommon: 73d79c7039f473b76db6ff7c6b159c478acbbb3b
+ React-perflogger: aad6d4b4a267936b3667260d1f649b6f6069a675
+ React-RCTActionSheet: fc376be462c9c8d6ad82c0905442fd77f82a9d2a
+ React-RCTAnimation: ba0a1c3a2738be224a08092fa7f1b444ab77d309
+ React-RCTBlob: f758d4403fc5828a326dc69e27b41e1a92f34947
+ React-RCTImage: ce57088705f4a8d03f6594b066a59c29143ba73e
+ React-RCTLinking: 852a3a95c65fa63f657a4b4e2d3d83a815e00a7c
+ React-RCTNetwork: 9d7ccb8a08d522d71700b4fb677d9fa28cccd118
+ React-RCTSettings: d8aaf4389ff06114dee8c42ef5f0f2915946011e
+ React-RCTText: 809c12ed6b261796ba056c04fcd20d8b90bcc81d
+ React-RCTVibration: 4b99a7f5c6c0abbc5256410cc5425fb8531986e1
+ React-runtimeexecutor: ff951a0c241bfaefc4940a3f1f1a229e7cb32fa6
+ ReactCommon: bedc99ed4dae329c4fcf128d0c31b9115e5365ca
ReactNativeAlternateIcons: b2a8a729d9d9756ed0652c352694f190407f297f
RNCAsyncStorage: b03032fdbdb725bea0bd9e5ec5a7272865ae7398
RNCMaskedView: 5a8ec07677aa885546a0d98da336457e2bea557f
@@ -516,8 +546,8 @@ SPEC CHECKSUMS:
sn-textview: 0211237b3e0edeeb23aed2a9c47b78af35a81e95
SNReactNative: b5e9e529c175c13f3a618e27c76cf3071213d5e1
TrustKit: 073855e3adecd317417bda4ac9e9ac54a2e3b9f2
- Yoga: 4bd86afe9883422a7c4028c00e34790f560923d6
+ Yoga: a7de31c64fe738607e7a3803e3f591a4b1df7393
-PODFILE CHECKSUM: 5f6066efbcc06032bd833f9e21b5c400c0a572eb
+PODFILE CHECKSUM: 3f737e1e00a82037a88b8818c81a7c17327450dc
COCOAPODS: 1.10.1
diff --git a/ios/StandardNotes/Info.plist b/ios/StandardNotes/Info.plist
index 0bedb82f..c4e7d6eb 100644
--- a/ios/StandardNotes/Info.plist
+++ b/ios/StandardNotes/Info.plist
@@ -88,12 +88,16 @@
+ NSCameraUsageDescription
+ Camera is optionally used to upload images and scan QR codes using the TokenVault extension.
NSFaceIDUsageDescription
Face ID is required to unlock your notes.
NSLocationAlwaysUsageDescription
Not used by application; required in configuration because API exists in build dependencies.
NSLocationWhenInUseUsageDescription
Not used by application; required in configuration because API exists in build dependencies.
+ NSPhotoLibraryUsageDescription
+ Photo library is optionally used to select files to upload or QR code images from your photo library.
UIAppFonts
AntDesign.ttf
diff --git a/ios/StandardNotesDev-Info.plist b/ios/StandardNotesDev-Info.plist
index db65b794..e7600674 100644
--- a/ios/StandardNotesDev-Info.plist
+++ b/ios/StandardNotesDev-Info.plist
@@ -66,12 +66,16 @@
+ NSCameraUsageDescription
+ Camera is required to scan QR codes with the TokenVault extension.
NSFaceIDUsageDescription
Face ID is required to unlock your notes.
NSLocationAlwaysUsageDescription
Not used by application; required in configuration because API exists in build dependencies.
NSLocationWhenInUseUsageDescription
Not used by application; required in configuration because API exists in build dependencies.
+ NSPhotoLibraryUsageDescription
+ Photo library is required to select QR code images from your photo library.
UIAppFonts
AntDesign.ttf
diff --git a/package.json b/package.json
index 08229847..9ed37b0b 100644
--- a/package.json
+++ b/package.json
@@ -1,7 +1,7 @@
{
"name": "StandardNotes",
- "version": "3.6.9",
- "user-version": "3.6.9",
+ "version": "3.6.10",
+ "user-version": "3.6.10",
"private": true,
"license": "AGPL-3.0-or-later",
"scripts": {
@@ -26,11 +26,11 @@
"@react-navigation/native": "^5.9.3",
"@react-navigation/stack": "^5.14.3",
"@standardnotes/sncrypto-common": "1.2.9",
- "@standardnotes/snjs": "2.4.2",
+ "@standardnotes/snjs": "2.5.0",
"js-base64": "^3.5.2",
"moment": "^2.29.1",
- "react": "16.13.1",
- "react-native": "0.63.4",
+ "react": "17.0.1",
+ "react-native": "0.64.1",
"react-native-aes-crypto": "standardnotes/react-native-aes#6430299",
"react-native-alternate-icons": "standardnotes/react-native-alternate-icons#1d335d",
"react-native-default-preference": "^1.4.3",
@@ -86,6 +86,7 @@
"postinstall-postinstall": "^2.1.0",
"prettier": "^2.2.1",
"prettier-plugin-organize-imports": "^1.1.1",
+ "react-native-document-picker": "^5.0.4",
"react-test-renderer": "16.13.1",
"replace-in-file": "^6.1.0",
"typescript": "^3.9.4"
diff --git a/src/lib/application.ts b/src/lib/application.ts
index 54896215..2800c7b6 100644
--- a/src/lib/application.ts
+++ b/src/lib/application.ts
@@ -60,7 +60,10 @@ export class MobileApplication extends SNApplication {
],
VersionInfo.bundleIdentifier?.includes('dev')
? 'https://syncing-server-dev.standardnotes.org/'
- : 'https://sync.standardnotes.org'
+ : 'https://sync.standardnotes.org',
+ VersionInfo.bundleIdentifier?.includes('dev')
+ ? 'https://api-dev.standardnotes.com/'
+ : 'https://api.standardnotes.com'
);
this.Uuid = Math.random().toString();
this.editorGroup = new EditorGroup(this);
@@ -138,7 +141,7 @@ export class MobileApplication extends SNApplication {
return this.MobileServices.backupsService;
}
- public getPrefsService() {
+ public getLocalPreferences() {
return this.MobileServices.prefsService;
}
diff --git a/src/lib/application_state.ts b/src/lib/application_state.ts
index ed9fd0c8..972693f9 100644
--- a/src/lib/application_state.ts
+++ b/src/lib/application_state.ts
@@ -30,6 +30,7 @@ import FlagSecure from 'react-native-flag-secure-android';
import { hide, show } from 'react-native-privacy-snapshot';
import VersionInfo from 'react-native-version-info';
import { MobileApplication } from './application';
+import { associateComponentWithNote } from './component_manager';
import { Editor } from './editor';
import { PrefKey } from './preferences_manager';
@@ -102,6 +103,7 @@ export class ApplicationState extends ApplicationService {
keyboardDidHideListener?: EmitterSubscription;
keyboardHeight?: number;
appEventObersever: any;
+ selectedTagRestored = false;
selectedTag: SNTag = this.application.getSmartTags()[0];
userPreferences?: SNUserPrefs;
tabletMode: boolean = false;
@@ -152,24 +154,33 @@ export class ApplicationState extends ApplicationService {
this.keyboardDidHideListener = undefined;
}
+ restoreSelectedTag() {
+ if (this.selectedTagRestored) {
+ return;
+ }
+ const savedTagUuid: string | undefined = this.prefService.getValue(
+ PrefKey.SelectedTagUuid,
+ undefined
+ );
+
+ if (isNullOrUndefined(savedTagUuid)) {
+ this.selectedTagRestored = true;
+ return;
+ }
+
+ const savedTag =
+ (this.application.findItem(savedTagUuid) as SNTag) ||
+ this.application.getSmartTags().find(tag => tag.uuid === savedTagUuid);
+ if (savedTag) {
+ this.setSelectedTag(savedTag, false);
+ this.selectedTagRestored = true;
+ }
+ }
+
async onAppStart() {
this.removePreferencesLoadedListener = this.prefService.addPreferencesLoadedObserver(
() => {
this.notifyOfStateChange(AppStateType.PreferencesChanged);
- const savedTagUuid: string | undefined = this.prefService.getValue(
- PrefKey.SelectedTagUuid,
- undefined
- );
-
- const savedTag = !isNullOrUndefined(savedTagUuid)
- ? (this.application.findItem(savedTagUuid) as SNTag) ||
- this.application
- .getSmartTags()
- .find(tag => tag.uuid === savedTagUuid)
- : undefined;
- if (savedTag) {
- this.setSelectedTag(savedTag, false);
- }
}
);
@@ -269,19 +280,28 @@ export class ApplicationState extends ApplicationService {
* editor's note with an empty one.
*/
async createEditor(title?: string) {
- const activeEditor = this.getActiveEditor();
+ let activeEditor = this.getActiveEditor();
if (!activeEditor || this.multiEditorEnabled) {
- this.application.editorGroup.createEditor(undefined, title);
+ await this.application.editorGroup.createEditor(undefined, title);
+ activeEditor = this.getActiveEditor();
} else {
await activeEditor.reset(title);
}
+ const defaultEditor = this.application.componentManager.getDefaultEditor();
+ if (defaultEditor) {
+ await associateComponentWithNote(
+ this.application,
+ defaultEditor,
+ activeEditor.note!
+ );
+ }
}
async openEditor(noteUuid: string) {
const note = this.application.findItem(noteUuid) as SNNote;
const activeEditor = this.getActiveEditor();
if (!activeEditor || this.multiEditorEnabled) {
- this.application.editorGroup.createEditor(noteUuid);
+ await this.application.editorGroup.createEditor(noteUuid);
} else {
activeEditor.setNote(note);
}
@@ -386,11 +406,21 @@ export class ApplicationState extends ApplicationService {
private handleApplicationEvents() {
this.appEventObersever = this.application.addEventObserver(
async eventName => {
- if (eventName === ApplicationEvent.Started) {
- this.locked = true;
- } else if (eventName === ApplicationEvent.Launched) {
- this.locked = false;
- this.notifyLockStateObservers(LockStateType.Unlocked);
+ switch (eventName) {
+ case ApplicationEvent.LocalDataIncrementalLoad:
+ case ApplicationEvent.LocalDataLoaded: {
+ this.restoreSelectedTag();
+ break;
+ }
+ case ApplicationEvent.Started: {
+ this.locked = true;
+ break;
+ }
+ case ApplicationEvent.Launched: {
+ this.locked = false;
+ this.notifyLockStateObservers(LockStateType.Unlocked);
+ break;
+ }
}
}
);
@@ -399,8 +429,8 @@ export class ApplicationState extends ApplicationService {
/**
* Set selected @SNTag
*/
- public setSelectedTag(tag: SNTag, saveSelection: boolean) {
- if (this.selectedTag === tag) {
+ public setSelectedTag(tag: SNTag, saveSelection: boolean = true) {
+ if (this.selectedTag.uuid === tag.uuid) {
return;
}
const previousTag = this.selectedTag;
@@ -408,7 +438,7 @@ export class ApplicationState extends ApplicationService {
if (saveSelection) {
this.application
- .getPrefsService()
+ .getLocalPreferences()
.setUserPrefValue(PrefKey.SelectedTagUuid, tag.uuid);
}
@@ -681,7 +711,7 @@ export class ApplicationState extends ApplicationService {
}
private get prefService() {
- return this.application.getPrefsService();
+ return this.application.getLocalPreferences();
}
public getEnvironment() {
diff --git a/src/lib/component_group.ts b/src/lib/component_group.ts
index 5ec22ec0..12338104 100644
--- a/src/lib/component_group.ts
+++ b/src/lib/component_group.ts
@@ -1,7 +1,6 @@
import {
addIfUnique,
ComponentArea,
- isNullOrUndefined,
removeFromArray,
SNComponent,
UuidString,
@@ -69,14 +68,8 @@ export class ComponentGroup {
}
}
- activeComponentForArea(area: ComponentArea) {
- return !isNullOrUndefined(this.activeComponentsForArea(area))
- ? this.activeComponentsForArea(area)[0]
- : undefined;
- }
-
- activeComponentsForArea(area: ComponentArea) {
- return this.allActiveComponents()?.filter(c => c.area === area);
+ activeComponentForArea(area: ComponentArea): SNComponent | undefined {
+ return this.allActiveComponents()?.filter(c => c.area === area)?.[0];
}
allComponentsForArea(area: ComponentArea) {
diff --git a/src/lib/component_manager.ts b/src/lib/component_manager.ts
index 410c4140..7faf8b3f 100644
--- a/src/lib/component_manager.ts
+++ b/src/lib/component_manager.ts
@@ -1,8 +1,11 @@
import {
+ ComponentMutator,
PermissionDialog,
SNAlertService,
+ SNApplication,
SNComponent,
SNComponentManager,
+ SNNote,
} from '@standardnotes/snjs';
import { objectToCss } from '@Style/css_parser';
import { MobileTheme } from '@Style/theme_service';
@@ -49,3 +52,14 @@ export class ComponentManager extends SNComponentManager {
}
}
}
+
+export async function associateComponentWithNote(
+ application: SNApplication,
+ component: SNComponent,
+ note: SNNote
+) {
+ return application.changeItem(component.uuid, mutator => {
+ mutator.removeDisassociatedItemId(note.uuid);
+ mutator.associateWithItem(note.uuid);
+ });
+}
diff --git a/src/lib/editor.ts b/src/lib/editor.ts
index c9555712..8a5310b5 100644
--- a/src/lib/editor.ts
+++ b/src/lib/editor.ts
@@ -14,20 +14,12 @@ export type EditorNoteValueChangeObserver = (
export class Editor {
public note?: SNNote;
- private application?: MobileApplication;
private noteChangeObservers: EditorNoteChangeObserver[] = [];
private noteValueChangeObservers: EditorNoteValueChangeObserver[] = [];
private removeStreamObserver?: () => void;
public isTemplateNote = false;
- constructor(
- application: MobileApplication,
- noteUuid?: string,
- noteTitle?: string
- ) {
- this.application = application;
- this.init(noteUuid, noteTitle);
- }
+ constructor(private application: MobileApplication) {}
async init(noteUuid?: string, noteTitle?: string) {
if (noteUuid) {
@@ -51,7 +43,7 @@ export class Editor {
this.removeStreamObserver = undefined;
this.noteChangeObservers.length = 0;
this.noteValueChangeObservers.length = 0;
- this.application = undefined;
+ (this.application as unknown) = undefined;
}
private handleNoteStream(notes: SNNote[], source?: PayloadSource) {
diff --git a/src/lib/editor_group.ts b/src/lib/editor_group.ts
index 348774ed..316f2052 100644
--- a/src/lib/editor_group.ts
+++ b/src/lib/editor_group.ts
@@ -20,9 +20,10 @@ export class EditorGroup {
}
}
- createEditor(noteUuid?: string, noteTitle?: string) {
+ async createEditor(noteUuid?: string, noteTitle?: string) {
if (this.application) {
- const editor = new Editor(this.application, noteUuid, noteTitle);
+ const editor = new Editor(this.application);
+ await editor.init(noteUuid, noteTitle);
this.editors.push(editor);
this.notifyObservers();
}
diff --git a/src/lib/interface.ts b/src/lib/interface.ts
index bd377178..7d20717a 100644
--- a/src/lib/interface.ts
+++ b/src/lib/interface.ts
@@ -289,9 +289,16 @@ export class MobileDeviceInterface extends DeviceInterface {
async getBugsnagOptedOut() {
try {
- return (await DefaultPreference.get(BUGSNAG_OPT_OUT_KEY)) === 'true';
+ /**
+ * Checking the absense of the 'bugsnagoptout' preference.
+ * If the value is absent, then error reporting is opt-in by default.
+ */
+ const bugsnagOptedOut =
+ (await DefaultPreference.get(BUGSNAG_OPT_OUT_KEY)) ?? 'true';
+
+ return bugsnagOptedOut === 'true';
} catch {
- return false;
+ return true;
}
}
diff --git a/src/lib/snjs_helper_hooks.ts b/src/lib/snjs_helper_hooks.ts
index 032c379e..eb5e58f5 100644
--- a/src/lib/snjs_helper_hooks.ts
+++ b/src/lib/snjs_helper_hooks.ts
@@ -157,10 +157,8 @@ export const useSyncStatus = () => {
const [refreshing, setRefreshing] = React.useState(false);
const setStatus = useCallback(
- (status?: string, color?: string) => {
- application
- ?.getStatusManager()
- .setMessage(SCREEN_NOTES, status ?? '', color);
+ (status = '') => {
+ application?.getStatusManager().setMessage(SCREEN_NOTES, status);
},
[application]
);
@@ -172,11 +170,16 @@ export const useSyncStatus = () => {
application!.isEncryptionAvailable() &&
application!.getStorageEncryptionPolicy() ===
StorageEncryptionPolicies.Default;
- if (stats.localDataDone) {
+
+ if (
+ stats.localDataCurrent === 0 ||
+ stats.localDataTotal === 0 ||
+ stats.localDataDone
+ ) {
setStatus();
return;
}
- const notesString = `${stats.localDataCurrent}/${stats.localDataTotal} items...`;
+ const notesString = `${stats.localDataCurrent}/${stats.localDataTotal} items…`;
const loadingStatus = encryption
? `Decrypting ${notesString}`
: `Loading ${notesString}`;
@@ -212,10 +215,12 @@ export const useSyncStatus = () => {
setStatus(
`Syncing ${stats.uploadCompletionCount}/${stats.uploadTotalCount} items...`
);
- } else if (!syncStatus.syncInProgress) {
+ } else if (syncStatus.syncInProgress && !completedInitialSync) {
+ setStatus('Syncing…');
+ } else {
setStatus();
}
- }, [application, setStatus]);
+ }, [application, completedInitialSync, setStatus]);
useEffect(() => {
const unsubscribeAppEvents = application?.addEventObserver(
@@ -231,23 +236,14 @@ export const useSyncStatus = () => {
setDecrypting(false);
setLoading(false);
updateLocalDataStatus();
- } else if (eventName === ApplicationEvent.WillSync) {
- if (application.hasAccount() && !completedInitialSync) {
- setStatus('Syncing...');
- }
} else if (eventName === ApplicationEvent.CompletedFullSync) {
- if (
- !completedInitialSync ||
- !application?.getAppState().isInTabletMode
- ) {
- setStatus();
- }
- if (!completedInitialSync) {
+ if (completedInitialSync) {
+ setRefreshing(false);
+ } else {
setCompletedInitialSync(true);
setLoading(false);
- } else {
- setRefreshing(false);
}
+ updateSyncStatus();
} else if (eventName === ApplicationEvent.LocalDatabaseReadError) {
application!.alertService!.alert(
'Unable to load local storage. Please restart the app and try again.'
@@ -337,7 +333,7 @@ export const useDeleteNoteWithPrivileges = (
async (permanently: boolean) => {
if (note?.locked) {
application?.alertService.alert(
- "This note is locked. If you'd like to delete it, unlock it, and try again."
+ "This note has editing disabled. If you'd like to delete it, enable editing on it, and try again."
);
return;
}
diff --git a/src/screens/Compose/ComponentView.tsx b/src/screens/Compose/ComponentView.tsx
index 3976923a..e98adf41 100644
--- a/src/screens/Compose/ComponentView.tsx
+++ b/src/screens/Compose/ComponentView.tsx
@@ -84,7 +84,7 @@ export const ComponentView = ({
useEffect(() => {
const warnUnsupportedEditors = async () => {
const doNotShowAgainUnsupportedEditors = application
- ?.getPrefsService()
+ ?.getLocalPreferences()
.getValue(PrefKey.DoNotShowAgainUnsupportedEditors, false);
if (!doNotShowAgainUnsupportedEditors) {
const confirmed = await application?.alertService?.confirm(
@@ -96,7 +96,7 @@ export const ComponentView = ({
);
if (confirmed) {
application
- ?.getPrefsService()
+ ?.getLocalPreferences()
.setUserPrefValue(PrefKey.DoNotShowAgainUnsupportedEditors, true);
}
}
diff --git a/src/screens/Compose/Compose.tsx b/src/screens/Compose/Compose.tsx
index f971b6a7..5cc5c4f9 100644
--- a/src/screens/Compose/Compose.tsx
+++ b/src/screens/Compose/Compose.tsx
@@ -231,6 +231,12 @@ export class Compose extends React.Component<{}, State> {
if (this.editor) {
this.context?.editorGroup?.closeEditor(this.editor);
}
+ if (this.state.editorComponent) {
+ this.context?.componentGroup?.deactivateComponent(
+ this.state.editorComponent,
+ false
+ );
+ }
this.context?.getStatusManager()?.setMessage(SCREEN_COMPOSE, '');
if (this.saveTimeout) {
@@ -407,7 +413,7 @@ export class Compose extends React.Component<{}, State> {
onContentChange = (text: string) => {
if (Platform.OS === 'android' && this.note?.locked) {
this.context?.alertService?.alert(
- 'This note is locked. Please unlock this note to make changes.'
+ 'This note has editing disabled. Please enable editing on this note to make changes.'
);
return;
}
@@ -433,7 +439,7 @@ export class Compose extends React.Component<{}, State> {
size={16}
color={theme.stylekitBackgroundColor}
/>
- Note Locked
+ Note Editing Disabled
)}
{this.state.webViewError && (
diff --git a/src/screens/NoteHistory/NoteHistoryPreview.tsx b/src/screens/NoteHistory/NoteHistoryPreview.tsx
index 8291ac97..c1dd80b5 100644
--- a/src/screens/NoteHistory/NoteHistoryPreview.tsx
+++ b/src/screens/NoteHistory/NoteHistoryPreview.tsx
@@ -11,7 +11,7 @@ import { useCustomActionSheet } from '@Style/custom_action_sheet';
import { ELIPSIS } from '@Style/icons';
import { ThemeService } from '@Style/theme_service';
import React, { useCallback, useContext, useLayoutEffect } from 'react';
-import { YellowBox } from 'react-native';
+import { LogBox } from 'react-native';
import { HeaderButtons, Item } from 'react-navigation-header-buttons';
import {
Container,
@@ -21,7 +21,7 @@ import {
TitleContainer,
} from './NoteHistoryPreview.styled';
-YellowBox.ignoreWarnings([
+LogBox.ignoreLogs([
'Non-serializable values were found in the navigation state',
]);
diff --git a/src/screens/Notes/NoteCell.tsx b/src/screens/Notes/NoteCell.tsx
index 72111760..f8b14143 100644
--- a/src/screens/Notes/NoteCell.tsx
+++ b/src/screens/Notes/NoteCell.tsx
@@ -123,7 +123,9 @@ export const NoteCell = ({
callback: () => {
if (note.locked) {
application?.alertService.alert(
- "This note is locked. If you'd like to archive it, unlock it, and try again."
+ `This note has editing disabled. If you'd like to ${
+ note.archived ? 'unarchive' : 'archive'
+ } it, enable editing on it, and try again.`
);
return;
}
@@ -135,7 +137,7 @@ export const NoteCell = ({
});
options.push({
- text: note.locked ? 'Unlock' : 'Lock',
+ text: note.locked ? 'Enable editing' : 'Prevent editing',
key: 'lock',
callback: () =>
changeNote(mutator => {
@@ -168,7 +170,7 @@ export const NoteCell = ({
},
},
{
- text: 'Delete Permanently',
+ text: 'Delete permanently',
key: 'delete-forever',
destructive: true,
callback: async () => deleteNote(true),
diff --git a/src/screens/Notes/NoteCellFlags.tsx b/src/screens/Notes/NoteCellFlags.tsx
index 2618db8d..9e0ab397 100644
--- a/src/screens/Notes/NoteCellFlags.tsx
+++ b/src/screens/Notes/NoteCellFlags.tsx
@@ -49,7 +49,7 @@ export const NoteCellFlags = ({
if (note.locked) {
flags.push({
- text: 'Locked',
+ text: 'Editing Disabled',
color: theme.stylekitNeutralColor,
});
}
diff --git a/src/screens/Notes/Notes.tsx b/src/screens/Notes/Notes.tsx
index 6ce1fc7a..9bd0b03f 100644
--- a/src/screens/Notes/Notes.tsx
+++ b/src/screens/Notes/Notes.tsx
@@ -60,18 +60,20 @@ export const Notes = React.memo(
// State
const [sortBy, setSortBy] = useState(() =>
application!
- .getPrefsService()
+ .getLocalPreferences()
.getValue(PrefKey.SortNotesBy, CollectionSort.CreatedAt)
);
const [sortReverse, setSortReverse] = useState(() =>
- application!.getPrefsService().getValue(PrefKey.SortNotesReverse, false)
+ application!
+ .getLocalPreferences()
+ .getValue(PrefKey.SortNotesReverse, false)
);
const [hideDates, setHideDates] = useState(() =>
- application!.getPrefsService().getValue(PrefKey.NotesHideDate, false)
+ application!.getLocalPreferences().getValue(PrefKey.NotesHideDate, false)
);
const [hidePreviews, setHidePreviews] = useState(() =>
application!
- .getPrefsService()
+ .getLocalPreferences()
.getValue(PrefKey.NotesHideNotePreview, false)
);
const [notes, setNotes] = useState([]);
@@ -485,18 +487,18 @@ export const Notes = React.memo(
const reloadPreferences = useCallback(async () => {
const newSortBy = application
- ?.getPrefsService()
+ ?.getLocalPreferences()
.getValue(PrefKey.SortNotesBy, CollectionSort.CreatedAt);
let displayOptionsChanged = false;
const newSortReverse = application
- ?.getPrefsService()
+ ?.getLocalPreferences()
.getValue(PrefKey.SortNotesReverse, false);
const newHidePreview = application!
- .getPrefsService()
+ .getLocalPreferences()
.getValue(PrefKey.NotesHideNotePreview, false);
const newHideDate = application!
- .getPrefsService()
+ .getLocalPreferences()
.getValue(PrefKey.NotesHideDate, false);
if (sortBy !== newSortBy) {
diff --git a/src/screens/Settings/Sections/CompanySection.tsx b/src/screens/Settings/Sections/CompanySection.tsx
index f1f27ec7..8ea01e67 100644
--- a/src/screens/Settings/Sections/CompanySection.tsx
+++ b/src/screens/Settings/Sections/CompanySection.tsx
@@ -28,7 +28,7 @@ type Props = {
export const CompanySection = (props: Props) => {
const application = useContext(ApplicationContext);
- const [bugsnagOptOut, setBugsnagOptOut] = useState(false);
+ const [bugsnagOptOut, setBugsnagOptOut] = useState(true);
const storeName = Platform.OS === 'android' ? 'Play Store' : 'App Store';
const openUrl = (action: keyof typeof URLS) => {
diff --git a/src/screens/Settings/Sections/OptionsSection.tsx b/src/screens/Settings/Sections/OptionsSection.tsx
index dcd0245d..07e966bb 100644
--- a/src/screens/Settings/Sections/OptionsSection.tsx
+++ b/src/screens/Settings/Sections/OptionsSection.tsx
@@ -12,6 +12,8 @@ import { SCREEN_MANAGE_SESSIONS, SCREEN_SETTINGS } from '@Screens/screens';
import { ButtonType } from '@standardnotes/snjs';
import moment from 'moment';
import React, { useCallback, useContext, useMemo, useState } from 'react';
+import DocumentPicker from 'react-native-document-picker';
+import RNFS from 'react-native-fs';
type Props = {
title: string;
@@ -27,9 +29,12 @@ export const OptionsSection = ({ title, encryptionAvailable }: Props) => {
>();
// State
+ const [importing, setImporting] = useState(false);
const [exporting, setExporting] = useState(false);
const [lastExportDate, setLastExportDate] = useState(() =>
- application?.getPrefsService().getValue(PrefKey.LastExportDate, undefined)
+ application
+ ?.getLocalPreferences()
+ .getValue(PrefKey.LastExportDate, undefined)
);
const lastExportData = useMemo(() => {
@@ -93,7 +98,7 @@ export const OptionsSection = ({ title, encryptionAvailable }: Props) => {
const exportDate = new Date();
setLastExportDate(exportDate);
application
- ?.getPrefsService()
+ ?.getLocalPreferences()
.setUserPrefValue(PrefKey.LastExportDate, exportDate);
}
setExporting(false);
@@ -101,6 +106,65 @@ export const OptionsSection = ({ title, encryptionAvailable }: Props) => {
[application]
);
+ const readImportFile = async (fileUri: string): Promise => {
+ return RNFS.readFile(fileUri)
+ .then(result => JSON.parse(result))
+ .catch(() => {
+ application!.alertService!.alert(
+ 'Unable to open file. Ensure it is a proper JSON file and try again.'
+ );
+ });
+ };
+
+ const performImport = async (data: any) => {
+ const result = await application!.importData(data);
+ if (!result) {
+ return;
+ } else if ('error' in result) {
+ application!.alertService!.alert(result.error);
+ } else if (result.errorCount) {
+ application!.alertService!.alert(
+ `Import complete. ${result.errorCount} items were not imported because ` +
+ 'there was an error decrypting them. Make sure the password is correct and try again.'
+ );
+ } else {
+ application!.alertService!.alert(
+ 'Your data has been successfully imported.'
+ );
+ }
+ };
+
+ const onImportPress = async () => {
+ try {
+ const selectedFile = await DocumentPicker.pick({
+ type: [DocumentPicker.types.plainText],
+ });
+ const data = await readImportFile(selectedFile.uri);
+ if (!data) {
+ return;
+ }
+ setImporting(true);
+ if (data.version || data.auth_params || data.keyParams) {
+ const version =
+ data.version || data.keyParams?.version || data.auth_params?.version;
+ if (
+ application!.protocolService.supportedVersions().includes(version)
+ ) {
+ await performImport(data);
+ } else {
+ application!.alertService.alert(
+ 'This backup file was created using an unsupported version of the application ' +
+ 'and cannot be imported here. Please update your application and try again.'
+ );
+ }
+ } else {
+ await performImport(data);
+ }
+ } finally {
+ setImporting(false);
+ }
+ };
+
const onExportPress = useCallback(
async (option: { key: string }) => {
let encrypted = option.key === 'encrypted';
@@ -152,9 +216,16 @@ export const OptionsSection = ({ title, encryptionAvailable }: Props) => {
>
)}
+
+
{
// State
const [sortBy, setSortBy] = useState(() =>
application!
- .getPrefsService()
+ .getLocalPreferences()
.getValue(PrefKey.SortNotesBy, CollectionSort.CreatedAt)
);
const [sortReverse, setSortReverse] = useState(() =>
- application!.getPrefsService().getValue(PrefKey.SortNotesReverse, false)
+ application!.getLocalPreferences().getValue(PrefKey.SortNotesReverse, false)
);
const [hideDates, setHideDates] = useState(() =>
- application!.getPrefsService().getValue(PrefKey.NotesHideDate, false)
+ application!.getLocalPreferences().getValue(PrefKey.NotesHideDate, false)
);
const [hidePreviews, setHidePreviews] = useState(() =>
- application!.getPrefsService().getValue(PrefKey.NotesHideNotePreview, false)
+ application!
+ .getLocalPreferences()
+ .getValue(PrefKey.NotesHideNotePreview, false)
);
const sortOptions = useMemo(() => {
@@ -36,24 +38,26 @@ export const PreferencesSection = () => {
const toggleReverseSort = () => {
application
- ?.getPrefsService()
+ ?.getLocalPreferences()
.setUserPrefValue(PrefKey.SortNotesReverse, !sortReverse);
setSortReverse(value => !value);
};
const changeSortOption = (key: CollectionSort) => {
- application?.getPrefsService().setUserPrefValue(PrefKey.SortNotesBy, key);
+ application
+ ?.getLocalPreferences()
+ .setUserPrefValue(PrefKey.SortNotesBy, key);
setSortBy(key);
};
const toggleNotesPreviewHidden = () => {
application
- ?.getPrefsService()
+ ?.getLocalPreferences()
.setUserPrefValue(PrefKey.NotesHideNotePreview, !hidePreviews);
setHidePreviews(value => !value);
};
const toggleNotesDateHidden = () => {
application
- ?.getPrefsService()
+ ?.getLocalPreferences()
.setUserPrefValue(PrefKey.NotesHideDate, !hideDates);
setHideDates(value => !value);
};
diff --git a/src/screens/SideMenu/MainSideMenu.styled.ts b/src/screens/SideMenu/MainSideMenu.styled.ts
index f0c7b0fb..a9e5c8c7 100644
--- a/src/screens/SideMenu/MainSideMenu.styled.ts
+++ b/src/screens/SideMenu/MainSideMenu.styled.ts
@@ -1,5 +1,6 @@
-import { Platform, SafeAreaView, ScrollView, StatusBar } from 'react-native';
-import styled, { css } from 'styled-components/native';
+import { useMemo } from 'react';
+import { Platform, SafeAreaView, StatusBar, StyleSheet } from 'react-native';
+import styled, { css, DefaultTheme } from 'styled-components/native';
// We want top color to be different from bottom color of safe area.
// See https://stackoverflow.com/questions/47725607/react-native-safeareaview-background-color-how-to-assign-two-different-backgro
@@ -16,8 +17,18 @@ export const MainSafeAreaView = styled(SafeAreaView)`
background-color: ${({ theme }) => theme.stylekitBackgroundColor};
color: ${({ theme }) => theme.stylekitForegroundColor};
`;
-export const SideMenuSectionContainer = styled(ScrollView)`
- padding: 15px;
- flex: 1;
- background-color: ${({ theme }) => theme.stylekitBackgroundColor};
-`;
+
+/** Styled doesn't support FlatList types */
+export const useStyles = (theme: DefaultTheme) => {
+ return useMemo(
+ () =>
+ StyleSheet.create({
+ sections: {
+ padding: 15,
+ flex: 1,
+ backgroundColor: theme.stylekitBackgroundColor,
+ },
+ }),
+ [theme.stylekitBackgroundColor]
+ );
+};
diff --git a/src/screens/SideMenu/MainSideMenu.tsx b/src/screens/SideMenu/MainSideMenu.tsx
index 9dcffb55..88412184 100644
--- a/src/screens/SideMenu/MainSideMenu.tsx
+++ b/src/screens/SideMenu/MainSideMenu.tsx
@@ -23,13 +23,14 @@ import React, {
} from 'react';
import { Platform } from 'react-native';
import FAB from 'react-native-fab';
+import { FlatList } from 'react-native-gesture-handler';
import DrawerLayout from 'react-native-gesture-handler/DrawerLayout';
import Icon from 'react-native-vector-icons/Ionicons';
import { ThemeContext } from 'styled-components/native';
import {
FirstSafeAreaView,
MainSafeAreaView,
- SideMenuSectionContainer,
+ useStyles,
} from './MainSideMenu.styled';
import { SideMenuHero } from './SideMenuHero';
import { SideMenuOption, SideMenuSection } from './SideMenuSection';
@@ -51,6 +52,7 @@ export const MainSideMenu = React.memo(({ drawerRef }: Props) => {
application!.getAppState().getSelectedTag()
);
const [themes, setThemes] = useState([]);
+ const styles = useStyles(theme);
useEffect(() => {
const removeTagChangeObserver = application!
@@ -239,15 +241,18 @@ export const MainSideMenu = React.memo(({ drawerRef }: Props) => {
onThemeSelect,
]);
- const onTagSelect = async (tag: SNTag) => {
- if (tag.conflictOf) {
- application!.changeAndSaveItem(tag.uuid, mutator => {
- mutator.conflictOf = undefined;
- });
- }
- application!.getAppState().setSelectedTag(tag, true);
- drawerRef?.closeDrawer();
- };
+ const onTagSelect = useCallback(
+ async (tag: SNTag) => {
+ if (tag.conflictOf) {
+ application!.changeAndSaveItem(tag.uuid, mutator => {
+ mutator.conflictOf = undefined;
+ });
+ }
+ application?.getAppState().setSelectedTag(tag, true);
+ drawerRef?.closeDrawer();
+ },
+ [application, drawerRef]
+ );
const openSettings = () => {
drawerRef?.closeDrawer();
@@ -271,6 +276,10 @@ export const MainSideMenu = React.memo(({ drawerRef }: Props) => {
}
};
+ const selectedTags = useMemo(() => (selectedTag ? [selectedTag] : []), [
+ selectedTag,
+ ]);
+
return (
@@ -280,33 +289,46 @@ export const MainSideMenu = React.memo(({ drawerRef }: Props) => {
onPress={openSettings}
onOutOfSyncPress={outOfSyncPressed}
/>
-
-
-
-
-
-
-
-
-
-
+ ({
+ key,
+ themeOptions,
+ onTagSelect,
+ selectedTags,
+ })
+ )}
+ renderItem={({ item, index }) => {
+ return index === 0 ? (
+
+ ) : index === 1 ? (
+
+
+
+ ) : index === 2 ? (
+
+
+
+ ) : null;
+ }}
+ />
theme.stylekitBackgroundColor};
`;
+
+export const useStyles = (theme: DefaultTheme) => {
+ return useMemo(
+ () =>
+ StyleSheet.create({
+ sections: {
+ padding: 15,
+ backgroundColor: theme.stylekitBackgroundColor,
+ },
+ }),
+ [theme.stylekitBackgroundColor]
+ );
+};
diff --git a/src/screens/SideMenu/NoteSideMenu.tsx b/src/screens/SideMenu/NoteSideMenu.tsx
index 62465e79..498f09b6 100644
--- a/src/screens/SideMenu/NoteSideMenu.tsx
+++ b/src/screens/SideMenu/NoteSideMenu.tsx
@@ -1,3 +1,4 @@
+import { associateComponentWithNote } from '@Lib/component_manager';
import { Editor } from '@Lib/editor';
import {
useChangeNote,
@@ -46,10 +47,11 @@ import React, {
} from 'react';
import { Platform, Share } from 'react-native';
import FAB from 'react-native-fab';
+import { FlatList } from 'react-native-gesture-handler';
import DrawerLayout from 'react-native-gesture-handler/DrawerLayout';
import Icon from 'react-native-vector-icons/Ionicons';
import { ThemeContext } from 'styled-components/native';
-import { SafeAreaContainer, StyledList } from './NoteSideMenu.styled';
+import { SafeAreaContainer, useStyles } from './NoteSideMenu.styled';
import { SideMenuOption, SideMenuSection } from './SideMenuSection';
import { TagSelectionList } from './TagSelectionList';
@@ -64,6 +66,32 @@ type Props = {
drawerOpen: boolean;
};
+function useEditorComponents(): SNComponent[] {
+ const application = useContext(ApplicationContext);
+ const [components, setComponents] = useState([]);
+ useEffect(() => {
+ if (!application) {
+ return;
+ }
+ const removeComponentsObserver = application.streamItems(
+ ContentType.Component,
+ () => {
+ const displayComponents = sortAlphabetically(
+ application.componentManager.componentsForArea(ComponentArea.Editor)
+ );
+ setComponents(displayComponents);
+ }
+ );
+ return () => {
+ if (application) {
+ removeComponentsObserver();
+ }
+ };
+ }, [application]);
+
+ return components;
+}
+
export const NoteSideMenu = React.memo((props: Props) => {
// Context
const theme = useContext(ThemeContext);
@@ -72,12 +100,13 @@ export const NoteSideMenu = React.memo((props: Props) => {
AppStackNavigationProp['navigation']
>();
const { showActionSheet } = useCustomActionSheet();
+ const styles = useStyles(theme);
// State
const [editor, setEditor] = useState(undefined);
const [note, setNote] = useState(undefined);
const [selectedTags, setSelectedTags] = useState([]);
- const [components, setComponents] = useState([]);
+ const components = useEditorComponents();
const [changeNote] = useChangeNote(note, editor);
const [protectOrUnprotectNote] = useProtectOrUnprotectNote(note, editor);
@@ -168,29 +197,6 @@ export const NoteSideMenu = React.memo((props: Props) => {
};
}, [editor, note?.uuid, props.drawerOpen, reloadTags]);
- useEffect(() => {
- let isMounted = true;
- const removeComponentsObserver = application?.streamItems(
- ContentType.Component,
- async () => {
- if (!note) {
- return;
- }
- const displayComponents = sortAlphabetically(
- application!.componentManager!.componentsForArea(ComponentArea.Editor)
- );
- if (isMounted && props.drawerOpen) {
- setComponents(displayComponents);
- }
- }
- );
-
- return () => {
- isMounted = false;
- removeComponentsObserver && removeComponentsObserver();
- };
- }, [application, note, props.drawerOpen]);
-
useEffect(() => {
let isMounted = true;
const removeTagsObserver = application?.streamItems(ContentType.Tag, () => {
@@ -220,31 +226,21 @@ export const NoteSideMenu = React.memo((props: Props) => {
[application, note]
);
- const associateComponentWithCurrentNote = useCallback(
- async (component: SNComponent) => {
- if (note) {
- return application?.changeItem(component.uuid, m => {
- const mutator = m as ComponentMutator;
- mutator.removeDisassociatedItemId(note.uuid);
- mutator.associateWithItem(note.uuid);
- });
- }
- },
- [application, note]
- );
-
const onEditorPress = useCallback(
async (selectedComponent?: SNComponent) => {
+ if (!note || !application) {
+ return;
+ }
if (note?.locked) {
application?.alertService.alert(
- "This note is locked. If you'd like to edit its options, unlock it, and try again."
+ "This note has editing disabled. If you'd like to edit its options, enable editing on it, and try again."
);
return;
}
if (editor?.isTemplateNote) {
await editor?.insertTemplatedNote();
}
- const activeEditorComponent = application?.componentManager!.editorForNote(
+ const activeEditorComponent = application.componentManager!.editorForNote(
note!
);
props.drawerRef?.closeDrawer();
@@ -273,14 +269,13 @@ export const NoteSideMenu = React.memo((props: Props) => {
noteMutator.prefersPlainEditor = false;
});
}
- await associateComponentWithCurrentNote(selectedComponent);
+ await associateComponentWithNote(application, selectedComponent, note);
}
/** Dirtying can happen above */
application?.sync();
},
[
application,
- associateComponentWithCurrentNote,
disassociateComponentWithCurrentNote,
editor,
note,
@@ -355,11 +350,11 @@ export const NoteSideMenu = React.memo((props: Props) => {
[application, showActionSheet]
);
- const editorComponents = useMemo(() => {
- if (!note) {
+ const editors = useMemo(() => {
+ if (!note || !application) {
return [];
}
- const componentEditor = application?.componentManager!.editorForNote(note);
+ const componentEditor = application.componentManager.editorForNote(note);
const options: SideMenuOption[] = [
{
text: 'Plain Editor',
@@ -378,7 +373,7 @@ export const NoteSideMenu = React.memo((props: Props) => {
text: component.name,
subtext: component.isMobileDefault ? 'Mobile Default' : undefined,
key: component.uuid || component.name,
- selected: component === componentEditor,
+ selected: component.uuid === componentEditor?.uuid,
onSelect: () => {
onEditorPress(component);
},
@@ -405,14 +400,7 @@ export const NoteSideMenu = React.memo((props: Props) => {
});
}
return options;
- }, [
- note,
- application?.componentManager,
- application?.deviceInterface,
- components,
- onEditorPress,
- onEdtiorLongPress,
- ]);
+ }, [note, application, components, onEditorPress, onEdtiorLongPress]);
useFocusEffect(
useCallback(() => {
@@ -447,7 +435,7 @@ export const NoteSideMenu = React.memo((props: Props) => {
const archiveEvent = () => {
if (note.locked) {
application?.alertService.alert(
- "This note is locked. If you'd like to archive it, unlock it, and try again."
+ `This note has editing disabled. If you'd like to ${archiveOption.toLowerCase()} it, enable editing on it, and try again.`
);
return;
}
@@ -457,7 +445,7 @@ export const NoteSideMenu = React.memo((props: Props) => {
leaveEditor();
};
- const lockOption = note.locked ? 'Unlock' : 'Lock';
+ const lockOption = note.locked ? 'Enable editing' : 'Prevent editing';
const lockEvent = () =>
changeNote(mutator => {
mutator.locked = !note.locked;
@@ -532,7 +520,7 @@ export const NoteSideMenu = React.memo((props: Props) => {
},
},
{
- text: 'Delete Permanently',
+ text: 'Delete permanently',
textClass: 'danger' as 'danger',
key: 'delete-forever',
onSelect: async () => deleteNote(true),
@@ -604,31 +592,41 @@ export const NoteSideMenu = React.memo((props: Props) => {
return (
-
-
-
-
-
-
-
+ ({
+ key,
+ noteOptions,
+ editorComponents: editors,
+ onTagSelect,
+ selectedTags,
+ })
+ )}
+ renderItem={({ item, index }) =>
+ index === 0 ? (
+
+ ) : index === 1 ? (
+
+ ) : index === 2 ? (
+
+
+
+ ) : null
+ }
+ />
=2, invariant@^2.2.4:
version "2.2.4"
resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6"
@@ -4279,6 +4381,13 @@ is-core-module@^2.0.0:
dependencies:
has "^1.0.3"
+is-core-module@^2.2.0:
+ version "2.3.0"
+ resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.3.0.tgz#d341652e3408bca69c4671b79a0954a3d349f887"
+ integrity sha512-xSphU2KG9867tsYdLD4RWQ1VqdFl4HTO9Thf3I/3dLEfr0dbPTWKsuCKrgqMljg4nPE+Gq0VCnzT3gr0CyBmsw==
+ dependencies:
+ has "^1.0.3"
+
is-data-descriptor@^0.1.4:
version "0.1.4"
resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56"
@@ -4688,11 +4797,6 @@ jest-environment-node@^26.6.2:
jest-mock "^26.6.2"
jest-util "^26.6.2"
-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"
@@ -4703,26 +4807,7 @@ jest-get-type@^26.3.0:
resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-26.3.0.tgz#e97dc3c3f53c2b406ca7afaed4493b1d099199e0"
integrity sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig==
-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"
- integrity sha512-kfVFmsuWui2Sj1Rp1AJ4D9HqJwE4uwTlS/vO+eRUaMmd54BFpli2XhMQnPC2k4cHFVbB2Q2C+jtI1AGLgEnCjQ==
- dependencies:
- "@jest/types" "^24.9.0"
- anymatch "^2.0.0"
- fb-watchman "^2.0.0"
- graceful-fs "^4.1.15"
- invariant "^2.2.4"
- jest-serializer "^24.9.0"
- jest-util "^24.9.0"
- jest-worker "^24.9.0"
- micromatch "^3.1.10"
- sane "^4.0.3"
- walker "^1.0.7"
- optionalDependencies:
- fsevents "^1.2.7"
-
-jest-haste-map@^26.6.2:
+jest-haste-map@^26.5.2, jest-haste-map@^26.6.2:
version "26.6.2"
resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-26.6.2.tgz#dd7e60fe7dc0e9f911a23d79c5ff7fb5c2cafeaa"
integrity sha512-easWIJXIw71B2RdR8kgqpjQrbMRWQBgiBwXYEhtGUTaX+doCjBheluShdDMeR8IMfJiTqH4+zfhtg29apJf/8w==
@@ -4785,20 +4870,6 @@ jest-matcher-utils@^26.6.2:
jest-get-type "^26.3.0"
pretty-format "^26.6.2"
-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"
- integrity sha512-oCj8FiZ3U0hTP4aSui87P4L4jC37BtQwUMqk+zk/b11FR19BJDeZsZAvIHutWnmtw7r85UmR3CEWZ0HWU2mAlw==
- dependencies:
- "@babel/code-frame" "^7.0.0"
- "@jest/test-result" "^24.9.0"
- "@jest/types" "^24.9.0"
- "@types/stack-utils" "^1.0.1"
- chalk "^2.0.1"
- micromatch "^3.1.10"
- slash "^2.0.0"
- stack-utils "^1.0.1"
-
jest-message-util@^26.6.2:
version "26.6.2"
resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-26.6.2.tgz#58173744ad6fc0506b5d21150b9be56ef001ca07"
@@ -4814,13 +4885,6 @@ jest-message-util@^26.6.2:
slash "^3.0.0"
stack-utils "^2.0.2"
-jest-mock@^24.9.0:
- version "24.9.0"
- resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-24.9.0.tgz#c22835541ee379b908673ad51087a2185c13f1c6"
- integrity sha512-3BEYN5WbSq9wd+SyLDES7AHnjH9A/ROBwmz7l2y+ol+NtSFO8DYiEBzoO1CeFc9a8DYy10EO4dDFVv/wN3zl1w==
- dependencies:
- "@jest/types" "^24.9.0"
-
jest-mock@^26.6.2:
version "26.6.2"
resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-26.6.2.tgz#d6cb712b041ed47fe0d9b6fc3474bc6543feb302"
@@ -4921,11 +4985,6 @@ jest-runtime@^26.6.3:
strip-bom "^4.0.0"
yargs "^15.4.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@^26.6.2:
version "26.6.2"
resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-26.6.2.tgz#d139aafd46957d3a448f3a6cdabe2919ba0742d1"
@@ -4956,24 +5015,6 @@ jest-snapshot@^26.6.2:
pretty-format "^26.6.2"
semver "^7.3.2"
-jest-util@^24.9.0:
- version "24.9.0"
- resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-24.9.0.tgz#7396814e48536d2e85a37de3e4c431d7cb140162"
- integrity sha512-x+cZU8VRmOJxbA1K5oDBdxQmdq0OIdADarLxk0Mq+3XS4jgvhG/oKGWcIDCtPG0HgjxOYvF+ilPJQsAyXfbNOg==
- dependencies:
- "@jest/console" "^24.9.0"
- "@jest/fake-timers" "^24.9.0"
- "@jest/source-map" "^24.9.0"
- "@jest/test-result" "^24.9.0"
- "@jest/types" "^24.9.0"
- callsites "^3.0.0"
- chalk "^2.0.1"
- graceful-fs "^4.1.15"
- is-ci "^2.0.0"
- mkdirp "^0.5.1"
- slash "^2.0.0"
- source-map "^0.6.0"
-
jest-util@^26.6.2:
version "26.6.2"
resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-26.6.2.tgz#907535dbe4d5a6cb4c47ac9b926f6af29576cbc1"
@@ -4986,19 +5027,7 @@ jest-util@^26.6.2:
is-ci "^2.0.0"
micromatch "^4.0.2"
-jest-validate@^24.7.0:
- version "24.9.0"
- resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-24.9.0.tgz#0775c55360d173cd854e40180756d4ff52def8ab"
- integrity sha512-HPIt6C5ACwiqSiwi+OfSSHbK8sG7akG8eATl+IPKaeIjtPOeBUd/g3J7DghugzxrGjI93qS/+RPKe1H6PqvhRQ==
- dependencies:
- "@jest/types" "^24.9.0"
- camelcase "^5.3.1"
- chalk "^2.0.1"
- jest-get-type "^24.9.0"
- leven "^3.1.0"
- pretty-format "^24.9.0"
-
-jest-validate@^26.6.2:
+jest-validate@^26.5.2, jest-validate@^26.6.2:
version "26.6.2"
resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-26.6.2.tgz#23d380971587150467342911c3d7b4ac57ab20ec"
integrity sha512-NEYZ9Aeyj0i5rQqbq+tpIOom0YS1u2MVu6+euBsvpgIme+FOfRmoC4R5p0JiAUpaFvFy24xgrpMknarR/93XjQ==
@@ -5023,15 +5052,7 @@ jest-watcher@^26.6.2:
jest-util "^26.6.2"
string-length "^4.0.1"
-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"
- integrity sha512-51PE4haMSXcHohnSMdM42anbvZANYTqMrr52tVKPqqsPJMzoP6FYYDVqahX/HrAoKEKz3uUPzSvKs9A3qR4iVw==
- dependencies:
- merge-stream "^2.0.0"
- supports-color "^6.1.0"
-
-jest-worker@^26.6.2:
+jest-worker@^26.0.0, jest-worker@^26.6.2:
version "26.6.2"
resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-26.6.2.tgz#7f72cbc4d643c365e27b9fd775f9d0eaa9c7a8ed"
integrity sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==
@@ -5054,6 +5075,17 @@ jetifier@^1.6.2:
resolved "https://registry.yarnpkg.com/jetifier/-/jetifier-1.6.6.tgz#fec8bff76121444c12dc38d2dad6767c421dab68"
integrity sha512-JNAkmPeB/GS2tCRqUzRPsTOHpGDah7xP18vGJfIjZC+W2sxEHbxgJxetIjIqhjQ3yYbYNEELkM/spKLtwoOSUQ==
+joi@^17.2.1:
+ version "17.4.0"
+ resolved "https://registry.yarnpkg.com/joi/-/joi-17.4.0.tgz#b5c2277c8519e016316e49ababd41a1908d9ef20"
+ integrity sha512-F4WiW2xaV6wc1jxete70Rw4V/VuMd6IN+a5ilZsxG4uYtUXWu2kq9W5P2dz30e7Gmw8RCbY/u/uk+dMPma9tAg==
+ dependencies:
+ "@hapi/hoek" "^9.0.0"
+ "@hapi/topo" "^5.0.0"
+ "@sideway/address" "^4.1.0"
+ "@sideway/formula" "^3.0.0"
+ "@sideway/pinpoint" "^2.0.0"
+
js-base64@^3.5.2:
version "3.5.2"
resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-3.5.2.tgz#3cc800e4f10812b55fb5ec53e7cabaef35dc6d3c"
@@ -5082,6 +5114,31 @@ 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==
+jscodeshift@^0.11.0:
+ version "0.11.0"
+ resolved "https://registry.yarnpkg.com/jscodeshift/-/jscodeshift-0.11.0.tgz#4f95039408f3f06b0e39bb4d53bc3139f5330e2f"
+ integrity sha512-SdRK2C7jjs4k/kT2mwtO07KJN9RnjxtKn03d9JVj6c3j9WwaLcFYsICYDnLAzY0hp+wG2nxl+Cm2jWLiNVYb8g==
+ dependencies:
+ "@babel/core" "^7.1.6"
+ "@babel/parser" "^7.1.6"
+ "@babel/plugin-proposal-class-properties" "^7.1.0"
+ "@babel/plugin-proposal-nullish-coalescing-operator" "^7.1.0"
+ "@babel/plugin-proposal-optional-chaining" "^7.1.0"
+ "@babel/plugin-transform-modules-commonjs" "^7.1.0"
+ "@babel/preset-flow" "^7.0.0"
+ "@babel/preset-typescript" "^7.1.0"
+ "@babel/register" "^7.0.0"
+ babel-core "^7.0.0-bridge.0"
+ colors "^1.1.2"
+ flow-parser "0.*"
+ graceful-fs "^4.2.4"
+ micromatch "^3.1.10"
+ neo-async "^2.5.0"
+ node-dir "^0.1.17"
+ recast "^0.20.3"
+ temp "^0.8.1"
+ write-file-atomic "^2.3.0"
+
jsdom@^16.4.0:
version "16.4.0"
resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-16.4.0.tgz#36005bde2d136f73eee1a830c6d45e55408edddb"
@@ -5149,13 +5206,6 @@ json-stable-stringify-without-jsonify@^1.0.1:
resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651"
integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=
-json-stable-stringify@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz#9a759d39c5f2ff503fd5300646ed445f88c4f9af"
- integrity sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=
- dependencies:
- jsonify "~0.0.0"
-
json-stringify-safe@~5.0.1:
version "5.0.1"
resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb"
@@ -5205,11 +5255,6 @@ jsx-ast-utils@^2.4.1:
array-includes "^3.1.1"
object.assign "^4.1.0"
-kind-of@^1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-1.1.0.tgz#140a3d2d41a36d2efcfa9377b62c24f8495a5c44"
- integrity sha1-FAo9LUGjbS78+pN3tiwk+ElaXEQ=
-
kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0:
version "3.2.2"
resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64"
@@ -5381,7 +5426,7 @@ lodash.throttle@^4.1.1:
resolved "https://registry.yarnpkg.com/lodash.throttle/-/lodash.throttle-4.1.1.tgz#c23e91b710242ac70c37f1e1cda9274cc39bf2f4"
integrity sha1-wj6RtxAkKscMN/HhzaknTMOb8vQ=
-lodash@4.x.x, lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.5, lodash@^4.3.0:
+lodash@4.x.x, lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.5:
version "4.17.20"
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.20.tgz#b44a9b6297bcb698f1c51a3545a2b3b368d59c52"
integrity sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==
@@ -5492,13 +5537,6 @@ meow@^3.7.0:
redent "^1.0.0"
trim-newlines "^1.0.0"
-merge-stream@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-1.0.1.tgz#4041202d508a342ba00174008df0c251b8c135e1"
- integrity sha1-QEEgLVCKNCugAXQAjfDCUbjBNeE=
- dependencies:
- readable-stream "^2.0.1"
-
merge-stream@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60"
@@ -5509,28 +5547,10 @@ merge2@^1.3.0:
resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae"
integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==
-metro-babel-register@0.58.0:
- version "0.58.0"
- resolved "https://registry.yarnpkg.com/metro-babel-register/-/metro-babel-register-0.58.0.tgz#5c44786d49a044048df56cf476a2263491d4f53a"
- integrity sha512-P5+G3ufhSYL6cA3a7xkbSJzzFBvtivj/PhWvGXFXnuFssDlMAX1CTktff+0gpka5Cd6B6QLt0UAMWulUAAE4Eg==
- dependencies:
- "@babel/core" "^7.0.0"
- "@babel/plugin-proposal-class-properties" "^7.0.0"
- "@babel/plugin-proposal-nullish-coalescing-operator" "^7.0.0"
- "@babel/plugin-proposal-object-rest-spread" "^7.0.0"
- "@babel/plugin-proposal-optional-catch-binding" "^7.0.0"
- "@babel/plugin-proposal-optional-chaining" "^7.0.0"
- "@babel/plugin-transform-async-to-generator" "^7.0.0"
- "@babel/plugin-transform-flow-strip-types" "^7.0.0"
- "@babel/plugin-transform-modules-commonjs" "^7.0.0"
- "@babel/register" "^7.0.0"
- core-js "^2.2.2"
- escape-string-regexp "^1.0.5"
-
-metro-babel-register@0.59.0:
- version "0.59.0"
- resolved "https://registry.yarnpkg.com/metro-babel-register/-/metro-babel-register-0.59.0.tgz#2bcff65641b36794cf083ba732fbc46cf870fb43"
- integrity sha512-JtWc29erdsXO/V3loenXKw+aHUXgj7lt0QPaZKPpctLLy8kcEpI/8pfXXgVK9weXICCpCnYtYncIosAyzh0xjg==
+metro-babel-register@0.64.0:
+ version "0.64.0"
+ resolved "https://registry.yarnpkg.com/metro-babel-register/-/metro-babel-register-0.64.0.tgz#1a2d23f68da8b8ee42e78dca37ad21a5f4d3647d"
+ integrity sha512-Kf6YvE3kIRumGnjK0Q9LqGDIdnsX9eFGtNBmBuCVDuB9wGGA/5CgX8We8W7Y44dz1RGTcHJRhfw5iGg+pwC3aQ==
dependencies:
"@babel/core" "^7.0.0"
"@babel/plugin-proposal-class-properties" "^7.0.0"
@@ -5541,118 +5561,78 @@ metro-babel-register@0.59.0:
"@babel/register" "^7.0.0"
escape-string-regexp "^1.0.5"
-metro-babel-transformer@0.58.0:
- version "0.58.0"
- resolved "https://registry.yarnpkg.com/metro-babel-transformer/-/metro-babel-transformer-0.58.0.tgz#317c83b863cceb0573943815f1711fbcbe69b106"
- integrity sha512-yBX3BkRhw2TCNPhe+pmLSgsAEA3huMvnX08UwjFqSXXI1aiqzRQobn92uKd1U5MM1Vx8EtXVomlJb95ZHNAv6A==
+metro-babel-transformer@0.64.0:
+ version "0.64.0"
+ resolved "https://registry.yarnpkg.com/metro-babel-transformer/-/metro-babel-transformer-0.64.0.tgz#a21f8a989a5ea60c1109456e21bd4d9374194ea0"
+ integrity sha512-itZaxKTgmKGEZWxNzbSZBc22NngrMZzoUNuU92aHSTGkYi2WH4XlvzEHsstmIKHMsRVKl75cA+mNmgk4gBFJKw==
dependencies:
"@babel/core" "^7.0.0"
- metro-source-map "0.58.0"
+ metro-source-map "0.64.0"
+ nullthrows "^1.1.1"
-metro-babel-transformer@0.59.0:
- version "0.59.0"
- resolved "https://registry.yarnpkg.com/metro-babel-transformer/-/metro-babel-transformer-0.59.0.tgz#dda99c75d831b00142c42c020c51c103b29f199d"
- integrity sha512-fdZJl8rs54GVFXokxRdD7ZrQ1TJjxWzOi/xSP25VR3E8tbm3nBZqS+/ylu643qSr/IueABR+jrlqAyACwGEf6w==
- dependencies:
- "@babel/core" "^7.0.0"
- metro-source-map "0.59.0"
+metro-cache-key@0.64.0:
+ version "0.64.0"
+ resolved "https://registry.yarnpkg.com/metro-cache-key/-/metro-cache-key-0.64.0.tgz#98d0a94332453c4c52b74f72c07cc62a5c264c4f"
+ integrity sha512-O9B65G8L/fopck45ZhdRosyVZdMtUQuX5mBWEC1NRj02iWBIUPLmYMjrunqIe8vHipCMp3DtTCm/65IlBmO8jg==
-metro-cache@0.58.0:
- version "0.58.0"
- resolved "https://registry.yarnpkg.com/metro-cache/-/metro-cache-0.58.0.tgz#630ea0a4626dfb9591c71fdb85dce14b5e9a04ec"
- integrity sha512-jjW9zCTKxhgKcVkyQ6LHyna9Zdf4TK/45vvT1fPyyTk1RY82ZYjU1qs+84ycKEd08Ka4YcK9xcUew9SIDJYI8Q==
+metro-cache@0.64.0:
+ version "0.64.0"
+ resolved "https://registry.yarnpkg.com/metro-cache/-/metro-cache-0.64.0.tgz#a769503e12521d9e9d95ce5840ffb2efdb4e8703"
+ integrity sha512-QvGfxe/1QQYM9XOlR8W1xqE9eHDw/AgJIgYGn/TxZxBu9Zga+Rgs1omeSZju45D8w5VWgMr83ma5kACgzvOecg==
dependencies:
- jest-serializer "^24.4.0"
- metro-core "0.58.0"
+ metro-core "0.64.0"
mkdirp "^0.5.1"
rimraf "^2.5.4"
-metro-config@0.58.0, metro-config@^0.58.0:
- version "0.58.0"
- resolved "https://registry.yarnpkg.com/metro-config/-/metro-config-0.58.0.tgz#1e24b43a5a00971d75662b1a0d3c04a13d4a1746"
- integrity sha512-4vgBliXwL56vjUlYplvGMVSNrJJpkHuLcD+O20trV3FvPxKg4ZsvuOcNSxqDSMU26FCtIEJ15ojcuCbRL7KY0w==
+metro-config@0.64.0, metro-config@^0.64.0:
+ version "0.64.0"
+ resolved "https://registry.yarnpkg.com/metro-config/-/metro-config-0.64.0.tgz#b634fa05cffd06b1e50e4339c200f90a42924afb"
+ integrity sha512-QhM4asnX5KhlRWaugwVGNNXhX0Z85u5nK0UQ/A90bBb4xWyXqUe20e788VtdA75rkQiiI6wXTCIHWT0afbnjwQ==
dependencies:
cosmiconfig "^5.0.5"
- jest-validate "^24.7.0"
- metro "0.58.0"
- metro-cache "0.58.0"
- metro-core "0.58.0"
- pretty-format "^24.7.0"
+ jest-validate "^26.5.2"
+ metro "0.64.0"
+ metro-cache "0.64.0"
+ metro-core "0.64.0"
+ metro-runtime "0.64.0"
-metro-core@0.58.0, metro-core@^0.58.0:
- version "0.58.0"
- resolved "https://registry.yarnpkg.com/metro-core/-/metro-core-0.58.0.tgz#ad9f6645a2b439a3fbce7ce4e19b01b00375768a"
- integrity sha512-RzXUjGFmCLOyzUqcKDvr91AldGtIOxnzNZrWUIiG8uC3kerVLo0mQp4YH3+XVm6fMNiLMg6iER7HLqD+MbpUjQ==
+metro-core@0.64.0, metro-core@^0.64.0:
+ version "0.64.0"
+ resolved "https://registry.yarnpkg.com/metro-core/-/metro-core-0.64.0.tgz#7616b27acfe7baa476f6cd6bd9e70ae64fa62541"
+ integrity sha512-v8ZQ5j72EaUwamQ8pLfHlOHTyp7SbdazvHPzFGDpHnwIQqIT0Bw3Syg8R4regTlVG3ngpeSEAi005UITljmMcQ==
dependencies:
- jest-haste-map "^24.7.1"
+ jest-haste-map "^26.5.2"
lodash.throttle "^4.1.1"
- metro-resolver "0.58.0"
- wordwrap "^1.0.0"
+ metro-resolver "0.64.0"
-metro-inspector-proxy@0.58.0:
- version "0.58.0"
- resolved "https://registry.yarnpkg.com/metro-inspector-proxy/-/metro-inspector-proxy-0.58.0.tgz#6fefb0cdf25655919d56c82ebe09cd26eb00e636"
- integrity sha512-oFqTyNTJdCdvcw1Ha6SKE7ITbSaoTbO4xpYownIoJR+WZ0ZfxbWpp225JkHuBJm9UcBAnG9c0CME924m3uBbaw==
+metro-hermes-compiler@0.64.0:
+ version "0.64.0"
+ resolved "https://registry.yarnpkg.com/metro-hermes-compiler/-/metro-hermes-compiler-0.64.0.tgz#e6043d7aa924e5b2be99bd3f602e693685d15386"
+ integrity sha512-CLAjVDWGAoGhbi2ZyPHnH5YDdfrDIx6+tzFWfHGIMTZkYBXsYta9IfYXBV8lFb6BIbrXLjlXZAOoosknetMPOA==
+
+metro-inspector-proxy@0.64.0:
+ version "0.64.0"
+ resolved "https://registry.yarnpkg.com/metro-inspector-proxy/-/metro-inspector-proxy-0.64.0.tgz#9a481b3f49773d5418e028178efec68f861bec88"
+ integrity sha512-KywbH3GNSz9Iqw4UH3smgaV2dBHHYMISeN7ORntDL/G+xfgPc6vt13d+zFb907YpUcXj5N0vdoiAHI5V/0y8IA==
dependencies:
connect "^3.6.5"
debug "^2.2.0"
- rxjs "^5.4.3"
ws "^1.1.5"
- yargs "^14.2.0"
+ yargs "^15.3.1"
-metro-minify-uglify@0.58.0:
- version "0.58.0"
- resolved "https://registry.yarnpkg.com/metro-minify-uglify/-/metro-minify-uglify-0.58.0.tgz#7e1066954bfd4f767ba6aca7feef676ca44c68b8"
- integrity sha512-vRHsA7bCi7eCn3LXLm20EfY2NoWDyYOnmWaq/N8LB0OxL2L5DXRqMYAQK+prWGJ5S1yvVnDuuNVP+peQ9851TA==
+metro-minify-uglify@0.64.0:
+ version "0.64.0"
+ resolved "https://registry.yarnpkg.com/metro-minify-uglify/-/metro-minify-uglify-0.64.0.tgz#da6ab4dda030e3211f5924e7f41ed308d466068f"
+ integrity sha512-DRwRstqXR5qfte9Nuwoov5dRXxL7fJeVlO5fGyOajWeO3+AgPjvjXh/UcLJqftkMWTPGUFuzAD5/7JC5v5FLWw==
dependencies:
uglify-es "^3.1.9"
-metro-react-native-babel-preset@0.58.0:
- version "0.58.0"
- resolved "https://registry.yarnpkg.com/metro-react-native-babel-preset/-/metro-react-native-babel-preset-0.58.0.tgz#18f48d33fe124280ffabc000ab8b42c488d762a2"
- integrity sha512-MRriNW+fF6jxABsgPphocUY6mIhmCm8idcrQZ58fT3Iti2vCdtkaK32TyCGUNUptzhUe2/cbE57j4aC+eaodAA==
- dependencies:
- "@babel/plugin-proposal-class-properties" "^7.0.0"
- "@babel/plugin-proposal-export-default-from" "^7.0.0"
- "@babel/plugin-proposal-nullish-coalescing-operator" "^7.0.0"
- "@babel/plugin-proposal-object-rest-spread" "^7.0.0"
- "@babel/plugin-proposal-optional-catch-binding" "^7.0.0"
- "@babel/plugin-proposal-optional-chaining" "^7.0.0"
- "@babel/plugin-syntax-dynamic-import" "^7.0.0"
- "@babel/plugin-syntax-export-default-from" "^7.0.0"
- "@babel/plugin-syntax-flow" "^7.2.0"
- "@babel/plugin-transform-arrow-functions" "^7.0.0"
- "@babel/plugin-transform-block-scoping" "^7.0.0"
- "@babel/plugin-transform-classes" "^7.0.0"
- "@babel/plugin-transform-computed-properties" "^7.0.0"
- "@babel/plugin-transform-destructuring" "^7.0.0"
- "@babel/plugin-transform-exponentiation-operator" "^7.0.0"
- "@babel/plugin-transform-flow-strip-types" "^7.0.0"
- "@babel/plugin-transform-for-of" "^7.0.0"
- "@babel/plugin-transform-function-name" "^7.0.0"
- "@babel/plugin-transform-literals" "^7.0.0"
- "@babel/plugin-transform-modules-commonjs" "^7.0.0"
- "@babel/plugin-transform-object-assign" "^7.0.0"
- "@babel/plugin-transform-parameters" "^7.0.0"
- "@babel/plugin-transform-react-display-name" "^7.0.0"
- "@babel/plugin-transform-react-jsx" "^7.0.0"
- "@babel/plugin-transform-react-jsx-source" "^7.0.0"
- "@babel/plugin-transform-regenerator" "^7.0.0"
- "@babel/plugin-transform-runtime" "^7.0.0"
- "@babel/plugin-transform-shorthand-properties" "^7.0.0"
- "@babel/plugin-transform-spread" "^7.0.0"
- "@babel/plugin-transform-sticky-regex" "^7.0.0"
- "@babel/plugin-transform-template-literals" "^7.0.0"
- "@babel/plugin-transform-typescript" "^7.5.0"
- "@babel/plugin-transform-unicode-regex" "^7.0.0"
- "@babel/template" "^7.0.0"
- react-refresh "^0.4.0"
-
-metro-react-native-babel-preset@0.59.0:
- version "0.59.0"
- resolved "https://registry.yarnpkg.com/metro-react-native-babel-preset/-/metro-react-native-babel-preset-0.59.0.tgz#20e020bc6ac9849e1477de1333d303ed42aba225"
- integrity sha512-BoO6ncPfceIDReIH8pQ5tQptcGo5yRWQXJGVXfANbiKLq4tfgdZB1C1e2rMUJ6iypmeJU9dzl+EhPmIFKtgREg==
+metro-react-native-babel-preset@0.64.0:
+ version "0.64.0"
+ resolved "https://registry.yarnpkg.com/metro-react-native-babel-preset/-/metro-react-native-babel-preset-0.64.0.tgz#76861408681dfda3c1d962eb31a8994918c976f8"
+ integrity sha512-HcZ0RWQRuJfpPiaHyFQJzcym+/dDIVUPwUAXWoub/C4GkGu+mPjp8vqK6g0FxokCnnI2TK0gZTza2IDfiNNscQ==
dependencies:
+ "@babel/core" "^7.0.0"
"@babel/plugin-proposal-class-properties" "^7.0.0"
"@babel/plugin-proposal-export-default-from" "^7.0.0"
"@babel/plugin-proposal-nullish-coalescing-operator" "^7.0.0"
@@ -5736,144 +5716,142 @@ metro-react-native-babel-preset@^0.60.0:
"@babel/template" "^7.0.0"
react-refresh "^0.4.0"
-metro-react-native-babel-transformer@0.59.0:
- version "0.59.0"
- resolved "https://registry.yarnpkg.com/metro-react-native-babel-transformer/-/metro-react-native-babel-transformer-0.59.0.tgz#9b3dfd6ad35c6ef37fc4ce4d20a2eb67fabbb4be"
- integrity sha512-1O3wrnMq4NcPQ1asEcl9lRDn/t+F1Oef6S9WaYVIKEhg9m/EQRGVrrTVP+R6B5Eeaj3+zNKbzM8Dx/NWy1hUbQ==
+metro-react-native-babel-transformer@0.64.0, metro-react-native-babel-transformer@^0.64.0:
+ version "0.64.0"
+ resolved "https://registry.yarnpkg.com/metro-react-native-babel-transformer/-/metro-react-native-babel-transformer-0.64.0.tgz#eafef756972f20efdc51bd5361d55f8598355623"
+ integrity sha512-K1sHO3ODBFCr7uEiCQ4RvVr+cQg0EHQF8ChVPnecGh/WDD8udrTq9ECwB0dRfMjAvlsHtRUlJm6ZSI8UPgum2w==
dependencies:
"@babel/core" "^7.0.0"
babel-preset-fbjs "^3.3.0"
- metro-babel-transformer "0.59.0"
- metro-react-native-babel-preset "0.59.0"
- metro-source-map "0.59.0"
+ metro-babel-transformer "0.64.0"
+ metro-react-native-babel-preset "0.64.0"
+ metro-source-map "0.64.0"
+ nullthrows "^1.1.1"
-metro-react-native-babel-transformer@^0.58.0:
- version "0.58.0"
- resolved "https://registry.yarnpkg.com/metro-react-native-babel-transformer/-/metro-react-native-babel-transformer-0.58.0.tgz#5da0e5a1b83c01d11626905fa59f34fda53a21a5"
- integrity sha512-3A73+cRq1eUPQ8g+hPNGgMUMCGmtQjwqHfoG1DwinAoJ/kr4WOXWWbGZo0xHJNBe/zdHGl0uHcDCp2knPglTdQ==
- dependencies:
- "@babel/core" "^7.0.0"
- babel-preset-fbjs "^3.3.0"
- metro-babel-transformer "0.58.0"
- metro-react-native-babel-preset "0.58.0"
- metro-source-map "0.58.0"
-
-metro-resolver@0.58.0, metro-resolver@^0.58.0:
- version "0.58.0"
- resolved "https://registry.yarnpkg.com/metro-resolver/-/metro-resolver-0.58.0.tgz#4d03edc52e2e25d45f16688adf3b3f268ea60df9"
- integrity sha512-XFbAKvCHN2iWqKeiRARzEXn69eTDdJVJC7lu16S4dPQJ+Dy82dZBr5Es12iN+NmbJuFgrAuIHbpWrdnA9tOf6Q==
+metro-resolver@0.64.0, metro-resolver@^0.64.0:
+ version "0.64.0"
+ resolved "https://registry.yarnpkg.com/metro-resolver/-/metro-resolver-0.64.0.tgz#21126b44f31346ac2ce0b06b77ef65e8c9e2294a"
+ integrity sha512-cJ26Id8Zf+HmS/1vFwu71K3u7ep/+HeXXAJIeVDYf+niE7AWB9FijyMtAlQgbD8elWqv1leJCnQ/xHRFBfGKYA==
dependencies:
absolute-path "^0.0.0"
-metro-source-map@0.58.0:
- version "0.58.0"
- resolved "https://registry.yarnpkg.com/metro-source-map/-/metro-source-map-0.58.0.tgz#e951b99f4c653239ce9323bb08339c6f1978a112"
- integrity sha512-yvN1YPmejmgiiS7T1aKBiiUTHPw2Vcm3r2TZ+DY92z/9PR4alysIywrCs/fTHs8rbDcKM5VfPCKGLpkBrbKeOw==
+metro-runtime@0.64.0, metro-runtime@^0.64.0:
+ version "0.64.0"
+ resolved "https://registry.yarnpkg.com/metro-runtime/-/metro-runtime-0.64.0.tgz#cdaa1121d91041bf6345f2a69eb7c2fb289eff7b"
+ integrity sha512-m7XbWOaIOeFX7YcxUhmnOi6Pg8EaeL89xyZ+quZyZVF1aNoTr4w8FfbKxvijpjsytKHIZtd+43m2Wt5JrqyQmQ==
+
+metro-source-map@0.64.0:
+ version "0.64.0"
+ resolved "https://registry.yarnpkg.com/metro-source-map/-/metro-source-map-0.64.0.tgz#4310e17c3d4539c6369688022494ad66fa4d39a1"
+ integrity sha512-OCG2rtcp5cLEGYvAbfkl6mEc0J2FPRP4/UCEly+juBk7hawS9bCBMBfhJm/HIsvY1frk6nT2Vsl1O8YBbwyx2g==
dependencies:
"@babel/traverse" "^7.0.0"
"@babel/types" "^7.0.0"
invariant "^2.2.4"
- metro-symbolicate "0.58.0"
- ob1 "0.58.0"
+ metro-symbolicate "0.64.0"
+ nullthrows "^1.1.1"
+ ob1 "0.64.0"
source-map "^0.5.6"
vlq "^1.0.0"
-metro-source-map@0.59.0:
- version "0.59.0"
- resolved "https://registry.yarnpkg.com/metro-source-map/-/metro-source-map-0.59.0.tgz#e9beb9fc51bfb4e060f95820cf1508fc122d23f7"
- integrity sha512-0w5CmCM+ybSqXIjqU4RiK40t4bvANL6lafabQ2GP2XD3vSwkLY+StWzCtsb4mPuyi9R/SgoLBel+ZOXHXAH0eQ==
+metro-symbolicate@0.64.0:
+ version "0.64.0"
+ resolved "https://registry.yarnpkg.com/metro-symbolicate/-/metro-symbolicate-0.64.0.tgz#405c21438ab553c29f6841da52ca76ee87bb06ac"
+ integrity sha512-qIi+YRrDWnLVmydj6gwidYLPaBsakZRibGWSspuXgHAxOI3UuLwlo4dpQ73Et0gyHjI7ZvRMRY8JPiOntf9AQQ==
dependencies:
+ invariant "^2.2.4"
+ metro-source-map "0.64.0"
+ nullthrows "^1.1.1"
+ source-map "^0.5.6"
+ through2 "^2.0.1"
+ vlq "^1.0.0"
+
+metro-transform-plugins@0.64.0:
+ version "0.64.0"
+ resolved "https://registry.yarnpkg.com/metro-transform-plugins/-/metro-transform-plugins-0.64.0.tgz#41d3dce0f2966bbd79fea1ecff61bcc8a00e4665"
+ integrity sha512-iTIRBD/wBI98plfxj8jAoNUUXfXLNlyvcjPtshhpGvdwu9pzQilGfnDnOaaK+vbITcOk9w5oQectXyJwAqTr1A==
+ dependencies:
+ "@babel/core" "^7.0.0"
+ "@babel/generator" "^7.5.0"
+ "@babel/template" "^7.0.0"
"@babel/traverse" "^7.0.0"
+ nullthrows "^1.1.1"
+
+metro-transform-worker@0.64.0:
+ version "0.64.0"
+ resolved "https://registry.yarnpkg.com/metro-transform-worker/-/metro-transform-worker-0.64.0.tgz#f94429b2c42b13cb1c93be4c2e25e97f2d27ca60"
+ integrity sha512-wegRtK8GyLF6IPZRBJp+zsORgA4iX0h1DRpknyAMDCtSbJ4VU2xV/AojteOgAsDvY3ucAGsvfuZLNDJHUdUNHQ==
+ dependencies:
+ "@babel/core" "^7.0.0"
+ "@babel/generator" "^7.5.0"
+ "@babel/parser" "^7.0.0"
"@babel/types" "^7.0.0"
- invariant "^2.2.4"
- metro-symbolicate "0.59.0"
- ob1 "0.59.0"
- source-map "^0.5.6"
- vlq "^1.0.0"
+ babel-preset-fbjs "^3.3.0"
+ metro "0.64.0"
+ metro-babel-transformer "0.64.0"
+ metro-cache "0.64.0"
+ metro-cache-key "0.64.0"
+ metro-hermes-compiler "0.64.0"
+ metro-source-map "0.64.0"
+ metro-transform-plugins "0.64.0"
+ nullthrows "^1.1.1"
-metro-symbolicate@0.58.0:
- version "0.58.0"
- resolved "https://registry.yarnpkg.com/metro-symbolicate/-/metro-symbolicate-0.58.0.tgz#ba9fd52549c41fc1b656adaad7c8875726dd5abe"
- integrity sha512-uIVxUQC1E26qOMj13dKROhwAa2FmZk5eR0NcBqej/aXmQhpr8LjJg2sondkoLKUp827Tf/Fm9+pS4icb5XiqCw==
- dependencies:
- invariant "^2.2.4"
- metro-source-map "0.58.0"
- source-map "^0.5.6"
- through2 "^2.0.1"
- vlq "^1.0.0"
-
-metro-symbolicate@0.59.0:
- version "0.59.0"
- resolved "https://registry.yarnpkg.com/metro-symbolicate/-/metro-symbolicate-0.59.0.tgz#fc7f93957a42b02c2bfc57ed1e8f393f5f636a54"
- integrity sha512-asLaF2A7rndrToGFIknL13aiohwPJ95RKHf0NM3hP/nipiLDoMzXT6ZnQvBqDxkUKyP+51AI75DMtb+Wcyw4Bw==
- dependencies:
- invariant "^2.2.4"
- metro-source-map "0.59.0"
- source-map "^0.5.6"
- through2 "^2.0.1"
- vlq "^1.0.0"
-
-metro@0.58.0, metro@^0.58.0:
- version "0.58.0"
- resolved "https://registry.yarnpkg.com/metro/-/metro-0.58.0.tgz#c037318c112f80dc96199780c8b401ab72cfd142"
- integrity sha512-yi/REXX+/s4r7RjzXht+E+qE6nzvFIrEXO5Q61h+70Q7RODMU8EnlpXx04JYk7DevHuMhFaX+NWhCtRINzR4zA==
+metro@0.64.0, metro@^0.64.0:
+ version "0.64.0"
+ resolved "https://registry.yarnpkg.com/metro/-/metro-0.64.0.tgz#0091a856cfbcc94dd576da563eee466e96186195"
+ integrity sha512-G2OC08Rzfs0kqnSEuKo2yZxR+/eNUpA93Ru45c60uN0Dw3HPrDi+ZBipgFftC6iLE0l+6hu8roFFIofotWxybw==
dependencies:
"@babel/code-frame" "^7.0.0"
"@babel/core" "^7.0.0"
"@babel/generator" "^7.5.0"
"@babel/parser" "^7.0.0"
- "@babel/plugin-external-helpers" "^7.0.0"
"@babel/template" "^7.0.0"
"@babel/traverse" "^7.0.0"
"@babel/types" "^7.0.0"
absolute-path "^0.0.0"
+ accepts "^1.3.7"
async "^2.4.0"
- babel-preset-fbjs "^3.3.0"
- buffer-crc32 "^0.2.13"
- chalk "^2.4.1"
+ chalk "^4.0.0"
ci-info "^2.0.0"
- concat-stream "^1.6.0"
connect "^3.6.5"
debug "^2.2.0"
denodeify "^1.2.1"
- eventemitter3 "^3.0.0"
- fbjs "^1.0.0"
+ error-stack-parser "^2.0.6"
fs-extra "^1.0.0"
graceful-fs "^4.1.3"
image-size "^0.6.0"
invariant "^2.2.4"
- jest-haste-map "^24.7.1"
- jest-worker "^24.6.0"
- json-stable-stringify "^1.0.1"
+ jest-haste-map "^26.5.2"
+ jest-worker "^26.0.0"
lodash.throttle "^4.1.1"
- merge-stream "^1.0.1"
- metro-babel-register "0.58.0"
- metro-babel-transformer "0.58.0"
- metro-cache "0.58.0"
- metro-config "0.58.0"
- metro-core "0.58.0"
- metro-inspector-proxy "0.58.0"
- metro-minify-uglify "0.58.0"
- metro-react-native-babel-preset "0.58.0"
- metro-resolver "0.58.0"
- metro-source-map "0.58.0"
- metro-symbolicate "0.58.0"
- mime-types "2.1.11"
+ metro-babel-register "0.64.0"
+ metro-babel-transformer "0.64.0"
+ metro-cache "0.64.0"
+ metro-cache-key "0.64.0"
+ metro-config "0.64.0"
+ metro-core "0.64.0"
+ metro-hermes-compiler "0.64.0"
+ metro-inspector-proxy "0.64.0"
+ metro-minify-uglify "0.64.0"
+ metro-react-native-babel-preset "0.64.0"
+ metro-resolver "0.64.0"
+ metro-runtime "0.64.0"
+ metro-source-map "0.64.0"
+ metro-symbolicate "0.64.0"
+ metro-transform-plugins "0.64.0"
+ metro-transform-worker "0.64.0"
+ mime-types "^2.1.27"
mkdirp "^0.5.1"
node-fetch "^2.2.0"
nullthrows "^1.1.1"
- resolve "^1.5.0"
rimraf "^2.5.4"
serialize-error "^2.1.0"
source-map "^0.5.6"
- strip-ansi "^4.0.0"
+ strip-ansi "^6.0.0"
temp "0.8.3"
- throat "^4.1.0"
- wordwrap "^1.0.0"
- write-file-atomic "^1.2.0"
+ throat "^5.0.0"
ws "^1.1.5"
- xpipe "^1.0.5"
- yargs "^14.2.0"
+ yargs "^15.3.1"
micromatch@^3.1.10, micromatch@^3.1.4:
version "3.1.10"
@@ -5907,23 +5885,16 @@ mime-db@1.44.0:
resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.44.0.tgz#fa11c5eb0aca1334b4233cb4d52f10c5a6272f92"
integrity sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==
+mime-db@1.47.0:
+ version "1.47.0"
+ resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.47.0.tgz#8cb313e59965d3c05cfbf898915a267af46a335c"
+ integrity sha512-QBmA/G2y+IfeS4oktet3qRZ+P5kPhCKRXxXnQEudYqUaEioAU1/Lq2us3D/t1Jfo4hE9REQPrbB7K5sOczJVIw==
+
"mime-db@>= 1.43.0 < 2":
version "1.45.0"
resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.45.0.tgz#cceeda21ccd7c3a745eba2decd55d4b73e7879ea"
integrity sha512-CkqLUxUk15hofLoLyljJSrukZi8mAtgd+yE5uO4tqRZsdsAJKv0O+rFMhVDRJgozy+yG6md5KwuXhD4ocIoP+w==
-mime-db@~1.23.0:
- version "1.23.0"
- resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.23.0.tgz#a31b4070adaea27d732ea333740a64d0ec9a6659"
- integrity sha1-oxtAcK2uon1zLqMzdApk0OyaZlk=
-
-mime-types@2.1.11:
- version "2.1.11"
- resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.11.tgz#c259c471bda808a85d6cd193b430a5fae4473b3c"
- integrity sha1-wlnEcb2oCKhdbNGTtDCl+uRHOzw=
- dependencies:
- mime-db "~1.23.0"
-
mime-types@^2.1.12, mime-types@~2.1.19, mime-types@~2.1.24:
version "2.1.27"
resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.27.tgz#47949f98e279ea53119f5722e0f34e529bec009f"
@@ -5931,6 +5902,13 @@ mime-types@^2.1.12, mime-types@~2.1.19, mime-types@~2.1.24:
dependencies:
mime-db "1.44.0"
+mime-types@^2.1.27:
+ version "2.1.30"
+ resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.30.tgz#6e7be8b4c479825f85ed6326695db73f9305d62d"
+ integrity sha512-crmjA4bLtR8m9qLpHvgxSChT+XoSlZi8J4n/aIdn3z92e/U47Z0V/yl+Wh9W046GgFVAmoNR/fmdbZYcSSIUeg==
+ dependencies:
+ mime-db "1.47.0"
+
mime@1.6.0:
version "1.6.0"
resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1"
@@ -5951,7 +5929,7 @@ mimic-fn@^2.1.0:
resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b"
integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==
-"minimatch@2 || 3", minimatch@^3.0.4:
+"minimatch@2 || 3", minimatch@^3.0.2, minimatch@^3.0.4:
version "3.0.4"
resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083"
integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==
@@ -5998,11 +5976,6 @@ ms@2.1.2:
resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009"
integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==
-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=
-
mv@~2:
version "2.1.1"
resolved "https://registry.yarnpkg.com/mv/-/mv-2.1.1.tgz#ae6ce0d6f6d5e0a4f7d893798d03c1ea9559b6a2"
@@ -6012,7 +5985,7 @@ mv@~2:
ncp "~2.0.0"
rimraf "~2.4.0"
-nan@^2.12.1, nan@^2.14.0:
+nan@^2.14.0:
version "2.14.1"
resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.1.tgz#d7be34dfa3105b91494c3147089315eff8874b01"
integrity sha512-isWHgVjnFjh2x2yuJ/tj3JbwoHu3UC2dX5G/88Cm24yB6YopVgxvBObDY7n5xW6ExmFhJpSEQqFPvq9zaXc8Jw==
@@ -6054,6 +6027,11 @@ negotiator@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.5.0:
+ version "2.6.2"
+ resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f"
+ integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==
+
nice-try@^1.0.4:
version "1.0.5"
resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366"
@@ -6064,6 +6042,13 @@ nocache@^2.1.0:
resolved "https://registry.yarnpkg.com/nocache/-/nocache-2.1.0.tgz#120c9ffec43b5729b1d5de88cd71aa75a0ba491f"
integrity sha512-0L9FvHG3nfnnmaEQPjT9xhfN4ISk0A8/2j4M37Np4mcDesJjHgEUfgPhdCyZuFI954tjokaIj/A3NdpFNdEh4Q==
+node-dir@^0.1.17:
+ version "0.1.17"
+ resolved "https://registry.yarnpkg.com/node-dir/-/node-dir-0.1.17.tgz#5f5665d93351335caabef8f1c554516cf5f1e4e5"
+ integrity sha1-X1Zl2TNRM1yqvvjxxVRRbPXx5OU=
+ dependencies:
+ minimatch "^3.0.2"
+
node-fetch@2.6.1, node-fetch@^2.2.0, node-fetch@^2.6.0:
version "2.6.1"
resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.1.tgz#045bd323631f76ed2e2b55573394416b639a0052"
@@ -6099,6 +6084,11 @@ node-notifier@^8.0.0:
uuid "^8.3.0"
which "^2.0.2"
+node-releases@^1.1.71:
+ version "1.1.71"
+ resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.71.tgz#cb1334b179896b1c89ecfdd4b725fb7bbdfc7dbb"
+ integrity sha512-zR6HoT6LrLCRBwukmrVbHv0EpEQjksO6GmFcZQQuCAy139BEsoVKPYnf3jongYW83fAa1torLGYwxxky/p28sg==
+
node-stream-zip@^1.9.1:
version "1.11.3"
resolved "https://registry.yarnpkg.com/node-stream-zip/-/node-stream-zip-1.11.3.tgz#223892620b4889bce9782b256a76682631c507be"
@@ -6175,15 +6165,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.58.0:
- version "0.58.0"
- resolved "https://registry.yarnpkg.com/ob1/-/ob1-0.58.0.tgz#484a1e9a63a8b79d9ea6f3a83b2a42110faac973"
- integrity sha512-uZP44cbowAfHafP1k4skpWItk5iHCoRevMfrnUvYCfyNNPPJd3rfDCyj0exklWi2gDXvjlj2ObsfiqP/bs/J7Q==
-
-ob1@0.59.0:
- version "0.59.0"
- resolved "https://registry.yarnpkg.com/ob1/-/ob1-0.59.0.tgz#ee103619ef5cb697f2866e3577da6f0ecd565a36"
- integrity sha512-opXMTxyWJ9m68ZglCxwo0OPRESIC/iGmKFPXEXzMZqsVIrgoRXOHmoMDkQzz4y3irVjbyPJRAh5pI9fd0MJTFQ==
+ob1@0.64.0:
+ version "0.64.0"
+ resolved "https://registry.yarnpkg.com/ob1/-/ob1-0.64.0.tgz#f254a55a53ca395c4f9090e28a85483eac5eba19"
+ integrity sha512-CO1N+5dhvy+MoAwxz8+fymEUcwsT4a+wHhrHFb02LppcJdHxgcBWviwEhUwKOD2kLMQ7ijrrzybOqpGcqEtvpQ==
object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1:
version "4.1.1"
@@ -6343,7 +6328,7 @@ ora@^3.4.0:
strip-ansi "^5.2.0"
wcwidth "^1.0.1"
-os-tmpdir@^1.0.0, os-tmpdir@~1.0.2:
+os-tmpdir@^1.0.0:
version "1.0.2"
resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274"
integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=
@@ -6435,11 +6420,6 @@ parse-json@^5.0.0:
json-parse-even-better-errors "^2.3.0"
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"
- integrity sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==
-
parse5@5.1.1:
version "5.1.1"
resolved "https://registry.yarnpkg.com/parse5/-/parse5-5.1.1.tgz#f68e4e5ba1852ac2cadc00f4555fff6c2abb6178"
@@ -6592,17 +6572,6 @@ plist@^3.0.1:
xmlbuilder "^9.0.7"
xmldom "0.1.x"
-plugin-error@^0.1.2:
- version "0.1.2"
- resolved "https://registry.yarnpkg.com/plugin-error/-/plugin-error-0.1.2.tgz#3b9bb3335ccf00f425e07437e19276967da47ace"
- integrity sha1-O5uzM1zPAPQl4HQ34ZJ2ln2kes4=
- dependencies:
- ansi-cyan "^0.1.1"
- ansi-red "^0.1.1"
- arr-diff "^1.0.1"
- arr-union "^2.0.1"
- extend-shallow "^1.1.2"
-
posix-character-classes@^0.1.0:
version "0.1.1"
resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab"
@@ -6650,17 +6619,7 @@ prettier@^2.2.1:
resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.2.1.tgz#795a1a78dd52f073da0cd42b21f9c91381923ff5"
integrity sha512-PqyhM2yCjg/oKkFPtTGUojv7gnZAoG80ttl45O6x2Ug/rMJw4wcc9k6aaf2hibP7BGVCCM33gZoGjyvt9mm16Q==
-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"
- integrity sha512-00ZMZUiHaJrNfk33guavqgvfJS30sLYf0f8+Srklv0AMPodGGHcoHgksZ3OThYnIvOd+8yMCn0YiEOogjlgsnA==
- dependencies:
- "@jest/types" "^24.9.0"
- ansi-regex "^4.0.0"
- ansi-styles "^3.2.0"
- react-is "^16.8.4"
-
-pretty-format@^25.1.0, pretty-format@^25.2.0, pretty-format@^25.2.1, pretty-format@^25.5.0:
+pretty-format@^25.2.1, pretty-format@^25.5.0:
version "25.5.0"
resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-25.5.0.tgz#7873c1d774f682c34b8d48b6743a2bf2ac55791a"
integrity sha512-kbo/kq2LQ/A/is0PQwsEHM7Ca6//bGPPvU6UnsdDRSKTWxT/ru/xb88v4BJf6a69H+uTytOEsTusT9ksd/1iWQ==
@@ -6670,7 +6629,7 @@ pretty-format@^25.1.0, pretty-format@^25.2.0, pretty-format@^25.2.1, pretty-form
ansi-styles "^4.0.0"
react-is "^16.12.0"
-pretty-format@^26.6.2:
+pretty-format@^26.5.2, pretty-format@^26.6.2:
version "26.6.2"
resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-26.6.2.tgz#e35c2705f14cb7fe2fe94fa078345b444120fc93"
integrity sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg==
@@ -6717,6 +6676,14 @@ prompts@^2.0.1:
kleur "^3.0.3"
sisteransi "^1.0.4"
+prompts@^2.4.0:
+ version "2.4.1"
+ resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.4.1.tgz#befd3b1195ba052f9fd2fde8a486c4e82ee77f61"
+ integrity sha512-EQyfIuO2hPDsX1L/blblV+H7I0knhgAd82cVneCwcdND9B8AuCDuRcBH6yIcG4dFzlOUqbazQqwGjx5xmsNLuQ==
+ dependencies:
+ kleur "^3.0.3"
+ sisteransi "^1.0.5"
+
prop-types@^15.5.10, 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"
@@ -6795,7 +6762,7 @@ react-devtools-core@^4.6.0:
shell-quote "^1.6.1"
ws "^7"
-react-is@^16.12.0, react-is@^16.13.0, react-is@^16.7.0, react-is@^16.8.1, react-is@^16.8.4, react-is@^16.8.6:
+react-is@^16.12.0, react-is@^16.13.0, react-is@^16.7.0, react-is@^16.8.1, react-is@^16.8.6:
version "16.13.1"
resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4"
integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==
@@ -6813,11 +6780,25 @@ react-native-alternate-icons@standardnotes/react-native-alternate-icons#1d335d:
version "0.3.0"
resolved "https://codeload.github.com/standardnotes/react-native-alternate-icons/tar.gz/1d335d13bb518ed4d26cb00bcd1f6b1c4d60a052"
+react-native-codegen@^0.0.6:
+ version "0.0.6"
+ resolved "https://registry.yarnpkg.com/react-native-codegen/-/react-native-codegen-0.0.6.tgz#b3173faa879cf71bfade8d030f9c4698388f6909"
+ integrity sha512-cMvrUelD81wiPitEPiwE/TCNscIVauXxmt4NTGcy18HrUd0WRWXfYzAQGXm0eI87u3NMudNhqFj2NISJenxQHg==
+ dependencies:
+ flow-parser "^0.121.0"
+ jscodeshift "^0.11.0"
+ nullthrows "^1.1.1"
+
react-native-default-preference@^1.4.3:
version "1.4.3"
resolved "https://registry.yarnpkg.com/react-native-default-preference/-/react-native-default-preference-1.4.3.tgz#3c6411d32ea4ebc5286fbf5915546fc57a6014f6"
integrity sha512-sQDYwGEdxwKwXKP/8Intc81FyH33Rv8ZvOxdmPX4NM75RAIVeBc13pdabEqycAimNZoY5IDvGp4o1cTTa5gNrA==
+react-native-document-picker@^5.0.4:
+ version "5.0.4"
+ resolved "https://registry.yarnpkg.com/react-native-document-picker/-/react-native-document-picker-5.0.4.tgz#86a874e093284b21896581985b8b6e13e04a4251"
+ integrity sha512-PN3NYZFgz6McbcfH5Cu3yf3nE4UBAiJYdL26F5cjypOoCFhdfLz0NM13V/tVOLGhWZXNUmI3g4dhPQBthq+pJg==
+
react-native-fab@standardnotes/react-native-fab#cb60e00:
version "1.0.8"
resolved "https://codeload.github.com/standardnotes/react-native-fab/tar.gz/cb60e0067bbd938df5e85838760d8ff87f0cddda"
@@ -6944,38 +6925,43 @@ react-native-webview@^11.0.3:
escape-string-regexp "2.0.0"
invariant "2.2.4"
-react-native@0.63.4:
- version "0.63.4"
- resolved "https://registry.yarnpkg.com/react-native/-/react-native-0.63.4.tgz#2210fdd404c94a5fa6b423c6de86f8e48810ec36"
- integrity sha512-I4kM8kYO2mWEYUFITMcpRulcy4/jd+j9T6PbIzR0FuMcz/xwd+JwHoLPa1HmCesvR1RDOw9o4D+OFLwuXXfmGw==
+react-native@0.64.1:
+ version "0.64.1"
+ resolved "https://registry.yarnpkg.com/react-native/-/react-native-0.64.1.tgz#cd38f5b47b085549686f34eb0c9dcd466f307635"
+ integrity sha512-jvSj+hNAfwvhaSmxd5KHJ5HidtG0pDXzoH6DaqNpU74g3CmAiA8vuk58B5yx/DYuffGq6PeMniAcwuh3Xp4biQ==
dependencies:
- "@babel/runtime" "^7.0.0"
- "@react-native-community/cli" "^4.10.0"
- "@react-native-community/cli-platform-android" "^4.10.0"
- "@react-native-community/cli-platform-ios" "^4.10.0"
+ "@jest/create-cache-key-function" "^26.5.0"
+ "@react-native-community/cli" "^5.0.1-alpha.0"
+ "@react-native-community/cli-platform-android" "^5.0.1-alpha.0"
+ "@react-native-community/cli-platform-ios" "^5.0.1-alpha.0"
+ "@react-native/assets" "1.0.0"
+ "@react-native/normalize-color" "1.0.0"
+ "@react-native/polyfills" "1.0.0"
abort-controller "^3.0.0"
anser "^1.4.9"
base64-js "^1.1.2"
event-target-shim "^5.0.1"
- fbjs "^1.0.0"
- fbjs-scripts "^1.1.0"
- hermes-engine "~0.5.0"
+ hermes-engine "~0.7.0"
invariant "^2.2.4"
jsc-android "^245459.0.0"
- metro-babel-register "0.59.0"
- metro-react-native-babel-transformer "0.59.0"
- metro-source-map "0.59.0"
+ metro-babel-register "0.64.0"
+ metro-react-native-babel-transformer "0.64.0"
+ metro-runtime "0.64.0"
+ metro-source-map "0.64.0"
nullthrows "^1.1.1"
- pretty-format "^24.9.0"
+ pretty-format "^26.5.2"
promise "^8.0.3"
prop-types "^15.7.2"
react-devtools-core "^4.6.0"
+ react-native-codegen "^0.0.6"
react-refresh "^0.4.0"
regenerator-runtime "^0.13.2"
- scheduler "0.19.1"
+ scheduler "^0.20.1"
+ shelljs "^0.8.4"
stacktrace-parser "^0.1.3"
use-subscription "^1.0.0"
whatwg-fetch "^3.0.0"
+ ws "^6.1.4"
react-navigation-header-buttons@^6.0.2:
version "6.0.2"
@@ -6999,14 +6985,13 @@ react-test-renderer@16.13.1:
react-is "^16.8.6"
scheduler "^0.19.1"
-react@16.13.1:
- version "16.13.1"
- resolved "https://registry.yarnpkg.com/react/-/react-16.13.1.tgz#2e818822f1a9743122c063d6410d85c1e3afe48e"
- integrity sha512-YMZQQq32xHLX0bz5Mnibv1/LHb3Sqzngu7xstSM+vrkE5Kzr9xE0yMByK5kMoTK30YVJE61WfbxIFFvfeDKT1w==
+react@17.0.1:
+ version "17.0.1"
+ resolved "https://registry.yarnpkg.com/react/-/react-17.0.1.tgz#6e0600416bd57574e3f86d92edba3d9008726127"
+ integrity sha512-lG9c9UuMHdcAexXtigOZLX8exLWkW0Ku29qPRU8uhF2R9BN96dLCt0psvzPLlHc5OWkgymP3qwTRgbnw5BKx3w==
dependencies:
loose-envify "^1.1.0"
object-assign "^4.1.1"
- prop-types "^15.6.2"
read-pkg-up@^1.0.1:
version "1.0.1"
@@ -7079,7 +7064,16 @@ read-pkg@^5.2.0:
parse-json "^5.0.0"
type-fest "^0.6.0"
-readable-stream@^2.0.1, readable-stream@^2.2.2, readable-stream@~2.3.6:
+readable-stream@^3.0.2:
+ version "3.6.0"
+ resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198"
+ integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==
+ dependencies:
+ inherits "^2.0.3"
+ string_decoder "^1.1.1"
+ util-deprecate "^1.0.1"
+
+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==
@@ -7092,14 +7086,22 @@ readable-stream@^2.0.1, readable-stream@^2.2.2, readable-stream@~2.3.6:
string_decoder "~1.1.1"
util-deprecate "~1.0.1"
-readable-stream@^3.0.2:
- version "3.6.0"
- resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198"
- integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==
+recast@^0.20.3:
+ version "0.20.4"
+ resolved "https://registry.yarnpkg.com/recast/-/recast-0.20.4.tgz#db55983eac70c46b3fff96c8e467d65ffb4a7abc"
+ integrity sha512-6qLIBGGRcwjrTZGIiBpJVC/NeuXpogXNyRQpqU1zWPUigCphvApoCs9KIwDYh1eDuJ6dAFlQoi/QUyE5KQ6RBQ==
dependencies:
- inherits "^2.0.3"
- string_decoder "^1.1.1"
- util-deprecate "^1.0.1"
+ ast-types "0.14.2"
+ esprima "~4.0.0"
+ source-map "~0.6.1"
+ tslib "^2.0.1"
+
+rechoir@^0.6.2:
+ version "0.6.2"
+ resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384"
+ integrity sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=
+ dependencies:
+ resolve "^1.1.6"
redent@^1.0.0:
version "1.0.0"
@@ -7288,7 +7290,15 @@ resolve-url@^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.12.0, resolve@^1.17.0, resolve@^1.18.1, resolve@^1.3.2, resolve@^1.5.0, resolve@^1.8.1:
+resolve@^1.1.6:
+ version "1.20.0"
+ resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975"
+ integrity sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==
+ dependencies:
+ is-core-module "^2.2.0"
+ path-parse "^1.0.6"
+
+resolve@^1.10.0, resolve@^1.12.0, resolve@^1.17.0, resolve@^1.18.1, resolve@^1.3.2, resolve@^1.8.1:
version "1.18.1"
resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.18.1.tgz#018fcb2c5b207d2a6424aee361c5a266da8f4130"
integrity sha512-lDfCPaMKfOJXjy0dPayzPdF1phampNWr3qFCjAu+rw/qbQmr5jWH5xN2hwh9QKfw9E5v4hwV7A+jrCmL8yjjqA==
@@ -7319,7 +7329,7 @@ reusify@^1.0.4:
resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76"
integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==
-rimraf@2.6.3:
+rimraf@2.6.3, rimraf@~2.6.2:
version "2.6.3"
resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab"
integrity sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==
@@ -7357,11 +7367,6 @@ rsvp@^4.8.4:
resolved "https://registry.yarnpkg.com/rsvp/-/rsvp-4.8.5.tgz#c8f155311d167f68f21e168df71ec5b083113734"
integrity sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA==
-run-async@^2.2.0:
- version "2.4.1"
- resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.4.1.tgz#8440eccf99ea3e70bd409d49aab88e10c189a455"
- integrity sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==
-
run-parallel-limit@^1.0.5:
version "1.0.5"
resolved "https://registry.yarnpkg.com/run-parallel-limit/-/run-parallel-limit-1.0.5.tgz#c29a4fd17b4df358cb52a8a697811a63c984f1b7"
@@ -7372,25 +7377,6 @@ run-parallel@^1.1.9:
resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.1.10.tgz#60a51b2ae836636c81377df16cb107351bcd13ef"
integrity sha512-zb/1OuZ6flOlH6tQyMPUrE3x3Ulxjlo9WIVXR4yVYi4H9UXQaeIsPbLn2R3O3vQCnDKkAl2qHiuocKKX4Tz/Sw==
-rx-lite-aggregates@^4.0.8:
- version "4.0.8"
- resolved "https://registry.yarnpkg.com/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz#753b87a89a11c95467c4ac1626c4efc4e05c67be"
- integrity sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74=
- dependencies:
- rx-lite "*"
-
-rx-lite@*, rx-lite@^4.0.8:
- version "4.0.8"
- resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-4.0.8.tgz#0b1e11af8bc44836f04a6407e92da42467b79444"
- integrity sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ=
-
-rxjs@^5.4.3:
- version "5.5.12"
- resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-5.5.12.tgz#6fa61b8a77c3d793dbaf270bee2f43f652d741cc"
- integrity sha512-xx2itnL5sBbqeeiVgNPVuQQ1nC8Jp2WfNJhXWHmElW9YmrpS9UVnNzhP3EH3HFqexO5Tlp8GhYY+WEcqcVMvGw==
- dependencies:
- symbol-observable "1.0.1"
-
rxjs@^6.5.2:
version "6.6.3"
resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.3.tgz#8ca84635c4daa900c0d3967a6ee7ac60271ee552"
@@ -7459,7 +7445,7 @@ saxes@^5.0.0:
dependencies:
xmlchars "^2.2.0"
-scheduler@0.19.1, scheduler@^0.19.1:
+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==
@@ -7467,7 +7453,15 @@ scheduler@0.19.1, scheduler@^0.19.1:
loose-envify "^1.1.0"
object-assign "^4.1.1"
-"semver@2 || 3 || 4 || 5", semver@^5.1.0, semver@^5.4.1, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0:
+scheduler@^0.20.1:
+ version "0.20.2"
+ resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.20.2.tgz#4baee39436e34aa93b4874bddcbf0fe8b8b50e91"
+ integrity sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==
+ dependencies:
+ loose-envify "^1.1.0"
+ object-assign "^4.1.1"
+
+"semver@2 || 3 || 4 || 5", semver@^5.4.1, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0:
version "5.7.1"
resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7"
integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==
@@ -7594,6 +7588,15 @@ shell-utils@^1.0.9:
dependencies:
lodash "4.x.x"
+shelljs@^0.8.4:
+ version "0.8.4"
+ resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.8.4.tgz#de7684feeb767f8716b326078a8a00875890e3c2"
+ integrity sha512-7gk3UZ9kOfPLIAbslLzyWeGiEqx9e3rxwZM0KE6EL8GlGwjym9Mrlx5/p33bWTu9YG6vcS4MBxYZDHYr5lr8BQ==
+ dependencies:
+ glob "^7.0.0"
+ interpret "^1.0.0"
+ rechoir "^0.6.2"
+
shellwords@^0.1.1:
version "0.1.1"
resolved "https://registry.yarnpkg.com/shellwords/-/shellwords-0.1.1.tgz#d6b9181c1a48d397324c84871efbcfc73fc0654b"
@@ -7628,16 +7631,11 @@ simple-swizzle@^0.2.2:
dependencies:
is-arrayish "^0.3.1"
-sisteransi@^1.0.4:
+sisteransi@^1.0.4, sisteransi@^1.0.5:
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"
- integrity sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==
-
slash@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634"
@@ -7652,11 +7650,6 @@ slice-ansi@^2.0.0, slice-ansi@^2.1.0:
astral-regex "^1.0.0"
is-fullwidth-code-point "^2.0.0"
-slide@^1.1.5:
- version "1.1.6"
- resolved "https://registry.yarnpkg.com/slide/-/slide-1.1.6.tgz#56eb027d65b4d2dce6cb2e2d32c4d4afc9e1d707"
- integrity sha1-VusCfWW00tzmyy4tMsTUr8nh1wc=
-
sn-textview@standardnotes/sn-textview#14cd6fded5c746569a9c6c365d2edc41913811bb:
version "1.0.1"
resolved "https://codeload.github.com/standardnotes/sn-textview/tar.gz/14cd6fded5c746569a9c6c365d2edc41913811bb"
@@ -7800,11 +7793,6 @@ stack-generator@^2.0.3:
dependencies:
stackframe "^1.1.1"
-stack-utils@^1.0.1:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-1.0.2.tgz#33eba3897788558bebfc2db059dc158ec36cebb8"
- integrity sha512-MTX+MeG5U994cazkjd/9KNAapsHnibjMLnfXodlkXw76JEea0UiNzrqidzo1emMwk7w5Qhc9jd4Bn9TBb1MFwA==
-
stack-utils@^2.0.2:
version "2.0.2"
resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-2.0.2.tgz#5cf48b4557becb4638d0bc4f21d23f5d19586593"
@@ -7864,14 +7852,6 @@ string-length@^4.0.1:
char-regex "^1.0.2"
strip-ansi "^6.0.0"
-string-width@^2.1.0:
- version "2.1.1"
- resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e"
- integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==
- dependencies:
- is-fullwidth-code-point "^2.0.0"
- strip-ansi "^4.0.0"
-
string-width@^3.0.0, string-width@^3.1.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961"
@@ -7940,13 +7920,6 @@ string_decoder@~1.1.1:
dependencies:
safe-buffer "~5.1.0"
-strip-ansi@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f"
- integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8=
- dependencies:
- ansi-regex "^3.0.0"
-
strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0:
version "5.2.0"
resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae"
@@ -8055,11 +8028,6 @@ supports-hyperlinks@^2.0.0:
has-flag "^4.0.0"
supports-color "^7.0.0"
-symbol-observable@1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.0.1.tgz#8340fc4702c3122df5d22288f88283f513d3fdd4"
- integrity sha1-g0D8RwLDEi310iKI+IKD9RPT/dQ=
-
symbol-tree@^3.2.4:
version "3.2.4"
resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2"
@@ -8100,6 +8068,13 @@ temp@0.8.3:
os-tmpdir "^1.0.0"
rimraf "~2.2.6"
+temp@^0.8.1:
+ version "0.8.4"
+ resolved "https://registry.yarnpkg.com/temp/-/temp-0.8.4.tgz#8c97a33a4770072e0a05f919396c7665a7dd59f2"
+ integrity sha512-s0ZZzd0BzYv5tLSptZooSjK8oj6C+c19p7Vqta9+6NPOf7r+fxq0cJe6/oN4LTC79sy5NY8ucOJNgwsKCSbfqg==
+ dependencies:
+ rimraf "~2.6.2"
+
tempfile@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/tempfile/-/tempfile-2.0.0.tgz#6b0446856a9b1114d1856ffcbe509cccb0977265"
@@ -8130,17 +8105,12 @@ text-table@^0.2.0:
resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4"
integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=
-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:
+through2@^2.0.1:
version "2.0.5"
resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd"
integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==
@@ -8148,23 +8118,6 @@ through2@^2.0.0, through2@^2.0.1:
readable-stream "~2.3.6"
xtend "~4.0.1"
-through@^2.3.6:
- version "2.3.8"
- resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5"
- integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=
-
-time-stamp@^1.0.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/time-stamp/-/time-stamp-1.1.0.tgz#764a5a11af50561921b133f3b44e618687e0f5c3"
- integrity sha1-dkpaEa9QVhkhsTPztE5hhofg9cM=
-
-tmp@^0.0.33:
- version "0.0.33"
- resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9"
- integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==
- dependencies:
- os-tmpdir "~1.0.2"
-
tmpl@1.0.x:
version "1.0.4"
resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.4.tgz#23640dd7b42d00433911140820e5cf440e521dd1"
@@ -8258,6 +8211,11 @@ tslib@^1.8.1, tslib@^1.9.0:
resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.13.0.tgz#c881e13cc7015894ed914862d276436fa9a47043"
integrity sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==
+tslib@^2.0.1:
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.2.0.tgz#fb2c475977e35e241311ede2693cee1ec6698f5c"
+ integrity sha512-gS9GVHRU+RGn5KQM2rllAlR3dU6m7AcpJKdtH8gFvQiC4Otgk98XnmMU+nZenHt/+VhnBPWwgrJsyrdcw6i23w==
+
tsutils@^3.17.1:
version "3.17.1"
resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.17.1.tgz#ed719917f11ca0dee586272b2ac49e015a2dd759"
@@ -8590,11 +8548,6 @@ word-wrap@^1.2.3, word-wrap@~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=
-
wrap-ansi@^5.1.0:
version "5.1.0"
resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-5.1.0.tgz#1fd1f67235d5b6d0fee781056001bfb694c03b09"
@@ -8618,14 +8571,14 @@ wrappy@1:
resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=
-write-file-atomic@^1.2.0:
- version "1.3.4"
- resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-1.3.4.tgz#f807a4f0b1d9e913ae7a48112e6cc3af1991b45f"
- integrity sha1-+Aek8LHZ6ROuekgRLmzDrxmRtF8=
+write-file-atomic@^2.3.0:
+ version "2.4.3"
+ resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-2.4.3.tgz#1fd2e9ae1df3e75b8d8c367443c692d4ca81f481"
+ integrity sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==
dependencies:
graceful-fs "^4.1.11"
imurmurhash "^0.1.4"
- slide "^1.1.5"
+ signal-exit "^3.0.2"
write-file-atomic@^3.0.0:
version "3.0.3"
@@ -8661,6 +8614,13 @@ ws@^3.3.1:
safe-buffer "~5.1.0"
ultron "~1.1.0"
+ws@^6.1.4:
+ version "6.2.1"
+ resolved "https://registry.yarnpkg.com/ws/-/ws-6.2.1.tgz#442fdf0a47ed64f59b6a5d8ff130f4748ed524fb"
+ integrity sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA==
+ dependencies:
+ async-limiter "~1.0.0"
+
ws@^7, ws@^7.2.3:
version "7.3.1"
resolved "https://registry.yarnpkg.com/ws/-/ws-7.3.1.tgz#d0547bf67f7ce4f12a72dfe31262c68d7dc551c8"
@@ -8701,11 +8661,6 @@ xmldom@0.1.x:
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"
- resolved "https://registry.yarnpkg.com/xpipe/-/xpipe-1.0.5.tgz#8dd8bf45fc3f7f55f0e054b878f43a62614dafdf"
- integrity sha1-jdi/Rfw/f1Xw4FS4ePQ6YmFNr98=
-
xtend@~4.0.1:
version "4.0.2"
resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54"
@@ -8777,7 +8732,7 @@ yargs@^13.0.0, yargs@^13.3.0:
y18n "^4.0.0"
yargs-parser "^13.1.2"
-yargs@^14.2.0, yargs@^14.2.3:
+yargs@^14.2.3:
version "14.2.3"
resolved "https://registry.yarnpkg.com/yargs/-/yargs-14.2.3.tgz#1a1c3edced1afb2a2fea33604bc6d1d8d688a414"
integrity sha512-ZbotRWhF+lkjijC/VhmOT9wSgyBQ7+zr13+YLkhfsSiTriYsMzkTUFP18pFhWwBeMa5gUc1MzbhrO6/VB7c9Xg==