@evervault/react-native 2.5.1 → 2.6.1

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 (157) hide show
  1. package/README.md +0 -2
  2. package/build/cjs/Card/Cvc.js +29 -0
  3. package/build/cjs/Card/Expiry.js +12 -0
  4. package/build/cjs/Card/Holder.js +15 -0
  5. package/build/cjs/Card/Number.js +27 -0
  6. package/build/cjs/Card/Root.js +70 -0
  7. package/build/cjs/Card/index.js +20 -0
  8. package/build/cjs/Card/schema.js +32 -0
  9. package/build/cjs/Card/types.js +21 -0
  10. package/build/cjs/Card/utils.js +87 -0
  11. package/build/cjs/EvervaultProvider.js +17 -0
  12. package/build/cjs/Input.js +107 -0
  13. package/build/cjs/ThreeDSecure/Frame.js +37 -0
  14. package/build/cjs/ThreeDSecure/Root.js +14 -0
  15. package/build/cjs/ThreeDSecure/config.js +7 -0
  16. package/build/cjs/ThreeDSecure/context.js +7 -0
  17. package/build/cjs/ThreeDSecure/event.js +20 -0
  18. package/build/cjs/ThreeDSecure/index.js +12 -0
  19. package/build/cjs/ThreeDSecure/session.js +141 -0
  20. package/build/cjs/ThreeDSecure/types.js +2 -0
  21. package/build/cjs/ThreeDSecure/useThreeDSecure.js +44 -0
  22. package/build/cjs/__mocks__/NativeEvervault.js +14 -0
  23. package/build/cjs/__mocks__/react-native-webview.js +10 -0
  24. package/build/cjs/context.js +7 -0
  25. package/build/cjs/index.js +25 -0
  26. package/build/cjs/node_modules/@hookform/resolvers/dist/resolvers.js +8 -0
  27. package/build/cjs/node_modules/@hookform/resolvers/zod/dist/zod.js +8 -0
  28. package/build/cjs/node_modules/react-hook-form/dist/index.esm.js +2221 -0
  29. package/build/cjs/node_modules/react-native-mask-input/lib/module/MaskInput.js +60 -0
  30. package/build/cjs/node_modules/react-native-mask-input/lib/module/formatWithMask.js +92 -0
  31. package/build/cjs/node_modules/react-native-mask-input/lib/module/index.js +10 -0
  32. package/build/cjs/node_modules/react-native-mask-input/lib/module/useMaskedInputProps.js +93 -0
  33. package/build/{index.cjs.js → cjs/node_modules/zod/lib/index.js} +193 -3490
  34. package/build/cjs/packages/card-validator/dist/evervault-card-validator.main.js +349 -0
  35. package/build/cjs/sdk.js +53 -0
  36. package/build/cjs/specs/NativeEvervault.js +7 -0
  37. package/build/cjs/useEvervault.js +14 -0
  38. package/build/cjs/utils.js +34 -0
  39. package/build/{Card → esm/Card}/Cvc.d.ts +0 -1
  40. package/build/esm/Card/Cvc.js +27 -0
  41. package/build/{Card → esm/Card}/Expiry.d.ts +0 -1
  42. package/build/esm/Card/Expiry.js +10 -0
  43. package/build/{Card → esm/Card}/Holder.d.ts +0 -1
  44. package/build/esm/Card/Holder.js +13 -0
  45. package/build/{Card → esm/Card}/Number.d.ts +0 -1
  46. package/build/esm/Card/Number.js +25 -0
  47. package/build/{Card → esm/Card}/Root.d.ts +0 -1
  48. package/build/esm/Card/Root.js +68 -0
  49. package/build/{Card → esm/Card}/index.d.ts +0 -1
  50. package/build/esm/Card/index.js +14 -0
  51. package/build/{Card → esm/Card}/schema.d.ts +0 -1
  52. package/build/esm/Card/schema.js +30 -0
  53. package/build/{Card → esm/Card}/types.d.ts +0 -1
  54. package/build/esm/Card/types.js +19 -0
  55. package/build/{Card → esm/Card}/utils.d.ts +0 -1
  56. package/build/esm/Card/utils.js +82 -0
  57. package/build/{EvervaultProvider.d.ts → esm/EvervaultProvider.d.ts} +0 -1
  58. package/build/esm/EvervaultProvider.js +15 -0
  59. package/build/{Input.d.ts → esm/Input.d.ts} +0 -1
  60. package/build/esm/Input.js +103 -0
  61. package/build/{ThreeDSecure → esm/ThreeDSecure}/Frame.d.ts +0 -1
  62. package/build/esm/ThreeDSecure/Frame.js +35 -0
  63. package/build/{ThreeDSecure → esm/ThreeDSecure}/Root.d.ts +0 -1
  64. package/build/esm/ThreeDSecure/Root.js +12 -0
  65. package/build/{ThreeDSecure → esm/ThreeDSecure}/config.d.ts +0 -1
  66. package/build/esm/ThreeDSecure/config.js +4 -0
  67. package/build/{ThreeDSecure → esm/ThreeDSecure}/context.d.ts +0 -1
  68. package/build/esm/ThreeDSecure/context.js +5 -0
  69. package/build/{ThreeDSecure → esm/ThreeDSecure}/event.d.ts +0 -1
  70. package/build/esm/ThreeDSecure/event.js +18 -0
  71. package/build/{ThreeDSecure → esm/ThreeDSecure}/index.d.ts +0 -1
  72. package/build/esm/ThreeDSecure/index.js +9 -0
  73. package/build/{ThreeDSecure → esm/ThreeDSecure}/session.d.ts +0 -1
  74. package/build/esm/ThreeDSecure/session.js +136 -0
  75. package/build/{ThreeDSecure → esm/ThreeDSecure}/types.d.ts +0 -1
  76. package/build/esm/ThreeDSecure/types.js +1 -0
  77. package/build/{ThreeDSecure → esm/ThreeDSecure}/useThreeDSecure.d.ts +0 -1
  78. package/build/esm/ThreeDSecure/useThreeDSecure.js +42 -0
  79. package/build/{__mocks__ → esm/__mocks__}/NativeEvervault.d.ts +0 -1
  80. package/build/esm/__mocks__/NativeEvervault.js +11 -0
  81. package/build/{__mocks__ → esm/__mocks__}/react-native-webview.d.ts +0 -1
  82. package/build/esm/__mocks__/react-native-webview.js +8 -0
  83. package/build/{context.d.ts → esm/context.d.ts} +0 -1
  84. package/build/esm/context.js +5 -0
  85. package/build/{index.d.ts → esm/index.d.ts} +0 -1
  86. package/build/esm/index.js +14 -0
  87. package/build/esm/node_modules/@hookform/resolvers/dist/resolvers.js +5 -0
  88. package/build/esm/node_modules/@hookform/resolvers/zod/dist/zod.js +6 -0
  89. package/build/esm/node_modules/react-hook-form/dist/index.esm.js +2211 -0
  90. package/build/esm/node_modules/react-native-mask-input/lib/module/MaskInput.js +37 -0
  91. package/build/esm/node_modules/react-native-mask-input/lib/module/formatWithMask.js +88 -0
  92. package/build/esm/node_modules/react-native-mask-input/lib/module/index.js +6 -0
  93. package/build/esm/node_modules/react-native-mask-input/lib/module/useMaskedInputProps.js +70 -0
  94. package/build/{index.esm.js → esm/node_modules/zod/lib/index.js} +1 -3377
  95. package/build/esm/packages/card-validator/dist/evervault-card-validator.main.js +345 -0
  96. package/build/{sdk.d.ts → esm/sdk.d.ts} +0 -1
  97. package/build/esm/sdk.js +51 -0
  98. package/build/{specs → esm/specs}/NativeEvervault.d.ts +0 -1
  99. package/build/esm/specs/NativeEvervault.js +5 -0
  100. package/build/{useEvervault.d.ts → esm/useEvervault.d.ts} +0 -1
  101. package/build/esm/useEvervault.js +12 -0
  102. package/build/{utils.d.ts → esm/utils.d.ts} +0 -1
  103. package/build/esm/utils.js +31 -0
  104. package/package.json +9 -20
  105. package/build/Card/Cvc.d.ts.map +0 -1
  106. package/build/Card/Cvc.test.d.ts +0 -2
  107. package/build/Card/Cvc.test.d.ts.map +0 -1
  108. package/build/Card/Expiry.d.ts.map +0 -1
  109. package/build/Card/Holder.d.ts.map +0 -1
  110. package/build/Card/Number.d.ts.map +0 -1
  111. package/build/Card/Number.test.d.ts +0 -2
  112. package/build/Card/Number.test.d.ts.map +0 -1
  113. package/build/Card/Root.d.ts.map +0 -1
  114. package/build/Card/Root.test.d.ts +0 -2
  115. package/build/Card/Root.test.d.ts.map +0 -1
  116. package/build/Card/index.d.ts.map +0 -1
  117. package/build/Card/schema.d.ts.map +0 -1
  118. package/build/Card/types.d.ts.map +0 -1
  119. package/build/Card/utils.d.ts.map +0 -1
  120. package/build/Card/utils.test.d.ts +0 -2
  121. package/build/Card/utils.test.d.ts.map +0 -1
  122. package/build/EvervaultProvider.d.ts.map +0 -1
  123. package/build/EvervaultProvider.test.d.ts +0 -2
  124. package/build/EvervaultProvider.test.d.ts.map +0 -1
  125. package/build/Input.d.ts.map +0 -1
  126. package/build/Input.test.d.ts +0 -2
  127. package/build/Input.test.d.ts.map +0 -1
  128. package/build/ThreeDSecure/Frame.d.ts.map +0 -1
  129. package/build/ThreeDSecure/Frame.test.d.ts +0 -2
  130. package/build/ThreeDSecure/Frame.test.d.ts.map +0 -1
  131. package/build/ThreeDSecure/Root.d.ts.map +0 -1
  132. package/build/ThreeDSecure/Root.test.d.ts +0 -2
  133. package/build/ThreeDSecure/Root.test.d.ts.map +0 -1
  134. package/build/ThreeDSecure/config.d.ts.map +0 -1
  135. package/build/ThreeDSecure/context.d.ts.map +0 -1
  136. package/build/ThreeDSecure/event.d.ts.map +0 -1
  137. package/build/ThreeDSecure/index.d.ts.map +0 -1
  138. package/build/ThreeDSecure/session.d.ts.map +0 -1
  139. package/build/ThreeDSecure/session.test.d.ts +0 -2
  140. package/build/ThreeDSecure/session.test.d.ts.map +0 -1
  141. package/build/ThreeDSecure/types.d.ts.map +0 -1
  142. package/build/ThreeDSecure/useThreeDSecure.d.ts.map +0 -1
  143. package/build/ThreeDSecure/useThreeDSecure.test.d.ts +0 -2
  144. package/build/ThreeDSecure/useThreeDSecure.test.d.ts.map +0 -1
  145. package/build/__mocks__/NativeEvervault.d.ts.map +0 -1
  146. package/build/__mocks__/react-native-webview.d.ts.map +0 -1
  147. package/build/context.d.ts.map +0 -1
  148. package/build/index.cjs.js.map +0 -1
  149. package/build/index.d.ts.map +0 -1
  150. package/build/sdk.d.ts.map +0 -1
  151. package/build/sdk.test.d.ts +0 -2
  152. package/build/sdk.test.d.ts.map +0 -1
  153. package/build/specs/NativeEvervault.d.ts.map +0 -1
  154. package/build/useEvervault.d.ts.map +0 -1
  155. package/build/useEvervault.test.d.ts +0 -2
  156. package/build/useEvervault.test.d.ts.map +0 -1
  157. package/build/utils.d.ts.map +0 -1
@@ -0,0 +1,60 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var React = require('react');
6
+ var reactNative = require('react-native');
7
+ var useMaskedInputProps = require('./useMaskedInputProps.js');
8
+
9
+ function _interopNamespaceDefault(e) {
10
+ var n = Object.create(null);
11
+ if (e) {
12
+ Object.keys(e).forEach(function (k) {
13
+ if (k !== 'default') {
14
+ var d = Object.getOwnPropertyDescriptor(e, k);
15
+ Object.defineProperty(n, k, d.get ? d : {
16
+ enumerable: true,
17
+ get: function () { return e[k]; }
18
+ });
19
+ }
20
+ });
21
+ }
22
+ n.default = e;
23
+ return Object.freeze(n);
24
+ }
25
+
26
+ var React__namespace = /*#__PURE__*/_interopNamespaceDefault(React);
27
+
28
+ function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
29
+ var MaskInput = /*#__PURE__*/React__namespace.forwardRef(function (props, ref) {
30
+ const {
31
+ mask,
32
+ value,
33
+ onChangeText,
34
+ placeholderFillCharacter = '_',
35
+ obfuscationCharacter,
36
+ showObfuscatedValue,
37
+ selection,
38
+ maskAutoComplete,
39
+ ...rest
40
+ } = props;
41
+ const maskedInputProps = useMaskedInputProps.default({
42
+ value,
43
+ mask,
44
+ maskAutoComplete,
45
+ obfuscationCharacter,
46
+ onChangeText,
47
+ placeholderFillCharacter,
48
+ showObfuscatedValue
49
+ });
50
+ return /*#__PURE__*/React__namespace.createElement(reactNative.TextInput, _extends({
51
+ placeholder: maskedInputProps.placeholder
52
+ }, rest, {
53
+ selection: maskedInputProps.selection || selection,
54
+ value: maskedInputProps.value,
55
+ onChangeText: maskedInputProps.onChangeText,
56
+ ref: ref
57
+ }));
58
+ });
59
+
60
+ exports.default = MaskInput;
@@ -0,0 +1,92 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ function formatWithMask(props) {
6
+ const {
7
+ text,
8
+ mask,
9
+ obfuscationCharacter = '*',
10
+ maskAutoComplete = false
11
+ } = props; // make sure it'll not break with null or undefined inputs
12
+
13
+ if (!text) return {
14
+ masked: '',
15
+ unmasked: '',
16
+ obfuscated: ''
17
+ };
18
+ if (!mask) return {
19
+ masked: text || '',
20
+ unmasked: text || '',
21
+ obfuscated: text || ''
22
+ };
23
+ let maskArray = typeof mask === 'function' ? mask(text) : mask;
24
+ let masked = '';
25
+ let obfuscated = '';
26
+ let unmasked = '';
27
+ let maskCharIndex = 0;
28
+ let valueCharIndex = 0;
29
+
30
+ while (true) {
31
+ // if mask is ended, break.
32
+ if (maskCharIndex === maskArray.length) {
33
+ break;
34
+ }
35
+
36
+ let maskChar = maskArray[maskCharIndex];
37
+ let valueChar = text[valueCharIndex]; // if value is ended, break.
38
+
39
+ if (valueCharIndex === text.length) {
40
+ if (typeof maskChar === 'string' && maskAutoComplete) {
41
+ masked += maskChar;
42
+ obfuscated += maskChar;
43
+ maskCharIndex += 1;
44
+ continue;
45
+ }
46
+
47
+ break;
48
+ } // value equals mask: add to masked result and advance on both mask and value indexes
49
+
50
+
51
+ if (maskChar === valueChar) {
52
+ masked += maskChar;
53
+ obfuscated += maskChar;
54
+ valueCharIndex += 1;
55
+ maskCharIndex += 1;
56
+ continue;
57
+ }
58
+
59
+ let unmaskedValueChar = text[valueCharIndex]; // it's a regex maskChar: let's advance on value index and validate the value within the regex
60
+
61
+ if (typeof maskChar === 'object') {
62
+ // advance on value index
63
+ valueCharIndex += 1;
64
+ const shouldObsfucateChar = Array.isArray(maskChar);
65
+ const maskCharRegex = Array.isArray(maskChar) ? maskChar[0] : maskChar;
66
+ const matchRegex = RegExp(maskCharRegex).test(valueChar); // value match regex: add to masked and unmasked result and advance on mask index too
67
+
68
+ if (matchRegex) {
69
+ masked += valueChar;
70
+ obfuscated += shouldObsfucateChar ? obfuscationCharacter : valueChar;
71
+ unmasked += unmaskedValueChar;
72
+ maskCharIndex += 1;
73
+ }
74
+
75
+ continue;
76
+ } else {
77
+ // it's a fixed maskChar: add to maskedResult and advance on mask index
78
+ masked += maskChar;
79
+ obfuscated += maskChar;
80
+ maskCharIndex += 1;
81
+ continue;
82
+ }
83
+ }
84
+
85
+ return {
86
+ masked,
87
+ unmasked,
88
+ obfuscated
89
+ };
90
+ }
91
+
92
+ exports.default = formatWithMask;
@@ -0,0 +1,10 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var MaskInput = require('./MaskInput.js');
6
+ require('react');
7
+
8
+
9
+
10
+ exports.default = MaskInput.default;
@@ -0,0 +1,93 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var React = require('react');
6
+ var formatWithMask = require('./formatWithMask.js');
7
+
8
+ function _interopNamespaceDefault(e) {
9
+ var n = Object.create(null);
10
+ if (e) {
11
+ Object.keys(e).forEach(function (k) {
12
+ if (k !== 'default') {
13
+ var d = Object.getOwnPropertyDescriptor(e, k);
14
+ Object.defineProperty(n, k, d.get ? d : {
15
+ enumerable: true,
16
+ get: function () { return e[k]; }
17
+ });
18
+ }
19
+ });
20
+ }
21
+ n.default = e;
22
+ return Object.freeze(n);
23
+ }
24
+
25
+ var React__namespace = /*#__PURE__*/_interopNamespaceDefault(React);
26
+
27
+ var useMaskedInputProps = (props => {
28
+ const {
29
+ value,
30
+ mask,
31
+ onChangeText,
32
+ placeholderFillCharacter = '_',
33
+ obfuscationCharacter,
34
+ showObfuscatedValue,
35
+ maskAutoComplete
36
+ } = props;
37
+ const maskArray = React__namespace.useMemo(() => typeof mask === 'function' ? mask(value) : mask, [mask, value]);
38
+ const formattedValueResult = React__namespace.useMemo(() => {
39
+ return formatWithMask.default({
40
+ text: value || '',
41
+ mask,
42
+ obfuscationCharacter
43
+ });
44
+ }, [mask, obfuscationCharacter, value]);
45
+ const maskHasObfuscation = React__namespace.useMemo(() => maskArray && !!maskArray.find(maskItem => Array.isArray(maskItem)), [maskArray]);
46
+ const isValueObfuscated = React__namespace.useMemo(() => !!maskHasObfuscation && !!showObfuscatedValue, [maskHasObfuscation, showObfuscatedValue]);
47
+ const handleChangeText = React__namespace.useCallback(text => {
48
+ let textToFormat = text;
49
+
50
+ if (isValueObfuscated) {
51
+ textToFormat = formattedValueResult.masked || '';
52
+
53
+ if (textToFormat.length > text.length) {
54
+ textToFormat = textToFormat.slice(0, -1);
55
+ } else if (textToFormat.length < text.length) {
56
+ textToFormat = textToFormat + text[text.length - 1];
57
+ }
58
+ }
59
+
60
+ const result = formatWithMask.default({
61
+ text: textToFormat,
62
+ mask,
63
+ obfuscationCharacter,
64
+ maskAutoComplete: maskAutoComplete && textToFormat.length > formattedValueResult.masked.length
65
+ });
66
+ onChangeText && onChangeText(result.masked, result.unmasked, result.obfuscated);
67
+ }, [isValueObfuscated, mask, obfuscationCharacter, onChangeText, formattedValueResult.masked, maskAutoComplete]);
68
+ const defaultPlaceholder = React__namespace.useMemo(() => {
69
+ if (maskArray) {
70
+ return maskArray.map(maskChar => {
71
+ if (typeof maskChar === 'string') {
72
+ return maskChar;
73
+ } else {
74
+ return placeholderFillCharacter;
75
+ }
76
+ }).join('');
77
+ } else {
78
+ return undefined;
79
+ }
80
+ }, [maskArray, placeholderFillCharacter]);
81
+ const inputValue = isValueObfuscated ? formattedValueResult.obfuscated : formattedValueResult.masked;
82
+ return {
83
+ onChangeText: handleChangeText,
84
+ value: inputValue,
85
+ selection: isValueObfuscated ? {
86
+ start: inputValue.length,
87
+ end: inputValue.length
88
+ } : undefined,
89
+ placeholder: defaultPlaceholder
90
+ };
91
+ });
92
+
93
+ exports.default = useMaskedInputProps;