@evervault/evervault-react-native 1.0.1 → 1.1.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.
- package/README.md +34 -39
- package/dist/commonjs/components/Card/Card.js +13 -13
- package/dist/commonjs/components/Card/CardCVC.js +7 -7
- package/dist/commonjs/components/Card/CardExpiry.js +6 -6
- package/dist/commonjs/components/Card/CardHolder.js +5 -5
- package/dist/commonjs/components/Card/CardNumber.js +6 -6
- package/dist/commonjs/components/Card/CardNumber.js.map +1 -1
- package/dist/commonjs/components/Card/context.js +5 -5
- package/dist/commonjs/components/Card/utilities.js +5 -5
- package/dist/commonjs/components/EvervaultProvider.js +62 -0
- package/dist/commonjs/components/EvervaultProvider.js.map +1 -0
- package/dist/commonjs/index.js +8 -0
- package/dist/commonjs/index.js.map +1 -1
- package/dist/commonjs/native.js +2 -2
- package/dist/commonjs/sdk.js +10 -3
- package/dist/commonjs/sdk.js.map +1 -1
- package/dist/module/components/Card/Card.js +25 -25
- package/dist/module/components/Card/Card.js.map +1 -1
- package/dist/module/components/Card/CardCVC.js +12 -12
- package/dist/module/components/Card/CardExpiry.js +10 -10
- package/dist/module/components/Card/CardHolder.js +9 -9
- package/dist/module/components/Card/CardNumber.js +11 -11
- package/dist/module/components/Card/CardNumber.js.map +1 -1
- package/dist/module/components/Card/context.js +6 -6
- package/dist/module/components/Card/index.js +1 -1
- package/dist/module/components/Card/utilities.js +6 -6
- package/dist/module/components/EvervaultProvider.js +53 -0
- package/dist/module/components/EvervaultProvider.js.map +1 -0
- package/dist/module/index.js +3 -2
- package/dist/module/index.js.map +1 -1
- package/dist/module/native.js +3 -3
- package/dist/module/sdk.js +13 -5
- package/dist/module/sdk.js.map +1 -1
- package/dist/typescript/src/components/Card/Card.d.ts +8 -8
- package/dist/typescript/src/components/Card/Card.d.ts.map +1 -1
- package/dist/typescript/src/components/Card/CardCVC.d.ts +2 -2
- package/dist/typescript/src/components/Card/CardExpiry.d.ts +2 -2
- package/dist/typescript/src/components/Card/CardHolder.d.ts +2 -2
- package/dist/typescript/src/components/Card/CardNumber.d.ts +2 -2
- package/dist/typescript/src/components/Card/context.d.ts +4 -4
- package/dist/typescript/src/components/Card/index.d.ts +1 -1
- package/dist/typescript/src/components/Card/types.d.ts +2 -2
- package/dist/typescript/src/components/Card/utilities.d.ts +3 -3
- package/dist/typescript/src/components/EvervaultProvider.d.ts +29 -0
- package/dist/typescript/src/components/EvervaultProvider.d.ts.map +1 -0
- package/dist/typescript/src/index.d.ts +4 -3
- package/dist/typescript/src/index.d.ts.map +1 -1
- package/dist/typescript/src/sdk.d.ts +7 -0
- package/dist/typescript/src/sdk.d.ts.map +1 -1
- package/package.json +4 -79
- package/src/components/Card/Card.tsx +27 -27
- package/src/components/Card/CardCVC.tsx +13 -13
- package/src/components/Card/CardExpiry.tsx +11 -11
- package/src/components/Card/CardHolder.tsx +10 -10
- package/src/components/Card/CardNumber.tsx +12 -12
- package/src/components/Card/context.tsx +9 -9
- package/src/components/Card/index.ts +1 -1
- package/src/components/Card/types.ts +14 -14
- package/src/components/Card/utilities.ts +8 -8
- package/src/components/EvervaultProvider.tsx +64 -0
- package/src/index.tsx +4 -3
- package/src/native.ts +4 -4
- package/src/sdk.ts +12 -5
package/README.md
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
# react-native-evervault-sdk
|
|
2
2
|
|
|
3
3
|
## [Documentation](https://docs.evervault.com/sdks/react-native)
|
|
4
|
+
|
|
4
5
|
Please see our documentation site for a full guide and reference.
|
|
5
6
|
|
|
6
7
|
## Installation
|
|
@@ -8,29 +9,21 @@ Please see our documentation site for a full guide and reference.
|
|
|
8
9
|
```sh
|
|
9
10
|
npm install @evervault/evervault-react-native
|
|
10
11
|
```
|
|
12
|
+
|
|
11
13
|
or
|
|
14
|
+
|
|
12
15
|
```sh
|
|
13
16
|
yarn add @evervault/evervault-react-native
|
|
14
17
|
```
|
|
15
18
|
|
|
16
19
|
## Usage
|
|
20
|
+
|
|
17
21
|
```tsx
|
|
18
|
-
import { init, Card, type CardPayload } from "@evervault/evervault-react-native"
|
|
22
|
+
import { EvervaultProvider, init, Card, type CardPayload } from "@evervault/evervault-react-native"
|
|
19
23
|
|
|
20
24
|
export default function App() {
|
|
21
25
|
const [cardData, setCardData] = useState<CardPayload | undefined>(undefined);
|
|
22
26
|
|
|
23
|
-
useEffect(() => {
|
|
24
|
-
async function setupEvervault() {
|
|
25
|
-
try {
|
|
26
|
-
await init(process.env.EXPO_PUBLIC_EV_TEAM_UUID, process.env.EXPO_PUBLIC_EV_APP_UUID);
|
|
27
|
-
} catch (err) {
|
|
28
|
-
throw new Error("Failed to initialize Evervault", err);
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
setupEvervault();
|
|
32
|
-
}, []);
|
|
33
|
-
|
|
34
27
|
const handleCardChange = (data: CardPayload) => {
|
|
35
28
|
setCardData(data);
|
|
36
29
|
|
|
@@ -42,33 +35,35 @@ export default function App() {
|
|
|
42
35
|
};
|
|
43
36
|
|
|
44
37
|
return (
|
|
45
|
-
<
|
|
46
|
-
<
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
38
|
+
<EvervaultProvider teamUuid="team_4fb7e6ec803f" appUuid="app_f0cb771c8e77">
|
|
39
|
+
<ScrollView contentContainerStyle={styles.container}>
|
|
40
|
+
<Text style={styles.title}>evervault react native</Text>
|
|
41
|
+
<Card
|
|
42
|
+
onChange={setCardData}
|
|
43
|
+
style={styles.card}
|
|
44
|
+
>
|
|
45
|
+
<Text>Card Number</Text>
|
|
46
|
+
<Card.Number
|
|
47
|
+
placeholder="4242 4242 4242 4242"
|
|
48
|
+
style={styles.input}
|
|
49
|
+
/>
|
|
50
|
+
<Card.Expiry
|
|
51
|
+
placeholder="MM / YY"
|
|
52
|
+
style={styles.input}
|
|
53
|
+
/>
|
|
54
|
+
<Card.Holder
|
|
55
|
+
placeholder="John Doe"
|
|
56
|
+
style={styles.input}
|
|
57
|
+
/>
|
|
58
|
+
<Card.CVC
|
|
59
|
+
placeholder="523"
|
|
60
|
+
style={styles.input}
|
|
61
|
+
/>
|
|
62
|
+
</Card>
|
|
63
|
+
<Text style={styles.details}>{JSON.stringify(cardData, null, 2)}</Text>
|
|
64
|
+
<StatusBar style="auto" />
|
|
65
|
+
</ScrollView>
|
|
66
|
+
</EvervaultProvider>
|
|
72
67
|
);
|
|
73
68
|
}
|
|
74
69
|
```
|
|
@@ -28,51 +28,51 @@ function Card({
|
|
|
28
28
|
const [registeredFields, setRegisteredFields] = (0, _react.useState)(new Set());
|
|
29
29
|
const form = (0, _useForm.useForm)({
|
|
30
30
|
initialValues: initialValue ?? {
|
|
31
|
-
cvc:
|
|
32
|
-
expiry:
|
|
33
|
-
number:
|
|
34
|
-
name:
|
|
31
|
+
cvc: "",
|
|
32
|
+
expiry: "",
|
|
33
|
+
number: "",
|
|
34
|
+
name: ""
|
|
35
35
|
},
|
|
36
36
|
validate: {
|
|
37
37
|
name: values => {
|
|
38
|
-
if (!registeredFields.has(
|
|
38
|
+
if (!registeredFields.has("name")) {
|
|
39
39
|
return undefined;
|
|
40
40
|
}
|
|
41
41
|
if (values.name.length === 0) {
|
|
42
|
-
return
|
|
42
|
+
return "invalid";
|
|
43
43
|
}
|
|
44
44
|
return undefined;
|
|
45
45
|
},
|
|
46
46
|
number: values => {
|
|
47
|
-
if (!registeredFields.has(
|
|
47
|
+
if (!registeredFields.has("number")) {
|
|
48
48
|
return undefined;
|
|
49
49
|
}
|
|
50
50
|
const cardValidation = (0, _cardValidator.validateNumber)(values.number);
|
|
51
51
|
if (!cardValidation.isValid) {
|
|
52
|
-
return
|
|
52
|
+
return "invalid";
|
|
53
53
|
}
|
|
54
54
|
if (!(0, _utilities.isAcceptedBrand)(config?.acceptedBrands, cardValidation)) {
|
|
55
|
-
return
|
|
55
|
+
return "unsupportedBrand";
|
|
56
56
|
}
|
|
57
57
|
return undefined;
|
|
58
58
|
},
|
|
59
59
|
expiry: values => {
|
|
60
|
-
if (!registeredFields.has(
|
|
60
|
+
if (!registeredFields.has("expiry")) {
|
|
61
61
|
return undefined;
|
|
62
62
|
}
|
|
63
63
|
const expiryValidation = (0, _cardValidator.validateExpiry)(values.expiry);
|
|
64
64
|
if (!expiryValidation.isValid) {
|
|
65
|
-
return
|
|
65
|
+
return "invalid";
|
|
66
66
|
}
|
|
67
67
|
return undefined;
|
|
68
68
|
},
|
|
69
69
|
cvc: values => {
|
|
70
|
-
if (!registeredFields.has(
|
|
70
|
+
if (!registeredFields.has("cvc")) {
|
|
71
71
|
return undefined;
|
|
72
72
|
}
|
|
73
73
|
const cvcValidation = (0, _cardValidator.validateCVC)(values.cvc, values.number);
|
|
74
74
|
if (!cvcValidation.isValid) {
|
|
75
|
-
return
|
|
75
|
+
return "invalid";
|
|
76
76
|
}
|
|
77
77
|
return undefined;
|
|
78
78
|
}
|
|
@@ -16,21 +16,21 @@ const CardCVC = props => {
|
|
|
16
16
|
const context = (0, _context.useCardContext)();
|
|
17
17
|
const mask = (0, _react.useMemo)(() => {
|
|
18
18
|
if (!context.values.number) {
|
|
19
|
-
return
|
|
19
|
+
return "9999";
|
|
20
20
|
}
|
|
21
21
|
const type = (0, _cardValidator.validateNumber)(context.values.number).brand;
|
|
22
|
-
if (type ===
|
|
23
|
-
return
|
|
22
|
+
if (type === "american-express") {
|
|
23
|
+
return "9999";
|
|
24
24
|
}
|
|
25
|
-
return
|
|
25
|
+
return "999";
|
|
26
26
|
}, [context.values.number]);
|
|
27
27
|
const {
|
|
28
28
|
onChange,
|
|
29
29
|
onBlur
|
|
30
|
-
} = context.register(
|
|
30
|
+
} = context.register("cvc");
|
|
31
31
|
(0, _react.useEffect)(() => {
|
|
32
|
-
context.setRegisteredFields(prev => new Set(prev).add(
|
|
33
|
-
return () => context.setRegisteredFields(prev => (0, _context.removeFieldFromSet)(prev,
|
|
32
|
+
context.setRegisteredFields(prev => new Set(prev).add("cvc"));
|
|
33
|
+
return () => context.setRegisteredFields(prev => (0, _context.removeFieldFromSet)(prev, "cvc"));
|
|
34
34
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
35
35
|
}, []);
|
|
36
36
|
return /*#__PURE__*/React.createElement(_reactNativeMaskedText.TextInputMask, _extends({}, props, {
|
|
@@ -16,10 +16,10 @@ function CardExpiry(props) {
|
|
|
16
16
|
const {
|
|
17
17
|
onBlur,
|
|
18
18
|
onChange
|
|
19
|
-
} = context.register(
|
|
19
|
+
} = context.register("expiry");
|
|
20
20
|
(0, _react.useEffect)(() => {
|
|
21
|
-
context.setRegisteredFields(prev => new Set(prev).add(
|
|
22
|
-
return () => context.setRegisteredFields(prev => (0, _context.removeFieldFromSet)(prev,
|
|
21
|
+
context.setRegisteredFields(prev => new Set(prev).add("expiry"));
|
|
22
|
+
return () => context.setRegisteredFields(prev => (0, _context.removeFieldFromSet)(prev, "expiry"));
|
|
23
23
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
24
24
|
}, []);
|
|
25
25
|
return /*#__PURE__*/React.createElement(_reactNativeMaskedText.TextInputMask, _extends({}, props, {
|
|
@@ -27,16 +27,16 @@ function CardExpiry(props) {
|
|
|
27
27
|
value: context.values.expiry
|
|
28
28
|
// store the expiry as MMYY not MM / YY
|
|
29
29
|
,
|
|
30
|
-
onChangeText: rawExpiry => onChange(rawExpiry.replace(
|
|
30
|
+
onChangeText: rawExpiry => onChange(rawExpiry.replace(" / ", "")),
|
|
31
31
|
options: {
|
|
32
|
-
format:
|
|
32
|
+
format: "99 / 99"
|
|
33
33
|
},
|
|
34
34
|
id: "expiry",
|
|
35
35
|
onBlur: e => {
|
|
36
36
|
onBlur(e);
|
|
37
37
|
props.onBlur?.(e);
|
|
38
38
|
},
|
|
39
|
-
placeholder: props.placeholder ??
|
|
39
|
+
placeholder: props.placeholder ?? "MM / YY",
|
|
40
40
|
inputMode: "numeric",
|
|
41
41
|
autoComplete: "cc-exp"
|
|
42
42
|
}));
|
|
@@ -16,10 +16,10 @@ function CardHolder(props) {
|
|
|
16
16
|
const {
|
|
17
17
|
onBlur,
|
|
18
18
|
onChange
|
|
19
|
-
} = context.register(
|
|
19
|
+
} = context.register("name");
|
|
20
20
|
(0, _react.useEffect)(() => {
|
|
21
|
-
context.setRegisteredFields(prev => new Set(prev).add(
|
|
22
|
-
return () => context.setRegisteredFields(prev => (0, _context.removeFieldFromSet)(prev,
|
|
21
|
+
context.setRegisteredFields(prev => new Set(prev).add("name"));
|
|
22
|
+
return () => context.setRegisteredFields(prev => (0, _context.removeFieldFromSet)(prev, "name"));
|
|
23
23
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
24
24
|
}, []);
|
|
25
25
|
return /*#__PURE__*/React.createElement(_reactNative.TextInput, _extends({}, props, {
|
|
@@ -30,8 +30,8 @@ function CardHolder(props) {
|
|
|
30
30
|
props.onBlur?.(e);
|
|
31
31
|
},
|
|
32
32
|
autoComplete: _reactNative.Platform.select({
|
|
33
|
-
ios:
|
|
34
|
-
android:
|
|
33
|
+
ios: "cc-name",
|
|
34
|
+
android: "name"
|
|
35
35
|
}),
|
|
36
36
|
onChangeText: v => onChange(v)
|
|
37
37
|
}));
|
|
@@ -21,9 +21,9 @@ function CardNumber(props) {
|
|
|
21
21
|
brand
|
|
22
22
|
} = (0, _cardValidator.validateNumber)(value);
|
|
23
23
|
const masks = {
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
24
|
+
default: "9999 9999 9999 9999",
|
|
25
|
+
unionpay: "9999 9999 9999 9999 999",
|
|
26
|
+
"american-express": "9999 999999 99999"
|
|
27
27
|
};
|
|
28
28
|
if (brand && !!masks[brand]) {
|
|
29
29
|
return [value, masks[brand]];
|
|
@@ -33,10 +33,10 @@ function CardNumber(props) {
|
|
|
33
33
|
const {
|
|
34
34
|
onBlur,
|
|
35
35
|
onChange
|
|
36
|
-
} = context.register(
|
|
36
|
+
} = context.register("number");
|
|
37
37
|
(0, _react.useEffect)(() => {
|
|
38
|
-
context.setRegisteredFields(prev => new Set(prev).add(
|
|
39
|
-
return () => context.setRegisteredFields(prev => (0, _context.removeFieldFromSet)(prev,
|
|
38
|
+
context.setRegisteredFields(prev => new Set(prev).add("number"));
|
|
39
|
+
return () => context.setRegisteredFields(prev => (0, _context.removeFieldFromSet)(prev, "number"));
|
|
40
40
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
41
41
|
}, []);
|
|
42
42
|
return /*#__PURE__*/React.createElement(_reactNativeMaskedText.TextInputMask, _extends({}, props, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_cardValidator","require","_react","_interopRequireWildcard","React","_reactNativeMaskedText","_context","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","_extends","assign","bind","target","arguments","length","source","key","prototype","apply","CardNumber","props","context","useCardContext","ref","useRef","innerValue","mask","useMemo","value","values","number","brand","validateNumber","masks","onBlur","onChange","register","useEffect","setRegisteredFields","prev","Set","add","removeFieldFromSet","createElement","TextInputMask","type","options","id","onChangeText","inputMode","autoComplete"],"sourceRoot":"../../../../src","sources":["components/Card/CardNumber.tsx"],"mappings":";;;;;;AAAA,IAAAA,cAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAC,uBAAA,CAAAF,OAAA;AAA+B,IAAAG,KAAA,GAAAF,MAAA;AAE/B,IAAAG,sBAAA,GAAAJ,OAAA;AACA,IAAAK,QAAA,GAAAL,OAAA;AAA+D,SAAAM,yBAAAC,CAAA,6BAAAC,OAAA,mBAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,CAAA,WAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA,KAAAF,CAAA;AAAA,SAAAL,wBAAAK,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAI,UAAA,SAAAJ,CAAA,eAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,WAAAK,OAAA,EAAAL,CAAA,QAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAG,GAAA,CAAAN,CAAA,UAAAG,CAAA,CAAAI,GAAA,CAAAP,CAAA,OAAAQ,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAd,CAAA,oBAAAc,CAAA,OAAAC,cAAA,CAAAC,IAAA,CAAAhB,CAAA,EAAAc,CAAA,SAAAG,CAAA,GAAAP,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAb,CAAA,EAAAc,CAAA,UAAAG,CAAA,KAAAA,CAAA,CAAAV,GAAA,IAAAU,CAAA,CAAAC,GAAA,IAAAP,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAG,CAAA,IAAAT,CAAA,CAAAM,CAAA,IAAAd,CAAA,CAAAc,CAAA,YAAAN,CAAA,CAAAH,OAAA,GAAAL,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAe,GAAA,CAAAlB,CAAA,EAAAQ,CAAA,GAAAA,CAAA;AAAA,SAAAW,SAAA,IAAAA,QAAA,GAAAR,MAAA,CAAAS,MAAA,GAAAT,MAAA,CAAAS,MAAA,CAAAC,IAAA,eAAAC,MAAA,aAAAL,CAAA,MAAAA,CAAA,GAAAM,SAAA,CAAAC,MAAA,EAAAP,CAAA,UAAAQ,MAAA,GAAAF,SAAA,CAAAN,CAAA,YAAAS,GAAA,IAAAD,MAAA,QAAAd,MAAA,CAAAgB,SAAA,CAAAZ,cAAA,CAAAC,IAAA,CAAAS,MAAA,EAAAC,GAAA,KAAAJ,MAAA,CAAAI,GAAA,IAAAD,MAAA,CAAAC,GAAA,gBAAAJ,MAAA,YAAAH,QAAA,CAAAS,KAAA,OAAAL,SAAA;AAKxD,SAASM,UAAUA,CAACC,KAAsB,EAAE;EACjD,MAAMC,OAAO,GAAG,IAAAC,uBAAc,EAAC,CAAC;EAChC,MAAMC,GAAG,GAAG,IAAAC,aAAM,EAAgB,IAAI,CAAC;EAEvC,MAAM,CAACC,UAAU,EAAEC,IAAI,CAAC,GAAG,IAAAC,cAAO,EAAC,MAAM;IACvC,MAAMC,KAAK,GAAGP,OAAO,CAACQ,MAAM,CAACC,MAAM;IAEnC,MAAM;MAAEC;IAAM,CAAC,GAAG,IAAAC,6BAAc,EAACJ,KAAK,CAAC;IAEvC,MAAMK,KAAK,GAAG;
|
|
1
|
+
{"version":3,"names":["_cardValidator","require","_react","_interopRequireWildcard","React","_reactNativeMaskedText","_context","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","_extends","assign","bind","target","arguments","length","source","key","prototype","apply","CardNumber","props","context","useCardContext","ref","useRef","innerValue","mask","useMemo","value","values","number","brand","validateNumber","masks","unionpay","onBlur","onChange","register","useEffect","setRegisteredFields","prev","Set","add","removeFieldFromSet","createElement","TextInputMask","type","options","id","onChangeText","inputMode","autoComplete"],"sourceRoot":"../../../../src","sources":["components/Card/CardNumber.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -7,16 +7,16 @@ exports.useCardContext = exports.removeFieldFromSet = exports.CardContext = void
|
|
|
7
7
|
var _react = require("react");
|
|
8
8
|
const removeFieldFromSet = (prev, field) => {
|
|
9
9
|
const next = new Set(prev);
|
|
10
|
-
next.delete(
|
|
10
|
+
next.delete("name");
|
|
11
11
|
return next;
|
|
12
12
|
};
|
|
13
13
|
exports.removeFieldFromSet = removeFieldFromSet;
|
|
14
14
|
const CardContext = exports.CardContext = /*#__PURE__*/(0, _react.createContext)({
|
|
15
15
|
values: {
|
|
16
|
-
name:
|
|
17
|
-
number:
|
|
18
|
-
cvc:
|
|
19
|
-
expiry:
|
|
16
|
+
name: "",
|
|
17
|
+
number: "",
|
|
18
|
+
cvc: "",
|
|
19
|
+
expiry: ""
|
|
20
20
|
},
|
|
21
21
|
register: () => ({
|
|
22
22
|
onChange: () => {},
|
|
@@ -14,7 +14,7 @@ async function changePayload(encrypt, form, fields) {
|
|
|
14
14
|
expiry,
|
|
15
15
|
cvc
|
|
16
16
|
} = form.values;
|
|
17
|
-
const number = rawNumber.replace(/\s/g,
|
|
17
|
+
const number = rawNumber.replace(/\s/g, "");
|
|
18
18
|
const {
|
|
19
19
|
brand,
|
|
20
20
|
localBrands,
|
|
@@ -39,18 +39,18 @@ async function changePayload(encrypt, form, fields) {
|
|
|
39
39
|
};
|
|
40
40
|
}
|
|
41
41
|
function isComplete(form, fields) {
|
|
42
|
-
if (fields.includes(
|
|
42
|
+
if (fields.includes("name")) {
|
|
43
43
|
if (form.values.name.length === 0) return false;
|
|
44
44
|
}
|
|
45
|
-
if (fields.includes(
|
|
45
|
+
if (fields.includes("number")) {
|
|
46
46
|
const cardValidation = (0, _cardValidator.validateNumber)(form.values.number);
|
|
47
47
|
if (!cardValidation.isValid) return false;
|
|
48
48
|
}
|
|
49
|
-
if (fields.includes(
|
|
49
|
+
if (fields.includes("expiry")) {
|
|
50
50
|
const expiryValidation = (0, _cardValidator.validateExpiry)(form.values.expiry);
|
|
51
51
|
if (!expiryValidation.isValid) return false;
|
|
52
52
|
}
|
|
53
|
-
if (fields.includes(
|
|
53
|
+
if (fields.includes("cvc")) {
|
|
54
54
|
const cvcValidation = (0, _cardValidator.validateCVC)(form.values.cvc, form.values.number);
|
|
55
55
|
if (!cvcValidation.isValid) return false;
|
|
56
56
|
}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.useEvervault = exports.default = void 0;
|
|
7
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
8
|
+
var React = _react;
|
|
9
|
+
var _native = require("../native");
|
|
10
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
11
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
12
|
+
const Ctx = /*#__PURE__*/(0, _react.createContext)({
|
|
13
|
+
teamUuid: undefined,
|
|
14
|
+
appUuid: undefined
|
|
15
|
+
});
|
|
16
|
+
|
|
17
|
+
// this isn't publicly exposed
|
|
18
|
+
const useEvervault = () => (0, _react.useContext)(Ctx);
|
|
19
|
+
exports.useEvervault = useEvervault;
|
|
20
|
+
/**
|
|
21
|
+
* @example
|
|
22
|
+
* ```tsx
|
|
23
|
+
* function App() {
|
|
24
|
+
* return (
|
|
25
|
+
* <EvervaultProvider teamId="team_123" appId="app_123">
|
|
26
|
+
* <Card onChange={(card) => console.log(card)}>
|
|
27
|
+
* <Card.Number />
|
|
28
|
+
* </Card>
|
|
29
|
+
* </EvervaultProvider>
|
|
30
|
+
* );
|
|
31
|
+
* }
|
|
32
|
+
* ```
|
|
33
|
+
*/
|
|
34
|
+
const EvervaultProvider = ({
|
|
35
|
+
teamId,
|
|
36
|
+
appId,
|
|
37
|
+
children
|
|
38
|
+
}) => {
|
|
39
|
+
(0, _react.useEffect)(() => {
|
|
40
|
+
async function initEvervault() {
|
|
41
|
+
try {
|
|
42
|
+
if (!teamId || !appId) {
|
|
43
|
+
return;
|
|
44
|
+
}
|
|
45
|
+
return _native.EvervaultSdk.initialize(teamId, appId);
|
|
46
|
+
} catch (error) {
|
|
47
|
+
throw new Error(`Failed to initialize the Evervault SDK ${error}`);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
if (teamId || appId) {
|
|
51
|
+
initEvervault();
|
|
52
|
+
}
|
|
53
|
+
}, [teamId, appId]);
|
|
54
|
+
return /*#__PURE__*/React.createElement(Ctx.Provider, {
|
|
55
|
+
value: {
|
|
56
|
+
teamUuid: teamId,
|
|
57
|
+
appUuid: appId
|
|
58
|
+
}
|
|
59
|
+
}, children);
|
|
60
|
+
};
|
|
61
|
+
var _default = exports.default = EvervaultProvider;
|
|
62
|
+
//# sourceMappingURL=EvervaultProvider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","React","_native","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","Ctx","createContext","teamUuid","undefined","appUuid","useEvervault","useContext","exports","EvervaultProvider","teamId","appId","children","useEffect","initEvervault","EvervaultSdk","initialize","error","Error","createElement","Provider","value","_default"],"sourceRoot":"../../../src","sources":["components/EvervaultProvider.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AAAwE,IAAAC,KAAA,GAAAH,MAAA;AAExE,IAAAI,OAAA,GAAAF,OAAA;AAAyC,SAAAG,yBAAAC,CAAA,6BAAAC,OAAA,mBAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,CAAA,WAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA,KAAAF,CAAA;AAAA,SAAAL,wBAAAK,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAI,UAAA,SAAAJ,CAAA,eAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,WAAAK,OAAA,EAAAL,CAAA,QAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAG,GAAA,CAAAN,CAAA,UAAAG,CAAA,CAAAI,GAAA,CAAAP,CAAA,OAAAQ,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAd,CAAA,oBAAAc,CAAA,OAAAC,cAAA,CAAAC,IAAA,CAAAhB,CAAA,EAAAc,CAAA,SAAAG,CAAA,GAAAP,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAb,CAAA,EAAAc,CAAA,UAAAG,CAAA,KAAAA,CAAA,CAAAV,GAAA,IAAAU,CAAA,CAAAC,GAAA,IAAAP,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAG,CAAA,IAAAT,CAAA,CAAAM,CAAA,IAAAd,CAAA,CAAAc,CAAA,YAAAN,CAAA,CAAAH,OAAA,GAAAL,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAe,GAAA,CAAAlB,CAAA,EAAAQ,CAAA,GAAAA,CAAA;AAOzC,MAAMW,GAAG,gBAAG,IAAAC,oBAAa,EAAmB;EAC1CC,QAAQ,EAAEC,SAAS;EACnBC,OAAO,EAAED;AACX,CAAC,CAAC;;AAEF;AACO,MAAME,YAAY,GAAGA,CAAA,KAAM,IAAAC,iBAAU,EAACN,GAAG,CAAC;AAACO,OAAA,CAAAF,YAAA,GAAAA,YAAA;AAQlD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMG,iBAAiB,GAAGA,CAAC;EAAEC,MAAM;EAAEC,KAAK;EAAEC;AAAyB,CAAC,KAAK;EACzE,IAAAC,gBAAS,EAAC,MAAM;IACd,eAAeC,aAAaA,CAAA,EAAG;MAC7B,IAAI;QACF,IAAI,CAACJ,MAAM,IAAI,CAACC,KAAK,EAAE;UACrB;QACF;QAEA,OAAOI,oBAAY,CAACC,UAAU,CAACN,MAAM,EAAEC,KAAK,CAAC;MAC/C,CAAC,CAAC,OAAOM,KAAK,EAAE;QACd,MAAM,IAAIC,KAAK,CAAE,0CAAyCD,KAAM,EAAC,CAAC;MACpE;IACF;IAEA,IAAIP,MAAM,IAAIC,KAAK,EAAE;MACnBG,aAAa,CAAC,CAAC;IACjB;EACF,CAAC,EAAE,CAACJ,MAAM,EAAEC,KAAK,CAAC,CAAC;EAEnB,oBACEhC,KAAA,CAAAwC,aAAA,CAAClB,GAAG,CAACmB,QAAQ;IAACC,KAAK,EAAE;MAAElB,QAAQ,EAAEO,MAAM;MAAEL,OAAO,EAAEM;IAAM;EAAE,GACvDC,QACW,CAAC;AAEnB,CAAC;AAAC,IAAAU,QAAA,GAAAd,OAAA,CAAArB,OAAA,GAEasB,iBAAiB","ignoreList":[]}
|
package/dist/commonjs/index.js
CHANGED
|
@@ -9,6 +9,12 @@ Object.defineProperty(exports, "Card", {
|
|
|
9
9
|
return _Card.Card;
|
|
10
10
|
}
|
|
11
11
|
});
|
|
12
|
+
Object.defineProperty(exports, "EvervaultProvider", {
|
|
13
|
+
enumerable: true,
|
|
14
|
+
get: function () {
|
|
15
|
+
return _EvervaultProvider.default;
|
|
16
|
+
}
|
|
17
|
+
});
|
|
12
18
|
Object.defineProperty(exports, "encrypt", {
|
|
13
19
|
enumerable: true,
|
|
14
20
|
get: function () {
|
|
@@ -23,4 +29,6 @@ Object.defineProperty(exports, "init", {
|
|
|
23
29
|
});
|
|
24
30
|
var _Card = require("./components/Card");
|
|
25
31
|
var _sdk = require("./sdk");
|
|
32
|
+
var _EvervaultProvider = _interopRequireDefault(require("./components/EvervaultProvider"));
|
|
33
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
26
34
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_Card","require","_sdk"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"
|
|
1
|
+
{"version":3,"names":["_Card","require","_sdk","_EvervaultProvider","_interopRequireDefault","obj","__esModule","default"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,IAAA,GAAAD,OAAA;AASA,IAAAE,kBAAA,GAAAC,sBAAA,CAAAH,OAAA;AAA8E,SAAAG,uBAAAC,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA","ignoreList":[]}
|
package/dist/commonjs/native.js
CHANGED
|
@@ -7,8 +7,8 @@ exports.EvervaultSdk = void 0;
|
|
|
7
7
|
var _reactNative = require("react-native");
|
|
8
8
|
const LINKING_ERROR = `The package '@evervault/evervault-react-native' doesn't seem to be linked. Make sure: \n\n` + _reactNative.Platform.select({
|
|
9
9
|
ios: "- You have run 'pod install'\n",
|
|
10
|
-
default:
|
|
11
|
-
}) +
|
|
10
|
+
default: ""
|
|
11
|
+
}) + "- You rebuilt the app after installing the package\n" + "- You are not using Expo Go\n";
|
|
12
12
|
const EvervaultSdk = exports.EvervaultSdk = _reactNative.NativeModules.EvervaultSdk ? _reactNative.NativeModules.EvervaultSdk : new Proxy({}, {
|
|
13
13
|
get() {
|
|
14
14
|
throw new Error(LINKING_ERROR);
|
package/dist/commonjs/sdk.js
CHANGED
|
@@ -7,17 +7,24 @@ exports.encrypt = encrypt;
|
|
|
7
7
|
exports.init = init;
|
|
8
8
|
var _reactNative = require("react-native");
|
|
9
9
|
var _native = require("./native");
|
|
10
|
+
/**
|
|
11
|
+
* @deprecated Deprecated since version 1.1.0. Use `EvervaultProvider` instead.
|
|
12
|
+
* @see `EvervaultProvider` instead
|
|
13
|
+
* ```tsx
|
|
14
|
+
* import { EvervaultProvider } from "@evervault/evervault-react-native";
|
|
15
|
+
* ```
|
|
16
|
+
*/
|
|
10
17
|
async function init(teamUuid, appUuid) {
|
|
11
|
-
if (!teamUuid
|
|
18
|
+
if (!teamUuid?.startsWith("team_")) {
|
|
12
19
|
throw new Error("Invalid Evervault Team UUID");
|
|
13
20
|
}
|
|
14
|
-
if (!appUuid
|
|
21
|
+
if (!appUuid?.startsWith("app_")) {
|
|
15
22
|
throw new Error("Invalid Evervault App UUID");
|
|
16
23
|
}
|
|
17
24
|
return _native.EvervaultSdk.initialize(teamUuid, appUuid);
|
|
18
25
|
}
|
|
19
26
|
async function encrypt(data) {
|
|
20
|
-
if (_reactNative.Platform.OS ===
|
|
27
|
+
if (_reactNative.Platform.OS === "android" && typeof data !== "string") {
|
|
21
28
|
throw new Error(`The Evervault SDK does not currently support encrypting non-string data on Android.
|
|
22
29
|
If this is required for your use case, please get in touch with us at support@evervault.com. Please do not
|
|
23
30
|
serialize other data types to strings and pass them to this method as this will result in the data
|
package/dist/commonjs/sdk.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNative","require","_native","init","teamUuid","appUuid","startsWith","Error","EvervaultSdk","initialize","encrypt","data","Platform","OS"],"sourceRoot":"../../src","sources":["sdk.ts"],"mappings":";;;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;
|
|
1
|
+
{"version":3,"names":["_reactNative","require","_native","init","teamUuid","appUuid","startsWith","Error","EvervaultSdk","initialize","encrypt","data","Platform","OS"],"sourceRoot":"../../src","sources":["sdk.ts"],"mappings":";;;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,eAAeE,IAAIA,CAACC,QAAgB,EAAEC,OAAe,EAAiB;EAC3E,IAAI,CAACD,QAAQ,EAAEE,UAAU,CAAC,OAAO,CAAC,EAAE;IAClC,MAAM,IAAIC,KAAK,CAAC,6BAA6B,CAAC;EAChD;EAEA,IAAI,CAACF,OAAO,EAAEC,UAAU,CAAC,MAAM,CAAC,EAAE;IAChC,MAAM,IAAIC,KAAK,CAAC,4BAA4B,CAAC;EAC/C;EAEA,OAAOC,oBAAY,CAACC,UAAU,CAACL,QAAQ,EAAEC,OAAO,CAAC;AACnD;AAEO,eAAeK,OAAOA,CAACC,IAAS,EAAmB;EACxD,IAAIC,qBAAQ,CAACC,EAAE,KAAK,SAAS,IAAI,OAAOF,IAAI,KAAK,QAAQ,EAAE;IACzD,MAAM,IAAIJ,KAAK,CAAE;AACrB;AACA;AACA,2EAA2E,CAAC;EAC1E;EAEA,OAAOC,oBAAY,CAACE,OAAO,CAACC,IAAI,CAAC;AACnC","ignoreList":[]}
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
import { validateNumber, validateCVC, validateExpiry } from
|
|
2
|
-
import * as React from
|
|
3
|
-
import { useState } from
|
|
4
|
-
import { useForm } from
|
|
5
|
-
import { changePayload, isAcceptedBrand } from
|
|
6
|
-
import { CardNumber } from
|
|
7
|
-
import { CardContext } from
|
|
8
|
-
import { encrypt } from
|
|
9
|
-
import { CardCVC } from
|
|
10
|
-
import { CardHolder } from
|
|
11
|
-
import { CardExpiry } from
|
|
12
|
-
import { View } from
|
|
1
|
+
import { validateNumber, validateCVC, validateExpiry } from "@evervault/card-validator";
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
import { useState } from "react";
|
|
4
|
+
import { useForm } from "../useForm";
|
|
5
|
+
import { changePayload, isAcceptedBrand } from "./utilities";
|
|
6
|
+
import { CardNumber } from "./CardNumber";
|
|
7
|
+
import { CardContext } from "./context";
|
|
8
|
+
import { encrypt } from "../../sdk";
|
|
9
|
+
import { CardCVC } from "./CardCVC";
|
|
10
|
+
import { CardHolder } from "./CardHolder";
|
|
11
|
+
import { CardExpiry } from "./CardExpiry";
|
|
12
|
+
import { View } from "react-native";
|
|
13
13
|
function Card({
|
|
14
14
|
initialValue,
|
|
15
15
|
config,
|
|
@@ -20,51 +20,51 @@ function Card({
|
|
|
20
20
|
const [registeredFields, setRegisteredFields] = useState(new Set());
|
|
21
21
|
const form = useForm({
|
|
22
22
|
initialValues: initialValue ?? {
|
|
23
|
-
cvc:
|
|
24
|
-
expiry:
|
|
25
|
-
number:
|
|
26
|
-
name:
|
|
23
|
+
cvc: "",
|
|
24
|
+
expiry: "",
|
|
25
|
+
number: "",
|
|
26
|
+
name: ""
|
|
27
27
|
},
|
|
28
28
|
validate: {
|
|
29
29
|
name: values => {
|
|
30
|
-
if (!registeredFields.has(
|
|
30
|
+
if (!registeredFields.has("name")) {
|
|
31
31
|
return undefined;
|
|
32
32
|
}
|
|
33
33
|
if (values.name.length === 0) {
|
|
34
|
-
return
|
|
34
|
+
return "invalid";
|
|
35
35
|
}
|
|
36
36
|
return undefined;
|
|
37
37
|
},
|
|
38
38
|
number: values => {
|
|
39
|
-
if (!registeredFields.has(
|
|
39
|
+
if (!registeredFields.has("number")) {
|
|
40
40
|
return undefined;
|
|
41
41
|
}
|
|
42
42
|
const cardValidation = validateNumber(values.number);
|
|
43
43
|
if (!cardValidation.isValid) {
|
|
44
|
-
return
|
|
44
|
+
return "invalid";
|
|
45
45
|
}
|
|
46
46
|
if (!isAcceptedBrand(config?.acceptedBrands, cardValidation)) {
|
|
47
|
-
return
|
|
47
|
+
return "unsupportedBrand";
|
|
48
48
|
}
|
|
49
49
|
return undefined;
|
|
50
50
|
},
|
|
51
51
|
expiry: values => {
|
|
52
|
-
if (!registeredFields.has(
|
|
52
|
+
if (!registeredFields.has("expiry")) {
|
|
53
53
|
return undefined;
|
|
54
54
|
}
|
|
55
55
|
const expiryValidation = validateExpiry(values.expiry);
|
|
56
56
|
if (!expiryValidation.isValid) {
|
|
57
|
-
return
|
|
57
|
+
return "invalid";
|
|
58
58
|
}
|
|
59
59
|
return undefined;
|
|
60
60
|
},
|
|
61
61
|
cvc: values => {
|
|
62
|
-
if (!registeredFields.has(
|
|
62
|
+
if (!registeredFields.has("cvc")) {
|
|
63
63
|
return undefined;
|
|
64
64
|
}
|
|
65
65
|
const cvcValidation = validateCVC(values.cvc, values.number);
|
|
66
66
|
if (!cvcValidation.isValid) {
|
|
67
|
-
return
|
|
67
|
+
return "invalid";
|
|
68
68
|
}
|
|
69
69
|
return undefined;
|
|
70
70
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["validateNumber","validateCVC","validateExpiry","React","useState","useForm","changePayload","isAcceptedBrand","CardNumber","CardContext","encrypt","CardCVC","CardHolder","CardExpiry","View","Card","initialValue","config","children","onChange","style","registeredFields","setRegisteredFields","Set","form","initialValues","cvc","expiry","number","name","validate","values","has","undefined","length","cardValidation","isValid","acceptedBrands","expiryValidation","cvcValidation","formState","triggerChange","cardData","Array","from","createElement","Provider","value","register","CardNamespace","Object","assign","Number","CVC","Holder","Expiry"],"sourceRoot":"../../../../src","sources":["components/Card/Card.tsx"],"mappings":"AAAA,SACEA,cAAc,EACdC,WAAW,EACXC,cAAc,QACT,2BAA2B;AAClC,OAAO,KAAKC,KAAK,MAAM,OAAO;AAC9B,
|
|
1
|
+
{"version":3,"names":["validateNumber","validateCVC","validateExpiry","React","useState","useForm","changePayload","isAcceptedBrand","CardNumber","CardContext","encrypt","CardCVC","CardHolder","CardExpiry","View","Card","initialValue","config","children","onChange","style","registeredFields","setRegisteredFields","Set","form","initialValues","cvc","expiry","number","name","validate","values","has","undefined","length","cardValidation","isValid","acceptedBrands","expiryValidation","cvcValidation","formState","triggerChange","cardData","Array","from","createElement","Provider","value","register","CardNamespace","Object","assign","Number","CVC","Holder","Expiry"],"sourceRoot":"../../../../src","sources":["components/Card/Card.tsx"],"mappings":"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","ignoreList":[]}
|