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

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.309-nightly'
8
+ s.version = '6.4.310-rc'
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 'FaceSDKNightly', '6.4.2707'
19
+ s.dependency 'FaceSDKStage', '7.1.2706'
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/Nightly"
35
+ url "https://maven.regulaforensics.com/RegulaDocumentReader/Stage"
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.3777'){
44
+ implementation('com.regula.face:api:6.4.3778'){
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/Nightly"
9
+ url "https://maven.regulaforensics.com/RegulaDocumentReader/Stage"
10
10
  }
11
11
  }
12
12
 
13
13
  dependencies {
14
14
  //noinspection GradleDependency
15
- implementation('com.regula.face:api:6.4.3777'){
15
+ implementation('com.regula.face:api:6.4.3778'){
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,6 +3,7 @@ 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
6
7
  import com.regula.facesdk.FaceSDK.Instance
7
8
  import com.regula.facesdk.callback.DetectFacesCompletion
8
9
  import com.regula.facesdk.callback.FaceCaptureCallback
@@ -13,8 +14,6 @@ import com.regula.facesdk.callback.LivenessNotificationCallback
13
14
  import com.regula.facesdk.callback.MatchFaceCallback
14
15
  import com.regula.facesdk.callback.PersonDBCallback
15
16
  import com.regula.facesdk.configuration.InitializationBleDeviceConfiguration
16
- import com.regula.facesdk.enums.InitErrorCode
17
- import com.regula.facesdk.exception.InitException
18
17
  import com.regula.facesdk.listener.NetworkInterceptorListener
19
18
  import com.regula.facesdk.model.LivenessNotification
20
19
  import com.regula.facesdk.model.results.matchfaces.MatchFacesSimilarityThresholdSplit
@@ -104,7 +103,8 @@ fun initialize(callback: Callback, config: JSONObject?) =
104
103
  else
105
104
  getBleWrapper()?.let {
106
105
  Instance().initialize(context, InitializationBleDeviceConfiguration(it), initCompletion(callback))
107
- } ?: callback(generateInitCompletion(false, InitException(InitErrorCode.LICENSE_IS_NULL)))
106
+ } ?: callback(false)
107
+ // TODO return an exception telling that btDevice is not connected
108
108
 
109
109
  fun deinitialize() = Instance().deinitialize()
110
110
 
@@ -158,19 +158,16 @@ fun splitComparedFaces(callback: Callback, faces: JSONArray, similarity: Double)
158
158
  }
159
159
 
160
160
  fun detectFaces(callback: Callback, request: JSONObject) = Instance().detectFaces(
161
- context,
162
161
  detectFacesRequestFromJSON(request),
163
162
  detectFacesCompletion(callback)
164
163
  )
165
164
 
166
- val db get() = Instance().personDatabase(context)!!
167
-
168
165
  fun createPerson(
169
166
  callback: Callback,
170
167
  name: String,
171
168
  groupIds: JSONArray?,
172
169
  metadata: JSONObject?
173
- ) = db.createPerson(
170
+ ) = Instance().personDatabase().createPerson(
174
171
  name,
175
172
  metadata,
176
173
  groupIds.toArray(),
@@ -178,8 +175,8 @@ fun createPerson(
178
175
  )
179
176
 
180
177
  fun updatePerson(callback: Callback, personJson: JSONObject) =
181
- db.getPerson(idFromJSON(personJson), object : PersonDBCallback<Person?> {
182
- override fun onSuccess(person: Person?) = db.updatePerson(
178
+ Instance().personDatabase().getPerson(idFromJSON(personJson), object : PersonDBCallback<Person?> {
179
+ override fun onSuccess(person: Person?) = Instance().personDatabase().updatePerson(
183
180
  updatePersonFromJSON(person!!, personJson),
184
181
  databaseItemCompletion(callback, null)
185
182
  )
@@ -187,29 +184,29 @@ fun updatePerson(callback: Callback, personJson: JSONObject) =
187
184
  override fun onFailure(error: String) = callback(generatePersonDBResponse(null, error))
188
185
  })
189
186
 
190
- fun deletePerson(callback: Callback, personId: String) = db.deletePerson(
187
+ fun deletePerson(callback: Callback, personId: String) = Instance().personDatabase().deletePerson(
191
188
  personId,
192
189
  databaseItemCompletion(callback, null)
193
190
  )
194
191
 
195
- fun getPerson(callback: Callback, personId: String) = db.getPerson(
192
+ fun getPerson(callback: Callback, personId: String) = Instance().personDatabase().getPerson(
196
193
  personId,
197
194
  databaseItemCompletion(callback, ::generatePerson)
198
195
  )
199
196
 
200
- fun addPersonImage(callback: Callback, personId: String, image: JSONObject) = db.addPersonImage(
197
+ fun addPersonImage(callback: Callback, personId: String, image: JSONObject) = Instance().personDatabase().addPersonImage(
201
198
  personId,
202
199
  imageUploadFromJSON(image),
203
200
  databaseItemCompletion(callback, ::generatePersonImage)
204
201
  )
205
202
 
206
- fun deletePersonImage(callback: Callback, personId: String, imageId: String) = db.deletePersonImage(
203
+ fun deletePersonImage(callback: Callback, personId: String, imageId: String) = Instance().personDatabase().deletePersonImage(
207
204
  personId,
208
205
  imageId,
209
206
  databaseItemCompletion(callback, null)
210
207
  )
211
208
 
212
- fun getPersonImage(callback: Callback, personId: String, imageId: String) = db.getPersonImageById(
209
+ fun getPersonImage(callback: Callback, personId: String, imageId: String) = Instance().personDatabase().getPersonImageById(
213
210
  personId,
214
211
  imageId,
215
212
  object : PersonDBCallback<ByteArray> {
@@ -218,7 +215,7 @@ fun getPersonImage(callback: Callback, personId: String, imageId: String) = db.g
218
215
  }
219
216
  )
220
217
 
221
- fun getPersonImages(callback: Callback, personId: String) = db.getPersonImages(
218
+ fun getPersonImages(callback: Callback, personId: String) = Instance().personDatabase().getPersonImages(
222
219
  personId,
223
220
  databasePageCompletion(callback, ::generatePersonImage)
224
221
  )
@@ -228,22 +225,22 @@ fun getPersonImagesForPage(
228
225
  personId: String,
229
226
  page: Int,
230
227
  size: Int
231
- ) = db.getPersonImagesForPage(
228
+ ) = Instance().personDatabase().getPersonImagesForPage(
232
229
  personId,
233
230
  page,
234
231
  size,
235
232
  databasePageCompletion(callback, ::generatePersonImage)
236
233
  )
237
234
 
238
- fun createGroup(callback: Callback, name: String, metadata: JSONObject?) = db.createGroup(
235
+ fun createGroup(callback: Callback, name: String, metadata: JSONObject?) = Instance().personDatabase().createGroup(
239
236
  name,
240
237
  metadata,
241
238
  databaseItemCompletion(callback, ::generatePersonGroup)
242
239
  )
243
240
 
244
241
  fun updateGroup(callback: Callback, groupJson: JSONObject) =
245
- db.getGroup(idFromJSON(groupJson), object : PersonDBCallback<PersonGroup?> {
246
- override fun onSuccess(group: PersonGroup?) = db.updateGroup(
242
+ Instance().personDatabase().getGroup(idFromJSON(groupJson), object : PersonDBCallback<PersonGroup?> {
243
+ override fun onSuccess(group: PersonGroup?) = Instance().personDatabase().updateGroup(
247
244
  updatePersonGroupFromJSON(group!!, groupJson),
248
245
  databaseItemCompletion(callback, null)
249
246
  )
@@ -252,31 +249,32 @@ fun updateGroup(callback: Callback, groupJson: JSONObject) =
252
249
  })
253
250
 
254
251
  fun editPersonsInGroup(callback: Callback, groupId: String, editGroupPersonsRequest: JSONObject) =
255
- db.editPersonsInGroup(
252
+ Instance().personDatabase().editPersonsInGroup(
256
253
  groupId,
257
254
  editGroupPersonsRequestFromJSON(editGroupPersonsRequest),
258
255
  databaseItemCompletion(callback, null)
259
256
  )
260
257
 
261
- fun deleteGroup(callback: Callback, groupId: String) = db.deleteGroup(
258
+ fun deleteGroup(callback: Callback, groupId: String) = Instance().personDatabase().deleteGroup(
262
259
  groupId,
263
260
  databaseItemCompletion(callback, null)
264
261
  )
265
262
 
266
- fun getGroup(callback: Callback, groupId: String) = db.getGroup(
263
+ fun getGroup(callback: Callback, groupId: String) = Instance().personDatabase().getGroup(
267
264
  groupId,
268
265
  databaseItemCompletion(callback, ::generatePersonGroup)
269
266
  )
270
267
 
271
- fun getGroups(callback: Callback) = db.getGroups(databasePageCompletion(callback, ::generatePersonGroup))
268
+ fun getGroups(callback: Callback) =
269
+ Instance().personDatabase().getGroups(databasePageCompletion(callback, ::generatePersonGroup))
272
270
 
273
- fun getGroupsForPage(callback: Callback, page: Int, size: Int) = db.getGroupsForPage(
271
+ fun getGroupsForPage(callback: Callback, page: Int, size: Int) = Instance().personDatabase().getGroupsForPage(
274
272
  page,
275
273
  size,
276
274
  databasePageCompletion(callback, ::generatePersonGroup)
277
275
  )
278
276
 
279
- fun getPersonGroups(callback: Callback, personId: String) = db.getPersonGroups(
277
+ fun getPersonGroups(callback: Callback, personId: String) = Instance().personDatabase().getPersonGroups(
280
278
  personId,
281
279
  databasePageCompletion(callback, ::generatePersonGroup)
282
280
  )
@@ -286,14 +284,14 @@ fun getPersonGroupsForPage(
286
284
  personId: String,
287
285
  page: Int,
288
286
  size: Int
289
- ) = db.getPersonGroupsForPage(
287
+ ) = Instance().personDatabase().getPersonGroupsForPage(
290
288
  personId,
291
289
  page,
292
290
  size,
293
291
  databasePageCompletion(callback, ::generatePersonGroup)
294
292
  )
295
293
 
296
- fun getPersonsInGroup(callback: Callback, groupId: String) = db.getPersonsInGroup(
294
+ fun getPersonsInGroup(callback: Callback, groupId: String) = Instance().personDatabase().getPersonsInGroup(
297
295
  groupId,
298
296
  databasePageCompletion(callback, ::generatePerson)
299
297
  )
@@ -303,14 +301,14 @@ fun getPersonsInGroupForPage(
303
301
  groupId: String,
304
302
  page: Int,
305
303
  size: Int
306
- ) = db.getPersonsInGroupForPage(
304
+ ) = Instance().personDatabase().getPersonsInGroupForPage(
307
305
  groupId,
308
306
  page,
309
307
  size,
310
308
  databasePageCompletion(callback, ::generatePerson)
311
309
  )
312
310
 
313
- fun searchPerson(callback: Callback, searchPersonRequest: JSONObject) = db.searchPerson(
311
+ fun searchPerson(callback: Callback, searchPersonRequest: JSONObject) = Instance().personDatabase().searchPerson(
314
312
  searchPersonRequestFromJSON(searchPersonRequest),
315
313
  object : PersonDBCallback<List<SearchPerson>> {
316
314
  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(reactContext: ReactApplicationContext) = listOf(RNFaceSDKModule(reactContext))
41
- override fun createViewManagers(reactContext: ReactApplicationContext) = emptyList<ViewManager<*, *>>()
40
+ override fun createNativeModules(rc: ReactApplicationContext) = listOf(RNFaceSDKModule(rc))
41
+ override fun createViewManagers(rc: ReactApplicationContext) = emptyList<ViewManager<*, *>>()
42
42
  }
43
43
 
44
44
  @Suppress("unused", "UNUSED_PARAMETER")
@@ -1,3 +1,4 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
1
2
  <manifest xmlns:android="http://schemas.android.com/apk/res/android">
2
3
 
3
4
  <application
@@ -5,15 +6,16 @@
5
6
  android:icon="@drawable/ic_launcher"
6
7
  android:label="FaceSDK"
7
8
  android:supportsRtl="true"
8
- android:theme="@style/AppTheme"
9
- android:usesCleartextTraffic="true">
9
+ android:theme="@style/AppTheme">
10
+
10
11
  <activity
11
- android:name=".MainActivity"
12
+ android:screenOrientation="portrait"
12
13
  android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale|smallestScreenSize|screenLayout|uiMode|navigation"
13
- android:exported="true"
14
+ android:name=".MainActivity"
15
+ android:theme="@style/AppTheme.NoActionBarLaunch"
14
16
  android:launchMode="singleTask"
15
- android:screenOrientation="portrait"
16
- android:theme="@style/AppTheme.NoActionBarLaunch">
17
+ android:exported="true">
18
+
17
19
  <intent-filter>
18
20
  <action android:name="android.intent.action.MAIN" />
19
21
  <category android:name="android.intent.category.LAUNCHER" />
@@ -21,5 +23,8 @@
21
23
 
22
24
  </activity>
23
25
  </application>
26
+
27
+ <!-- Permissions -->
28
+
24
29
  <uses-permission android:name="android.permission.INTERNET" />
25
30
  </manifest>
@@ -6,8 +6,8 @@
6
6
  "android": "scripts/android.sh"
7
7
  },
8
8
  "dependencies": {
9
- "@regulaforensics/face-sdk": "6.4.309-nightly",
10
- "@regulaforensics/face-core-basic": "6.4.165-nightly",
9
+ "@regulaforensics/face-sdk": "6.4.310-rc",
10
+ "@regulaforensics/face-core-basic": "7.1.163-rc",
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.309-nightly",
10
- "@regulaforensics/face-core-basic": "6.4.165-nightly",
9
+ "@regulaforensics/face-sdk": "6.4.310-rc",
10
+ "@regulaforensics/face-core-basic": "7.1.163-rc",
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.309-nightly",
10
- "@regulaforensics/face-core-basic": "6.4.165-nightly",
9
+ "@regulaforensics/face-sdk": "6.4.310-rc",
10
+ "@regulaforensics/face-core-basic": "7.1.163-rc",
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,9 +32,7 @@ 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
- },
36
- // This fixes a bug in expo v53. https://github.com/expo/expo/issues/36908
37
- ios: { networkInspector: false }
35
+ }
38
36
  }]
39
37
  ]
40
38
  })
@@ -8,8 +8,8 @@
8
8
  "start": "expo start"
9
9
  },
10
10
  "dependencies": {
11
- "@regulaforensics/face-sdk": "6.4.309-nightly",
12
- "@regulaforensics/face-core-basic": "6.4.165-nightly",
11
+ "@regulaforensics/face-sdk": "6.4.310-rc",
12
+ "@regulaforensics/face-core-basic": "7.1.163-rc",
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,13 +8,6 @@ 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
-
18
11
  - (void) exec:(CDVInvokedUrlCommand*)command {
19
12
  NSString* method = command.arguments[0];
20
13
  NSMutableArray* args = [NSMutableArray new];
package/ios/RFSWMain.h CHANGED
@@ -3,7 +3,6 @@
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);
7
6
 
8
7
  @interface RFSWMain: NSObject<RFSURLRequestInterceptingDelegate,
9
8
  RFSVideoUploadingDelegate,
package/ios/RFSWMain.m CHANGED
@@ -49,8 +49,16 @@
49
49
 
50
50
  static RFSWMain* this;
51
51
  static RFSWEventSender sendEvent;
52
+
52
53
  static NSDictionary* headers;
53
54
 
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
+
54
62
  +(void)getVersion:(RFSWCallback)callback {
55
63
  callback([RFSWJSONConstructor generateFaceSDKVersion:RFSFaceSDK.service.version]);
56
64
  }
package/ios/RNFaceSDK.h CHANGED
@@ -1,6 +1,5 @@
1
1
  #import <React/RCTBridgeModule.h>
2
2
  #import <React/RCTEventEmitter.h>
3
- #import <React/RCTUtils.h>
4
3
  #import "RFSWMain.h"
5
4
  @import UIKit;
6
5
 
package/ios/RNFaceSDK.m CHANGED
@@ -20,10 +20,6 @@ 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
-
27
23
  RCT_EXPORT_METHOD(exec:(NSString*)method:(NSArray*)args:(RCTPromiseResolveBlock)resolve:(RCTPromiseRejectBlock)reject) {
28
24
  RFSWCallback callback = ^(id _Nullable data) {
29
25
  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.309-nightly",
3
+ "version": "6.4.310-rc",
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.309-nightly" xmlns="http://apache.org/cordova/ns/plugins/1.0">
2
+ <plugin id="@regulaforensics/face-sdk" version="6.4.310-rc" 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="FaceSDKNightly" spec="6.4.2707" />
32
+ <pod name="FaceSDKStage" spec="7.1.2706" />
33
33
  </pods>
34
34
  </podspec>
35
35
  </platform>