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

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 (123) hide show
  1. package/README.md +1 -1
  2. package/android/gradle.properties +1 -1
  3. package/android/src/main/java/com/smileidentity/react/Mapper.kt +179 -0
  4. package/android/src/main/java/com/smileidentity/react/SmileIdModule.kt +76 -49
  5. package/android/src/main/java/com/smileidentity/react/SmileIdPackage.kt +4 -2
  6. package/android/src/main/java/com/smileidentity/react/utils/ReactUtils.kt +9 -38
  7. package/android/src/main/java/com/smileidentity/react/viewmanagers/SmileIDBiometricKYCViewManager.kt +41 -9
  8. package/android/src/main/java/com/smileidentity/react/viewmanagers/SmileIDConsentViewManager.kt +83 -0
  9. package/android/src/main/java/com/smileidentity/react/viewmanagers/SmileIDDocumentVerificationViewManager.kt +45 -9
  10. package/android/src/main/java/com/smileidentity/react/viewmanagers/SmileIDEnhancedDocumentVerificationViewManager.kt +77 -0
  11. package/android/src/main/java/com/smileidentity/react/viewmanagers/SmileIDSmartSelfieAuthenticationViewManager.kt +36 -9
  12. package/android/src/main/java/com/smileidentity/react/viewmanagers/SmileIDSmartSelfieEnrollmentViewManager.kt +36 -9
  13. package/android/src/main/java/com/smileidentity/react/views/SmileIDBiometricKYCView.kt +64 -0
  14. package/android/src/main/java/com/smileidentity/react/views/SmileIDConsentView.kt +67 -0
  15. package/android/src/main/java/com/smileidentity/react/views/SmileIDDocumentVerificationView.kt +77 -0
  16. package/android/src/main/java/com/smileidentity/react/views/SmileIDEnhancedDocumentVerificationView.kt +71 -0
  17. package/android/src/main/java/com/smileidentity/react/views/{SmileIDSmartSelfieAuthentication.kt → SmileIDSmartSelfieAuthenticationView.kt} +15 -4
  18. package/android/src/main/java/com/smileidentity/react/views/{SmileIDSmartSelfieEnrollment.kt → SmileIDSmartSelfieEnrollmentView.kt} +14 -5
  19. package/android/src/main/java/com/smileidentity/react/views/SmileIDView.kt +3 -27
  20. package/android/src/oldarch/SmileIdSpec.kt +26 -1
  21. package/ios/RNDelegates/SmileIDUIViewDelegate.swift +4 -0
  22. package/ios/RNDelegates/SmileIDViewDelegate.swift +5 -0
  23. package/ios/RNSmileID.mm +7 -0
  24. package/ios/RNSmileID.swift +147 -0
  25. package/ios/SmileId.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +8 -0
  26. package/ios/SmileId.xcodeproj/project.xcworkspace/xcuserdata/japhetndhlovu.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
  27. package/ios/SmileId.xcodeproj/xcuserdata/japhetndhlovu.xcuserdatad/xcschemes/xcschememanagement.plist +14 -0
  28. package/ios/Utils/SmileIDDictExt.swift +50 -0
  29. package/ios/Utils/SmileIDUtils.swift +10 -0
  30. package/ios/View/BaseSmileIDView.swift +35 -0
  31. package/ios/View/SmileIDBiometricKYCView.swift +46 -0
  32. package/ios/View/SmileIDConsentView.swift +36 -0
  33. package/ios/View/SmileIDDocumentVerificationView.swift +55 -0
  34. package/ios/View/SmileIDEnhancedDocumentVerificationView.swift +55 -0
  35. package/ios/View/SmileIDSmartSelfieAuthView.swift +41 -0
  36. package/ios/View/SmileIDSmartSelfieEnrollmentView.swift +41 -0
  37. package/ios/ViewManagers/SmileIDBaseViewManager.swift +18 -0
  38. package/ios/ViewManagers/SmileIDBiometricKYCViewManager.m +6 -0
  39. package/ios/ViewManagers/SmileIDBiometricKYCViewManager.swift +34 -0
  40. package/ios/ViewManagers/SmileIDConsentViewManager.m +6 -0
  41. package/ios/ViewManagers/SmileIDConsentViewManager.swift +47 -0
  42. package/ios/ViewManagers/SmileIDDocumentVerificationViewManager.m +6 -0
  43. package/ios/ViewManagers/SmileIDDocumentVerificationViewManager.swift +49 -0
  44. package/ios/ViewManagers/SmileIDEnhancedDocumentVerificationViewManager.m +6 -0
  45. package/ios/ViewManagers/SmileIDEnhancedDocumentVerificationViewManager.swift +49 -0
  46. package/ios/ViewManagers/SmileIDSmartSelfieAuthenticationViewManager.m +6 -0
  47. package/ios/ViewManagers/SmileIDSmartSelfieAuthenticationViewManager.swift +27 -0
  48. package/ios/ViewManagers/SmileIDSmartSelfieEnrollmentViewManager.m +6 -0
  49. package/ios/ViewManagers/SmileIDSmartSelfieEnrollmentViewManager.swift +27 -0
  50. package/ios/ViewModels/SmileIDProductModel.swift +30 -0
  51. package/ios/react-native-smile-id-Bridging-Header.h +8 -0
  52. package/lib/commonjs/NativeSmileId.js +1 -1
  53. package/lib/commonjs/NativeSmileId.js.map +1 -1
  54. package/lib/commonjs/SmileIDBiometricKYCView.js +40 -0
  55. package/lib/commonjs/SmileIDBiometricKYCView.js.map +1 -0
  56. package/lib/commonjs/SmileIDConsentView.js +40 -0
  57. package/lib/commonjs/SmileIDConsentView.js.map +1 -0
  58. package/lib/commonjs/SmileIDDocumentVerificationView.js +40 -0
  59. package/lib/commonjs/SmileIDDocumentVerificationView.js.map +1 -0
  60. package/lib/commonjs/SmileIDEnhancedDocumentVerificationView.js +40 -0
  61. package/lib/commonjs/SmileIDEnhancedDocumentVerificationView.js.map +1 -0
  62. package/lib/commonjs/SmileIDSmartSelfieAuthenticationView.js +40 -0
  63. package/lib/commonjs/SmileIDSmartSelfieAuthenticationView.js.map +1 -0
  64. package/lib/commonjs/SmileIDSmartSelfieEnrollmentView.js +40 -0
  65. package/lib/commonjs/SmileIDSmartSelfieEnrollmentView.js.map +1 -0
  66. package/lib/commonjs/index.js +194 -27
  67. package/lib/commonjs/index.js.map +1 -1
  68. package/lib/commonjs/types.js +517 -0
  69. package/lib/commonjs/types.js.map +1 -0
  70. package/lib/module/NativeSmileId.js +1 -1
  71. package/lib/module/NativeSmileId.js.map +1 -1
  72. package/lib/module/SmileIDBiometricKYCView.js +30 -0
  73. package/lib/module/SmileIDBiometricKYCView.js.map +1 -0
  74. package/lib/module/SmileIDConsentView.js +30 -0
  75. package/lib/module/SmileIDConsentView.js.map +1 -0
  76. package/lib/module/SmileIDDocumentVerificationView.js +30 -0
  77. package/lib/module/SmileIDDocumentVerificationView.js.map +1 -0
  78. package/lib/module/SmileIDEnhancedDocumentVerificationView.js +30 -0
  79. package/lib/module/SmileIDEnhancedDocumentVerificationView.js.map +1 -0
  80. package/lib/module/SmileIDSmartSelfieAuthenticationView.js +30 -0
  81. package/lib/module/SmileIDSmartSelfieAuthenticationView.js.map +1 -0
  82. package/lib/module/SmileIDSmartSelfieEnrollmentView.js +30 -0
  83. package/lib/module/SmileIDSmartSelfieEnrollmentView.js.map +1 -0
  84. package/lib/module/index.js +33 -21
  85. package/lib/module/index.js.map +1 -1
  86. package/lib/module/types.js +472 -0
  87. package/lib/module/types.js.map +1 -0
  88. package/lib/typescript/NativeSmileId.d.ts +22 -3
  89. package/lib/typescript/NativeSmileId.d.ts.map +1 -1
  90. package/lib/typescript/SmileIDBiometricKYCView.d.ts +8 -0
  91. package/lib/typescript/SmileIDBiometricKYCView.d.ts.map +1 -0
  92. package/lib/typescript/SmileIDConsentView.d.ts +8 -0
  93. package/lib/typescript/SmileIDConsentView.d.ts.map +1 -0
  94. package/lib/typescript/SmileIDDocumentVerificationView.d.ts +8 -0
  95. package/lib/typescript/SmileIDDocumentVerificationView.d.ts.map +1 -0
  96. package/lib/typescript/SmileIDEnhancedDocumentVerificationView.d.ts +8 -0
  97. package/lib/typescript/SmileIDEnhancedDocumentVerificationView.d.ts.map +1 -0
  98. package/lib/typescript/SmileIDSmartSelfieAuthenticationView.d.ts +8 -0
  99. package/lib/typescript/SmileIDSmartSelfieAuthenticationView.d.ts.map +1 -0
  100. package/lib/typescript/SmileIDSmartSelfieEnrollmentView.d.ts +8 -0
  101. package/lib/typescript/SmileIDSmartSelfieEnrollmentView.d.ts.map +1 -0
  102. package/lib/typescript/index.d.ts +24 -86
  103. package/lib/typescript/index.d.ts.map +1 -1
  104. package/lib/typescript/types.d.ts +504 -0
  105. package/lib/typescript/types.d.ts.map +1 -0
  106. package/package.json +3 -4
  107. package/react-native-smile-id.podspec +2 -2
  108. package/src/NativeSmileId.ts +68 -9
  109. package/src/SmileIDBiometricKYCView.tsx +45 -0
  110. package/src/SmileIDConsentView.tsx +44 -0
  111. package/src/SmileIDDocumentVerificationView.tsx +51 -0
  112. package/src/SmileIDEnhancedDocumentVerificationView.tsx +51 -0
  113. package/src/SmileIDSmartSelfieAuthenticationView.tsx +51 -0
  114. package/src/SmileIDSmartSelfieEnrollmentView.tsx +51 -0
  115. package/src/index.tsx +86 -122
  116. package/src/types.ts +1084 -0
  117. package/android/src/main/assets/smile_config.json +0 -9
  118. package/android/src/main/java/com/smileidentity/react/viewmanagers/SmileIDBVNConsentViewManager.kt +0 -42
  119. package/android/src/main/java/com/smileidentity/react/views/SmileIDBVNConsentScreen.kt +0 -54
  120. package/android/src/main/java/com/smileidentity/react/views/SmileIDBiometricKYC.kt +0 -89
  121. package/android/src/main/java/com/smileidentity/react/views/SmileIDDocumentVerification.kt +0 -59
  122. package/ios/SmileId.h +0 -12
  123. package/ios/SmileId.mm +0 -27
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-beta03",
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",
@@ -43,13 +43,13 @@
43
43
  "ios",
44
44
  "android"
45
45
  ],
46
- "repository": "https://docs.usesmileid.com/",
46
+ "repository": "https://github.com/smileidentity/react-native",
47
47
  "author": "Smile ID <japhet@smileidentity.com> (https://docs.usesmileid.com/)",
48
48
  "license": "MIT",
49
49
  "bugs": {
50
50
  "url": "https://docs.usesmileid.com//issues"
51
51
  },
52
- "homepage": "https://docs.usesmileid.com/#readme",
52
+ "homepage": "https://docs.usesmileid.com/",
53
53
  "publishConfig": {
54
54
  "registry": "https://registry.npmjs.org/"
55
55
  },
@@ -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.4"
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.
@@ -1,14 +1,73 @@
1
1
  import type { TurboModule } from 'react-native';
2
2
  import { TurboModuleRegistry } from 'react-native';
3
- import type { EnhancedKycRequest } from './index';
3
+ import type {
4
+ AuthenticationRequest,
5
+ AuthenticationResponse,
6
+ BiometricKycJobStatusResponse,
7
+ DocumentVerificationJobStatusResponse,
8
+ EnhancedDocumentVerificationJobStatusResponse,
9
+ EnhancedKycRequest,
10
+ EnhancedKycAsyncResponse,
11
+ EnhancedKycResponse,
12
+ JobStatusRequest,
13
+ PrepUploadRequest,
14
+ PrepUploadResponse,
15
+ ProductsConfigRequest,
16
+ ProductsConfigResponse,
17
+ ServicesResponse,
18
+ SmartSelfieJobStatusResponse,
19
+ UploadRequest,
20
+ ValidDocumentsResponse,
21
+ } from './index';
4
22
 
5
23
  export interface Spec extends TurboModule {
6
- initialize: (
7
- enableCrashReporting: boolean,
8
- useSandBox: boolean
9
- ) => Promise<void>;
10
- doEnhancedKycAsync: (
11
- enhancedKYCRequest: EnhancedKycRequest
12
- ) => Promise<string>;
24
+ /**
25
+ * Initialise the Smile ID SDK
26
+ */
27
+ initialize: (useSandBox: boolean) => Promise<void>;
28
+ /**
29
+ * NB: Only available on Android
30
+ * Disable crash reporting
31
+ */
32
+ disableCrashReporting: () => Promise<void>;
33
+
34
+ authenticate(request: AuthenticationRequest): Promise<AuthenticationResponse>;
35
+
36
+ prepUpload(request: PrepUploadRequest): Promise<PrepUploadResponse>;
37
+
38
+ upload(url: string, request: UploadRequest): Promise<void>;
39
+
40
+ doEnhancedKyc(request: EnhancedKycRequest): Promise<EnhancedKycResponse>;
41
+
42
+ doEnhancedKycAsync(
43
+ request: EnhancedKycRequest
44
+ ): Promise<EnhancedKycAsyncResponse>;
45
+
46
+ getSmartSelfieJobStatus(
47
+ request: JobStatusRequest
48
+ ): Promise<SmartSelfieJobStatusResponse>;
49
+
50
+ getDocumentVerificationJobStatus(
51
+ request: JobStatusRequest
52
+ ): Promise<DocumentVerificationJobStatusResponse>;
53
+
54
+ getBiometricKycJobStatus(
55
+ request: JobStatusRequest
56
+ ): Promise<BiometricKycJobStatusResponse>;
57
+
58
+ getEnhancedDocumentVerificationJobStatus(
59
+ request: JobStatusRequest
60
+ ): Promise<EnhancedDocumentVerificationJobStatusResponse>;
61
+
62
+ getProductsConfig(
63
+ request: ProductsConfigRequest
64
+ ): Promise<ProductsConfigResponse>;
65
+
66
+ getValidDocuments(
67
+ request: ProductsConfigRequest
68
+ ): Promise<ValidDocumentsResponse>;
69
+
70
+ getServices(): Promise<ServicesResponse>;
13
71
  }
14
- export default TurboModuleRegistry.getEnforcing<Spec>('SmileID');
72
+
73
+ 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,34 @@
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
+ DocumentVerificationRequest,
9
+ SmartSelfieEnrollmentRequest,
10
+ SmartSelfieAuthenticationRequest,
11
+ BiometricKYCRequest,
12
+ SmileIDViewProps,
13
+ ConsentRequest,
14
+ AuthenticationRequest,
15
+ AuthenticationResponse,
16
+ BiometricKycJobStatusResponse,
17
+ DocumentVerificationJobStatusResponse,
18
+ EnhancedDocumentVerificationJobStatusResponse,
19
+ EnhancedKycRequest,
20
+ EnhancedKycAsyncResponse,
21
+ EnhancedKycResponse,
22
+ JobStatusRequest,
23
+ PrepUploadRequest,
24
+ PrepUploadResponse,
25
+ ProductsConfigRequest,
26
+ ProductsConfigResponse,
27
+ ServicesResponse,
28
+ SmartSelfieJobStatusResponse,
29
+ UploadRequest,
30
+ ValidDocumentsResponse,
31
+ } from './types';
4
32
 
5
33
  const LINKING_ERROR =
6
34
  `The package 'react-native-smile-id' doesn't seem to be linked. Make sure: \n\n` +
@@ -11,91 +39,9 @@ const LINKING_ERROR =
11
39
  // @ts-expect-error
12
40
  const isTurboModuleEnabled = global.__turboModuleProxy != null;
13
41
 
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
42
  const SmileIdModule = isTurboModuleEnabled
97
43
  ? require('./NativeSmileId').default
98
- : NativeModules.SmileID;
44
+ : NativeModules.RNSmileID;
99
45
 
100
46
  const _SmileID = SmileIdModule
101
47
  ? SmileIdModule
@@ -108,43 +54,61 @@ const _SmileID = SmileIdModule
108
54
  }
109
55
  );
110
56
 
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),
57
+ const SmileID = {
58
+ /**
59
+ * Initialise the Smile ID SDK
60
+ */
61
+ initialize: (useSandBox: boolean = false) => _SmileID.initialize(useSandBox),
62
+ /**
63
+ * NB: Only available on Android
64
+ * Disable crash reporting
65
+ */
66
+ disableCrashReporting: () =>
67
+ Platform.OS === 'android' ? _SmileID.disableCrashReporting() : () => {},
68
+ /**
69
+ *Headless run enhanced kyc async
70
+ */
148
71
  doEnhancedKycAsync: (enhancedKYCRequest: EnhancedKycRequest) =>
149
72
  _SmileID.doEnhancedKycAsync(enhancedKYCRequest),
73
+
74
+ /**
75
+ *Headless run enhanced kyc async
76
+ */
77
+ doEnhancedKyc: (enhancedKYCRequest: EnhancedKycRequest) =>
78
+ _SmileID.doEnhancedKyc(enhancedKYCRequest),
79
+ };
80
+
81
+ export {
82
+ //module
83
+ SmileID,
84
+ //views
85
+ SmileIDSmartSelfieEnrollmentView,
86
+ SmileIDSmartSelfieAuthenticationView,
87
+ SmileIDDocumentVerificationView,
88
+ SmileIDBiometricKYCView,
89
+ SmileIDEnhancedDocumentVerificationView,
90
+ //types
91
+ EnhancedKycRequest,
92
+ DocumentVerificationRequest,
93
+ SmartSelfieEnrollmentRequest,
94
+ SmartSelfieAuthenticationRequest,
95
+ BiometricKYCRequest,
96
+ SmileIDViewProps,
97
+ ConsentRequest,
98
+ AuthenticationRequest,
99
+ AuthenticationResponse,
100
+ BiometricKycJobStatusResponse,
101
+ DocumentVerificationJobStatusResponse,
102
+ EnhancedDocumentVerificationJobStatusResponse,
103
+ EnhancedKycAsyncResponse,
104
+ EnhancedKycResponse,
105
+ JobStatusRequest,
106
+ PrepUploadRequest,
107
+ PrepUploadResponse,
108
+ ProductsConfigRequest,
109
+ ProductsConfigResponse,
110
+ ServicesResponse,
111
+ SmartSelfieJobStatusResponse,
112
+ UploadRequest,
113
+ ValidDocumentsResponse,
150
114
  };