@trustchex/react-native-sdk 1.464.0 → 1.472.0
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/android/src/main/java/com/trustchex/reactnativesdk/camera/TrustchexCameraView.kt +43 -3
- package/ios/Camera/TrustchexCameraView.swift +152 -27
- package/ios/Permission/PermissionModule.m +22 -0
- package/ios/Permission/PermissionModule.swift +67 -0
- package/lib/module/Screens/Dynamic/LivenessDetectionScreen.js +24 -3
- package/lib/module/Screens/Dynamic/VerbalConsentScreen.js +1 -1
- package/lib/module/Screens/Dynamic/VideoCallScreen.js +7 -12
- package/lib/module/Screens/Static/ResultScreen.js +4 -1
- package/lib/module/Shared/Components/EIDScanner.js +166 -163
- package/lib/module/Shared/Components/FaceCamera.js +14 -8
- package/lib/module/Shared/Components/IdentityDocumentCamera.js +7 -6
- package/lib/module/Shared/Libs/PERMISSIONS_MANAGER.md +268 -0
- package/lib/module/Shared/Libs/index.js +20 -0
- package/lib/module/Shared/Libs/permissions.utils.js +199 -0
- package/lib/module/Translation/Resources/en.js +1 -0
- package/lib/module/Translation/Resources/tr.js +1 -0
- package/lib/module/version.js +1 -1
- package/lib/typescript/src/Screens/Dynamic/LivenessDetectionScreen.d.ts.map +1 -1
- package/lib/typescript/src/Screens/Dynamic/VideoCallScreen.d.ts.map +1 -1
- package/lib/typescript/src/Screens/Static/ResultScreen.d.ts.map +1 -1
- package/lib/typescript/src/Shared/Components/EIDScanner.d.ts.map +1 -1
- package/lib/typescript/src/Shared/Components/FaceCamera.d.ts.map +1 -1
- package/lib/typescript/src/Shared/Components/IdentityDocumentCamera.d.ts.map +1 -1
- package/lib/typescript/src/Shared/Libs/index.d.ts +20 -0
- package/lib/typescript/src/Shared/Libs/index.d.ts.map +1 -0
- package/lib/typescript/src/Shared/Libs/permissions.utils.d.ts +58 -0
- package/lib/typescript/src/Shared/Libs/permissions.utils.d.ts.map +1 -0
- package/lib/typescript/src/Translation/Resources/en.d.ts +1 -0
- package/lib/typescript/src/Translation/Resources/en.d.ts.map +1 -1
- package/lib/typescript/src/Translation/Resources/tr.d.ts +1 -0
- package/lib/typescript/src/Translation/Resources/tr.d.ts.map +1 -1
- package/lib/typescript/src/version.d.ts +1 -1
- package/package.json +1 -1
- package/src/Screens/Dynamic/LivenessDetectionScreen.tsx +45 -5
- package/src/Screens/Dynamic/VerbalConsentScreen.tsx +1 -1
- package/src/Screens/Dynamic/VideoCallScreen.tsx +8 -19
- package/src/Screens/Static/ResultScreen.tsx +13 -9
- package/src/Shared/Components/EIDScanner.tsx +210 -160
- package/src/Shared/Components/FaceCamera.tsx +19 -16
- package/src/Shared/Components/IdentityDocumentCamera.tsx +7 -7
- package/src/Shared/Libs/PERMISSIONS_MANAGER.md +268 -0
- package/src/Shared/Libs/index.ts +63 -0
- package/src/Shared/Libs/permissions.utils.ts +251 -0
- package/src/Translation/Resources/en.ts +1 -0
- package/src/Translation/Resources/tr.ts +1 -0
- package/src/version.ts +1 -1
|
@@ -0,0 +1,268 @@
|
|
|
1
|
+
# PermissionManager Documentation
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
|
|
5
|
+
`PermissionManager` is a centralized utility for handling all platform-specific permission requests (camera, microphone, NFC, etc.) in the React Native SDK. It abstracts away platform differences (iOS vs Android) and provides a clean, consistent API.
|
|
6
|
+
|
|
7
|
+
## Location
|
|
8
|
+
|
|
9
|
+
- **File**: `src/Shared/Libs/permissions.utils.ts`
|
|
10
|
+
- **Export**: Can be imported from `src/Shared/Libs/index.ts`
|
|
11
|
+
|
|
12
|
+
## Supported Permissions
|
|
13
|
+
|
|
14
|
+
```typescript
|
|
15
|
+
type PermissionType = 'camera' | 'microphone' | 'nfc';
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
| Permission | iOS | Android | Notes |
|
|
19
|
+
| ------------ | --- | ------- | ---------------------------------------- |
|
|
20
|
+
| `camera` | ✅ | ✅ | Camera access for video recording |
|
|
21
|
+
| `microphone` | ✅ | ✅ | Microphone access for audio recording |
|
|
22
|
+
| `nfc` | ✅ | ✅ | NFC chip reading (document verification) |
|
|
23
|
+
|
|
24
|
+
## API Reference
|
|
25
|
+
|
|
26
|
+
### Request Methods
|
|
27
|
+
|
|
28
|
+
#### `requestPermission(permission: PermissionType): Promise<boolean>`
|
|
29
|
+
|
|
30
|
+
Request a single permission. Returns `true` if granted, `false` if denied.
|
|
31
|
+
|
|
32
|
+
```typescript
|
|
33
|
+
import PermissionManager from '../../Shared/Libs/permissions.utils';
|
|
34
|
+
|
|
35
|
+
const hasCamera = await PermissionManager.requestPermission('camera');
|
|
36
|
+
if (!hasCamera) {
|
|
37
|
+
console.log('Camera permission denied');
|
|
38
|
+
}
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
#### `requestPermissions(permissions: PermissionType[]): Promise<Map<PermissionType, boolean>>`
|
|
42
|
+
|
|
43
|
+
Request multiple permissions at once. Returns a Map with permission status for each.
|
|
44
|
+
|
|
45
|
+
```typescript
|
|
46
|
+
const results = await PermissionManager.requestPermissions([
|
|
47
|
+
'camera',
|
|
48
|
+
'microphone',
|
|
49
|
+
]);
|
|
50
|
+
const hasCamera = results.get('camera') ?? false;
|
|
51
|
+
const hasMicrophone = results.get('microphone') ?? false;
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
#### `requestCameraAndMicrophone(): Promise<boolean>`
|
|
55
|
+
|
|
56
|
+
**⭐ Convenience method** — Request camera and microphone together (common for video recording). Returns `true` only if BOTH are granted.
|
|
57
|
+
|
|
58
|
+
```typescript
|
|
59
|
+
const hasBothPermissions = await PermissionManager.requestCameraAndMicrophone();
|
|
60
|
+
if (!hasBothPermissions) {
|
|
61
|
+
showError('Camera and microphone access required for video call');
|
|
62
|
+
}
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
#### `requestCamera(): Promise<boolean>`
|
|
66
|
+
|
|
67
|
+
Request camera permission only.
|
|
68
|
+
|
|
69
|
+
```typescript
|
|
70
|
+
const hasCamera = await PermissionManager.requestCamera();
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
#### `requestMicrophone(): Promise<boolean>`
|
|
74
|
+
|
|
75
|
+
Request microphone permission only.
|
|
76
|
+
|
|
77
|
+
```typescript
|
|
78
|
+
const hasMicrophone = await PermissionManager.requestMicrophone();
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
#### `requestNFC(): Promise<boolean>`
|
|
82
|
+
|
|
83
|
+
Request NFC permission for document verification.
|
|
84
|
+
|
|
85
|
+
```typescript
|
|
86
|
+
const hasNFC = await PermissionManager.requestNFC();
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
#### `requestWithFallback(permission: PermissionType, onDenied?: () => void): Promise<boolean>`
|
|
90
|
+
|
|
91
|
+
Request permission with custom callback when denied.
|
|
92
|
+
|
|
93
|
+
```typescript
|
|
94
|
+
const granted = await PermissionManager.requestWithFallback('camera', () => {
|
|
95
|
+
showAlert('Camera access is required for verification');
|
|
96
|
+
});
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
### Check Methods (Non-requesting)
|
|
100
|
+
|
|
101
|
+
Check if a permission is already granted without requesting.
|
|
102
|
+
|
|
103
|
+
#### `checkPermission(permission: PermissionType): Promise<boolean>`
|
|
104
|
+
|
|
105
|
+
Check a single permission status.
|
|
106
|
+
|
|
107
|
+
```typescript
|
|
108
|
+
const hasCamera = await PermissionManager.checkPermission('camera');
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
#### `hasCameraAndMicrophone(): Promise<boolean>`
|
|
112
|
+
|
|
113
|
+
Check if both camera and microphone are granted.
|
|
114
|
+
|
|
115
|
+
```typescript
|
|
116
|
+
const ready = await PermissionManager.hasCameraAndMicrophone();
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
#### `hasCamera(): Promise<boolean>`
|
|
120
|
+
|
|
121
|
+
Check if camera is granted.
|
|
122
|
+
|
|
123
|
+
```typescript
|
|
124
|
+
const hasCamera = await PermissionManager.hasCamera();
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
#### `hasMicrophone(): Promise<boolean>`
|
|
128
|
+
|
|
129
|
+
Check if microphone is granted.
|
|
130
|
+
|
|
131
|
+
```typescript
|
|
132
|
+
const hasMicrophone = await PermissionManager.hasMicrophone();
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
#### `hasNFC(): Promise<boolean>`
|
|
136
|
+
|
|
137
|
+
Check if NFC is granted.
|
|
138
|
+
|
|
139
|
+
```typescript
|
|
140
|
+
const hasNFC = await PermissionManager.hasNFC();
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
## Common Patterns
|
|
144
|
+
|
|
145
|
+
### Pattern 1: Video Call Setup (Camera + Microphone)
|
|
146
|
+
|
|
147
|
+
```typescript
|
|
148
|
+
import PermissionManager from '../../Shared/Libs/permissions.utils';
|
|
149
|
+
|
|
150
|
+
async function initializeVideoCall() {
|
|
151
|
+
const hasBothPermissions =
|
|
152
|
+
await PermissionManager.requestCameraAndMicrophone();
|
|
153
|
+
|
|
154
|
+
if (!hasBothPermissions) {
|
|
155
|
+
setConnectionState('permissions_denied');
|
|
156
|
+
return;
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
// Proceed with video call initialization
|
|
160
|
+
const stream = await service.initialize();
|
|
161
|
+
setLocalStream(stream);
|
|
162
|
+
}
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
### Pattern 2: Document Verification (NFC)
|
|
166
|
+
|
|
167
|
+
```typescript
|
|
168
|
+
const hasNFC = await PermissionManager.requestNFC();
|
|
169
|
+
|
|
170
|
+
if (!hasNFC) {
|
|
171
|
+
showError('NFC access required to read document');
|
|
172
|
+
return;
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
const result = await readNFCChip();
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
### Pattern 3: Check Before Requesting
|
|
179
|
+
|
|
180
|
+
```typescript
|
|
181
|
+
// First check if permission is already granted
|
|
182
|
+
const alreadyHasCamera = await PermissionManager.checkPermission('camera');
|
|
183
|
+
|
|
184
|
+
if (alreadyHasCamera) {
|
|
185
|
+
// Skip request dialog
|
|
186
|
+
startCamera();
|
|
187
|
+
} else {
|
|
188
|
+
// Request permission (shows OS dialog)
|
|
189
|
+
const granted = await PermissionManager.requestCamera();
|
|
190
|
+
if (granted) {
|
|
191
|
+
startCamera();
|
|
192
|
+
} else {
|
|
193
|
+
showErrorMessage('Camera access required');
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
## Platform Implementation Details
|
|
199
|
+
|
|
200
|
+
### iOS
|
|
201
|
+
|
|
202
|
+
Uses the `react-native-permissions` library with `RNPermissions` module.
|
|
203
|
+
|
|
204
|
+
**Permissions layout location**: `ios/App.xcodeproj/Info.plist`
|
|
205
|
+
|
|
206
|
+
Required Info.plist keys:
|
|
207
|
+
|
|
208
|
+
- `NSCameraUsageDescription` — Camera access explanation
|
|
209
|
+
- `NSMicrophoneUsageDescription` — Microphone access explanation
|
|
210
|
+
- `NFCReaderUsageDescription` — NFC access explanation
|
|
211
|
+
|
|
212
|
+
### Android
|
|
213
|
+
|
|
214
|
+
Uses built-in `PermissionsAndroid` from React Native core.
|
|
215
|
+
|
|
216
|
+
**Permissions manifest location**: `android/app/src/main/AndroidManifest.xml`
|
|
217
|
+
|
|
218
|
+
Required manifest permissions:
|
|
219
|
+
|
|
220
|
+
- `android.permission.CAMERA` — Camera access
|
|
221
|
+
- `android.permission.RECORD_AUDIO` — Microphone access
|
|
222
|
+
- `android.permission.NFC` — NFC chip reading
|
|
223
|
+
|
|
224
|
+
## Error Handling
|
|
225
|
+
|
|
226
|
+
The PermissionManager handles errors internally and logs them using the debug utility. All methods return clear boolean or Map results so you can check status directly:
|
|
227
|
+
|
|
228
|
+
```typescript
|
|
229
|
+
const granted = await PermissionManager.requestCamera();
|
|
230
|
+
|
|
231
|
+
// Simple check
|
|
232
|
+
if (!granted) {
|
|
233
|
+
// Handle permission denied
|
|
234
|
+
}
|
|
235
|
+
```
|
|
236
|
+
|
|
237
|
+
## Best Practices
|
|
238
|
+
|
|
239
|
+
1. ✅ **Use convenience methods** — `requestCameraAndMicrophone()` instead of manually requesting both
|
|
240
|
+
2. ✅ **Request at the right time** — Request permissions when the feature is about to be used
|
|
241
|
+
3. ✅ **Check before requesting** — Use `checkPermission()` if you want to skip the OS dialog
|
|
242
|
+
4. ✅ **Handle denial gracefully** — Always provide clear error messages when permissions are denied
|
|
243
|
+
5. ✅ **Use the centralized manager** — Never import React Native permissions directly; always use PermissionManager
|
|
244
|
+
|
|
245
|
+
## Troubleshooting
|
|
246
|
+
|
|
247
|
+
### Permission request dialog not appearing
|
|
248
|
+
|
|
249
|
+
- Check that you're using `request*` methods, not `check*` methods
|
|
250
|
+
- Verify the permission is in the app's manifest (Android) or Info.plist (iOS)
|
|
251
|
+
- Test on a device where the permission hasn't been granted yet
|
|
252
|
+
|
|
253
|
+
### Camera/Microphone not working after permission granted
|
|
254
|
+
|
|
255
|
+
- Check that you're handling successful permission grant and initializing the feature
|
|
256
|
+
- Verify other features aren't holding exclusive access to the device
|
|
257
|
+
|
|
258
|
+
### NFC not working on iOS
|
|
259
|
+
|
|
260
|
+
- Ensure `NFCReaderUsageDescription` is set in Info.plist
|
|
261
|
+
- The app must be signed with proper entitlements for NFC
|
|
262
|
+
- NFC requires iPhone XS or later
|
|
263
|
+
|
|
264
|
+
## Related Files
|
|
265
|
+
|
|
266
|
+
- `src/Screens/Dynamic/VideoCallScreen.tsx` — Example usage with video calls
|
|
267
|
+
- `src/Shared/Libs/index.ts` — Exported for easy importing
|
|
268
|
+
- `src/Shared/Libs/debug.utils.ts` — Used internally for debug logging
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
// Export utility modules with validated symbols only.
|
|
4
|
+
export { default as PermissionManager } from "./permissions.utils.js";
|
|
5
|
+
export { SignalingClient } from "./SignalingClient.js";
|
|
6
|
+
export { setDebugMode, setLogLevel, isDebugEnabled, getLogLevel, traceLog, debugLog, infoLog, debugWarn, debugError, logError, logWarn } from "./debug.utils.js";
|
|
7
|
+
export { default as HTTPClient, HttpClientError, UnauthorizedError, ForbiddenError, NotFoundError, BadRequestError, TooManyRequestsError, InternalServerError } from "./http-client.js";
|
|
8
|
+
export * from "./analytics.utils.js";
|
|
9
|
+
export { getLocalizedCountryName } from "./country-display.utils.js";
|
|
10
|
+
export { getSessionKey, encryptWithAes, decryptWithAes } from "./crypto.utils.js";
|
|
11
|
+
export { default as debounce } from "./debounce.utils.js";
|
|
12
|
+
export { handleDeepLink } from "./deeplink.utils.js";
|
|
13
|
+
export { getSimulatedDemoData, isDemoSession } from "./demo.utils.js";
|
|
14
|
+
export { default as MRZUtils } from "./mrz.utils.js";
|
|
15
|
+
export { NativeDeviceInfo } from "./native-device-info.utils.js";
|
|
16
|
+
export { default as getDeviceInfo } from "./native-device-info.utils.js";
|
|
17
|
+
export { useKeepAwake, enableKeepAwake, disableKeepAwake, isKeepAwakeCurrentlyActive, getKeepAwakeStats } from "./native-keep-awake.utils.js";
|
|
18
|
+
export { runWithRetry } from "./promise.utils.js";
|
|
19
|
+
export { configureStatusBarForWhiteBackground, useStatusBarWhiteBackground } from "./status-bar.utils.js";
|
|
20
|
+
export { speak, speakWithDebounce, stopSpeaking, resetLastMessage, initializeTTS } from "./tts.utils.js";
|
|
@@ -0,0 +1,199 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { Platform, NativeModules, PermissionsAndroid } from 'react-native';
|
|
4
|
+
import { debugLog, debugError, debugWarn } from "./debug.utils.js";
|
|
5
|
+
const {
|
|
6
|
+
PermissionModule
|
|
7
|
+
} = NativeModules;
|
|
8
|
+
class PermissionManager {
|
|
9
|
+
static permissionCache = new Map();
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Request a single permission
|
|
13
|
+
*/
|
|
14
|
+
static async requestPermission(permission) {
|
|
15
|
+
try {
|
|
16
|
+
if (Platform.OS === 'android') {
|
|
17
|
+
return await this.requestAndroidPermission(permission);
|
|
18
|
+
} else {
|
|
19
|
+
return await this.requestIOSPermission(permission);
|
|
20
|
+
}
|
|
21
|
+
} catch (error) {
|
|
22
|
+
debugError('PermissionManager', `Failed to request ${permission}:`, error);
|
|
23
|
+
return false;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* Request multiple permissions at once
|
|
29
|
+
*/
|
|
30
|
+
static async requestPermissions(permissions) {
|
|
31
|
+
const results = new Map();
|
|
32
|
+
if (Platform.OS === 'android') {
|
|
33
|
+
const androidPermissions = permissions.map(p => this.permissionTypeToAndroid(p));
|
|
34
|
+
const granted = await PermissionsAndroid.requestMultiple(androidPermissions);
|
|
35
|
+
permissions.forEach((p, i) => {
|
|
36
|
+
const isGranted = granted[androidPermissions[i]] === PermissionsAndroid.RESULTS.GRANTED;
|
|
37
|
+
results.set(p, isGranted);
|
|
38
|
+
});
|
|
39
|
+
} else {
|
|
40
|
+
for (const permission of permissions) {
|
|
41
|
+
const isGranted = await this.requestIOSPermission(permission);
|
|
42
|
+
results.set(permission, isGranted);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
return results;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* Check if a permission is granted (without requesting)
|
|
50
|
+
*/
|
|
51
|
+
static async checkPermission(permission) {
|
|
52
|
+
try {
|
|
53
|
+
if (Platform.OS === 'android') {
|
|
54
|
+
const androidPerm = this.permissionTypeToAndroid(permission);
|
|
55
|
+
const result = await PermissionsAndroid.check(androidPerm);
|
|
56
|
+
return result;
|
|
57
|
+
} else {
|
|
58
|
+
return await this.checkIOSPermission(permission);
|
|
59
|
+
}
|
|
60
|
+
} catch (error) {
|
|
61
|
+
debugError('PermissionManager', `Failed to check ${permission} permission:`, error);
|
|
62
|
+
return false;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
/**
|
|
67
|
+
* Request permission with user-friendly error handling
|
|
68
|
+
*/
|
|
69
|
+
static async requestWithFallback(permission, onDenied) {
|
|
70
|
+
const isGranted = await this.requestPermission(permission);
|
|
71
|
+
if (!isGranted) {
|
|
72
|
+
debugLog('PermissionManager', `${permission} permission denied`);
|
|
73
|
+
onDenied?.();
|
|
74
|
+
return false;
|
|
75
|
+
}
|
|
76
|
+
return true;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
/**
|
|
80
|
+
* Convenience method: Request camera and microphone together (for video recording)
|
|
81
|
+
*/
|
|
82
|
+
static async requestCameraAndMicrophone() {
|
|
83
|
+
const permissions = await this.requestPermissions(['camera', 'microphone']);
|
|
84
|
+
const hasCamera = permissions.get('camera') ?? false;
|
|
85
|
+
const hasMicrophone = permissions.get('microphone') ?? false;
|
|
86
|
+
return hasCamera && hasMicrophone;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
/**
|
|
90
|
+
* Convenience method: Request camera only
|
|
91
|
+
*/
|
|
92
|
+
static async requestCamera() {
|
|
93
|
+
return this.requestPermission('camera');
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
/**
|
|
97
|
+
* Convenience method: Request microphone only
|
|
98
|
+
*/
|
|
99
|
+
static async requestMicrophone() {
|
|
100
|
+
return this.requestPermission('microphone');
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
/**
|
|
104
|
+
* Convenience method: Request NFC only
|
|
105
|
+
*/
|
|
106
|
+
static async requestNFC() {
|
|
107
|
+
return this.requestPermission('nfc');
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
/**
|
|
111
|
+
* Check if camera and microphone are both accessible
|
|
112
|
+
*/
|
|
113
|
+
static async hasCameraAndMicrophone() {
|
|
114
|
+
const camera = await this.checkPermission('camera');
|
|
115
|
+
const microphone = await this.checkPermission('microphone');
|
|
116
|
+
return camera && microphone;
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
/**
|
|
120
|
+
* Check if camera is accessible
|
|
121
|
+
*/
|
|
122
|
+
static async hasCamera() {
|
|
123
|
+
return this.checkPermission('camera');
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
/**
|
|
127
|
+
* Check if microphone is accessible
|
|
128
|
+
*/
|
|
129
|
+
static async hasMicrophone() {
|
|
130
|
+
return this.checkPermission('microphone');
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
/**
|
|
134
|
+
* Check if NFC is accessible
|
|
135
|
+
*/
|
|
136
|
+
static async hasNFC() {
|
|
137
|
+
return this.checkPermission('nfc');
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
// Private helper methods
|
|
141
|
+
|
|
142
|
+
static permissionTypeToAndroid(permission) {
|
|
143
|
+
const map = {
|
|
144
|
+
camera: PermissionsAndroid.PERMISSIONS.CAMERA,
|
|
145
|
+
microphone: PermissionsAndroid.PERMISSIONS.RECORD_AUDIO,
|
|
146
|
+
nfc: 'android.permission.NFC'
|
|
147
|
+
};
|
|
148
|
+
return map[permission];
|
|
149
|
+
}
|
|
150
|
+
static async requestAndroidPermission(permission) {
|
|
151
|
+
const androidPerm = this.permissionTypeToAndroid(permission);
|
|
152
|
+
const result = await PermissionsAndroid.request(androidPerm);
|
|
153
|
+
return result === PermissionsAndroid.RESULTS.GRANTED;
|
|
154
|
+
}
|
|
155
|
+
static async requestIOSPermission(permission) {
|
|
156
|
+
if (!PermissionModule) {
|
|
157
|
+
debugLog('PermissionManager', 'PermissionModule not available, assuming permission granted');
|
|
158
|
+
return true;
|
|
159
|
+
}
|
|
160
|
+
try {
|
|
161
|
+
switch (permission) {
|
|
162
|
+
case 'camera':
|
|
163
|
+
return await PermissionModule.requestCameraPermission();
|
|
164
|
+
case 'microphone':
|
|
165
|
+
return await PermissionModule.requestMicrophonePermission();
|
|
166
|
+
case 'nfc':
|
|
167
|
+
// NFC permission on iOS is automatically handled when NFCManager is initialized
|
|
168
|
+
// No explicit permission request needed
|
|
169
|
+
return true;
|
|
170
|
+
default:
|
|
171
|
+
return false;
|
|
172
|
+
}
|
|
173
|
+
} catch (error) {
|
|
174
|
+
debugError('PermissionManager', `iOS permission request failed for ${permission}:`, error);
|
|
175
|
+
return false;
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
static async checkIOSPermission(permission) {
|
|
179
|
+
if (!PermissionModule) {
|
|
180
|
+
return true;
|
|
181
|
+
}
|
|
182
|
+
try {
|
|
183
|
+
switch (permission) {
|
|
184
|
+
case 'camera':
|
|
185
|
+
return await PermissionModule.checkCameraPermission?.();
|
|
186
|
+
case 'microphone':
|
|
187
|
+
return await PermissionModule.checkMicrophonePermission?.();
|
|
188
|
+
case 'nfc':
|
|
189
|
+
return true;
|
|
190
|
+
default:
|
|
191
|
+
return false;
|
|
192
|
+
}
|
|
193
|
+
} catch (error) {
|
|
194
|
+
debugWarn('PermissionManager', `iOS permission check failed for ${permission}`, error);
|
|
195
|
+
return false;
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
export default PermissionManager;
|
|
@@ -84,6 +84,7 @@ export default {
|
|
|
84
84
|
'eidScannerScreen.docTypeResidence': 'Residence Permit',
|
|
85
85
|
'eidScannerScreen.docTypeVisa': 'Visa',
|
|
86
86
|
'eidScannerScreen.expirationDate': 'Expiration Date',
|
|
87
|
+
'eidScannerScreen.issuingState': 'Issuing State',
|
|
87
88
|
'eidScannerScreen.mrzText': 'MRZ Text',
|
|
88
89
|
'eidScannerScreen.nfcNotSupported': 'This device does not support NFC functionality.',
|
|
89
90
|
'eidScannerScreen.nfcNotEnabled': 'NFC is disabled on this device. Enable it in settings.',
|
|
@@ -84,6 +84,7 @@ export default {
|
|
|
84
84
|
'eidScannerScreen.docTypeResidence': 'Oturma İzni',
|
|
85
85
|
'eidScannerScreen.docTypeVisa': 'Vize',
|
|
86
86
|
'eidScannerScreen.expirationDate': 'Geçerlilik Tarihi',
|
|
87
|
+
'eidScannerScreen.issuingState': 'Veren Ülke',
|
|
87
88
|
'eidScannerScreen.mrzText': 'MRZ Metni',
|
|
88
89
|
'eidScannerScreen.nfcNotSupported': 'Bu cihaz NFC işlevini desteklememektedir.',
|
|
89
90
|
'eidScannerScreen.nfcNotEnabled': 'Cihazda NFC devre dışı. Lütfen ayarlardan etkinleştirin.',
|
package/lib/module/version.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LivenessDetectionScreen.d.ts","sourceRoot":"","sources":["../../../../../src/Screens/Dynamic/LivenessDetectionScreen.tsx"],"names":[],"mappings":"AA2FA,QAAA,MAAM,uBAAuB,+
|
|
1
|
+
{"version":3,"file":"LivenessDetectionScreen.d.ts","sourceRoot":"","sources":["../../../../../src/Screens/Dynamic/LivenessDetectionScreen.tsx"],"names":[],"mappings":"AA2FA,QAAA,MAAM,uBAAuB,+CAy9B5B,CAAC;AA+GF,eAAe,uBAAuB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VideoCallScreen.d.ts","sourceRoot":"","sources":["../../../../../src/Screens/Dynamic/VideoCallScreen.tsx"],"names":[],"mappings":"AAiCA,QAAA,MAAM,eAAe,GAAI,gBAAgB,GAAG,
|
|
1
|
+
{"version":3,"file":"VideoCallScreen.d.ts","sourceRoot":"","sources":["../../../../../src/Screens/Dynamic/VideoCallScreen.tsx"],"names":[],"mappings":"AAiCA,QAAA,MAAM,eAAe,GAAI,gBAAgB,GAAG,4CAwhB3C,CAAC;AAyLF,eAAe,eAAe,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ResultScreen.d.ts","sourceRoot":"","sources":["../../../../../src/Screens/Static/ResultScreen.tsx"],"names":[],"mappings":"AAqDA,QAAA,MAAM,YAAY,+
|
|
1
|
+
{"version":3,"file":"ResultScreen.d.ts","sourceRoot":"","sources":["../../../../../src/Screens/Static/ResultScreen.tsx"],"names":[],"mappings":"AAqDA,QAAA,MAAM,YAAY,+CAgiCjB,CAAC;AAqIF,eAAe,YAAY,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EIDScanner.d.ts","sourceRoot":"","sources":["../../../../../src/Shared/Components/EIDScanner.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"EIDScanner.d.ts","sourceRoot":"","sources":["../../../../../src/Shared/Components/EIDScanner.tsx"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAcpD,UAAU,eAAe;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,CACd,OAAO,EAAE,SAAS,EAClB,SAAS,EAAE,MAAM,EACjB,iBAAiB,EAAE,MAAM,KACtB,IAAI,CAAC;IACV,cAAc,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK,IAAI,CAAC;CAC/C;AAED,QAAA,MAAM,UAAU,GAAI,6FAOjB,eAAe,4CAmpBjB,CAAC;AA4MF,eAAe,UAAU,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FaceCamera.d.ts","sourceRoot":"","sources":["../../../../../src/Shared/Components/FaceCamera.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"FaceCamera.d.ts","sourceRoot":"","sources":["../../../../../src/Shared/Components/FaceCamera.tsx"],"names":[],"mappings":"AAcA,OAAO,EAEL,KAAK,qBAAqB,EAE3B,MAAM,mBAAmB,CAAC;AAa3B,MAAM,MAAM,IAAI,GAAG;IACjB,MAAM,EAAE;QACN,CAAC,EAAE,MAAM,CAAC;QACV,CAAC,EAAE,MAAM,CAAC;QACV,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,sBAAsB,EAAE,MAAM,CAAC;IAC/B,uBAAuB,EAAE,MAAM,CAAC;CACjC,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,eAAe,EAAE,CACf,KAAK,EAAE,IAAI,EAAE,EACb,KAAK,EAAE,MAAM,EACb,aAAa,EAAE,OAAO,EACtB,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,KAChB,IAAI,CAAC;IACV,mBAAmB,EAAE,CAAC,MAAM,EAAE,qBAAqB,KAAK,IAAI,CAAC;IAC7D,WAAW,CAAC,EAAE;QACZ,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;CACH,CAAC;AAEF,QAAA,MAAM,UAAU,GAAI,wDAIjB,eAAe,4CAsTjB,CAAC;AA6BF,eAAe,UAAU,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IdentityDocumentCamera.d.ts","sourceRoot":"","sources":["../../../../../src/Shared/Components/IdentityDocumentCamera.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"IdentityDocumentCamera.d.ts","sourceRoot":"","sources":["../../../../../src/Shared/Components/IdentityDocumentCamera.tsx"],"names":[],"mappings":"AAuEA,OAAO,KAAK,EACV,mBAAmB,EACnB,SAAS,EACT,2BAA2B,EAK5B,MAAM,gCAAgC,CAAC;AAGxC,YAAY,EAAE,mBAAmB,EAAE,SAAS,EAAE,2BAA2B,EAAE,CAAC;AAC5E,YAAY,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAMnE,QAAA,MAAM,sBAAsB,GAAI,uDAI7B,2BAA2B,4CAm2E7B,CAAC;AAiIF,eAAe,sBAAsB,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export { default as PermissionManager } from './permissions.utils';
|
|
2
|
+
export type { PermissionType } from './permissions.utils';
|
|
3
|
+
export { SignalingClient } from './SignalingClient';
|
|
4
|
+
export { setDebugMode, setLogLevel, isDebugEnabled, getLogLevel, traceLog, debugLog, infoLog, debugWarn, debugError, logError, logWarn, } from './debug.utils';
|
|
5
|
+
export { default as HTTPClient, HttpClientError, UnauthorizedError, ForbiddenError, NotFoundError, BadRequestError, TooManyRequestsError, InternalServerError, } from './http-client';
|
|
6
|
+
export * from './analytics.utils';
|
|
7
|
+
export type { Rect } from './contains';
|
|
8
|
+
export { getLocalizedCountryName } from './country-display.utils';
|
|
9
|
+
export { getSessionKey, encryptWithAes, decryptWithAes } from './crypto.utils';
|
|
10
|
+
export { default as debounce } from './debounce.utils';
|
|
11
|
+
export { handleDeepLink } from './deeplink.utils';
|
|
12
|
+
export { getSimulatedDemoData, isDemoSession } from './demo.utils';
|
|
13
|
+
export { default as MRZUtils } from './mrz.utils';
|
|
14
|
+
export { NativeDeviceInfo } from './native-device-info.utils';
|
|
15
|
+
export { default as getDeviceInfo } from './native-device-info.utils';
|
|
16
|
+
export { useKeepAwake, enableKeepAwake, disableKeepAwake, isKeepAwakeCurrentlyActive, getKeepAwakeStats, } from './native-keep-awake.utils';
|
|
17
|
+
export { runWithRetry } from './promise.utils';
|
|
18
|
+
export { configureStatusBarForWhiteBackground, useStatusBarWhiteBackground, } from './status-bar.utils';
|
|
19
|
+
export { speak, speakWithDebounce, stopSpeaking, resetLastMessage, initializeTTS, } from './tts.utils';
|
|
20
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/Shared/Libs/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACnE,YAAY,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,OAAO,EACL,YAAY,EACZ,WAAW,EACX,cAAc,EACd,WAAW,EACX,QAAQ,EACR,QAAQ,EACR,OAAO,EACP,SAAS,EACT,UAAU,EACV,QAAQ,EACR,OAAO,GACR,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,OAAO,IAAI,UAAU,EACrB,eAAe,EACf,iBAAiB,EACjB,cAAc,EACd,aAAa,EACb,eAAe,EACf,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,eAAe,CAAC;AAEvB,cAAc,mBAAmB,CAAC;AAClC,YAAY,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAC/E,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AACnE,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAEtE,OAAO,EACL,YAAY,EACZ,eAAe,EACf,gBAAgB,EAChB,0BAA0B,EAC1B,iBAAiB,GAClB,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,OAAO,EACL,oCAAoC,EACpC,2BAA2B,GAC5B,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,KAAK,EACL,iBAAiB,EACjB,YAAY,EACZ,gBAAgB,EAChB,aAAa,GACd,MAAM,aAAa,CAAC"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
export type PermissionType = 'camera' | 'microphone' | 'nfc';
|
|
2
|
+
declare class PermissionManager {
|
|
3
|
+
private static permissionCache;
|
|
4
|
+
/**
|
|
5
|
+
* Request a single permission
|
|
6
|
+
*/
|
|
7
|
+
static requestPermission(permission: PermissionType): Promise<boolean>;
|
|
8
|
+
/**
|
|
9
|
+
* Request multiple permissions at once
|
|
10
|
+
*/
|
|
11
|
+
static requestPermissions(permissions: PermissionType[]): Promise<Map<PermissionType, boolean>>;
|
|
12
|
+
/**
|
|
13
|
+
* Check if a permission is granted (without requesting)
|
|
14
|
+
*/
|
|
15
|
+
static checkPermission(permission: PermissionType): Promise<boolean>;
|
|
16
|
+
/**
|
|
17
|
+
* Request permission with user-friendly error handling
|
|
18
|
+
*/
|
|
19
|
+
static requestWithFallback(permission: PermissionType, onDenied?: () => void): Promise<boolean>;
|
|
20
|
+
/**
|
|
21
|
+
* Convenience method: Request camera and microphone together (for video recording)
|
|
22
|
+
*/
|
|
23
|
+
static requestCameraAndMicrophone(): Promise<boolean>;
|
|
24
|
+
/**
|
|
25
|
+
* Convenience method: Request camera only
|
|
26
|
+
*/
|
|
27
|
+
static requestCamera(): Promise<boolean>;
|
|
28
|
+
/**
|
|
29
|
+
* Convenience method: Request microphone only
|
|
30
|
+
*/
|
|
31
|
+
static requestMicrophone(): Promise<boolean>;
|
|
32
|
+
/**
|
|
33
|
+
* Convenience method: Request NFC only
|
|
34
|
+
*/
|
|
35
|
+
static requestNFC(): Promise<boolean>;
|
|
36
|
+
/**
|
|
37
|
+
* Check if camera and microphone are both accessible
|
|
38
|
+
*/
|
|
39
|
+
static hasCameraAndMicrophone(): Promise<boolean>;
|
|
40
|
+
/**
|
|
41
|
+
* Check if camera is accessible
|
|
42
|
+
*/
|
|
43
|
+
static hasCamera(): Promise<boolean>;
|
|
44
|
+
/**
|
|
45
|
+
* Check if microphone is accessible
|
|
46
|
+
*/
|
|
47
|
+
static hasMicrophone(): Promise<boolean>;
|
|
48
|
+
/**
|
|
49
|
+
* Check if NFC is accessible
|
|
50
|
+
*/
|
|
51
|
+
static hasNFC(): Promise<boolean>;
|
|
52
|
+
private static permissionTypeToAndroid;
|
|
53
|
+
private static requestAndroidPermission;
|
|
54
|
+
private static requestIOSPermission;
|
|
55
|
+
private static checkIOSPermission;
|
|
56
|
+
}
|
|
57
|
+
export default PermissionManager;
|
|
58
|
+
//# sourceMappingURL=permissions.utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"permissions.utils.d.ts","sourceRoot":"","sources":["../../../../../src/Shared/Libs/permissions.utils.ts"],"names":[],"mappings":"AAUA,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,YAAY,GAAG,KAAK,CAAC;AAE7D,cAAM,iBAAiB;IACrB,OAAO,CAAC,MAAM,CAAC,eAAe,CAA2C;IAEzE;;OAEG;WACU,iBAAiB,CAAC,UAAU,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC;IAiB5E;;OAEG;WACU,kBAAkB,CAC7B,WAAW,EAAE,cAAc,EAAE,GAC5B,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;IAyBxC;;OAEG;WACU,eAAe,CAAC,UAAU,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC;IAmB1E;;OAEG;WACU,mBAAmB,CAC9B,UAAU,EAAE,cAAc,EAC1B,QAAQ,CAAC,EAAE,MAAM,IAAI,GACpB,OAAO,CAAC,OAAO,CAAC;IAYnB;;OAEG;WACU,0BAA0B,IAAI,OAAO,CAAC,OAAO,CAAC;IAS3D;;OAEG;WACU,aAAa,IAAI,OAAO,CAAC,OAAO,CAAC;IAI9C;;OAEG;WACU,iBAAiB,IAAI,OAAO,CAAC,OAAO,CAAC;IAIlD;;OAEG;WACU,UAAU,IAAI,OAAO,CAAC,OAAO,CAAC;IAI3C;;OAEG;WACU,sBAAsB,IAAI,OAAO,CAAC,OAAO,CAAC;IAMvD;;OAEG;WACU,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC;IAI1C;;OAEG;WACU,aAAa,IAAI,OAAO,CAAC,OAAO,CAAC;IAI9C;;OAEG;WACU,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC;IAMvC,OAAO,CAAC,MAAM,CAAC,uBAAuB;mBASjB,wBAAwB;mBAQxB,oBAAoB;mBAkCpB,kBAAkB;CA2BxC;AAED,eAAe,iBAAiB,CAAC"}
|
|
@@ -82,6 +82,7 @@ declare const _default: {
|
|
|
82
82
|
'eidScannerScreen.docTypeResidence': string;
|
|
83
83
|
'eidScannerScreen.docTypeVisa': string;
|
|
84
84
|
'eidScannerScreen.expirationDate': string;
|
|
85
|
+
'eidScannerScreen.issuingState': string;
|
|
85
86
|
'eidScannerScreen.mrzText': string;
|
|
86
87
|
'eidScannerScreen.nfcNotSupported': string;
|
|
87
88
|
'eidScannerScreen.nfcNotEnabled': string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"en.d.ts","sourceRoot":"","sources":["../../../../../src/Translation/Resources/en.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"en.d.ts","sourceRoot":"","sources":["../../../../../src/Translation/Resources/en.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,wBAyPE"}
|
|
@@ -82,6 +82,7 @@ declare const _default: {
|
|
|
82
82
|
'eidScannerScreen.docTypeResidence': string;
|
|
83
83
|
'eidScannerScreen.docTypeVisa': string;
|
|
84
84
|
'eidScannerScreen.expirationDate': string;
|
|
85
|
+
'eidScannerScreen.issuingState': string;
|
|
85
86
|
'eidScannerScreen.mrzText': string;
|
|
86
87
|
'eidScannerScreen.nfcNotSupported': string;
|
|
87
88
|
'eidScannerScreen.nfcNotEnabled': string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tr.d.ts","sourceRoot":"","sources":["../../../../../src/Translation/Resources/tr.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"tr.d.ts","sourceRoot":"","sources":["../../../../../src/Translation/Resources/tr.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,wBA4PE"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const SDK_VERSION = "1.
|
|
1
|
+
export declare const SDK_VERSION = "1.472.0";
|
|
2
2
|
//# sourceMappingURL=version.d.ts.map
|