expo-local-authentication 16.0.5 → 16.1.0-canary-20250630-547cd82

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.
Files changed (54) hide show
  1. package/CHANGELOG.md +2 -4
  2. package/android/build.gradle +2 -2
  3. package/android/src/main/java/expo/modules/localauthentication/LocalAuthenticationModule.kt +15 -13
  4. package/android/src/main/java/expo/modules/localauthentication/LocalAuthenticationRecords.kt +7 -1
  5. package/build/LocalAuthentication.types.d.ts +12 -2
  6. package/build/LocalAuthentication.types.d.ts.map +1 -1
  7. package/build/LocalAuthentication.types.js.map +1 -1
  8. package/expo-module.config.json +1 -1
  9. package/local-maven-repo/host/exp/exponent/expo.modules.localauthentication/16.1.0-canary-20250630-547cd82/expo.modules.localauthentication-16.1.0-canary-20250630-547cd82-sources.jar +0 -0
  10. package/local-maven-repo/host/exp/exponent/expo.modules.localauthentication/16.1.0-canary-20250630-547cd82/expo.modules.localauthentication-16.1.0-canary-20250630-547cd82-sources.jar.md5 +1 -0
  11. package/local-maven-repo/host/exp/exponent/expo.modules.localauthentication/16.1.0-canary-20250630-547cd82/expo.modules.localauthentication-16.1.0-canary-20250630-547cd82-sources.jar.sha1 +1 -0
  12. package/local-maven-repo/host/exp/exponent/expo.modules.localauthentication/16.1.0-canary-20250630-547cd82/expo.modules.localauthentication-16.1.0-canary-20250630-547cd82-sources.jar.sha256 +1 -0
  13. package/local-maven-repo/host/exp/exponent/expo.modules.localauthentication/16.1.0-canary-20250630-547cd82/expo.modules.localauthentication-16.1.0-canary-20250630-547cd82-sources.jar.sha512 +1 -0
  14. package/local-maven-repo/host/exp/exponent/expo.modules.localauthentication/16.1.0-canary-20250630-547cd82/expo.modules.localauthentication-16.1.0-canary-20250630-547cd82.aar +0 -0
  15. package/local-maven-repo/host/exp/exponent/expo.modules.localauthentication/16.1.0-canary-20250630-547cd82/expo.modules.localauthentication-16.1.0-canary-20250630-547cd82.aar.md5 +1 -0
  16. package/local-maven-repo/host/exp/exponent/expo.modules.localauthentication/16.1.0-canary-20250630-547cd82/expo.modules.localauthentication-16.1.0-canary-20250630-547cd82.aar.sha1 +1 -0
  17. package/local-maven-repo/host/exp/exponent/expo.modules.localauthentication/16.1.0-canary-20250630-547cd82/expo.modules.localauthentication-16.1.0-canary-20250630-547cd82.aar.sha256 +1 -0
  18. package/local-maven-repo/host/exp/exponent/expo.modules.localauthentication/16.1.0-canary-20250630-547cd82/expo.modules.localauthentication-16.1.0-canary-20250630-547cd82.aar.sha512 +1 -0
  19. package/local-maven-repo/host/exp/exponent/expo.modules.localauthentication/16.1.0-canary-20250630-547cd82/expo.modules.localauthentication-16.1.0-canary-20250630-547cd82.module +94 -0
  20. package/local-maven-repo/host/exp/exponent/expo.modules.localauthentication/16.1.0-canary-20250630-547cd82/expo.modules.localauthentication-16.1.0-canary-20250630-547cd82.module.md5 +1 -0
  21. package/local-maven-repo/host/exp/exponent/expo.modules.localauthentication/16.1.0-canary-20250630-547cd82/expo.modules.localauthentication-16.1.0-canary-20250630-547cd82.module.sha1 +1 -0
  22. package/local-maven-repo/host/exp/exponent/expo.modules.localauthentication/16.1.0-canary-20250630-547cd82/expo.modules.localauthentication-16.1.0-canary-20250630-547cd82.module.sha256 +1 -0
  23. package/local-maven-repo/host/exp/exponent/expo.modules.localauthentication/16.1.0-canary-20250630-547cd82/expo.modules.localauthentication-16.1.0-canary-20250630-547cd82.module.sha512 +1 -0
  24. package/local-maven-repo/host/exp/exponent/expo.modules.localauthentication/{16.0.5/expo.modules.localauthentication-16.0.5.pom → 16.1.0-canary-20250630-547cd82/expo.modules.localauthentication-16.1.0-canary-20250630-547cd82.pom} +2 -2
  25. package/local-maven-repo/host/exp/exponent/expo.modules.localauthentication/16.1.0-canary-20250630-547cd82/expo.modules.localauthentication-16.1.0-canary-20250630-547cd82.pom.md5 +1 -0
  26. package/local-maven-repo/host/exp/exponent/expo.modules.localauthentication/16.1.0-canary-20250630-547cd82/expo.modules.localauthentication-16.1.0-canary-20250630-547cd82.pom.sha1 +1 -0
  27. package/local-maven-repo/host/exp/exponent/expo.modules.localauthentication/16.1.0-canary-20250630-547cd82/expo.modules.localauthentication-16.1.0-canary-20250630-547cd82.pom.sha256 +1 -0
  28. package/local-maven-repo/host/exp/exponent/expo.modules.localauthentication/16.1.0-canary-20250630-547cd82/expo.modules.localauthentication-16.1.0-canary-20250630-547cd82.pom.sha512 +1 -0
  29. package/local-maven-repo/host/exp/exponent/expo.modules.localauthentication/maven-metadata.xml +4 -4
  30. package/local-maven-repo/host/exp/exponent/expo.modules.localauthentication/maven-metadata.xml.md5 +1 -1
  31. package/local-maven-repo/host/exp/exponent/expo.modules.localauthentication/maven-metadata.xml.sha1 +1 -1
  32. package/local-maven-repo/host/exp/exponent/expo.modules.localauthentication/maven-metadata.xml.sha256 +1 -1
  33. package/local-maven-repo/host/exp/exponent/expo.modules.localauthentication/maven-metadata.xml.sha512 +1 -1
  34. package/package.json +4 -5
  35. package/src/LocalAuthentication.types.ts +12 -2
  36. package/local-maven-repo/host/exp/exponent/expo.modules.localauthentication/16.0.5/expo.modules.localauthentication-16.0.5-sources.jar +0 -0
  37. package/local-maven-repo/host/exp/exponent/expo.modules.localauthentication/16.0.5/expo.modules.localauthentication-16.0.5-sources.jar.md5 +0 -1
  38. package/local-maven-repo/host/exp/exponent/expo.modules.localauthentication/16.0.5/expo.modules.localauthentication-16.0.5-sources.jar.sha1 +0 -1
  39. package/local-maven-repo/host/exp/exponent/expo.modules.localauthentication/16.0.5/expo.modules.localauthentication-16.0.5-sources.jar.sha256 +0 -1
  40. package/local-maven-repo/host/exp/exponent/expo.modules.localauthentication/16.0.5/expo.modules.localauthentication-16.0.5-sources.jar.sha512 +0 -1
  41. package/local-maven-repo/host/exp/exponent/expo.modules.localauthentication/16.0.5/expo.modules.localauthentication-16.0.5.aar +0 -0
  42. package/local-maven-repo/host/exp/exponent/expo.modules.localauthentication/16.0.5/expo.modules.localauthentication-16.0.5.aar.md5 +0 -1
  43. package/local-maven-repo/host/exp/exponent/expo.modules.localauthentication/16.0.5/expo.modules.localauthentication-16.0.5.aar.sha1 +0 -1
  44. package/local-maven-repo/host/exp/exponent/expo.modules.localauthentication/16.0.5/expo.modules.localauthentication-16.0.5.aar.sha256 +0 -1
  45. package/local-maven-repo/host/exp/exponent/expo.modules.localauthentication/16.0.5/expo.modules.localauthentication-16.0.5.aar.sha512 +0 -1
  46. package/local-maven-repo/host/exp/exponent/expo.modules.localauthentication/16.0.5/expo.modules.localauthentication-16.0.5.module +0 -94
  47. package/local-maven-repo/host/exp/exponent/expo.modules.localauthentication/16.0.5/expo.modules.localauthentication-16.0.5.module.md5 +0 -1
  48. package/local-maven-repo/host/exp/exponent/expo.modules.localauthentication/16.0.5/expo.modules.localauthentication-16.0.5.module.sha1 +0 -1
  49. package/local-maven-repo/host/exp/exponent/expo.modules.localauthentication/16.0.5/expo.modules.localauthentication-16.0.5.module.sha256 +0 -1
  50. package/local-maven-repo/host/exp/exponent/expo.modules.localauthentication/16.0.5/expo.modules.localauthentication-16.0.5.module.sha512 +0 -1
  51. package/local-maven-repo/host/exp/exponent/expo.modules.localauthentication/16.0.5/expo.modules.localauthentication-16.0.5.pom.md5 +0 -1
  52. package/local-maven-repo/host/exp/exponent/expo.modules.localauthentication/16.0.5/expo.modules.localauthentication-16.0.5.pom.sha1 +0 -1
  53. package/local-maven-repo/host/exp/exponent/expo.modules.localauthentication/16.0.5/expo.modules.localauthentication-16.0.5.pom.sha256 +0 -1
  54. package/local-maven-repo/host/exp/exponent/expo.modules.localauthentication/16.0.5/expo.modules.localauthentication-16.0.5.pom.sha512 +0 -1
package/CHANGELOG.md CHANGED
@@ -6,11 +6,9 @@
6
6
 
7
7
  ### 🎉 New features
8
8
 
9
- ### 🐛 Bug fixes
10
-
11
- ### 💡 Others
9
+ - [Android] Added `promptSubtitle` and `promptDescription` parameters to `authenticateAsync`. ([#35335](https://github.com/expo/expo/pull/35335) by [@filipejuan](https://github.com/filipejuan))
12
10
 
13
- ## 16.0.5 2025-07-01
11
+ ### 🐛 Bug fixes
14
12
 
15
13
  ### 💡 Others
16
14
 
@@ -4,13 +4,13 @@ plugins {
4
4
  }
5
5
 
6
6
  group = 'host.exp.exponent'
7
- version = '16.0.5'
7
+ version = '16.1.0-canary-20250630-547cd82'
8
8
 
9
9
  android {
10
10
  namespace "expo.modules.localauthentication"
11
11
  defaultConfig {
12
12
  versionCode 30
13
- versionName "16.0.5"
13
+ versionName "16.1.0-canary-20250630-547cd82"
14
14
  }
15
15
  }
16
16
 
@@ -205,9 +205,6 @@ class LocalAuthenticationModule : Module() {
205
205
  return
206
206
  }
207
207
 
208
- val promptMessage = options.promptMessage
209
- val cancelLabel = options.cancelLabel
210
- val requireConfirmation = options.requireConfirmation
211
208
  val allowedAuthenticators = if (options.disableDeviceFallback) {
212
209
  options.biometricsSecurityLevel.toNativeBiometricSecurityLevel()
213
210
  } else {
@@ -217,19 +214,22 @@ class LocalAuthenticationModule : Module() {
217
214
  isAuthenticating = true
218
215
  this.promise = promise
219
216
  val executor: Executor = Executors.newSingleThreadExecutor()
220
- biometricPrompt = BiometricPrompt(fragmentActivity, executor, authenticationCallback)
217
+ val localBiometricPrompt = BiometricPrompt(fragmentActivity, executor, authenticationCallback)
218
+ biometricPrompt = localBiometricPrompt
221
219
  val promptInfoBuilder = PromptInfo.Builder().apply {
222
- setTitle(promptMessage)
220
+ setTitle(options.promptMessage)
221
+ setSubtitle(options.promptSubtitle)
222
+ setDescription(options.promptDescription)
223
223
  setAllowedAuthenticators(allowedAuthenticators)
224
- if (options.disableDeviceFallback) {
225
- setNegativeButtonText(cancelLabel)
224
+ if (options.disableDeviceFallback && options.cancelLabel != null) {
225
+ setNegativeButtonText(options.cancelLabel)
226
226
  }
227
- setConfirmationRequired(requireConfirmation)
227
+ setConfirmationRequired(options.requireConfirmation)
228
228
  }
229
229
 
230
230
  val promptInfo = promptInfoBuilder.build()
231
231
  try {
232
- biometricPrompt!!.authenticate(promptInfo)
232
+ localBiometricPrompt.authenticate(promptInfo)
233
233
  } catch (e: NullPointerException) {
234
234
  promise.reject(UnexpectedException("Canceled authentication due to an internal error", e))
235
235
  }
@@ -248,14 +248,14 @@ class LocalAuthenticationModule : Module() {
248
248
  }
249
249
 
250
250
  val promptMessage = options.promptMessage
251
- val requireConfirmation = options.requireConfirmation
251
+ val promptDescription = options.promptDescription
252
252
 
253
253
  // BiometricPrompt callbacks are invoked on the main thread so also run this there to avoid
254
254
  // having to do locking.
255
255
  appContext.mainQueue.launch {
256
256
  // On Android devices older than 11, we need to use Keyguard to unlock by Device Credentials.
257
257
  if (Build.VERSION.SDK_INT < Build.VERSION_CODES.R) {
258
- val credentialConfirmationIntent = keyguardManager.createConfirmDeviceCredentialIntent(promptMessage, "")
258
+ val credentialConfirmationIntent = keyguardManager.createConfirmDeviceCredentialIntent(promptMessage, promptDescription)
259
259
  fragmentActivity.startActivityForResult(credentialConfirmationIntent, DEVICE_CREDENTIAL_FALLBACK_CODE)
260
260
  return@launch
261
261
  }
@@ -267,8 +267,10 @@ class LocalAuthenticationModule : Module() {
267
267
 
268
268
  val promptInfoBuilder = PromptInfo.Builder().apply {
269
269
  setTitle(promptMessage)
270
+ setSubtitle(options.promptSubtitle)
271
+ setDescription(promptDescription)
270
272
  setAllowedAuthenticators(BiometricManager.Authenticators.DEVICE_CREDENTIAL)
271
- setConfirmationRequired(requireConfirmation)
273
+ setConfirmationRequired(options.requireConfirmation)
272
274
  }
273
275
 
274
276
  val promptInfo = promptInfoBuilder.build()
@@ -286,7 +288,7 @@ class LocalAuthenticationModule : Module() {
286
288
  // but it will be ignored on falling-back to device credential on biometric authentication.
287
289
  // That means, setting level to `SECURITY_LEVEL_SECRET` might be misleading for some users.
288
290
  // But there is no equivalent APIs prior to M.
289
- // `andriodx.biometric.BiometricManager#canAuthenticate(int)` looks like an alternative,
291
+ // `androidx.biometric.BiometricManager#canAuthenticate(int)` looks like an alternative,
290
292
  // but specifying `BiometricManager.Authenticators.DEVICE_CREDENTIAL` alone is not
291
293
  // supported prior to API 30.
292
294
  // https://developer.android.com/reference/androidx/biometric/BiometricManager#canAuthenticate(int)
@@ -22,7 +22,13 @@ internal class AuthOptions : Record {
22
22
  val promptMessage: String = ""
23
23
 
24
24
  @Field
25
- val cancelLabel: String = ""
25
+ val promptSubtitle: String? = null
26
+
27
+ @Field
28
+ val promptDescription: String? = null
29
+
30
+ @Field
31
+ val cancelLabel: String? = null
26
32
 
27
33
  @Field
28
34
  val disableDeviceFallback: Boolean = false
@@ -56,11 +56,21 @@ export type LocalAuthenticationOptions = {
56
56
  */
57
57
  promptMessage?: string;
58
58
  /**
59
- * Allows to customize the default `Cancel` label shown.
59
+ * A subtitle displayed below the prompt message in the authentication prompt.
60
+ * @platform android
61
+ */
62
+ promptSubtitle?: string;
63
+ /**
64
+ * A description displayed in the middle of the authentication prompt.
65
+ * @platform android
66
+ */
67
+ promptDescription?: string;
68
+ /**
69
+ * Allows customizing the default `Cancel` label shown.
60
70
  */
61
71
  cancelLabel?: string;
62
72
  /**
63
- * After several failed attempts the system will fallback to the device passcode. This setting
73
+ * After several failed attempts, the system falls back to the device passcode. This setting
64
74
  * allows you to disable this option and instead handle the fallback yourself. This can be
65
75
  * preferable in certain custom authentication workflows. This behaviour maps to using the iOS
66
76
  * [`LAPolicyDeviceOwnerAuthenticationWithBiometrics`](https://developer.apple.com/documentation/localauthentication/lapolicy/deviceownerauthenticationwithbiometrics)
@@ -1 +1 @@
1
- {"version":3,"file":"LocalAuthentication.types.d.ts","sourceRoot":"","sources":["../src/LocalAuthentication.types.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,yBAAyB,GACjC;IAAE,OAAO,EAAE,IAAI,CAAA;CAAE,GACjB;IACE,OAAO,EAAE,KAAK,CAAC;IACf,KAAK,EAAE,wBAAwB,CAAC;IAChC,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAGN,oBAAY,kBAAkB;IAC5B;;OAEG;IACH,WAAW,IAAI;IACf;;OAEG;IACH,kBAAkB,IAAI;IACtB;;;OAGG;IACH,IAAI,IAAI;CACT;AAGD,oBAAY,aAAa;IACvB;;OAEG;IACH,IAAI,IAAI;IACR;;OAEG;IACH,MAAM,IAAI;IACV;;;;OAIG;IACH,SAEkC;IAClC;;;OAGG;IACH,cAAc,IAAI;IAClB;;OAEG;IACH,gBAAgB,IAAI;CACrB;AAkBD;;;GAGG;AACH,MAAM,MAAM,uBAAuB,GAAG,MAAM,GAAG,QAAQ,CAAC;AAGxD,MAAM,MAAM,0BAA0B,GAAG;IACvC;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;;;;OAOG;IACH,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC;;;;;OAKG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B;;;;;;OAMG;IACH,uBAAuB,CAAC,EAAE,uBAAuB,CAAC;IAClD;;;;;OAKG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,wBAAwB,GAChC,cAAc,GACd,aAAa,GACb,YAAY,GACZ,eAAe,GACf,SAAS,GACT,UAAU,GACV,SAAS,GACT,mBAAmB,GACnB,SAAS,GACT,eAAe,GACf,eAAe,GACf,iBAAiB,GACjB,kBAAkB,GAClB,uBAAuB,CAAC"}
1
+ {"version":3,"file":"LocalAuthentication.types.d.ts","sourceRoot":"","sources":["../src/LocalAuthentication.types.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,yBAAyB,GACjC;IAAE,OAAO,EAAE,IAAI,CAAA;CAAE,GACjB;IACE,OAAO,EAAE,KAAK,CAAC;IACf,KAAK,EAAE,wBAAwB,CAAC;IAChC,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAGN,oBAAY,kBAAkB;IAC5B;;OAEG;IACH,WAAW,IAAI;IACf;;OAEG;IACH,kBAAkB,IAAI;IACtB;;;OAGG;IACH,IAAI,IAAI;CACT;AAGD,oBAAY,aAAa;IACvB;;OAEG;IACH,IAAI,IAAI;IACR;;OAEG;IACH,MAAM,IAAI;IACV;;;;OAIG;IACH,SAEkC;IAClC;;;OAGG;IACH,cAAc,IAAI;IAClB;;OAEG;IACH,gBAAgB,IAAI;CACrB;AAkBD;;;GAGG;AACH,MAAM,MAAM,uBAAuB,GAAG,MAAM,GAAG,QAAQ,CAAC;AAGxD,MAAM,MAAM,0BAA0B,GAAG;IACvC;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;OAGG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;;;;OAOG;IACH,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC;;;;;OAKG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B;;;;;;OAMG;IACH,uBAAuB,CAAC,EAAE,uBAAuB,CAAC;IAClD;;;;;OAKG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,wBAAwB,GAChC,cAAc,GACd,aAAa,GACb,YAAY,GACZ,eAAe,GACf,SAAS,GACT,UAAU,GACV,SAAS,GACT,mBAAmB,GACnB,SAAS,GACT,eAAe,GACf,eAAe,GACf,iBAAiB,GACjB,kBAAkB,GAClB,uBAAuB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"LocalAuthentication.types.js","sourceRoot":"","sources":["../src/LocalAuthentication.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAU7C,cAAc;AACd,MAAM,CAAN,IAAY,kBAcX;AAdD,WAAY,kBAAkB;IAC5B;;OAEG;IACH,yEAAe,CAAA;IACf;;OAEG;IACH,uFAAsB,CAAA;IACtB;;;OAGG;IACH,2DAAQ,CAAA;AACV,CAAC,EAdW,kBAAkB,KAAlB,kBAAkB,QAc7B;AAED,cAAc;AACd,MAAM,CAAN,IAAY,aA0BX;AA1BD,WAAY,aAAa;IACvB;;OAEG;IACH,iDAAQ,CAAA;IACR;;OAEG;IACH,qDAAU,CAAA;IACV;;;;OAIG;IACH,2CAAY,QAAQ,CAAC,EAAE,KAAK,SAAS;QACnC,CAAC,CAAC,aAAa,CAAC,cAAc;QAC9B,CAAC,CAAC,aAAa,CAAC,gBAAgB,eAAA,CAAA;IAClC;;;OAGG;IACH,qEAAkB,CAAA;IAClB;;OAEG;IACH,yEAAoB,CAAA;AACtB,CAAC,EA1BW,aAAa,KAAb,aAAa,QA0BxB;AAED,MAAM,CAAC,cAAc,CAAC,aAAa,EAAE,WAAW,EAAE;IAChD,GAAG;QACD,MAAM,iBAAiB,GACrB,QAAQ,CAAC,EAAE,KAAK,SAAS;YACvB,CAAC,CAAC,4IAA4I;YAC9I,CAAC,CAAC,EAAE,CAAC;QACT,OAAO,CAAC,IAAI,CACV,+HAA+H;YAC7H,iBAAiB,CACpB,CAAC;QACF,OAAO,QAAQ,CAAC,EAAE,KAAK,SAAS;YAC9B,CAAC,CAAC,aAAa,CAAC,cAAc;YAC9B,CAAC,CAAC,aAAa,CAAC,gBAAgB,CAAC;IACrC,CAAC;CACF,CAAC,CAAC","sourcesContent":["import { Platform } from 'expo-modules-core';\n\nexport type LocalAuthenticationResult =\n | { success: true }\n | {\n success: false;\n error: LocalAuthenticationError;\n warning?: string;\n };\n\n// @needsAudit\nexport enum AuthenticationType {\n /**\n * Indicates fingerprint support.\n */\n FINGERPRINT = 1,\n /**\n * Indicates facial recognition support.\n */\n FACIAL_RECOGNITION = 2,\n /**\n * Indicates iris recognition support.\n * @platform android\n */\n IRIS = 3,\n}\n\n// @needsAudit\nexport enum SecurityLevel {\n /**\n * Indicates no enrolled authentication.\n */\n NONE = 0,\n /**\n * Indicates non-biometric authentication (e.g. PIN, Pattern).\n */\n SECRET = 1,\n /**\n * Indicates biometric authentication.\n * @deprecated please use `BIOMETRIC_STRONG` or `BIOMETRIC_WEAK` instead.\n * @hidden\n */\n BIOMETRIC = Platform.OS === 'android'\n ? SecurityLevel.BIOMETRIC_WEAK\n : SecurityLevel.BIOMETRIC_STRONG,\n /**\n * Indicates weak biometric authentication. For example, a 2D image-based face unlock.\n * > There are currently no weak biometric authentication options on iOS.\n */\n BIOMETRIC_WEAK = 2,\n /**\n * Indicates strong biometric authentication. For example, a fingerprint scan or 3D face unlock.\n */\n BIOMETRIC_STRONG = 3,\n}\n\nObject.defineProperty(SecurityLevel, 'BIOMETRIC', {\n get() {\n const additionalMessage =\n Platform.OS === 'android'\n ? '. `SecurityLevel.BIOMETRIC` is currently an alias for `SecurityLevel.BIOMETRIC_WEAK` on Android, which might lead to unexpected behaviour.'\n : '';\n console.warn(\n '`SecurityLevel.BIOMETRIC` has been deprecated. Use `SecurityLevel.BIOMETRIC_WEAK` or `SecurityLevel.BIOMETRIC_STRONG` instead' +\n additionalMessage\n );\n return Platform.OS === 'android'\n ? SecurityLevel.BIOMETRIC_WEAK\n : SecurityLevel.BIOMETRIC_STRONG;\n },\n});\n\n/**\n * Security level of the biometric authentication to allow.\n * @platform android\n */\nexport type BiometricsSecurityLevel = 'weak' | 'strong';\n\n// @needsAudit\nexport type LocalAuthenticationOptions = {\n /**\n * A message that is shown alongside the TouchID or FaceID prompt.\n */\n promptMessage?: string;\n /**\n * Allows to customize the default `Cancel` label shown.\n */\n cancelLabel?: string;\n /**\n * After several failed attempts the system will fallback to the device passcode. This setting\n * allows you to disable this option and instead handle the fallback yourself. This can be\n * preferable in certain custom authentication workflows. This behaviour maps to using the iOS\n * [`LAPolicyDeviceOwnerAuthenticationWithBiometrics`](https://developer.apple.com/documentation/localauthentication/lapolicy/deviceownerauthenticationwithbiometrics)\n * policy rather than the [`LAPolicyDeviceOwnerAuthentication`](https://developer.apple.com/documentation/localauthentication/lapolicy/deviceownerauthentication?language=objc)\n * policy. Defaults to `false`.\n */\n disableDeviceFallback?: boolean;\n /**\n * Sets a hint to the system for whether to require user confirmation after authentication.\n * This may be ignored by the system if the user has disabled implicit authentication in Settings\n * or if it does not apply to a particular biometric modality. Defaults to `true`.\n * @platform android\n */\n requireConfirmation?: boolean;\n /**\n * Sets the security class of biometric authentication to allow.\n * `strong` allows only Android Class 3 biometrics. For example, a fingerprint or a 3D face scan.\n * `weak` allows both Android Class 3 and Class 2 biometrics. Class 2 biometrics are less secure than Class 3. For example, a camera-based face unlock.\n * @platform android\n * @default 'weak'\n */\n biometricsSecurityLevel?: BiometricsSecurityLevel;\n /**\n * Allows to customize the default `Use Passcode` label shown after several failed\n * authentication attempts. Setting this option to an empty string disables this button from\n * showing in the prompt.\n * @platform ios\n */\n fallbackLabel?: string;\n};\n\n/**\n * One of the error values returned by the [`LocalAuthenticationResult`](#localauthenticationresult) object.\n */\nexport type LocalAuthenticationError =\n | 'not_enrolled'\n | 'user_cancel'\n | 'app_cancel'\n | 'not_available'\n | 'lockout'\n | 'no_space'\n | 'timeout'\n | 'unable_to_process'\n | 'unknown'\n | 'system_cancel'\n | 'user_fallback'\n | 'invalid_context'\n | 'passcode_not_set'\n | 'authentication_failed';\n"]}
1
+ {"version":3,"file":"LocalAuthentication.types.js","sourceRoot":"","sources":["../src/LocalAuthentication.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAU7C,cAAc;AACd,MAAM,CAAN,IAAY,kBAcX;AAdD,WAAY,kBAAkB;IAC5B;;OAEG;IACH,yEAAe,CAAA;IACf;;OAEG;IACH,uFAAsB,CAAA;IACtB;;;OAGG;IACH,2DAAQ,CAAA;AACV,CAAC,EAdW,kBAAkB,KAAlB,kBAAkB,QAc7B;AAED,cAAc;AACd,MAAM,CAAN,IAAY,aA0BX;AA1BD,WAAY,aAAa;IACvB;;OAEG;IACH,iDAAQ,CAAA;IACR;;OAEG;IACH,qDAAU,CAAA;IACV;;;;OAIG;IACH,2CAAY,QAAQ,CAAC,EAAE,KAAK,SAAS;QACnC,CAAC,CAAC,aAAa,CAAC,cAAc;QAC9B,CAAC,CAAC,aAAa,CAAC,gBAAgB,eAAA,CAAA;IAClC;;;OAGG;IACH,qEAAkB,CAAA;IAClB;;OAEG;IACH,yEAAoB,CAAA;AACtB,CAAC,EA1BW,aAAa,KAAb,aAAa,QA0BxB;AAED,MAAM,CAAC,cAAc,CAAC,aAAa,EAAE,WAAW,EAAE;IAChD,GAAG;QACD,MAAM,iBAAiB,GACrB,QAAQ,CAAC,EAAE,KAAK,SAAS;YACvB,CAAC,CAAC,4IAA4I;YAC9I,CAAC,CAAC,EAAE,CAAC;QACT,OAAO,CAAC,IAAI,CACV,+HAA+H;YAC7H,iBAAiB,CACpB,CAAC;QACF,OAAO,QAAQ,CAAC,EAAE,KAAK,SAAS;YAC9B,CAAC,CAAC,aAAa,CAAC,cAAc;YAC9B,CAAC,CAAC,aAAa,CAAC,gBAAgB,CAAC;IACrC,CAAC;CACF,CAAC,CAAC","sourcesContent":["import { Platform } from 'expo-modules-core';\n\nexport type LocalAuthenticationResult =\n | { success: true }\n | {\n success: false;\n error: LocalAuthenticationError;\n warning?: string;\n };\n\n// @needsAudit\nexport enum AuthenticationType {\n /**\n * Indicates fingerprint support.\n */\n FINGERPRINT = 1,\n /**\n * Indicates facial recognition support.\n */\n FACIAL_RECOGNITION = 2,\n /**\n * Indicates iris recognition support.\n * @platform android\n */\n IRIS = 3,\n}\n\n// @needsAudit\nexport enum SecurityLevel {\n /**\n * Indicates no enrolled authentication.\n */\n NONE = 0,\n /**\n * Indicates non-biometric authentication (e.g. PIN, Pattern).\n */\n SECRET = 1,\n /**\n * Indicates biometric authentication.\n * @deprecated please use `BIOMETRIC_STRONG` or `BIOMETRIC_WEAK` instead.\n * @hidden\n */\n BIOMETRIC = Platform.OS === 'android'\n ? SecurityLevel.BIOMETRIC_WEAK\n : SecurityLevel.BIOMETRIC_STRONG,\n /**\n * Indicates weak biometric authentication. For example, a 2D image-based face unlock.\n * > There are currently no weak biometric authentication options on iOS.\n */\n BIOMETRIC_WEAK = 2,\n /**\n * Indicates strong biometric authentication. For example, a fingerprint scan or 3D face unlock.\n */\n BIOMETRIC_STRONG = 3,\n}\n\nObject.defineProperty(SecurityLevel, 'BIOMETRIC', {\n get() {\n const additionalMessage =\n Platform.OS === 'android'\n ? '. `SecurityLevel.BIOMETRIC` is currently an alias for `SecurityLevel.BIOMETRIC_WEAK` on Android, which might lead to unexpected behaviour.'\n : '';\n console.warn(\n '`SecurityLevel.BIOMETRIC` has been deprecated. Use `SecurityLevel.BIOMETRIC_WEAK` or `SecurityLevel.BIOMETRIC_STRONG` instead' +\n additionalMessage\n );\n return Platform.OS === 'android'\n ? SecurityLevel.BIOMETRIC_WEAK\n : SecurityLevel.BIOMETRIC_STRONG;\n },\n});\n\n/**\n * Security level of the biometric authentication to allow.\n * @platform android\n */\nexport type BiometricsSecurityLevel = 'weak' | 'strong';\n\n// @needsAudit\nexport type LocalAuthenticationOptions = {\n /**\n * A message that is shown alongside the TouchID or FaceID prompt.\n */\n promptMessage?: string;\n /**\n * A subtitle displayed below the prompt message in the authentication prompt.\n * @platform android\n */\n promptSubtitle?: string;\n /**\n * A description displayed in the middle of the authentication prompt.\n * @platform android\n */\n promptDescription?: string;\n /**\n * Allows customizing the default `Cancel` label shown.\n */\n cancelLabel?: string;\n /**\n * After several failed attempts, the system falls back to the device passcode. This setting\n * allows you to disable this option and instead handle the fallback yourself. This can be\n * preferable in certain custom authentication workflows. This behaviour maps to using the iOS\n * [`LAPolicyDeviceOwnerAuthenticationWithBiometrics`](https://developer.apple.com/documentation/localauthentication/lapolicy/deviceownerauthenticationwithbiometrics)\n * policy rather than the [`LAPolicyDeviceOwnerAuthentication`](https://developer.apple.com/documentation/localauthentication/lapolicy/deviceownerauthentication?language=objc)\n * policy. Defaults to `false`.\n */\n disableDeviceFallback?: boolean;\n /**\n * Sets a hint to the system for whether to require user confirmation after authentication.\n * This may be ignored by the system if the user has disabled implicit authentication in Settings\n * or if it does not apply to a particular biometric modality. Defaults to `true`.\n * @platform android\n */\n requireConfirmation?: boolean;\n /**\n * Sets the security class of biometric authentication to allow.\n * `strong` allows only Android Class 3 biometrics. For example, a fingerprint or a 3D face scan.\n * `weak` allows both Android Class 3 and Class 2 biometrics. Class 2 biometrics are less secure than Class 3. For example, a camera-based face unlock.\n * @platform android\n * @default 'weak'\n */\n biometricsSecurityLevel?: BiometricsSecurityLevel;\n /**\n * Allows to customize the default `Use Passcode` label shown after several failed\n * authentication attempts. Setting this option to an empty string disables this button from\n * showing in the prompt.\n * @platform ios\n */\n fallbackLabel?: string;\n};\n\n/**\n * One of the error values returned by the [`LocalAuthenticationResult`](#localauthenticationresult) object.\n */\nexport type LocalAuthenticationError =\n | 'not_enrolled'\n | 'user_cancel'\n | 'app_cancel'\n | 'not_available'\n | 'lockout'\n | 'no_space'\n | 'timeout'\n | 'unable_to_process'\n | 'unknown'\n | 'system_cancel'\n | 'user_fallback'\n | 'invalid_context'\n | 'passcode_not_set'\n | 'authentication_failed';\n"]}
@@ -8,7 +8,7 @@
8
8
  "publication": {
9
9
  "groupId": "host.exp.exponent",
10
10
  "artifactId": "expo.modules.localauthentication",
11
- "version": "16.0.5",
11
+ "version": "16.1.0-canary-20250630-547cd82",
12
12
  "repository": "local-maven-repo"
13
13
  }
14
14
  }
@@ -0,0 +1 @@
1
+ 7a563c24e2eed9e58d313e93aec845086c672daade741db28f78e9af9e4e53551b1755afd9083e9b02658f5c6b2ddbe3710790483b832d81b9c9fb9ce9fc0ce6
@@ -0,0 +1 @@
1
+ 6cadb47da3415febd8b672ae51ff97bece0f35054aefc3df7ca9c33430e65c301cf532d118cc8ff9c0cedeadf102c79329554e3ef24ed8084000d3b62b6b5761
@@ -0,0 +1,94 @@
1
+ {
2
+ "formatVersion": "1.1",
3
+ "component": {
4
+ "group": "host.exp.exponent",
5
+ "module": "expo.modules.localauthentication",
6
+ "version": "16.1.0-canary-20250630-547cd82",
7
+ "attributes": {
8
+ "org.gradle.status": "release"
9
+ }
10
+ },
11
+ "createdBy": {
12
+ "gradle": {
13
+ "version": "8.14"
14
+ }
15
+ },
16
+ "variants": [
17
+ {
18
+ "name": "releaseVariantReleaseApiPublication",
19
+ "attributes": {
20
+ "org.gradle.category": "library",
21
+ "org.gradle.dependency.bundling": "external",
22
+ "org.gradle.libraryelements": "aar",
23
+ "org.gradle.usage": "java-api"
24
+ },
25
+ "files": [
26
+ {
27
+ "name": "expo.modules.localauthentication-16.1.0-canary-20250630-547cd82.aar",
28
+ "url": "expo.modules.localauthentication-16.1.0-canary-20250630-547cd82.aar",
29
+ "size": 32311,
30
+ "sha512": "6cadb47da3415febd8b672ae51ff97bece0f35054aefc3df7ca9c33430e65c301cf532d118cc8ff9c0cedeadf102c79329554e3ef24ed8084000d3b62b6b5761",
31
+ "sha256": "f2bdb716f47d6c09840a107821f58b2e008e9c8d854aed903eae9795574ed90b",
32
+ "sha1": "6e96da187260be8f3a872556dc6ad87d77a85d78",
33
+ "md5": "1fb8f3f72b61b762ac8afa75f42182da"
34
+ }
35
+ ]
36
+ },
37
+ {
38
+ "name": "releaseVariantReleaseRuntimePublication",
39
+ "attributes": {
40
+ "org.gradle.category": "library",
41
+ "org.gradle.dependency.bundling": "external",
42
+ "org.gradle.libraryelements": "aar",
43
+ "org.gradle.usage": "java-runtime"
44
+ },
45
+ "dependencies": [
46
+ {
47
+ "group": "org.jetbrains.kotlin",
48
+ "module": "kotlin-stdlib-jdk7",
49
+ "version": {
50
+ "requires": "2.1.20"
51
+ }
52
+ },
53
+ {
54
+ "group": "androidx.biometric",
55
+ "module": "biometric",
56
+ "version": {
57
+ "requires": "1.2.0-alpha04"
58
+ }
59
+ }
60
+ ],
61
+ "files": [
62
+ {
63
+ "name": "expo.modules.localauthentication-16.1.0-canary-20250630-547cd82.aar",
64
+ "url": "expo.modules.localauthentication-16.1.0-canary-20250630-547cd82.aar",
65
+ "size": 32311,
66
+ "sha512": "6cadb47da3415febd8b672ae51ff97bece0f35054aefc3df7ca9c33430e65c301cf532d118cc8ff9c0cedeadf102c79329554e3ef24ed8084000d3b62b6b5761",
67
+ "sha256": "f2bdb716f47d6c09840a107821f58b2e008e9c8d854aed903eae9795574ed90b",
68
+ "sha1": "6e96da187260be8f3a872556dc6ad87d77a85d78",
69
+ "md5": "1fb8f3f72b61b762ac8afa75f42182da"
70
+ }
71
+ ]
72
+ },
73
+ {
74
+ "name": "releaseVariantReleaseSourcePublication",
75
+ "attributes": {
76
+ "org.gradle.category": "documentation",
77
+ "org.gradle.dependency.bundling": "external",
78
+ "org.gradle.docstype": "sources",
79
+ "org.gradle.usage": "java-runtime"
80
+ },
81
+ "files": [
82
+ {
83
+ "name": "expo.modules.localauthentication-16.1.0-canary-20250630-547cd82-sources.jar",
84
+ "url": "expo.modules.localauthentication-16.1.0-canary-20250630-547cd82-sources.jar",
85
+ "size": 5220,
86
+ "sha512": "7a563c24e2eed9e58d313e93aec845086c672daade741db28f78e9af9e4e53551b1755afd9083e9b02658f5c6b2ddbe3710790483b832d81b9c9fb9ce9fc0ce6",
87
+ "sha256": "cdc5b4a10ad61ef04440f9b4c5e7f1623f093a58fd768120579c136bef438359",
88
+ "sha1": "e32db6a5386a924e7bfe1c89a6f1f60c40dae53a",
89
+ "md5": "b583762279095ad2ca4909568935bcc7"
90
+ }
91
+ ]
92
+ }
93
+ ]
94
+ }
@@ -0,0 +1 @@
1
+ 25ba1812a3d351581c28e218c93d180d9914cd145c88b05aa9fc420780dacc16e6d7792d1d8aa7a327681a699a802d1da35de1151688142c8b8c4d91602360f5
@@ -9,7 +9,7 @@
9
9
  <modelVersion>4.0.0</modelVersion>
10
10
  <groupId>host.exp.exponent</groupId>
11
11
  <artifactId>expo.modules.localauthentication</artifactId>
12
- <version>16.0.5</version>
12
+ <version>16.1.0-canary-20250630-547cd82</version>
13
13
  <packaging>aar</packaging>
14
14
  <name>expo.modules.localauthentication</name>
15
15
  <url>https://github.com/expo/expo</url>
@@ -28,7 +28,7 @@
28
28
  <dependency>
29
29
  <groupId>org.jetbrains.kotlin</groupId>
30
30
  <artifactId>kotlin-stdlib-jdk7</artifactId>
31
- <version>2.0.21</version>
31
+ <version>2.1.20</version>
32
32
  <scope>runtime</scope>
33
33
  </dependency>
34
34
  <dependency>
@@ -0,0 +1 @@
1
+ 902f9e9e697787dea0c75b83f6c9a246e58eaa8eeeb1c513ac1f02f59ba2e9ac40bbceff510ff967c583dc55c95ef0ed1b489e6081ccd7acc92b3b70adf16e60
@@ -3,11 +3,11 @@
3
3
  <groupId>host.exp.exponent</groupId>
4
4
  <artifactId>expo.modules.localauthentication</artifactId>
5
5
  <versioning>
6
- <latest>16.0.5</latest>
7
- <release>16.0.5</release>
6
+ <latest>16.1.0-canary-20250630-547cd82</latest>
7
+ <release>16.1.0-canary-20250630-547cd82</release>
8
8
  <versions>
9
- <version>16.0.5</version>
9
+ <version>16.1.0-canary-20250630-547cd82</version>
10
10
  </versions>
11
- <lastUpdated>20250701054333</lastUpdated>
11
+ <lastUpdated>20250630093918</lastUpdated>
12
12
  </versioning>
13
13
  </metadata>
@@ -1 +1 @@
1
- dd88387695b4df68513ff2311549744a
1
+ 0dd58308db9f061c3e268229a47f011d
@@ -1 +1 @@
1
- fe242e74365a64f0961c54532cec9da53f64391d
1
+ 19211f01b1e6b8e0beb1661f173934786196f67c
@@ -1 +1 @@
1
- d077638674e7bdafcaf336f362555364583e61ca5ddd11a38a5136f81683552a
1
+ acf6914114d504a60b64c1430170bff827a9a1dc41894c384eca952232f874f2
@@ -1 +1 @@
1
- 918c2c775b51b4e048d4d78263e0472a99148e03fbbc25049d162e92965386964e49d6b0f01edffd4b0964ea78bee87f70dfe4e0b09af6e3d9f1314723bff451
1
+ b9b6d3ce31f246532ab83ac45e0268728dfffb02301ddbdb83d37237a7c8fd91447462fcf0a545d0b381c46d461c4596d4d964049c953ec98b8fcf433af8099c
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "expo-local-authentication",
3
- "version": "16.0.5",
3
+ "version": "16.1.0-canary-20250630-547cd82",
4
4
  "description": "Provides an API for FaceID and TouchID (iOS) or the Fingerprint API (Android) to authenticate the user with a face or fingerprint scan.",
5
5
  "main": "build/LocalAuthentication.js",
6
6
  "types": "build/LocalAuthentication.d.ts",
@@ -41,10 +41,9 @@
41
41
  "invariant": "^2.2.4"
42
42
  },
43
43
  "devDependencies": {
44
- "expo-module-scripts": "^4.1.8"
44
+ "expo-module-scripts": "4.1.9-canary-20250630-547cd82"
45
45
  },
46
46
  "peerDependencies": {
47
- "expo": "*"
48
- },
49
- "gitHead": "9731a6191dcab84e9c3a24492bbe70c56d6f5cc3"
47
+ "expo": "54.0.0-canary-20250630-547cd82"
48
+ }
50
49
  }
@@ -83,11 +83,21 @@ export type LocalAuthenticationOptions = {
83
83
  */
84
84
  promptMessage?: string;
85
85
  /**
86
- * Allows to customize the default `Cancel` label shown.
86
+ * A subtitle displayed below the prompt message in the authentication prompt.
87
+ * @platform android
88
+ */
89
+ promptSubtitle?: string;
90
+ /**
91
+ * A description displayed in the middle of the authentication prompt.
92
+ * @platform android
93
+ */
94
+ promptDescription?: string;
95
+ /**
96
+ * Allows customizing the default `Cancel` label shown.
87
97
  */
88
98
  cancelLabel?: string;
89
99
  /**
90
- * After several failed attempts the system will fallback to the device passcode. This setting
100
+ * After several failed attempts, the system falls back to the device passcode. This setting
91
101
  * allows you to disable this option and instead handle the fallback yourself. This can be
92
102
  * preferable in certain custom authentication workflows. This behaviour maps to using the iOS
93
103
  * [`LAPolicyDeviceOwnerAuthenticationWithBiometrics`](https://developer.apple.com/documentation/localauthentication/lapolicy/deviceownerauthenticationwithbiometrics)
@@ -1 +0,0 @@
1
- 1a8349cd9f7cd5879e0eebf9f51944ceec14348348d1e77ed5971b98d4b3bc14
@@ -1 +0,0 @@
1
- 166fecd9c7770afe8509f91eb300a3daf9d16f75183e1f2eec4b7bffec5022ab27be48971ced9ee7e32c84aea0a29ff4aefe47f3411cd75413931942e664a7b2
@@ -1 +0,0 @@
1
- 2f272970e3d96888f8856a09d22b1f112c97104cc36e147f25c8d6a7e23b0a0b
@@ -1 +0,0 @@
1
- fca14e2ea3fa45efef71d53e9d0f5b8498859a21e214048d0d6e0eb638721c107ba49c2c724a09bb04b97fc63f152b9356a8791c91679e75d560bec56547b5ff
@@ -1,94 +0,0 @@
1
- {
2
- "formatVersion": "1.1",
3
- "component": {
4
- "group": "host.exp.exponent",
5
- "module": "expo.modules.localauthentication",
6
- "version": "16.0.5",
7
- "attributes": {
8
- "org.gradle.status": "release"
9
- }
10
- },
11
- "createdBy": {
12
- "gradle": {
13
- "version": "8.13"
14
- }
15
- },
16
- "variants": [
17
- {
18
- "name": "releaseVariantReleaseApiPublication",
19
- "attributes": {
20
- "org.gradle.category": "library",
21
- "org.gradle.dependency.bundling": "external",
22
- "org.gradle.libraryelements": "aar",
23
- "org.gradle.usage": "java-api"
24
- },
25
- "files": [
26
- {
27
- "name": "expo.modules.localauthentication-16.0.5.aar",
28
- "url": "expo.modules.localauthentication-16.0.5.aar",
29
- "size": 32015,
30
- "sha512": "fca14e2ea3fa45efef71d53e9d0f5b8498859a21e214048d0d6e0eb638721c107ba49c2c724a09bb04b97fc63f152b9356a8791c91679e75d560bec56547b5ff",
31
- "sha256": "2f272970e3d96888f8856a09d22b1f112c97104cc36e147f25c8d6a7e23b0a0b",
32
- "sha1": "ad9c8360f4498a8f53c9fd463d3ea00b036eb82d",
33
- "md5": "6dd48227bf89b7525c4c0287702ea5d0"
34
- }
35
- ]
36
- },
37
- {
38
- "name": "releaseVariantReleaseRuntimePublication",
39
- "attributes": {
40
- "org.gradle.category": "library",
41
- "org.gradle.dependency.bundling": "external",
42
- "org.gradle.libraryelements": "aar",
43
- "org.gradle.usage": "java-runtime"
44
- },
45
- "dependencies": [
46
- {
47
- "group": "org.jetbrains.kotlin",
48
- "module": "kotlin-stdlib-jdk7",
49
- "version": {
50
- "requires": "2.0.21"
51
- }
52
- },
53
- {
54
- "group": "androidx.biometric",
55
- "module": "biometric",
56
- "version": {
57
- "requires": "1.2.0-alpha04"
58
- }
59
- }
60
- ],
61
- "files": [
62
- {
63
- "name": "expo.modules.localauthentication-16.0.5.aar",
64
- "url": "expo.modules.localauthentication-16.0.5.aar",
65
- "size": 32015,
66
- "sha512": "fca14e2ea3fa45efef71d53e9d0f5b8498859a21e214048d0d6e0eb638721c107ba49c2c724a09bb04b97fc63f152b9356a8791c91679e75d560bec56547b5ff",
67
- "sha256": "2f272970e3d96888f8856a09d22b1f112c97104cc36e147f25c8d6a7e23b0a0b",
68
- "sha1": "ad9c8360f4498a8f53c9fd463d3ea00b036eb82d",
69
- "md5": "6dd48227bf89b7525c4c0287702ea5d0"
70
- }
71
- ]
72
- },
73
- {
74
- "name": "releaseVariantReleaseSourcePublication",
75
- "attributes": {
76
- "org.gradle.category": "documentation",
77
- "org.gradle.dependency.bundling": "external",
78
- "org.gradle.docstype": "sources",
79
- "org.gradle.usage": "java-runtime"
80
- },
81
- "files": [
82
- {
83
- "name": "expo.modules.localauthentication-16.0.5-sources.jar",
84
- "url": "expo.modules.localauthentication-16.0.5-sources.jar",
85
- "size": 5166,
86
- "sha512": "166fecd9c7770afe8509f91eb300a3daf9d16f75183e1f2eec4b7bffec5022ab27be48971ced9ee7e32c84aea0a29ff4aefe47f3411cd75413931942e664a7b2",
87
- "sha256": "1a8349cd9f7cd5879e0eebf9f51944ceec14348348d1e77ed5971b98d4b3bc14",
88
- "sha1": "7f6b16b8068feebebaa2bdcc0a21cfd3c169a0e8",
89
- "md5": "b291f3ec52006c85b862643d60d31b40"
90
- }
91
- ]
92
- }
93
- ]
94
- }
@@ -1 +0,0 @@
1
- 924c62fa7f154e14c58fa79ecd0ceb71578d7611e020b8aa0ab9430ba947e4a1
@@ -1 +0,0 @@
1
- 70047802d5b83e265b0beb123eee93cf1a2cc1c864e1baeae0cad95d0820ae80b1dd311686c9d75b9f92c938788f994f95a8eb0ec31d5659617d95fc2a9d59cd
@@ -1 +0,0 @@
1
- 73ff86a70d966c005ba0002b0bf9cfaa1a278439f1f85806ae408010989f5168
@@ -1 +0,0 @@
1
- fa8161c6f3dae8ad1f91a9b4c6139b7ba276731b573c2bfb3e757adbf5a738fa66d0816599d3cf2604597b5e7a4b214a466590ce42d786bfcf3a2f4f5cbcc549