@regulaforensics/cordova-plugin-document-reader-api 5.4.0 → 5.8.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/README.md +4 -3
- package/example/config.xml +1 -1
- package/example/package.json +7 -5
- package/example/www/index.html +6 -1
- package/example/www/js/index.js +61 -7
- package/package.json +1 -1
- package/plugin.xml +5 -4
- package/src/android/DocumentReader.java +227 -20
- package/src/android/Helpers.java +146 -0
- package/src/android/JSONConstructor.java +1830 -507
- package/src/android/RegulaConfig.java +85 -18
- package/src/android/build.gradle +11 -11
- package/src/ios/RGLDocumentReader.h +8 -3
- package/src/ios/RGLDocumentReader.m +163 -12
- package/src/ios/RGLWJSONConstructor.h +60 -0
- package/src/ios/RGLWJSONConstructor.m +918 -0
- package/src/ios/RegulaConfig.h +2 -0
- package/src/ios/RegulaConfig.m +128 -33
- package/www/DocumentReader.js +902 -667
- package/src/ios/JSONConstructor.h +0 -33
- package/src/ios/JSONConstructor.m +0 -821
|
@@ -5,6 +5,7 @@ import org.json.JSONObject;
|
|
|
5
5
|
import org.json.JSONException;
|
|
6
6
|
|
|
7
7
|
import com.regula.documentreader.api.DocumentReader;
|
|
8
|
+
import com.regula.documentreader.api.params.ImageQA;
|
|
8
9
|
import com.regula.documentreader.api.params.ParamsCustomization;
|
|
9
10
|
import com.regula.documentreader.api.params.Functionality;
|
|
10
11
|
import com.regula.documentreader.api.params.ProcessParam;
|
|
@@ -18,6 +19,7 @@ import android.graphics.Typeface;
|
|
|
18
19
|
|
|
19
20
|
import java.math.BigDecimal;
|
|
20
21
|
|
|
22
|
+
import static cordova.plugin.documentreader.Helpers.*;
|
|
21
23
|
import static cordova.plugin.documentreader.JSONConstructor.*;
|
|
22
24
|
|
|
23
25
|
class RegulaConfig {
|
|
@@ -30,11 +32,11 @@ class RegulaConfig {
|
|
|
30
32
|
setProcessParams(reader.processParams(), opts.getJSONObject("processParams"));
|
|
31
33
|
}
|
|
32
34
|
|
|
33
|
-
static JSONObject getConfig(DocumentReader reader
|
|
35
|
+
static JSONObject getConfig(DocumentReader reader) throws JSONException {
|
|
34
36
|
JSONObject object = new JSONObject();
|
|
35
37
|
object.put("customization", getCustomization(reader.customization()));
|
|
36
38
|
object.put("functionality", getFunctionality(reader.functionality()));
|
|
37
|
-
object.put("processParams", getProcessParams(reader.processParams()
|
|
39
|
+
object.put("processParams", getProcessParams(reader.processParams()));
|
|
38
40
|
|
|
39
41
|
return object;
|
|
40
42
|
}
|
|
@@ -95,6 +97,12 @@ class RegulaConfig {
|
|
|
95
97
|
editor.setZoomFactor(BigDecimal.valueOf(opts.getDouble("zoomFactor")).floatValue());
|
|
96
98
|
if (opts.has("isCameraTorchCheckDisabled"))
|
|
97
99
|
editor.setIsCameraTorchCheckDisabled(opts.getBoolean("isCameraTorchCheckDisabled"));
|
|
100
|
+
if (opts.has("recordScanningProcess"))
|
|
101
|
+
editor.setDoRecordProcessingVideo(opts.getBoolean("recordScanningProcess"));
|
|
102
|
+
if (opts.has("manualMultipageMode"))
|
|
103
|
+
editor.setManualMultipageMode(opts.getBoolean("manualMultipageMode"));
|
|
104
|
+
if (opts.has("exposure"))
|
|
105
|
+
editor.setExposure(BigDecimal.valueOf(opts.getDouble("exposure")).floatValue());
|
|
98
106
|
|
|
99
107
|
editor.apply();
|
|
100
108
|
}
|
|
@@ -158,6 +166,49 @@ class RegulaConfig {
|
|
|
158
166
|
processParams.returnCroppedBarcode = opts.getBoolean("returnCroppedBarcode");
|
|
159
167
|
if (opts.has("checkHologram"))
|
|
160
168
|
processParams.checkHologram = opts.getBoolean("checkHologram");
|
|
169
|
+
if (opts.has("checkRequiredTextFields"))
|
|
170
|
+
processParams.checkRequiredTextFields = opts.getBoolean("checkRequiredTextFields");
|
|
171
|
+
if (opts.has("depersonalizeLog"))
|
|
172
|
+
processParams.depersonalizeLog = opts.getBoolean("depersonalizeLog");
|
|
173
|
+
if (opts.has("resultTypeOutput"))
|
|
174
|
+
processParams.resultTypeOutput = intArrayFromJson(opts.getJSONArray("resultTypeOutput"));
|
|
175
|
+
if (opts.has("generateDoublePageSpreadImage"))
|
|
176
|
+
processParams.generateDoublePageSpreadImage = opts.getBoolean("generateDoublePageSpreadImage");
|
|
177
|
+
if (opts.has("imageDpiOutMax"))
|
|
178
|
+
processParams.imageDpiOutMax = opts.getInt("imageDpiOutMax");
|
|
179
|
+
if (opts.has("alreadyCropped"))
|
|
180
|
+
processParams.alreadyCropped = opts.getBoolean("alreadyCropped");
|
|
181
|
+
if (opts.has("forceDocID"))
|
|
182
|
+
processParams.forceDocID = opts.getInt("forceDocID");
|
|
183
|
+
if (opts.has("matchTextFieldMask"))
|
|
184
|
+
processParams.matchTextFieldMask = opts.getBoolean("matchTextFieldMask");
|
|
185
|
+
if (opts.has("fastDocDetect"))
|
|
186
|
+
processParams.fastDocDetect = opts.getBoolean("fastDocDetect");
|
|
187
|
+
if (opts.has("updateOCRValidityByGlare"))
|
|
188
|
+
processParams.updateOCRValidityByGlare = opts.getBoolean("updateOCRValidityByGlare");
|
|
189
|
+
if (opts.has("imageQA")) {
|
|
190
|
+
ImageQA img = new ImageQA();
|
|
191
|
+
img.fromJson(opts.getJSONObject("imageQA"));
|
|
192
|
+
processParams.imageQA = img;
|
|
193
|
+
}
|
|
194
|
+
if (opts.has("forceDocFormat"))
|
|
195
|
+
processParams.forceDocFormat = opts.getInt("forceDocFormat");
|
|
196
|
+
if (opts.has("noGraphics"))
|
|
197
|
+
processParams.noGraphics = opts.getBoolean("noGraphics");
|
|
198
|
+
if (opts.has("documentAreaMin"))
|
|
199
|
+
processParams.documentAreaMin = opts.getDouble("documentAreaMin");
|
|
200
|
+
if (opts.has("multiDocOnImage"))
|
|
201
|
+
processParams.multiDocOnImage = opts.getBoolean("multiDocOnImage");
|
|
202
|
+
if (opts.has("shiftExpiryDate"))
|
|
203
|
+
processParams.shiftExpiryDate = opts.getInt("shiftExpiryDate");
|
|
204
|
+
if (opts.has("minimalHolderAge"))
|
|
205
|
+
processParams.minimalHolderAge = opts.getInt("minimalHolderAge");
|
|
206
|
+
if (opts.has("mrzFormatsFilter"))
|
|
207
|
+
processParams.mrzFormatsFilter = stringArrayFromJson(opts.getJSONArray("mrzFormatsFilter"));
|
|
208
|
+
if (opts.has("forceReadMrzBeforeLocate"))
|
|
209
|
+
processParams.forceReadMrzBeforeLocate = opts.getBoolean("forceReadMrzBeforeLocate");
|
|
210
|
+
if (opts.has("parseBarcodes"))
|
|
211
|
+
processParams.parseBarcodes = opts.getBoolean("parseBarcodes");
|
|
161
212
|
}
|
|
162
213
|
|
|
163
214
|
private static void setCustomization(ParamsCustomization customization, JSONObject opts, Context context) throws JSONException {
|
|
@@ -248,10 +299,6 @@ class RegulaConfig {
|
|
|
248
299
|
editor.setCameraFrameCornerRadius((float) opts.getDouble("cameraFrameCornerRadius"));
|
|
249
300
|
if (opts.has("cameraFrameLineCap"))
|
|
250
301
|
editor.setCameraFrameLineCap(Paint.Cap.values()[(opts.getInt("cameraFrameLineCap"))]);
|
|
251
|
-
if (opts.has("torchImageOnImage"))
|
|
252
|
-
editor.setTorchImageOn(drawableFromBase64(opts.getString("torchImageOnImage"), context));
|
|
253
|
-
if (opts.has("torchImageOffImage"))
|
|
254
|
-
editor.setTorchImageOff(drawableFromBase64(opts.getString("torchImageOffImage"), context));
|
|
255
302
|
if (opts.has("closeButtonImage"))
|
|
256
303
|
editor.setCloseButtonImage(drawableFromBase64(opts.getString("closeButtonImage"), context));
|
|
257
304
|
if (opts.has("captureButtonImage"))
|
|
@@ -272,8 +319,10 @@ class RegulaConfig {
|
|
|
272
319
|
editor.setChangeFrameCollapseButtonImage(drawableFromBase64(opts.getString("changeFrameButtonCollapseImage"), context));
|
|
273
320
|
if (opts.has("toolbarSize"))
|
|
274
321
|
editor.setToolbarSize(BigDecimal.valueOf(opts.getDouble("toolbarSize")).floatValue());
|
|
322
|
+
if (opts.has("statusBackgroundColor"))
|
|
323
|
+
editor.setStatusBackgroundColor(opts.getString("statusBackgroundColor"));
|
|
275
324
|
|
|
276
|
-
editor.
|
|
325
|
+
editor.applyImmediately(context);
|
|
277
326
|
}
|
|
278
327
|
|
|
279
328
|
private static JSONObject getFunctionality(Functionality functionality) throws JSONException {
|
|
@@ -309,6 +358,9 @@ class RegulaConfig {
|
|
|
309
358
|
object.put("isZoomEnabled", functionality.isZoomEnabled());
|
|
310
359
|
object.put("zoomFactor", functionality.getZoomFactor());
|
|
311
360
|
object.put("isCameraTorchCheckDisabled", functionality.isCameraTorchCheckDisabled());
|
|
361
|
+
object.put("recordScanningProcess", functionality.doRecordProcessingVideo());
|
|
362
|
+
object.put("manualMultipageMode", functionality.isManualMultipageMode());
|
|
363
|
+
object.put("exposure", functionality.getExposure());
|
|
312
364
|
|
|
313
365
|
return object;
|
|
314
366
|
}
|
|
@@ -358,8 +410,6 @@ class RegulaConfig {
|
|
|
358
410
|
object.put("cameraFramePortraitAspectRatio", customization.getCameraFramePortraitAspectRatio());
|
|
359
411
|
object.put("cameraFrameCornerRadius", customization.getCameraFrameCornerRadius());
|
|
360
412
|
object.put("cameraFrameLineCap", customization.getCameraFrameLineCap().toString());
|
|
361
|
-
object.put("torchImageOnImage", bitmapToBase64String(bitmapFromDrawable(customization.getTorchImageOnDrawable())));
|
|
362
|
-
object.put("torchImageOffImage", bitmapToBase64String(bitmapFromDrawable(customization.getTorchImageOffDrawable())));
|
|
363
413
|
object.put("closeButtonImage", bitmapToBase64String(bitmapFromDrawable(customization.getCloseButtonDrawable())));
|
|
364
414
|
object.put("captureButtonImage", bitmapToBase64String(bitmapFromDrawable(customization.getCaptureButtonDrawable())));
|
|
365
415
|
object.put("changeFrameCollapseButtonImage", bitmapToBase64String(bitmapFromDrawable(customization.getChangeFrameCollapseButtonDrawable())));
|
|
@@ -370,12 +420,17 @@ class RegulaConfig {
|
|
|
370
420
|
object.put("changeFrameButtonExpandImage", bitmapToBase64String(bitmapFromDrawable(customization.getChangeFrameExpandButtonDrawable())));
|
|
371
421
|
object.put("changeFrameButtonCollapseImage", bitmapToBase64String(bitmapFromDrawable(customization.getChangeFrameCollapseButtonDrawable())));
|
|
372
422
|
object.put("toolbarSize", customization.getToolbarSize());
|
|
423
|
+
object.put("statusBackgroundColor", customization.getStatusBackgroundColor());
|
|
373
424
|
|
|
374
425
|
return object;
|
|
375
426
|
}
|
|
376
427
|
|
|
377
|
-
private static JSONObject getProcessParams(ProcessParam processParams
|
|
428
|
+
private static JSONObject getProcessParams(ProcessParam processParams) throws JSONException {
|
|
378
429
|
JSONObject object = new JSONObject();
|
|
430
|
+
object.put("documentIDList", processParams.documentIDList != null ? generateIntArray(processParams.documentIDList) : null);
|
|
431
|
+
object.put("barcodeTypes", processParams.doBarcodes != null ? generateArray(processParams.doBarcodes) : null);
|
|
432
|
+
object.put("fieldTypesFilter", processParams.fieldTypesFilter != null ? generateIntArray(processParams.fieldTypesFilter) : null);
|
|
433
|
+
object.put("faceMetaData", processParams.faceMetaData != null ? generateArray(processParams.faceMetaData, JSONConstructor::generateFaceMetaData) : null);
|
|
379
434
|
object.put("scenario", processParams.scenario);
|
|
380
435
|
object.put("measureSystem", processParams.measureSystem);
|
|
381
436
|
object.put("uvTorchEnabled", processParams.uvTorchEnabled);
|
|
@@ -402,14 +457,26 @@ class RegulaConfig {
|
|
|
402
457
|
object.put("logs", processParams.isLogEnable());
|
|
403
458
|
object.put("returnCroppedBarcode", processParams.returnCroppedBarcode);
|
|
404
459
|
object.put("checkHologram", processParams.checkHologram);
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
460
|
+
object.put("checkRequiredTextFields", processParams.checkRequiredTextFields);
|
|
461
|
+
object.put("depersonalizeLog", processParams.depersonalizeLog);
|
|
462
|
+
object.put("resultTypeOutput", processParams.resultTypeOutput);
|
|
463
|
+
object.put("generateDoublePageSpreadImage", processParams.generateDoublePageSpreadImage);
|
|
464
|
+
object.put("imageDpiOutMax", processParams.imageDpiOutMax);
|
|
465
|
+
object.put("alreadyCropped", processParams.alreadyCropped);
|
|
466
|
+
object.put("forceDocID", processParams.forceDocID);
|
|
467
|
+
object.put("matchTextFieldMask", processParams.matchTextFieldMask);
|
|
468
|
+
object.put("fastDocDetect", processParams.fastDocDetect);
|
|
469
|
+
object.put("updateOCRValidityByGlare", processParams.updateOCRValidityByGlare);
|
|
470
|
+
object.put("imageQA", processParams.imageQA != null ? processParams.imageQA.toJsonObject() : null);
|
|
471
|
+
object.put("forceDocFormat", processParams.forceDocFormat);
|
|
472
|
+
object.put("noGraphics", processParams.noGraphics);
|
|
473
|
+
object.put("documentAreaMin", processParams.documentAreaMin);
|
|
474
|
+
object.put("multiDocOnImage", processParams.multiDocOnImage);
|
|
475
|
+
object.put("shiftExpiryDate", processParams.shiftExpiryDate);
|
|
476
|
+
object.put("minimalHolderAge", processParams.minimalHolderAge);
|
|
477
|
+
object.put("mrzFormatsFilter", processParams.mrzFormatsFilter != null ? generateArray(processParams.mrzFormatsFilter) : null);
|
|
478
|
+
object.put("forceReadMrzBeforeLocate", processParams.forceReadMrzBeforeLocate);
|
|
479
|
+
object.put("parseBarcodes", processParams.parseBarcodes);
|
|
413
480
|
|
|
414
481
|
return object;
|
|
415
482
|
}
|
package/src/android/build.gradle
CHANGED
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
repositories {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
}
|
|
6
|
-
maven{
|
|
7
|
-
url "http://maven.regulaforensics.com/RegulaDocumentReader"
|
|
8
|
-
}
|
|
9
|
-
maven {
|
|
10
|
-
url "http://maven.regulaforensics.com/RegulaDocumentReader/Beta"
|
|
11
|
-
}
|
|
2
|
+
jcenter()
|
|
3
|
+
maven{
|
|
4
|
+
url "https://maven.google.com"
|
|
12
5
|
}
|
|
6
|
+
maven{
|
|
7
|
+
url "https://maven.regulaforensics.com/RegulaDocumentReader"
|
|
8
|
+
}
|
|
9
|
+
maven {
|
|
10
|
+
url "https://maven.regulaforensics.com/RegulaDocumentReader/Beta"
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
13
|
|
|
14
14
|
dependencies {
|
|
15
|
-
implementation ('com.regula.documentreader:api:5.
|
|
15
|
+
implementation ('com.regula.documentreader:api:5.8.5196'){
|
|
16
16
|
transitive = true
|
|
17
17
|
}
|
|
18
18
|
}
|
|
@@ -1,14 +1,19 @@
|
|
|
1
1
|
#import <Cordova/CDVPlugin.h>
|
|
2
2
|
#import <Foundation/Foundation.h>
|
|
3
|
-
#import "
|
|
3
|
+
#import "RGLWJSONConstructor.h"
|
|
4
4
|
#import "RegulaConfig.h"
|
|
5
5
|
#import <DocumentReader/DocumentReader.h>
|
|
6
6
|
|
|
7
7
|
@class DocReader;
|
|
8
8
|
|
|
9
|
-
@interface RGLDocumentReader : CDVPlugin
|
|
9
|
+
@interface RGLDocumentReader : CDVPlugin<RGLRecordScanningProcessDelegate, RGLDocReaderRFIDDelegate>
|
|
10
10
|
|
|
11
11
|
@property (class) CDVInvokedUrlCommand* _Nullable command;
|
|
12
12
|
@property (class) NSNumber* _Nullable databasePercentageDownloaded;
|
|
13
13
|
|
|
14
|
-
|
|
14
|
+
- (void) sendEvent:(NSString*_Nullable)data :(NSString*_Nonnull)callbackId;
|
|
15
|
+
|
|
16
|
+
@end
|
|
17
|
+
|
|
18
|
+
@interface RFIDDelegateNoPA : NSObject<RGLDocReaderRFIDDelegate>
|
|
19
|
+
@end
|
|
@@ -2,6 +2,40 @@
|
|
|
2
2
|
#import "RGLDocumentReader.h"
|
|
3
3
|
@import DocumentReader;
|
|
4
4
|
|
|
5
|
+
RGLRFIDCertificatesCallback paCertificateCompletion;
|
|
6
|
+
RGLRFIDCertificatesCallback taCertificateCompletion;
|
|
7
|
+
typedef void (^RGLRFIDSignatureCallback)(NSData *signature);
|
|
8
|
+
RGLRFIDSignatureCallback taSignatureCompletion;
|
|
9
|
+
RFIDDelegateNoPA* rfidDelegateNoPA;
|
|
10
|
+
RGLDocumentReader* plugin;
|
|
11
|
+
NSString* rfidNotificationCompletionEvent = @"rfidNotificationCompletionEvent";
|
|
12
|
+
NSString* paCertificateCompletionEvent = @"paCertificateCompletionEvent";
|
|
13
|
+
NSString* taCertificateCompletionEvent = @"taCertificateCompletionEvent";
|
|
14
|
+
NSString* taSignatureCompletionEvent = @"taSignatureCompletionEvent";
|
|
15
|
+
|
|
16
|
+
@implementation RFIDDelegateNoPA
|
|
17
|
+
|
|
18
|
+
- (void)onRequestTACertificatesWithKey:(NSString *)keyCAR callback:(RGLRFIDCertificatesCallback)callback {
|
|
19
|
+
taCertificateCompletion = callback;
|
|
20
|
+
[plugin sendEvent:[NSString stringWithFormat:@"%@%@", taCertificateCompletionEvent, keyCAR] :RGLDocumentReader.command.callbackId];
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
- (void)onRequestTASignatureWithChallenge:(RGLTAChallenge *)challenge callback:(void(^)(NSData *signature))callback {
|
|
24
|
+
taSignatureCompletion = callback;
|
|
25
|
+
[plugin sendEvent:[NSString stringWithFormat:@"%@%@", taSignatureCompletionEvent, [RGLWJSONConstructor dictToString:[RGLWJSONConstructor generateRGLTAChallenge:challenge]]] :RGLDocumentReader.command.callbackId];
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
- (void)didChipConnected {
|
|
29
|
+
[plugin sendEvent:[NSString stringWithFormat:@"%@%@", rfidNotificationCompletionEvent, @"1"] :RGLDocumentReader.command.callbackId]; // int RFID_EVENT_CHIP_DETECTED = 1;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
- (void)didReceivedError:(RGLRFIDErrorCodes)errorCode {
|
|
33
|
+
[plugin sendEvent:[NSString stringWithFormat:@"%@%@", rfidNotificationCompletionEvent, @"2"] :RGLDocumentReader.command.callbackId]; // int RFID_EVENT_READING_ERROR = 2;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
@end
|
|
37
|
+
|
|
38
|
+
|
|
5
39
|
@implementation RGLDocumentReader
|
|
6
40
|
|
|
7
41
|
static NSNumber* _databasePercentageDownloaded;
|
|
@@ -37,26 +71,60 @@ typedef void (^Callback)(NSString* response);
|
|
|
37
71
|
-(RGLDocumentReaderCompletion _Nonnull)getCompletion {
|
|
38
72
|
NSString* callbackId = RGLDocumentReader.command.callbackId;
|
|
39
73
|
return ^(RGLDocReaderAction action, RGLDocumentReaderResults * _Nullable results, NSError * _Nullable error) {
|
|
40
|
-
[self sendEvent:[
|
|
74
|
+
[self sendEvent:[RGLWJSONConstructor dictToString:[RGLWJSONConstructor generateCompletion:[RGLWJSONConstructor generateDocReaderAction: action] :results :error :nil]] :callbackId];
|
|
41
75
|
};
|
|
42
76
|
}
|
|
43
77
|
|
|
44
78
|
-(RGLRFIDProcessCompletion _Nonnull)getRFIDCompletion {
|
|
45
79
|
NSString* callbackId = RGLDocumentReader.command.callbackId;
|
|
46
80
|
return ^(RGLRFIDCompleteAction action, RGLDocumentReaderResults * _Nullable results, NSError * _Nullable error, RGLRFIDErrorCodes errorCode) {
|
|
47
|
-
[self sendEvent:[
|
|
81
|
+
[self sendEvent:[RGLWJSONConstructor dictToString:[RGLWJSONConstructor generateCompletion:[RGLWJSONConstructor generateRFIDCompleteAction: action] :results :error :nil]] :callbackId];
|
|
48
82
|
};
|
|
49
83
|
}
|
|
50
84
|
|
|
51
85
|
-(RGLRFIDNotificationCallback _Nonnull)getRFIDNotificationCallback {
|
|
52
86
|
NSString* callbackId = RGLDocumentReader.command.callbackId;
|
|
53
87
|
return ^(RGLRFIDNotificationAction notificationAction, RGLRFIDNotify* _Nullable notify) {
|
|
54
|
-
[self sendEvent:[
|
|
88
|
+
[self sendEvent:[RGLWJSONConstructor dictToString:[RGLWJSONConstructor generateCompletion:[RGLWJSONConstructor generateRFIDNotificationAction:notificationAction] :nil :nil :notify]] :callbackId];
|
|
55
89
|
};
|
|
56
90
|
}
|
|
57
91
|
|
|
92
|
+
- (void)didFinishRecordingToFile:(NSURL *)fileURL {
|
|
93
|
+
NSString* callbackId = RGLDocumentReader.command.callbackId;
|
|
94
|
+
[self sendEvent:[RGLWJSONConstructor dictToString:[RGLWJSONConstructor generateVideoEncoderCompletion:fileURL :nil]] :callbackId];
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
- (void)didFailWithError:(NSError *)error {
|
|
98
|
+
NSString* callbackId = RGLDocumentReader.command.callbackId;
|
|
99
|
+
[self sendEvent:[RGLWJSONConstructor dictToString:[RGLWJSONConstructor generateVideoEncoderCompletion:nil :error]] :callbackId];
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
- (void)onRequestPACertificatesWithSerial:(NSData *)serialNumber issuer:(RGLPAResourcesIssuer *)issuer callback:(RGLRFIDCertificatesCallback)callback {
|
|
103
|
+
paCertificateCompletion = callback;
|
|
104
|
+
[self sendEvent:[NSString stringWithFormat:@"%@%@", paCertificateCompletionEvent, [RGLWJSONConstructor dictToString:[RGLWJSONConstructor generatePACertificateCompletion:serialNumber :issuer]]] :RGLDocumentReader.command.callbackId];
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
- (void)onRequestTACertificatesWithKey:(NSString *)keyCAR callback:(RGLRFIDCertificatesCallback)callback {
|
|
108
|
+
taCertificateCompletion = callback;
|
|
109
|
+
[self sendEvent:[NSString stringWithFormat:@"%@%@", taCertificateCompletionEvent, keyCAR] :RGLDocumentReader.command.callbackId];
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
- (void)onRequestTASignatureWithChallenge:(RGLTAChallenge *)challenge callback:(void(^)(NSData *signature))callback {
|
|
113
|
+
taSignatureCompletion = callback;
|
|
114
|
+
[self sendEvent:[NSString stringWithFormat:@"%@%@", taSignatureCompletionEvent, [RGLWJSONConstructor dictToString:[RGLWJSONConstructor generateRGLTAChallenge:challenge]]] :RGLDocumentReader.command.callbackId];
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
- (void)didChipConnected {
|
|
118
|
+
[self sendEvent:[NSString stringWithFormat:@"%@%@", rfidNotificationCompletionEvent, @"1"] :RGLDocumentReader.command.callbackId]; // int RFID_EVENT_CHIP_DETECTED = 1;
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
- (void)didReceivedError:(RGLRFIDErrorCodes)errorCode {
|
|
122
|
+
[self sendEvent:[NSString stringWithFormat:@"%@%@", rfidNotificationCompletionEvent, @"2"] :RGLDocumentReader.command.callbackId]; // int RFID_EVENT_READING_ERROR = 2;
|
|
123
|
+
}
|
|
124
|
+
|
|
58
125
|
- (void) exec:(CDVInvokedUrlCommand*)command {
|
|
59
126
|
[RGLDocumentReader setCommand:command];
|
|
127
|
+
plugin = self;
|
|
60
128
|
NSMutableArray* args = [[NSMutableArray alloc] init];
|
|
61
129
|
NSString* action = [[command arguments] objectAtIndex:0];
|
|
62
130
|
for(int i = 1;i<[command arguments].count;i++)
|
|
@@ -68,7 +136,9 @@ typedef void (^Callback)(NSString* response);
|
|
|
68
136
|
[self.commandDelegate sendPluginResult:[CDVPluginResult resultWithStatus:CDVCommandStatus_ERROR messageAsString:response] callbackId:command.callbackId];
|
|
69
137
|
};
|
|
70
138
|
|
|
71
|
-
if([action isEqualToString:@"
|
|
139
|
+
if([action isEqualToString:@"initializeReaderAutomatically"])
|
|
140
|
+
[self initializeReaderAutomatically :successCallback :errorCallback];
|
|
141
|
+
else if([action isEqualToString:@"getAPIVersion"])
|
|
72
142
|
[self getAPIVersion :successCallback :errorCallback];
|
|
73
143
|
else if([action isEqualToString:@"getAvailableScenarios"])
|
|
74
144
|
[self getAvailableScenarios :successCallback :errorCallback];
|
|
@@ -138,6 +208,8 @@ typedef void (^Callback)(NSString* response);
|
|
|
138
208
|
[self readRFID :successCallback :errorCallback];
|
|
139
209
|
else if([action isEqualToString:@"getRfidSessionStatus"])
|
|
140
210
|
[self getRfidSessionStatus :successCallback :errorCallback];
|
|
211
|
+
else if([action isEqualToString:@"setRfidDelegate"])
|
|
212
|
+
[self setRfidDelegate :[args objectAtIndex:0] :successCallback :errorCallback];
|
|
141
213
|
else if([action isEqualToString:@"setEnableCoreLogs"])
|
|
142
214
|
[self setEnableCoreLogs :[args objectAtIndex:0] :successCallback :errorCallback];
|
|
143
215
|
else if([action isEqualToString:@"addPKDCertificates"])
|
|
@@ -164,8 +236,18 @@ typedef void (^Callback)(NSString* response);
|
|
|
164
236
|
[self recognizeImage :[args objectAtIndex:0] :successCallback :errorCallback];
|
|
165
237
|
else if([action isEqualToString:@"setRfidSessionStatus"])
|
|
166
238
|
[self setRfidSessionStatus :[args objectAtIndex:0] :successCallback :errorCallback];
|
|
239
|
+
else if([action isEqualToString:@"providePACertificates"])
|
|
240
|
+
[self providePACertificates :[args objectAtIndex:0] :successCallback :errorCallback];
|
|
241
|
+
else if([action isEqualToString:@"provideTACertificates"])
|
|
242
|
+
[self provideTACertificates :[args objectAtIndex:0] :successCallback :errorCallback];
|
|
243
|
+
else if([action isEqualToString:@"provideTASignature"])
|
|
244
|
+
[self provideTASignature :[args objectAtIndex:0] :successCallback :errorCallback];
|
|
245
|
+
else if([action isEqualToString:@"parseCoreResults"])
|
|
246
|
+
[self parseCoreResults :[args objectAtIndex:0] :successCallback :errorCallback];
|
|
167
247
|
else if([action isEqualToString:@"initializeReaderWithDatabasePath"])
|
|
168
248
|
[self initializeReaderWithDatabasePath :[args objectAtIndex:0] :[args objectAtIndex:1] :successCallback :errorCallback];
|
|
249
|
+
else if([action isEqualToString:@"initializeReaderWithDatabase"])
|
|
250
|
+
[self initializeReaderWithDatabase :[args objectAtIndex:0] :[args objectAtIndex:1] :successCallback :errorCallback];
|
|
169
251
|
else if([action isEqualToString:@"recognizeImageFrame"])
|
|
170
252
|
[self recognizeImageFrame :[args objectAtIndex:0] :[args objectAtIndex:1] :successCallback :errorCallback];
|
|
171
253
|
else if([action isEqualToString:@"recognizeImageWithOpts"])
|
|
@@ -182,6 +264,12 @@ typedef void (^Callback)(NSString* response);
|
|
|
182
264
|
[self result:[NSString stringWithFormat:@"%@/%@", @"method not implemented: ", action] :errorCallback];
|
|
183
265
|
}
|
|
184
266
|
|
|
267
|
+
- (void) initializeReaderAutomatically:(Callback)successCallback :(Callback)errorCallback{
|
|
268
|
+
NSString *dataPath = [[NSBundle mainBundle] pathForResource:@"regula.license" ofType:nil];
|
|
269
|
+
NSData *licenseData = [NSData dataWithContentsOfFile:dataPath];
|
|
270
|
+
[RGLDocReader.shared initializeReaderWithConfig:[RGLConfig configWithLicenseData:licenseData] completion:[self getInitCompletion :successCallback :errorCallback]];
|
|
271
|
+
}
|
|
272
|
+
|
|
185
273
|
- (void) resetConfiguration:(Callback)successCallback :(Callback)errorCallback{
|
|
186
274
|
[self result:@"resetConfiguration() is an android-only method" :errorCallback];
|
|
187
275
|
}
|
|
@@ -218,8 +306,16 @@ typedef void (^Callback)(NSString* response);
|
|
|
218
306
|
[self result:@"getLicenseMessage() is an android-only method" :successCallback];
|
|
219
307
|
}
|
|
220
308
|
|
|
309
|
+
- (void) initializeReaderWithDatabase:(NSString*)licenseString :(NSString*)databaseString :(Callback)successCallback :(Callback)errorCallback{
|
|
310
|
+
[self result:@"initializeReaderWithDatabase() is an android-only method" :successCallback];
|
|
311
|
+
}
|
|
312
|
+
|
|
221
313
|
- (void) initializeReader:(NSString*)licenseString :(Callback)successCallback :(Callback)errorCallback{
|
|
222
|
-
[RGLDocReader.shared
|
|
314
|
+
[RGLDocReader.shared initializeReaderWithConfig:[RGLConfig configWithLicenseData:[[NSData alloc] initWithBase64EncodedString:licenseString options:0]] completion:[self getInitCompletion :successCallback :errorCallback]];
|
|
315
|
+
}
|
|
316
|
+
|
|
317
|
+
- (void) parseCoreResults:(NSString*)json :(Callback)successCallback :(Callback)errorCallback{
|
|
318
|
+
[self result:[RGLWJSONConstructor dictToString:[RGLWJSONConstructor generateRGLDocumentReaderResults:[RGLDocumentReaderResults initWithRawString: json]]] :successCallback];
|
|
223
319
|
}
|
|
224
320
|
|
|
225
321
|
- (void) startRFIDReader:(Callback)successCallback :(Callback)errorCallback{
|
|
@@ -229,7 +325,7 @@ typedef void (^Callback)(NSString* response);
|
|
|
229
325
|
}
|
|
230
326
|
|
|
231
327
|
- (void) initializeReaderWithDatabasePath:(NSString*)licenseString :(NSString*)databasePath :(Callback)successCallback :(Callback)errorCallback{
|
|
232
|
-
[RGLDocReader.shared
|
|
328
|
+
[RGLDocReader.shared initializeReaderWithConfig:[RGLConfig configWithLicenseData:[[NSData alloc] initWithBase64EncodedString:licenseString options:0] licenseUpdateCheck:true databasePath:databasePath] completion:[self getInitCompletion :successCallback :errorCallback]];
|
|
233
329
|
}
|
|
234
330
|
|
|
235
331
|
- (void) prepareDatabase:(NSString*)dbID :(Callback)successCallback :(Callback)errorCallback{
|
|
@@ -319,7 +415,7 @@ typedef void (^Callback)(NSString* response);
|
|
|
319
415
|
- (void) addPKDCertificates:(NSArray*)input :(Callback)successCallback :(Callback)errorCallback{
|
|
320
416
|
NSMutableArray *certificates = [[NSMutableArray alloc] init];
|
|
321
417
|
for(NSDictionary* certificateJSON in input)
|
|
322
|
-
[certificates addObject:[
|
|
418
|
+
[certificates addObject:[RGLWJSONConstructor RGLPKDCertificateFromJson:certificateJSON]];
|
|
323
419
|
[RGLDocReader.shared addPKDCertificates:certificates];
|
|
324
420
|
[self result:@"" :successCallback];
|
|
325
421
|
}
|
|
@@ -330,7 +426,7 @@ typedef void (^Callback)(NSString* response);
|
|
|
330
426
|
}
|
|
331
427
|
|
|
332
428
|
- (void) selectedScenario:(Callback)successCallback :(Callback)errorCallback{
|
|
333
|
-
[self result:[
|
|
429
|
+
[self result:[RGLWJSONConstructor dictToString:[RGLWJSONConstructor generateRGLScenario:RGLDocReader.shared.selectedScenario]] :successCallback];
|
|
334
430
|
}
|
|
335
431
|
|
|
336
432
|
- (void) stopScanner:(Callback)successCallback :(Callback)errorCallback{
|
|
@@ -452,7 +548,7 @@ typedef void (^Callback)(NSString* response);
|
|
|
452
548
|
BOOL success = false;
|
|
453
549
|
for(RGLScenario *scenario in RGLDocReader.shared.availableScenarios)
|
|
454
550
|
if([scenario.identifier isEqualToString:scenarioID]){
|
|
455
|
-
[self result:[
|
|
551
|
+
[self result:[RGLWJSONConstructor dictToString:[RGLWJSONConstructor generateRGLScenario:scenario]] :successCallback];
|
|
456
552
|
success = true;
|
|
457
553
|
break;
|
|
458
554
|
}
|
|
@@ -460,18 +556,73 @@ typedef void (^Callback)(NSString* response);
|
|
|
460
556
|
[self result:@"Scenario unavailable" :errorCallback];
|
|
461
557
|
}
|
|
462
558
|
|
|
559
|
+
- (void) providePACertificates:(NSArray*)input :(Callback)successCallback :(Callback)errorCallback{
|
|
560
|
+
if(paCertificateCompletion == nil){
|
|
561
|
+
[self result:@"paCertificateCompletion is nil" :errorCallback];
|
|
562
|
+
return;
|
|
563
|
+
}
|
|
564
|
+
NSMutableArray *certificates = [[NSMutableArray alloc] init];
|
|
565
|
+
for(NSDictionary* certificateJSON in input)
|
|
566
|
+
[certificates addObject:[RGLWJSONConstructor RGLPKDCertificateFromJson:certificateJSON]];
|
|
567
|
+
paCertificateCompletion(certificates);
|
|
568
|
+
[self result:@"" :successCallback];
|
|
569
|
+
}
|
|
570
|
+
|
|
571
|
+
- (void) provideTACertificates:(NSArray*)input :(Callback)successCallback :(Callback)errorCallback{
|
|
572
|
+
if(taCertificateCompletion == nil){
|
|
573
|
+
[self result:@"taCertificateCompletion is nil" :errorCallback];
|
|
574
|
+
return;
|
|
575
|
+
}
|
|
576
|
+
NSMutableArray *certificates = [[NSMutableArray alloc] init];
|
|
577
|
+
for(NSDictionary* certificateJSON in input)
|
|
578
|
+
[certificates addObject:[RGLWJSONConstructor RGLPKDCertificateFromJson:certificateJSON]];
|
|
579
|
+
taCertificateCompletion(certificates);
|
|
580
|
+
[self result:@"" :successCallback];
|
|
581
|
+
}
|
|
582
|
+
|
|
583
|
+
- (void) provideTASignature:(NSString*)input :(Callback)successCallback :(Callback)errorCallback{
|
|
584
|
+
if(taSignatureCompletion == nil){
|
|
585
|
+
[self result:@"taSignatureCompletion is nil" :errorCallback];
|
|
586
|
+
return;
|
|
587
|
+
}
|
|
588
|
+
taSignatureCompletion([[NSData alloc] initWithBase64EncodedString:input options:0]);
|
|
589
|
+
[self result:@"" :successCallback];
|
|
590
|
+
}
|
|
591
|
+
|
|
592
|
+
- (void) setRfidDelegate:(NSNumber*)input :(Callback)successCallback :(Callback)errorCallback{
|
|
593
|
+
switch([input integerValue]){
|
|
594
|
+
case 0:
|
|
595
|
+
[RGLDocReader shared].rfidDelegate = nil;
|
|
596
|
+
break;
|
|
597
|
+
case 1:
|
|
598
|
+
if(rfidDelegateNoPA == nil)
|
|
599
|
+
rfidDelegateNoPA = [RFIDDelegateNoPA new];
|
|
600
|
+
[RGLDocReader shared].rfidDelegate = rfidDelegateNoPA;
|
|
601
|
+
break;
|
|
602
|
+
case 2:
|
|
603
|
+
[RGLDocReader shared].rfidDelegate = self;
|
|
604
|
+
break;
|
|
605
|
+
default:
|
|
606
|
+
[self result:@"wrong input" :errorCallback];
|
|
607
|
+
return;
|
|
608
|
+
}
|
|
609
|
+
|
|
610
|
+
[self result:@"" :successCallback];
|
|
611
|
+
}
|
|
612
|
+
|
|
463
613
|
- (void) getAvailableScenarios:(Callback)successCallback :(Callback)errorCallback{
|
|
464
614
|
NSMutableArray *availableScenarios = [[NSMutableArray alloc] init];
|
|
465
615
|
for(RGLScenario *scenario in RGLDocReader.shared.availableScenarios)
|
|
466
|
-
[availableScenarios addObject:[
|
|
616
|
+
[availableScenarios addObject:[RGLWJSONConstructor dictToString:[RGLWJSONConstructor generateRGLScenario:scenario]]];
|
|
467
617
|
[self result:[[NSString alloc] initWithData:[NSJSONSerialization dataWithJSONObject:availableScenarios options:NSJSONWritingPrettyPrinted error:nil] encoding:NSUTF8StringEncoding] :successCallback];
|
|
468
618
|
}
|
|
469
619
|
|
|
470
620
|
-(RGLDocumentReaderInitializationCompletion)getInitCompletion:(Callback)successCallback :(Callback)errorCallback{
|
|
471
621
|
return ^(BOOL successful, NSError * _Nullable error ) {
|
|
472
|
-
if (successful)
|
|
622
|
+
if (successful){
|
|
623
|
+
[RGLDocReader shared].functionality.recordScanningProcessDelegate = self;
|
|
473
624
|
[self result:@"init complete" :successCallback];
|
|
474
|
-
else
|
|
625
|
+
}else
|
|
475
626
|
[self result:[NSString stringWithFormat:@"%@/%@", @"init failed: ", error.description] :errorCallback];
|
|
476
627
|
};
|
|
477
628
|
}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
#ifndef RGLWJSONConstructor_h
|
|
2
|
+
#define RGLWJSONConstructor_h
|
|
3
|
+
|
|
4
|
+
#import <DocumentReader/DocumentReader.h>
|
|
5
|
+
@import CoreGraphics;
|
|
6
|
+
@import UIKit;
|
|
7
|
+
|
|
8
|
+
@interface RGLWJSONConstructor : NSObject
|
|
9
|
+
+(NSString* _Nonnull)dictToString:(NSMutableDictionary* _Nonnull)input;
|
|
10
|
+
+(NSMutableDictionary* _Nonnull)generateNSDictionary:(NSDictionary<NSNumber*, NSNumber*>* _Nullable)input;
|
|
11
|
+
+(RGLPKDCertificate* _Nullable)RGLPKDCertificateFromJson:(NSDictionary* _Nullable) dict;
|
|
12
|
+
+(NSInteger)generateDocReaderAction:(RGLDocReaderAction)action;
|
|
13
|
+
+(NSInteger)generateRFIDCompleteAction:(RGLRFIDCompleteAction)action;
|
|
14
|
+
+(NSInteger)generateRFIDNotificationAction:(RGLRFIDNotificationAction)action;
|
|
15
|
+
+(NSMutableDictionary* _Nullable)generateCompletion:(NSInteger)action :(RGLDocumentReaderResults*_Nullable)results :(NSError*_Nullable)error :(RGLRFIDNotify*_Nullable)notify;
|
|
16
|
+
+(NSMutableDictionary* _Nonnull)generateVideoEncoderCompletion:(NSURL* _Nullable)input :(NSError* _Nullable)error;
|
|
17
|
+
+(NSString*_Nonnull)generateNSData:(NSData *_Nullable)input;
|
|
18
|
+
+(NSMutableDictionary* _Nonnull)generatePACertificateCompletion:(NSData *_Nullable)serialNumber :(RGLPAResourcesIssuer *_Nullable)issuer;
|
|
19
|
+
+(NSMutableDictionary* _Nonnull)generateRGLDocumentReaderResults:(RGLDocumentReaderResults* _Nullable)input;
|
|
20
|
+
+(NSMutableDictionary* _Nonnull)generateRGLPosition:(RGLPosition* _Nullable)input;
|
|
21
|
+
+(NSMutableDictionary* _Nonnull)generateRGLDocumentReaderBarcodeResult:(RGLDocumentReaderBarcodeResult* _Nullable)input;
|
|
22
|
+
+(NSMutableDictionary* _Nonnull)generateRGLDocumentReaderBarcodeField:(RGLDocumentReaderBarcodeField* _Nullable)input;
|
|
23
|
+
+(NSMutableDictionary* _Nonnull)generateRGLPDF417Info:(RGLPDF417Info* _Nullable)input;
|
|
24
|
+
+(NSMutableDictionary* _Nonnull)generateRGLDocumentReaderAuthenticityResult:(RGLDocumentReaderAuthenticityResult* _Nullable)input;
|
|
25
|
+
+(NSMutableDictionary* _Nonnull)generateRGLAuthenticityCheck:(RGLAuthenticityCheck* _Nullable)input;
|
|
26
|
+
+(NSMutableDictionary* _Nonnull)generateRGLAuthenticityElement:(RGLAuthenticityElement* _Nullable)input;
|
|
27
|
+
+(NSMutableDictionary* _Nonnull)generateRGLImageQualityGroup:(RGLImageQualityGroup* _Nullable)input;
|
|
28
|
+
+(NSMutableDictionary* _Nonnull)generateRGLImageQuality:(RGLImageQuality* _Nullable)input;
|
|
29
|
+
+(NSMutableDictionary* _Nonnull)generateRGLDocumentReaderGraphicResult:(RGLDocumentReaderGraphicResult* _Nullable)input;
|
|
30
|
+
+(NSMutableDictionary* _Nonnull)generateRGLDocumentReaderGraphicField:(RGLDocumentReaderGraphicField* _Nullable)input;
|
|
31
|
+
+(NSMutableDictionary* _Nonnull)generateRGLDocumentReaderTextResult:(RGLDocumentReaderTextResult* _Nullable)input;
|
|
32
|
+
+(NSMutableDictionary* _Nonnull)generateRGLDocumentReaderTextField:(RGLDocumentReaderTextField* _Nullable)input;
|
|
33
|
+
+(NSMutableDictionary* _Nonnull)generateRGLDocumentReaderValue:(RGLDocumentReaderValue* _Nullable)input;
|
|
34
|
+
+(NSMutableDictionary* _Nonnull)generateRGLDocumentReaderDocumentType:(RGLDocumentReaderDocumentType* _Nullable)input;
|
|
35
|
+
+(NSMutableDictionary* _Nonnull)generateRGLScenario:(RGLScenario* _Nullable)input;
|
|
36
|
+
+(NSMutableDictionary* _Nonnull)generateRGLRFIDSessionData:(RGLRFIDSessionData* _Nullable)input;
|
|
37
|
+
+(NSMutableDictionary* _Nonnull)generateRGLCardProperties:(RGLCardProperties* _Nullable)input;
|
|
38
|
+
+(NSMutableDictionary* _Nonnull)generateRGLRFIDSessionDataStatus:(RGLRFIDSessionDataStatus* _Nullable)input;
|
|
39
|
+
+(NSMutableDictionary* _Nonnull)generateRGLAccessControlProcedureType:(RGLAccessControlProcedureType* _Nullable)input;
|
|
40
|
+
+(NSMutableDictionary* _Nonnull)generateRGLApplication:(RGLApplication* _Nullable)input;
|
|
41
|
+
+(NSMutableDictionary* _Nonnull)generateRGLFile:(RGLFile* _Nullable)input;
|
|
42
|
+
+(NSMutableDictionary* _Nonnull)generateRGLFileData:(RGLFileData* _Nullable)input;
|
|
43
|
+
+(NSMutableDictionary* _Nonnull)generateRGLSecurityObjectCertificates:(RGLSecurityObjectCertificates* _Nullable)input;
|
|
44
|
+
+(NSMutableDictionary* _Nonnull)generateRGLCertificateData:(RGLCertificateData* _Nullable)input;
|
|
45
|
+
+(NSMutableDictionary* _Nonnull)generateRGLSecurityObject:(RGLSecurityObject* _Nullable)input;
|
|
46
|
+
+(NSMutableDictionary* _Nonnull)generateRGLSignerInfo:(RGLSignerInfo* _Nullable)input;
|
|
47
|
+
+(NSMutableDictionary* _Nonnull)generateRGLAuthority:(RGLAuthority* _Nullable)input;
|
|
48
|
+
+(NSMutableDictionary* _Nonnull)generateRGLRFIDValue:(RGLRFIDValue* _Nullable)input;
|
|
49
|
+
+(NSMutableDictionary* _Nonnull)generateRGLAttribute:(RGLAttribute* _Nullable)input;
|
|
50
|
+
+(NSMutableDictionary* _Nonnull)generateRGLExtension:(RGLExtension* _Nullable)input;
|
|
51
|
+
+(NSMutableDictionary* _Nonnull)generateRGLCertificateChain:(RGLCertificateChain* _Nullable)input;
|
|
52
|
+
+(NSMutableDictionary* _Nonnull)generateRGLValidity:(RGLValidity* _Nullable)input;
|
|
53
|
+
+(NSMutableDictionary* _Nonnull)generateNSError:(NSError* _Nullable)input;
|
|
54
|
+
+(NSMutableDictionary* _Nonnull)generateRGLPAResourcesIssuer:(RGLPAResourcesIssuer* _Nullable)input;
|
|
55
|
+
+(NSMutableDictionary* _Nonnull)generateRGLPAAttribute:(RGLPAAttribute* _Nullable)input;
|
|
56
|
+
+(NSMutableDictionary* _Nonnull)generateRGLTAChallenge:(RGLTAChallenge* _Nullable)input;
|
|
57
|
+
+(NSMutableDictionary* _Nonnull)generateRGLRFIDNotify:(RGLRFIDNotify* _Nullable)input;
|
|
58
|
+
|
|
59
|
+
@end
|
|
60
|
+
#endif
|