chore: major deps (#574)

* chore: upgrade core rn dep

* chore: move rn document picker to main deps

* chore: upgrade dev deps

* chore: upgrade rnsodium

* chore: upgrade styled-components

* chore: upgrade rn doc picker

* chore: upgrade react navigation

* chore: upgrade sntextview and react-native-aes

* chore: update static server patch file

* chore: fix types

* chore: upgrade snjs deps

* chore: lint

* chore: bump version
This commit is contained in:
Mo
2022-03-19 10:29:38 -05:00
committed by GitHub
parent 20c6b3f52b
commit 2ae277f594
66 changed files with 3510 additions and 4218 deletions

2
.bundle/config Normal file
View File

@@ -0,0 +1,2 @@
BUNDLE_PATH: "vendor/bundle"
BUNDLE_FORCE_RUBY_PLATFORM: 1

View File

@@ -1,28 +1,23 @@
{
"name": "SN Mobile container",
"build": {
"dockerfile": "Dockerfile",
// Update 'VARIANT' to pick a Node version: 10, 12, 14
"args": { "VARIANT": "14" }
},
"name": "SN Mobile container",
"build": {
"dockerfile": "Dockerfile",
// Update 'VARIANT' to pick a Node version: 10, 12, 14
"args": { "VARIANT": "14" }
},
// Set *default* container specific settings.json values on container create.
"settings": {
"terminal.integrated.shell.linux": "/bin/bash"
},
// Add the IDs of extensions you want installed when the container is created.
"extensions": [
"dbaeumer.vscode-eslint",
"jpoissonnier.vscode-styled-components"
],
// Add the IDs of extensions you want installed when the container is created.
"extensions": [
"dbaeumer.vscode-eslint",
"jpoissonnier.vscode-styled-components"
],
// Use 'forwardPorts' to make a list of ports inside the container available locally.
// "forwardPorts": [],
// Use 'forwardPorts' to make a list of ports inside the container available locally.
// "forwardPorts": [],
// Use 'postCreateCommand' to run commands after the container is created.
"postCreateCommand": "yarn install"
// Use 'postCreateCommand' to run commands after the container is created.
"postCreateCommand": "yarn install",
// Uncomment to connect as a non-root user. See https://aka.ms/vscode-remote/containers/non-root.
// "remoteUser": "node"
// Uncomment to connect as a non-root user. See https://aka.ms/vscode-remote/containers/non-root.
// "remoteUser": "node"
}

View File

@@ -1,11 +1,19 @@
module.exports = {
root: true,
extends: '@react-native-community',
extends: ['@react-native-community', 'prettier'],
parser: '@typescript-eslint/parser',
plugins: ['@typescript-eslint'],
overrides: [
{
files: ['*.ts', '*.tsx'],
rules: {
'@typescript-eslint/no-shadow': ['error'],
'no-shadow': 'off',
'no-undef': 'off',
},
},
],
rules: {
'prettier/prettier': 'warn',
'no-shadow': 'off',
'@typescript-eslint/no-shadow': ['error'],
},
};

65
.flowconfig Normal file
View File

@@ -0,0 +1,65 @@
[ignore]
; We fork some components by platform
.*/*[.]android.js
; Ignore "BUCK" generated dirs
<PROJECT_ROOT>/\.buckd/
; Ignore polyfills
node_modules/react-native/Libraries/polyfills/.*
; Flow doesn't support platforms
.*/Libraries/Utilities/LoadingView.js
[untyped]
.*/node_modules/@react-native-community/cli/.*/.*
[include]
[libs]
node_modules/react-native/interface.js
node_modules/react-native/flow/
[options]
emoji=true
exact_by_default=true
format.bracket_spacing=false
module.file_ext=.js
module.file_ext=.json
module.file_ext=.ios.js
munge_underscores=true
module.name_mapper='^react-native/\(.*\)$' -> '<PROJECT_ROOT>/node_modules/react-native/\1'
module.name_mapper='^@?[./a-zA-Z0-9$_-]+\.\(bmp\|gif\|jpg\|jpeg\|png\|psd\|svg\|webp\|m4v\|mov\|mp4\|mpeg\|mpg\|webm\|aac\|aiff\|caf\|m4a\|mp3\|wav\|html\|pdf\)$' -> '<PROJECT_ROOT>/node_modules/react-native/Libraries/Image/RelativeImageStub'
suppress_type=$FlowIssue
suppress_type=$FlowFixMe
suppress_type=$FlowFixMeProps
suppress_type=$FlowFixMeState
[lints]
sketchy-null-number=warn
sketchy-null-mixed=warn
sketchy-number=warn
untyped-type-import=warn
nonstrict-import=warn
deprecated-type=warn
unsafe-getters-setters=warn
unnecessary-invariant=warn
signature-verification-failure=warn
[strict]
deprecated-type
nonstrict-import
sketchy-null
unclear-type
unsafe-getters-setters
untyped-import
untyped-type-import
[version]
^0.162.0

2
.gitattributes vendored
View File

@@ -1,2 +0,0 @@
# specific for windows script files
*.bat text eol=crlf

2
.gitignore vendored
View File

@@ -74,3 +74,5 @@ ios-release.bundle.map
/android/*.hprof
codeqldb
vendor/bundle

View File

@@ -1,7 +1,6 @@
module.exports = {
arrowParens: 'avoid',
bracketSpacing: true,
jsxBracketSameLine: false,
jsxSingleQuote: false,
printWidth: 80,
quoteProps: 'as-needed',

1
.ruby-version Normal file
View File

@@ -0,0 +1 @@
2.7.4

View File

@@ -4,6 +4,10 @@
source "https://rubygems.org"
# You may use http://rbenv.org/ or https://rvm.io/ to install and use this version
ruby '2.7.4'
gem 'cocoapods', '~> 1.11', '>= 1.11.2'
gem 'fastlane'
gem 'fastlane-plugin-bundletool'
gem 'xcode-install'

View File

@@ -3,8 +3,17 @@ GEM
specs:
CFPropertyList (3.0.5)
rexml
activesupport (6.1.5)
concurrent-ruby (~> 1.0, >= 1.0.2)
i18n (>= 1.6, < 2)
minitest (>= 5.1)
tzinfo (~> 2.0)
zeitwerk (~> 2.3)
addressable (2.8.0)
public_suffix (>= 2.0.2, < 5.0)
algoliasearch (1.27.5)
httpclient (~> 2.8, >= 2.8.3)
json (>= 1.5.1)
artifactory (3.0.15)
atomos (0.1.3)
aws-eventstream (1.2.0)
@@ -25,10 +34,48 @@ GEM
aws-eventstream (~> 1, >= 1.0.2)
babosa (1.0.4)
claide (1.0.3)
cocoapods (1.11.3)
addressable (~> 2.8)
claide (>= 1.0.2, < 2.0)
cocoapods-core (= 1.11.3)
cocoapods-deintegrate (>= 1.0.3, < 2.0)
cocoapods-downloader (>= 1.4.0, < 2.0)
cocoapods-plugins (>= 1.0.0, < 2.0)
cocoapods-search (>= 1.0.0, < 2.0)
cocoapods-trunk (>= 1.4.0, < 2.0)
cocoapods-try (>= 1.1.0, < 2.0)
colored2 (~> 3.1)
escape (~> 0.0.4)
fourflusher (>= 2.3.0, < 3.0)
gh_inspector (~> 1.0)
molinillo (~> 0.8.0)
nap (~> 1.0)
ruby-macho (>= 1.0, < 3.0)
xcodeproj (>= 1.21.0, < 2.0)
cocoapods-core (1.11.3)
activesupport (>= 5.0, < 7)
addressable (~> 2.8)
algoliasearch (~> 1.0)
concurrent-ruby (~> 1.1)
fuzzy_match (~> 2.0.4)
nap (~> 1.0)
netrc (~> 0.11)
public_suffix (~> 4.0)
typhoeus (~> 1.0)
cocoapods-deintegrate (1.0.5)
cocoapods-downloader (1.5.1)
cocoapods-plugins (1.0.0)
nap
cocoapods-search (1.0.1)
cocoapods-trunk (1.6.0)
nap (>= 0.8, < 2.0)
netrc (~> 0.11)
cocoapods-try (1.2.0)
colored (1.2)
colored2 (3.1.2)
commander (4.6.0)
highline (~> 2.0.0)
concurrent-ruby (1.1.9)
declarative (0.0.20)
digest-crc (0.6.4)
rake (>= 12.0.0, < 14.0.0)
@@ -36,6 +83,9 @@ GEM
unf (>= 0.0.5, < 1.0.0)
dotenv (2.7.6)
emoji_regex (3.2.3)
escape (0.0.4)
ethon (0.15.0)
ffi (>= 1.15.0)
excon (0.89.0)
faraday (1.8.0)
faraday-em_http (~> 1.0)
@@ -101,13 +151,11 @@ GEM
xcodeproj (>= 1.13.0, < 2.0.0)
xcpretty (~> 0.3.0)
xcpretty-travis-formatter (>= 0.0.3)
fastlane-plugin-bugsnag (2.2.0)
git
xml-simple
fastlane-plugin-bundletool (1.0.4)
ffi (1.15.5)
fourflusher (2.3.1)
fuzzy_match (2.0.4)
gh_inspector (1.1.3)
git (1.10.0)
rchardet (~> 1.8)
google-apis-androidpublisher_v3 (0.14.0)
google-apis-core (>= 0.4, < 2.a)
google-apis-core (0.4.1)
@@ -150,22 +198,27 @@ GEM
http-cookie (1.0.4)
domain_name (~> 0.5)
httpclient (2.8.3)
i18n (1.10.0)
concurrent-ruby (~> 1.0)
jmespath (1.4.0)
json (2.6.1)
jwt (2.3.0)
memoist (0.16.2)
mini_magick (4.11.0)
mini_mime (1.1.2)
minitest (5.15.0)
molinillo (0.8.0)
multi_json (1.15.0)
multipart-post (2.0.0)
nanaimo (0.3.0)
nap (1.1.0)
naturally (2.2.1)
netrc (0.11.0)
optparse (0.1.1)
os (1.1.4)
plist (3.6.0)
public_suffix (4.0.6)
rake (13.0.6)
rchardet (1.8.0)
representable (3.1.1)
declarative (< 0.1.0)
trailblazer-option (>= 0.1.1, < 0.2.0)
@@ -173,6 +226,7 @@ GEM
retriable (3.1.2)
rexml (3.2.5)
rouge (2.0.7)
ruby-macho (2.5.1)
ruby2_keywords (0.0.5)
rubyzip (2.3.2)
security (0.1.3)
@@ -192,6 +246,10 @@ GEM
tty-screen (0.8.1)
tty-spinner (0.9.3)
tty-cursor (~> 0.7)
typhoeus (1.4.0)
ethon (>= 0.9.0)
tzinfo (2.0.4)
concurrent-ruby (~> 1.0)
uber (0.1.0)
unf (0.1.4)
unf_ext
@@ -213,18 +271,19 @@ GEM
rouge (~> 2.0.7)
xcpretty-travis-formatter (1.0.1)
xcpretty (~> 0.2, >= 0.0.7)
xml-simple (1.1.9)
rexml
zeitwerk (2.5.4)
PLATFORMS
ruby
x86_64-darwin-18
DEPENDENCIES
cocoapods (~> 1.11, >= 1.11.2)
fastlane
fastlane-plugin-bugsnag
fastlane-plugin-bundletool
xcode-install
RUBY VERSION
ruby 2.7.4p191
BUNDLED WITH
2.2.2

View File

@@ -120,7 +120,7 @@ def jscFlavor = 'org.webkit:android-jsc:+'
/**
* Whether to enable the Hermes VM.
*
* This should be set on project.ext.react and mirrored here. If it is not set
* This should be set on project.ext.react and that value will be read here. If it is not set
* on project.ext.react, JavaScript will not be compiled to Hermes Bytecode
* and the benefits of using Hermes will therefore be sharply reduced.
*/
@@ -228,6 +228,7 @@ dependencies {
implementation 'androidx.appcompat:appcompat:1.1.0-rc01'
implementation 'androidx.swiperefreshlayout:swiperefreshlayout:1.1.0-alpha02'
implementation 'de.undercouch:gradle-download-task:5.0.2'
debugImplementation("com.facebook.flipper:flipper:${FLIPPER_VERSION}") {
exclude group:'com.facebook.fbjni'

View File

@@ -1,6 +1,6 @@
#Thu Nov 09 11:32:04 CST 2017
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-7.2-all.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-5.4.1-all.zip
zipStorePath=wrapper/dists

View File

@@ -21,6 +21,9 @@
-keep,allowobfuscation @interface com.facebook.proguard.annotations.KeepGettersAndSetters
-keep,allowobfuscation @interface com.facebook.common.internal.DoNotStrip
-keep class com.swmansion.reanimated.** { *; }
-keep class com.facebook.react.turbomodule.** { *; }
# Do not strip any method/class that is annotated with @DoNotStrip
-keep @com.facebook.proguard.annotations.DoNotStrip class *
-keep @com.facebook.common.internal.DoNotStrip class *

View File

@@ -0,0 +1,29 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2014 The Android Open Source Project
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<inset xmlns:android="http://schemas.android.com/apk/res/android"
android:insetLeft="@dimen/abc_edit_text_inset_horizontal_material"
android:insetRight="@dimen/abc_edit_text_inset_horizontal_material"
android:insetTop="@dimen/abc_edit_text_inset_top_material"
android:insetBottom="@dimen/abc_edit_text_inset_bottom_material">
<selector>
<!--
This file is a copy of abc_edit_text_material (https://bit.ly/3k8fX7I).
The item below with state_pressed="false" and state_focused="false" causes a NullPointerException.
NullPointerException:tempt to invoke virtual method 'android.graphics.drawable.Drawable android.graphics.drawable.Drawable$ConstantState.newDrawable(android.content.res.Resources)'
<item android:state_pressed="false" android:state_focused="false" android:drawable="@drawable/abc_textfield_default_mtrl_alpha"/>
For more info, see https://bit.ly/3CdLStv (react-native/pull/29452) and https://bit.ly/3nxOMoR.
-->
<item android:state_enabled="false" android:drawable="@drawable/abc_textfield_default_mtrl_alpha"/>
<item android:drawable="@drawable/abc_textfield_activated_mtrl_alpha"/>
</selector>
</inset>

View File

@@ -4,6 +4,7 @@
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<!-- Customize your theme here. -->
<item name="android:windowBackground">@color/background</item>
<item name="android:editTextBackground">@drawable/rn_edit_text_material</item>
</style>
</resources>

View File

@@ -1,7 +1,7 @@
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
ext.kotlinVersion = '1.3.50'
ext.kotlinVersion = '1.5.20'
ext {
buildToolsVersion = "30.0.3"
@@ -18,8 +18,9 @@ buildscript {
jcenter()
}
dependencies {
classpath('com.android.tools.build:gradle:4.2.2')
classpath('com.android.tools.build:gradle:7.1.2')
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlinVersion"
classpath 'de.undercouch:gradle-download-task:5.0.2'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
@@ -28,8 +29,6 @@ buildscript {
allprojects {
repositories {
mavenCentral()
mavenLocal()
maven {
// All of React Native (JS, Obj-C sources, Android binaries) is installed from npm
url("$rootDir/../node_modules/react-native/android")
@@ -38,6 +37,13 @@ allprojects {
// Android JSC is installed from npm
url("$rootDir/../node_modules/jsc-android/dist")
}
mavenCentral {
// We don't want to fetch react-native from Maven Central as there are
// older versions over there.
content {
excludeGroup "com.facebook.react"
}
}
google()
jcenter()
maven {

View File

@@ -9,7 +9,7 @@
# Specifies the JVM arguments used for the daemon process.
# The setting is particularly useful for tweaking memory settings.
# Default value: -Xmx10248m -XX:MaxPermSize=256m
# Default value: -Xmx1024m -XX:MaxPermSize=256m
# org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
# When configured, Gradle will run in incubating parallel mode.

View File

@@ -1,5 +1,5 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-6.9-all.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-7.2-all.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists

View File

@@ -1,3 +1,4 @@
module.exports = {
presets: ['module:metro-react-native-babel-preset'],
plugins: ['react-native-reanimated/plugin'],
};

View File

@@ -1,8 +1,9 @@
const faker = require('faker');
import { by, device, element, expect, waitFor } from 'detox';
import Detox, { by, device, element, expect, waitFor } from 'detox';
// eslint-disable-next-line no-undef
export const expectToBeVisible = async (testedElement: Detox.DetoxAny) => {
export const expectToBeVisible = async (
testedElement: Detox.IndexableNativeElement
) => {
try {
await expect(testedElement).toBeVisible();
return true;
@@ -13,13 +14,10 @@ export const expectToBeVisible = async (testedElement: Detox.DetoxAny) => {
const checkAfterReinstall = async () => {
if (device.getPlatform() === 'ios') {
let alertVisible = await expectToBeVisible(
element(
by
.label('Delete Local Data')
.and(by.type('_UIAlertControllerActionView'))
)
const alertElement = element(
by.label('Delete Local Data').and(by.type('_UIAlertControllerActionView'))
);
let alertVisible = await expectToBeVisible(alertElement);
if (alertVisible) {
await element(
by
@@ -59,5 +57,5 @@ export const openComposeNewNoteScreen = async () => {
export const randomCredentials = {
email: faker.internet.exampleEmail(),
password: faker.internet.password(),
syncServerUrl: 'https://app-dev.standardnotes.org',
syncServerUrl: 'https://app-dev.standardnotes.com',
};

View File

@@ -1,34 +0,0 @@
// import { openComposeNewNoteScreen } from '../../helpers';
// import faker from 'faker';
// import { element, by, expect, waitFor } from 'detox';
// describe('Compose', () => {
// describe('Form', () => {
// // beforeAll(async () => {
// // await openComposeNewNoteScreen();
// // });
// // it('should have the "Title" and "Content" fields visible', async () => {
// // await expect(element(by.id('noteTitleField'))).toBeVisible();
// // await expect(element(by.id('noteContentField'))).toBeVisible();
// // });
// // it('should have the back button visible', async () => {
// // await expect(element(by.id('headerButton'))).toBeVisible();
// // });
// // });
// // describe('New note', () => {
// // it('should be created with only the "Title"', async () => {
// // const noteTitle = faker.random.word();
// // await element(by.id('noteTitleField')).typeText(noteTitle);
// // await waitFor(element(by.id('noteTitleField')))
// // .toHaveText(noteTitle)
// // .withTimeout(2000);
// // });
// // afterEach(async () => {
// // await element(by.id('headerButton')).tap();
// // });
// // });
// });

View File

@@ -2,14 +2,14 @@ PODS:
- boost (1.76.0)
- CocoaAsyncSocket (7.6.5)
- DoubleConversion (1.1.6)
- FBLazyVector (0.66.4)
- FBReactNativeSpec (0.66.4):
- FBLazyVector (0.67.4)
- FBReactNativeSpec (0.67.4):
- RCT-Folly (= 2021.06.28.00-v2)
- RCTRequired (= 0.66.4)
- RCTTypeSafety (= 0.66.4)
- React-Core (= 0.66.4)
- React-jsi (= 0.66.4)
- ReactCommon/turbomodule/core (= 0.66.4)
- RCTRequired (= 0.67.4)
- RCTTypeSafety (= 0.67.4)
- React-Core (= 0.67.4)
- React-jsi (= 0.67.4)
- ReactCommon/turbomodule/core (= 0.67.4)
- Flipper (0.99.0):
- Flipper-Folly (~> 2.6)
- Flipper-RSocket (~> 1.4)
@@ -88,318 +88,350 @@ PODS:
- DoubleConversion
- fmt (~> 6.2.1)
- glog
- RCTRequired (0.66.4)
- RCTTypeSafety (0.66.4):
- FBLazyVector (= 0.66.4)
- RCTRequired (0.67.4)
- RCTTypeSafety (0.67.4):
- FBLazyVector (= 0.67.4)
- RCT-Folly (= 2021.06.28.00-v2)
- RCTRequired (= 0.66.4)
- React-Core (= 0.66.4)
- React (0.66.4):
- React-Core (= 0.66.4)
- React-Core/DevSupport (= 0.66.4)
- React-Core/RCTWebSocket (= 0.66.4)
- React-RCTActionSheet (= 0.66.4)
- React-RCTAnimation (= 0.66.4)
- React-RCTBlob (= 0.66.4)
- React-RCTImage (= 0.66.4)
- React-RCTLinking (= 0.66.4)
- React-RCTNetwork (= 0.66.4)
- React-RCTSettings (= 0.66.4)
- React-RCTText (= 0.66.4)
- React-RCTVibration (= 0.66.4)
- React-callinvoker (0.66.4)
- React-Core (0.66.4):
- RCTRequired (= 0.67.4)
- React-Core (= 0.67.4)
- React (0.67.4):
- React-Core (= 0.67.4)
- React-Core/DevSupport (= 0.67.4)
- React-Core/RCTWebSocket (= 0.67.4)
- React-RCTActionSheet (= 0.67.4)
- React-RCTAnimation (= 0.67.4)
- React-RCTBlob (= 0.67.4)
- React-RCTImage (= 0.67.4)
- React-RCTLinking (= 0.67.4)
- React-RCTNetwork (= 0.67.4)
- React-RCTSettings (= 0.67.4)
- React-RCTText (= 0.67.4)
- React-RCTVibration (= 0.67.4)
- React-callinvoker (0.67.4)
- React-Core (0.67.4):
- glog
- RCT-Folly (= 2021.06.28.00-v2)
- React-Core/Default (= 0.66.4)
- React-cxxreact (= 0.66.4)
- React-jsi (= 0.66.4)
- React-jsiexecutor (= 0.66.4)
- React-perflogger (= 0.66.4)
- React-Core/Default (= 0.67.4)
- React-cxxreact (= 0.67.4)
- React-jsi (= 0.67.4)
- React-jsiexecutor (= 0.67.4)
- React-perflogger (= 0.67.4)
- Yoga
- React-Core/CoreModulesHeaders (0.66.4):
- React-Core/CoreModulesHeaders (0.67.4):
- glog
- RCT-Folly (= 2021.06.28.00-v2)
- React-Core/Default
- React-cxxreact (= 0.66.4)
- React-jsi (= 0.66.4)
- React-jsiexecutor (= 0.66.4)
- React-perflogger (= 0.66.4)
- React-cxxreact (= 0.67.4)
- React-jsi (= 0.67.4)
- React-jsiexecutor (= 0.67.4)
- React-perflogger (= 0.67.4)
- Yoga
- React-Core/Default (0.66.4):
- React-Core/Default (0.67.4):
- glog
- RCT-Folly (= 2021.06.28.00-v2)
- React-cxxreact (= 0.66.4)
- React-jsi (= 0.66.4)
- React-jsiexecutor (= 0.66.4)
- React-perflogger (= 0.66.4)
- React-cxxreact (= 0.67.4)
- React-jsi (= 0.67.4)
- React-jsiexecutor (= 0.67.4)
- React-perflogger (= 0.67.4)
- Yoga
- React-Core/DevSupport (0.66.4):
- React-Core/DevSupport (0.67.4):
- glog
- RCT-Folly (= 2021.06.28.00-v2)
- React-Core/Default (= 0.66.4)
- React-Core/RCTWebSocket (= 0.66.4)
- React-cxxreact (= 0.66.4)
- React-jsi (= 0.66.4)
- React-jsiexecutor (= 0.66.4)
- React-jsinspector (= 0.66.4)
- React-perflogger (= 0.66.4)
- React-Core/Default (= 0.67.4)
- React-Core/RCTWebSocket (= 0.67.4)
- React-cxxreact (= 0.67.4)
- React-jsi (= 0.67.4)
- React-jsiexecutor (= 0.67.4)
- React-jsinspector (= 0.67.4)
- React-perflogger (= 0.67.4)
- Yoga
- React-Core/RCTActionSheetHeaders (0.66.4):
- React-Core/RCTActionSheetHeaders (0.67.4):
- glog
- RCT-Folly (= 2021.06.28.00-v2)
- React-Core/Default
- React-cxxreact (= 0.66.4)
- React-jsi (= 0.66.4)
- React-jsiexecutor (= 0.66.4)
- React-perflogger (= 0.66.4)
- React-cxxreact (= 0.67.4)
- React-jsi (= 0.67.4)
- React-jsiexecutor (= 0.67.4)
- React-perflogger (= 0.67.4)
- Yoga
- React-Core/RCTAnimationHeaders (0.66.4):
- React-Core/RCTAnimationHeaders (0.67.4):
- glog
- RCT-Folly (= 2021.06.28.00-v2)
- React-Core/Default
- React-cxxreact (= 0.66.4)
- React-jsi (= 0.66.4)
- React-jsiexecutor (= 0.66.4)
- React-perflogger (= 0.66.4)
- React-cxxreact (= 0.67.4)
- React-jsi (= 0.67.4)
- React-jsiexecutor (= 0.67.4)
- React-perflogger (= 0.67.4)
- Yoga
- React-Core/RCTBlobHeaders (0.66.4):
- React-Core/RCTBlobHeaders (0.67.4):
- glog
- RCT-Folly (= 2021.06.28.00-v2)
- React-Core/Default
- React-cxxreact (= 0.66.4)
- React-jsi (= 0.66.4)
- React-jsiexecutor (= 0.66.4)
- React-perflogger (= 0.66.4)
- React-cxxreact (= 0.67.4)
- React-jsi (= 0.67.4)
- React-jsiexecutor (= 0.67.4)
- React-perflogger (= 0.67.4)
- Yoga
- React-Core/RCTImageHeaders (0.66.4):
- React-Core/RCTImageHeaders (0.67.4):
- glog
- RCT-Folly (= 2021.06.28.00-v2)
- React-Core/Default
- React-cxxreact (= 0.66.4)
- React-jsi (= 0.66.4)
- React-jsiexecutor (= 0.66.4)
- React-perflogger (= 0.66.4)
- React-cxxreact (= 0.67.4)
- React-jsi (= 0.67.4)
- React-jsiexecutor (= 0.67.4)
- React-perflogger (= 0.67.4)
- Yoga
- React-Core/RCTLinkingHeaders (0.66.4):
- React-Core/RCTLinkingHeaders (0.67.4):
- glog
- RCT-Folly (= 2021.06.28.00-v2)
- React-Core/Default
- React-cxxreact (= 0.66.4)
- React-jsi (= 0.66.4)
- React-jsiexecutor (= 0.66.4)
- React-perflogger (= 0.66.4)
- React-cxxreact (= 0.67.4)
- React-jsi (= 0.67.4)
- React-jsiexecutor (= 0.67.4)
- React-perflogger (= 0.67.4)
- Yoga
- React-Core/RCTNetworkHeaders (0.66.4):
- React-Core/RCTNetworkHeaders (0.67.4):
- glog
- RCT-Folly (= 2021.06.28.00-v2)
- React-Core/Default
- React-cxxreact (= 0.66.4)
- React-jsi (= 0.66.4)
- React-jsiexecutor (= 0.66.4)
- React-perflogger (= 0.66.4)
- React-cxxreact (= 0.67.4)
- React-jsi (= 0.67.4)
- React-jsiexecutor (= 0.67.4)
- React-perflogger (= 0.67.4)
- Yoga
- React-Core/RCTSettingsHeaders (0.66.4):
- React-Core/RCTSettingsHeaders (0.67.4):
- glog
- RCT-Folly (= 2021.06.28.00-v2)
- React-Core/Default
- React-cxxreact (= 0.66.4)
- React-jsi (= 0.66.4)
- React-jsiexecutor (= 0.66.4)
- React-perflogger (= 0.66.4)
- React-cxxreact (= 0.67.4)
- React-jsi (= 0.67.4)
- React-jsiexecutor (= 0.67.4)
- React-perflogger (= 0.67.4)
- Yoga
- React-Core/RCTTextHeaders (0.66.4):
- React-Core/RCTTextHeaders (0.67.4):
- glog
- RCT-Folly (= 2021.06.28.00-v2)
- React-Core/Default
- React-cxxreact (= 0.66.4)
- React-jsi (= 0.66.4)
- React-jsiexecutor (= 0.66.4)
- React-perflogger (= 0.66.4)
- React-cxxreact (= 0.67.4)
- React-jsi (= 0.67.4)
- React-jsiexecutor (= 0.67.4)
- React-perflogger (= 0.67.4)
- Yoga
- React-Core/RCTVibrationHeaders (0.66.4):
- React-Core/RCTVibrationHeaders (0.67.4):
- glog
- RCT-Folly (= 2021.06.28.00-v2)
- React-Core/Default
- React-cxxreact (= 0.66.4)
- React-jsi (= 0.66.4)
- React-jsiexecutor (= 0.66.4)
- React-perflogger (= 0.66.4)
- React-cxxreact (= 0.67.4)
- React-jsi (= 0.67.4)
- React-jsiexecutor (= 0.67.4)
- React-perflogger (= 0.67.4)
- Yoga
- React-Core/RCTWebSocket (0.66.4):
- React-Core/RCTWebSocket (0.67.4):
- glog
- RCT-Folly (= 2021.06.28.00-v2)
- React-Core/Default (= 0.66.4)
- React-cxxreact (= 0.66.4)
- React-jsi (= 0.66.4)
- React-jsiexecutor (= 0.66.4)
- React-perflogger (= 0.66.4)
- React-Core/Default (= 0.67.4)
- React-cxxreact (= 0.67.4)
- React-jsi (= 0.67.4)
- React-jsiexecutor (= 0.67.4)
- React-perflogger (= 0.67.4)
- Yoga
- React-CoreModules (0.66.4):
- FBReactNativeSpec (= 0.66.4)
- React-CoreModules (0.67.4):
- FBReactNativeSpec (= 0.67.4)
- RCT-Folly (= 2021.06.28.00-v2)
- RCTTypeSafety (= 0.66.4)
- React-Core/CoreModulesHeaders (= 0.66.4)
- React-jsi (= 0.66.4)
- React-RCTImage (= 0.66.4)
- ReactCommon/turbomodule/core (= 0.66.4)
- React-cxxreact (0.66.4):
- RCTTypeSafety (= 0.67.4)
- React-Core/CoreModulesHeaders (= 0.67.4)
- React-jsi (= 0.67.4)
- React-RCTImage (= 0.67.4)
- ReactCommon/turbomodule/core (= 0.67.4)
- React-cxxreact (0.67.4):
- boost (= 1.76.0)
- DoubleConversion
- glog
- RCT-Folly (= 2021.06.28.00-v2)
- React-callinvoker (= 0.66.4)
- React-jsi (= 0.66.4)
- React-jsinspector (= 0.66.4)
- React-logger (= 0.66.4)
- React-perflogger (= 0.66.4)
- React-runtimeexecutor (= 0.66.4)
- React-jsi (0.66.4):
- React-callinvoker (= 0.67.4)
- React-jsi (= 0.67.4)
- React-jsinspector (= 0.67.4)
- React-logger (= 0.67.4)
- React-perflogger (= 0.67.4)
- React-runtimeexecutor (= 0.67.4)
- React-jsi (0.67.4):
- boost (= 1.76.0)
- DoubleConversion
- glog
- RCT-Folly (= 2021.06.28.00-v2)
- React-jsi/Default (= 0.66.4)
- React-jsi/Default (0.66.4):
- React-jsi/Default (= 0.67.4)
- React-jsi/Default (0.67.4):
- boost (= 1.76.0)
- DoubleConversion
- glog
- RCT-Folly (= 2021.06.28.00-v2)
- React-jsiexecutor (0.66.4):
- React-jsiexecutor (0.67.4):
- DoubleConversion
- glog
- RCT-Folly (= 2021.06.28.00-v2)
- React-cxxreact (= 0.66.4)
- React-jsi (= 0.66.4)
- React-perflogger (= 0.66.4)
- React-jsinspector (0.66.4)
- React-logger (0.66.4):
- React-cxxreact (= 0.67.4)
- React-jsi (= 0.67.4)
- React-perflogger (= 0.67.4)
- React-jsinspector (0.67.4)
- React-logger (0.67.4):
- glog
- react-native-aes (1.3.9):
- react-native-aes (1.4.3):
- React-Core
- react-native-document-picker (5.0.4):
- react-native-document-picker (8.0.0):
- React-Core
- react-native-fingerprint-scanner (5.0.0):
- React-Core
- react-native-mail (4.1.0):
- React-Core
- react-native-safe-area-context (3.1.9):
- react-native-pager-view (5.4.15):
- React-Core
- react-native-safe-area-context (4.2.1):
- RCT-Folly
- RCTRequired
- RCTTypeSafety
- React
- ReactCommon/turbomodule/core
- react-native-segmented-control (2.2.2):
- React-Core
- react-native-sodium-jsi (1.1.3):
- react-native-sodium-jsi (1.1.7):
- React-Core
- react-native-static-server (0.5.0):
- GCDWebServer (~> 3.0)
- React
- react-native-version-info (1.1.0):
- react-native-version-info (1.1.1):
- React-Core
- react-native-webview (11.15.0):
- react-native-webview (11.17.2):
- React-Core
- React-perflogger (0.66.4)
- React-RCTActionSheet (0.66.4):
- React-Core/RCTActionSheetHeaders (= 0.66.4)
- React-RCTAnimation (0.66.4):
- FBReactNativeSpec (= 0.66.4)
- React-perflogger (0.67.4)
- React-RCTActionSheet (0.67.4):
- React-Core/RCTActionSheetHeaders (= 0.67.4)
- React-RCTAnimation (0.67.4):
- FBReactNativeSpec (= 0.67.4)
- RCT-Folly (= 2021.06.28.00-v2)
- RCTTypeSafety (= 0.66.4)
- React-Core/RCTAnimationHeaders (= 0.66.4)
- React-jsi (= 0.66.4)
- ReactCommon/turbomodule/core (= 0.66.4)
- React-RCTBlob (0.66.4):
- FBReactNativeSpec (= 0.66.4)
- RCTTypeSafety (= 0.67.4)
- React-Core/RCTAnimationHeaders (= 0.67.4)
- React-jsi (= 0.67.4)
- ReactCommon/turbomodule/core (= 0.67.4)
- React-RCTBlob (0.67.4):
- FBReactNativeSpec (= 0.67.4)
- RCT-Folly (= 2021.06.28.00-v2)
- React-Core/RCTBlobHeaders (= 0.66.4)
- React-Core/RCTWebSocket (= 0.66.4)
- React-jsi (= 0.66.4)
- React-RCTNetwork (= 0.66.4)
- ReactCommon/turbomodule/core (= 0.66.4)
- React-RCTImage (0.66.4):
- FBReactNativeSpec (= 0.66.4)
- React-Core/RCTBlobHeaders (= 0.67.4)
- React-Core/RCTWebSocket (= 0.67.4)
- React-jsi (= 0.67.4)
- React-RCTNetwork (= 0.67.4)
- ReactCommon/turbomodule/core (= 0.67.4)
- React-RCTImage (0.67.4):
- FBReactNativeSpec (= 0.67.4)
- RCT-Folly (= 2021.06.28.00-v2)
- RCTTypeSafety (= 0.66.4)
- React-Core/RCTImageHeaders (= 0.66.4)
- React-jsi (= 0.66.4)
- React-RCTNetwork (= 0.66.4)
- ReactCommon/turbomodule/core (= 0.66.4)
- React-RCTLinking (0.66.4):
- FBReactNativeSpec (= 0.66.4)
- React-Core/RCTLinkingHeaders (= 0.66.4)
- React-jsi (= 0.66.4)
- ReactCommon/turbomodule/core (= 0.66.4)
- React-RCTNetwork (0.66.4):
- FBReactNativeSpec (= 0.66.4)
- RCTTypeSafety (= 0.67.4)
- React-Core/RCTImageHeaders (= 0.67.4)
- React-jsi (= 0.67.4)
- React-RCTNetwork (= 0.67.4)
- ReactCommon/turbomodule/core (= 0.67.4)
- React-RCTLinking (0.67.4):
- FBReactNativeSpec (= 0.67.4)
- React-Core/RCTLinkingHeaders (= 0.67.4)
- React-jsi (= 0.67.4)
- ReactCommon/turbomodule/core (= 0.67.4)
- React-RCTNetwork (0.67.4):
- FBReactNativeSpec (= 0.67.4)
- RCT-Folly (= 2021.06.28.00-v2)
- RCTTypeSafety (= 0.66.4)
- React-Core/RCTNetworkHeaders (= 0.66.4)
- React-jsi (= 0.66.4)
- ReactCommon/turbomodule/core (= 0.66.4)
- React-RCTSettings (0.66.4):
- FBReactNativeSpec (= 0.66.4)
- RCTTypeSafety (= 0.67.4)
- React-Core/RCTNetworkHeaders (= 0.67.4)
- React-jsi (= 0.67.4)
- ReactCommon/turbomodule/core (= 0.67.4)
- React-RCTSettings (0.67.4):
- FBReactNativeSpec (= 0.67.4)
- RCT-Folly (= 2021.06.28.00-v2)
- RCTTypeSafety (= 0.66.4)
- React-Core/RCTSettingsHeaders (= 0.66.4)
- React-jsi (= 0.66.4)
- ReactCommon/turbomodule/core (= 0.66.4)
- React-RCTText (0.66.4):
- React-Core/RCTTextHeaders (= 0.66.4)
- React-RCTVibration (0.66.4):
- FBReactNativeSpec (= 0.66.4)
- RCTTypeSafety (= 0.67.4)
- React-Core/RCTSettingsHeaders (= 0.67.4)
- React-jsi (= 0.67.4)
- ReactCommon/turbomodule/core (= 0.67.4)
- React-RCTText (0.67.4):
- React-Core/RCTTextHeaders (= 0.67.4)
- React-RCTVibration (0.67.4):
- FBReactNativeSpec (= 0.67.4)
- RCT-Folly (= 2021.06.28.00-v2)
- React-Core/RCTVibrationHeaders (= 0.66.4)
- React-jsi (= 0.66.4)
- ReactCommon/turbomodule/core (= 0.66.4)
- React-runtimeexecutor (0.66.4):
- React-jsi (= 0.66.4)
- ReactCommon/turbomodule/core (0.66.4):
- React-Core/RCTVibrationHeaders (= 0.67.4)
- React-jsi (= 0.67.4)
- ReactCommon/turbomodule/core (= 0.67.4)
- React-runtimeexecutor (0.67.4):
- React-jsi (= 0.67.4)
- ReactCommon/turbomodule/core (0.67.4):
- DoubleConversion
- glog
- RCT-Folly (= 2021.06.28.00-v2)
- React-callinvoker (= 0.66.4)
- React-Core (= 0.66.4)
- React-cxxreact (= 0.66.4)
- React-jsi (= 0.66.4)
- React-logger (= 0.66.4)
- React-perflogger (= 0.66.4)
- React-callinvoker (= 0.67.4)
- React-Core (= 0.67.4)
- React-cxxreact (= 0.67.4)
- React-jsi (= 0.67.4)
- React-logger (= 0.67.4)
- React-perflogger (= 0.67.4)
- ReactNativeAlternateIcons (0.3.0):
- React
- RNCAsyncStorage (1.12.1):
- React-Core
- RNCMaskedView (0.1.10):
- RNCMaskedView (0.1.11):
- React
- RNDefaultPreference (1.4.3):
- React
- RNFileViewer (2.1.4):
- RNFileViewer (2.1.5):
- React-Core
- RNFS (2.16.6):
- React
- RNGestureHandler (1.9.0):
- RNFS (2.19.0):
- React-Core
- RNGestureHandler (2.3.2):
- React-Core
- RNKeychain (8.0.0):
- React-Core
- RNKeychain (4.0.5):
- React
- RNPrivacySnapshot (1.0.0):
- React-Core
- RNReanimated (1.13.3):
- RNReanimated (2.4.1):
- DoubleConversion
- FBLazyVector
- FBReactNativeSpec
- glog
- RCT-Folly
- RCTRequired
- RCTTypeSafety
- React
- React-callinvoker
- React-Core
- RNScreens (3.4.0):
- React-Core/DevSupport
- React-Core/RCTWebSocket
- React-CoreModules
- React-cxxreact
- React-jsi
- React-jsiexecutor
- React-jsinspector
- React-RCTActionSheet
- React-RCTAnimation
- React-RCTBlob
- React-RCTImage
- React-RCTLinking
- React-RCTNetwork
- React-RCTSettings
- React-RCTText
- ReactCommon/turbomodule/core
- Yoga
- RNScreens (3.13.1):
- React-Core
- React-RCTImage
- RNSearchBar (3.5.1):
- React-Core
- RNStoreReview (0.1.5):
- React
- RNSVG (12.1.1):
- React
- RNVectorIcons (7.1.0):
- React
- RNZipArchive (6.0.2):
- RNStoreReview (0.2.0):
- React-Core
- RNZipArchive/Core (= 6.0.2)
- RNSVG (12.3.0):
- React-Core
- RNVectorIcons (9.1.0):
- React-Core
- RNZipArchive (6.0.6):
- React-Core
- RNZipArchive/Core (= 6.0.6)
- SSZipArchive (= 2.2.3)
- RNZipArchive/Core (6.0.2):
- RNZipArchive/Core (6.0.6):
- React-Core
- SSZipArchive (= 2.2.3)
- sn-textview (1.0.1):
- sn-textview (1.0.2):
- React-Core
- SNReactNative (1.0.1):
- React-Core
@@ -436,6 +468,7 @@ DEPENDENCIES:
- FlipperKit/FlipperKitUserDefaultsPlugin (= 0.99.0)
- FlipperKit/SKIOSNetworkPlugin (= 0.99.0)
- glog (from `../node_modules/react-native/third-party-podspecs/glog.podspec`)
- OpenSSL-Universal (= 1.1.180)
- 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`)
@@ -450,10 +483,11 @@ DEPENDENCIES:
- React-jsiexecutor (from `../node_modules/react-native/ReactCommon/jsiexecutor`)
- React-jsinspector (from `../node_modules/react-native/ReactCommon/jsinspector`)
- React-logger (from `../node_modules/react-native/ReactCommon/logger`)
- react-native-aes (from `../node_modules/react-native-aes-crypto`)
- "react-native-aes (from `../node_modules/@standardnotes/react-native-aes`)"
- react-native-document-picker (from `../node_modules/react-native-document-picker`)
- react-native-fingerprint-scanner (from `../node_modules/react-native-fingerprint-scanner`)
- react-native-mail (from `../node_modules/react-native-mail`)
- react-native-pager-view (from `../node_modules/react-native-pager-view`)
- react-native-safe-area-context (from `../node_modules/react-native-safe-area-context`)
- "react-native-segmented-control (from `../node_modules/@react-native-community/segmented-control`)"
- react-native-sodium-jsi (from `../node_modules/react-native-sodium-jsi`)
@@ -549,13 +583,15 @@ EXTERNAL SOURCES:
React-logger:
:path: "../node_modules/react-native/ReactCommon/logger"
react-native-aes:
:path: "../node_modules/react-native-aes-crypto"
:path: "../node_modules/@standardnotes/react-native-aes"
react-native-document-picker:
:path: "../node_modules/react-native-document-picker"
react-native-fingerprint-scanner:
:path: "../node_modules/react-native-fingerprint-scanner"
react-native-mail:
:path: "../node_modules/react-native-mail"
react-native-pager-view:
:path: "../node_modules/react-native-pager-view"
react-native-safe-area-context:
:path: "../node_modules/react-native-safe-area-context"
react-native-segmented-control:
@@ -635,8 +671,8 @@ SPEC CHECKSUMS:
boost: a7c83b31436843459a1961bfd74b96033dc77234
CocoaAsyncSocket: 065fd1e645c7abab64f7a6a2007a48038fdc6a99
DoubleConversion: 831926d9b8bf8166fd87886c4abab286c2422662
FBLazyVector: e5569e42a1c79ca00521846c223173a57aca1fe1
FBReactNativeSpec: fe08c1cd7e2e205718d77ad14b34957cce949b58
FBLazyVector: f7b0632c6437e312acf6349288d9aa4cb6d59030
FBReactNativeSpec: 0f4e1f4cfeace095694436e7c7fcc5bf4b03a0ff
Flipper: 30e8eeeed6abdc98edaf32af0cda2f198be4b733
Flipper-Boost-iOSX: fd1e2b8cbef7e662a122412d7ac5f5bea715403c
Flipper-DoubleConversion: 57ffbe81ef95306cc9e69c4aa3aeeeeb58a6a28c
@@ -652,62 +688,63 @@ SPEC CHECKSUMS:
libevent: 4049cae6c81cdb3654a443be001fb9bdceff7913
OpenSSL-Universal: 1aa4f6a6ee7256b83db99ec1ccdaa80d10f9af9b
RCT-Folly: a21c126816d8025b547704b777a2ba552f3d9fa9
RCTRequired: 4bf86c70714490bca4bf2696148638284622644b
RCTTypeSafety: c475a7059eb77935fa53d2c17db299893f057d5d
React: f64af14e3f2c50f6f2c91a5fd250e4ff1b3c3459
React-callinvoker: b74e4ae80287780dcdf0cab262bcb581eeef56e7
React-Core: 3eb7432bad96ff1d25aebc1defbae013fee2fd0e
React-CoreModules: ad9e1fd5650e16666c57a08328df86fd7e480cb9
React-cxxreact: 02633ff398cf7e91a2c1e12590d323c4a4b8668a
React-jsi: 805c41a927d6499fb811772acb971467d9204633
React-jsiexecutor: 94ce921e1d8ce7023366873ec371f3441383b396
React-jsinspector: d0374f7509d407d2264168b6d0fad0b54e300b85
React-logger: 933f80c97c633ee8965d609876848148e3fef438
react-native-aes: a13199300208e4eda1df14506a276415561e02bd
react-native-document-picker: 1a7518132d4a06b67f459be9bb1464a567d2b3b4
RCTRequired: 0aa6c1c27e1d65920df35ceea5341a5fe76bdb79
RCTTypeSafety: d76a59d00632891e11ed7522dba3fd1a995e573a
React: ab8c09da2e7704f4b3ebad4baa6cfdfcc852dcb5
React-callinvoker: 216fb96b482da516b8aba4142b145938f6ea92f0
React-Core: af99b93aff83599485e0e0879879aafa35ceae32
React-CoreModules: 137a054ce8c547e81dc3502933b1bc0fd08df05d
React-cxxreact: ec5ee6b08664f5b8ac71d8ad912f54d540c4f817
React-jsi: 3e084c80fd364cee64668d5df46d40c39f7973e1
React-jsiexecutor: cbdf37cebdc4f5d8b3d0bf5ccaa6147fd9de9f3d
React-jsinspector: f4775ea9118cbe1f72b834f0f842baa7a99508d8
React-logger: a1f028f6d8639a3f364ef80419e5e862e1115250
react-native-aes: 420f829e2c4ff32e3deb2aa056094a6a29fcf992
react-native-document-picker: 429972f7ece4463aa5bcdd789622b3a674a3c5d1
react-native-fingerprint-scanner: be63e626b31fb951780a5fac5328b065a61a3d6e
react-native-mail: 5fe7239a5b5c1e858d425501c03d1ab977434122
react-native-safe-area-context: b6e0e284002381d2ff29fa4fff42b4d8282e3c94
react-native-pager-view: b1914469643f40042e65d78cbf3d3dfebd6fb0d9
react-native-safe-area-context: 806f8370bf9fc9db90a3413aaa1aab0d2e22fdf3
react-native-segmented-control: 65df6cd0619b780b3843d574a72d4c7cec396097
react-native-sodium-jsi: e86fb6bc2f48b5148c1339b07b18a7f3799d17a3
react-native-sodium-jsi: 42be5954ce2e66a56f1907e35e2561bcc54a0472
react-native-static-server: 201b2a945a35096be3ae7f43e367c65bcbd61343
react-native-version-info: 36490da17d2c6b5cc21321c70e433784dee7ed0b
react-native-webview: e89bf2dba26a04cda967814df3ed1be99f291233
React-perflogger: 93075d8931c32cd1fce8a98c15d2d5ccc4d891bd
React-RCTActionSheet: 7d3041e6761b4f3044a37079ddcb156575fb6d89
React-RCTAnimation: 743e88b55ac62511ae5c2e22803d4f503f2a3a13
React-RCTBlob: bee3a2f98fa7fc25c957c8643494244f74bea0a0
React-RCTImage: 19fc9e29b06cc38611c553494f8d3040bf78c24e
React-RCTLinking: dc799503979c8c711126d66328e7ce8f25c2848f
React-RCTNetwork: 417e4e34cf3c19eaa5fd4e9eb20180d662a799ce
React-RCTSettings: 4df89417265af26501a7e0e9192a34d3d9848dff
React-RCTText: f8a21c3499ab322326290fa9b701ae29aa093aa5
React-RCTVibration: e3ffca672dd3772536cb844274094b0e2c31b187
React-runtimeexecutor: dec32ee6f2e2a26e13e58152271535fadff5455a
ReactCommon: 57b69f6383eafcbd7da625bfa6003810332313c4
react-native-version-info: a106f23009ac0db4ee00de39574eb546682579b9
react-native-webview: 380c1a03ec94b7ed764dac8db1e7c9952d08c93a
React-perflogger: 0afaf2f01a47fd0fc368a93bfbb5bd3b26db6e7f
React-RCTActionSheet: 59f35c4029e0b532fc42114241a06e170b7431a2
React-RCTAnimation: aae4f4bed122e78bdab72f7118d291d70a932ce2
React-RCTBlob: f6fb23394b4f28cd86fa7e9f5f6ae45c23669fda
React-RCTImage: 638815cf96124386dd296067246d91441932ae3f
React-RCTLinking: 254dd06283dd6fdb784285f95e7cec8053c3270f
React-RCTNetwork: 8a4c2d4f357268e520b060572d02bc69a9b991fb
React-RCTSettings: 35d44cbb9972ab933bd0a59ea3e6646dcb030ba3
React-RCTText: cc5315df8458cfa7b537e621271ef43273955a97
React-RCTVibration: 3b52a7dced19cdb025b4f88ab26ceb2d85f30ba2
React-runtimeexecutor: a9d3c82ddf7ffdad9fbe6a81c6d6f8c06385464d
ReactCommon: 07d0c460b9ba9af3eaf1b8f5abe7daaad28c9c4e
ReactNativeAlternateIcons: b2a8a729d9d9756ed0652c352694f190407f297f
RNCAsyncStorage: b03032fdbdb725bea0bd9e5ec5a7272865ae7398
RNCMaskedView: 5a8ec07677aa885546a0d98da336457e2bea557f
RNCMaskedView: 0e1bc4bfa8365eba5fbbb71e07fbdc0555249489
RNDefaultPreference: 2f8d6d54230edbd78708ada8d63bb275e5a8415b
RNFileViewer: 83cc066ad795b1f986791d03b56fe0ee14b6a69f
RNFS: 2bd9eb49dc82fa9676382f0585b992c424cd59df
RNGestureHandler: 9b7e605a741412e20e13c512738a31bd1611759b
RNKeychain: 840f8e6f13be0576202aefcdffd26a4f54bfe7b5
RNFileViewer: ce7ca3ac370e18554d35d6355cffd7c30437c592
RNFS: fc610f78fdf8bfc89a9e5cc2f898519f4dba1002
RNGestureHandler: 6e757e487a4834e7280e98e9bac66d2d9c575e9c
RNKeychain: 4f63aada75ebafd26f4bc2c670199461eab85d94
RNPrivacySnapshot: 8eaf571478a353f2e5184f5c803164f22428b023
RNReanimated: 514a11da3a2bcc6c3dfd9de32b38e2b9bf101926
RNScreens: 21b73c94c9117e1110a79ee0ee80c93ccefed8ce
RNReanimated: 32c91e28f5780937b8efc07ddde1bab8d373fe0b
RNScreens: 40a2cb40a02a609938137a1e0acfbf8fc9eebf19
RNSearchBar: 5ed8e13ba8a6c701fbd2afdfe4164493d24b2aee
RNStoreReview: 62d6afd7c37db711a594bbffca6b0ea3a812b7a8
RNSVG: 551acb6562324b1d52a4e0758f7ca0ec234e278f
RNVectorIcons: bc69e6a278b14842063605de32bec61f0b251a59
RNZipArchive: 3dd2de5b7f590d79e83270508b78870bf5a54f36
sn-textview: 0211237b3e0edeeb23aed2a9c47b78af35a81e95
RNStoreReview: d7d2a006e14030fe101cac9da487a17f98d73eff
RNSVG: 302bfc9905bd8122f08966dc2ce2d07b7b52b9f8
RNVectorIcons: 7923e585eaeb139b9f4531d25a125a1500162a0b
RNZipArchive: 9e6af1bebc9c7ddb42893bc4e70804321227c3ec
sn-textview: aaeeb41791e7d1784072adfb6b610db9b764acda
SNReactNative: b5e9e529c175c13f3a618e27c76cf3071213d5e1
SSZipArchive: 62d4947b08730e4cda640473b0066d209ff033c9
TrustKit: 073855e3adecd317417bda4ac9e9ac54a2e3b9f2
Yoga: e7dc4e71caba6472ff48ad7d234389b91dadc280
Yoga: d6b6a80659aa3e91aaba01d0012e7edcbedcbecd
YogaKit: f782866e155069a2cca2517aafea43200b01fd5a
PODFILE CHECKSUM: 297552073de1fdbc5a3585e9037f5cfd60308641
COCOAPODS: 1.11.2
COCOAPODS: 1.11.3

View File

@@ -756,7 +756,6 @@
LIBRARY_SEARCH_PATHS = (
"\"$(SDKROOT)/usr/lib/swift\"",
"\"$(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)\"",
"\"$(TOOLCHAIN_DIR)/usr/lib/swift-5.0/$(PLATFORM_NAME)\"",
"\"$(inherited)\"",
);
MTL_ENABLE_DEBUG_INFO = YES;
@@ -815,7 +814,6 @@
LIBRARY_SEARCH_PATHS = (
"\"$(SDKROOT)/usr/lib/swift\"",
"\"$(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)\"",
"\"$(TOOLCHAIN_DIR)/usr/lib/swift-5.0/$(PLATFORM_NAME)\"",
"\"$(inherited)\"",
);
MTL_ENABLE_DEBUG_INFO = NO;

View File

@@ -6,25 +6,25 @@
* https://stackoverflow.com/a/65231261/2504429
* @format
*/
const {getDefaultConfig} = require('metro-config');
const { getDefaultConfig } = require('metro-config');
module.exports = (async () => {
const {
resolver: {sourceExts, assetExts},
resolver: { sourceExts, assetExts },
} = await getDefaultConfig();
return {
transformer: {
getTransformOptions: async () => ({
transform: {
experimentalImportSupport: false,
inlineRequires: false,
inlineRequires: true,
},
}),
babelTransformerPath: require.resolve('react-native-svg-transformer')
babelTransformerPath: require.resolve('react-native-svg-transformer'),
},
resolver: {
assetExts: assetExts.filter(ext => ext !== "svg"),
sourceExts: [...sourceExts, "svg"]
assetExts: assetExts.filter(ext => ext !== 'svg'),
sourceExts: [...sourceExts, 'svg'],
},
};
})();

View File

@@ -1,7 +1,7 @@
{
"name": "standardnotes-mobile",
"version": "3.12.1",
"user-version": "3.12.1",
"version": "3.13.0",
"user-version": "3.13.0",
"private": true,
"license": "AGPL-3.0-or-later",
"scripts": {
@@ -15,89 +15,99 @@
"lint:eslint": "yarn eslint . --ext .ts,.tsx --fix",
"lint:ts": "tsc --noEmit",
"start": "react-native start",
"test": "jest"
"test": "jest",
"postinstall": "patch-package"
},
"resolutions": {
"@types/react": "^17"
},
"dependencies": {
"@expo/react-native-action-sheet": "^3.8.0",
"@expo/react-native-action-sheet": "^3.13.0",
"@react-native-community/async-storage": "1.12.1",
"@react-native-community/masked-view": "^0.1.10",
"@react-native-community/masked-view": "^0.1.11",
"@react-native-community/segmented-control": "^2.2.2",
"@react-navigation/native": "^5.9.3",
"@react-navigation/stack": "^5.14.3",
"@react-navigation/elements": "^1.3.1",
"@react-navigation/native": "^6.0.8",
"@react-navigation/stack": "^6.1.1",
"@standardnotes/components": "^1.7.12",
"@standardnotes/features": "^1.34.10",
"@standardnotes/payloads": "^1.4.10",
"@standardnotes/react-native-textview": "1.0.1",
"@standardnotes/features": "^1.35.1",
"@standardnotes/payloads": "^1.4.14",
"@standardnotes/react-native-aes": "^1.4.3",
"@standardnotes/react-native-textview": "1.0.2",
"@standardnotes/react-native-utils": "1.0.1",
"@standardnotes/sncrypto-common": "1.7.3",
"@standardnotes/snjs": "2.83.0",
"@standardnotes/stylekit": "5.16.0",
"js-base64": "^3.5.2",
"@standardnotes/snjs": "2.87.0",
"@standardnotes/stylekit": "5.17.0",
"@types/styled-components-react-native": "5.1.3",
"js-base64": "^3.7.2",
"moment": "^2.29.1",
"react": "17.0.2",
"react-native": "0.66.4",
"react-native-aes-crypto": "standardnotes/react-native-aes#6430299",
"react-native": "0.67.4",
"react-native-alternate-icons": "standardnotes/react-native-alternate-icons#1d335d",
"react-native-default-preference": "^1.4.3",
"react-native-document-picker": "^8.0.0",
"react-native-fab": "standardnotes/react-native-fab#cb60e00",
"react-native-file-viewer": "^2.1.4",
"react-native-file-viewer": "^2.1.5",
"react-native-fingerprint-scanner": "standardnotes/react-native-fingerprint-scanner#8f3b2df05d88350f1f704417c8b90981cec87301",
"react-native-flag-secure-android": "standardnotes/react-native-flag-secure-android#cb08e74",
"react-native-fs": "^2.16.6",
"react-native-gesture-handler": "^1.9.0",
"react-native-keychain": "^4.0.5",
"react-native-fs": "^2.19.0",
"react-native-gesture-handler": "2.3.2",
"react-native-keychain": "^8.0.0",
"react-native-mail": "standardnotes/react-native-mail#fd26119e67a2ffc5eaa95a9c17049743e39ce2d3",
"react-native-privacy-snapshot": "standardnotes/react-native-privacy-snapshot#653e904",
"react-native-reanimated": "^1.13.3",
"react-native-safe-area-context": "^3.1.9",
"react-native-screens": "3.4.0",
"react-native-reanimated": "^2.4.1",
"react-native-safe-area-context": "^4.2.1",
"react-native-screens": "3.13.1",
"react-native-search-bar": "standardnotes/react-native-search-bar#7d2139d",
"react-native-search-box": "standardnotes/react-native-search-box#c0de5bab18cb418fef75ef2c2cd921304142e492",
"react-native-sodium-jsi": "1.1.3",
"react-native-sodium-jsi": "1.1.7",
"react-native-static-server": "standardnotes/react-native-static-server#d0c4cb0feae233634ef26fc33118f258192c7b7d",
"react-native-store-review": "^0.1.5",
"react-native-svg": "^12.1.1",
"react-native-store-review": "^0.2.0",
"react-native-svg": "^12.3.0",
"react-native-svg-transformer": "^1.0.0",
"react-native-tab-view": "^2.15.2",
"react-native-tab-view": "^3.1.1",
"react-native-url-polyfill": "^1.3.0",
"react-native-vector-icons": "^7.1.0",
"react-native-version-info": "^1.1.0",
"react-native-webview": "11.15.0",
"react-native-zip-archive": "^6.0.2",
"react-navigation-header-buttons": "^6.0.2",
"styled-components": "^5.2.1"
"react-native-vector-icons": "^9.1.0",
"react-native-version-info": "^1.1.1",
"react-native-webview": "11.17.2",
"react-native-zip-archive": "^6.0.6",
"react-navigation-header-buttons": "^9.0.1",
"styled-components": "5.3.3"
},
"devDependencies": {
"@babel/core": "^7.11.6",
"@babel/runtime": "^7.11.2",
"@react-native-community/eslint-config": "^2.0.0",
"@types/detox": "^16.4.1",
"@types/faker": "^5.1.3",
"@types/jest": "^26.0.14",
"@types/js-base64": "^3.0.0",
"@types/react-native": "0.66.4",
"@types/react-native-vector-icons": "^6.4.6",
"@types/styled-components": "5.1.5",
"@typescript-eslint/eslint-plugin": "^4.11.1",
"@typescript-eslint/parser": "^4.11.1",
"babel-jest": "^26.6.3",
"concurrently": "^5.3.0",
"detox": "^17.8.3",
"eslint": "^7.10.0",
"eslint-plugin-prettier": "^3.1.4",
"faker": "^5.1.0",
"jest": "^26.6.3",
"jest-circus": "^26.6.3",
"metro-react-native-babel-preset": "^0.66.2",
"@babel/core": "^7.17.8",
"@babel/preset-typescript": "^7.16.7",
"@babel/runtime": "^7.17.8",
"@react-native-community/eslint-config": "^3.0.1",
"@types/detox": "^18.1.0",
"@types/faker": "^6.6.9",
"@types/jest": "^27.4.1",
"@types/js-base64": "^3.3.1",
"@types/react-native": "^0.67.3",
"@types/react-native-vector-icons": "^6.4.10",
"@types/react-test-renderer": "^17.0.1",
"@typescript-eslint/eslint-plugin": "^5.15.0",
"@typescript-eslint/parser": "^5.15.0",
"babel-jest": "^27.5.1",
"concurrently": "^7.0.0",
"detox": "^19.5.7",
"eslint": "^8.11.0",
"eslint-plugin-flowtype": "^8.0.3",
"eslint-plugin-prettier": "^4.0.0",
"faker": "^6.6.6",
"jest": "^27.5.1",
"jest-circus": "^27.5.1",
"metro-react-native-babel-preset": "^0.69.1",
"npm-run-all": "^4.1.5",
"pod-install": "^0.1.30",
"patch-package": "^6.4.7",
"pod-install": "^0.1.32",
"postinstall-postinstall": "^2.1.0",
"prettier": "^2.2.1",
"prettier-plugin-organize-imports": "^1.1.1",
"react-native-document-picker": "^5.0.4",
"prettier": "^2.6.0",
"prettier-plugin-organize-imports": "^2.3.4",
"react-native-pager-view": "^5.4.15",
"react-test-renderer": "17.0.2",
"replace-in-file": "^6.1.0",
"typescript": "^3.9.4"
"replace-in-file": "^6.3.2",
"typescript": "^4.6.2"
},
"jest": {
"preset": "react-native"

View File

@@ -0,0 +1,61 @@
diff --git a/node_modules/react-native-static-server/android/build.gradle b/node_modules/react-native-static-server/android/build.gradle
index 0c7bca6..6de3115 100644
--- a/node_modules/react-native-static-server/android/build.gradle
+++ b/node_modules/react-native-static-server/android/build.gradle
@@ -20,7 +20,7 @@ def safeExtGet(prop, fallback) {
}
apply plugin: 'com.android.library'
-apply plugin: 'maven'
+apply plugin: 'maven-publish'
buildscript {
// The Android Gradle plugin is only required when opening the android folder stand-alone.
@@ -39,7 +39,7 @@ buildscript {
}
apply plugin: 'com.android.library'
-apply plugin: 'maven'
+apply plugin: 'maven-publish'
android {
compileSdkVersion safeExtGet('compileSdkVersion', DEFAULT_COMPILE_SDK_VERSION)
@@ -108,17 +108,6 @@ def configureReactNativePom(def pom) {
afterEvaluate { project ->
// some Gradle build hooks ref:
// https://www.oreilly.com/library/view/gradle-beyond-the/9781449373801/ch03.html
- task androidJavadoc(type: Javadoc) {
- source = android.sourceSets.main.java.srcDirs
- classpath += files(android.bootClasspath)
- classpath += files(project.getConfigurations().getByName('compile').asList())
- include '**/*.java'
- }
-
- task androidJavadocJar(type: Jar, dependsOn: androidJavadoc) {
- classifier = 'javadoc'
- from androidJavadoc.destinationDir
- }
task androidSourcesJar(type: Jar) {
classifier = 'sources'
@@ -137,15 +126,13 @@ afterEvaluate { project ->
artifacts {
archives androidSourcesJar
- archives androidJavadocJar
}
+}
- task installArchives(type: Upload) {
- configuration = configurations.archives
- repositories.mavenDeployer {
- // Deploy to react-native-event-bridge/maven, ready to publish to npm
- repository url: "file://${projectDir}/../android/maven"
- configureReactNativePom pom
+publishing {
+ repositories {
+ maven {
+ url = uri("file://${projectDir}/../android/maven")
}
}
}

View File

@@ -132,13 +132,12 @@ export const App = (props: { env: 'prod' | 'dev' }) => {
>();
useEffect(() => {
const removeAppChangeObserver = applicationGroupRef.current.addApplicationChangeObserver(
() => {
const removeAppChangeObserver =
applicationGroupRef.current.addApplicationChangeObserver(() => {
const mobileApplication = applicationGroupRef.current
.primaryApplication as MobileApplication;
setApplication(mobileApplication);
}
);
});
return removeAppChangeObserver;
}, [applicationGroupRef.current.primaryApplication]);

View File

@@ -42,7 +42,7 @@ import { HeaderTitleParams } from './App';
import { ApplicationContext } from './ApplicationContext';
import { ModalStackNavigationProp } from './ModalStack';
type AppStackNavigatorParamList = {
export type AppStackNavigatorParamList = {
[SCREEN_NOTES]: HeaderTitleParams;
[SCREEN_COMPOSE]: HeaderTitleParams | undefined;
[SCREEN_VIEW_PROTECTED_NOTE]: {
@@ -50,15 +50,14 @@ type AppStackNavigatorParamList = {
};
};
export type AppStackNavigationProp<
T extends keyof AppStackNavigatorParamList
> = {
navigation: CompositeNavigationProp<
ModalStackNavigationProp<'AppStack'>['navigation'],
StackNavigationProp<AppStackNavigatorParamList, T>
>;
route: RouteProp<AppStackNavigatorParamList, T>;
};
export type AppStackNavigationProp<T extends keyof AppStackNavigatorParamList> =
{
navigation: CompositeNavigationProp<
ModalStackNavigationProp<'AppStack'>['navigation'],
StackNavigationProp<AppStackNavigatorParamList, T>
>;
route: RouteProp<AppStackNavigatorParamList, T>;
};
const AppStack = createStackNavigator<AppStackNavigatorParamList>();

View File

@@ -31,7 +31,7 @@ import { ApplicationContext } from './ApplicationContext';
import { AppStackComponent } from './AppStack';
import { HistoryStack } from './HistoryStack';
type ModalStackNavigatorParamList = {
export type ModalStackNavigatorParamList = {
AppStack: undefined;
HistoryStack: undefined;
[SCREEN_SETTINGS]: undefined;
@@ -68,11 +68,11 @@ export const MainStackComponent = ({ env }: { env: 'prod' | 'dev' }) => {
<MainStack.Navigator
screenOptions={{
gestureEnabled: false,
presentation: 'modal',
headerStyle: {
backgroundColor: theme.stylekitContrastBackgroundColor,
},
}}
mode="modal"
initialRouteName="AppStack"
>
<MainStack.Screen

View File

@@ -4,7 +4,7 @@ import {
HeaderButton,
HeaderButtonProps,
} from 'react-navigation-header-buttons';
import { ThemeContext } from 'styled-components/native';
import { ThemeContext } from 'styled-components';
export const IoniconsHeaderButton = (passMeFurther: HeaderButtonProps) => {
// the `passMeFurther` variable here contains props from <Item .../> as well as <HeaderButtons ... />

View File

@@ -2,7 +2,8 @@ import { SectionedTableCellTouchableHighlight } from '@Components/SectionedTable
import React, { useContext } from 'react';
import { Platform } from 'react-native';
import Icon from 'react-native-vector-icons/Ionicons';
import styled, { css, ThemeContext } from 'styled-components/native';
import { ThemeContext } from 'styled-components';
import styled, { css } from 'styled-components/native';
type Props = {
testID?: string;
@@ -111,7 +112,7 @@ export const SectionedAccessoryTableCell: React.FC<Props> = props => {
if (props.color) {
color = props.color;
}
let icon = null;
let icon: any = null;
if (iconName) {
icon = (

View File

@@ -174,11 +174,10 @@ export class ApplicationState extends ApplicationService {
}
async onAppStart() {
this.removePreferencesLoadedListener = this.prefService.addPreferencesLoadedObserver(
() => {
this.removePreferencesLoadedListener =
this.prefService.addPreferencesLoadedObserver(() => {
this.notifyOfStateChange(AppStateType.PreferencesChanged);
}
);
});
await this.loadUnlockTiming();
}
@@ -627,12 +626,14 @@ export class ApplicationState extends ApplicationService {
* while non-app cycle events are custom events like locking and unlocking
*/
isAppVisibilityChange(state: AppStateType) {
return ([
AppStateType.LosingFocus,
AppStateType.EnteringBackground,
AppStateType.GainingFocus,
AppStateType.ResumingFromBackground,
] as Array<AppStateType>).includes(state);
return (
[
AppStateType.LosingFocus,
AppStateType.EnteringBackground,
AppStateType.GainingFocus,
AppStateType.ResumingFromBackground,
] as Array<AppStateType>
).includes(state);
}
private async getScreenshotPrivacyEnabled(): Promise<boolean | undefined> {

View File

@@ -106,9 +106,8 @@ export class ComponentManager extends SNComponentManager {
const version = nativeFeature?.version || component.package_info?.version;
const existingPackageJson = await this.getDownloadedComponentPackageJsonFile(
identifier
);
const existingPackageJson =
await this.getDownloadedComponentPackageJsonFile(identifier);
const existingVersion = existingPackageJson?.version;
this.log('Existing package version', existingVersion);
this.log('Latest package version', version);
@@ -235,9 +234,8 @@ export class ComponentManager extends SNComponentManager {
this.log('Finished download to tmp location', tmpLocation);
const requireChecksumVerification = !!this.nativeFeatureForIdentifier(
identifier
);
const requireChecksumVerification =
!!this.nativeFeatureForIdentifier(identifier);
if (requireChecksumVerification) {
const passes = await this.passesChecksumValidation(
tmpLocation,

View File

@@ -31,7 +31,8 @@ export class InstallationService extends ApplicationService {
const hasNormalKeys =
this.application?.hasAccount() || this.application?.hasPasscode();
const keychainKey = await this.application?.deviceInterface?.getRawKeychainValue();
const keychainKey =
await this.application?.deviceInterface?.getRawKeychainValue();
const hasKeychainValue = !(
isNullOrUndefined(keychainKey) ||
(typeof keychainKey === 'object' && Object.keys(keychainKey).length === 0)
@@ -46,9 +47,10 @@ export class InstallationService extends ApplicationService {
* Because of migration failure first run key might not be in non wrapped storage
*/
if (firstRunKeyMissing) {
const fallbackFirstRunValue = await this.application?.deviceInterface?.getRawStorageValue(
FIRST_RUN_KEY
);
const fallbackFirstRunValue =
await this.application?.deviceInterface?.getRawStorageValue(
FIRST_RUN_KEY
);
firstRunKeyMissing = isNullOrUndefined(fallbackFirstRunValue);
}
return !hasNormalKeys && hasKeychainValue && firstRunKeyMissing;

View File

@@ -1,9 +1,19 @@
import { NavigationContainerRef, StackActions } from '@react-navigation/native';
import { AppStackNavigatorParamList } from '@Root/AppStack';
import { ModalStackNavigatorParamList } from '@Root/ModalStack';
import * as React from 'react';
export const navigationRef = React.createRef<NavigationContainerRef>();
export const navigationRef =
React.createRef<
NavigationContainerRef<
AppStackNavigatorParamList & ModalStackNavigatorParamList
>
>();
export function navigate(name: string, params?: any) {
export function navigate(
name: keyof AppStackNavigatorParamList | keyof ModalStackNavigatorParamList,
params?: any
) {
navigationRef.current?.navigate(name, params);
}

View File

@@ -5,7 +5,6 @@ import {
} from '@standardnotes/snjs';
import { MobileApplication } from './application';
// eslint-disable-next-line no-shadow
export enum PrefKey {
SortNotesBy = 'sortBy',
SortNotesReverse = 'sortReverse',

View File

@@ -1,16 +1,14 @@
/* eslint-disable no-bitwise */
import Aes from '@standardnotes/react-native-aes';
import {
Base64String,
HexString,
SNPureCrypto,
SodiumConstant,
StreamDecryptor,
StreamDecryptorResult,
StreamEncryptor,
timingSafeEqual,
Utf8String,
} from '@standardnotes/sncrypto-common';
import Aes from 'react-native-aes-crypto';
import * as Sodium from 'react-native-sodium-jsi';
export class SNReactNativeCrypto implements SNPureCrypto {
@@ -127,39 +125,42 @@ export class SNReactNativeCrypto implements SNPureCrypto {
}
}
public xchacha20StreamInitEncryptor(key: HexString): StreamEncryptor {
return Sodium.crypto_secretstream_xchacha20poly1305_init_push(key);
public xchacha20StreamInitEncryptor(
key: HexString
): Sodium.MobileStreamEncryptor {
const encryptor =
Sodium.crypto_secretstream_xchacha20poly1305_init_push(key);
return encryptor;
}
public xchacha20StreamEncryptorPush(
encryptor: StreamEncryptor,
encryptor: Sodium.MobileStreamEncryptor,
plainBuffer: Uint8Array,
assocData: Utf8String,
tag: SodiumConstant = SodiumConstant.CRYPTO_SECRETSTREAM_XCHACHA20POLY1305_TAG_PUSH
): Uint8Array {
const encryptedBuffer = Sodium.crypto_secretstream_xchacha20poly1305_push(
encryptor.state as never,
plainBuffer,
encryptor,
plainBuffer.buffer,
assocData,
tag
);
return encryptedBuffer;
return new Uint8Array(encryptedBuffer);
}
public xchacha20StreamInitDecryptor(
header: Base64String,
key: HexString
): StreamDecryptor {
const state = Sodium.crypto_secretstream_xchacha20poly1305_init_pull(
): Sodium.MobileStreamDecryptor {
const decryptor = Sodium.crypto_secretstream_xchacha20poly1305_init_pull(
header,
key
);
return { state };
return decryptor;
}
public xchacha20StreamDecryptorPush(
decryptor: StreamDecryptor,
decryptor: Sodium.MobileStreamDecryptor,
encryptedBuffer: Uint8Array,
assocData: Utf8String
): StreamDecryptorResult | false {
@@ -171,16 +172,19 @@ export class SNReactNativeCrypto implements SNPureCrypto {
}
const result = Sodium.crypto_secretstream_xchacha20poly1305_pull(
decryptor.state as never,
encryptedBuffer,
decryptor,
encryptedBuffer.buffer,
assocData
);
if ((result as unknown) === false) {
if (!result) {
return false;
}
return result;
return {
message: new Uint8Array(result.message),
tag: result.tag,
};
}
public generateUUID() {

View File

@@ -135,11 +135,10 @@ export const useHasEditor = () => {
const [hasEditor, setHasEditor] = React.useState<boolean>(false);
useEffect(() => {
const removeEditorObserver = application?.editorGroup.addActiveControllerChangeObserver(
newEditor => {
const removeEditorObserver =
application?.editorGroup.addActiveControllerChangeObserver(newEditor => {
setHasEditor(Boolean(newEditor));
}
);
});
return removeEditorObserver;
}, [application]);
@@ -389,10 +388,8 @@ export const useProtectionSessionExpiry = () => {
}, [application]);
// State
const [
protectionsDisabledUntil,
setProtectionsDisabledUntil,
] = React.useState(getProtectionsDisabledUntil());
const [protectionsDisabledUntil, setProtectionsDisabledUntil] =
React.useState(getProtectionsDisabledUntil());
useEffect(() => {
const removeProtectionLengthSubscriber = application?.addEventObserver(

View File

@@ -5,8 +5,8 @@ import { SectionedTableCell } from '@Components/SectionedTableCell';
import { SectionHeader } from '@Components/SectionHeader';
import { AppStateType, PasscodeKeyboardType } from '@Lib/application_state';
import { MobileDeviceInterface } from '@Lib/interface';
import { HeaderHeightContext } from '@react-navigation/elements';
import { useFocusEffect } from '@react-navigation/native';
import { HeaderHeightContext } from '@react-navigation/stack';
import { ApplicationContext } from '@Root/ApplicationContext';
import { ModalStackNavigationProp } from '@Root/ModalStack';
import { SCREEN_AUTHENTICATE } from '@Screens/screens';
@@ -38,7 +38,7 @@ import {
import FingerprintScanner from 'react-native-fingerprint-scanner';
import { hide } from 'react-native-privacy-snapshot';
import { HeaderButtons, Item } from 'react-navigation-header-buttons';
import { ThemeContext } from 'styled-components/native';
import { ThemeContext } from 'styled-components';
import {
BaseView,
Input,
@@ -200,7 +200,9 @@ export const Authenticate = ({
const checkForBiometrics = useCallback(
async () =>
(application?.deviceInterface as MobileDeviceInterface).getDeviceBiometricsAvailability(),
(
application?.deviceInterface as MobileDeviceInterface
).getDeviceBiometricsAvailability(),
[application]
);

View File

@@ -8,7 +8,6 @@ export const isInActiveState = (state: AuthenticationValueStateType) =>
state !== AuthenticationValueStateType.WaitingInput &&
state !== AuthenticationValueStateType.Success;
// eslint-disable-next-line no-shadow
export enum AuthenticationValueStateType {
WaitingTurn = 0,
WaitingInput = 1,

View File

@@ -65,19 +65,19 @@ export const ComponentView = ({
// State
const [showWebView, setShowWebView] = useState<boolean>(true);
const [requiresLocalEditor, setRequiresLocalEditor] = useState<boolean>(
false
);
const [requiresLocalEditor, setRequiresLocalEditor] =
useState<boolean>(false);
const [localEditorReady, setLocalEditorReady] = useState<boolean>(false);
// Ref
const didLoadRootUrl = useRef<boolean>(false);
const webViewRef = useRef<WebView>(null);
const timeoutRef = useRef<number | undefined>(undefined);
const timeoutRef = useRef<ReturnType<typeof setTimeout> | undefined>(
undefined
);
const navigation = useNavigation<
AppStackNavigationProp<typeof SCREEN_NOTES>['navigation']
>();
const navigation =
useNavigation<AppStackNavigationProp<typeof SCREEN_NOTES>['navigation']>();
useEffect(() => {
const removeBlurScreenListener = navigation.addListener('blur', () => {
@@ -238,34 +238,35 @@ export const ComponentView = ({
onLoadStart();
};
const onShouldStartLoadWithRequest: OnShouldStartLoadWithRequest = request => {
log('Setting last iframe URL to', request.url);
/** The first request can typically be 'about:blank', which we want to ignore */
if (!didLoadRootUrl.current) {
didLoadRootUrl.current = request.url === componentViewer.url!;
}
/**
* We want to handle link clicks within an editor by opening the browser
* instead of loading inline. On iOS, onShouldStartLoadWithRequest is
* called for all requests including the initial request to load the editor.
* On iOS, clicks in the editors have a navigationType of 'click', but on
* Android, this is not the case (no navigationType).
* However, on Android, this function is not called for the initial request.
* So that might be one way to determine if this request is a click or the
* actual editor load request. But I don't think it's safe to rely on this
* being the case in the future. So on Android, we'll handle url loads only
* if the url isn't equal to the editor url.
*/
const onShouldStartLoadWithRequest: OnShouldStartLoadWithRequest =
request => {
log('Setting last iframe URL to', request.url);
/** The first request can typically be 'about:blank', which we want to ignore */
if (!didLoadRootUrl.current) {
didLoadRootUrl.current = request.url === componentViewer.url!;
}
/**
* We want to handle link clicks within an editor by opening the browser
* instead of loading inline. On iOS, onShouldStartLoadWithRequest is
* called for all requests including the initial request to load the editor.
* On iOS, clicks in the editors have a navigationType of 'click', but on
* Android, this is not the case (no navigationType).
* However, on Android, this function is not called for the initial request.
* So that might be one way to determine if this request is a click or the
* actual editor load request. But I don't think it's safe to rely on this
* being the case in the future. So on Android, we'll handle url loads only
* if the url isn't equal to the editor url.
*/
if (
(Platform.OS === 'ios' && request.navigationType === 'click') ||
(Platform.OS === 'android' && request.url !== componentViewer.url!)
) {
application!.deviceInterface!.openUrl(request.url);
return false;
}
return true;
};
if (
(Platform.OS === 'ios' && request.navigationType === 'click') ||
(Platform.OS === 'android' && request.url !== componentViewer.url!)
) {
application!.deviceInterface!.openUrl(request.url);
return false;
}
return true;
};
const defaultInjectedJavaScript = () => {
return `(function() {

View File

@@ -60,10 +60,10 @@ export class Compose extends React.Component<{}, State> {
static contextType = ApplicationContext;
context: React.ContextType<typeof ApplicationContext>;
editorViewRef: React.RefObject<SNTextView> = createRef();
saveTimeout: number | undefined;
saveTimeout: ReturnType<typeof setTimeout> | undefined;
alreadySaved: boolean = false;
statusTimeout: number | undefined;
downloadingMessageTimeout: number | undefined;
statusTimeout: ReturnType<typeof setTimeout> | undefined;
downloadingMessageTimeout: ReturnType<typeof setTimeout> | undefined;
removeNoteInnerValueObserver?: () => void;
removeComponentsObserver?: () => void;
removeStreamComponents?: () => void;
@@ -90,8 +90,8 @@ export class Compose extends React.Component<{}, State> {
}
componentDidMount() {
this.removeNoteInnerValueObserver = this.editor?.addNoteInnerValueChangeObserver(
(note, source) => {
this.removeNoteInnerValueObserver =
this.editor?.addNoteInnerValueChangeObserver((note, source) => {
if (isPayloadSourceRetrieved(source!)) {
this.setState({
title: note.title,
@@ -122,8 +122,7 @@ export class Compose extends React.Component<{}, State> {
this.showSavingStatus();
}
}
}
);
});
this.removeStreamComponents = this.context?.streamItems(
ContentType.Component,

View File

@@ -10,7 +10,7 @@ import { useCustomActionSheet } from '@Style/custom_action_sheet';
import React, { useCallback, useContext, useEffect, useState } from 'react';
import { FlatList, ListRenderItem, RefreshControl } from 'react-native';
import { useSafeAreaInsets } from 'react-native-safe-area-context';
import { ThemeContext } from 'styled-components/native';
import { ThemeContext } from 'styled-components';
import { SessionCell } from './SessionCell';
const useSessions = (): [

View File

@@ -16,7 +16,7 @@ import {
TabBar,
TabView,
} from 'react-native-tab-view';
import { ThemeContext } from 'styled-components/native';
import { ThemeContext } from 'styled-components';
import { IosTabBarContainer } from './NoteHistory.styled';
import { RemoteHistory } from './RemoteHistory';
import { SessionHistory } from './SessionHistory';

View File

@@ -20,9 +20,8 @@ export const RemoteHistory: React.FC<Props> = ({ note, onPress }) => {
const insets = useSafeAreaInsets();
// State
const [remoteHistoryList, setRemoteHistoryList] = useState<
RevisionListEntry[]
>();
const [remoteHistoryList, setRemoteHistoryList] =
useState<RevisionListEntry[]>();
const [fetchingRemoteHistory, setFetchingRemoteHistory] = useState(false);
useEffect(() => {
@@ -31,9 +30,8 @@ export const RemoteHistory: React.FC<Props> = ({ note, onPress }) => {
const fetchRemoteHistoryList = async () => {
if (note) {
setFetchingRemoteHistory(true);
const newRemoteHistory = await application?.historyManager?.remoteHistoryForItem(
note
);
const newRemoteHistory =
await application?.historyManager?.remoteHistoryForItem(note);
if (isMounted) {
setFetchingRemoteHistory(false);
setRemoteHistoryList(newRemoteHistory);
@@ -49,10 +47,8 @@ export const RemoteHistory: React.FC<Props> = ({ note, onPress }) => {
const onItemPress = useCallback(
async (item: RevisionListEntry) => {
const remoteRevision = await application?.historyManager!.fetchRemoteRevision(
note.uuid,
item
);
const remoteRevision =
await application?.historyManager!.fetchRemoteRevision(note.uuid, item);
if (remoteRevision) {
onPress(
item.uuid,

View File

@@ -59,7 +59,7 @@ export const NoteCell = ({
const [selected, setSelected] = useState(false);
// Ref
const selectionTimeout = useRef<number>();
const selectionTimeout = useRef<ReturnType<typeof setTimeout>>();
const elementRef = useRef<View>(null);
const { showActionSheet } = useCustomActionSheet();

View File

@@ -1,6 +1,12 @@
import { SNNote } from '@standardnotes/snjs';
import React, { useContext } from 'react';
import styled, { ThemeContext } from 'styled-components/native';
import { ThemeContext } from 'styled-components';
import styled from 'styled-components/native';
type NoteFlag = {
text: string;
color: string;
};
const FlagsContainer = styled.View`
flex-direction: row;
@@ -31,7 +37,7 @@ export const NoteCellFlags = ({
}) => {
const theme = useContext(ThemeContext);
let flags = [];
let flags: NoteFlag[] = [];
if (note.errorDecrypting) {
if (note.waitingForKey) {

View File

@@ -1,7 +1,8 @@
import { SnIcon, TEditorIcon } from '@Components/SnIcon';
import { SNNote } from '@standardnotes/snjs';
import React, { useContext } from 'react';
import styled, { ThemeContext } from 'styled-components/native';
import { ThemeContext } from 'styled-components';
import styled from 'styled-components/native';
const FlagIconsContainer = styled.View`
display: flex;

View File

@@ -26,7 +26,7 @@ import {
import { useSafeAreaInsets } from 'react-native-safe-area-context';
import IosSearchBar from 'react-native-search-bar';
import AndroidSearchBar from 'react-native-search-box';
import { ThemeContext } from 'styled-components/native';
import { ThemeContext } from 'styled-components';
import { NoteCell } from './NoteCell';
import {
Container,
@@ -82,9 +82,8 @@ export const NoteList = (props: Props) => {
const androidSearchBarInputRef = useRef<typeof AndroidSearchBar>(null);
const noteListRef = useRef<FlatList>(null);
const navigation = useNavigation<
AppStackNavigationProp<typeof SCREEN_NOTES>['navigation']
>();
const navigation =
useNavigation<AppStackNavigationProp<typeof SCREEN_NOTES>['navigation']>();
const dismissKeyboard = () => {
iosSearchBarInputRef.current?.blur();

View File

@@ -28,7 +28,7 @@ import React, {
useState,
} from 'react';
import FAB from 'react-native-fab';
import { ThemeContext } from 'styled-components/native';
import { ThemeContext } from 'styled-components';
import { NoteList } from './NoteList';
import { StyledIcon } from './Notes.styled';
@@ -49,9 +49,10 @@ export const Notes = React.memo(
// Context
const application = useContext(ApplicationContext);
const theme = useContext(ThemeContext);
const navigation = useNavigation<
AppStackNavigationProp<typeof SCREEN_NOTES>['navigation']
>();
const navigation =
useNavigation<
AppStackNavigationProp<typeof SCREEN_NOTES>['navigation']
>();
/**
* Update sync status
@@ -87,26 +88,20 @@ export const Notes = React.memo(
const [selectedNoteId, setSelectedNoteId] = useState<SNNote['uuid']>();
const [searchText, setSearchText] = useState('');
const [searchOptions, setSearchOptions] = useState<SearchOptions>([]);
const [
includeProtectedNoteText,
setIncludeProtectedNoteText,
] = useState<boolean>(
() =>
!(
application!.hasProtectionSources() &&
!application!.hasUnprotectedAccessSession()
)
);
const [includeArchivedNotes, setIncludeArchivedNotes] = useState<boolean>(
false
);
const [includeTrashedNotes, setIncludeTrashedNotes] = useState<boolean>(
false
);
const [
includeProtectedStarted,
setIncludeProtectedStarted,
] = useState<boolean>(false);
const [includeProtectedNoteText, setIncludeProtectedNoteText] =
useState<boolean>(
() =>
!(
application!.hasProtectionSources() &&
!application!.hasUnprotectedAccessSession()
)
);
const [includeArchivedNotes, setIncludeArchivedNotes] =
useState<boolean>(false);
const [includeTrashedNotes, setIncludeTrashedNotes] =
useState<boolean>(false);
const [includeProtectedStarted, setIncludeProtectedStarted] =
useState<boolean>(false);
const [shouldFocusSearch, setShouldFocusSearch] = useState<boolean>(false);
const haveDisplayOptions = useRef(false);
@@ -211,13 +206,14 @@ export const Notes = React.memo(
useEffect(() => {
let mounted = true;
const removeEditorObserver = application?.editorGroup.addActiveControllerChangeObserver(
activeEditor => {
if (mounted) {
setSelectedNoteId(activeEditor?.note?.uuid);
const removeEditorObserver =
application?.editorGroup.addActiveControllerChangeObserver(
activeEditor => {
if (mounted) {
setSelectedNoteId(activeEditor?.note?.uuid);
}
}
}
);
);
return () => {
mounted = false;
@@ -291,7 +287,8 @@ export const Notes = React.memo(
if (includeProtected) {
setIncludeProtectedStarted(true);
allowToggling = await application?.authorizeSearchingProtectedNotesText();
allowToggling =
await application?.authorizeSearchingProtectedNotesText();
}
setIncludeProtectedStarted(false);

View File

@@ -20,7 +20,7 @@ const SIGN_IN_TEXT = 'Sign in or register to backup your notes';
export const OfflineBanner: React.FC = () => {
const navigation = useNavigation();
const onPress = () => {
navigation.navigate(SCREEN_SETTINGS);
navigation.navigate(SCREEN_SETTINGS as never);
};
return (

View File

@@ -11,7 +11,7 @@ import { hexToRGBA } from '@Style/utils';
import React, { useContext, useEffect, useMemo, useState } from 'react';
import { LayoutChangeEvent } from 'react-native';
import Icon from 'react-native-vector-icons/Ionicons';
import { ThemeContext } from 'styled-components/native';
import { ThemeContext } from 'styled-components';
import { Compose } from './Compose/Compose';
import { Notes } from './Notes/Notes';
import {
@@ -77,11 +77,12 @@ export const Root = () => {
}
}
);
const removeNoteObserver = application?.editorGroup.addActiveControllerChangeObserver(
activeController => {
setActiveNoteId(activeController?.note.uuid);
}
);
const removeNoteObserver =
application?.editorGroup.addActiveControllerChangeObserver(
activeController => {
setActiveNoteId(activeController?.note.uuid);
}
);
return () => {
if (removeApplicationStateEventHandler) {
removeApplicationStateEventHandler();

View File

@@ -15,8 +15,7 @@ const URLS = {
privacy: 'https://standardnotes.com/privacy',
help: 'https://standardnotes.com/help',
rate: Platform.select({
ios:
'https://itunes.apple.com/us/app/standard-notes/id1285392450?ls=1&mt=8',
ios: 'https://itunes.apple.com/us/app/standard-notes/id1285392450?ls=1&mt=8',
android: 'market://details?id=com.standardnotes',
}) as string,
};

View File

@@ -25,9 +25,10 @@ export const OptionsSection = ({ title, encryptionAvailable }: Props) => {
// Context
const application = useContext(ApplicationContext);
const [signedIn] = useSignedIn();
const navigation = useNavigation<
ModalStackNavigationProp<typeof SCREEN_SETTINGS>['navigation']
>();
const navigation =
useNavigation<
ModalStackNavigationProp<typeof SCREEN_SETTINGS>['navigation']
>();
// State
const [importing, setImporting] = useState(false);
@@ -87,7 +88,7 @@ export const OptionsSection = ({ title, encryptionAvailable }: Props) => {
ButtonType.Danger
)
) {
await application!.signOut();
await application!.user.signOut();
}
};
@@ -137,9 +138,10 @@ export const OptionsSection = ({ title, encryptionAvailable }: Props) => {
const onImportPress = async () => {
try {
const selectedFile = await DocumentPicker.pick({
const selectedFiles = await DocumentPicker.pick({
type: [DocumentPicker.types.plainText],
});
const selectedFile = selectedFiles[0];
const selectedFileURI =
Platform.OS === 'ios'
? decodeURIComponent(selectedFile.uri)

View File

@@ -24,9 +24,10 @@ type Props = {
};
export const SecuritySection = (props: Props) => {
const navigation = useNavigation<
ModalStackNavigationProp<typeof SCREEN_SETTINGS>['navigation']
>();
const navigation =
useNavigation<
ModalStackNavigationProp<typeof SCREEN_SETTINGS>['navigation']
>();
// Context
const application = useContext(ApplicationContext);
@@ -68,7 +69,9 @@ export const SecuritySection = (props: Props) => {
};
getHasBiometrics();
const hasBiometricsSupport = async () => {
const hasBiometricsAvailable = await (application?.deviceInterface as MobileDeviceInterface).getDeviceBiometricsAvailability();
const hasBiometricsAvailable = await (
application?.deviceInterface as MobileDeviceInterface
).getDeviceBiometricsAvailability();
if (mounted) {
setSupportsBiometrics(hasBiometricsAvailable);
}

View File

@@ -37,10 +37,8 @@ export const Listed: FC<TProps> = ({ note }) => {
const [listedAccountDetails, setListedAccountDetails] = useState<
TListedAccountItem[]
>([]);
const [
authorUrlWithInProgressAction,
setAuthorUrlWithInProgressAction,
] = useState<string | null>(null);
const [authorUrlWithInProgressAction, setAuthorUrlWithInProgressAction] =
useState<string | null>(null);
const { showActionSheet } = useCustomActionSheet();

View File

@@ -26,7 +26,7 @@ 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 { ThemeContext } from 'styled-components';
import {
FirstSafeAreaView,
MainSafeAreaView,
@@ -261,7 +261,7 @@ export const MainSideMenu = React.memo(({ drawerRef }: Props) => {
const openSettings = () => {
drawerRef?.closeDrawer();
navigation?.navigate(SCREEN_SETTINGS);
navigation?.navigate(SCREEN_SETTINGS as never);
};
const outOfSyncPressed = async () => {

View File

@@ -51,7 +51,7 @@ 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 { ThemeContext } from 'styled-components';
import { SafeAreaContainer, useStyles } from './NoteSideMenu.styled';
import {
SideMenuOption,
@@ -101,9 +101,10 @@ export const NoteSideMenu = React.memo((props: Props) => {
// Context
const theme = useContext(ThemeContext);
const application = useContext(ApplicationContext);
const navigation = useNavigation<
AppStackNavigationProp<typeof SCREEN_COMPOSE>['navigation']
>();
const navigation =
useNavigation<
AppStackNavigationProp<typeof SCREEN_COMPOSE>['navigation']
>();
const { showActionSheet } = useCustomActionSheet();
const styles = useStyles(theme);
@@ -154,16 +155,15 @@ export const NoteSideMenu = React.memo((props: Props) => {
useEffect(() => {
let mounted = true;
const removeEditorObserver = application?.editorGroup.addActiveControllerChangeObserver(
() => {
const removeEditorObserver =
application?.editorGroup.addActiveControllerChangeObserver(() => {
if (mounted) {
const activeController =
application?.editorGroup.activeNoteViewController;
setNote(activeController?.note);
setEditor(activeController);
}
}
);
});
return () => {
mounted = false;
@@ -575,7 +575,7 @@ export const NoteSideMenu = React.memo((props: Props) => {
mutator.removeItemAsRelationship(note);
});
} else {
await application?.addTagHierarchyToNote(note, tag as SNTag);
await application?.items.addTagToNote(note, tag as SNTag, true);
}
}
reloadTags();
@@ -607,12 +607,8 @@ export const NoteSideMenu = React.memo((props: Props) => {
selectedTags,
}))}
renderItem={({ item }) => {
const {
OptionsSection,
EditorsSection,
ListedSection,
TagsSection,
} = MenuSections;
const { OptionsSection, EditorsSection, ListedSection, TagsSection } =
MenuSections;
if (item.key === OptionsSection) {
return (

View File

@@ -1,7 +1,7 @@
import { Circle } from '@Components/Circle';
import React, { useContext } from 'react';
import Icon from 'react-native-vector-icons/Ionicons';
import { ThemeContext } from 'styled-components/native';
import { ThemeContext } from 'styled-components';
import {
CellContent,
IconAscii,

View File

@@ -4,7 +4,7 @@ import { ApplicationContext } from '@Root/ApplicationContext';
import { ContentType } from '@standardnotes/snjs';
import React, { useContext, useEffect, useMemo, useState } from 'react';
import { ViewProps } from 'react-native';
import { ThemeContext } from 'styled-components/native';
import { ThemeContext } from 'styled-components';
import {
Cell,
IconCircle,

View File

@@ -40,9 +40,10 @@ export const TagSelectionList = React.memo(
}: Props) => {
// Context
const application = useContext(ApplicationContext);
const navigation = useNavigation<
AppStackNavigationProp<typeof SCREEN_COMPOSE>['navigation']
>();
const navigation =
useNavigation<
AppStackNavigationProp<typeof SCREEN_COMPOSE>['navigation']
>();
const { showActionSheet } = useCustomActionSheet();
// State

View File

@@ -2,14 +2,18 @@ export const SCREEN_AUTHENTICATE = 'Authenticate';
export const SCREEN_NOTES = 'Notes' as 'Notes';
export const SCREEN_COMPOSE = 'Compose' as 'Compose';
export const SCREEN_INPUT_MODAL_PASSCODE = 'InputModalPasscode' as 'InputModalPasscode';
export const SCREEN_INPUT_MODAL_PASSCODE =
'InputModalPasscode' as 'InputModalPasscode';
export const SCREEN_INPUT_MODAL_TAG = 'InputModalTag' as 'InputModalTag';
export const SCREEN_NOTE_HISTORY = 'NoteSessionHistory' as 'NoteSessionHistory';
export const SCREEN_NOTE_HISTORY_PREVIEW = 'NoteSessionHistoryPreview' as 'NoteSessionHistoryPreview';
export const SCREEN_NOTE_HISTORY_PREVIEW =
'NoteSessionHistoryPreview' as 'NoteSessionHistoryPreview';
export const SCREEN_SETTINGS = 'Settings';
export const SCREEN_MANAGE_SESSIONS = 'ManageSessions' as 'ManageSessions';
export const MODAL_BLOCKING_ALERT = 'ModalBlockingAlert' as 'ModalBlockingAlert';
export const MODAL_BLOCKING_ALERT =
'ModalBlockingAlert' as 'ModalBlockingAlert';
export const SCREEN_VIEW_PROTECTED_NOTE = 'ViewProtectedNote' as 'ViewProtectedNote';
export const SCREEN_VIEW_PROTECTED_NOTE =
'ViewProtectedNote' as 'ViewProtectedNote';

View File

@@ -1,7 +1,7 @@
import { useActionSheet } from '@expo/react-native-action-sheet';
import React, { useContext } from 'react';
import { findNodeHandle } from 'react-native';
import { ThemeContext } from 'styled-components/native';
import { ThemeContext } from 'styled-components';
export type CustomActionSheetOption =
| {
@@ -59,7 +59,7 @@ export const useCustomActionSheet = () => {
anchor: anchor ? findNodeHandle(anchor) ?? undefined : undefined,
},
buttonIndex => {
let option = tempOptions[buttonIndex];
let option = tempOptions[buttonIndex!];
option.callback && option.callback(option);
}
);

View File

@@ -51,7 +51,7 @@ type MobileThemeContent = {
export class MobileTheme extends SNTheme {
get mobileContent() {
return (this.safeContent as any) as MobileThemeContent;
return this.safeContent as any as MobileThemeContent;
}
static BuildTheme(variables?: MobileThemeVariables) {
@@ -69,7 +69,6 @@ export class MobileTheme extends SNTheme {
}
}
// eslint-disable-next-line no-shadow
enum SystemThemeTint {
Blue = 'Blue',
Dark = 'Dark',

View File

@@ -1,36 +1,33 @@
{
"compilerOptions": {
/* Basic Options */
"target": "esnext",
"module": "ESNext",
"lib": ["ESNext"],
"allowJs": true,
"jsx": "react-native",
"noEmit": true,
"isolatedModules": false,
"strict": true,
"skipLibCheck": true,
// "noImplicitAny": false,
"moduleResolution": "node",
"baseUrl": "src",
"allowSyntheticDefaultImports": true,
"baseUrl": "src",
"esModuleInterop": true,
"isolatedModules": true,
"jsx": "react-native",
"lib": ["ESNext"],
"module": "ESNext",
"moduleResolution": "node",
"noEmit": true,
"noImplicitAny": true,
"resolveJsonModule": true,
"skipLibCheck": true,
"strict": true,
"target": "esnext",
"typeRoots": ["node_modules/@types", "./src/types/*"],
"paths": {
"@Components/*": ["./components/*"],
"@Lib/*": ["./lib/*"],
"@Screens/*": ["./screens/*"],
"@Style/*": ["./style/*"],
"@Root/*": ["./*"]
},
"types": ["jest"],
"typeRoots": ["./src/types/*", "node_modules/@types"],
"resolveJsonModule": true
}
},
"exclude": [
"node_modules",
"babel.config.js",
"metro.config.js",
"jest.config.js",
"types"
"jest.config.js"
]
}

6186
yarn.lock
View File

File diff suppressed because it is too large Load Diff