omnipay-reactnative-sdk 1.2.3-beta.9 → 1.2.4

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 (65) hide show
  1. package/README.md +14 -64
  2. package/android/build.gradle +4 -15
  3. package/android/src/main/java/com/omniretail/omnipay/OmnipayActivityPackage.java +0 -5
  4. package/lib/commonjs/components/OmnipayProvider.js +98 -20
  5. package/lib/commonjs/components/OmnipayProvider.js.map +1 -1
  6. package/lib/commonjs/utils/buildUrlWithMetadata.js +14 -0
  7. package/lib/commonjs/utils/buildUrlWithMetadata.js.map +1 -0
  8. package/lib/module/components/OmnipayProvider.js +99 -21
  9. package/lib/module/components/OmnipayProvider.js.map +1 -1
  10. package/lib/module/components/OmnipayView.js.map +1 -1
  11. package/lib/module/components/views/BvnVerification.js.map +1 -1
  12. package/lib/module/components/views/PaylaterAgreement.js.map +1 -1
  13. package/lib/module/components/views/Registration.js.map +1 -1
  14. package/lib/module/utils/buildUrlWithMetadata.js +8 -0
  15. package/lib/module/utils/buildUrlWithMetadata.js.map +1 -0
  16. package/lib/typescript/components/OmnipayProvider.d.ts +5 -2
  17. package/lib/typescript/components/OmnipayProvider.d.ts.map +1 -1
  18. package/lib/typescript/hooks/useOmnipay.d.ts +4 -1
  19. package/lib/typescript/hooks/useOmnipay.d.ts.map +1 -1
  20. package/lib/typescript/utils/buildUrlWithMetadata.d.ts +2 -0
  21. package/lib/typescript/utils/buildUrlWithMetadata.d.ts.map +1 -0
  22. package/package.json +12 -29
  23. package/src/components/OmnipayProvider.tsx +154 -31
  24. package/src/components/OmnipayView.tsx +1 -1
  25. package/src/components/views/BvnVerification.tsx +1 -1
  26. package/src/components/views/PaylaterAgreement.tsx +1 -1
  27. package/src/components/views/Registration.tsx +1 -1
  28. package/src/hooks/useOmnipay.tsx +1 -1
  29. package/src/utils/buildUrlWithMetadata.ts +21 -0
  30. package/android/src/main/java/com/omniretail/omnipay/FaceVerificationFrameProcessor.kt +0 -111
  31. package/ios/FaceVerificationFrameProcessor.swift +0 -138
  32. package/ios/FaceVerificationFrameProcessorPlugin.m +0 -4
  33. package/ios/OmnipayReactnativeSdk.m +0 -5
  34. package/ios/OmnipayReactnativeSdk.swift +0 -10
  35. package/ios/omnipay-reactnative-sdk-Bridging-Header.h +0 -8
  36. package/ios/omnipay_reactnative_sdk.h +0 -6
  37. package/lib/commonjs/components/Button.js +0 -68
  38. package/lib/commonjs/components/Button.js.map +0 -1
  39. package/lib/commonjs/components/biometrics/FaceVerification.js +0 -380
  40. package/lib/commonjs/components/biometrics/FaceVerification.js.map +0 -1
  41. package/lib/commonjs/components/biometrics/useFaceVerification.js +0 -85
  42. package/lib/commonjs/components/biometrics/useFaceVerification.js.map +0 -1
  43. package/lib/commonjs/components/biometrics/useFaceVerificationFlow.js +0 -157
  44. package/lib/commonjs/components/biometrics/useFaceVerificationFlow.js.map +0 -1
  45. package/lib/module/components/Button.js +0 -61
  46. package/lib/module/components/Button.js.map +0 -1
  47. package/lib/module/components/biometrics/FaceVerification.js +0 -372
  48. package/lib/module/components/biometrics/FaceVerification.js.map +0 -1
  49. package/lib/module/components/biometrics/useFaceVerification.js +0 -78
  50. package/lib/module/components/biometrics/useFaceVerification.js.map +0 -1
  51. package/lib/module/components/biometrics/useFaceVerificationFlow.js +0 -150
  52. package/lib/module/components/biometrics/useFaceVerificationFlow.js.map +0 -1
  53. package/lib/typescript/components/Button.d.ts +0 -17
  54. package/lib/typescript/components/Button.d.ts.map +0 -1
  55. package/lib/typescript/components/biometrics/FaceVerification.d.ts +0 -9
  56. package/lib/typescript/components/biometrics/FaceVerification.d.ts.map +0 -1
  57. package/lib/typescript/components/biometrics/useFaceVerification.d.ts +0 -38
  58. package/lib/typescript/components/biometrics/useFaceVerification.d.ts.map +0 -1
  59. package/lib/typescript/components/biometrics/useFaceVerificationFlow.d.ts +0 -29
  60. package/lib/typescript/components/biometrics/useFaceVerificationFlow.d.ts.map +0 -1
  61. package/omnipay_reactnative_sdk.podspec +0 -52
  62. package/src/components/Button.tsx +0 -86
  63. package/src/components/biometrics/FaceVerification.tsx +0 -429
  64. package/src/components/biometrics/useFaceVerification.ts +0 -120
  65. package/src/components/biometrics/useFaceVerificationFlow.ts +0 -224
@@ -1,68 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
- var _react = _interopRequireDefault(require("react"));
8
- var _reactNative = require("react-native");
9
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
10
- const Button = ({
11
- title,
12
- onPress,
13
- backgroundColor = '#007AFF',
14
- borderColor,
15
- textColor = 'white',
16
- disabled = false,
17
- loading = false,
18
- style,
19
- textStyle,
20
- activeOpacity = 0.8
21
- }) => {
22
- const buttonStyle = {
23
- ...styles.button,
24
- backgroundColor: disabled ? '#cccccc' : backgroundColor,
25
- borderColor: disabled ? '#cccccc' : borderColor || backgroundColor,
26
- ...style
27
- };
28
- const finalTextStyle = {
29
- ...styles.buttonText,
30
- color: disabled ? '#666666' : textColor,
31
- ...textStyle
32
- };
33
- return /*#__PURE__*/_react.default.createElement(_reactNative.TouchableOpacity, {
34
- style: buttonStyle,
35
- onPress: onPress,
36
- disabled: disabled || loading,
37
- activeOpacity: activeOpacity,
38
- accessibilityRole: "button",
39
- accessibilityLabel: title,
40
- accessibilityState: {
41
- disabled: disabled || loading
42
- }
43
- }, loading ? /*#__PURE__*/_react.default.createElement(_reactNative.ActivityIndicator, {
44
- color: textColor,
45
- size: "small"
46
- }) : /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
47
- style: finalTextStyle
48
- }, title));
49
- };
50
- const styles = _reactNative.StyleSheet.create({
51
- button: {
52
- borderRadius: 6,
53
- paddingHorizontal: 12,
54
- paddingVertical: 14,
55
- borderWidth: 1,
56
- alignItems: 'center',
57
- justifyContent: 'center',
58
- minHeight: 48
59
- },
60
- buttonText: {
61
- color: 'white',
62
- fontSize: 16,
63
- fontWeight: '600',
64
- paddingHorizontal: 30
65
- }
66
- });
67
- var _default = exports.default = Button;
68
- //# sourceMappingURL=Button.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","e","__esModule","default","Button","title","onPress","backgroundColor","borderColor","textColor","disabled","loading","style","textStyle","activeOpacity","buttonStyle","styles","button","finalTextStyle","buttonText","color","createElement","TouchableOpacity","accessibilityRole","accessibilityLabel","accessibilityState","ActivityIndicator","size","Text","StyleSheet","create","borderRadius","paddingHorizontal","paddingVertical","borderWidth","alignItems","justifyContent","minHeight","fontSize","fontWeight","_default","exports"],"sourceRoot":"../../../src","sources":["components/Button.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AAOsB,SAAAD,uBAAAG,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAetB,MAAMG,MAA6B,GAAGA,CAAC;EACrCC,KAAK;EACLC,OAAO;EACPC,eAAe,GAAG,SAAS;EAC3BC,WAAW;EACXC,SAAS,GAAG,OAAO;EACnBC,QAAQ,GAAG,KAAK;EAChBC,OAAO,GAAG,KAAK;EACfC,KAAK;EACLC,SAAS;EACTC,aAAa,GAAG;AAClB,CAAC,KAAK;EACJ,MAAMC,WAAsB,GAAG;IAC7B,GAAGC,MAAM,CAACC,MAAM;IAChBV,eAAe,EAAEG,QAAQ,GAAG,SAAS,GAAGH,eAAe;IACvDC,WAAW,EAAEE,QAAQ,GAAG,SAAS,GAAGF,WAAW,IAAID,eAAe;IAClE,GAAGK;EACL,CAAC;EAED,MAAMM,cAAyB,GAAG;IAChC,GAAGF,MAAM,CAACG,UAAU;IACpBC,KAAK,EAAEV,QAAQ,GAAG,SAAS,GAAGD,SAAS;IACvC,GAAGI;EACL,CAAC;EAED,oBACEhB,MAAA,CAAAM,OAAA,CAAAkB,aAAA,CAACrB,YAAA,CAAAsB,gBAAgB;IACfV,KAAK,EAAEG,WAAY;IACnBT,OAAO,EAAEA,OAAQ;IACjBI,QAAQ,EAAEA,QAAQ,IAAIC,OAAQ;IAC9BG,aAAa,EAAEA,aAAc;IAC7BS,iBAAiB,EAAC,QAAQ;IAC1BC,kBAAkB,EAAEnB,KAAM;IAC1BoB,kBAAkB,EAAE;MAAEf,QAAQ,EAAEA,QAAQ,IAAIC;IAAQ;EAAE,GAErDA,OAAO,gBACNd,MAAA,CAAAM,OAAA,CAAAkB,aAAA,CAACrB,YAAA,CAAA0B,iBAAiB;IAACN,KAAK,EAAEX,SAAU;IAACkB,IAAI,EAAC;EAAO,CAAE,CAAC,gBAEpD9B,MAAA,CAAAM,OAAA,CAAAkB,aAAA,CAACrB,YAAA,CAAA4B,IAAI;IAAChB,KAAK,EAAEM;EAAe,GAAEb,KAAY,CAE5B,CAAC;AAEvB,CAAC;AAED,MAAMW,MAAM,GAAGa,uBAAU,CAACC,MAAM,CAAC;EAC/Bb,MAAM,EAAE;IACNc,YAAY,EAAE,CAAC;IACfC,iBAAiB,EAAE,EAAE;IACrBC,eAAe,EAAE,EAAE;IACnBC,WAAW,EAAE,CAAC;IACdC,UAAU,EAAE,QAAQ;IACpBC,cAAc,EAAE,QAAQ;IACxBC,SAAS,EAAE;EACb,CAAC;EACDlB,UAAU,EAAE;IACVC,KAAK,EAAE,OAAO;IACdkB,QAAQ,EAAE,EAAE;IACZC,UAAU,EAAE,KAAK;IACjBP,iBAAiB,EAAE;EACrB;AACF,CAAC,CAAC;AAAC,IAAAQ,QAAA,GAAAC,OAAA,CAAAtC,OAAA,GAEYC,MAAM","ignoreList":[]}
@@ -1,380 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
- var _react = _interopRequireWildcard(require("react"));
8
- var _reactNative = require("react-native");
9
- var _reactNativeVisionCamera = require("react-native-vision-camera");
10
- var _Button = _interopRequireDefault(require("../Button"));
11
- var _useFaceVerification = require("./useFaceVerification");
12
- var _useFaceVerificationFlow = require("./useFaceVerificationFlow");
13
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
14
- function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
15
- const FaceVerification = ({
16
- onClose,
17
- onSuccess,
18
- primaryColor
19
- }) => {
20
- const device = (0, _reactNativeVisionCamera.useCameraDevice)('front');
21
- const {
22
- hasPermission,
23
- requestPermission
24
- } = (0, _reactNativeVisionCamera.useCameraPermission)();
25
- const [isRequestingPermission, setIsRequestingPermission] = (0, _react.useState)(false);
26
-
27
- // Face verification flow
28
- const {
29
- state: flowState,
30
- resetFlow,
31
- isCompleted,
32
- isFailed
33
- } = (0, _useFaceVerificationFlow.useFaceVerificationFlow)();
34
-
35
- // Frame processor
36
- const frameProcessor = (0, _useFaceVerification.useFaceVerification)();
37
-
38
- // Handle completion
39
- (0, _react.useEffect)(() => {
40
- if (isCompleted) {
41
- setTimeout(() => {
42
- onSuccess();
43
- }, 1000); // Show success message briefly
44
- }
45
- }, [isCompleted, onSuccess]);
46
- const handleRequestPermission = async () => {
47
- setIsRequestingPermission(true);
48
- try {
49
- await requestPermission();
50
- } catch (error) {
51
- console.error('Error requesting camera permission:', error);
52
- } finally {
53
- setIsRequestingPermission(false);
54
- }
55
- };
56
- const renderPermissionRequest = () => /*#__PURE__*/_react.default.createElement(_reactNative.View, {
57
- style: styles.permissionContainer
58
- }, /*#__PURE__*/_react.default.createElement(_reactNative.View, {
59
- style: styles.permissionIconContainer
60
- }, /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
61
- style: styles.permissionIcon
62
- }, "\uD83D\uDCF7")), /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
63
- style: styles.permissionTitle
64
- }, "Camera Permission Required"), /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
65
- style: styles.permissionDescription
66
- }, "To verify your identity, we need access to your camera. This allows us to capture your face for secure verification."), /*#__PURE__*/_react.default.createElement(_Button.default, {
67
- title: "Allow Camera Access",
68
- onPress: handleRequestPermission,
69
- backgroundColor: primaryColor,
70
- loading: isRequestingPermission
71
- }));
72
- const renderNoDevice = () => /*#__PURE__*/_react.default.createElement(_reactNative.View, {
73
- style: styles.errorContainer
74
- }, /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
75
- style: styles.errorTitle
76
- }, "Camera Not Available"), /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
77
- style: styles.errorSubtitle
78
- }, "No front camera detected on this device. Face verification requires a front-facing camera."));
79
- const renderCamera = () => {
80
- if (!device) return null;
81
- return /*#__PURE__*/_react.default.createElement(_reactNative.View, {
82
- style: styles.cameraContainer
83
- }, /*#__PURE__*/_react.default.createElement(_reactNativeVisionCamera.Camera, {
84
- device: device,
85
- style: styles.camera,
86
- isActive: true,
87
- frameProcessor: frameProcessor
88
- }), /*#__PURE__*/_react.default.createElement(_reactNative.View, {
89
- style: styles.cameraOverlay
90
- }, /*#__PURE__*/_react.default.createElement(_reactNative.View, {
91
- style: styles.faceFrame
92
- }), /*#__PURE__*/_react.default.createElement(_reactNative.View, {
93
- style: styles.progressContainer
94
- }, /*#__PURE__*/_react.default.createElement(_reactNative.View, {
95
- style: [styles.progressBar, {
96
- width: `${flowState.progress}%`,
97
- backgroundColor: primaryColor
98
- }]
99
- })), /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
100
- style: styles.instructionText
101
- }, flowState.instruction), /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
102
- style: styles.stepIndicator
103
- }, "Step ", flowState.completedSteps.length + 1, " of 5"), isCompleted && /*#__PURE__*/_react.default.createElement(_reactNative.View, {
104
- style: [styles.statusContainer, {
105
- backgroundColor: primaryColor
106
- }]
107
- }, /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
108
- style: styles.statusText
109
- }, "\u2713 Verification Complete!")), isFailed && /*#__PURE__*/_react.default.createElement(_reactNative.View, {
110
- style: [styles.statusContainer, styles.statusContainerError]
111
- }, /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
112
- style: styles.statusText
113
- }, "\u2717 Verification Failed"), /*#__PURE__*/_react.default.createElement(_Button.default, {
114
- title: "Try Again",
115
- onPress: resetFlow,
116
- backgroundColor: "white",
117
- textColor: "#ff4444",
118
- style: styles.retryButton
119
- }))));
120
- };
121
- console.log(onSuccess, primaryColor);
122
- return /*#__PURE__*/_react.default.createElement(_reactNative.Modal, {
123
- visible: true,
124
- transparent: true,
125
- onRequestClose: onClose,
126
- style: styles.modal
127
- }, /*#__PURE__*/_react.default.createElement(_reactNative.TouchableOpacity, {
128
- style: styles.backdrop,
129
- activeOpacity: 1,
130
- onPress: onClose
131
- }, /*#__PURE__*/_react.default.createElement(_reactNative.View, {
132
- style: [styles.container]
133
- }, /*#__PURE__*/_react.default.createElement(_reactNative.TouchableOpacity, {
134
- style: styles.close,
135
- onPress: onClose
136
- }, /*#__PURE__*/_react.default.createElement(_reactNative.Image, {
137
- source: require('../../assets/cancel.png'),
138
- style: styles.closeIcon
139
- })), /*#__PURE__*/_react.default.createElement(_reactNative.View, {
140
- style: styles.contentContainer
141
- }, !hasPermission && renderPermissionRequest(), hasPermission && !device && renderNoDevice(), hasPermission && device && renderCamera()))));
142
- };
143
- var _default = exports.default = FaceVerification;
144
- const styles = _reactNative.StyleSheet.create({
145
- hide: {
146
- display: 'none'
147
- },
148
- full: {
149
- flex: 1,
150
- width: '100%',
151
- height: '100%'
152
- },
153
- webview: {
154
- flex: 1,
155
- width: '100%',
156
- height: _reactNative.Dimensions.get('window').height - 40,
157
- backgroundColor: 'white',
158
- borderTopRightRadius: 20,
159
- borderTopLeftRadius: 20,
160
- paddingTop: 150
161
- },
162
- webviewLoader: {
163
- zIndex: 3,
164
- backgroundColor: 'white',
165
- alignItems: 'center',
166
- justifyContent: 'center',
167
- flex: 1,
168
- width: '100%',
169
- height: '100%',
170
- position: 'absolute',
171
- top: 0,
172
- left: 0,
173
- borderTopRightRadius: 20,
174
- borderTopLeftRadius: 20
175
- },
176
- backdrop: {
177
- backgroundColor: 'rgba(0,0,0,0.3)',
178
- flex: 1,
179
- justifyContent: 'flex-end',
180
- position: 'relative',
181
- height: '100%'
182
- },
183
- container: {
184
- backgroundColor: 'white',
185
- borderTopRightRadius: 20,
186
- borderTopLeftRadius: 20,
187
- maxHeight: _reactNative.Dimensions.get('window').height - 120,
188
- flex: 1,
189
- position: 'relative',
190
- ...(_reactNative.Platform.OS === 'android' && {
191
- overflow: 'hidden'
192
- })
193
- },
194
- modal: {
195
- flex: 1,
196
- backgroundColor: 'rgba(0,0,0,0.48)',
197
- height: '100%',
198
- width: '100%'
199
- },
200
- close: {
201
- position: 'absolute',
202
- top: 10,
203
- right: 10,
204
- backgroundColor: 'white',
205
- height: 24,
206
- width: 24,
207
- borderRadius: 1000,
208
- alignItems: 'center',
209
- justifyContent: 'center',
210
- zIndex: 2
211
- },
212
- closeIcon: {
213
- height: 12,
214
- width: 12
215
- },
216
- contentContainer: {
217
- height: '100%',
218
- position: 'relative',
219
- borderTopRightRadius: 20,
220
- borderTopLeftRadius: 20,
221
- padding: 16
222
- },
223
- testContent: {
224
- paddingTop: 30,
225
- paddingLeft: 16
226
- },
227
- testTwoContent: {
228
- paddingTop: 10,
229
- paddingLeft: 16
230
- },
231
- errorSubtitle: {
232
- textAlign: 'center',
233
- fontSize: 14,
234
- color: '#5e7079',
235
- marginBottom: 20,
236
- paddingHorizontal: 8,
237
- marginTop: 14
238
- },
239
- errorContainer: {
240
- flex: 1,
241
- justifyContent: 'center',
242
- alignItems: 'center',
243
- width: _reactNative.Dimensions.get('window').width,
244
- height: _reactNative.Dimensions.get('window').height,
245
- zIndex: 2,
246
- backgroundColor: 'white'
247
- },
248
- camera: {
249
- width: '100%',
250
- height: 400
251
- },
252
- // Permission request styles
253
- permissionContainer: {
254
- flex: 1,
255
- justifyContent: 'center',
256
- alignItems: 'center',
257
- paddingHorizontal: 24,
258
- paddingVertical: 40
259
- },
260
- permissionIconContainer: {
261
- width: 80,
262
- height: 80,
263
- borderRadius: 40,
264
- backgroundColor: '#f0f0f0',
265
- justifyContent: 'center',
266
- alignItems: 'center',
267
- marginBottom: 24
268
- },
269
- permissionIcon: {
270
- fontSize: 40
271
- },
272
- permissionTitle: {
273
- fontSize: 20,
274
- fontWeight: '600',
275
- color: '#1a1a1a',
276
- textAlign: 'center',
277
- marginBottom: 12
278
- },
279
- permissionDescription: {
280
- fontSize: 16,
281
- color: '#666',
282
- textAlign: 'center',
283
- lineHeight: 22,
284
- marginBottom: 32
285
- },
286
- // Error styles
287
- errorTitle: {
288
- fontSize: 18,
289
- fontWeight: '600',
290
- color: '#1a1a1a',
291
- textAlign: 'center',
292
- marginBottom: 8
293
- },
294
- // Camera styles
295
- cameraContainer: {
296
- flex: 1,
297
- position: 'relative',
298
- marginTop: 60
299
- },
300
- cameraOverlay: {
301
- position: 'absolute',
302
- top: 0,
303
- left: 0,
304
- right: 0,
305
- bottom: 0,
306
- justifyContent: 'center',
307
- alignItems: 'center'
308
- },
309
- faceFrame: {
310
- width: 200,
311
- height: 250,
312
- borderWidth: 3,
313
- borderColor: 'white',
314
- borderRadius: 100,
315
- borderStyle: 'dashed',
316
- backgroundColor: 'transparent'
317
- },
318
- instructionText: {
319
- color: 'white',
320
- fontSize: 16,
321
- fontWeight: '500',
322
- textAlign: 'center',
323
- marginTop: 20,
324
- backgroundColor: 'rgba(0,0,0,0.7)',
325
- paddingHorizontal: 16,
326
- paddingVertical: 8,
327
- borderRadius: 20
328
- },
329
- // Verification flow styles
330
- progressContainer: {
331
- position: 'absolute',
332
- top: 20,
333
- left: 20,
334
- right: 20,
335
- height: 4,
336
- backgroundColor: 'rgba(255,255,255,0.3)',
337
- borderRadius: 2,
338
- overflow: 'hidden'
339
- },
340
- progressBar: {
341
- height: '100%',
342
- borderRadius: 2
343
- },
344
- stepIndicator: {
345
- color: 'white',
346
- fontSize: 14,
347
- fontWeight: '400',
348
- textAlign: 'center',
349
- marginTop: 8,
350
- backgroundColor: 'rgba(0,0,0,0.5)',
351
- paddingHorizontal: 12,
352
- paddingVertical: 4,
353
- borderRadius: 12,
354
- alignSelf: 'center'
355
- },
356
- statusContainer: {
357
- position: 'absolute',
358
- bottom: 40,
359
- left: 20,
360
- right: 20,
361
- padding: 20,
362
- borderRadius: 12,
363
- alignItems: 'center'
364
- },
365
- statusContainerError: {
366
- backgroundColor: '#ff4444'
367
- },
368
- statusText: {
369
- color: 'white',
370
- fontSize: 18,
371
- fontWeight: '600',
372
- textAlign: 'center',
373
- marginBottom: 8
374
- },
375
- retryButton: {
376
- marginTop: 12,
377
- minWidth: 120
378
- }
379
- });
380
- //# sourceMappingURL=FaceVerification.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_reactNativeVisionCamera","_Button","_interopRequireDefault","_useFaceVerification","_useFaceVerificationFlow","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","FaceVerification","onClose","onSuccess","primaryColor","device","useCameraDevice","hasPermission","requestPermission","useCameraPermission","isRequestingPermission","setIsRequestingPermission","useState","state","flowState","resetFlow","isCompleted","isFailed","useFaceVerificationFlow","frameProcessor","useFaceVerification","useEffect","setTimeout","handleRequestPermission","error","console","renderPermissionRequest","createElement","View","style","styles","permissionContainer","permissionIconContainer","Text","permissionIcon","permissionTitle","permissionDescription","title","onPress","backgroundColor","loading","renderNoDevice","errorContainer","errorTitle","errorSubtitle","renderCamera","cameraContainer","Camera","camera","isActive","cameraOverlay","faceFrame","progressContainer","progressBar","width","progress","instructionText","instruction","stepIndicator","completedSteps","length","statusContainer","statusText","statusContainerError","textColor","retryButton","log","Modal","visible","transparent","onRequestClose","modal","TouchableOpacity","backdrop","activeOpacity","container","close","Image","source","closeIcon","contentContainer","_default","exports","StyleSheet","create","hide","display","full","flex","height","webview","Dimensions","borderTopRightRadius","borderTopLeftRadius","paddingTop","webviewLoader","zIndex","alignItems","justifyContent","position","top","left","maxHeight","Platform","OS","overflow","right","borderRadius","padding","testContent","paddingLeft","testTwoContent","textAlign","fontSize","color","marginBottom","paddingHorizontal","marginTop","paddingVertical","fontWeight","lineHeight","bottom","borderWidth","borderColor","borderStyle","alignSelf","minWidth"],"sourceRoot":"../../../../src","sources":["components/biometrics/FaceVerification.tsx"],"mappings":"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","ignoreList":[]}
@@ -1,85 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.useFaceVerification = exports.FaceVerificationUtils = void 0;
7
- var _reactNativeVisionCamera = require("react-native-vision-camera");
8
- // Note: For production use, you would typically use shared values or state management
9
- // to communicate results from the worklet back to the React component.
10
- // This simplified version just logs results for debugging.
11
-
12
- // Initialize the plugin
13
- const plugin = _reactNativeVisionCamera.VisionCameraProxy.initFrameProcessorPlugin('detectFaces', {});
14
- const useFaceVerification = () => {
15
- const frameProcessor = (0, _reactNativeVisionCamera.useFrameProcessor)(frame => {
16
- 'worklet';
17
-
18
- try {
19
- if (plugin == null) {
20
- console.error('Failed to load Frame Processor Plugin "detectFaces"!');
21
- return null;
22
- }
23
- const result = plugin.call(frame, {});
24
-
25
- // For debugging - this works in worklets
26
- if (result && result.faceDetected) {
27
- console.log('Face detected:', result);
28
- }
29
- return result;
30
- } catch (error) {
31
- console.error('Face verification error:', error);
32
- return {
33
- faceDetected: false,
34
- error: error instanceof Error ? error.message : 'Unknown error'
35
- };
36
- }
37
- }, []);
38
- return frameProcessor;
39
- };
40
-
41
- // Utility functions for interpreting results
42
- exports.useFaceVerification = useFaceVerification;
43
- const FaceVerificationUtils = exports.FaceVerificationUtils = {
44
- // Check if head is turned left (yaw > 20 degrees)
45
- isHeadTurnedLeft: result => {
46
- var _result$headPose;
47
- return (_result$headPose = result.headPose) !== null && _result$headPose !== void 0 && _result$headPose.yaw ? result.headPose.yaw > 20 : false;
48
- },
49
- // Check if head is turned right (yaw < -20 degrees)
50
- isHeadTurnedRight: result => {
51
- var _result$headPose2;
52
- return (_result$headPose2 = result.headPose) !== null && _result$headPose2 !== void 0 && _result$headPose2.yaw ? result.headPose.yaw < -20 : false;
53
- },
54
- // Check if head is tilted up (pitch > 10 degrees)
55
- isHeadTiltedUp: result => {
56
- var _result$headPose3;
57
- return (_result$headPose3 = result.headPose) !== null && _result$headPose3 !== void 0 && _result$headPose3.pitch ? result.headPose.pitch > 10 : false;
58
- },
59
- // Check if head is tilted down (pitch < -10 degrees)
60
- isHeadTiltedDown: result => {
61
- var _result$headPose4;
62
- return (_result$headPose4 = result.headPose) !== null && _result$headPose4 !== void 0 && _result$headPose4.pitch ? result.headPose.pitch < -10 : false;
63
- },
64
- // Check if face is centered (within ±10 degrees)
65
- isFaceCentered: result => {
66
- if (!result.headPose) return false;
67
- const {
68
- yaw,
69
- pitch
70
- } = result.headPose;
71
- return Math.abs(yaw) <= 10 && Math.abs(pitch) <= 10;
72
- },
73
- // Check if smile is confident (high probability)
74
- isConfidentSmile: result => {
75
- return result.smileProbability ? result.smileProbability > 0.8 : result.isSmiling || false;
76
- },
77
- // Check if both eyes are confidently closed
78
- isConfidentBlink: result => {
79
- if (result.leftEyeOpenProbability !== undefined && result.rightEyeOpenProbability !== undefined) {
80
- return result.leftEyeOpenProbability < 0.2 && result.rightEyeOpenProbability < 0.2;
81
- }
82
- return result.isBlinking || false;
83
- }
84
- };
85
- //# sourceMappingURL=useFaceVerification.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["_reactNativeVisionCamera","require","plugin","VisionCameraProxy","initFrameProcessorPlugin","useFaceVerification","frameProcessor","useFrameProcessor","frame","console","error","result","call","faceDetected","log","Error","message","exports","FaceVerificationUtils","isHeadTurnedLeft","_result$headPose","headPose","yaw","isHeadTurnedRight","_result$headPose2","isHeadTiltedUp","_result$headPose3","pitch","isHeadTiltedDown","_result$headPose4","isFaceCentered","Math","abs","isConfidentSmile","smileProbability","isSmiling","isConfidentBlink","leftEyeOpenProbability","undefined","rightEyeOpenProbability","isBlinking"],"sourceRoot":"../../../../src","sources":["components/biometrics/useFaceVerification.ts"],"mappings":";;;;;;AAAA,IAAAA,wBAAA,GAAAC,OAAA;AAiCA;AACA;AACA;;AAEA;AACA,MAAMC,MAAM,GAAGC,0CAAiB,CAACC,wBAAwB,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;AAErE,MAAMC,mBAAmB,GAAGA,CAAA,KAAM;EACvC,MAAMC,cAAc,GAAG,IAAAC,0CAAiB,EAAEC,KAAK,IAAK;IAClD,SAAS;;IAET,IAAI;MACF,IAAIN,MAAM,IAAI,IAAI,EAAE;QAClBO,OAAO,CAACC,KAAK,CAAC,sDAAsD,CAAC;QACrE,OAAO,IAAI;MACb;MAEA,MAAMC,MAAM,GAAGT,MAAM,CAACU,IAAI,CAACJ,KAAK,EAAE,CAAC,CAAC,CAAQ;;MAE5C;MACA,IAAIG,MAAM,IAAIA,MAAM,CAACE,YAAY,EAAE;QACjCJ,OAAO,CAACK,GAAG,CAAC,gBAAgB,EAAEH,MAAM,CAAC;MACvC;MAEA,OAAOA,MAAM;IACf,CAAC,CAAC,OAAOD,KAAK,EAAE;MACdD,OAAO,CAACC,KAAK,CAAC,0BAA0B,EAAEA,KAAK,CAAC;MAChD,OAAO;QACLG,YAAY,EAAE,KAAK;QACnBH,KAAK,EAAEA,KAAK,YAAYK,KAAK,GAAGL,KAAK,CAACM,OAAO,GAAG;MAClD,CAAC;IACH;EACF,CAAC,EAAE,EAAE,CAAC;EAEN,OAAOV,cAAc;AACvB,CAAC;;AAED;AAAAW,OAAA,CAAAZ,mBAAA,GAAAA,mBAAA;AACO,MAAMa,qBAAqB,GAAAD,OAAA,CAAAC,qBAAA,GAAG;EACnC;EACAC,gBAAgB,EAAGR,MAA8B,IAAc;IAAA,IAAAS,gBAAA;IAC7D,OAAO,CAAAA,gBAAA,GAAAT,MAAM,CAACU,QAAQ,cAAAD,gBAAA,eAAfA,gBAAA,CAAiBE,GAAG,GAAGX,MAAM,CAACU,QAAQ,CAACC,GAAG,GAAG,EAAE,GAAG,KAAK;EAChE,CAAC;EAED;EACAC,iBAAiB,EAAGZ,MAA8B,IAAc;IAAA,IAAAa,iBAAA;IAC9D,OAAO,CAAAA,iBAAA,GAAAb,MAAM,CAACU,QAAQ,cAAAG,iBAAA,eAAfA,iBAAA,CAAiBF,GAAG,GAAGX,MAAM,CAACU,QAAQ,CAACC,GAAG,GAAG,CAAC,EAAE,GAAG,KAAK;EACjE,CAAC;EAED;EACAG,cAAc,EAAGd,MAA8B,IAAc;IAAA,IAAAe,iBAAA;IAC3D,OAAO,CAAAA,iBAAA,GAAAf,MAAM,CAACU,QAAQ,cAAAK,iBAAA,eAAfA,iBAAA,CAAiBC,KAAK,GAAGhB,MAAM,CAACU,QAAQ,CAACM,KAAK,GAAG,EAAE,GAAG,KAAK;EACpE,CAAC;EAED;EACAC,gBAAgB,EAAGjB,MAA8B,IAAc;IAAA,IAAAkB,iBAAA;IAC7D,OAAO,CAAAA,iBAAA,GAAAlB,MAAM,CAACU,QAAQ,cAAAQ,iBAAA,eAAfA,iBAAA,CAAiBF,KAAK,GAAGhB,MAAM,CAACU,QAAQ,CAACM,KAAK,GAAG,CAAC,EAAE,GAAG,KAAK;EACrE,CAAC;EAED;EACAG,cAAc,EAAGnB,MAA8B,IAAc;IAC3D,IAAI,CAACA,MAAM,CAACU,QAAQ,EAAE,OAAO,KAAK;IAClC,MAAM;MAAEC,GAAG;MAAEK;IAAM,CAAC,GAAGhB,MAAM,CAACU,QAAQ;IACtC,OAAOU,IAAI,CAACC,GAAG,CAACV,GAAG,CAAC,IAAI,EAAE,IAAIS,IAAI,CAACC,GAAG,CAACL,KAAK,CAAC,IAAI,EAAE;EACrD,CAAC;EAED;EACAM,gBAAgB,EAAGtB,MAA8B,IAAc;IAC7D,OAAOA,MAAM,CAACuB,gBAAgB,GAC1BvB,MAAM,CAACuB,gBAAgB,GAAG,GAAG,GAC7BvB,MAAM,CAACwB,SAAS,IAAI,KAAK;EAC/B,CAAC;EAED;EACAC,gBAAgB,EAAGzB,MAA8B,IAAc;IAC7D,IACEA,MAAM,CAAC0B,sBAAsB,KAAKC,SAAS,IAC3C3B,MAAM,CAAC4B,uBAAuB,KAAKD,SAAS,EAC5C;MACA,OACE3B,MAAM,CAAC0B,sBAAsB,GAAG,GAAG,IACnC1B,MAAM,CAAC4B,uBAAuB,GAAG,GAAG;IAExC;IACA,OAAO5B,MAAM,CAAC6B,UAAU,IAAI,KAAK;EACnC;AACF,CAAC","ignoreList":[]}