one 2.6.18 → 2.6.19
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/One.podspec +2 -0
- package/android/src/main/java/com/margelo/nitro/one/HybridOneDevice.kt +124 -0
- package/android/src/main/java/com/margelo/nitro/one/HybridOneHaptics.kt +31 -0
- package/android/src/main/java/com/margelo/nitro/one/HybridOneImageManipulator.kt +25 -5
- package/android/src/main/java/com/margelo/nitro/one/HybridOneKeepAwake.kt +34 -9
- package/android/src/main/java/com/margelo/nitro/one/HybridOneSecureStore.kt +269 -78
- package/dist/cjs/index.cjs +3 -0
- package/dist/cjs/index.native.cjs +3 -0
- package/dist/cjs/index.native.js +3 -0
- package/dist/cjs/index.native.js.map +1 -1
- package/dist/cjs/one.cjs +1 -0
- package/dist/cjs/one.native.cjs +1 -0
- package/dist/cjs/one.native.js +1 -0
- package/dist/cjs/one.native.js.map +1 -1
- package/dist/cjs/platform/extras.cjs +4 -0
- package/dist/cjs/platform/extras.native.cjs +4 -0
- package/dist/cjs/platform/extras.native.js +4 -0
- package/dist/cjs/platform/extras.native.js.map +1 -1
- package/dist/cjs/platform/haptics/index.cjs +3 -0
- package/dist/cjs/platform/haptics/index.native.cjs +4 -0
- package/dist/cjs/platform/haptics/index.native.js +4 -0
- package/dist/cjs/platform/haptics/index.native.js.map +1 -1
- package/dist/cjs/platform/haptics/validation.cjs +28 -0
- package/dist/cjs/platform/haptics/validation.native.cjs +28 -0
- package/dist/cjs/platform/haptics/validation.native.js +28 -0
- package/dist/cjs/platform/haptics/validation.native.js.map +1 -1
- package/dist/cjs/platform/image-manipulator/index.cjs +10 -3
- package/dist/cjs/platform/image-manipulator/index.native.cjs +1 -0
- package/dist/cjs/platform/image-manipulator/index.native.js +1 -0
- package/dist/cjs/platform/image-manipulator/index.native.js.map +1 -1
- package/dist/cjs/platform/index.cjs +1 -0
- package/dist/cjs/platform/index.native.cjs +1 -0
- package/dist/cjs/platform/index.native.js +1 -0
- package/dist/cjs/platform/index.native.js.map +1 -1
- package/dist/cjs/platform/keep-awake/index.cjs +53 -14
- package/dist/cjs/platform/keep-awake/index.native.cjs +29 -2
- package/dist/cjs/platform/keep-awake/index.native.js +29 -2
- package/dist/cjs/platform/keep-awake/index.native.js.map +1 -1
- package/dist/cjs/platform/keep-awake/unavailable.cjs +11 -1
- package/dist/cjs/platform/keep-awake/unavailable.native.cjs +11 -1
- package/dist/cjs/platform/keep-awake/unavailable.native.js +11 -1
- package/dist/cjs/platform/keep-awake/unavailable.native.js.map +1 -1
- package/dist/cjs/platform/keep-awake/validate.cjs +15 -1
- package/dist/cjs/platform/keep-awake/validate.native.cjs +15 -1
- package/dist/cjs/platform/keep-awake/validate.native.js +15 -1
- package/dist/cjs/platform/keep-awake/validate.native.js.map +1 -1
- package/dist/cjs/platform/localization/index.cjs +100 -0
- package/dist/cjs/platform/localization/index.native.cjs +71 -0
- package/dist/cjs/platform/localization/index.native.js +73 -0
- package/dist/cjs/platform/localization/index.native.js.map +1 -0
- package/dist/cjs/platform/localization/map.cjs +86 -0
- package/dist/cjs/platform/localization/map.native.cjs +90 -0
- package/dist/cjs/platform/localization/map.native.js +92 -0
- package/dist/cjs/platform/localization/map.native.js.map +1 -0
- package/dist/cjs/platform/localization/types.cjs +16 -0
- package/dist/cjs/platform/localization/types.native.cjs +18 -0
- package/dist/cjs/platform/localization/types.native.js +20 -0
- package/dist/cjs/platform/localization/types.native.js.map +1 -0
- package/dist/cjs/platform/secure-store/index.cjs +12 -6
- package/dist/cjs/platform/secure-store/index.native.cjs +18 -12
- package/dist/cjs/platform/secure-store/index.native.js +18 -12
- package/dist/cjs/platform/secure-store/index.native.js.map +1 -1
- package/dist/cjs/platform/secure-store/types.cjs +16 -0
- package/dist/cjs/platform/secure-store/types.native.cjs +18 -0
- package/dist/cjs/platform/secure-store/types.native.js +20 -0
- package/dist/cjs/platform/secure-store/types.native.js.map +1 -0
- package/dist/cjs/platform/secure-store/validate.cjs +34 -0
- package/dist/cjs/platform/secure-store/validate.native.cjs +34 -0
- package/dist/cjs/platform/secure-store/validate.native.js +34 -0
- package/dist/cjs/platform/secure-store/validate.native.js.map +1 -1
- package/dist/esm/index.js +2 -2
- package/dist/esm/index.mjs +2 -2
- package/dist/esm/index.native.js +2 -2
- package/dist/esm/one.mjs +2 -1
- package/dist/esm/one.mjs.map +1 -1
- package/dist/esm/one.native.js +2 -1
- package/dist/esm/one.native.js.map +1 -1
- package/dist/esm/platform/extras.mjs +2 -1
- package/dist/esm/platform/extras.native.js +2 -1
- package/dist/esm/platform/haptics/index.mjs +4 -1
- package/dist/esm/platform/haptics/index.mjs.map +1 -1
- package/dist/esm/platform/haptics/index.native.js +5 -1
- package/dist/esm/platform/haptics/index.native.js.map +1 -1
- package/dist/esm/platform/haptics/validation.mjs +27 -1
- package/dist/esm/platform/haptics/validation.mjs.map +1 -1
- package/dist/esm/platform/haptics/validation.native.js +27 -1
- package/dist/esm/platform/haptics/validation.native.js.map +1 -1
- package/dist/esm/platform/image-manipulator/index.mjs +10 -3
- package/dist/esm/platform/image-manipulator/index.mjs.map +1 -1
- package/dist/esm/platform/image-manipulator/index.native.js +1 -0
- package/dist/esm/platform/image-manipulator/index.native.js.map +1 -1
- package/dist/esm/platform/index.mjs +2 -2
- package/dist/esm/platform/index.mjs.map +1 -1
- package/dist/esm/platform/index.native.js +2 -2
- package/dist/esm/platform/index.native.js.map +1 -1
- package/dist/esm/platform/keep-awake/index.mjs +51 -15
- package/dist/esm/platform/keep-awake/index.mjs.map +1 -1
- package/dist/esm/platform/keep-awake/index.native.js +27 -3
- package/dist/esm/platform/keep-awake/index.native.js.map +1 -1
- package/dist/esm/platform/keep-awake/unavailable.mjs +12 -2
- package/dist/esm/platform/keep-awake/unavailable.mjs.map +1 -1
- package/dist/esm/platform/keep-awake/unavailable.native.js +12 -2
- package/dist/esm/platform/keep-awake/unavailable.native.js.map +1 -1
- package/dist/esm/platform/keep-awake/validate.mjs +10 -1
- package/dist/esm/platform/keep-awake/validate.mjs.map +1 -1
- package/dist/esm/platform/keep-awake/validate.native.js +10 -1
- package/dist/esm/platform/keep-awake/validate.native.js.map +1 -1
- package/dist/esm/platform/localization/index.mjs +77 -0
- package/dist/esm/platform/localization/index.mjs.map +1 -0
- package/dist/esm/platform/localization/index.native.js +46 -0
- package/dist/esm/platform/localization/index.native.js.map +1 -0
- package/dist/esm/platform/localization/map.mjs +59 -0
- package/dist/esm/platform/localization/map.mjs.map +1 -0
- package/dist/esm/platform/localization/map.native.js +61 -0
- package/dist/esm/platform/localization/map.native.js.map +1 -0
- package/dist/esm/platform/localization/types.mjs +0 -0
- package/dist/esm/platform/localization/types.native.js +0 -0
- package/dist/esm/platform/secure-store/index.mjs +13 -7
- package/dist/esm/platform/secure-store/index.mjs.map +1 -1
- package/dist/esm/platform/secure-store/index.native.js +19 -13
- package/dist/esm/platform/secure-store/index.native.js.map +1 -1
- package/dist/esm/platform/secure-store/types.mjs +0 -0
- package/dist/esm/platform/secure-store/types.native.js +0 -0
- package/dist/esm/platform/secure-store/validate.mjs +33 -1
- package/dist/esm/platform/secure-store/validate.mjs.map +1 -1
- package/dist/esm/platform/secure-store/validate.native.js +33 -1
- package/dist/esm/platform/secure-store/validate.native.js.map +1 -1
- package/ios/Nitro/HybridOneDevice.swift +117 -0
- package/ios/Nitro/HybridOneHaptics.swift +4 -0
- package/ios/Nitro/HybridOneImageManipulator.swift +25 -8
- package/ios/Nitro/HybridOneKeepAwake.swift +34 -2
- package/ios/Nitro/HybridOneSecureStore.swift +112 -46
- package/ios/Tests/ImageManipulator/Package.swift +12 -0
- package/ios/Tests/ImageManipulator/README.md +21 -0
- package/ios/Tests/ImageManipulator/Sources/NitroModules/Promise.swift +33 -0
- package/ios/Tests/ImageManipulator/Sources/OneImageManipulatorCore/Types.swift +41 -0
- package/ios/Tests/ImageManipulator/Sources/SDWebImageWebPCoder/SDImageWebPCoder.swift +23 -0
- package/nitrogen/generated/android/c++/JAndroidHaptic.hpp +109 -0
- package/nitrogen/generated/android/c++/JCalendarInfo.hpp +70 -0
- package/nitrogen/generated/android/c++/JHapticImpact.hpp +3 -3
- package/nitrogen/generated/android/c++/JHybridOneDeviceSpec.cpp +52 -0
- package/nitrogen/generated/android/c++/JHybridOneDeviceSpec.hpp +3 -0
- package/nitrogen/generated/android/c++/JHybridOneHapticsSpec.cpp +8 -0
- package/nitrogen/generated/android/c++/JHybridOneHapticsSpec.hpp +1 -0
- package/nitrogen/generated/android/c++/JHybridOneImageManipulatorSpec.cpp +5 -1
- package/nitrogen/generated/android/c++/JHybridOneKeepAwakeSpec.cpp +31 -0
- package/nitrogen/generated/android/c++/JHybridOneKeepAwakeSpec.hpp +2 -0
- package/nitrogen/generated/android/c++/JHybridOneSecureStoreSpec.cpp +26 -19
- package/nitrogen/generated/android/c++/JHybridOneSecureStoreSpec.hpp +6 -6
- package/nitrogen/generated/android/c++/JImageTransformOptions.hpp +7 -1
- package/nitrogen/generated/android/c++/JLocaleInfo.hpp +110 -0
- package/nitrogen/generated/android/c++/JOneImageFlip.hpp +58 -0
- package/nitrogen/generated/android/c++/JOneImageFormat.hpp +3 -0
- package/nitrogen/generated/android/c++/JSecureStoreAccessibility.hpp +73 -0
- package/nitrogen/generated/android/c++/JSecureStoreOptions.hpp +76 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/one/AndroidHaptic.kt +40 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/one/CalendarInfo.kt +66 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/one/HapticImpact.kt +2 -2
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/one/HybridOneDeviceSpec.kt +17 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/one/HybridOneHapticsSpec.kt +4 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/one/HybridOneKeepAwakeSpec.kt +8 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/one/HybridOneSecureStoreSpec.kt +6 -6
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/one/ImageTransformOptions.kt +7 -2
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/one/LocaleInfo.kt +116 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/one/OneImageFlip.kt +23 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/one/OneImageFormat.kt +2 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/one/SecureStoreAccessibility.kt +28 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/one/SecureStoreOptions.kt +71 -0
- package/nitrogen/generated/ios/One-Swift-Cxx-Bridge.hpp +133 -51
- package/nitrogen/generated/ios/One-Swift-Cxx-Umbrella.hpp +19 -1
- package/nitrogen/generated/ios/c++/HybridOneDeviceSpecSwift.hpp +31 -0
- package/nitrogen/generated/ios/c++/HybridOneHapticsSpecSwift.hpp +9 -0
- package/nitrogen/generated/ios/c++/HybridOneImageManipulatorSpecSwift.hpp +4 -1
- package/nitrogen/generated/ios/c++/HybridOneKeepAwakeSpecSwift.hpp +18 -1
- package/nitrogen/generated/ios/c++/HybridOneSecureStoreSpecSwift.hpp +18 -13
- package/nitrogen/generated/ios/swift/AndroidHaptic.swift +108 -0
- package/nitrogen/generated/ios/swift/CalendarInfo.swift +96 -0
- package/nitrogen/generated/ios/swift/HapticImpact.swift +4 -4
- package/nitrogen/generated/ios/swift/HybridOneDeviceSpec.swift +3 -0
- package/nitrogen/generated/ios/swift/HybridOneDeviceSpec_cxx.swift +56 -0
- package/nitrogen/generated/ios/swift/HybridOneHapticsSpec.swift +1 -0
- package/nitrogen/generated/ios/swift/HybridOneHapticsSpec_cxx.swift +11 -0
- package/nitrogen/generated/ios/swift/HybridOneKeepAwakeSpec.swift +3 -1
- package/nitrogen/generated/ios/swift/HybridOneKeepAwakeSpec_cxx.swift +41 -3
- package/nitrogen/generated/ios/swift/HybridOneSecureStoreSpec.swift +6 -6
- package/nitrogen/generated/ios/swift/HybridOneSecureStoreSpec_cxx.swift +12 -12
- package/nitrogen/generated/ios/swift/ImageTransformOptions.swift +16 -5
- package/nitrogen/generated/ios/swift/LocaleInfo.swift +250 -0
- package/nitrogen/generated/ios/swift/OneImageFlip.swift +40 -0
- package/nitrogen/generated/ios/swift/OneImageFormat.swift +4 -0
- package/nitrogen/generated/ios/swift/SecureStoreAccessibility.swift +60 -0
- package/nitrogen/generated/ios/swift/SecureStoreOptions.swift +107 -0
- package/nitrogen/generated/shared/c++/AndroidHaptic.hpp +144 -0
- package/nitrogen/generated/shared/c++/CalendarInfo.hpp +96 -0
- package/nitrogen/generated/shared/c++/HapticImpact.hpp +5 -5
- package/nitrogen/generated/shared/c++/HybridOneDeviceSpec.cpp +3 -0
- package/nitrogen/generated/shared/c++/HybridOneDeviceSpec.hpp +11 -0
- package/nitrogen/generated/shared/c++/HybridOneHapticsSpec.cpp +1 -0
- package/nitrogen/generated/shared/c++/HybridOneHapticsSpec.hpp +4 -0
- package/nitrogen/generated/shared/c++/HybridOneKeepAwakeSpec.cpp +2 -0
- package/nitrogen/generated/shared/c++/HybridOneKeepAwakeSpec.hpp +4 -1
- package/nitrogen/generated/shared/c++/HybridOneSecureStoreSpec.hpp +9 -7
- package/nitrogen/generated/shared/c++/ImageTransformOptions.hpp +8 -1
- package/nitrogen/generated/shared/c++/LocaleInfo.hpp +136 -0
- package/nitrogen/generated/shared/c++/OneImageFlip.hpp +76 -0
- package/nitrogen/generated/shared/c++/OneImageFormat.hpp +4 -0
- package/nitrogen/generated/shared/c++/SecureStoreAccessibility.hpp +96 -0
- package/nitrogen/generated/shared/c++/SecureStoreOptions.hpp +102 -0
- package/package.json +15 -15
- package/src/index.ts +3 -0
- package/src/one.test.ts +2 -0
- package/src/one.ts +3 -0
- package/src/platform/extras.ts +3 -0
- package/src/platform/haptics/index.native.ts +13 -3
- package/src/platform/haptics/index.ts +12 -3
- package/src/platform/haptics/types.ts +25 -0
- package/src/platform/haptics/validation.ts +31 -1
- package/src/platform/image-manipulator/index.native.ts +3 -0
- package/src/platform/image-manipulator/index.ts +10 -3
- package/src/platform/index.native.ts +3 -2
- package/src/platform/index.ts +3 -2
- package/src/platform/keep-awake/index.native.ts +31 -2
- package/src/platform/keep-awake/index.ts +66 -17
- package/src/platform/keep-awake/unavailable.ts +12 -2
- package/src/platform/keep-awake/validate.ts +16 -0
- package/src/platform/localization/index.native.ts +47 -0
- package/src/platform/localization/index.ts +90 -0
- package/src/platform/localization/map.ts +77 -0
- package/src/platform/localization/types.ts +36 -0
- package/src/platform/secure-store/index.native.ts +26 -13
- package/src/platform/secure-store/index.ts +20 -7
- package/src/platform/secure-store/types.ts +33 -0
- package/src/platform/secure-store/validate.ts +48 -0
- package/src/platform/specs/OneDevice.nitro.ts +34 -0
- package/src/platform/specs/OneHaptics.nitro.ts +4 -1
- package/src/platform/specs/OneImageManipulator.nitro.ts +4 -1
- package/src/platform/specs/OneKeepAwake.nitro.ts +2 -0
- package/src/platform/specs/OneSecureStore.nitro.ts +12 -8
- package/types/index.d.ts +1 -1
- package/types/index.d.ts.map +1 -1
- package/types/one.d.ts +2 -1
- package/types/one.d.ts.map +1 -1
- package/types/platform/extras.d.ts +3 -0
- package/types/platform/extras.d.ts.map +1 -1
- package/types/platform/haptics/index.d.ts +2 -2
- package/types/platform/haptics/index.d.ts.map +1 -1
- package/types/platform/haptics/index.native.d.ts +2 -2
- package/types/platform/haptics/index.native.d.ts.map +1 -1
- package/types/platform/haptics/types.d.ts +3 -0
- package/types/platform/haptics/types.d.ts.map +1 -1
- package/types/platform/haptics/validation.d.ts +3 -1
- package/types/platform/haptics/validation.d.ts.map +1 -1
- package/types/platform/image-manipulator/index.d.ts +1 -1
- package/types/platform/image-manipulator/index.d.ts.map +1 -1
- package/types/platform/image-manipulator/index.native.d.ts +1 -1
- package/types/platform/image-manipulator/index.native.d.ts.map +1 -1
- package/types/platform/index.d.ts +3 -3
- package/types/platform/index.d.ts.map +1 -1
- package/types/platform/index.native.d.ts +3 -3
- package/types/platform/index.native.d.ts.map +1 -1
- package/types/platform/keep-awake/index.d.ts +3 -0
- package/types/platform/keep-awake/index.d.ts.map +1 -1
- package/types/platform/keep-awake/index.native.d.ts +5 -0
- package/types/platform/keep-awake/index.native.d.ts.map +1 -1
- package/types/platform/keep-awake/unavailable.d.ts +4 -0
- package/types/platform/keep-awake/unavailable.d.ts.map +1 -1
- package/types/platform/keep-awake/validate.d.ts +3 -0
- package/types/platform/keep-awake/validate.d.ts.map +1 -1
- package/types/platform/localization/index.d.ts +7 -0
- package/types/platform/localization/index.d.ts.map +1 -0
- package/types/platform/localization/index.native.d.ts +7 -0
- package/types/platform/localization/index.native.d.ts.map +1 -0
- package/types/platform/localization/map.d.ts +9 -0
- package/types/platform/localization/map.d.ts.map +1 -0
- package/types/platform/localization/types.d.ts +31 -0
- package/types/platform/localization/types.d.ts.map +1 -0
- package/types/platform/secure-store/index.d.ts +8 -7
- package/types/platform/secure-store/index.d.ts.map +1 -1
- package/types/platform/secure-store/index.native.d.ts +8 -7
- package/types/platform/secure-store/index.native.d.ts.map +1 -1
- package/types/platform/secure-store/types.d.ts +24 -0
- package/types/platform/secure-store/types.d.ts.map +1 -0
- package/types/platform/secure-store/validate.d.ts +3 -0
- package/types/platform/secure-store/validate.d.ts.map +1 -1
- package/types/platform/specs/OneDevice.nitro.d.ts +25 -0
- package/types/platform/specs/OneDevice.nitro.d.ts.map +1 -1
- package/types/platform/specs/OneHaptics.nitro.d.ts +2 -1
- package/types/platform/specs/OneHaptics.nitro.d.ts.map +1 -1
- package/types/platform/specs/OneImageManipulator.nitro.d.ts +3 -1
- package/types/platform/specs/OneImageManipulator.nitro.d.ts.map +1 -1
- package/types/platform/specs/OneKeepAwake.nitro.d.ts +2 -0
- package/types/platform/specs/OneKeepAwake.nitro.d.ts.map +1 -1
- package/types/platform/specs/OneSecureStore.nitro.d.ts +8 -6
- package/types/platform/specs/OneSecureStore.nitro.d.ts.map +1 -1
|
@@ -2,9 +2,18 @@ package com.margelo.nitro.one
|
|
|
2
2
|
|
|
3
3
|
import android.content.Context
|
|
4
4
|
import android.content.SharedPreferences
|
|
5
|
+
import android.os.Build
|
|
6
|
+
import android.os.Handler
|
|
7
|
+
import android.os.Looper
|
|
5
8
|
import android.security.keystore.KeyGenParameterSpec
|
|
9
|
+
import android.security.keystore.KeyPermanentlyInvalidatedException
|
|
6
10
|
import android.security.keystore.KeyProperties
|
|
11
|
+
import android.security.keystore.UserNotAuthenticatedException
|
|
7
12
|
import android.util.Base64
|
|
13
|
+
import androidx.biometric.BiometricManager
|
|
14
|
+
import androidx.biometric.BiometricPrompt
|
|
15
|
+
import androidx.core.content.ContextCompat
|
|
16
|
+
import androidx.fragment.app.FragmentActivity
|
|
8
17
|
import com.margelo.nitro.NitroModules
|
|
9
18
|
import com.margelo.nitro.core.Promise
|
|
10
19
|
import java.security.InvalidKeyException
|
|
@@ -14,56 +23,79 @@ import javax.crypto.KeyGenerator
|
|
|
14
23
|
import javax.crypto.SecretKey
|
|
15
24
|
import javax.crypto.spec.GCMParameterSpec
|
|
16
25
|
|
|
17
|
-
// string key-value storage matching expo-secure-store's item api
|
|
18
|
-
// value is AES-256-GCM ciphertext under a key that never
|
|
19
|
-
// AndroidKeyStore: a fresh 12-byte iv per write, prepended to the blob
|
|
20
|
-
// kept in a private preferences file.
|
|
21
|
-
//
|
|
22
|
-
//
|
|
23
|
-
//
|
|
24
|
-
//
|
|
25
|
-
//
|
|
26
|
+
// string key-value storage matching expo-secure-store's item api and its
|
|
27
|
+
// options. every value is AES-256-GCM ciphertext under a key that never
|
|
28
|
+
// leaves AndroidKeyStore: a fresh 12-byte iv per write, prepended to the blob
|
|
29
|
+
// and kept in a private preferences file. the keychainService option names
|
|
30
|
+
// the key alias (and its preferences file), as in expo, and an authenticated
|
|
31
|
+
// item uses the "<alias>:auth" alias whose key requires user authentication
|
|
32
|
+
// per use and is invalidated when biometrics change. the default alias and
|
|
33
|
+
// file are the ones used before options existed, so existing values read
|
|
34
|
+
// back unchanged. writes commit to disk before resolving, a write clears the
|
|
35
|
+
// other mode's entry, and delete never touches the keystore, so it also
|
|
36
|
+
// clears entries whose key is gone. the biometric prompt needs a foreground
|
|
37
|
+
// activity, so the sync verbs throw for an authenticated item instead of
|
|
38
|
+
// prompting. keychainAccessible and accessGroup are ios-only, as in expo.
|
|
26
39
|
class HybridOneSecureStore : HybridOneSecureStoreSpec() {
|
|
40
|
+
private val mainHandler = Handler(Looper.getMainLooper())
|
|
41
|
+
|
|
27
42
|
private fun context(): Context =
|
|
28
43
|
NitroModules.applicationContext
|
|
29
44
|
?: throw IllegalStateException("SecureStore: React context is not ready")
|
|
30
45
|
|
|
31
|
-
private fun
|
|
32
|
-
|
|
46
|
+
private fun alias(options: SecureStoreOptions, authenticated: Boolean): String {
|
|
47
|
+
val base = options.keychainService?.let { "$KEY_ALIAS:$it" } ?: KEY_ALIAS
|
|
48
|
+
return if (authenticated) "$base:auth" else base
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
private fun prefs(alias: String): SharedPreferences {
|
|
52
|
+
val name = if (alias == KEY_ALIAS) {
|
|
53
|
+
PREFS_NAME
|
|
54
|
+
} else {
|
|
55
|
+
PREFS_NAME + "_" + Base64.encodeToString(
|
|
56
|
+
alias.toByteArray(Charsets.UTF_8),
|
|
57
|
+
Base64.URL_SAFE or Base64.NO_WRAP or Base64.NO_PADDING
|
|
58
|
+
)
|
|
59
|
+
}
|
|
60
|
+
return context().getSharedPreferences(name, Context.MODE_PRIVATE)
|
|
61
|
+
}
|
|
33
62
|
|
|
34
63
|
private fun keyStore(): KeyStore =
|
|
35
64
|
KeyStore.getInstance("AndroidKeyStore").apply { load(null) }
|
|
36
65
|
|
|
37
|
-
private fun generateKey(): SecretKey {
|
|
66
|
+
private fun generateKey(alias: String, requireAuthentication: Boolean): SecretKey {
|
|
38
67
|
val generator = KeyGenerator.getInstance(KeyProperties.KEY_ALGORITHM_AES, "AndroidKeyStore")
|
|
39
|
-
val
|
|
68
|
+
val builder = KeyGenParameterSpec.Builder(alias, KeyProperties.PURPOSE_ENCRYPT or KeyProperties.PURPOSE_DECRYPT)
|
|
40
69
|
.setBlockModes(KeyProperties.BLOCK_MODE_GCM)
|
|
41
70
|
.setEncryptionPaddings(KeyProperties.ENCRYPTION_PADDING_NONE)
|
|
42
71
|
.setKeySize(256)
|
|
43
72
|
.setRandomizedEncryptionRequired(true)
|
|
44
|
-
|
|
45
|
-
|
|
73
|
+
if (requireAuthentication) {
|
|
74
|
+
builder.setUserAuthenticationRequired(true)
|
|
75
|
+
if (Build.VERSION.SDK_INT >= 24) {
|
|
76
|
+
builder.setInvalidatedByBiometricEnrollment(true)
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
generator.init(builder.build())
|
|
46
80
|
return generator.generateKey()
|
|
47
81
|
}
|
|
48
82
|
|
|
49
|
-
// bumped on every rekey, so a write that failed under an older
|
|
50
|
-
// another write already replaced it.
|
|
51
|
-
private
|
|
83
|
+
// bumped on every rekey per alias, so a write that failed under an older
|
|
84
|
+
// key knows another write already replaced it.
|
|
85
|
+
private val keyGenerations = mutableMapOf<String, Int>()
|
|
52
86
|
|
|
53
87
|
// two writes can both fail under the dropped key. only the first rekeys;
|
|
54
88
|
// the second seals under that fresh key instead of orphaning the value
|
|
55
89
|
// the first one just wrote.
|
|
56
90
|
@Synchronized
|
|
57
|
-
private fun rekey(failedGeneration: Int): SecretKey {
|
|
58
|
-
if (failedGeneration !=
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
return generateKey()
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
private fun deleteKey() {
|
|
91
|
+
private fun rekey(alias: String, requireAuthentication: Boolean, failedGeneration: Int): SecretKey {
|
|
92
|
+
if (failedGeneration != (keyGenerations[alias] ?: 0)) {
|
|
93
|
+
return currentKey(alias, requireAuthentication).second
|
|
94
|
+
}
|
|
65
95
|
val store = keyStore()
|
|
66
|
-
if (store.containsAlias(
|
|
96
|
+
if (store.containsAlias(alias)) store.deleteEntry(alias)
|
|
97
|
+
keyGenerations[alias] = (keyGenerations[alias] ?: 0) + 1
|
|
98
|
+
return generateKey(alias, requireAuthentication)
|
|
67
99
|
}
|
|
68
100
|
|
|
69
101
|
// promises run on a thread pool: without the lock, two first writes can
|
|
@@ -71,50 +103,64 @@ class HybridOneSecureStore : HybridOneSecureStoreSpec() {
|
|
|
71
103
|
// minting a missing key is a rekey too: it advances the generation, so a
|
|
72
104
|
// write still holding the dropped key cannot rekey over the new one.
|
|
73
105
|
@Synchronized
|
|
74
|
-
private fun currentKey(): Pair<Int, SecretKey> {
|
|
75
|
-
val existing = (keyStore().getEntry(
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
106
|
+
private fun currentKey(alias: String, requireAuthentication: Boolean): Pair<Int, SecretKey> {
|
|
107
|
+
val existing = (keyStore().getEntry(alias, null) as? KeyStore.SecretKeyEntry)?.secretKey
|
|
108
|
+
val generation = keyGenerations[alias] ?: 0
|
|
109
|
+
if (existing != null) return generation to existing
|
|
110
|
+
val next = generation + 1
|
|
111
|
+
keyGenerations[alias] = next
|
|
112
|
+
return next to generateKey(alias, requireAuthentication)
|
|
79
113
|
}
|
|
80
114
|
|
|
81
|
-
private fun
|
|
115
|
+
private fun encryptCipher(alias: String, requireAuthentication: Boolean): Cipher {
|
|
116
|
+
val (generation, key) = currentKey(alias, requireAuthentication)
|
|
82
117
|
val cipher = Cipher.getInstance("AES/GCM/NoPadding")
|
|
83
|
-
cipher.init(Cipher.ENCRYPT_MODE, key)
|
|
84
|
-
val ciphertext = cipher.doFinal(value.toByteArray(Charsets.UTF_8))
|
|
85
|
-
val blob = cipher.iv + ciphertext
|
|
86
|
-
return Base64.encodeToString(blob, Base64.NO_WRAP)
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
private fun encrypt(value: String): String {
|
|
90
|
-
val (generation, key) = currentKey()
|
|
91
118
|
try {
|
|
92
|
-
|
|
119
|
+
cipher.init(Cipher.ENCRYPT_MODE, key)
|
|
93
120
|
} catch (e: InvalidKeyException) {
|
|
94
|
-
// the keystore dropped the key (a restore can do this)
|
|
95
|
-
//
|
|
96
|
-
|
|
121
|
+
// the keystore dropped the key (a restore can do this), or an
|
|
122
|
+
// auth key was invalidated by a biometric change: mint a fresh
|
|
123
|
+
// key and seal the new value under it.
|
|
124
|
+
cipher.init(Cipher.ENCRYPT_MODE, rekey(alias, requireAuthentication, generation))
|
|
97
125
|
}
|
|
126
|
+
return cipher
|
|
98
127
|
}
|
|
99
128
|
|
|
100
|
-
private fun
|
|
101
|
-
val
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
129
|
+
private fun seal(cipher: Cipher, value: String): String {
|
|
130
|
+
val ciphertext = cipher.doFinal(value.toByteArray(Charsets.UTF_8))
|
|
131
|
+
return Base64.encodeToString(cipher.iv + ciphertext, Base64.NO_WRAP)
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
private fun blobBytes(blob: String): ByteArray {
|
|
135
|
+
val bytes = try {
|
|
136
|
+
Base64.decode(blob, Base64.NO_WRAP)
|
|
137
|
+
} catch (e: IllegalArgumentException) {
|
|
138
|
+
throw SecureStoreException("the stored value is not a secure-store blob")
|
|
139
|
+
}
|
|
107
140
|
if (bytes.size < IV_BYTES + 1) {
|
|
108
141
|
throw SecureStoreException("the stored value is not a secure-store blob")
|
|
109
142
|
}
|
|
143
|
+
return bytes
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
private fun decryptCipher(blob: String, alias: String, requireAuthentication: Boolean): Pair<Cipher, ByteArray> {
|
|
147
|
+
val bytes = blobBytes(blob)
|
|
110
148
|
val cipher = Cipher.getInstance("AES/GCM/NoPadding")
|
|
149
|
+
cipher.init(
|
|
150
|
+
Cipher.DECRYPT_MODE,
|
|
151
|
+
currentKey(alias, requireAuthentication).second,
|
|
152
|
+
GCMParameterSpec(GCM_BITS, bytes, 0, IV_BYTES)
|
|
153
|
+
)
|
|
154
|
+
return cipher to bytes
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
private fun open(cipher: Cipher, bytes: ByteArray): String =
|
|
158
|
+
String(cipher.doFinal(bytes, IV_BYTES, bytes.size - IV_BYTES), Charsets.UTF_8)
|
|
159
|
+
|
|
160
|
+
private fun decrypt(blob: String, alias: String): String {
|
|
161
|
+
val (cipher, bytes) = decryptCipher(blob, alias, false)
|
|
111
162
|
try {
|
|
112
|
-
cipher
|
|
113
|
-
Cipher.DECRYPT_MODE,
|
|
114
|
-
currentKey().second,
|
|
115
|
-
GCMParameterSpec(GCM_BITS, bytes, 0, IV_BYTES)
|
|
116
|
-
)
|
|
117
|
-
return String(cipher.doFinal(bytes, IV_BYTES, bytes.size - IV_BYTES), Charsets.UTF_8)
|
|
163
|
+
return open(cipher, bytes)
|
|
118
164
|
} catch (e: Exception) {
|
|
119
165
|
throw SecureStoreException("the stored value could not be decrypted")
|
|
120
166
|
}
|
|
@@ -124,50 +170,195 @@ class HybridOneSecureStore : HybridOneSecureStoreSpec() {
|
|
|
124
170
|
private fun <T> guarded(code: String, verb: String, body: () -> T): T =
|
|
125
171
|
try {
|
|
126
172
|
body()
|
|
173
|
+
} catch (e: UserNotAuthenticatedException) {
|
|
174
|
+
throw OneNativeError(
|
|
175
|
+
code, "SecureStore.$verb: this item requires authentication; use the async verb")
|
|
176
|
+
} catch (e: KeyPermanentlyInvalidatedException) {
|
|
177
|
+
throw OneNativeError(
|
|
178
|
+
code, "SecureStore.$verb: the authentication key was invalidated when biometrics changed")
|
|
179
|
+
} catch (e: OneNativeError) {
|
|
180
|
+
throw e
|
|
127
181
|
} catch (e: Exception) {
|
|
128
182
|
throw OneNativeError(code, "SecureStore.$verb: ${e.message}")
|
|
129
183
|
}
|
|
130
184
|
|
|
131
|
-
private fun
|
|
132
|
-
val
|
|
133
|
-
|
|
185
|
+
private fun readPlain(key: String, options: SecureStoreOptions): String? {
|
|
186
|
+
val alias = alias(options, false)
|
|
187
|
+
val blob = prefs(alias).getString(key, null) ?: return null
|
|
188
|
+
return decrypt(blob, alias)
|
|
134
189
|
}
|
|
135
190
|
|
|
136
|
-
private fun
|
|
137
|
-
|
|
191
|
+
private fun authBlob(key: String, options: SecureStoreOptions): String? =
|
|
192
|
+
prefs(alias(options, true)).getString(key, null)
|
|
193
|
+
|
|
194
|
+
private fun writeBlob(key: String, blob: String, options: SecureStoreOptions, authenticated: Boolean) {
|
|
195
|
+
if (!prefs(alias(options, authenticated)).edit().putString(key, blob).commit()) {
|
|
138
196
|
throw SecureStoreException("the write could not be committed to disk")
|
|
139
197
|
}
|
|
198
|
+
// one value per key across the two modes.
|
|
199
|
+
prefs(alias(options, !authenticated)).edit().remove(key).commit()
|
|
140
200
|
}
|
|
141
201
|
|
|
142
|
-
private fun
|
|
143
|
-
|
|
144
|
-
|
|
202
|
+
private fun removeEverywhere(key: String, options: SecureStoreOptions) {
|
|
203
|
+
for (authenticated in listOf(false, true)) {
|
|
204
|
+
if (!prefs(alias(options, authenticated)).edit().remove(key).commit()) {
|
|
205
|
+
throw SecureStoreException("the delete could not be committed to disk")
|
|
206
|
+
}
|
|
145
207
|
}
|
|
146
208
|
}
|
|
147
209
|
|
|
148
|
-
|
|
149
|
-
|
|
210
|
+
// runs finish with the prompt-unlocked cipher on the main thread: the
|
|
211
|
+
// blobs are short strings, so doFinal there is not a frame of work.
|
|
212
|
+
private fun <T> prompt(
|
|
213
|
+
cipher: Cipher,
|
|
214
|
+
options: SecureStoreOptions,
|
|
215
|
+
code: String,
|
|
216
|
+
verb: String,
|
|
217
|
+
promise: Promise<T>,
|
|
218
|
+
finish: (Cipher) -> T
|
|
219
|
+
) {
|
|
220
|
+
mainHandler.post {
|
|
221
|
+
val activity = NitroModules.applicationContext?.currentActivity as? FragmentActivity
|
|
222
|
+
if (activity == null || activity.isFinishing || activity.isDestroyed) {
|
|
223
|
+
promise.reject(
|
|
224
|
+
OneNativeError(code, "SecureStore.$verb: no fragment activity to present the prompt"))
|
|
225
|
+
return@post
|
|
226
|
+
}
|
|
227
|
+
val info = BiometricPrompt.PromptInfo.Builder()
|
|
228
|
+
.setTitle(options.authenticationPrompt ?: DEFAULT_PROMPT)
|
|
229
|
+
.setNegativeButtonText("Cancel")
|
|
230
|
+
.setAllowedAuthenticators(BiometricManager.Authenticators.BIOMETRIC_STRONG)
|
|
231
|
+
.build()
|
|
232
|
+
val biometric = BiometricPrompt(
|
|
233
|
+
activity,
|
|
234
|
+
ContextCompat.getMainExecutor(activity),
|
|
235
|
+
object : BiometricPrompt.AuthenticationCallback() {
|
|
236
|
+
override fun onAuthenticationSucceeded(result: BiometricPrompt.AuthenticationResult) {
|
|
237
|
+
val unlocked = result.cryptoObject?.cipher
|
|
238
|
+
if (unlocked == null) {
|
|
239
|
+
promise.reject(OneNativeError(code, "SecureStore.$verb: authentication returned no cipher"))
|
|
240
|
+
return
|
|
241
|
+
}
|
|
242
|
+
try {
|
|
243
|
+
promise.resolve(finish(unlocked))
|
|
244
|
+
} catch (e: Exception) {
|
|
245
|
+
promise.reject(storageError(code, verb, e))
|
|
246
|
+
}
|
|
247
|
+
}
|
|
150
248
|
|
|
151
|
-
|
|
152
|
-
|
|
249
|
+
override fun onAuthenticationError(errorCode: Int, message: CharSequence) {
|
|
250
|
+
val text = if (message.isEmpty()) "authentication failed" else message.toString()
|
|
251
|
+
promise.reject(OneNativeError(code, "SecureStore.$verb: $text"))
|
|
252
|
+
}
|
|
153
253
|
|
|
154
|
-
|
|
155
|
-
|
|
254
|
+
override fun onAuthenticationFailed() {
|
|
255
|
+
// a bad read is not terminal; the prompt stays up.
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
)
|
|
259
|
+
try {
|
|
260
|
+
biometric.authenticate(info, BiometricPrompt.CryptoObject(cipher))
|
|
261
|
+
} catch (e: Exception) {
|
|
262
|
+
promise.reject(storageError(code, verb, e))
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
}
|
|
156
266
|
|
|
157
|
-
|
|
158
|
-
|
|
267
|
+
private fun storageError(code: String, verb: String, error: Exception): OneNativeError =
|
|
268
|
+
when (error) {
|
|
269
|
+
is OneNativeError -> error
|
|
270
|
+
is KeyPermanentlyInvalidatedException -> OneNativeError(
|
|
271
|
+
code, "SecureStore.$verb: the authentication key was invalidated when biometrics changed")
|
|
272
|
+
else -> OneNativeError(code, "SecureStore.$verb: ${error.message}")
|
|
273
|
+
}
|
|
159
274
|
|
|
160
|
-
|
|
161
|
-
|
|
275
|
+
// a plain hit resolves without a prompt; only a miss looks at the auth
|
|
276
|
+
// entry. a corrupt plain blob is an error, not a miss.
|
|
277
|
+
override fun getItem(key: String, options: SecureStoreOptions): Promise<String?> {
|
|
278
|
+
val plainAlias = alias(options, false)
|
|
279
|
+
if (prefs(plainAlias).getString(key, null) != null) {
|
|
280
|
+
return Promise.async { guarded("E_SECURE_STORE_GET", "getItem") { readPlain(key, options) } }
|
|
281
|
+
}
|
|
282
|
+
return authGet(key, options)
|
|
283
|
+
}
|
|
284
|
+
|
|
285
|
+
// a biometric change invalidates the auth key for good, and its item
|
|
286
|
+
// reads as null, as in expo.
|
|
287
|
+
private fun authGet(key: String, options: SecureStoreOptions): Promise<String?> {
|
|
288
|
+
val blob = authBlob(key, options) ?: return Promise.resolved(null)
|
|
289
|
+
val promise = Promise<String?>()
|
|
290
|
+
try {
|
|
291
|
+
val (cipher, bytes) = decryptCipher(blob, alias(options, true), true)
|
|
292
|
+
prompt(cipher, options, "E_SECURE_STORE_GET", "getItem", promise) { open(it, bytes) }
|
|
293
|
+
} catch (e: KeyPermanentlyInvalidatedException) {
|
|
294
|
+
promise.resolve(null)
|
|
295
|
+
} catch (e: Exception) {
|
|
296
|
+
promise.reject(storageError("E_SECURE_STORE_GET", "getItem", e))
|
|
297
|
+
}
|
|
298
|
+
return promise
|
|
299
|
+
}
|
|
300
|
+
|
|
301
|
+
override fun setItem(key: String, value: String, options: SecureStoreOptions): Promise<Unit> {
|
|
302
|
+
if (options.requireAuthentication != true) {
|
|
303
|
+
return Promise.async {
|
|
304
|
+
guarded("E_SECURE_STORE_SET", "setItem") {
|
|
305
|
+
writeBlob(key, seal(encryptCipher(alias(options, false), false), value), options, false)
|
|
306
|
+
}
|
|
307
|
+
}
|
|
308
|
+
}
|
|
309
|
+
val promise = Promise<Unit>()
|
|
310
|
+
try {
|
|
311
|
+
val cipher = encryptCipher(alias(options, true), true)
|
|
312
|
+
prompt(cipher, options, "E_SECURE_STORE_SET", "setItem", promise) {
|
|
313
|
+
writeBlob(key, seal(it, value), options, true)
|
|
314
|
+
}
|
|
315
|
+
} catch (e: Exception) {
|
|
316
|
+
promise.reject(storageError("E_SECURE_STORE_SET", "setItem", e))
|
|
317
|
+
}
|
|
318
|
+
return promise
|
|
319
|
+
}
|
|
320
|
+
|
|
321
|
+
override fun deleteItem(key: String, options: SecureStoreOptions): Promise<Unit> =
|
|
322
|
+
Promise.async { guarded("E_SECURE_STORE_DELETE", "deleteItem") { removeEverywhere(key, options) } }
|
|
323
|
+
|
|
324
|
+
override fun getItemSync(key: String, options: SecureStoreOptions): String? =
|
|
325
|
+
guarded("E_SECURE_STORE_GET", "getItemSync") {
|
|
326
|
+
readPlain(key, options) ?: authBlob(key, options)?.let { blob ->
|
|
327
|
+
val (cipher, bytes) = try {
|
|
328
|
+
decryptCipher(blob, alias(options, true), true)
|
|
329
|
+
} catch (e: KeyPermanentlyInvalidatedException) {
|
|
330
|
+
return@guarded null
|
|
331
|
+
}
|
|
332
|
+
try {
|
|
333
|
+
open(cipher, bytes)
|
|
334
|
+
} catch (e: UserNotAuthenticatedException) {
|
|
335
|
+
throw OneNativeError(
|
|
336
|
+
"E_SECURE_STORE_GET",
|
|
337
|
+
"SecureStore.getItemSync: this item requires authentication; use SecureStore.getItem")
|
|
338
|
+
}
|
|
339
|
+
}
|
|
340
|
+
}
|
|
341
|
+
|
|
342
|
+
override fun setItemSync(key: String, value: String, options: SecureStoreOptions) {
|
|
343
|
+
if (options.requireAuthentication == true) {
|
|
344
|
+
throw OneNativeError(
|
|
345
|
+
"E_SECURE_STORE_SET",
|
|
346
|
+
"SecureStore.setItemSync: requireAuthentication needs a prompt; use SecureStore.setItem")
|
|
347
|
+
}
|
|
348
|
+
guarded("E_SECURE_STORE_SET", "setItemSync") {
|
|
349
|
+
writeBlob(key, seal(encryptCipher(alias(options, false), false), value), options, false)
|
|
350
|
+
}
|
|
351
|
+
}
|
|
162
352
|
|
|
163
|
-
override fun deleteItemSync(key: String) =
|
|
164
|
-
guarded("E_SECURE_STORE_DELETE", "deleteItemSync") {
|
|
353
|
+
override fun deleteItemSync(key: String, options: SecureStoreOptions) =
|
|
354
|
+
guarded("E_SECURE_STORE_DELETE", "deleteItemSync") { removeEverywhere(key, options) }
|
|
165
355
|
|
|
166
356
|
private class SecureStoreException(message: String) : Exception(message)
|
|
167
357
|
|
|
168
358
|
companion object {
|
|
169
359
|
private const val PREFS_NAME = "One.SecureStore"
|
|
170
360
|
private const val KEY_ALIAS = "One.SecureStore"
|
|
361
|
+
private const val DEFAULT_PROMPT = "Authenticate to access this item"
|
|
171
362
|
private const val IV_BYTES = 12
|
|
172
363
|
private const val GCM_BITS = 128
|
|
173
364
|
}
|
package/dist/cjs/index.cjs
CHANGED
|
@@ -83,6 +83,7 @@ __export(index_exports, {
|
|
|
83
83
|
useBatteryLevel: () => import_platform.useBatteryLevel,
|
|
84
84
|
useBatteryState: () => import_platform.useBatteryState,
|
|
85
85
|
useBlocker: () => import_useBlocker.useBlocker,
|
|
86
|
+
useCalendars: () => import_platform.useCalendars,
|
|
86
87
|
useDrawer: () => import_useDrawer.useDrawer,
|
|
87
88
|
useFocusEffect: () => import_useFocusEffect.useFocusEffect,
|
|
88
89
|
useFonts: () => import_platform.useFonts,
|
|
@@ -90,10 +91,12 @@ __export(index_exports, {
|
|
|
90
91
|
useHeaderHeight: () => import_useHeaderHeight.useHeaderHeight,
|
|
91
92
|
useHinge: () => import_platform.useHinge,
|
|
92
93
|
useIsFocused: () => import_core.useIsFocused,
|
|
94
|
+
useKeepAwake: () => import_platform.useKeepAwake,
|
|
93
95
|
useLinkTo: () => import_useLinkTo.useLinkTo,
|
|
94
96
|
useLoader: () => import_useLoader.useLoader,
|
|
95
97
|
useLoaderState: () => import_useLoader.useLoaderState,
|
|
96
98
|
useLocalSearchParams: () => import_hooks.useLocalSearchParams,
|
|
99
|
+
useLocales: () => import_platform.useLocales,
|
|
97
100
|
useLowPowerMode: () => import_platform.useLowPowerMode,
|
|
98
101
|
useMatch: () => import_useMatches.useMatch,
|
|
99
102
|
useMatches: () => import_useMatches.useMatches,
|
|
@@ -85,6 +85,7 @@ __export(index_exports, {
|
|
|
85
85
|
useBatteryLevel: () => import_platform.useBatteryLevel,
|
|
86
86
|
useBatteryState: () => import_platform.useBatteryState,
|
|
87
87
|
useBlocker: () => import_useBlocker.useBlocker,
|
|
88
|
+
useCalendars: () => import_platform.useCalendars,
|
|
88
89
|
useDrawer: () => import_useDrawer.useDrawer,
|
|
89
90
|
useFocusEffect: () => import_useFocusEffect.useFocusEffect,
|
|
90
91
|
useFonts: () => import_platform.useFonts,
|
|
@@ -92,10 +93,12 @@ __export(index_exports, {
|
|
|
92
93
|
useHeaderHeight: () => import_useHeaderHeight.useHeaderHeight,
|
|
93
94
|
useHinge: () => import_platform.useHinge,
|
|
94
95
|
useIsFocused: () => import_core.useIsFocused,
|
|
96
|
+
useKeepAwake: () => import_platform.useKeepAwake,
|
|
95
97
|
useLinkTo: () => import_useLinkTo.useLinkTo,
|
|
96
98
|
useLoader: () => import_useLoader.useLoader,
|
|
97
99
|
useLoaderState: () => import_useLoader.useLoaderState,
|
|
98
100
|
useLocalSearchParams: () => import_hooks.useLocalSearchParams,
|
|
101
|
+
useLocales: () => import_platform.useLocales,
|
|
99
102
|
useLowPowerMode: () => import_platform.useLowPowerMode,
|
|
100
103
|
useMatch: () => import_useMatches.useMatch,
|
|
101
104
|
useMatches: () => import_useMatches.useMatches,
|
package/dist/cjs/index.native.js
CHANGED
|
@@ -85,6 +85,7 @@ __export(index_exports, {
|
|
|
85
85
|
useBatteryLevel: () => import_platform.useBatteryLevel,
|
|
86
86
|
useBatteryState: () => import_platform.useBatteryState,
|
|
87
87
|
useBlocker: () => import_useBlocker.useBlocker,
|
|
88
|
+
useCalendars: () => import_platform.useCalendars,
|
|
88
89
|
useDrawer: () => import_useDrawer.useDrawer,
|
|
89
90
|
useFocusEffect: () => import_useFocusEffect.useFocusEffect,
|
|
90
91
|
useFonts: () => import_platform.useFonts,
|
|
@@ -92,10 +93,12 @@ __export(index_exports, {
|
|
|
92
93
|
useHeaderHeight: () => import_useHeaderHeight.useHeaderHeight,
|
|
93
94
|
useHinge: () => import_platform.useHinge,
|
|
94
95
|
useIsFocused: () => import_core.useIsFocused,
|
|
96
|
+
useKeepAwake: () => import_platform.useKeepAwake,
|
|
95
97
|
useLinkTo: () => import_useLinkTo.useLinkTo,
|
|
96
98
|
useLoader: () => import_useLoader.useLoader,
|
|
97
99
|
useLoaderState: () => import_useLoader.useLoaderState,
|
|
98
100
|
useLocalSearchParams: () => import_hooks.useLocalSearchParams,
|
|
101
|
+
useLocales: () => import_platform.useLocales,
|
|
99
102
|
useLowPowerMode: () => import_platform.useLowPowerMode,
|
|
100
103
|
useMatch: () => import_useMatches.useMatch,
|
|
101
104
|
useMatches: () => import_useMatches.useMatches,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.native.js","names":[],"sources":["cjs/index.native.js"],"sourcesContent":["\"use strict\";\nvar __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, \"default\"), secondTarget && __copyProps(secondTarget, mod, \"default\"));\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar index_exports = {};\n__export(index_exports, {\n ErrorBoundary: () => import_ErrorBoundary.ErrorBoundary,\n Head: () => import_head.Head,\n Link: () => import_Link.Link,\n LoadProgressBar: () => import_LoadProgressBar.LoadProgressBar,\n NamedSlot: () => import_Navigator.NamedSlot,\n Navigator: () => import_Navigator2.Navigator,\n One: () => import_one.One,\n ParamValidationError: () => import_validateParams.ParamValidationError,\n Presentations: () => import_Presentations.Presentations,\n Protected: () => import_Protected.Protected,\n Redirect: () => import_Redirect.Redirect,\n Root: () => import_Root.Root,\n RouteValidationError: () => import_validateParams.RouteValidationError,\n SafeAreaView: () => import_safe_area_context.SafeAreaView,\n ScrollBehavior: () => import_ScrollBehavior.ScrollBehavior,\n Slot: () => import_Navigator2.Slot,\n SourceInspector: () => import_SourceInspector.SourceInspector,\n Stack: () => import_Stack.Stack,\n Tabs: () => import_Tabs.Tabs,\n closeIntercept: () => import_interceptRoutes.closeIntercept,\n createAPIRoute: () => import_createAPIRoute.createAPIRoute,\n createApp: () => import_createApp.createApp,\n createMiddleware: () => import_createMiddleware.createMiddleware,\n createRoute: () => import_createRoute.createRoute,\n getHinge: () => import_platform.getHinge,\n getLinking: () => import_getLinking.getLinking,\n getLoaderTimingHistory: () => import_useLoader.getLoaderTimingHistory,\n getServerData: () => import_one_server_only.getServerData,\n getSizeClass: () => import_platform.getSizeClass,\n getURL: () => import_getURL.getURL,\n handleSkewError: () => import_dynamicImport.handleSkewError,\n href: () => import_href.href,\n isChunkLoadError: () => import_dynamicImport.isChunkLoadError,\n isInterceptedNavigation: () => import_interceptRoutes.isInterceptedNavigation,\n isResponse: () => import_isResponse.isResponse,\n lazyWithRetry: () => import_lazyWithRetry.lazyWithRetry,\n loadWithRetry: () => import_dynamicImport.loadWithRetry,\n onClientLoaderResolve: () => import_clientLoaderResolver.onClientLoaderResolve,\n onHingeChange: () => import_platform.onHingeChange,\n redirect: () => import_redirect.redirect,\n refetchLoader: () => import_useLoader.refetchLoader,\n registerPreloadedRoute: () => import_useViteRoutes.registerPreloadedRoute,\n removeParams: () => import_removeParams.removeParams,\n render: () => import_render.render,\n route: () => import_createRoute.route,\n router: () => import_imperative_api.router,\n routerStore: () => _routerStore,\n setClientMatches: () => import_useMatches.setClientMatches,\n setResponseHeaders: () => import_one_server_only.setResponseHeaders,\n setServerData: () => import_one_server_only.setServerData,\n useActiveParams: () => import_hooks.useActiveParams,\n useAudioPlayer: () => import_platform.useAudioPlayer,\n useAudioPlayerStatus: () => import_platform.useAudioPlayerStatus,\n useBatteryLevel: () => import_platform.useBatteryLevel,\n useBatteryState: () => import_platform.useBatteryState,\n useBlocker: () => import_useBlocker.useBlocker,\n useDrawer: () => import_useDrawer.useDrawer,\n useFocusEffect: () => import_useFocusEffect.useFocusEffect,\n useFonts: () => import_platform.useFonts,\n useGlobalSearchParams: () => import_hooks.useGlobalSearchParams,\n useHeaderHeight: () => import_useHeaderHeight.useHeaderHeight,\n useHinge: () => import_platform.useHinge,\n useIsFocused: () => import_core.useIsFocused,\n useLinkTo: () => import_useLinkTo.useLinkTo,\n useLoader: () => import_useLoader.useLoader,\n useLoaderState: () => import_useLoader.useLoaderState,\n useLocalSearchParams: () => import_hooks.useLocalSearchParams,\n useLowPowerMode: () => import_platform.useLowPowerMode,\n useMatch: () => import_useMatches.useMatch,\n useMatches: () => import_useMatches.useMatches,\n useNativeState: () => import_platform.useNativeState,\n useNavigation: () => import_useNavigation.useNavigation,\n useNavigationContainerRef: () => import_hooks.useNavigationContainerRef,\n useNetworkState: () => import_platform.useNetworkState,\n usePageMatch: () => import_useMatches.usePageMatch,\n useParams: () => import_hooks.useParams,\n usePathname: () => import_hooks.usePathname,\n usePowerState: () => import_platform.usePowerState,\n usePreventScreenCapture: () => import_platform.usePreventScreenCapture,\n useReservedRegions: () => import_platform.useReservedRegions,\n useReservedRegionsReady: () => import_platform.useReservedRegionsReady,\n useRootNavigationState: () => import_hooks.useRootNavigationState,\n useRouter: () => import_hooks.useRouter,\n useSafeAreaFrame: () => import_safe_area_context.useSafeAreaFrame,\n useSafeAreaInsets: () => import_safe_area_context.useSafeAreaInsets,\n useScrollGroup: () => import_useScrollGroup.useScrollGroup,\n useSearchParams: () => import_hooks.useSearchParams,\n useSegments: () => import_hooks.useSegments,\n useServerHeadInsertion: () => import_useServerHeadInsertion.useServerHeadInsertion,\n useSitemap: () => import_sitemap.useSitemap,\n useSizeClass: () => import_platform.useSizeClass,\n useSpanning: () => import_platform.useSpanning,\n useStack: () => import_useStack.useStack,\n useTabs: () => import_useTabs.useTabs,\n useUnstableGlobalHref: () => import_hooks.useUnstableGlobalHref,\n useValidationState: () => import_router.useValidationState,\n useWindowSegments: () => import_platform.useWindowSegments,\n validateParams: () => import_validateParams.validateParams,\n watchFile: () => import_watchFile.watchFile,\n withLayoutContext: () => import_withLayoutContext.withLayoutContext,\n zodParamValidator: () => import_validateParams.zodParamValidator\n});\nmodule.exports = __toCommonJS(index_exports);\nvar import_createApp = require(\"./createApp\");\nvar import_one = require(\"./one\");\nvar import_platform = require(\"./platform\");\nvar import_core = require(\"@react-navigation/core\");\nvar import_useHeaderHeight = require(\"./useHeaderHeight\");\n__reExport(index_exports, require(\"@vxrn/color-scheme\"), module.exports);\nvar import_safe_area_context = require(\"./safe-area-context\");\nvar import_clientLoaderResolver = require(\"./clientLoaderResolver\");\nvar import_createMiddleware = require(\"./createMiddleware\");\nvar import_createAPIRoute = require(\"./createAPIRoute\");\nvar import_getURL = require(\"./getURL\");\nvar import_head = require(\"./head\");\nvar import_hooks = require(\"./hooks\");\nvar import_href = require(\"./href\");\nvar import_getLinking = require(\"./link/getLinking\");\nvar import_sitemap = require(\"./router/sitemap\");\nvar import_Presentations = require(\"./headless/Presentations\");\nvar import_useStack = require(\"./headless/useStack\");\nvar import_Stack = require(\"./layouts/Stack\");\nvar import_Tabs = require(\"./layouts/Tabs\");\nvar import_Protected = require(\"./views/Protected\");\nvar import_useTabs = require(\"./headless/useTabs\");\nvar import_useDrawer = require(\"./headless/useDrawer\");\nvar import_withLayoutContext = require(\"./layouts/withLayoutContext\");\nvar import_Link = require(\"./link/Link\");\nvar import_Redirect = require(\"./link/Redirect\");\nvar import_useLinkTo = require(\"./link/useLinkTo\");\nvar import_Root = require(\"./Root\");\nvar import_render = require(\"./render\");\nvar import_createRoute = require(\"./router/createRoute\");\nvar import_interceptRoutes = require(\"./router/interceptRoutes\");\nvar import_Navigator = require(\"./views/Navigator\");\nvar import_imperative_api = require(\"./router/imperative-api\");\nvar _routerStore = __toESM(require(\"./router/router\"), 1);\nvar import_useNavigation = require(\"./router/useNavigation\");\nvar import_useViteRoutes = require(\"./router/useViteRoutes\");\nvar import_useBlocker = require(\"./useBlocker\");\nvar import_validateParams = require(\"./validateParams\");\nvar import_router = require(\"./router/router\");\nvar import_useFocusEffect = require(\"./useFocusEffect\");\nvar import_useLoader = require(\"./useLoader\");\nvar import_useMatches = require(\"./useMatches\");\nvar import_useServerHeadInsertion = require(\"./useServerHeadInsertion\");\nvar import_isResponse = require(\"./utils/isResponse\");\nvar import_redirect = require(\"./utils/redirect\");\nvar import_removeParams = require(\"./utils/removeParams\");\nvar import_watchFile = require(\"./utils/watchFile\");\nvar import_lazyWithRetry = require(\"./lazyWithRetry\");\nvar import_dynamicImport = require(\"./utils/dynamicImport\");\nvar import_ErrorBoundary = require(\"./views/ErrorBoundary\");\nvar import_LoadProgressBar = require(\"./views/LoadProgressBar\");\nvar import_Navigator2 = require(\"./views/Navigator\");\nvar import_ScrollBehavior = require(\"./views/ScrollBehavior\");\nvar import_SourceInspector = require(\"./views/SourceInspector\");\nvar import_useScrollGroup = require(\"./useScrollGroup\");\nvar import_one_server_only = require(\"./vite/one-server-only\");\n//# sourceMappingURL=index.js.map\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.native.js","names":[],"sources":["cjs/index.native.js"],"sourcesContent":["\"use strict\";\nvar __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, \"default\"), secondTarget && __copyProps(secondTarget, mod, \"default\"));\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar index_exports = {};\n__export(index_exports, {\n ErrorBoundary: () => import_ErrorBoundary.ErrorBoundary,\n Head: () => import_head.Head,\n Link: () => import_Link.Link,\n LoadProgressBar: () => import_LoadProgressBar.LoadProgressBar,\n NamedSlot: () => import_Navigator.NamedSlot,\n Navigator: () => import_Navigator2.Navigator,\n One: () => import_one.One,\n ParamValidationError: () => import_validateParams.ParamValidationError,\n Presentations: () => import_Presentations.Presentations,\n Protected: () => import_Protected.Protected,\n Redirect: () => import_Redirect.Redirect,\n Root: () => import_Root.Root,\n RouteValidationError: () => import_validateParams.RouteValidationError,\n SafeAreaView: () => import_safe_area_context.SafeAreaView,\n ScrollBehavior: () => import_ScrollBehavior.ScrollBehavior,\n Slot: () => import_Navigator2.Slot,\n SourceInspector: () => import_SourceInspector.SourceInspector,\n Stack: () => import_Stack.Stack,\n Tabs: () => import_Tabs.Tabs,\n closeIntercept: () => import_interceptRoutes.closeIntercept,\n createAPIRoute: () => import_createAPIRoute.createAPIRoute,\n createApp: () => import_createApp.createApp,\n createMiddleware: () => import_createMiddleware.createMiddleware,\n createRoute: () => import_createRoute.createRoute,\n getHinge: () => import_platform.getHinge,\n getLinking: () => import_getLinking.getLinking,\n getLoaderTimingHistory: () => import_useLoader.getLoaderTimingHistory,\n getServerData: () => import_one_server_only.getServerData,\n getSizeClass: () => import_platform.getSizeClass,\n getURL: () => import_getURL.getURL,\n handleSkewError: () => import_dynamicImport.handleSkewError,\n href: () => import_href.href,\n isChunkLoadError: () => import_dynamicImport.isChunkLoadError,\n isInterceptedNavigation: () => import_interceptRoutes.isInterceptedNavigation,\n isResponse: () => import_isResponse.isResponse,\n lazyWithRetry: () => import_lazyWithRetry.lazyWithRetry,\n loadWithRetry: () => import_dynamicImport.loadWithRetry,\n onClientLoaderResolve: () => import_clientLoaderResolver.onClientLoaderResolve,\n onHingeChange: () => import_platform.onHingeChange,\n redirect: () => import_redirect.redirect,\n refetchLoader: () => import_useLoader.refetchLoader,\n registerPreloadedRoute: () => import_useViteRoutes.registerPreloadedRoute,\n removeParams: () => import_removeParams.removeParams,\n render: () => import_render.render,\n route: () => import_createRoute.route,\n router: () => import_imperative_api.router,\n routerStore: () => _routerStore,\n setClientMatches: () => import_useMatches.setClientMatches,\n setResponseHeaders: () => import_one_server_only.setResponseHeaders,\n setServerData: () => import_one_server_only.setServerData,\n useActiveParams: () => import_hooks.useActiveParams,\n useAudioPlayer: () => import_platform.useAudioPlayer,\n useAudioPlayerStatus: () => import_platform.useAudioPlayerStatus,\n useBatteryLevel: () => import_platform.useBatteryLevel,\n useBatteryState: () => import_platform.useBatteryState,\n useBlocker: () => import_useBlocker.useBlocker,\n useCalendars: () => import_platform.useCalendars,\n useDrawer: () => import_useDrawer.useDrawer,\n useFocusEffect: () => import_useFocusEffect.useFocusEffect,\n useFonts: () => import_platform.useFonts,\n useGlobalSearchParams: () => import_hooks.useGlobalSearchParams,\n useHeaderHeight: () => import_useHeaderHeight.useHeaderHeight,\n useHinge: () => import_platform.useHinge,\n useIsFocused: () => import_core.useIsFocused,\n useKeepAwake: () => import_platform.useKeepAwake,\n useLinkTo: () => import_useLinkTo.useLinkTo,\n useLoader: () => import_useLoader.useLoader,\n useLoaderState: () => import_useLoader.useLoaderState,\n useLocalSearchParams: () => import_hooks.useLocalSearchParams,\n useLocales: () => import_platform.useLocales,\n useLowPowerMode: () => import_platform.useLowPowerMode,\n useMatch: () => import_useMatches.useMatch,\n useMatches: () => import_useMatches.useMatches,\n useNativeState: () => import_platform.useNativeState,\n useNavigation: () => import_useNavigation.useNavigation,\n useNavigationContainerRef: () => import_hooks.useNavigationContainerRef,\n useNetworkState: () => import_platform.useNetworkState,\n usePageMatch: () => import_useMatches.usePageMatch,\n useParams: () => import_hooks.useParams,\n usePathname: () => import_hooks.usePathname,\n usePowerState: () => import_platform.usePowerState,\n usePreventScreenCapture: () => import_platform.usePreventScreenCapture,\n useReservedRegions: () => import_platform.useReservedRegions,\n useReservedRegionsReady: () => import_platform.useReservedRegionsReady,\n useRootNavigationState: () => import_hooks.useRootNavigationState,\n useRouter: () => import_hooks.useRouter,\n useSafeAreaFrame: () => import_safe_area_context.useSafeAreaFrame,\n useSafeAreaInsets: () => import_safe_area_context.useSafeAreaInsets,\n useScrollGroup: () => import_useScrollGroup.useScrollGroup,\n useSearchParams: () => import_hooks.useSearchParams,\n useSegments: () => import_hooks.useSegments,\n useServerHeadInsertion: () => import_useServerHeadInsertion.useServerHeadInsertion,\n useSitemap: () => import_sitemap.useSitemap,\n useSizeClass: () => import_platform.useSizeClass,\n useSpanning: () => import_platform.useSpanning,\n useStack: () => import_useStack.useStack,\n useTabs: () => import_useTabs.useTabs,\n useUnstableGlobalHref: () => import_hooks.useUnstableGlobalHref,\n useValidationState: () => import_router.useValidationState,\n useWindowSegments: () => import_platform.useWindowSegments,\n validateParams: () => import_validateParams.validateParams,\n watchFile: () => import_watchFile.watchFile,\n withLayoutContext: () => import_withLayoutContext.withLayoutContext,\n zodParamValidator: () => import_validateParams.zodParamValidator\n});\nmodule.exports = __toCommonJS(index_exports);\nvar import_createApp = require(\"./createApp\");\nvar import_one = require(\"./one\");\nvar import_platform = require(\"./platform\");\nvar import_core = require(\"@react-navigation/core\");\nvar import_useHeaderHeight = require(\"./useHeaderHeight\");\n__reExport(index_exports, require(\"@vxrn/color-scheme\"), module.exports);\nvar import_safe_area_context = require(\"./safe-area-context\");\nvar import_clientLoaderResolver = require(\"./clientLoaderResolver\");\nvar import_createMiddleware = require(\"./createMiddleware\");\nvar import_createAPIRoute = require(\"./createAPIRoute\");\nvar import_getURL = require(\"./getURL\");\nvar import_head = require(\"./head\");\nvar import_hooks = require(\"./hooks\");\nvar import_href = require(\"./href\");\nvar import_getLinking = require(\"./link/getLinking\");\nvar import_sitemap = require(\"./router/sitemap\");\nvar import_Presentations = require(\"./headless/Presentations\");\nvar import_useStack = require(\"./headless/useStack\");\nvar import_Stack = require(\"./layouts/Stack\");\nvar import_Tabs = require(\"./layouts/Tabs\");\nvar import_Protected = require(\"./views/Protected\");\nvar import_useTabs = require(\"./headless/useTabs\");\nvar import_useDrawer = require(\"./headless/useDrawer\");\nvar import_withLayoutContext = require(\"./layouts/withLayoutContext\");\nvar import_Link = require(\"./link/Link\");\nvar import_Redirect = require(\"./link/Redirect\");\nvar import_useLinkTo = require(\"./link/useLinkTo\");\nvar import_Root = require(\"./Root\");\nvar import_render = require(\"./render\");\nvar import_createRoute = require(\"./router/createRoute\");\nvar import_interceptRoutes = require(\"./router/interceptRoutes\");\nvar import_Navigator = require(\"./views/Navigator\");\nvar import_imperative_api = require(\"./router/imperative-api\");\nvar _routerStore = __toESM(require(\"./router/router\"), 1);\nvar import_useNavigation = require(\"./router/useNavigation\");\nvar import_useViteRoutes = require(\"./router/useViteRoutes\");\nvar import_useBlocker = require(\"./useBlocker\");\nvar import_validateParams = require(\"./validateParams\");\nvar import_router = require(\"./router/router\");\nvar import_useFocusEffect = require(\"./useFocusEffect\");\nvar import_useLoader = require(\"./useLoader\");\nvar import_useMatches = require(\"./useMatches\");\nvar import_useServerHeadInsertion = require(\"./useServerHeadInsertion\");\nvar import_isResponse = require(\"./utils/isResponse\");\nvar import_redirect = require(\"./utils/redirect\");\nvar import_removeParams = require(\"./utils/removeParams\");\nvar import_watchFile = require(\"./utils/watchFile\");\nvar import_lazyWithRetry = require(\"./lazyWithRetry\");\nvar import_dynamicImport = require(\"./utils/dynamicImport\");\nvar import_ErrorBoundary = require(\"./views/ErrorBoundary\");\nvar import_LoadProgressBar = require(\"./views/LoadProgressBar\");\nvar import_Navigator2 = require(\"./views/Navigator\");\nvar import_ScrollBehavior = require(\"./views/ScrollBehavior\");\nvar import_SourceInspector = require(\"./views/SourceInspector\");\nvar import_useScrollGroup = require(\"./useScrollGroup\");\nvar import_one_server_only = require(\"./vite/one-server-only\");\n//# sourceMappingURL=index.js.map\n"],"mappings":"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"}
|
package/dist/cjs/one.cjs
CHANGED
|
@@ -96,6 +96,7 @@ const One = Object.freeze({
|
|
|
96
96
|
Purchases: import_platform.Purchases,
|
|
97
97
|
ImageManipulator: import_platform.ImageManipulator,
|
|
98
98
|
Device: import_platform.Device,
|
|
99
|
+
Localization: import_platform.Localization,
|
|
99
100
|
Motion: import_platform.Motion,
|
|
100
101
|
BackgroundTasks: import_platform.BackgroundTasks,
|
|
101
102
|
AppIntents: import_platform.AppIntents,
|
package/dist/cjs/one.native.cjs
CHANGED
|
@@ -99,6 +99,7 @@ var One = Object.freeze({
|
|
|
99
99
|
Purchases: import_platform.Purchases,
|
|
100
100
|
ImageManipulator: import_platform.ImageManipulator,
|
|
101
101
|
Device: import_platform.Device,
|
|
102
|
+
Localization: import_platform.Localization,
|
|
102
103
|
Motion: import_platform.Motion,
|
|
103
104
|
BackgroundTasks: import_platform.BackgroundTasks,
|
|
104
105
|
AppIntents: import_platform.AppIntents,
|
package/dist/cjs/one.native.js
CHANGED
|
@@ -99,6 +99,7 @@ var One = Object.freeze({
|
|
|
99
99
|
Purchases: import_platform.Purchases,
|
|
100
100
|
ImageManipulator: import_platform.ImageManipulator,
|
|
101
101
|
Device: import_platform.Device,
|
|
102
|
+
Localization: import_platform.Localization,
|
|
102
103
|
Motion: import_platform.Motion,
|
|
103
104
|
BackgroundTasks: import_platform.BackgroundTasks,
|
|
104
105
|
AppIntents: import_platform.AppIntents,
|