@regulaforensics/face-sdk 6.4.310-rc → 6.4.315-nightly

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/RNFaceSDK.podspec CHANGED
@@ -5,7 +5,7 @@ source = File.join(__dir__, 'ios')
5
5
 
6
6
  Pod::Spec.new do |s|
7
7
  s.name = 'RNFaceSDK'
8
- s.version = '6.4.310-rc'
8
+ s.version = '6.4.315-nightly'
9
9
  s.summary = package['description']
10
10
  s.license = package['license']
11
11
 
@@ -16,6 +16,6 @@ Pod::Spec.new do |s|
16
16
  s.ios.deployment_target = '13.0'
17
17
  s.source_files = 'ios/**/*.{h,m}'
18
18
  s.exclude_files = [ 'ios/CVDFaceSDK.h', 'ios/CVDFaceSDK.m' ]
19
- s.dependency 'FaceSDKStage', '7.1.2706'
19
+ s.dependency 'FaceSDKNightly', '6.4.2729'
20
20
  s.dependency 'React'
21
21
  end
@@ -32,7 +32,7 @@ android {
32
32
  rootProject.allprojects {
33
33
  repositories {
34
34
  maven {
35
- url "https://maven.regulaforensics.com/RegulaDocumentReader/Stage"
35
+ url "https://maven.regulaforensics.com/RegulaDocumentReader/Nightly"
36
36
  }
37
37
  }
38
38
  }
@@ -41,7 +41,7 @@ dependencies {
41
41
  //noinspection GradleDynamicVersion
42
42
  implementation 'com.facebook.react:react-native:+'
43
43
  //noinspection GradleDependency
44
- implementation('com.regula.face:api:6.4.3778'){
44
+ implementation('com.regula.face:api:6.4.3781'){
45
45
  transitive = true
46
46
  }
47
47
  }
@@ -6,13 +6,13 @@ android {
6
6
 
7
7
  repositories {
8
8
  maven {
9
- url "https://maven.regulaforensics.com/RegulaDocumentReader/Stage"
9
+ url "https://maven.regulaforensics.com/RegulaDocumentReader/Nightly"
10
10
  }
11
11
  }
12
12
 
13
13
  dependencies {
14
14
  //noinspection GradleDependency
15
- implementation('com.regula.face:api:6.4.3778'){
15
+ implementation('com.regula.face:api:6.4.3781'){
16
16
  transitive = true
17
17
  }
18
18
  }
@@ -314,7 +314,7 @@ fun faceCaptureImageFromJSON(input: JSONObject?) = input?.let {
314
314
  Image(
315
315
  it.getInt("imageType").toImageType(),
316
316
  it.getStringOrNull("tag"),
317
- it.getString("image").toBitmap(),
317
+ it.getString("image").toBitmap()!!,
318
318
  )
319
319
  }
320
320
 
@@ -378,7 +378,7 @@ fun generateLivenessNotification(it: LivenessNotification) = mapOf(
378
378
 
379
379
  fun matchFacesImageFromJSON(input: JSONObject?) = input?.let {
380
380
  val result = MatchFacesImage(
381
- it.getString("image").toBitmap(),
381
+ it.getString("image").toBitmap()!!,
382
382
  it.getInt("imageType").toImageType(),
383
383
  it.optBoolean("detectAll", false)
384
384
  )
@@ -676,7 +676,7 @@ fun detectFacesAttributeResultFromJSON(it: JSONObject) = DetectFacesAttributeRes
676
676
  )
677
677
 
678
678
  fun generateDetectFacesAttributeResult(it: DetectFacesAttributeResult) = mapOf(
679
- "attribute" to it.attribute.value,
679
+ "attribute" to it.attribute?.value,
680
680
  "value" to it.value,
681
681
  "confidence" to it.confidence,
682
682
  "range" to generateImageQualityRange(it.range)
@@ -3,7 +3,6 @@ package com.regula.plugin.facesdk
3
3
  import android.annotation.SuppressLint
4
4
  import com.regula.plugin.facesdk.Convert.toBase64
5
5
  import com.regula.common.LocalizationCallbacks
6
- import com.regula.common.ble.BLEWrapper
7
6
  import com.regula.facesdk.FaceSDK.Instance
8
7
  import com.regula.facesdk.callback.DetectFacesCompletion
9
8
  import com.regula.facesdk.callback.FaceCaptureCallback
@@ -14,6 +13,8 @@ import com.regula.facesdk.callback.LivenessNotificationCallback
14
13
  import com.regula.facesdk.callback.MatchFaceCallback
15
14
  import com.regula.facesdk.callback.PersonDBCallback
16
15
  import com.regula.facesdk.configuration.InitializationBleDeviceConfiguration
16
+ import com.regula.facesdk.enums.InitErrorCode
17
+ import com.regula.facesdk.exception.InitException
17
18
  import com.regula.facesdk.listener.NetworkInterceptorListener
18
19
  import com.regula.facesdk.model.LivenessNotification
19
20
  import com.regula.facesdk.model.results.matchfaces.MatchFacesSimilarityThresholdSplit
@@ -103,8 +104,7 @@ fun initialize(callback: Callback, config: JSONObject?) =
103
104
  else
104
105
  getBleWrapper()?.let {
105
106
  Instance().initialize(context, InitializationBleDeviceConfiguration(it), initCompletion(callback))
106
- } ?: callback(false)
107
- // TODO return an exception telling that btDevice is not connected
107
+ } ?: callback(generateInitCompletion(false, InitException(InitErrorCode.LICENSE_IS_NULL)))
108
108
 
109
109
  fun deinitialize() = Instance().deinitialize()
110
110
 
@@ -158,16 +158,19 @@ fun splitComparedFaces(callback: Callback, faces: JSONArray, similarity: Double)
158
158
  }
159
159
 
160
160
  fun detectFaces(callback: Callback, request: JSONObject) = Instance().detectFaces(
161
+ context,
161
162
  detectFacesRequestFromJSON(request),
162
163
  detectFacesCompletion(callback)
163
164
  )
164
165
 
166
+ val db get() = Instance().personDatabase(context)!!
167
+
165
168
  fun createPerson(
166
169
  callback: Callback,
167
170
  name: String,
168
171
  groupIds: JSONArray?,
169
172
  metadata: JSONObject?
170
- ) = Instance().personDatabase().createPerson(
173
+ ) = db.createPerson(
171
174
  name,
172
175
  metadata,
173
176
  groupIds.toArray(),
@@ -175,8 +178,8 @@ fun createPerson(
175
178
  )
176
179
 
177
180
  fun updatePerson(callback: Callback, personJson: JSONObject) =
178
- Instance().personDatabase().getPerson(idFromJSON(personJson), object : PersonDBCallback<Person?> {
179
- override fun onSuccess(person: Person?) = Instance().personDatabase().updatePerson(
181
+ db.getPerson(idFromJSON(personJson), object : PersonDBCallback<Person?> {
182
+ override fun onSuccess(person: Person?) = db.updatePerson(
180
183
  updatePersonFromJSON(person!!, personJson),
181
184
  databaseItemCompletion(callback, null)
182
185
  )
@@ -184,29 +187,29 @@ fun updatePerson(callback: Callback, personJson: JSONObject) =
184
187
  override fun onFailure(error: String) = callback(generatePersonDBResponse(null, error))
185
188
  })
186
189
 
187
- fun deletePerson(callback: Callback, personId: String) = Instance().personDatabase().deletePerson(
190
+ fun deletePerson(callback: Callback, personId: String) = db.deletePerson(
188
191
  personId,
189
192
  databaseItemCompletion(callback, null)
190
193
  )
191
194
 
192
- fun getPerson(callback: Callback, personId: String) = Instance().personDatabase().getPerson(
195
+ fun getPerson(callback: Callback, personId: String) = db.getPerson(
193
196
  personId,
194
197
  databaseItemCompletion(callback, ::generatePerson)
195
198
  )
196
199
 
197
- fun addPersonImage(callback: Callback, personId: String, image: JSONObject) = Instance().personDatabase().addPersonImage(
200
+ fun addPersonImage(callback: Callback, personId: String, image: JSONObject) = db.addPersonImage(
198
201
  personId,
199
202
  imageUploadFromJSON(image),
200
203
  databaseItemCompletion(callback, ::generatePersonImage)
201
204
  )
202
205
 
203
- fun deletePersonImage(callback: Callback, personId: String, imageId: String) = Instance().personDatabase().deletePersonImage(
206
+ fun deletePersonImage(callback: Callback, personId: String, imageId: String) = db.deletePersonImage(
204
207
  personId,
205
208
  imageId,
206
209
  databaseItemCompletion(callback, null)
207
210
  )
208
211
 
209
- fun getPersonImage(callback: Callback, personId: String, imageId: String) = Instance().personDatabase().getPersonImageById(
212
+ fun getPersonImage(callback: Callback, personId: String, imageId: String) = db.getPersonImageById(
210
213
  personId,
211
214
  imageId,
212
215
  object : PersonDBCallback<ByteArray> {
@@ -215,7 +218,7 @@ fun getPersonImage(callback: Callback, personId: String, imageId: String) = Inst
215
218
  }
216
219
  )
217
220
 
218
- fun getPersonImages(callback: Callback, personId: String) = Instance().personDatabase().getPersonImages(
221
+ fun getPersonImages(callback: Callback, personId: String) = db.getPersonImages(
219
222
  personId,
220
223
  databasePageCompletion(callback, ::generatePersonImage)
221
224
  )
@@ -225,22 +228,22 @@ fun getPersonImagesForPage(
225
228
  personId: String,
226
229
  page: Int,
227
230
  size: Int
228
- ) = Instance().personDatabase().getPersonImagesForPage(
231
+ ) = db.getPersonImagesForPage(
229
232
  personId,
230
233
  page,
231
234
  size,
232
235
  databasePageCompletion(callback, ::generatePersonImage)
233
236
  )
234
237
 
235
- fun createGroup(callback: Callback, name: String, metadata: JSONObject?) = Instance().personDatabase().createGroup(
238
+ fun createGroup(callback: Callback, name: String, metadata: JSONObject?) = db.createGroup(
236
239
  name,
237
240
  metadata,
238
241
  databaseItemCompletion(callback, ::generatePersonGroup)
239
242
  )
240
243
 
241
244
  fun updateGroup(callback: Callback, groupJson: JSONObject) =
242
- Instance().personDatabase().getGroup(idFromJSON(groupJson), object : PersonDBCallback<PersonGroup?> {
243
- override fun onSuccess(group: PersonGroup?) = Instance().personDatabase().updateGroup(
245
+ db.getGroup(idFromJSON(groupJson), object : PersonDBCallback<PersonGroup?> {
246
+ override fun onSuccess(group: PersonGroup?) = db.updateGroup(
244
247
  updatePersonGroupFromJSON(group!!, groupJson),
245
248
  databaseItemCompletion(callback, null)
246
249
  )
@@ -249,32 +252,31 @@ fun updateGroup(callback: Callback, groupJson: JSONObject) =
249
252
  })
250
253
 
251
254
  fun editPersonsInGroup(callback: Callback, groupId: String, editGroupPersonsRequest: JSONObject) =
252
- Instance().personDatabase().editPersonsInGroup(
255
+ db.editPersonsInGroup(
253
256
  groupId,
254
257
  editGroupPersonsRequestFromJSON(editGroupPersonsRequest),
255
258
  databaseItemCompletion(callback, null)
256
259
  )
257
260
 
258
- fun deleteGroup(callback: Callback, groupId: String) = Instance().personDatabase().deleteGroup(
261
+ fun deleteGroup(callback: Callback, groupId: String) = db.deleteGroup(
259
262
  groupId,
260
263
  databaseItemCompletion(callback, null)
261
264
  )
262
265
 
263
- fun getGroup(callback: Callback, groupId: String) = Instance().personDatabase().getGroup(
266
+ fun getGroup(callback: Callback, groupId: String) = db.getGroup(
264
267
  groupId,
265
268
  databaseItemCompletion(callback, ::generatePersonGroup)
266
269
  )
267
270
 
268
- fun getGroups(callback: Callback) =
269
- Instance().personDatabase().getGroups(databasePageCompletion(callback, ::generatePersonGroup))
271
+ fun getGroups(callback: Callback) = db.getGroups(databasePageCompletion(callback, ::generatePersonGroup))
270
272
 
271
- fun getGroupsForPage(callback: Callback, page: Int, size: Int) = Instance().personDatabase().getGroupsForPage(
273
+ fun getGroupsForPage(callback: Callback, page: Int, size: Int) = db.getGroupsForPage(
272
274
  page,
273
275
  size,
274
276
  databasePageCompletion(callback, ::generatePersonGroup)
275
277
  )
276
278
 
277
- fun getPersonGroups(callback: Callback, personId: String) = Instance().personDatabase().getPersonGroups(
279
+ fun getPersonGroups(callback: Callback, personId: String) = db.getPersonGroups(
278
280
  personId,
279
281
  databasePageCompletion(callback, ::generatePersonGroup)
280
282
  )
@@ -284,14 +286,14 @@ fun getPersonGroupsForPage(
284
286
  personId: String,
285
287
  page: Int,
286
288
  size: Int
287
- ) = Instance().personDatabase().getPersonGroupsForPage(
289
+ ) = db.getPersonGroupsForPage(
288
290
  personId,
289
291
  page,
290
292
  size,
291
293
  databasePageCompletion(callback, ::generatePersonGroup)
292
294
  )
293
295
 
294
- fun getPersonsInGroup(callback: Callback, groupId: String) = Instance().personDatabase().getPersonsInGroup(
296
+ fun getPersonsInGroup(callback: Callback, groupId: String) = db.getPersonsInGroup(
295
297
  groupId,
296
298
  databasePageCompletion(callback, ::generatePerson)
297
299
  )
@@ -301,14 +303,14 @@ fun getPersonsInGroupForPage(
301
303
  groupId: String,
302
304
  page: Int,
303
305
  size: Int
304
- ) = Instance().personDatabase().getPersonsInGroupForPage(
306
+ ) = db.getPersonsInGroupForPage(
305
307
  groupId,
306
308
  page,
307
309
  size,
308
310
  databasePageCompletion(callback, ::generatePerson)
309
311
  )
310
312
 
311
- fun searchPerson(callback: Callback, searchPersonRequest: JSONObject) = Instance().personDatabase().searchPerson(
313
+ fun searchPerson(callback: Callback, searchPersonRequest: JSONObject) = db.searchPerson(
312
314
  searchPersonRequestFromJSON(searchPersonRequest),
313
315
  object : PersonDBCallback<List<SearchPerson>> {
314
316
  override fun onSuccess(data: List<SearchPerson>?) = callback(generatePersonDBResponse(data.toJsonNullable(::generateSearchPerson)!!, null))
@@ -37,8 +37,8 @@ fun <T> argsNullable(index: Int): T? {
37
37
 
38
38
  @Suppress("unused")
39
39
  class RNFaceSDKPackage : ReactPackage {
40
- override fun createNativeModules(rc: ReactApplicationContext) = listOf(RNFaceSDKModule(rc))
41
- override fun createViewManagers(rc: ReactApplicationContext) = emptyList<ViewManager<*, *>>()
40
+ override fun createNativeModules(reactContext: ReactApplicationContext) = listOf(RNFaceSDKModule(reactContext))
41
+ override fun createViewManagers(reactContext: ReactApplicationContext) = emptyList<ViewManager<*, *>>()
42
42
  }
43
43
 
44
44
  @Suppress("unused", "UNUSED_PARAMETER")
@@ -1,4 +1,3 @@
1
- <?xml version="1.0" encoding="utf-8"?>
2
1
  <manifest xmlns:android="http://schemas.android.com/apk/res/android">
3
2
 
4
3
  <application
@@ -6,16 +5,15 @@
6
5
  android:icon="@drawable/ic_launcher"
7
6
  android:label="FaceSDK"
8
7
  android:supportsRtl="true"
9
- android:theme="@style/AppTheme">
10
-
8
+ android:theme="@style/AppTheme"
9
+ android:usesCleartextTraffic="true">
11
10
  <activity
12
- android:screenOrientation="portrait"
13
- android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale|smallestScreenSize|screenLayout|uiMode|navigation"
14
11
  android:name=".MainActivity"
15
- android:theme="@style/AppTheme.NoActionBarLaunch"
12
+ android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale|smallestScreenSize|screenLayout|uiMode|navigation"
13
+ android:exported="true"
16
14
  android:launchMode="singleTask"
17
- android:exported="true">
18
-
15
+ android:screenOrientation="portrait"
16
+ android:theme="@style/AppTheme.NoActionBarLaunch">
19
17
  <intent-filter>
20
18
  <action android:name="android.intent.action.MAIN" />
21
19
  <category android:name="android.intent.category.LAUNCHER" />
@@ -23,8 +21,5 @@
23
21
 
24
22
  </activity>
25
23
  </application>
26
-
27
- <!-- Permissions -->
28
-
29
24
  <uses-permission android:name="android.permission.INTERNET" />
30
25
  </manifest>
@@ -6,8 +6,8 @@
6
6
  "android": "scripts/android.sh"
7
7
  },
8
8
  "dependencies": {
9
- "@regulaforensics/face-sdk": "6.4.310-rc",
10
- "@regulaforensics/face-core-basic": "7.1.163-rc",
9
+ "@regulaforensics/face-sdk": "6.4.315-nightly",
10
+ "@regulaforensics/face-core-basic": "6.4.171-nightly",
11
11
  "@awesome-cordova-plugins/file": "6.6.0",
12
12
  "@awesome-cordova-plugins/camera": "6.6.0",
13
13
  "cordova-plugin-file": "8.1.3",
@@ -6,8 +6,8 @@
6
6
  "android": "scripts/android.sh"
7
7
  },
8
8
  "dependencies": {
9
- "@regulaforensics/face-sdk": "6.4.310-rc",
10
- "@regulaforensics/face-core-basic": "7.1.163-rc",
9
+ "@regulaforensics/face-sdk": "6.4.315-nightly",
10
+ "@regulaforensics/face-core-basic": "6.4.171-nightly",
11
11
  "cordova-ios": "7.1.1",
12
12
  "cordova-android": "13.0.0",
13
13
  "cordova-plugin-file": "8.1.3",
@@ -6,8 +6,8 @@
6
6
  "android": "scripts/android.sh"
7
7
  },
8
8
  "dependencies": {
9
- "@regulaforensics/face-sdk": "6.4.310-rc",
10
- "@regulaforensics/face-core-basic": "7.1.163-rc",
9
+ "@regulaforensics/face-sdk": "6.4.315-nightly",
10
+ "@regulaforensics/face-core-basic": "6.4.171-nightly",
11
11
  "@awesome-cordova-plugins/file": "6.16.0",
12
12
  "@awesome-cordova-plugins/camera": "6.16.0",
13
13
  "@awesome-cordova-plugins/dialogs": "6.16.0",
@@ -32,7 +32,9 @@ export default ({ config }: ConfigContext): ExpoConfig => ({
32
32
  { url: 'https://maven.regulaforensics.com/RegulaDocumentReader/Nightly' },
33
33
  { url: 'https://maven.regulaforensics.com/RegulaDocumentReader/Stage' }
34
34
  ]
35
- }
35
+ },
36
+ // This fixes a bug in expo v53. https://github.com/expo/expo/issues/36908
37
+ ios: { networkInspector: false }
36
38
  }]
37
39
  ]
38
40
  })
@@ -8,8 +8,8 @@
8
8
  "start": "expo start"
9
9
  },
10
10
  "dependencies": {
11
- "@regulaforensics/face-sdk": "6.4.310-rc",
12
- "@regulaforensics/face-core-basic": "7.1.163-rc",
11
+ "@regulaforensics/face-sdk": "6.4.315-nightly",
12
+ "@regulaforensics/face-core-basic": "6.4.171-nightly",
13
13
  "react-native": "0.79.2",
14
14
  "react-native-fs": "2.20.0",
15
15
  "react-native-image-picker": "8.2.1",
package/ios/CVDFaceSDK.m CHANGED
@@ -8,6 +8,13 @@ static NSMutableDictionary<NSString*, NSString*>* _eventCallbackIds = nil;
8
8
  return _eventCallbackIds;
9
9
  }
10
10
 
11
+ UIViewController*(^rootViewController)(void) = ^UIViewController*(){
12
+ for (UIWindow *window in UIApplication.sharedApplication.windows)
13
+ if (window.isKeyWindow)
14
+ return window.rootViewController;
15
+ return nil;
16
+ };
17
+
11
18
  - (void) exec:(CDVInvokedUrlCommand*)command {
12
19
  NSString* method = command.arguments[0];
13
20
  NSMutableArray* args = [NSMutableArray new];
package/ios/RFSWMain.h CHANGED
@@ -3,6 +3,7 @@
3
3
 
4
4
  typedef void (^RFSWCallback)(id _Nullable response);
5
5
  typedef void (^RFSWEventSender)(NSString* _Nonnull event, id _Nullable data);
6
+ extern UIViewController*_Nonnull(^ _Nonnull rootViewController)(void);
6
7
 
7
8
  @interface RFSWMain: NSObject<RFSURLRequestInterceptingDelegate,
8
9
  RFSVideoUploadingDelegate,
package/ios/RFSWMain.m CHANGED
@@ -49,16 +49,8 @@
49
49
 
50
50
  static RFSWMain* this;
51
51
  static RFSWEventSender sendEvent;
52
-
53
52
  static NSDictionary* headers;
54
53
 
55
- static UIViewController*(^rootViewController)(void) = ^UIViewController*(){
56
- for (UIWindow *window in UIApplication.sharedApplication.windows)
57
- if (window.isKeyWindow)
58
- return window.rootViewController;
59
- return nil;
60
- };
61
-
62
54
  +(void)getVersion:(RFSWCallback)callback {
63
55
  callback([RFSWJSONConstructor generateFaceSDKVersion:RFSFaceSDK.service.version]);
64
56
  }
package/ios/RNFaceSDK.h CHANGED
@@ -1,5 +1,6 @@
1
1
  #import <React/RCTBridgeModule.h>
2
2
  #import <React/RCTEventEmitter.h>
3
+ #import <React/RCTUtils.h>
3
4
  #import "RFSWMain.h"
4
5
  @import UIKit;
5
6
 
package/ios/RNFaceSDK.m CHANGED
@@ -20,6 +20,10 @@ static bool hasListeners;
20
20
  - (void)startObserving { hasListeners = YES; }
21
21
  - (void)stopObserving { hasListeners = NO; }
22
22
 
23
+ UIViewController*(^rootViewController)(void) = ^UIViewController*(){
24
+ return RCTPresentedViewController();
25
+ };
26
+
23
27
  RCT_EXPORT_METHOD(exec:(NSString*)method:(NSArray*)args:(RCTPromiseResolveBlock)resolve:(RCTPromiseRejectBlock)reject) {
24
28
  RFSWCallback callback = ^(id _Nullable data) {
25
29
  if ([self.firedCallbacks containsObject:resolve]) return;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@regulaforensics/face-sdk",
3
- "version": "6.4.310-rc",
3
+ "version": "6.4.315-nightly",
4
4
  "description": "This is an npm module for Regula Face SDK. It allows you to easily compaire faces using your phone's camera.",
5
5
  "main": "www/react-native/index.js",
6
6
  "module": "www/capacitor/index.js",
package/plugin.xml CHANGED
@@ -1,5 +1,5 @@
1
1
  <?xml version='1.0' encoding='utf-8'?>
2
- <plugin id="@regulaforensics/face-sdk" version="6.4.310-rc" xmlns="http://apache.org/cordova/ns/plugins/1.0">
2
+ <plugin id="@regulaforensics/face-sdk" version="6.4.315-nightly" xmlns="http://apache.org/cordova/ns/plugins/1.0">
3
3
  <name>FaceSDK</name>
4
4
  <description>Cordova plugin for Regula Face SDK</description>
5
5
  <license>commercial</license>
@@ -29,7 +29,7 @@
29
29
  <source url="https://github.com/CocoaPods/Specs.git" />
30
30
  </config>
31
31
  <pods>
32
- <pod name="FaceSDKStage" spec="7.1.2706" />
32
+ <pod name="FaceSDKNightly" spec="6.4.2729" />
33
33
  </pods>
34
34
  </podspec>
35
35
  </platform>