@symbiote-native/local-auth 3.0.0 → 3.0.2

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/README.md CHANGED
@@ -11,14 +11,28 @@ re-exports of the same `core`.
11
11
 
12
12
  ## Install
13
13
 
14
+ **New app:**
15
+
14
16
  ```bash
15
- npm install @symbiote-native/local-auth
17
+ npx @symbiote-native/cli new my-app --local-auth
18
+ ```
19
+
20
+ **Existing SymbioteNative app:**
21
+
22
+ ```bash
23
+ npx @symbiote-native/cli add --local-auth
16
24
  ```
17
25
 
18
- Scaffolding or extending a SymbioteNative app? `npx @symbiote-native/cli new --local-auth` (or
19
- `add --local-auth` in an existing app) installs and wires this for you — see
26
+ Either way: installs `@symbiote-native/local-auth` and wires the native autolinking automatically — see
20
27
  [`@symbiote-native/cli`](../cli).
21
28
 
29
+ <details>
30
+ <summary>Manual install (no CLI — installing and wiring native autolinking by hand)</summary>
31
+
32
+ ```bash
33
+ npm install @symbiote-native/local-auth
34
+ ```
35
+
22
36
  `expo-local-authentication` and `expo-modules-core` come along as regular dependencies, pinned
23
37
  to exact versions — never install either yourself, and never add the `expo` meta-package to
24
38
  your project (it bundles its own Metro/Babel pipeline, which conflicts with this project's own).
@@ -48,6 +62,8 @@ just add the strings your app's own Info.plist/manifest needs:
48
62
  device passcode instead of prompting FaceID).
49
63
  - Android — `USE_BIOMETRIC` in `AndroidManifest.xml`.
50
64
 
65
+ </details>
66
+
51
67
  ## Shape
52
68
 
53
69
  ```
@@ -54,7 +54,7 @@ export async function authenticateAsync(options = {}) {
54
54
  if (!expoLocalAuthentication.authenticateAsync) {
55
55
  throw new UnavailabilityError(NATIVE_MODULE_NAME, 'authenticateAsync');
56
56
  }
57
- if (options.promptMessage !== undefined) {
57
+ if (Object.hasOwn(options, 'promptMessage')) {
58
58
  invariant(typeof options.promptMessage === 'string' &&
59
59
  options.promptMessage.length > 0, 'LocalAuthentication.authenticateAsync: `options.promptMessage` must be a non-empty string.');
60
60
  }
@@ -54,7 +54,7 @@ export async function authenticateAsync(options = {}) {
54
54
  if (!expoLocalAuthentication.authenticateAsync) {
55
55
  throw new UnavailabilityError(NATIVE_MODULE_NAME, 'authenticateAsync');
56
56
  }
57
- if (options.promptMessage !== undefined) {
57
+ if (Object.hasOwn(options, 'promptMessage')) {
58
58
  invariant(typeof options.promptMessage === 'string' &&
59
59
  options.promptMessage.length > 0, 'LocalAuthentication.authenticateAsync: `options.promptMessage` must be a non-empty string.');
60
60
  }
@@ -1 +1 @@
1
- {"version":3,"file":"local-authentication.js","sourceRoot":"","sources":["../../src/core/local-authentication.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,SAAS,MAAM,WAAW,CAAC;AAElC,OAAO,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAQ1D,MAAM,kBAAkB,GAAG,2BAA2B,CAAC;AACvD,MAAM,sBAAsB,GAAG,cAAc,CAAC;AAC9C,MAAM,oBAAoB,GAAG,QAAQ,CAAC;AAEtC;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB;IACpC,IAAI,CAAC,uBAAuB,CAAC,gBAAgB,EAAE,CAAC;QAC9C,MAAM,IAAI,mBAAmB,CAAC,kBAAkB,EAAE,kBAAkB,CAAC,CAAC;IACxE,CAAC;IACD,OAAO,uBAAuB,CAAC,gBAAgB,EAAE,CAAC;AACpD,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,iCAAiC;IAGrD,IAAI,CAAC,uBAAuB,CAAC,iCAAiC,EAAE,CAAC;QAC/D,MAAM,IAAI,mBAAmB,CAC3B,kBAAkB,EAClB,mCAAmC,CACpC,CAAC;IACJ,CAAC;IACD,OAAO,uBAAuB,CAAC,iCAAiC,EAAE,CAAC;AACrE,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe;IACnC,IAAI,CAAC,uBAAuB,CAAC,eAAe,EAAE,CAAC;QAC7C,MAAM,IAAI,mBAAmB,CAAC,kBAAkB,EAAE,iBAAiB,CAAC,CAAC;IACvE,CAAC;IACD,OAAO,uBAAuB,CAAC,eAAe,EAAE,CAAC;AACnD,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB;IACzC,IAAI,CAAC,uBAAuB,CAAC,qBAAqB,EAAE,CAAC;QACnD,MAAM,IAAI,mBAAmB,CAAC,kBAAkB,EAAE,uBAAuB,CAAC,CAAC;IAC7E,CAAC;IACD,OAAO,uBAAuB,CAAC,qBAAqB,EAAE,CAAC;AACzD,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,UAAuC,EAAE;IAEzC,IAAI,CAAC,uBAAuB,CAAC,iBAAiB,EAAE,CAAC;QAC/C,MAAM,IAAI,mBAAmB,CAAC,kBAAkB,EAAE,mBAAmB,CAAC,CAAC;IACzE,CAAC;IAED,IAAI,OAAO,CAAC,aAAa,KAAK,SAAS,EAAE,CAAC;QACxC,SAAS,CACP,OAAO,OAAO,CAAC,aAAa,KAAK,QAAQ;YACvC,OAAO,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAClC,4FAA4F,CAC7F,CAAC;IACJ,CAAC;IAED,OAAO,uBAAuB,CAAC,iBAAiB,CAAC;QAC/C,GAAG,OAAO;QACV,aAAa,EAAE,OAAO,CAAC,aAAa,IAAI,sBAAsB;QAC9D,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,oBAAoB;KACzD,CAAC,CAAC;AACL,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB;IACtC,IAAI,CAAC,uBAAuB,CAAC,kBAAkB,EAAE,CAAC;QAChD,MAAM,IAAI,mBAAmB,CAAC,kBAAkB,EAAE,oBAAoB,CAAC,CAAC;IAC1E,CAAC;IACD,MAAM,uBAAuB,CAAC,kBAAkB,EAAE,CAAC;AACrD,CAAC"}
1
+ {"version":3,"file":"local-authentication.js","sourceRoot":"","sources":["../../src/core/local-authentication.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,SAAS,MAAM,WAAW,CAAC;AAElC,OAAO,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAQ1D,MAAM,kBAAkB,GAAG,2BAA2B,CAAC;AACvD,MAAM,sBAAsB,GAAG,cAAc,CAAC;AAC9C,MAAM,oBAAoB,GAAG,QAAQ,CAAC;AAEtC;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB;IACpC,IAAI,CAAC,uBAAuB,CAAC,gBAAgB,EAAE,CAAC;QAC9C,MAAM,IAAI,mBAAmB,CAAC,kBAAkB,EAAE,kBAAkB,CAAC,CAAC;IACxE,CAAC;IACD,OAAO,uBAAuB,CAAC,gBAAgB,EAAE,CAAC;AACpD,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,iCAAiC;IAGrD,IAAI,CAAC,uBAAuB,CAAC,iCAAiC,EAAE,CAAC;QAC/D,MAAM,IAAI,mBAAmB,CAC3B,kBAAkB,EAClB,mCAAmC,CACpC,CAAC;IACJ,CAAC;IACD,OAAO,uBAAuB,CAAC,iCAAiC,EAAE,CAAC;AACrE,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe;IACnC,IAAI,CAAC,uBAAuB,CAAC,eAAe,EAAE,CAAC;QAC7C,MAAM,IAAI,mBAAmB,CAAC,kBAAkB,EAAE,iBAAiB,CAAC,CAAC;IACvE,CAAC;IACD,OAAO,uBAAuB,CAAC,eAAe,EAAE,CAAC;AACnD,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB;IACzC,IAAI,CAAC,uBAAuB,CAAC,qBAAqB,EAAE,CAAC;QACnD,MAAM,IAAI,mBAAmB,CAAC,kBAAkB,EAAE,uBAAuB,CAAC,CAAC;IAC7E,CAAC;IACD,OAAO,uBAAuB,CAAC,qBAAqB,EAAE,CAAC;AACzD,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,UAAuC,EAAE;IAEzC,IAAI,CAAC,uBAAuB,CAAC,iBAAiB,EAAE,CAAC;QAC/C,MAAM,IAAI,mBAAmB,CAAC,kBAAkB,EAAE,mBAAmB,CAAC,CAAC;IACzE,CAAC;IAED,IAAI,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,eAAe,CAAC,EAAE,CAAC;QAC5C,SAAS,CACP,OAAO,OAAO,CAAC,aAAa,KAAK,QAAQ;YACvC,OAAO,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAClC,4FAA4F,CAC7F,CAAC;IACJ,CAAC;IAED,OAAO,uBAAuB,CAAC,iBAAiB,CAAC;QAC/C,GAAG,OAAO;QACV,aAAa,EAAE,OAAO,CAAC,aAAa,IAAI,sBAAsB;QAC9D,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,oBAAoB;KACzD,CAAC,CAAC;AACL,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB;IACtC,IAAI,CAAC,uBAAuB,CAAC,kBAAkB,EAAE,CAAC;QAChD,MAAM,IAAI,mBAAmB,CAAC,kBAAkB,EAAE,oBAAoB,CAAC,CAAC;IAC1E,CAAC;IACD,MAAM,uBAAuB,CAAC,kBAAkB,EAAE,CAAC;AACrD,CAAC"}
package/native-link.json CHANGED
@@ -7,6 +7,10 @@
7
7
  "className": "LocalAuthenticationModule",
8
8
  "nativeName": "ExpoLocalAuthentication"
9
9
  }
10
+ ],
11
+ "manifestPermissions": [
12
+ "android.permission.USE_FINGERPRINT",
13
+ "android.permission.USE_BIOMETRIC"
10
14
  ]
11
15
  },
12
16
  "ios": {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@symbiote-native/local-auth",
3
- "version": "3.0.0",
3
+ "version": "3.0.2",
4
4
  "description": "expo-local-authentication wrapped for SymbioteNative — one framework-agnostic core, built once and reachable from the React, Vue, Svelte, Solid, and Angular adapters. FaceID/TouchID on iOS, the Fingerprint/Biometric API on Android.",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -81,12 +81,12 @@
81
81
  "solid-js": ">=1.9.0",
82
82
  "svelte": ">=5.56.0",
83
83
  "vue": ">=3.5.0",
84
- "@symbiote-native/angular": "^3.0.0",
85
- "@symbiote-native/engine": "^1.0.0",
86
- "@symbiote-native/react": "^3.0.0",
87
- "@symbiote-native/solid": "^3.0.0",
88
- "@symbiote-native/svelte": "^3.0.0",
89
- "@symbiote-native/vue": "^3.0.0"
84
+ "@symbiote-native/angular": "^3.1.2",
85
+ "@symbiote-native/engine": "^1.3.1",
86
+ "@symbiote-native/react": "^3.0.4",
87
+ "@symbiote-native/solid": "^3.0.4",
88
+ "@symbiote-native/svelte": "^3.0.4",
89
+ "@symbiote-native/vue": "^3.0.4"
90
90
  },
91
91
  "peerDependenciesMeta": {
92
92
  "@symbiote-native/angular": {
@@ -135,13 +135,13 @@
135
135
  "solid-js": "^1.9.14",
136
136
  "svelte": "^5.56.0",
137
137
  "typescript": "~6.0.0",
138
- "@symbiote-native/angular": "3.0.0",
139
- "@symbiote-native/engine": "1.0.0",
140
- "@symbiote-native/react": "3.0.0",
141
- "@symbiote-native/solid": "3.0.0",
142
- "@symbiote-native/svelte": "3.0.0",
143
- "@symbiote-native/test-utils": "0.3.1",
144
- "@symbiote-native/vue": "3.0.0"
138
+ "@symbiote-native/angular": "3.1.2",
139
+ "@symbiote-native/engine": "1.3.1",
140
+ "@symbiote-native/react": "3.0.4",
141
+ "@symbiote-native/solid": "3.0.4",
142
+ "@symbiote-native/svelte": "3.0.4",
143
+ "@symbiote-native/test-utils": "0.4.4",
144
+ "@symbiote-native/vue": "3.0.4"
145
145
  },
146
146
  "scripts": {
147
147
  "typecheck": "tsc --build",
@@ -75,7 +75,7 @@ export async function authenticateAsync(
75
75
  throw new UnavailabilityError(NATIVE_MODULE_NAME, 'authenticateAsync');
76
76
  }
77
77
 
78
- if (options.promptMessage !== undefined) {
78
+ if (Object.hasOwn(options, 'promptMessage')) {
79
79
  invariant(
80
80
  typeof options.promptMessage === 'string' &&
81
81
  options.promptMessage.length > 0,