Просмотр исходного кода

Upgrade to react-native 0.76.0

monorepo
Guillaume Vincent 2 недель назад
Родитель
Сommit
63a8e88556
Не найден GPG ключ соответствующий данной подписи Идентификатор GPG ключа: 2F5D4A32E293E1D0
28 измененных файлов: 4120 добавлений и 3120 удалений
  1. +0
    -894
      .yarn/releases/yarn-4.3.1.cjs
  2. +934
    -0
      .yarn/releases/yarn-4.5.1.cjs
  3. +1
    -1
      .yarnrc.yml
  4. +1
    -1
      package.json
  5. +5
    -5
      packages/lesspass-api/package.json
  6. +3
    -3
      packages/lesspass-crypto/package.json
  7. +3
    -3
      packages/lesspass-entropy/package.json
  8. +4
    -4
      packages/lesspass-fingerprint/package.json
  9. +3
    -4
      packages/lesspass-mobile/Gemfile
  10. +10
    -9
      packages/lesspass-mobile/android/app/build.gradle
  11. +2
    -1
      packages/lesspass-mobile/android/app/src/main/AndroidManifest.xml
  12. +2
    -2
      packages/lesspass-mobile/android/app/src/main/java/com/lesspass/MainApplication.kt
  13. +4
    -4
      packages/lesspass-mobile/android/build.gradle
  14. +1
    -3
      packages/lesspass-mobile/android/gradle.properties
  15. +1
    -1
      packages/lesspass-mobile/android/gradle/wrapper/gradle-wrapper.properties
  16. +5
    -2
      packages/lesspass-mobile/android/gradlew
  17. +2
    -0
      packages/lesspass-mobile/android/gradlew.bat
  18. +3
    -1
      packages/lesspass-mobile/android/settings.gradle
  19. +73
    -72
      packages/lesspass-mobile/ios/LessPass.xcodeproj/project.pbxproj
  20. +790
    -303
      packages/lesspass-mobile/ios/Podfile.lock
  21. +3
    -3
      packages/lesspass-mobile/jest.config.js
  22. +24
    -21
      packages/lesspass-mobile/package.json
  23. +42
    -36
      packages/lesspass-mobile/src/auth/SignInScreen.js
  24. +4
    -0
      packages/lesspass-mobile/src/setup-jest.js
  25. +1
    -1
      packages/lesspass-mobile/src/version.json
  26. +3
    -3
      packages/lesspass-render-password/package.json
  27. +3
    -3
      packages/lesspass/package.json
  28. +2193
    -1740
      yarn.lock

+ 0
- 894
.yarn/releases/yarn-4.3.1.cjs
Разница между файлами не показана из-за своего большого размера
Просмотреть файл


+ 934
- 0
.yarn/releases/yarn-4.5.1.cjs
Разница между файлами не показана из-за своего большого размера
Просмотреть файл


+ 1
- 1
.yarnrc.yml Просмотреть файл

@@ -1,3 +1,3 @@
nodeLinker: node-modules

yarnPath: .yarn/releases/yarn-4.3.1.cjs
yarnPath: .yarn/releases/yarn-4.5.1.cjs

+ 1
- 1
package.json Просмотреть файл

@@ -14,5 +14,5 @@
"clean": "yarn workspaces foreach --verbose --all run clean && rm -rf node_modules",
"test": "yarn workspaces foreach --verbose --all run test"
},
"packageManager": "yarn@4.3.1"
"packageManager": "yarn@4.5.1"
}

+ 5
- 5
packages/lesspass-api/package.json Просмотреть файл

@@ -20,13 +20,13 @@
"test:watch": "vitest watch"
},
"dependencies": {
"axios": "^1.7.2",
"axios": "^1.7.7",
"lesspass": "workspace:^"
},
"devDependencies": {
"msw": "^2.3.2",
"tsup": "^8.2.2",
"typescript": "^5.5.3",
"vitest": "^2.0.4"
"msw": "^2.5.2",
"tsup": "^8.3.5",
"typescript": "^5.6.3",
"vitest": "^2.1.3"
}
}

+ 3
- 3
packages/lesspass-crypto/package.json Просмотреть файл

@@ -20,8 +20,8 @@
"test:watch": "vitest watch"
},
"devDependencies": {
"tsup": "^8.2.2",
"typescript": "^5.5.3",
"vitest": "^2.0.4"
"tsup": "^8.3.5",
"typescript": "^5.6.3",
"vitest": "^2.1.3"
}
}

+ 3
- 3
packages/lesspass-entropy/package.json Просмотреть файл

@@ -30,8 +30,8 @@
"lesspass-crypto": "workspace:*"
},
"devDependencies": {
"tsup": "^8.2.2",
"typescript": "^5.5.3",
"vitest": "^2.0.4"
"tsup": "^8.3.5",
"typescript": "^5.6.3",
"vitest": "^2.1.3"
}
}

+ 4
- 4
packages/lesspass-fingerprint/package.json Просмотреть файл

@@ -30,9 +30,9 @@
"lesspass-crypto": "workspace:*"
},
"devDependencies": {
"@types/node": "^20.14.11",
"tsup": "^8.2.2",
"typescript": "^5.5.3",
"vitest": "^2.0.4"
"@types/node": "^20.17.1",
"tsup": "^8.3.5",
"typescript": "^5.6.3",
"vitest": "^2.1.3"
}
}

+ 3
- 4
packages/lesspass-mobile/Gemfile Просмотреть файл

@@ -3,7 +3,6 @@ source 'https://rubygems.org'
# You may use http://rbenv.org/ or https://rvm.io/ to install and use this version
ruby ">= 2.6.10"

# Cocoapods 1.15 introduced a bug which break the build. We will remove the upper
# bound in the template on Cocoapods with next React Native release.
gem 'cocoapods', '>= 1.13', '< 1.15'
gem 'activesupport', '>= 6.1.7.5', '< 7.1.0'
# Exclude problematic versions of cocoapods and activesupport that causes build failures.
gem 'cocoapods', '>= 1.13', '!= 1.15.0', '!= 1.15.1'
gem 'activesupport', '>= 6.1.7.5', '!= 7.1.0'

+ 10
- 9
packages/lesspass-mobile/android/app/build.gradle Просмотреть файл

@@ -18,13 +18,13 @@ apply from: "../../../../node_modules/react-native-vector-icons/fonts.gradle"
*/
react {
/* Folders */
// The root of your project, i.e. where "package.json" lives. Default is '..'
// root = file("../")
// The folder where the react-native NPM package is. Default is ../node_modules/react-native
// The root of your project, i.e. where "package.json" lives. Default is '../..'
// root = file("../../")
// The folder where the react-native NPM package is. Default is ../../node_modules/react-native
reactNativeDir = file("../../../../node_modules/react-native")
// The folder where the react-native Codegen package is. Default is ../node_modules/@react-native/codegen
// The folder where the react-native Codegen package is. Default is ../../node_modules/@react-native/codegen
codegenDir = file("../../../../node_modules/@react-native/codegen")
// The cli.js file which is the React Native CLI entrypoint. Default is ../node_modules/react-native/cli.js
// The cli.js file which is the React Native CLI entrypoint. Default is ../../node_modules/react-native/cli.js
cliFile = file("../../../../node_modules/react-native/cli.js")

/* Variants */
@@ -60,6 +60,9 @@ react {
//
// The list of flags to pass to the Hermes compiler. By default is "-O", "-output-source-map"
// hermesFlags = ["-O", "-output-source-map"]

/* Autolinking */
autolinkLibrariesWithApp()
}

/**
@@ -90,8 +93,8 @@ android {
applicationId "com.lesspass.android"
minSdkVersion rootProject.ext.minSdkVersion
targetSdkVersion rootProject.ext.targetSdkVersion
versionCode 900800100
versionName "9.8.1"
versionCode 900800200
versionName "9.8.2"
}
splits {
abi {
@@ -142,5 +145,3 @@ dependencies {
implementation jscFlavor
}
}

apply from: file("../../../../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesAppBuildGradle(project)

+ 2
- 1
packages/lesspass-mobile/android/app/src/main/AndroidManifest.xml Просмотреть файл

@@ -9,7 +9,8 @@
android:icon="@mipmap/ic_launcher"
android:roundIcon="@mipmap/ic_launcher_round"
android:allowBackup="false"
android:theme="@style/AppTheme">
android:theme="@style/AppTheme"
android:supportsRtl="true">
<activity
android:name=".MainActivity"
android:label="@string/app_name"


+ 2
- 2
packages/lesspass-mobile/android/app/src/main/java/com/lesspass/MainApplication.kt Просмотреть файл

@@ -9,7 +9,7 @@ import com.facebook.react.ReactPackage
import com.facebook.react.defaults.DefaultNewArchitectureEntryPoint.load
import com.facebook.react.defaults.DefaultReactHost.getDefaultReactHost
import com.facebook.react.defaults.DefaultReactNativeHost
import com.facebook.react.flipper.ReactNativeFlipper
import com.facebook.react.soloader.OpenSourceMergedSoMapping
import com.facebook.soloader.SoLoader

class MainApplication : Application(), ReactApplication {
@@ -35,7 +35,7 @@ class MainApplication : Application(), ReactApplication {

override fun onCreate() {
super.onCreate()
SoLoader.init(this, false)
SoLoader.init(this, OpenSourceMergedSoMapping)
if (BuildConfig.IS_NEW_ARCHITECTURE_ENABLED) {
// If you opted-in for the New Architecture, we load the native entry point for this app.
load()


+ 4
- 4
packages/lesspass-mobile/android/build.gradle Просмотреть файл

@@ -1,12 +1,12 @@
buildscript {
ext {
buildToolsVersion = "34.0.0"
minSdkVersion = 23
compileSdkVersion = 34
buildToolsVersion = "35.0.0"
minSdkVersion = 24
compileSdkVersion = 35
targetSdkVersion = 34

ndkVersion = "26.1.10909125"
kotlinVersion = "1.9.22"
kotlinVersion = "1.9.24"
}
repositories {
google()


+ 1
- 3
packages/lesspass-mobile/android/gradle.properties Просмотреть файл

@@ -21,8 +21,6 @@ org.gradle.jvmargs=-Xmx2048m -XX:MaxMetaspaceSize=512m
# Android operating system, and which are packaged with your app's APK
# https://developer.android.com/topic/libraries/support-library/androidx-rn
android.useAndroidX=true
# Automatically convert third-party libraries to use AndroidX
android.enableJetifier=true

# Use this property to specify which architecture you want to build.
# You can also override it from the CLI using
@@ -34,7 +32,7 @@ reactNativeArchitectures=armeabi-v7a,arm64-v8a,x86,x86_64
# your application. You should enable this flag either if you want
# to write custom TurboModules/Fabric components OR use libraries that
# are providing them.
newArchEnabled=false
newArchEnabled=true

# Use this property to enable or disable the Hermes JS engine.
# If set to false, you will be using JSC instead.


+ 1
- 1
packages/lesspass-mobile/android/gradle/wrapper/gradle-wrapper.properties Просмотреть файл

@@ -1,6 +1,6 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.6-all.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-8.10.2-all.zip
networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME


+ 5
- 2
packages/lesspass-mobile/android/gradlew Просмотреть файл

@@ -15,6 +15,8 @@
# See the License for the specific language governing permissions and
# limitations under the License.
#
# SPDX-License-Identifier: Apache-2.0
#

##############################################################################
#
@@ -55,7 +57,7 @@
# Darwin, MinGW, and NonStop.
#
# (3) This script is generated from the Groovy template
# https://github.com/gradle/gradle/blob/HEAD/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
# https://github.com/gradle/gradle/blob/HEAD/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
# within the Gradle project.
#
# You can find Gradle at https://github.com/gradle/gradle/.
@@ -84,7 +86,8 @@ done
# shellcheck disable=SC2034
APP_BASE_NAME=${0##*/}
# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036)
APP_HOME=$( cd "${APP_HOME:-./}" > /dev/null && pwd -P ) || exit
APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s
' "$PWD" ) || exit

# Use the maximum available, or set MAX_FD != -1 to use that value.
MAX_FD=maximum


+ 2
- 0
packages/lesspass-mobile/android/gradlew.bat Просмотреть файл

@@ -13,6 +13,8 @@
@rem See the License for the specific language governing permissions and
@rem limitations under the License.
@rem
@rem SPDX-License-Identifier: Apache-2.0
@rem

@if "%DEBUG%"=="" @echo off
@rem ##########################################################################


+ 3
- 1
packages/lesspass-mobile/android/settings.gradle Просмотреть файл

@@ -1,4 +1,6 @@
pluginManagement { includeBuild("../../../node_modules/@react-native/gradle-plugin") }
plugins { id("com.facebook.react.settings") }
extensions.configure(com.facebook.react.ReactSettingsExtension){ ex -> ex.autolinkLibrariesFromCommand() }
rootProject.name = 'LessPass'
apply from: file("../../../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesSettingsGradle(settings)
include ':app'
includeBuild('../../../node_modules/@react-native/gradle-plugin')

+ 73
- 72
packages/lesspass-mobile/ios/LessPass.xcodeproj/project.pbxproj Просмотреть файл

@@ -8,17 +8,17 @@

/* Begin PBXBuildFile section */
00E356F31AD99517003FC87E /* LessPassTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 00E356F21AD99517003FC87E /* LessPassTests.m */; };
038180A07B49F18FE4F3B071 /* libPods-LessPass.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 0074C345151C69409974770C /* libPods-LessPass.a */; };
13B07FBC1A68108700A75B9A /* AppDelegate.mm in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB01A68108700A75B9A /* AppDelegate.mm */; };
13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB51A68108700A75B9A /* Images.xcassets */; };
13B07FC11A68108700A75B9A /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB71A68108700A75B9A /* main.m */; };
4C363A4362CAE67914B26A5F /* libPods-LessPass.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 7CE57D6C678CDE9D27F9970A /* libPods-LessPass.a */; };
CF2926E8A9336216A63C13AB /* libPods-LessPass-LessPassTests.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 6F29232AA18E83D178D8467F /* libPods-LessPass-LessPassTests.a */; };
DC7B76D30F83D23287440BBF /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 41D9B376B1FE82DBD050AAF7 /* PrivacyInfo.xcprivacy */; };
F01630942B90D51C003D8E89 /* LessPassClipboardModule.m in Sources */ = {isa = PBXBuildFile; fileRef = F01630932B90D51C003D8E89 /* LessPassClipboardModule.m */; };
F01630952B90D51C003D8E89 /* LessPassClipboardModule.m in Sources */ = {isa = PBXBuildFile; fileRef = F01630932B90D51C003D8E89 /* LessPassClipboardModule.m */; };
F04538A52B90CAD700A806A5 /* LessPassModule.m in Sources */ = {isa = PBXBuildFile; fileRef = F04538A42B90CAD700A806A5 /* LessPassModule.m */; };
F04538A62B90CAD700A806A5 /* LessPassModule.m in Sources */ = {isa = PBXBuildFile; fileRef = F04538A42B90CAD700A806A5 /* LessPassModule.m */; };
F079B8BA2B90994C0055CF28 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */; };
F8C2052ADE1DA4DA35796B95 /* libPods-LessPass-LessPassTests.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 39481A55036568756DA6159C /* libPods-LessPass-LessPassTests.a */; };
/* End PBXBuildFile section */

/* Begin PBXContainerItemProxy section */
@@ -32,11 +32,10 @@
/* End PBXContainerItemProxy section */

/* Begin PBXFileReference section */
0074C345151C69409974770C /* libPods-LessPass.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-LessPass.a"; sourceTree = BUILT_PRODUCTS_DIR; };
00E356EE1AD99517003FC87E /* LessPassTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = LessPassTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
00E356F11AD99517003FC87E /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
00E356F21AD99517003FC87E /* LessPassTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = LessPassTests.m; sourceTree = "<group>"; };
0EFF85CEE159626FFE78FF6F /* Pods-LessPass.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-LessPass.release.xcconfig"; path = "Target Support Files/Pods-LessPass/Pods-LessPass.release.xcconfig"; sourceTree = "<group>"; };
0E13627209E974420C1877C1 /* Pods-LessPass.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-LessPass.release.xcconfig"; path = "Target Support Files/Pods-LessPass/Pods-LessPass.release.xcconfig"; sourceTree = "<group>"; };
13B07F961A680F5B00A75B9A /* LessPass.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = LessPass.app; sourceTree = BUILT_PRODUCTS_DIR; };
13B07FAF1A68108700A75B9A /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AppDelegate.h; path = LessPass/AppDelegate.h; sourceTree = "<group>"; };
13B07FB01A68108700A75B9A /* AppDelegate.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = AppDelegate.mm; path = LessPass/AppDelegate.mm; sourceTree = "<group>"; };
@@ -44,11 +43,13 @@
13B07FB61A68108700A75B9A /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = LessPass/Info.plist; sourceTree = "<group>"; };
13B07FB71A68108700A75B9A /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = LessPass/main.m; sourceTree = "<group>"; };
13B07FB81A68108700A75B9A /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = PrivacyInfo.xcprivacy; path = LessPass/PrivacyInfo.xcprivacy; sourceTree = "<group>"; };
39481A55036568756DA6159C /* libPods-LessPass-LessPassTests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-LessPass-LessPassTests.a"; sourceTree = BUILT_PRODUCTS_DIR; };
3CD430795286C34D12AB68B4 /* Pods-LessPass-LessPassTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-LessPass-LessPassTests.release.xcconfig"; path = "Target Support Files/Pods-LessPass-LessPassTests/Pods-LessPass-LessPassTests.release.xcconfig"; sourceTree = "<group>"; };
41D9B376B1FE82DBD050AAF7 /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xml; name = PrivacyInfo.xcprivacy; path = LessPass/PrivacyInfo.xcprivacy; sourceTree = "<group>"; };
6F29232AA18E83D178D8467F /* libPods-LessPass-LessPassTests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-LessPass-LessPassTests.a"; sourceTree = BUILT_PRODUCTS_DIR; };
7CE57D6C678CDE9D27F9970A /* libPods-LessPass.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-LessPass.a"; sourceTree = BUILT_PRODUCTS_DIR; };
81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; name = LaunchScreen.storyboard; path = LessPass/LaunchScreen.storyboard; sourceTree = "<group>"; };
D06C1BF1896BDE08847177F0 /* Pods-LessPass-LessPassTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-LessPass-LessPassTests.debug.xcconfig"; path = "Target Support Files/Pods-LessPass-LessPassTests/Pods-LessPass-LessPassTests.debug.xcconfig"; sourceTree = "<group>"; };
EC67CC658D9033123C99F65D /* Pods-LessPass.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-LessPass.debug.xcconfig"; path = "Target Support Files/Pods-LessPass/Pods-LessPass.debug.xcconfig"; sourceTree = "<group>"; };
94325F89AA49E34CF539CBEF /* Pods-LessPass.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-LessPass.debug.xcconfig"; path = "Target Support Files/Pods-LessPass/Pods-LessPass.debug.xcconfig"; sourceTree = "<group>"; };
9FB2C41CB604C962B7F60E61 /* Pods-LessPass-LessPassTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-LessPass-LessPassTests.debug.xcconfig"; path = "Target Support Files/Pods-LessPass-LessPassTests/Pods-LessPass-LessPassTests.debug.xcconfig"; sourceTree = "<group>"; };
ED297162215061F000B7C4FE /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = System/Library/Frameworks/JavaScriptCore.framework; sourceTree = SDKROOT; };
F01630922B90D508003D8E89 /* LessPassClipboardModule.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = LessPassClipboardModule.h; sourceTree = "<group>"; };
F01630932B90D51C003D8E89 /* LessPassClipboardModule.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = LessPassClipboardModule.m; sourceTree = "<group>"; };
@@ -56,7 +57,6 @@
F04538A42B90CAD700A806A5 /* LessPassModule.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = LessPassModule.m; sourceTree = "<group>"; };
F079B89A2B908E0C0055CF28 /* MaterialCommunityIcons.ttf */ = {isa = PBXFileReference; lastKnownFileType = file; path = MaterialCommunityIcons.ttf; sourceTree = "<group>"; };
F079B8A02B908E0C0055CF28 /* FontAwesome.ttf */ = {isa = PBXFileReference; lastKnownFileType = file; path = FontAwesome.ttf; sourceTree = "<group>"; };
FE88B45FCFAC5C8924DC2017 /* Pods-LessPass-LessPassTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-LessPass-LessPassTests.release.xcconfig"; path = "Target Support Files/Pods-LessPass-LessPassTests/Pods-LessPass-LessPassTests.release.xcconfig"; sourceTree = "<group>"; };
/* End PBXFileReference section */

/* Begin PBXFrameworksBuildPhase section */
@@ -64,7 +64,7 @@
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
F8C2052ADE1DA4DA35796B95 /* libPods-LessPass-LessPassTests.a in Frameworks */,
CF2926E8A9336216A63C13AB /* libPods-LessPass-LessPassTests.a in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -72,7 +72,7 @@
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
038180A07B49F18FE4F3B071 /* libPods-LessPass.a in Frameworks */,
4C363A4362CAE67914B26A5F /* libPods-LessPass.a in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -116,8 +116,8 @@
isa = PBXGroup;
children = (
ED297162215061F000B7C4FE /* JavaScriptCore.framework */,
0074C345151C69409974770C /* libPods-LessPass.a */,
39481A55036568756DA6159C /* libPods-LessPass-LessPassTests.a */,
7CE57D6C678CDE9D27F9970A /* libPods-LessPass.a */,
6F29232AA18E83D178D8467F /* libPods-LessPass-LessPassTests.a */,
);
name = Frameworks;
sourceTree = "<group>";
@@ -160,10 +160,10 @@
BBD78D7AC51CEA395F1C20DB /* Pods */ = {
isa = PBXGroup;
children = (
EC67CC658D9033123C99F65D /* Pods-LessPass.debug.xcconfig */,
0EFF85CEE159626FFE78FF6F /* Pods-LessPass.release.xcconfig */,
D06C1BF1896BDE08847177F0 /* Pods-LessPass-LessPassTests.debug.xcconfig */,
FE88B45FCFAC5C8924DC2017 /* Pods-LessPass-LessPassTests.release.xcconfig */,
94325F89AA49E34CF539CBEF /* Pods-LessPass.debug.xcconfig */,
0E13627209E974420C1877C1 /* Pods-LessPass.release.xcconfig */,
9FB2C41CB604C962B7F60E61 /* Pods-LessPass-LessPassTests.debug.xcconfig */,
3CD430795286C34D12AB68B4 /* Pods-LessPass-LessPassTests.release.xcconfig */,
);
path = Pods;
sourceTree = "<group>";
@@ -185,12 +185,12 @@
isa = PBXNativeTarget;
buildConfigurationList = 00E357021AD99517003FC87E /* Build configuration list for PBXNativeTarget "LessPassTests" */;
buildPhases = (
6541F0E7149F6B8C9350314D /* [CP] Check Pods Manifest.lock */,
0CE47BBB9F789484D750D769 /* [CP] Check Pods Manifest.lock */,
00E356EA1AD99517003FC87E /* Sources */,
00E356EB1AD99517003FC87E /* Frameworks */,
00E356EC1AD99517003FC87E /* Resources */,
716D1370D0948CA541C62AD0 /* [CP] Embed Pods Frameworks */,
1E94BE3A765E5999F03FDA76 /* [CP] Copy Pods Resources */,
9A937C78077D887CBD0CA4CD /* [CP] Embed Pods Frameworks */,
5F20F99322149915F030C18B /* [CP] Copy Pods Resources */,
);
buildRules = (
);
@@ -206,13 +206,13 @@
isa = PBXNativeTarget;
buildConfigurationList = 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "LessPass" */;
buildPhases = (
779F53E26412F48D70CFCC11 /* [CP] Check Pods Manifest.lock */,
44E9B9821C48F6C2DA95422E /* [CP] Check Pods Manifest.lock */,
13B07F871A680F5B00A75B9A /* Sources */,
13B07F8C1A680F5B00A75B9A /* Frameworks */,
13B07F8E1A680F5B00A75B9A /* Resources */,
00DD1BFF1BD5951E006B06BC /* Bundle React Native code and images */,
07196CFD4C7B9EA469C41153 /* [CP] Embed Pods Frameworks */,
4AECEFC9F01093F210132791 /* [CP] Copy Pods Resources */,
147190FE883535080F7AEDB1 /* [CP] Embed Pods Frameworks */,
8583213257D0B8837ADA761B /* [CP] Copy Pods Resources */,
);
buildRules = (
);
@@ -296,116 +296,116 @@
shellPath = /bin/sh;
shellScript = "set -e\n\nWITH_ENVIRONMENT=\"$REACT_NATIVE_PATH/scripts/xcode/with-environment.sh\"\nREACT_NATIVE_XCODE=\"$REACT_NATIVE_PATH/scripts/react-native-xcode.sh\"\n\n/bin/sh -c \"$WITH_ENVIRONMENT $REACT_NATIVE_XCODE\"\n";
};
07196CFD4C7B9EA469C41153 /* [CP] Embed Pods Frameworks */ = {
0CE47BBB9F789484D750D769 /* [CP] Check Pods Manifest.lock */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputFileListPaths = (
"${PODS_ROOT}/Target Support Files/Pods-LessPass/Pods-LessPass-frameworks-${CONFIGURATION}-input-files.xcfilelist",
);
name = "[CP] Embed Pods Frameworks";
inputPaths = (
"${PODS_PODFILE_DIR_PATH}/Podfile.lock",
"${PODS_ROOT}/Manifest.lock",
);
name = "[CP] Check Pods Manifest.lock";
outputFileListPaths = (
"${PODS_ROOT}/Target Support Files/Pods-LessPass/Pods-LessPass-frameworks-${CONFIGURATION}-output-files.xcfilelist",
);
outputPaths = (
"$(DERIVED_FILE_DIR)/Pods-LessPass-LessPassTests-checkManifestLockResult.txt",
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-LessPass/Pods-LessPass-frameworks.sh\"\n";
shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
showEnvVarsInLog = 0;
};
1E94BE3A765E5999F03FDA76 /* [CP] Copy Pods Resources */ = {
147190FE883535080F7AEDB1 /* [CP] Embed Pods Frameworks */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputFileListPaths = (
"${PODS_ROOT}/Target Support Files/Pods-LessPass-LessPassTests/Pods-LessPass-LessPassTests-resources-${CONFIGURATION}-input-files.xcfilelist",
"${PODS_ROOT}/Target Support Files/Pods-LessPass/Pods-LessPass-frameworks-${CONFIGURATION}-input-files.xcfilelist",
);
name = "[CP] Copy Pods Resources";
name = "[CP] Embed Pods Frameworks";
outputFileListPaths = (
"${PODS_ROOT}/Target Support Files/Pods-LessPass-LessPassTests/Pods-LessPass-LessPassTests-resources-${CONFIGURATION}-output-files.xcfilelist",
"${PODS_ROOT}/Target Support Files/Pods-LessPass/Pods-LessPass-frameworks-${CONFIGURATION}-output-files.xcfilelist",
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-LessPass-LessPassTests/Pods-LessPass-LessPassTests-resources.sh\"\n";
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-LessPass/Pods-LessPass-frameworks.sh\"\n";
showEnvVarsInLog = 0;
};
4AECEFC9F01093F210132791 /* [CP] Copy Pods Resources */ = {
44E9B9821C48F6C2DA95422E /* [CP] Check Pods Manifest.lock */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputFileListPaths = (
"${PODS_ROOT}/Target Support Files/Pods-LessPass/Pods-LessPass-resources-${CONFIGURATION}-input-files.xcfilelist",
);
name = "[CP] Copy Pods Resources";
inputPaths = (
"${PODS_PODFILE_DIR_PATH}/Podfile.lock",
"${PODS_ROOT}/Manifest.lock",
);
name = "[CP] Check Pods Manifest.lock";
outputFileListPaths = (
"${PODS_ROOT}/Target Support Files/Pods-LessPass/Pods-LessPass-resources-${CONFIGURATION}-output-files.xcfilelist",
);
outputPaths = (
"$(DERIVED_FILE_DIR)/Pods-LessPass-checkManifestLockResult.txt",
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-LessPass/Pods-LessPass-resources.sh\"\n";
shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
showEnvVarsInLog = 0;
};
6541F0E7149F6B8C9350314D /* [CP] Check Pods Manifest.lock */ = {
5F20F99322149915F030C18B /* [CP] Copy Pods Resources */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputFileListPaths = (
"${PODS_ROOT}/Target Support Files/Pods-LessPass-LessPassTests/Pods-LessPass-LessPassTests-resources-${CONFIGURATION}-input-files.xcfilelist",
);
inputPaths = (
"${PODS_PODFILE_DIR_PATH}/Podfile.lock",
"${PODS_ROOT}/Manifest.lock",
);
name = "[CP] Check Pods Manifest.lock";
name = "[CP] Copy Pods Resources";
outputFileListPaths = (
);
outputPaths = (
"$(DERIVED_FILE_DIR)/Pods-LessPass-LessPassTests-checkManifestLockResult.txt",
"${PODS_ROOT}/Target Support Files/Pods-LessPass-LessPassTests/Pods-LessPass-LessPassTests-resources-${CONFIGURATION}-output-files.xcfilelist",
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-LessPass-LessPassTests/Pods-LessPass-LessPassTests-resources.sh\"\n";
showEnvVarsInLog = 0;
};
716D1370D0948CA541C62AD0 /* [CP] Embed Pods Frameworks */ = {
8583213257D0B8837ADA761B /* [CP] Copy Pods Resources */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputFileListPaths = (
"${PODS_ROOT}/Target Support Files/Pods-LessPass-LessPassTests/Pods-LessPass-LessPassTests-frameworks-${CONFIGURATION}-input-files.xcfilelist",
"${PODS_ROOT}/Target Support Files/Pods-LessPass/Pods-LessPass-resources-${CONFIGURATION}-input-files.xcfilelist",
);
name = "[CP] Embed Pods Frameworks";
name = "[CP] Copy Pods Resources";
outputFileListPaths = (
"${PODS_ROOT}/Target Support Files/Pods-LessPass-LessPassTests/Pods-LessPass-LessPassTests-frameworks-${CONFIGURATION}-output-files.xcfilelist",
"${PODS_ROOT}/Target Support Files/Pods-LessPass/Pods-LessPass-resources-${CONFIGURATION}-output-files.xcfilelist",
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-LessPass-LessPassTests/Pods-LessPass-LessPassTests-frameworks.sh\"\n";
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-LessPass/Pods-LessPass-resources.sh\"\n";
showEnvVarsInLog = 0;
};
779F53E26412F48D70CFCC11 /* [CP] Check Pods Manifest.lock */ = {
9A937C78077D887CBD0CA4CD /* [CP] Embed Pods Frameworks */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputFileListPaths = (
"${PODS_ROOT}/Target Support Files/Pods-LessPass-LessPassTests/Pods-LessPass-LessPassTests-frameworks-${CONFIGURATION}-input-files.xcfilelist",
);
inputPaths = (
"${PODS_PODFILE_DIR_PATH}/Podfile.lock",
"${PODS_ROOT}/Manifest.lock",
);
name = "[CP] Check Pods Manifest.lock";
name = "[CP] Embed Pods Frameworks";
outputFileListPaths = (
);
outputPaths = (
"$(DERIVED_FILE_DIR)/Pods-LessPass-checkManifestLockResult.txt",
"${PODS_ROOT}/Target Support Files/Pods-LessPass-LessPassTests/Pods-LessPass-LessPassTests-frameworks-${CONFIGURATION}-output-files.xcfilelist",
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-LessPass-LessPassTests/Pods-LessPass-LessPassTests-frameworks.sh\"\n";
showEnvVarsInLog = 0;
};
/* End PBXShellScriptBuildPhase section */
@@ -445,7 +445,7 @@
/* Begin XCBuildConfiguration section */
00E356F61AD99517003FC87E /* Debug */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = D06C1BF1896BDE08847177F0 /* Pods-LessPass-LessPassTests.debug.xcconfig */;
baseConfigurationReference = 9FB2C41CB604C962B7F60E61 /* Pods-LessPass-LessPassTests.debug.xcconfig */;
buildSettings = {
BUNDLE_LOADER = "$(TEST_HOST)";
GCC_PREPROCESSOR_DEFINITIONS = (
@@ -453,7 +453,7 @@
"$(inherited)",
);
INFOPLIST_FILE = LessPassTests/Info.plist;
IPHONEOS_DEPLOYMENT_TARGET = 13.4;
IPHONEOS_DEPLOYMENT_TARGET = 15.1;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
@@ -472,12 +472,12 @@
};
00E356F71AD99517003FC87E /* Release */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = FE88B45FCFAC5C8924DC2017 /* Pods-LessPass-LessPassTests.release.xcconfig */;
baseConfigurationReference = 3CD430795286C34D12AB68B4 /* Pods-LessPass-LessPassTests.release.xcconfig */;
buildSettings = {
BUNDLE_LOADER = "$(TEST_HOST)";
COPY_PHASE_STRIP = NO;
INFOPLIST_FILE = LessPassTests/Info.plist;
IPHONEOS_DEPLOYMENT_TARGET = 13.4;
IPHONEOS_DEPLOYMENT_TARGET = 15.1;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
@@ -496,7 +496,7 @@
};
13B07F941A680F5B00A75B9A /* Debug */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = EC67CC658D9033123C99F65D /* Pods-LessPass.debug.xcconfig */;
baseConfigurationReference = 94325F89AA49E34CF539CBEF /* Pods-LessPass.debug.xcconfig */;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CLANG_ENABLE_MODULES = YES;
@@ -507,7 +507,7 @@
"$(inherited)",
"@executable_path/Frameworks",
);
MARKETING_VERSION = 9.8.1;
MARKETING_VERSION = 9.8.2;
OTHER_LDFLAGS = (
"$(inherited)",
"-ObjC",
@@ -527,7 +527,7 @@
};
13B07F951A680F5B00A75B9A /* Release */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 0EFF85CEE159626FFE78FF6F /* Pods-LessPass.release.xcconfig */;
baseConfigurationReference = 0E13627209E974420C1877C1 /* Pods-LessPass.release.xcconfig */;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CLANG_ENABLE_MODULES = YES;
@@ -538,7 +538,7 @@
"$(inherited)",
"@executable_path/Frameworks",
);
MARKETING_VERSION = 9.8.1;
MARKETING_VERSION = 9.8.2;
OTHER_LDFLAGS = (
"$(inherited)",
"-ObjC",
@@ -606,7 +606,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 13.4;
IPHONEOS_DEPLOYMENT_TARGET = 15.1;
LD = "";
LDPLUSPLUS = "";
LD_RUNPATH_SEARCH_PATHS = (
@@ -635,6 +635,7 @@
);
REACT_NATIVE_PATH = "${PODS_ROOT}/../../../../node_modules/react-native";
SDKROOT = iphoneos;
SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) DEBUG";
USE_HERMES = true;
};
name = Debug;
@@ -683,7 +684,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 13.4;
IPHONEOS_DEPLOYMENT_TARGET = 15.1;
LD = "";
LDPLUSPLUS = "";
LD_RUNPATH_SEARCH_PATHS = (


+ 790
- 303
packages/lesspass-mobile/ios/Podfile.lock
Разница между файлами не показана из-за своего большого размера
Просмотреть файл


+ 3
- 3
packages/lesspass-mobile/jest.config.js Просмотреть файл

@@ -1,7 +1,7 @@
module.exports = {
preset: 'react-native',
setupFiles: ['<rootDir>/src/setup-jest.js'],
transform: {
'\\.js$': '<rootDir>/node_modules/babel-jest',
},
transformIgnorePatterns: [
"/node_modules/(?!react-redux)/"
],
};

+ 24
- 21
packages/lesspass-mobile/package.json Просмотреть файл

@@ -1,6 +1,6 @@
{
"name": "lesspass-mobile",
"version": "9.8.1",
"version": "9.8.2",
"description": "LessPass mobile application",
"license": "(MPL-2.0 OR GPL-3.0)",
"author": "Guillaume Vincent <guillaume@oslab.fr>",
@@ -16,43 +16,46 @@
"@react-native-async-storage/async-storage": "^1.24.0",
"@react-navigation/bottom-tabs": "^6.6.1",
"@react-navigation/native": "^6.1.18",
"@react-navigation/native-stack": "^6.10.1",
"@react-navigation/native-stack": "^6.11.0",
"@react-navigation/stack": "^6.4.1",
"@reduxjs/toolkit": "^2.2.6",
"fuzzysort": "^3.0.2",
"@reduxjs/toolkit": "^2.3.0",
"fuzzysort": "^3.1.0",
"lesspass-api": "workspace:*",
"lesspass-fingerprint": "workspace:*",
"lesspass-render-password": "workspace:*",
"lodash": "^4.17.21",
"react": "18.3.1",
"react-native": "0.74.3",
"react-native-gesture-handler": "^2.17.1",
"react-native": "0.76.0",
"react-native-gesture-handler": "^2.20.2",
"react-native-keychain": "^8.2.0",
"react-native-paper": "^5.12.3",
"react-native-safe-area-context": "^4.10.8",
"react-native-screens": "^3.32.0",
"react-native-paper": "^5.12.5",
"react-native-safe-area-context": "^4.12.0",
"react-native-screens": "^3.35.0",
"react-native-touch-id": "^4.4.1",
"react-native-vector-icons": "^10.1.0",
"react-native-vector-icons": "^10.2.0",
"react-redux": "^9.1.2",
"redux-persist": "^6.0.0"
},
"devDependencies": {
"@babel/core": "^7.20.0",
"@babel/preset-env": "^7.20.0",
"@babel/runtime": "^7.20.0",
"@react-native/babel-preset": "0.74.85",
"@react-native/eslint-config": "0.74.85",
"@react-native/metro-config": "0.74.85",
"@react-native/typescript-config": "0.74.85",
"@types/lodash": "^4.17.7",
"@types/react": "^18.3.3",
"@babel/core": "^7.26.0",
"@babel/preset-env": "^7.26.0",
"@babel/runtime": "^7.26.0",
"@react-native-community/cli": "15.0.0",
"@react-native-community/cli-platform-android": "15.0.0",
"@react-native-community/cli-platform-ios": "15.0.0",
"@react-native/babel-preset": "0.76.0",
"@react-native/eslint-config": "0.76.0",
"@react-native/metro-config": "0.76.0",
"@react-native/typescript-config": "0.76.0",
"@types/lodash": "^4.17.12",
"@types/react": "^18.3.12",
"@types/react-test-renderer": "^18.3.0",
"babel-jest": "^29.7.0",
"eslint": "^9.7.0",
"eslint": "^9.13.0",
"jest": "^29.7.0",
"prettier": "3.3.3",
"react-test-renderer": "18.3.1",
"typescript": "5.5.3"
"typescript": "^5.6.3"
},
"engines": {
"node": ">=18"


+ 42
- 36
packages/lesspass-mobile/src/auth/SignInScreen.js Просмотреть файл

@@ -1,38 +1,39 @@
import React, { useState } from "react";
import { useDispatch, useSelector } from "react-redux";
import { isEmpty } from "lodash";
import React, {useState} from 'react';
import {useDispatch, useSelector} from 'react-redux';
import {isEmpty} from 'lodash';
import {
KeyboardAvoidingView,
ScrollView,
Platform,
TouchableWithoutFeedback,
Keyboard,
} from "react-native";
import { Button, Title } from "react-native-paper";
import MasterPassword from "../password/MasterPassword";
import TextInput from "../ui/TextInput";
import Styles from "../ui/Styles";
import { addError } from "../errors/errorsActions";
import { signIn } from "./authActions";
import routes from "../routes";
import { useNavigation } from "@react-navigation/native";
import { setSettings } from "../settings/settingsActions";
Linking,
Text,
} from 'react-native';
import {Button, Paragraph, Title} from 'react-native-paper';
import MasterPassword from '../password/MasterPassword';
import TextInput from '../ui/TextInput';
import Styles from '../ui/Styles';
import {addError} from '../errors/errorsActions';
import {signIn} from './authActions';
import routes from '../routes';
import {useNavigation} from '@react-navigation/native';
import {setSettings} from '../settings/settingsActions';

export default function SignInScreen() {
const [email, setEmail] = useState("");
const [password, setPassword] = useState("");
const [email, setEmail] = useState('');
const [password, setPassword] = useState('');
const [isLoading, setIsLoading] = useState(false);
const navigation = useNavigation();
const dispatch = useDispatch();
const encryptMasterPassword = useSelector(
(state) => state.settings.encryptMasterPassword
state => state.settings.encryptMasterPassword,
);
const baseURL = useSelector((state) => state.settings.baseURL);
const baseURL = useSelector(state => state.settings.baseURL);
return (
<KeyboardAvoidingView
behavior={Platform.OS === "ios" ? "padding" : "height"}
style={Styles.container}
>
behavior={Platform.OS === 'ios' ? 'padding' : 'height'}
style={Styles.container}>
<TouchableWithoutFeedback onPress={Keyboard.dismiss}>
<ScrollView contentContainerStyle={Styles.innerContainer}>
<Title style={Styles.title}>Connect to your Lesspass Database</Title>
@@ -40,22 +41,22 @@ export default function SignInScreen() {
mode="outlined"
label="LessPass Database Url"
value={baseURL}
onChangeText={(text) => dispatch(setSettings(text))}
onChangeText={text => dispatch(setSettings(text))}
/>
<TextInput
mode="outlined"
label="Email"
value={email}
onChangeText={(text) => setEmail(text.trim())}
onChangeText={text => setEmail(text.trim())}
/>
<MasterPassword
label={encryptMasterPassword ? "Master Password" : "Password"}
label={encryptMasterPassword ? 'Master Password' : 'Password'}
masterPassword={password}
hideFingerprint={!encryptMasterPassword}
onChangeText={(password) => setPassword(password)}
onChangeText={password => setPassword(password)}
/>
<Button
icon={"account-circle"}
icon={'account-circle'}
mode="contained"
style={{
marginTop: 10,
@@ -70,30 +71,35 @@ export default function SignInScreen() {
email,
password,
},
encryptMasterPassword
)
encryptMasterPassword,
),
)
.then(() => navigation.navigate(routes.PASSWORD_GENERATOR))
.catch(() => {
setIsLoading(false);
let errorMessage =
"Unable to log in with provided credentials.";
'Unable to log in with provided credentials.';
if (encryptMasterPassword) {
errorMessage +=
" Your master password is encrypted. Uncheck this option in your settings if you don't use it.";
}
dispatch(addError(errorMessage));
});
}}
>
}}>
Sign In
</Button>
<Button
mode="text"
onPress={() => navigation.navigate(routes.SIGN_UP)}
>
Create an account
</Button>
<Paragraph>
LessPass Database is decommissioned. You must use your own server.{' '}
<Text
style={{color: 'blue'}}
onPress={() =>
Linking.openURL(
'https://blog.lesspass.com/2022-12-29/decommissioning-lesspass-database',
)
}>
See blog post
</Text>
</Paragraph>
</ScrollView>
</TouchableWithoutFeedback>
</KeyboardAvoidingView>


+ 4
- 0
packages/lesspass-mobile/src/setup-jest.js Просмотреть файл

@@ -1 +1,5 @@
import 'react-native-gesture-handler/jestSetup';

jest.mock('@react-native-async-storage/async-storage', () =>
require('@react-native-async-storage/async-storage/jest/async-storage-mock'),
);

+ 1
- 1
packages/lesspass-mobile/src/version.json Просмотреть файл

@@ -1,3 +1,3 @@
{
"version": "9.8.1"
"version": "9.8.2"
}

+ 3
- 3
packages/lesspass-render-password/package.json Просмотреть файл

@@ -20,8 +20,8 @@
"test:watch": "vitest watch"
},
"devDependencies": {
"tsup": "^8.2.2",
"typescript": "^5.5.3",
"vitest": "^2.0.4"
"tsup": "^8.3.5",
"typescript": "^5.6.3",
"vitest": "^2.1.3"
}
}

+ 3
- 3
packages/lesspass/package.json Просмотреть файл

@@ -25,8 +25,8 @@
"lesspass-render-password": "workspace:*"
},
"devDependencies": {
"tsup": "^8.2.2",
"typescript": "^5.5.3",
"vitest": "^2.0.4"
"tsup": "^8.3.5",
"typescript": "^5.6.3",
"vitest": "^2.1.3"
}
}

+ 2193
- 1740
yarn.lock
Разница между файлами не показана из-за своего большого размера
Просмотреть файл


Загрузка…
Отмена
Сохранить