anyline-ocr-react-native-module 53.2.0 → 54.0.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.
Files changed (35) hide show
  1. package/android/.gradle/7.6/checksums/checksums.lock +0 -0
  2. package/android/.gradle/7.6/checksums/md5-checksums.bin +0 -0
  3. package/android/.gradle/7.6/checksums/sha1-checksums.bin +0 -0
  4. package/android/.gradle/7.6/dependencies-accessors/dependencies-accessors.lock +0 -0
  5. package/android/.gradle/7.6/dependencies-accessors/gc.properties +0 -0
  6. package/android/.gradle/7.6/executionHistory/executionHistory.lock +0 -0
  7. package/android/.gradle/7.6/fileChanges/last-build.bin +0 -0
  8. package/android/.gradle/7.6/fileHashes/fileHashes.bin +0 -0
  9. package/android/.gradle/7.6/fileHashes/fileHashes.lock +0 -0
  10. package/android/.gradle/7.6/gc.properties +0 -0
  11. package/android/.gradle/buildOutputCleanup/buildOutputCleanup.lock +0 -0
  12. package/android/.gradle/buildOutputCleanup/cache.properties +2 -0
  13. package/android/.gradle/buildOutputCleanup/outputFiles.bin +0 -0
  14. package/android/.gradle/config.properties +2 -0
  15. package/android/.gradle/vcs-1/gc.properties +0 -0
  16. package/android/.idea/compiler.xml +6 -0
  17. package/android/.idea/gradle.xml +17 -0
  18. package/android/.idea/migrations.xml +10 -0
  19. package/android/.idea/misc.xml +10 -0
  20. package/android/.idea/other.xml +296 -0
  21. package/android/.idea/vcs.xml +6 -0
  22. package/android/build.gradle +1 -1
  23. package/android/local.properties +8 -0
  24. package/android/src/main/java/com/anyline/reactnative/AnylineSDKPlugin.java +16 -2
  25. package/android/src/main/java/com/anyline/reactnative/ScanActivity.java +15 -2
  26. package/ios/ALJsonUIConfiguration.m +3 -0
  27. package/ios/ALPluginHelper.h +1 -3
  28. package/ios/ALPluginHelper.m +27 -59
  29. package/ios/ALPluginScanViewController.h +1 -0
  30. package/ios/ALPluginScanViewController.m +23 -1
  31. package/ios/AnylineReact.podspec +3 -3
  32. package/ios/AnylineSDKPlugin.m +31 -42
  33. package/package.json +8 -8
  34. package/ios/ALNFCScanViewController.h +0 -14
  35. package/ios/ALNFCScanViewController.m +0 -452
@@ -1,5 +1,5 @@
1
1
  #import "ALPluginHelper.h"
2
- #import "ALNFCScanViewController.h" // because NFC-specific code is there
2
+ #import "ALPluginScanViewController.h"
3
3
  #import <Anyline/Anyline.h>
4
4
  #import <objc/runtime.h>
5
5
 
@@ -10,59 +10,34 @@ NSErrorDomain const ALDefaultDomain = @"ALDefaultErrorDomain";
10
10
 
11
11
  #pragma mark - Launch Anyline
12
12
 
13
- + (void)startScan:(NSDictionary *)config finished:(ALPluginCallback)callback {
14
-
13
+ + (void)startScan:(NSDictionary *)config initializationParamsStr:(NSString *)initializationParamsStr finished:(ALPluginCallback)callback {
14
+
15
15
  NSDictionary *pluginConf = config;
16
-
16
+
17
17
  NSString *licenseKey = [config objectForKey:@"licenseKey"];
18
-
18
+
19
19
  [[UIApplication sharedApplication] keyWindow].rootViewController.modalPresentationStyle = UIModalPresentationFullScreen;
20
-
20
+
21
21
  NSDictionary *optionsDict = [config objectForKey:@"options"];
22
22
  ALJSONUIConfiguration *jsonUIConf = [[ALJSONUIConfiguration alloc] initWithDictionary:optionsDict];
23
-
24
- BOOL isNFC = [optionsDict[@"enableNFCWithMRZ"] boolValue];
25
-
26
- if (isNFC) {
27
- if (@available(iOS 13.0, *)) {
28
-
29
- if (![ALNFCDetector readingAvailable]) {
30
- callback(nil, [NSError errorWithDomain:@"ALReactDomain" code:100 userInfo:@{NSLocalizedDescriptionKey: @"NFC passport reading is not supported on this device or app."}]);
31
-
32
- return;
33
- }
34
-
35
- ALNFCScanViewController *nfcScanViewController = [[ALNFCScanViewController alloc] initWithLicensekey:licenseKey
36
- configuration:pluginConf
37
- uiConfig:jsonUIConf
38
- finished:callback];
39
- if (nfcScanViewController != nil) {
40
- [nfcScanViewController setModalPresentationStyle:UIModalPresentationFullScreen];
41
- [[[UIApplication sharedApplication] keyWindow].rootViewController presentViewController:nfcScanViewController
42
- animated:YES
43
- completion:nil];
44
- }
45
- } else {
46
- callback(nil,[NSError errorWithDomain:@"ALReactDomain" code:100 userInfo:@{NSLocalizedDescriptionKey: @"NFC passport reading is only supported on iOS 13 and later."}]);
47
- return;
48
- }
49
- } else {
50
- ALPluginScanViewController *pluginScanViewController = [[ALPluginScanViewController alloc] initWithLicensekey:licenseKey
51
- configuration:pluginConf
52
- uiConfiguration:jsonUIConf
53
- finished:callback];
54
-
55
- if ([pluginConf valueForKey:@"quality"]){
56
- pluginScanViewController.quality = [[pluginConf valueForKey:@"quality"] integerValue];
57
- }
58
-
59
- if (pluginScanViewController) {
60
- [pluginScanViewController setModalPresentationStyle:UIModalPresentationFullScreen];
61
- [[[UIApplication sharedApplication] keyWindow].rootViewController presentViewController:pluginScanViewController
62
- animated:YES
63
- completion:nil];
64
- }
23
+
24
+ ALPluginScanViewController *pluginScanViewController = [[ALPluginScanViewController alloc] initWithLicensekey:licenseKey
25
+ configuration:pluginConf
26
+ uiConfiguration:jsonUIConf
27
+ initializationParamsStr:initializationParamsStr
28
+ finished:callback];
29
+
30
+ if ([pluginConf valueForKey:@"quality"]){
31
+ pluginScanViewController.quality = [[pluginConf valueForKey:@"quality"] integerValue];
65
32
  }
33
+
34
+ if (pluginScanViewController) {
35
+ [pluginScanViewController setModalPresentationStyle:UIModalPresentationFullScreen];
36
+ [[[UIApplication sharedApplication] keyWindow].rootViewController presentViewController:pluginScanViewController
37
+ animated:YES
38
+ completion:nil];
39
+ }
40
+
66
41
  }
67
42
 
68
43
  #pragma mark - Filesystem handling
@@ -305,16 +280,6 @@ NSErrorDomain const ALDefaultDomain = @"ALDefaultErrorDomain";
305
280
  }
306
281
 
307
282
  // MARK: - Date Utils
308
-
309
- + (NSDate *)formattedStringToDate:(NSString *)formattedStr {
310
- // From this: "Sun Apr 12 00:00:00 UTC 1977" to this: "04/12/1977"
311
- NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
312
- [dateFormatter setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"GMT+0:00"]];
313
- dateFormatter.dateFormat = @"E MMM d HH:mm:ss zzz yyyy";
314
- NSDate *d = [dateFormatter dateFromString:formattedStr];
315
- return d;
316
- }
317
-
318
283
  + (NSString *)stringForDate:(NSDate *)date {
319
284
  NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
320
285
  [dateFormatter setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"GMT+0:00"]];
@@ -329,8 +294,11 @@ NSErrorDomain const ALDefaultDomain = @"ALDefaultErrorDomain";
329
294
  + (NSString * _Nullable)confPropKeyWithScanModeForPluginConfig:(ALPluginConfig *)pluginConfig {
330
295
  unsigned int count;
331
296
  Ivar *ivars = class_copyIvarList(ALPluginConfig.class, &count);
297
+ if (!ivars) {
298
+ return nil;
299
+ }
332
300
  for (int i = 0; i < count; i++) {
333
- const char *ivarName = ivar_getName(((Ivar * _Nonnull)ivars)[i]);
301
+ const char *ivarName = ivar_getName(ivars[i]);
334
302
  NSString *key = [NSString stringWithCString:(const char * _Nonnull)ivarName encoding:NSUTF8StringEncoding];
335
303
  key = [key stringByTrimmingCharactersInSet:NSCharacterSet.punctuationCharacterSet];
336
304
 
@@ -10,6 +10,7 @@ NS_ASSUME_NONNULL_BEGIN
10
10
  - (instancetype)initWithLicensekey:(NSString *)licenseKey
11
11
  configuration:(NSDictionary *)config
12
12
  uiConfiguration:(ALJSONUIConfiguration *)JSONUIConfig
13
+ initializationParamsStr:(NSString *)initializationParamsStr
13
14
  finished:(ALPluginCallback)callback;
14
15
 
15
16
  @end
@@ -37,6 +37,8 @@
37
37
 
38
38
  @property (nonatomic, strong) NSError *scanViewError;
39
39
 
40
+ @property (nonatomic, nullable) NSString *initializationParamsStr;
41
+
40
42
  @end
41
43
 
42
44
 
@@ -49,6 +51,7 @@
49
51
  - (instancetype)initWithLicensekey:(NSString *)licenseKey
50
52
  configuration:(NSDictionary *)config
51
53
  uiConfiguration:(ALJSONUIConfiguration *)JSONUIConfig
54
+ initializationParamsStr:(NSString *)initializationParamsStr
52
55
  finished:(ALPluginCallback)callback {
53
56
 
54
57
  if (self = [super init]) {
@@ -56,7 +59,8 @@
56
59
  _callback = callback;
57
60
  _config = config;
58
61
  _uiConfig = JSONUIConfig;
59
-
62
+ _initializationParamsStr = initializationParamsStr;
63
+
60
64
  self.quality = 100;
61
65
  }
62
66
  return self;
@@ -79,7 +83,18 @@
79
83
  }
80
84
  }
81
85
 
86
+ ALScanViewInitializationParameters *initializationParams = nil;
87
+ if(![self isStringEmpty:_initializationParamsStr]){
88
+ initializationParams = [ALScanViewInitializationParameters withJSONString: _initializationParamsStr error:&error];
89
+ }
90
+
91
+ if ([self showErrorAlertIfNeeded:error]) {
92
+ self.scanViewError = error;
93
+ return;
94
+ }
95
+
82
96
  self.scanView = [ALScanViewFactory withJSONDictionary:self.config
97
+ initializationParams:initializationParams
83
98
  delegate:self
84
99
  error:&error];
85
100
 
@@ -434,6 +449,13 @@
434
449
  return YES;
435
450
  }
436
451
 
452
+ -(BOOL)isStringEmpty:(NSString *)str {
453
+ if(str == nil || [str isKindOfClass:[NSNull class]] || str.length==0) {
454
+ return YES;
455
+ }
456
+ return NO;
457
+ }
458
+
437
459
  // MARK: - Miscellaneous
438
460
 
439
461
  - (BOOL)showErrorAlertIfNeeded:(NSError *)error {
@@ -7,7 +7,7 @@ Pod::Spec.new do |s|
7
7
  s.version = package["version"]
8
8
  s.summary = "anyline-ocr-react-native-module"
9
9
  s.authors = {
10
- 'Aldrich Co' => 'aldrich.co@anyline.com'
10
+ 'Anyline GmbH' => 'capture-team@anyline.com'
11
11
  }
12
12
 
13
13
  s.homepage = "https://github.com/Anyline/anyline-ocr-react-native-module"
@@ -18,7 +18,7 @@ Pod::Spec.new do |s|
18
18
  s.source = { :git => "https://github.com/Anyline/anyline-ocr-react-native-module.git", :tag => "#{s.version}" }
19
19
 
20
20
  s.source_files = "*.{h,m}"
21
- s.dependency "Anyline", "53.2.0"
21
+ s.dependency "Anyline", "54.0.0"
22
22
  s.dependency "React"
23
23
 
24
- end
24
+ end
@@ -4,8 +4,6 @@
4
4
  #import "ALPluginScanViewController.h"
5
5
  #import "ALPluginHelper.h"
6
6
 
7
- #import "ALNFCScanViewController.h"
8
-
9
7
  ALWrapperConfig *wrapperConfig = nil;
10
8
 
11
9
  @interface AnylineSDKPlugin()
@@ -27,6 +25,8 @@ ALWrapperConfig *wrapperConfig = nil;
27
25
 
28
26
  @property (nonatomic, copy) NSString *returnMethod;
29
27
 
28
+ @property (nonatomic, copy) NSString *initializationParamsStr;
29
+
30
30
  @end
31
31
 
32
32
 
@@ -46,15 +46,19 @@ RCT_EXPORT_METHOD(setupScanViewWithConfigJson:(NSString *)config scanMode:(NSStr
46
46
  self.onErrorCallback = onError;
47
47
  self.returnMethod = @"callback";
48
48
  self.config = config;
49
- [self initView:scanMode];
49
+ [self initView:scanMode initializationParamsStr:nil];
50
50
  }
51
51
 
52
52
  RCT_EXPORT_METHOD(setup:(NSString *)config scanMode:(NSString *)scanMode onResultCallback:(RCTResponseSenderBlock)onResult onErrorCallback:(RCTResponseSenderBlock)onError) {
53
+ [self setupWithInitializationParameters:nil config:config scanMode:scanMode onResultCallback:onResult onErrorCallback:onError];
54
+ }
55
+
56
+ RCT_EXPORT_METHOD(setupWithInitializationParameters:(NSString * _Nullable)initializationParametersStr config:(NSString *)config scanMode:(NSString *)scanMode onResultCallback:(RCTResponseSenderBlock)onResult onErrorCallback:(RCTResponseSenderBlock)onError) {
53
57
  self.onResultCallback = onResult;
54
58
  self.onErrorCallback = onError;
55
59
  self.returnMethod = @"callback";
56
60
  self.config = config;
57
- [self initView:scanMode];
61
+ [self initView:scanMode initializationParamsStr:initializationParametersStr];
58
62
  }
59
63
 
60
64
  RCT_EXPORT_METHOD(setupAnylineSDK:(NSString *)licenseKey
@@ -92,11 +96,16 @@ RCT_EXPORT_METHOD(setupAnylineSDKWithCacheConfig:(NSString *)licenseKey
92
96
  }
93
97
 
94
98
  RCT_EXPORT_METHOD(setupPromise:(NSString *)config scanMode:(NSString *)scanMode resolver:(RCTPromiseResolveBlock)resolve rejecter:(RCTPromiseRejectBlock)reject) {
99
+ [self setupPromiseWithInitializationParameters:nil config:config scanMode:scanMode resolver:resolve rejecter:reject];
100
+ }
101
+
102
+ RCT_EXPORT_METHOD(setupPromiseWithInitializationParameters:(NSString * _Nullable)initializationParametersStr config:(NSString *)configStr scanMode:(NSString *)scanMode resolver:(RCTPromiseResolveBlock)resolve rejecter:(RCTPromiseRejectBlock)reject) {
95
103
  _resolveBlock = resolve;
96
104
  _rejectBlock = reject;
97
105
  self.returnMethod = @"promise";
98
- self.config = config;
99
- [self initView:scanMode];
106
+ self.config = configStr;
107
+ self.initializationParamsStr = initializationParametersStr;
108
+ [self initView:scanMode initializationParamsStr:self.initializationParamsStr];
100
109
  }
101
110
 
102
111
  RCT_EXPORT_METHOD(getSDKVersion:(RCTPromiseResolveBlock)resolve rejecter:(RCTPromiseRejectBlock)reject) {
@@ -134,7 +143,7 @@ RCT_EXPORT_METHOD(exportCachedEvents:(RCTPromiseResolveBlock)resolve rejecter:(R
134
143
  }
135
144
 
136
145
 
137
- - (void)initView:(NSString *)scanMode {
146
+ - (void)initView:(NSString *)scanMode initializationParamsStr:(NSString * _Nullable)initializationParamsStr {
138
147
  NSData *data = [self.config dataUsingEncoding:NSUTF8StringEncoding];
139
148
  if (!data) {
140
149
  [NSException raise:@"Config could not be loaded from disk" format:@"Config could not be loaded from disk"];
@@ -165,46 +174,26 @@ RCT_EXPORT_METHOD(exportCachedEvents:(RCTPromiseResolveBlock)resolve rejecter:(R
165
174
  [[UIApplication sharedApplication] keyWindow].rootViewController.modalPresentationStyle = UIModalPresentationFullScreen;
166
175
 
167
176
  if ([[scanMode uppercaseString] isEqualToString:[@"scan" uppercaseString]]) {
168
- BOOL isNFC = [optionsDictionary objectForKey:@"enableNFCWithMRZ"];
169
- if (isNFC) {
170
- if (@available(iOS 13.0, *)) {
171
- if ([ALNFCDetector readingAvailable]) {
172
- ALNFCScanViewController *nfcScanViewController = [[ALNFCScanViewController alloc] initWithLicensekey:self.appKey
173
- configuration:dictionary
174
- uiConfig:self.jsonUIConf
175
- finished:^(NSDictionary * _Nullable callbackObj, NSError * _Nullable error) {
176
- [self returnCallback:callbackObj andError:error];
177
- }];
178
-
179
- if (nfcScanViewController != nil){
180
- [nfcScanViewController setModalPresentationStyle: UIModalPresentationFullScreen];
181
- [[[UIApplication sharedApplication] keyWindow].rootViewController presentViewController:nfcScanViewController animated:YES completion:nil];
182
- }
183
- } else {
184
- [self returnError:[NSError errorWithDomain:@"ALReactDomain" code:100 userInfo:@{NSLocalizedDescriptionKey: @"NFC passport reading is not supported on this device or app."}]];
185
- }
186
- } else {
187
- [self returnError:[NSError errorWithDomain:@"ALReactDomain" code:100 userInfo:@{NSLocalizedDescriptionKey: @"NFC passport reading is only supported on iOS 13 and later."}]];
188
-
189
- }
190
- } else {
191
- ALPluginScanViewController *pluginScanViewController =
192
- [[ALPluginScanViewController alloc] initWithLicensekey:self.appKey
193
- configuration:dictionary
194
- uiConfiguration:self.jsonUIConf finished:^(NSDictionary * _Nullable callbackObj, NSError * _Nullable error) {
195
- [self returnCallback:callbackObj andError:error];
196
- }];
197
-
198
- if (pluginScanViewController != nil){
199
- [pluginScanViewController setModalPresentationStyle: UIModalPresentationFullScreen];
200
- [[[UIApplication sharedApplication] keyWindow].rootViewController presentViewController:pluginScanViewController animated:YES completion:nil];
201
- }
177
+ ALPluginScanViewController *pluginScanViewController =
178
+ [[ALPluginScanViewController alloc] initWithLicensekey:self.appKey
179
+ configuration:dictionary
180
+ uiConfiguration:self.jsonUIConf
181
+ initializationParamsStr:initializationParamsStr
182
+ finished:^(NSDictionary * _Nullable callbackObj, NSError * _Nullable error) {
183
+ [self returnCallback:callbackObj andError:error];
184
+ }];
185
+
186
+ if (pluginScanViewController != nil){
187
+ [pluginScanViewController setModalPresentationStyle: UIModalPresentationFullScreen];
188
+ [[[UIApplication sharedApplication] keyWindow].rootViewController presentViewController:pluginScanViewController animated:YES completion:nil];
202
189
  }
203
190
  } else {
204
191
  ALPluginScanViewController *pluginScanViewController =
205
192
  [[ALPluginScanViewController alloc] initWithLicensekey:self.appKey
206
193
  configuration:dictionary
207
- uiConfiguration:self.jsonUIConf finished:^(NSDictionary * _Nullable callbackObj, NSError * _Nullable error) {
194
+ uiConfiguration:self.jsonUIConf
195
+ initializationParamsStr:initializationParamsStr
196
+ finished:^(NSDictionary * _Nullable callbackObj, NSError * _Nullable error) {
208
197
  [self returnCallback:callbackObj andError:error];
209
198
  }];
210
199
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
- "_from": "anyline-ocr-react-native-module@^53.2.0",
3
- "_id": "anyline-ocr-react-native-module@^53.2.0",
2
+ "_from": "anyline-ocr-react-native-module@^54.0.0",
3
+ "_id": "anyline-ocr-react-native-module@^54.0.0",
4
4
  "_inBundle": false,
5
5
  "_integrity": "sha512-BGi9zNkSsoxXywDBIqzgBRvKUBniQOJHDKBrozZubKthZNRBAj8Ry5tW0Me0yLXt/fauME//hbC0wsenfPJZqw==",
6
6
  "_location": "/anyline-ocr-react-native-module",
@@ -8,19 +8,19 @@
8
8
  "_requested": {
9
9
  "type": "range",
10
10
  "registry": true,
11
- "raw": "anyline-ocr-react-native-module@^53.2.0",
11
+ "raw": "anyline-ocr-react-native-module@^54.0.0",
12
12
  "name": "anyline-ocr-react-native-module",
13
13
  "escapedName": "anyline-ocr-react-native-module",
14
- "rawSpec": "^53.2.0",
14
+ "rawSpec": "^54.0.0",
15
15
  "saveSpec": null,
16
- "fetchSpec": "^53.2.0"
16
+ "fetchSpec": "^54.0.0"
17
17
  },
18
18
  "_requiredBy": [
19
19
  "/"
20
20
  ],
21
- "_resolved": "https://registry.npmjs.org/anyline-ocr-react-native-module/-/anyline-ocr-react-native-module-53.2.0.tgz",
21
+ "_resolved": "https://registry.npmjs.org/anyline-ocr-react-native-module/-/anyline-ocr-react-native-module-54.0.0.tgz",
22
22
  "_shasum": "bacbcd260cc662244f59393ed81a6edba009b52c",
23
- "_spec": "anyline-ocr-react-native-module@^53.2.0",
23
+ "_spec": "anyline-ocr-react-native-module@^54.0.0",
24
24
  "_where": "/Users/amiransari/Projects/anyline-ocr-react-native-module1/example/RNExampleApp",
25
25
  "bugs": {
26
26
  "url": "https://github.com/Anyline/anyline-ocr-react-native-module/issues"
@@ -47,5 +47,5 @@
47
47
  "type": "git",
48
48
  "url": "git+https://github.com/Anyline/anyline-ocr-react-native-module.git"
49
49
  },
50
- "version": "53.2.0"
50
+ "version": "54.0.0"
51
51
  }
@@ -1,14 +0,0 @@
1
- #import "ALPluginScanViewController.h"
2
- #import "ALJSONUIConfiguration.h"
3
-
4
- NS_ASSUME_NONNULL_BEGIN
5
-
6
- @interface ALNFCScanViewController : UIViewController
7
-
8
- - (instancetype)initWithLicensekey:(NSString *)licensekey
9
- configuration:(NSDictionary *)anylineConfig
10
- uiConfig:(ALJSONUIConfiguration *)uiConfig
11
- finished:(ALPluginCallback)callback;
12
- @end
13
-
14
- NS_ASSUME_NONNULL_END