@symbiote-native/local-auth 0.0.1

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 (2) hide show
  1. package/README.md +40 -0
  2. package/package.json +19 -0
package/README.md ADDED
@@ -0,0 +1,40 @@
1
+ # @symbiote-native/local-auth
2
+
3
+ Planned port of [`expo-local-authentication`](https://docs.expo.dev/versions/latest/sdk/local-authentication/)
4
+ for [SymbioteNative](../../README.md) — FaceID/TouchID on iOS, the Fingerprint/Biometric API on
5
+ Android, reachable from every adapter (React, Vue, Angular), not just React.
6
+
7
+ **Status: skeleton only.** This package is not implemented yet — no source, no native wiring, not
8
+ functional. Published early to reserve the npm name. Built the same way as
9
+ [`@symbiote-native/sensors`](../sensors), a prior `expo-modules-core`-based wrapper (see the
10
+ `symbiote-expo-native-module` project skill for the full mechanism: why `expo-modules-core` is
11
+ depended on directly and never the `expo` meta-package, why the upstream JS is hand-ported into
12
+ `core/` rather than imported, and how autolinking picks up the native module).
13
+
14
+ ## Planned API surface
15
+
16
+ Free functions, no event stream, no per-instance state — upstream ships a handful of async
17
+ functions and two enums, not a subscribable sensor:
18
+
19
+ ```ts
20
+ hasHardwareAsync(): Promise<boolean>
21
+ isEnrolledAsync(): Promise<boolean>
22
+ getEnrolledLevelAsync(): Promise<SecurityLevel>
23
+ supportedAuthenticationTypesAsync(): Promise<AuthenticationType[]>
24
+ authenticateAsync(options?: LocalAuthenticationOptions): Promise<LocalAuthenticationResult>
25
+ cancelAuthenticate(): Promise<void> // Android only
26
+ ```
27
+
28
+ Plus `AuthenticationType`, `SecurityLevel`, `LocalAuthenticationOptions`,
29
+ `LocalAuthenticationResult`, `LocalAuthenticationError`, `BiometricsSecurityLevel` — ported
30
+ verbatim from upstream's `LocalAuthentication.types.ts`, since they're plain data with no native or
31
+ React dependency.
32
+
33
+ ## Not yet done
34
+
35
+ - `src/core` — ported types/enums + the six functions over `requireNativeModule('ExpoLocalAuthentication')`
36
+ - `react`/`vue`/`angular` entry points — thin re-exports, no adapter-specific state needed
37
+ - Native wiring in an example app (`use_expo_modules!`, Android Gradle autolinking,
38
+ `NSFaceIDUsageDescription` in `Info.plist`, `USE_BIOMETRIC`/`USE_FINGERPRINT` on Android)
39
+ - Tests, following upstream's own fake-native-module pattern (no Fabric/Descriptor angle — this
40
+ wraps no native view)
package/package.json ADDED
@@ -0,0 +1,19 @@
1
+ {
2
+ "name": "@symbiote-native/local-auth",
3
+ "version": "0.0.1",
4
+ "description": "expo-local-authentication wrapped for SymbioteNative — planned: one framework-agnostic core, reachable from the React, Vue, and Angular adapters. FaceID/TouchID (iOS) and the Fingerprint/Biometric API (Android). Skeleton only — no implementation yet, see README.",
5
+ "license": "MIT",
6
+ "repository": {
7
+ "type": "git",
8
+ "url": "git+https://github.com/OneEyed1366/symbiote-native.git",
9
+ "directory": "packages/local-auth"
10
+ },
11
+ "homepage": "https://github.com/OneEyed1366/symbiote-native/tree/master/packages/local-auth#readme",
12
+ "bugs": {
13
+ "url": "https://github.com/OneEyed1366/symbiote-native/issues"
14
+ },
15
+ "author": "Andrey Prokopenko <psevdoproger@gmail.com>",
16
+ "publishConfig": {
17
+ "access": "public"
18
+ }
19
+ }