@hexar/biometric-identity-sdk-react-native 1.7.0 → 1.9.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.
@@ -1 +1 @@
1
- {"version":3,"file":"ProfilePictureCapture.d.ts","sourceRoot":"","sources":["../../src/components/ProfilePictureCapture.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmD,MAAM,OAAO,CAAC;AAWxE,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAmC,cAAc,EAAsB,MAAM,oCAAoC,CAAC;AAGzJ,MAAM,WAAW,8BAA8B;IAC7C,OAAO,EAAE,OAAO,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,OAAO,CAAC;IACtB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,0BAA0B;IACzC,UAAU,EAAE,CAAC,MAAM,EAAE,8BAA8B,KAAK,IAAI,CAAC;IAC7D,OAAO,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,IAAI,CAAC;IACzC,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,QAAQ,CAAC,EAAE,iBAAiB,CAAC;CAC9B;AAED,eAAO,MAAM,qBAAqB,EAAE,KAAK,CAAC,EAAE,CAAC,0BAA0B,CA8VtE,CAAC;AAsEF,eAAe,qBAAqB,CAAC"}
1
+ {"version":3,"file":"ProfilePictureCapture.d.ts","sourceRoot":"","sources":["../../src/components/ProfilePictureCapture.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmD,MAAM,OAAO,CAAC;AAWxE,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAmC,cAAc,EAAsB,MAAM,oCAAoC,CAAC;AAGzJ,MAAM,WAAW,8BAA8B;IAC7C,OAAO,EAAE,OAAO,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,OAAO,CAAC;IACtB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,0BAA0B;IACzC,UAAU,EAAE,CAAC,MAAM,EAAE,8BAA8B,KAAK,IAAI,CAAC;IAC7D,OAAO,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,IAAI,CAAC;IACzC,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,QAAQ,CAAC,EAAE,iBAAiB,CAAC;CAC9B;AAED,eAAO,MAAM,qBAAqB,EAAE,KAAK,CAAC,EAAE,CAAC,0BAA0B,CAkWtE,CAAC;AA4EF,eAAe,qBAAqB,CAAC"}
@@ -284,6 +284,7 @@ const ProfilePictureCapture = ({ onComplete, onError, onCancel, theme, language,
284
284
  react_1.default.createElement(react_native_1.ActivityIndicator, { size: "large", color: theme?.primaryColor || '#4f46e5' }),
285
285
  react_1.default.createElement(react_native_1.Text, { style: [styles.progressTitle, { color: theme?.textColor || '#1e1b4b' }] }, strings.validation.title || strings.liveness.processing || strings.validation.checkingLiveness || 'Validating Profile Picture'),
286
286
  react_1.default.createElement(react_native_1.Text, { style: [styles.progressStatusText, { color: theme?.secondaryTextColor || '#64748b' }] }, strings.validation.validatingFace || strings.liveness.processing || 'Validando rostro...'),
287
+ react_1.default.createElement(react_native_1.Text, { style: [styles.progressDoNotLockText, { color: theme?.secondaryTextColor || '#64748b' }] }, strings.validation.doNotLockScreen || 'No bloquees la pantalla'),
287
288
  react_1.default.createElement(react_native_1.View, { style: styles.progressBarContainer },
288
289
  react_1.default.createElement(react_native_1.View, { style: styles.progressBar },
289
290
  react_1.default.createElement(react_native_1.Animated.View, { style: [
@@ -348,6 +349,12 @@ const styles = react_native_1.StyleSheet.create({
348
349
  },
349
350
  progressStatusText: {
350
351
  fontSize: 16,
352
+ marginBottom: 8,
353
+ textAlign: 'center',
354
+ },
355
+ progressDoNotLockText: {
356
+ fontSize: 14,
357
+ fontWeight: '600',
351
358
  marginBottom: 32,
352
359
  textAlign: 'center',
353
360
  },
@@ -1 +1 @@
1
- {"version":3,"file":"ValidationProgress.d.ts","sourceRoot":"","sources":["../../src/components/ValidationProgress.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAsC,MAAM,OAAO,CAAC;AAQ3D,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAA2B,MAAM,oCAAoC,CAAC;AAE7G,MAAM,WAAW,uBAAuB;IACtC,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,QAAQ,CAAC,EAAE,iBAAiB,CAAC;CAC9B;AAED,eAAO,MAAM,kBAAkB,EAAE,KAAK,CAAC,EAAE,CAAC,uBAAuB,CAqGhE,CAAC;AAqDF,eAAe,kBAAkB,CAAC"}
1
+ {"version":3,"file":"ValidationProgress.d.ts","sourceRoot":"","sources":["../../src/components/ValidationProgress.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAsC,MAAM,OAAO,CAAC;AAQ3D,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAA2B,MAAM,oCAAoC,CAAC;AAE7G,MAAM,WAAW,uBAAuB;IACtC,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,QAAQ,CAAC,EAAE,iBAAiB,CAAC;CAC9B;AAED,eAAO,MAAM,kBAAkB,EAAE,KAAK,CAAC,EAAE,CAAC,uBAAuB,CAyGhE,CAAC;AA2DF,eAAe,kBAAkB,CAAC"}
@@ -55,10 +55,10 @@ const ValidationProgress = ({ progress, theme, language = 'en', }) => {
55
55
  // Start animation from 0 to 90% over 60 seconds (1 minute) - only once
56
56
  if (!hasStartedAnimation.current) {
57
57
  hasStartedAnimation.current = true;
58
- // Start animation to 90% over 60 seconds, regardless of backend progress
58
+ // Start animation to 90% over 70 seconds, regardless of backend progress
59
59
  animationRef.current = react_native_1.Animated.timing(animatedProgress, {
60
60
  toValue: 90,
61
- duration: 60000, // 60 seconds
61
+ duration: 70000, // 70 seconds
62
62
  useNativeDriver: false,
63
63
  });
64
64
  animationRef.current.start();
@@ -93,6 +93,7 @@ const ValidationProgress = ({ progress, theme, language = 'en', }) => {
93
93
  react_1.default.createElement(react_native_1.ActivityIndicator, { size: "large", color: theme?.primaryColor || '#6366F1' }),
94
94
  react_1.default.createElement(react_native_1.Text, { style: [styles.title, { color: theme?.textColor || '#000000' }] }, strings.validation.title || 'Validating Identity'),
95
95
  react_1.default.createElement(react_native_1.Text, { style: [styles.statusText, { color: theme?.secondaryTextColor || '#6B7280' }] }, strings.validation.validatingDocumentAndFace || 'Validando documento y rostro...'),
96
+ react_1.default.createElement(react_native_1.Text, { style: [styles.doNotLockText, { color: theme?.secondaryTextColor || '#6B7280' }] }, strings.validation.doNotLockScreen || 'No bloquees la pantalla'),
96
97
  react_1.default.createElement(react_native_1.View, { style: styles.progressBarContainer },
97
98
  react_1.default.createElement(react_native_1.View, { style: styles.progressBar },
98
99
  react_1.default.createElement(react_native_1.Animated.View, { style: [
@@ -127,6 +128,12 @@ const styles = react_native_1.StyleSheet.create({
127
128
  },
128
129
  statusText: {
129
130
  fontSize: 16,
131
+ marginBottom: 8,
132
+ textAlign: 'center',
133
+ },
134
+ doNotLockText: {
135
+ fontSize: 14,
136
+ fontWeight: '600',
130
137
  marginBottom: 32,
131
138
  textAlign: 'center',
132
139
  },
@@ -347,7 +347,7 @@ const VideoRecorder = ({ theme, language, duration, instructions, challenges: pr
347
347
  framesRef.current = [];
348
348
  let consecutiveErrors = 0;
349
349
  const maxConsecutiveErrors = 10;
350
- const MAX_FRAMES = 80;
350
+ const MAX_FRAMES = 150;
351
351
  // Serial capture: each frame is captured only after the previous one
352
352
  // finishes, preventing overlapping takePhoto() calls that cause the
353
353
  // camera to throw "busy" errors and kill the capture loop.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hexar/biometric-identity-sdk-react-native",
3
- "version": "1.7.0",
3
+ "version": "1.9.0",
4
4
  "description": "React Native wrapper for Biometric Identity SDK",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -315,6 +315,10 @@ export const ProfilePictureCapture: React.FC<ProfilePictureCaptureProps> = ({
315
315
  {(strings.validation as any).validatingFace || strings.liveness.processing || 'Validando rostro...'}
316
316
  </Text>
317
317
 
318
+ <Text style={[styles.progressDoNotLockText, { color: theme?.secondaryTextColor || '#64748b' }]}>
319
+ {strings.validation.doNotLockScreen || 'No bloquees la pantalla'}
320
+ </Text>
321
+
318
322
  {/* Progress Bar */}
319
323
  <View style={styles.progressBarContainer}>
320
324
  <View style={styles.progressBar}>
@@ -417,6 +421,12 @@ const styles = StyleSheet.create({
417
421
  },
418
422
  progressStatusText: {
419
423
  fontSize: 16,
424
+ marginBottom: 8,
425
+ textAlign: 'center',
426
+ },
427
+ progressDoNotLockText: {
428
+ fontSize: 14,
429
+ fontWeight: '600',
420
430
  marginBottom: 32,
421
431
  textAlign: 'center',
422
432
  },
@@ -40,10 +40,10 @@ export const ValidationProgress: React.FC<ValidationProgressProps> = ({
40
40
  if (!hasStartedAnimation.current) {
41
41
  hasStartedAnimation.current = true;
42
42
 
43
- // Start animation to 90% over 60 seconds, regardless of backend progress
43
+ // Start animation to 90% over 70 seconds, regardless of backend progress
44
44
  animationRef.current = Animated.timing(animatedProgress, {
45
45
  toValue: 90,
46
- duration: 60000, // 60 seconds
46
+ duration: 70000, // 70 seconds
47
47
  useNativeDriver: false,
48
48
  });
49
49
 
@@ -96,6 +96,10 @@ export const ValidationProgress: React.FC<ValidationProgressProps> = ({
96
96
  {strings.validation.validatingDocumentAndFace || 'Validando documento y rostro...'}
97
97
  </Text>
98
98
 
99
+ <Text style={[styles.doNotLockText, { color: theme?.secondaryTextColor || '#6B7280' }]}>
100
+ {strings.validation.doNotLockScreen || 'No bloquees la pantalla'}
101
+ </Text>
102
+
99
103
  {/* Progress Bar */}
100
104
  <View style={styles.progressBarContainer}>
101
105
  <View style={styles.progressBar}>
@@ -141,6 +145,12 @@ const styles = StyleSheet.create({
141
145
  },
142
146
  statusText: {
143
147
  fontSize: 16,
148
+ marginBottom: 8,
149
+ textAlign: 'center',
150
+ },
151
+ doNotLockText: {
152
+ fontSize: 14,
153
+ fontWeight: '600',
144
154
  marginBottom: 32,
145
155
  textAlign: 'center',
146
156
  },
@@ -415,7 +415,7 @@ export const VideoRecorder: React.FC<VideoRecorderProps> = ({
415
415
  framesRef.current = [];
416
416
  let consecutiveErrors = 0;
417
417
  const maxConsecutiveErrors = 10;
418
- const MAX_FRAMES = 80;
418
+ const MAX_FRAMES = 150;
419
419
 
420
420
  // Serial capture: each frame is captured only after the previous one
421
421
  // finishes, preventing overlapping takePhoto() calls that cause the