@smile_identity/react-native 10.0.0-beta01 → 10.0.0-beta02

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 (122) hide show
  1. package/android/gradle.properties +1 -1
  2. package/android/src/main/java/com/smileidentity/react/SmileIdModule.kt +59 -9
  3. package/android/src/main/java/com/smileidentity/react/SmileIdPackage.kt +4 -2
  4. package/android/src/main/java/com/smileidentity/react/utils/ReactUtils.kt +16 -10
  5. package/android/src/main/java/com/smileidentity/react/viewmanagers/SmileIDBiometricKYCViewManager.kt +38 -9
  6. package/android/src/main/java/com/smileidentity/react/viewmanagers/SmileIDConsentViewManager.kt +77 -0
  7. package/android/src/main/java/com/smileidentity/react/viewmanagers/SmileIDDocumentVerificationViewManager.kt +43 -9
  8. package/android/src/main/java/com/smileidentity/react/viewmanagers/SmileIDEnhancedDocumentVerificationViewManager.kt +75 -0
  9. package/android/src/main/java/com/smileidentity/react/viewmanagers/SmileIDSmartSelfieAuthenticationViewManager.kt +35 -9
  10. package/android/src/main/java/com/smileidentity/react/viewmanagers/SmileIDSmartSelfieEnrollmentViewManager.kt +35 -9
  11. package/android/src/main/java/com/smileidentity/react/views/SmileIDBiometricKYCView.kt +54 -0
  12. package/android/src/main/java/com/smileidentity/react/views/SmileIDConsentView.kt +60 -0
  13. package/android/src/main/java/com/smileidentity/react/views/SmileIDDocumentVerificationView.kt +69 -0
  14. package/android/src/main/java/com/smileidentity/react/views/SmileIDEnhancedDocumentVerificationView.kt +63 -0
  15. package/android/src/main/java/com/smileidentity/react/views/SmileIDSmartSelfieAuthenticationView.kt +50 -0
  16. package/android/src/main/java/com/smileidentity/react/views/SmileIDSmartSelfieEnrollmentView.kt +49 -0
  17. package/android/src/main/java/com/smileidentity/react/views/SmileIDView.kt +2 -27
  18. package/android/src/oldarch/SmileIdSpec.kt +4 -1
  19. package/ios/RNDelegates/SmileIDUIViewDelegate.swift +4 -0
  20. package/ios/RNDelegates/SmileIDViewDelegate.swift +5 -0
  21. package/ios/RNSmileID.mm +7 -0
  22. package/ios/RNSmileID.swift +147 -0
  23. package/ios/SmileId.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +8 -0
  24. package/ios/SmileId.xcodeproj/project.xcworkspace/xcuserdata/japhetndhlovu.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
  25. package/ios/SmileId.xcodeproj/xcuserdata/japhetndhlovu.xcuserdatad/xcschemes/xcschememanagement.plist +14 -0
  26. package/ios/Utils/SmileIDDictExt.swift +50 -0
  27. package/ios/Utils/SmileIDUtils.swift +10 -0
  28. package/ios/View/BaseSmileIDView.swift +35 -0
  29. package/ios/View/SmileIDBiometricKYCView.swift +44 -0
  30. package/ios/View/SmileIDConsentView.swift +35 -0
  31. package/ios/View/SmileIDDocumentVerificationView.swift +53 -0
  32. package/ios/View/SmileIDEnhancedDocumentVerificationView.swift +53 -0
  33. package/ios/View/SmileIDSmartSelfieAuthView.swift +39 -0
  34. package/ios/View/SmileIDSmartSelfieEnrollmentView.swift +39 -0
  35. package/ios/ViewManagers/SmileIDBaseViewManager.swift +17 -0
  36. package/ios/ViewManagers/SmileIDBiometricKYCViewManager.m +6 -0
  37. package/ios/ViewManagers/SmileIDBiometricKYCViewManager.swift +33 -0
  38. package/ios/ViewManagers/SmileIDConsentViewManager.m +6 -0
  39. package/ios/ViewManagers/SmileIDConsentViewManager.swift +47 -0
  40. package/ios/ViewManagers/SmileIDDocumentVerificationViewManager.m +6 -0
  41. package/ios/ViewManagers/SmileIDDocumentVerificationViewManager.swift +48 -0
  42. package/ios/ViewManagers/SmileIDEnhancedDocumentVerificationViewManager.m +6 -0
  43. package/ios/ViewManagers/SmileIDEnhancedDocumentVerificationViewManager.swift +48 -0
  44. package/ios/ViewManagers/SmileIDSmartSelfieAuthenticationViewManager.m +6 -0
  45. package/ios/ViewManagers/SmileIDSmartSelfieAuthenticationViewManager.swift +26 -0
  46. package/ios/ViewManagers/SmileIDSmartSelfieEnrollmentViewManager.m +6 -0
  47. package/ios/ViewManagers/SmileIDSmartSelfieEnrollmentViewManager.swift +26 -0
  48. package/ios/ViewModels/SmileIDProductModel.swift +29 -0
  49. package/ios/react-native-smile-id-Bridging-Header.h +8 -0
  50. package/lib/commonjs/NativeSmileId.js +1 -1
  51. package/lib/commonjs/NativeSmileId.js.map +1 -1
  52. package/lib/commonjs/SmileIDBiometricKYCView.js +40 -0
  53. package/lib/commonjs/SmileIDBiometricKYCView.js.map +1 -0
  54. package/lib/commonjs/SmileIDConsentView.js +40 -0
  55. package/lib/commonjs/SmileIDConsentView.js.map +1 -0
  56. package/lib/commonjs/SmileIDDocumentVerificationView.js +40 -0
  57. package/lib/commonjs/SmileIDDocumentVerificationView.js.map +1 -0
  58. package/lib/commonjs/SmileIDEnhancedDocumentVerificationView.js +40 -0
  59. package/lib/commonjs/SmileIDEnhancedDocumentVerificationView.js.map +1 -0
  60. package/lib/commonjs/SmileIDSmartSelfieAuthenticationView.js +40 -0
  61. package/lib/commonjs/SmileIDSmartSelfieAuthenticationView.js.map +1 -0
  62. package/lib/commonjs/SmileIDSmartSelfieEnrollmentView.js +40 -0
  63. package/lib/commonjs/SmileIDSmartSelfieEnrollmentView.js.map +1 -0
  64. package/lib/commonjs/index.js +98 -27
  65. package/lib/commonjs/index.js.map +1 -1
  66. package/lib/commonjs/types.js +6 -0
  67. package/lib/commonjs/types.js.map +1 -0
  68. package/lib/module/NativeSmileId.js +1 -1
  69. package/lib/module/NativeSmileId.js.map +1 -1
  70. package/lib/module/SmileIDBiometricKYCView.js +30 -0
  71. package/lib/module/SmileIDBiometricKYCView.js.map +1 -0
  72. package/lib/module/SmileIDConsentView.js +30 -0
  73. package/lib/module/SmileIDConsentView.js.map +1 -0
  74. package/lib/module/SmileIDDocumentVerificationView.js +30 -0
  75. package/lib/module/SmileIDDocumentVerificationView.js.map +1 -0
  76. package/lib/module/SmileIDEnhancedDocumentVerificationView.js +30 -0
  77. package/lib/module/SmileIDEnhancedDocumentVerificationView.js.map +1 -0
  78. package/lib/module/SmileIDSmartSelfieAuthenticationView.js +30 -0
  79. package/lib/module/SmileIDSmartSelfieAuthenticationView.js.map +1 -0
  80. package/lib/module/SmileIDSmartSelfieEnrollmentView.js +30 -0
  81. package/lib/module/SmileIDSmartSelfieEnrollmentView.js.map +1 -0
  82. package/lib/module/index.js +33 -21
  83. package/lib/module/index.js.map +1 -1
  84. package/lib/module/types.js +2 -0
  85. package/lib/module/types.js.map +1 -0
  86. package/lib/typescript/NativeSmileId.d.ts +16 -1
  87. package/lib/typescript/NativeSmileId.d.ts.map +1 -1
  88. package/lib/typescript/SmileIDBiometricKYCView.d.ts +8 -0
  89. package/lib/typescript/SmileIDBiometricKYCView.d.ts.map +1 -0
  90. package/lib/typescript/SmileIDConsentView.d.ts +8 -0
  91. package/lib/typescript/SmileIDConsentView.d.ts.map +1 -0
  92. package/lib/typescript/SmileIDDocumentVerificationView.d.ts +8 -0
  93. package/lib/typescript/SmileIDDocumentVerificationView.d.ts.map +1 -0
  94. package/lib/typescript/SmileIDEnhancedDocumentVerificationView.d.ts +8 -0
  95. package/lib/typescript/SmileIDEnhancedDocumentVerificationView.d.ts.map +1 -0
  96. package/lib/typescript/SmileIDSmartSelfieAuthenticationView.d.ts +8 -0
  97. package/lib/typescript/SmileIDSmartSelfieAuthenticationView.d.ts.map +1 -0
  98. package/lib/typescript/SmileIDSmartSelfieEnrollmentView.d.ts +8 -0
  99. package/lib/typescript/SmileIDSmartSelfieEnrollmentView.d.ts.map +1 -0
  100. package/lib/typescript/index.d.ts +24 -86
  101. package/lib/typescript/index.d.ts.map +1 -1
  102. package/lib/typescript/types.d.ts +182 -0
  103. package/lib/typescript/types.d.ts.map +1 -0
  104. package/package.json +1 -2
  105. package/react-native-smile-id.podspec +2 -2
  106. package/src/NativeSmileId.ts +17 -5
  107. package/src/SmileIDBiometricKYCView.tsx +45 -0
  108. package/src/SmileIDConsentView.tsx +44 -0
  109. package/src/SmileIDDocumentVerificationView.tsx +51 -0
  110. package/src/SmileIDEnhancedDocumentVerificationView.tsx +51 -0
  111. package/src/SmileIDSmartSelfieAuthenticationView.tsx +51 -0
  112. package/src/SmileIDSmartSelfieEnrollmentView.tsx +51 -0
  113. package/src/index.tsx +54 -122
  114. package/src/types.ts +189 -0
  115. package/android/src/main/java/com/smileidentity/react/viewmanagers/SmileIDBVNConsentViewManager.kt +0 -42
  116. package/android/src/main/java/com/smileidentity/react/views/SmileIDBVNConsentScreen.kt +0 -54
  117. package/android/src/main/java/com/smileidentity/react/views/SmileIDBiometricKYC.kt +0 -89
  118. package/android/src/main/java/com/smileidentity/react/views/SmileIDDocumentVerification.kt +0 -59
  119. package/android/src/main/java/com/smileidentity/react/views/SmileIDSmartSelfieAuthentication.kt +0 -47
  120. package/android/src/main/java/com/smileidentity/react/views/SmileIDSmartSelfieEnrollment.kt +0 -48
  121. package/ios/SmileId.h +0 -12
  122. package/ios/SmileId.mm +0 -27
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@smile_identity/react-native",
3
- "version": "10.0.0-beta01",
3
+ "version": "10.0.0-beta02",
4
4
  "description": "Official wrapper for the Smile ID <v10 android and iOS SDKs",
5
5
  "main": "lib/commonjs/index",
6
6
  "module": "lib/module/index",
@@ -87,7 +87,6 @@
87
87
  "engines": {
88
88
  "node": ">= 16.0.0"
89
89
  },
90
- "packageManager": "^yarn@1.22.15",
91
90
  "jest": {
92
91
  "preset": "react-native",
93
92
  "modulePathIgnorePatterns": [
@@ -14,8 +14,8 @@ Pod::Spec.new do |s|
14
14
  s.platforms = { :ios => "13.0" }
15
15
  s.source = { :git => "https://docs.usesmileid.com/.git", :tag => "#{s.version}" }
16
16
 
17
- s.source_files = "ios/**/*.{h,m,mm}"
18
- s.dependency "SmileID","10.0.0-beta06"
17
+ s.source_files = "ios/**/*.{h,m,mm,swift}"
18
+ s.dependency "SmileID","10.0.1"
19
19
 
20
20
  # Use install_modules_dependencies helper to install the dependencies if React Native version >=0.71.0.
21
21
  # See https://github.com/facebook/react-native/blob/febf6b7f33fdb4904669f99d795eba4c0f95d7bf/scripts/cocoapods/new_architecture.rb#L79.
@@ -3,12 +3,24 @@ import { TurboModuleRegistry } from 'react-native';
3
3
  import type { EnhancedKycRequest } from './index';
4
4
 
5
5
  export interface Spec extends TurboModule {
6
- initialize: (
7
- enableCrashReporting: boolean,
8
- useSandBox: boolean
9
- ) => Promise<void>;
6
+ /**
7
+ * Initialise the Smile ID SDK
8
+ */
9
+ initialize: (useSandBox: boolean) => Promise<void>;
10
+ /**
11
+ * NB: Only available on Android
12
+ * Disable crash reporting
13
+ */
14
+ disableCrashReporting: () => Promise<void>;
15
+ /**
16
+ *Headless run enhanced kyc async
17
+ */
10
18
  doEnhancedKycAsync: (
11
19
  enhancedKYCRequest: EnhancedKycRequest
12
20
  ) => Promise<string>;
21
+ /**
22
+ *Headless run enhanced kyc async
23
+ */
24
+ doEnhancedKyc: (enhancedKYCRequest: EnhancedKycRequest) => Promise<string>;
13
25
  }
14
- export default TurboModuleRegistry.getEnforcing<Spec>('SmileID');
26
+ export default TurboModuleRegistry.getEnforcing<Spec>('RNSmileID');
@@ -0,0 +1,45 @@
1
+ import React, { Component } from 'react';
2
+ import {
3
+ HostComponent,
4
+ UIManager,
5
+ findNodeHandle,
6
+ Platform,
7
+ } from 'react-native';
8
+ import codegenNativeComponent from 'react-native/Libraries/Utilities/codegenNativeComponent';
9
+ import { BiometricKYCRequest } from './index';
10
+
11
+ const SmileIDBiometricKYCComponent =
12
+ codegenNativeComponent<BiometricKYCRequest>(
13
+ 'SmileIDBiometricKYCView'
14
+ ) as HostComponent<BiometricKYCRequest>;
15
+
16
+ export default class SmileIDBiometricKYCView extends Component<BiometricKYCRequest> {
17
+ private viewRef = React.createRef<any>(); //
18
+
19
+ componentDidMount() {
20
+ const parameters = {
21
+ ...this.props,
22
+ };
23
+
24
+ // Obtain the command identifier
25
+ const commandId = UIManager.getViewManagerConfig('SmileIDBiometricKYCView')
26
+ .Commands.setParams;
27
+
28
+ // Ensure the commandId is defined and is a number
29
+ if (typeof commandId !== 'undefined') {
30
+ UIManager.dispatchViewManagerCommand(
31
+ findNodeHandle(this.viewRef.current),
32
+ Platform.OS === 'android' ? commandId.toString() : commandId,
33
+ [parameters]
34
+ );
35
+ } else {
36
+ throw new Error(
37
+ 'Command "setParams" is not defined for MyNativeComponent'
38
+ );
39
+ }
40
+ }
41
+
42
+ render() {
43
+ return <SmileIDBiometricKYCComponent ref={this.viewRef} {...this.props} />;
44
+ }
45
+ }
@@ -0,0 +1,44 @@
1
+ import React, { Component } from 'react';
2
+ import {
3
+ HostComponent,
4
+ UIManager,
5
+ findNodeHandle,
6
+ Platform,
7
+ } from 'react-native';
8
+ import codegenNativeComponent from 'react-native/Libraries/Utilities/codegenNativeComponent';
9
+ import { ConsentRequest } from './index';
10
+
11
+ const SmileIDConsentComponent = codegenNativeComponent<ConsentRequest>(
12
+ 'SmileIDConsentView'
13
+ ) as HostComponent<ConsentRequest>;
14
+
15
+ export default class SmileIDConsentView extends Component<ConsentRequest> {
16
+ private viewRef = React.createRef<any>(); //
17
+
18
+ componentDidMount() {
19
+ const parameters = {
20
+ ...this.props,
21
+ };
22
+
23
+ // Obtain the command identifier
24
+ const commandId =
25
+ UIManager.getViewManagerConfig('SmileIDConsentView').Commands.setParams;
26
+
27
+ // Ensure the commandId is defined and is a number
28
+ if (typeof commandId !== 'undefined') {
29
+ UIManager.dispatchViewManagerCommand(
30
+ findNodeHandle(this.viewRef.current),
31
+ Platform.OS === 'android' ? commandId.toString() : commandId,
32
+ [parameters]
33
+ );
34
+ } else {
35
+ throw new Error(
36
+ 'Command "setParams" is not defined for MyNativeComponent'
37
+ );
38
+ }
39
+ }
40
+
41
+ render() {
42
+ return <SmileIDConsentComponent ref={this.viewRef} {...this.props} />;
43
+ }
44
+ }
@@ -0,0 +1,51 @@
1
+ import React, { Component } from 'react';
2
+ import {
3
+ HostComponent,
4
+ UIManager,
5
+ findNodeHandle,
6
+ Platform,
7
+ } from 'react-native';
8
+ import codegenNativeComponent from 'react-native/Libraries/Utilities/codegenNativeComponent';
9
+ import { DocumentVerificationRequest } from './index';
10
+
11
+ const SmileIDDocumentVerificationComponent =
12
+ codegenNativeComponent<DocumentVerificationRequest>(
13
+ 'SmileIDDocumentVerificationView'
14
+ ) as HostComponent<DocumentVerificationRequest>;
15
+
16
+ export default class SmileIDDocumentVerificationView extends Component<DocumentVerificationRequest> {
17
+ private viewRef = React.createRef<any>(); //
18
+
19
+ componentDidMount() {
20
+ const parameters = {
21
+ ...this.props,
22
+ };
23
+
24
+ // Obtain the command identifier
25
+ const commandId = UIManager.getViewManagerConfig(
26
+ 'SmileIDDocumentVerificationView'
27
+ ).Commands.setParams;
28
+
29
+ // Ensure the commandId is defined and is a number
30
+ if (typeof commandId !== 'undefined') {
31
+ UIManager.dispatchViewManagerCommand(
32
+ findNodeHandle(this.viewRef.current),
33
+ Platform.OS === 'android' ? commandId.toString() : commandId,
34
+ [parameters]
35
+ );
36
+ } else {
37
+ throw new Error(
38
+ 'Command "setParams" is not defined for MyNativeComponent'
39
+ );
40
+ }
41
+ }
42
+
43
+ render() {
44
+ return (
45
+ <SmileIDDocumentVerificationComponent
46
+ ref={this.viewRef}
47
+ {...this.props}
48
+ />
49
+ );
50
+ }
51
+ }
@@ -0,0 +1,51 @@
1
+ import React, { Component } from 'react';
2
+ import {
3
+ HostComponent,
4
+ UIManager,
5
+ findNodeHandle,
6
+ Platform,
7
+ } from 'react-native';
8
+ import codegenNativeComponent from 'react-native/Libraries/Utilities/codegenNativeComponent';
9
+ import { DocumentVerificationRequest } from './index';
10
+
11
+ const SmileIDEnhancedDocumentVerificationComponent =
12
+ codegenNativeComponent<DocumentVerificationRequest>(
13
+ 'SmileIDEnhancedDocumentVerificationView'
14
+ ) as HostComponent<DocumentVerificationRequest>;
15
+
16
+ export default class SmileIDEnhancedDocumentVerificationView extends Component<DocumentVerificationRequest> {
17
+ private viewRef = React.createRef<any>(); //
18
+
19
+ componentDidMount() {
20
+ const parameters = {
21
+ ...this.props,
22
+ };
23
+
24
+ // Obtain the command identifier
25
+ const commandId = UIManager.getViewManagerConfig(
26
+ 'SmileIDEnhancedDocumentVerificationView'
27
+ ).Commands.setParams;
28
+
29
+ // Ensure the commandId is defined and is a number
30
+ if (typeof commandId !== 'undefined') {
31
+ UIManager.dispatchViewManagerCommand(
32
+ findNodeHandle(this.viewRef.current),
33
+ Platform.OS === 'android' ? commandId.toString() : commandId,
34
+ [parameters]
35
+ );
36
+ } else {
37
+ throw new Error(
38
+ 'Command "setParams" is not defined for MyNativeComponent'
39
+ );
40
+ }
41
+ }
42
+
43
+ render() {
44
+ return (
45
+ <SmileIDEnhancedDocumentVerificationComponent
46
+ ref={this.viewRef}
47
+ {...this.props}
48
+ />
49
+ );
50
+ }
51
+ }
@@ -0,0 +1,51 @@
1
+ import React, { Component } from 'react';
2
+ import {
3
+ HostComponent,
4
+ UIManager,
5
+ findNodeHandle,
6
+ Platform,
7
+ } from 'react-native';
8
+ import codegenNativeComponent from 'react-native/Libraries/Utilities/codegenNativeComponent';
9
+ import { SmartSelfieAuthenticationRequest } from './index';
10
+
11
+ const SmileIDSmartSelfieAuthenticationComponent =
12
+ codegenNativeComponent<SmartSelfieAuthenticationRequest>(
13
+ 'SmileIDSmartSelfieAuthenticationView'
14
+ ) as HostComponent<SmartSelfieAuthenticationRequest>;
15
+
16
+ export default class SmileIDSmartSelfieAuthenticationView extends Component<SmartSelfieAuthenticationRequest> {
17
+ private viewRef = React.createRef<any>(); //
18
+
19
+ componentDidMount() {
20
+ const parameters = {
21
+ ...this.props,
22
+ };
23
+
24
+ // Obtain the command identifier
25
+ const commandId = UIManager.getViewManagerConfig(
26
+ 'SmileIDSmartSelfieAuthenticationView'
27
+ ).Commands.setParams;
28
+
29
+ // Ensure the commandId is defined and is a number
30
+ if (typeof commandId !== 'undefined') {
31
+ UIManager.dispatchViewManagerCommand(
32
+ findNodeHandle(this.viewRef.current),
33
+ Platform.OS === 'android' ? commandId.toString() : commandId,
34
+ [parameters]
35
+ );
36
+ } else {
37
+ throw new Error(
38
+ 'Command "setParams" is not defined for MyNativeComponent'
39
+ );
40
+ }
41
+ }
42
+
43
+ render() {
44
+ return (
45
+ <SmileIDSmartSelfieAuthenticationComponent
46
+ ref={this.viewRef}
47
+ {...this.props}
48
+ />
49
+ );
50
+ }
51
+ }
@@ -0,0 +1,51 @@
1
+ import React, { Component } from 'react';
2
+ import {
3
+ HostComponent,
4
+ UIManager,
5
+ findNodeHandle,
6
+ Platform,
7
+ } from 'react-native';
8
+ import codegenNativeComponent from 'react-native/Libraries/Utilities/codegenNativeComponent';
9
+ import { SmartSelfieEnrollmentRequest } from './index';
10
+
11
+ const SmileIDSmartSelfieEnrollmentComponent =
12
+ codegenNativeComponent<SmartSelfieEnrollmentRequest>(
13
+ 'SmileIDSmartSelfieEnrollmentView'
14
+ ) as HostComponent<SmartSelfieEnrollmentRequest>;
15
+
16
+ export default class SmileIDSmartSelfieEnrollmentView extends Component<SmartSelfieEnrollmentRequest> {
17
+ private viewRef = React.createRef<any>(); //
18
+
19
+ componentDidMount() {
20
+ const parameters = {
21
+ ...this.props,
22
+ };
23
+
24
+ // Obtain the command identifier
25
+ const commandId = UIManager.getViewManagerConfig(
26
+ 'SmileIDSmartSelfieEnrollmentView'
27
+ ).Commands.setParams;
28
+
29
+ // Ensure the commandId is defined and is a number
30
+ if (typeof commandId !== 'undefined') {
31
+ UIManager.dispatchViewManagerCommand(
32
+ findNodeHandle(this.viewRef.current),
33
+ Platform.OS === 'android' ? commandId.toString() : commandId,
34
+ [parameters]
35
+ );
36
+ } else {
37
+ throw new Error(
38
+ 'Command "setParams" is not defined for MyNativeComponent'
39
+ );
40
+ }
41
+ }
42
+
43
+ render() {
44
+ return (
45
+ <SmileIDSmartSelfieEnrollmentComponent
46
+ ref={this.viewRef}
47
+ {...this.props}
48
+ />
49
+ );
50
+ }
51
+ }
package/src/index.tsx CHANGED
@@ -1,6 +1,18 @@
1
- import type { HostComponent, ViewProps } from 'react-native';
2
1
  import { NativeModules, Platform } from 'react-native';
3
- import codegenNativeComponent from 'react-native/Libraries/Utilities/codegenNativeComponent';
2
+ import SmileIDSmartSelfieEnrollmentView from './SmileIDSmartSelfieEnrollmentView';
3
+ import SmileIDSmartSelfieAuthenticationView from './SmileIDSmartSelfieAuthenticationView';
4
+ import SmileIDDocumentVerificationView from './SmileIDDocumentVerificationView';
5
+ import SmileIDBiometricKYCView from './SmileIDBiometricKYCView';
6
+ import SmileIDEnhancedDocumentVerificationView from './SmileIDEnhancedDocumentVerificationView';
7
+ import {
8
+ EnhancedKycRequest,
9
+ DocumentVerificationRequest,
10
+ SmartSelfieEnrollmentRequest,
11
+ SmartSelfieAuthenticationRequest,
12
+ BiometricKYCRequest,
13
+ SmileIDViewProps,
14
+ ConsentRequest,
15
+ } from './types';
4
16
 
5
17
  const LINKING_ERROR =
6
18
  `The package 'react-native-smile-id' doesn't seem to be linked. Make sure: \n\n` +
@@ -11,91 +23,9 @@ const LINKING_ERROR =
11
23
  // @ts-expect-error
12
24
  const isTurboModuleEnabled = global.__turboModuleProxy != null;
13
25
 
14
- export type SmileIDViewProps = ViewProps & {
15
- userId?: string;
16
- jobId?: string;
17
- partnerParams?: PartnerParams;
18
- jobType: JobType;
19
- };
20
-
21
- export type PartnerParams = {
22
- jobType?: JobType;
23
- jobId: string;
24
- userId: string;
25
- extras?: Map<string, string>;
26
- };
27
-
28
- interface IdInfo {
29
- country: string;
30
- idType?: string;
31
- idNumber?: string;
32
- firstName?: string;
33
- middleName?: string;
34
- lastName?: string;
35
- dob?: string;
36
- bankCode?: string;
37
- entered?: boolean;
38
- }
39
-
40
- export type SmartSelfieRequest = SmileIDViewProps & {
41
- allowAgentMode: boolean;
42
- showInstructions?: boolean;
43
- };
44
-
45
- export type BvnConsentRequest = SmileIDViewProps & {
46
- partnerIcon: string;
47
- partnerName: string;
48
- showAttribution: boolean;
49
- partnerPrivacyPolicy: string;
50
- };
51
-
52
- export type EnhancedKycRequest = SmileIDViewProps & {
53
- country: string;
54
- idType: string;
55
- idNumber: string;
56
- firstName?: string;
57
- middleName?: string;
58
- lastName?: string;
59
- dob?: string;
60
- phoneNumber?: string;
61
- bankCode?: string;
62
- callbackUrl?: string;
63
- partnerParams: PartnerParams;
64
- timestamp: string;
65
- signature: string;
66
- };
67
-
68
- export type DocumentVerificationRequest = SmartSelfieRequest & {
69
- jobType: JobType.DocumentVerification;
70
- countryCode: string;
71
- documentType: string;
72
- idAspectRatio?: number;
73
- captureBothSides?: boolean;
74
- showAttribution?: boolean;
75
- allowGalleryUpload?: boolean;
76
- };
77
-
78
- export type BiometricKYCRequest = SmartSelfieRequest & {
79
- idInfo: IdInfo;
80
- jobType: JobType.BiometricKyc;
81
- partnerIcon: string;
82
- partnerName: string;
83
- productName: string;
84
- partnerPrivacyPolicy: string;
85
- };
86
-
87
- export enum JobType {
88
- BiometricKyc = 1,
89
- SmartSelfieAuthentication = 2,
90
- SmartSelfieEnrollment = 4,
91
- EnhancedKyc = 5,
92
- DocumentVerification = 6,
93
- BVN = 7,
94
- }
95
-
96
26
  const SmileIdModule = isTurboModuleEnabled
97
27
  ? require('./NativeSmileId').default
98
- : NativeModules.SmileID;
28
+ : NativeModules.RNSmileID;
99
29
 
100
30
  const _SmileID = SmileIdModule
101
31
  ? SmileIdModule
@@ -108,43 +38,45 @@ const _SmileID = SmileIdModule
108
38
  }
109
39
  );
110
40
 
111
- export interface NativeProps extends ViewProps {
112
- product:
113
- | SmartSelfieRequest
114
- | DocumentVerificationRequest
115
- | EnhancedKycRequest
116
- | BvnConsentRequest;
117
- onResult?: (event: any) => void;
118
- }
119
-
120
- export const SmileIDSmartSelfieEnrollmentView =
121
- codegenNativeComponent<NativeProps>(
122
- 'SmileIDSmartSelfieEnrollmentView'
123
- ) as HostComponent<NativeProps>;
124
-
125
- export const SmileIDSmartSelfieAuthenticationView =
126
- codegenNativeComponent<NativeProps>(
127
- 'SmileIDSmartSelfieAuthenticationView'
128
- ) as HostComponent<NativeProps>;
129
-
130
- export const SmileIDDocumentVerificationView =
131
- codegenNativeComponent<NativeProps>(
132
- 'SmileIDDocumentVerificationView'
133
- ) as HostComponent<NativeProps>;
134
-
135
- export const SmileIDBVNConsentScreenView = codegenNativeComponent<NativeProps>(
136
- 'SmileIDBVNConsentScreenView'
137
- ) as HostComponent<NativeProps>;
138
-
139
- export const SmileIDBiometricKYCView = codegenNativeComponent<NativeProps>(
140
- 'SmileIDBiometricKYCView'
141
- ) as HostComponent<NativeProps>;
142
-
143
- export const SmileID = {
144
- initialize: (
145
- enableCrashReporting: boolean = false,
146
- useSandBox: boolean = false
147
- ) => _SmileID.initialize(enableCrashReporting, useSandBox),
41
+ const SmileID = {
42
+ /**
43
+ * Initialise the Smile ID SDK
44
+ */
45
+ initialize: (useSandBox: boolean = false) => _SmileID.initialize(useSandBox),
46
+ /**
47
+ * NB: Only available on Android
48
+ * Disable crash reporting
49
+ */
50
+ disableCrashReporting: () =>
51
+ Platform.OS === 'android' ? _SmileID.disableCrashReporting() : () => {},
52
+ /**
53
+ *Headless run enhanced kyc async
54
+ */
148
55
  doEnhancedKycAsync: (enhancedKYCRequest: EnhancedKycRequest) =>
149
56
  _SmileID.doEnhancedKycAsync(enhancedKYCRequest),
57
+
58
+ /**
59
+ *Headless run enhanced kyc async
60
+ */
61
+ doEnhancedKyc: (enhancedKYCRequest: EnhancedKycRequest) =>
62
+ _SmileID.doEnhancedKyc(enhancedKYCRequest),
63
+ };
64
+
65
+ export {
66
+ //module
67
+ SmileID,
68
+ //views
69
+ SmileIDSmartSelfieEnrollmentView,
70
+ SmileIDSmartSelfieAuthenticationView,
71
+ SmileIDDocumentVerificationView,
72
+ SmileIDBiometricKYCView,
73
+ SmileIDEnhancedDocumentVerificationView,
74
+ //types
75
+ EnhancedKycRequest,
76
+ DocumentVerificationRequest,
77
+ SmartSelfieEnrollmentRequest,
78
+ SmartSelfieAuthenticationRequest,
79
+ BiometricKYCRequest,
80
+ SmileIDViewProps,
81
+ ConsentRequest,
150
82
  };