@evervault/evervault-react-native 0.2.3 → 0.4.2
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 +46 -17
- package/android/build.gradle +5 -3
- package/android/gradle.properties +1 -1
- package/android/src/main/java/com/evervaultsdk/EvervaultSdkModule.kt +34 -5
- package/android/src/main/java/com/evervaultsdk/EvervaultSdkPackage.kt +1 -1
- package/dist/commonjs/components/Card/Card.js +115 -0
- package/dist/commonjs/components/Card/Card.js.map +1 -0
- package/dist/commonjs/components/Card/CardCVC.js +59 -0
- package/dist/commonjs/components/Card/CardCVC.js.map +1 -0
- package/dist/commonjs/components/Card/CardExpiry.js +50 -0
- package/dist/commonjs/components/Card/CardExpiry.js.map +1 -0
- package/dist/commonjs/components/Card/CardHolder.js +45 -0
- package/dist/commonjs/components/Card/CardHolder.js.map +1 -0
- package/dist/commonjs/components/Card/CardNumber.js +68 -0
- package/dist/commonjs/components/Card/CardNumber.js.map +1 -0
- package/dist/commonjs/components/Card/context.js +23 -0
- package/dist/commonjs/components/Card/context.js.map +1 -0
- package/dist/commonjs/components/Card/index.js +13 -0
- package/dist/commonjs/components/Card/index.js.map +1 -0
- package/dist/commonjs/components/Card/types.js +2 -0
- package/dist/commonjs/components/Card/types.js.map +1 -0
- package/dist/commonjs/components/Card/utilities.js +85 -0
- package/dist/commonjs/components/Card/utilities.js.map +1 -0
- package/dist/commonjs/components/useForm.js +116 -0
- package/dist/commonjs/components/useForm.js.map +1 -0
- package/dist/commonjs/index.js +26 -0
- package/dist/commonjs/index.js.map +1 -0
- package/{lib/commonjs/index.js → dist/commonjs/native.js} +3 -10
- package/dist/commonjs/native.js.map +1 -0
- package/dist/commonjs/sdk.js +28 -0
- package/dist/commonjs/sdk.js.map +1 -0
- package/dist/module/components/Card/Card.js +110 -0
- package/dist/module/components/Card/Card.js.map +1 -0
- package/dist/module/components/Card/CardCVC.js +50 -0
- package/dist/module/components/Card/CardCVC.js.map +1 -0
- package/dist/module/components/Card/CardExpiry.js +44 -0
- package/dist/module/components/Card/CardExpiry.js.map +1 -0
- package/dist/module/components/Card/CardHolder.js +39 -0
- package/dist/module/components/Card/CardHolder.js.map +1 -0
- package/dist/module/components/Card/CardNumber.js +62 -0
- package/dist/module/components/Card/CardNumber.js.map +1 -0
- package/dist/module/components/Card/context.js +16 -0
- package/dist/module/components/Card/context.js.map +1 -0
- package/dist/module/components/Card/index.js +2 -0
- package/dist/module/components/Card/index.js.map +1 -0
- package/dist/module/components/Card/types.js +2 -0
- package/dist/module/components/Card/types.js.map +1 -0
- package/dist/module/components/Card/utilities.js +77 -0
- package/dist/module/components/Card/utilities.js.map +1 -0
- package/dist/module/components/useForm.js +110 -0
- package/dist/module/components/useForm.js.map +1 -0
- package/dist/module/index.js +3 -0
- package/dist/module/index.js.map +1 -0
- package/{lib/module/index.js → dist/module/native.js} +2 -8
- package/dist/module/native.js.map +1 -0
- package/dist/module/sdk.js +21 -0
- package/dist/module/sdk.js.map +1 -0
- package/dist/typescript/src/components/Card/Card.d.ts +29 -0
- package/dist/typescript/src/components/Card/Card.d.ts.map +1 -0
- package/dist/typescript/src/components/Card/CardCVC.d.ts +6 -0
- package/dist/typescript/src/components/Card/CardCVC.d.ts.map +1 -0
- package/dist/typescript/src/components/Card/CardExpiry.d.ts +6 -0
- package/dist/typescript/src/components/Card/CardExpiry.d.ts.map +1 -0
- package/dist/typescript/src/components/Card/CardHolder.d.ts +7 -0
- package/dist/typescript/src/components/Card/CardHolder.d.ts.map +1 -0
- package/dist/typescript/src/components/Card/CardNumber.d.ts +8 -0
- package/dist/typescript/src/components/Card/CardNumber.d.ts.map +1 -0
- package/dist/typescript/src/components/Card/context.d.ts +12 -0
- package/dist/typescript/src/components/Card/context.d.ts.map +1 -0
- package/dist/typescript/src/components/Card/index.d.ts +2 -0
- package/dist/typescript/src/components/Card/index.d.ts.map +1 -0
- package/dist/typescript/src/components/Card/types.d.ts +35 -0
- package/dist/typescript/src/components/Card/types.d.ts.map +1 -0
- package/dist/typescript/src/components/Card/utilities.d.ts +7 -0
- package/dist/typescript/src/components/Card/utilities.d.ts.map +1 -0
- package/dist/typescript/src/components/useForm.d.ts +22 -0
- package/dist/typescript/src/components/useForm.d.ts.map +1 -0
- package/dist/typescript/src/index.d.ts +4 -0
- package/dist/typescript/src/index.d.ts.map +1 -0
- package/dist/typescript/src/native.d.ts +2 -0
- package/dist/typescript/src/native.d.ts.map +1 -0
- package/{lib/typescript/src/index.d.ts → dist/typescript/src/sdk.d.ts} +1 -1
- package/dist/typescript/src/sdk.d.ts.map +1 -0
- package/package.json +33 -33
- package/src/components/Card/Card.tsx +155 -0
- package/src/components/Card/CardCVC.tsx +53 -0
- package/src/components/Card/CardExpiry.tsx +48 -0
- package/src/components/Card/CardHolder.tsx +46 -0
- package/src/components/Card/CardNumber.tsx +69 -0
- package/src/components/Card/context.tsx +25 -0
- package/src/components/Card/index.ts +1 -0
- package/src/components/Card/types.ts +52 -0
- package/src/components/Card/utilities.ts +103 -0
- package/src/components/useForm.tsx +172 -0
- package/src/index.tsx +10 -26
- package/src/native.ts +18 -0
- package/src/sdk.ts +25 -0
- package/lib/commonjs/index.js.map +0 -1
- package/lib/module/index.js.map +0 -1
- package/lib/typescript/src/index.d.ts.map +0 -1
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { createContext, useContext } from 'react';
|
|
2
|
+
export const CardContext = /*#__PURE__*/createContext({
|
|
3
|
+
values: {
|
|
4
|
+
name: '',
|
|
5
|
+
number: '',
|
|
6
|
+
cvc: '',
|
|
7
|
+
expiry: ''
|
|
8
|
+
},
|
|
9
|
+
register: () => ({
|
|
10
|
+
onChange: () => {},
|
|
11
|
+
onBlur: () => {}
|
|
12
|
+
}),
|
|
13
|
+
setRegisteredFields: () => {}
|
|
14
|
+
});
|
|
15
|
+
export const useCardContext = () => useContext(CardContext);
|
|
16
|
+
//# sourceMappingURL=context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["createContext","useContext","CardContext","values","name","number","cvc","expiry","register","onChange","onBlur","setRegisteredFields","useCardContext"],"sourceRoot":"../../../../src","sources":["components/Card/context.tsx"],"mappings":"AACA,SAAmCA,aAAa,EAAEC,UAAU,QAAQ,OAAO;AAS3E,OAAO,MAAMC,WAAW,gBAAGF,aAAa,CAAoB;EAC1DG,MAAM,EAAE;IACNC,IAAI,EAAE,EAAE;IACRC,MAAM,EAAE,EAAE;IACVC,GAAG,EAAE,EAAE;IACPC,MAAM,EAAE;EACV,CAAC;EACDC,QAAQ,EAAEA,CAAA,MAAO;IACfC,QAAQ,EAAEA,CAAA,KAAM,CAAC,CAAC;IAChBC,MAAM,EAAEA,CAAA,KAAM,CAAC;EACf,CAAC,CAAC;EACNC,mBAAmB,EAAEA,CAAA,KAAM,CAAC;AAC5B,CAAC,CAAC;AAEJ,OAAO,MAAMC,cAAc,GAAGA,CAAA,KAAMX,UAAU,CAACC,WAAW,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["Card"],"sourceRoot":"../../../../src","sources":["components/Card/index.ts"],"mappings":"AAAA,SAASA,IAAI,QAAwB,QAAQ","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../../../src","sources":["components/Card/types.ts"],"mappings":"","ignoreList":[]}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { validateNumber, validateExpiry, validateCVC } from '@evervault/card-validator';
|
|
2
|
+
export async function changePayload(encrypt, form, fields) {
|
|
3
|
+
const {
|
|
4
|
+
name,
|
|
5
|
+
number,
|
|
6
|
+
expiry,
|
|
7
|
+
cvc
|
|
8
|
+
} = form.values;
|
|
9
|
+
const {
|
|
10
|
+
brand,
|
|
11
|
+
localBrands,
|
|
12
|
+
bin,
|
|
13
|
+
lastFour,
|
|
14
|
+
isValid: isValidCardNumber
|
|
15
|
+
} = validateNumber(number);
|
|
16
|
+
return {
|
|
17
|
+
card: {
|
|
18
|
+
name,
|
|
19
|
+
brand,
|
|
20
|
+
localBrands,
|
|
21
|
+
bin,
|
|
22
|
+
lastFour,
|
|
23
|
+
number: isValidCardNumber ? await encryptedNumber(encrypt, number) : null,
|
|
24
|
+
expiry: formatExpiry(expiry),
|
|
25
|
+
cvc: await encryptedCVC(encrypt, cvc, number)
|
|
26
|
+
},
|
|
27
|
+
isValid: form.isValid,
|
|
28
|
+
isComplete: isComplete(form, fields),
|
|
29
|
+
errors: Object.keys(form.errors ?? {}).length > 0 ? form.errors : null
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
export function isComplete(form, fields) {
|
|
33
|
+
if (fields.includes('name')) {
|
|
34
|
+
if (form.values.name.length === 0) return false;
|
|
35
|
+
}
|
|
36
|
+
if (fields.includes('number')) {
|
|
37
|
+
const cardValidation = validateNumber(form.values.number);
|
|
38
|
+
if (!cardValidation.isValid) return false;
|
|
39
|
+
}
|
|
40
|
+
if (fields.includes('expiry')) {
|
|
41
|
+
const expiryValidation = validateExpiry(form.values.expiry);
|
|
42
|
+
if (!expiryValidation.isValid) return false;
|
|
43
|
+
}
|
|
44
|
+
if (fields.includes('cvc')) {
|
|
45
|
+
const cvcValidation = validateCVC(form.values.cvc, form.values.number);
|
|
46
|
+
if (!cvcValidation.isValid) return false;
|
|
47
|
+
}
|
|
48
|
+
return true;
|
|
49
|
+
}
|
|
50
|
+
export function isAcceptedBrand(acceptedBrands, cardNumberValidationResult) {
|
|
51
|
+
if (!acceptedBrands) return true;
|
|
52
|
+
const {
|
|
53
|
+
brand,
|
|
54
|
+
localBrands
|
|
55
|
+
} = cardNumberValidationResult;
|
|
56
|
+
const isBrandAccepted = brand !== null && acceptedBrands.includes(brand);
|
|
57
|
+
const isLocalBrandAccepted = localBrands.some(localBrand => acceptedBrands.includes(localBrand));
|
|
58
|
+
return isBrandAccepted || isLocalBrandAccepted;
|
|
59
|
+
}
|
|
60
|
+
function formatExpiry(expiry) {
|
|
61
|
+
const parsedExpiry = validateExpiry(expiry);
|
|
62
|
+
return {
|
|
63
|
+
month: parsedExpiry.month,
|
|
64
|
+
year: parsedExpiry.year
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
async function encryptedNumber(encrypt, number) {
|
|
68
|
+
return encrypt(number);
|
|
69
|
+
}
|
|
70
|
+
async function encryptedCVC(encrypt, cvc, cardNumber) {
|
|
71
|
+
const {
|
|
72
|
+
isValid
|
|
73
|
+
} = validateCVC(cvc, cardNumber);
|
|
74
|
+
if (!isValid) return null;
|
|
75
|
+
return encrypt(cvc);
|
|
76
|
+
}
|
|
77
|
+
//# sourceMappingURL=utilities.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["validateNumber","validateExpiry","validateCVC","changePayload","encrypt","form","fields","name","number","expiry","cvc","values","brand","localBrands","bin","lastFour","isValid","isValidCardNumber","card","encryptedNumber","formatExpiry","encryptedCVC","isComplete","errors","Object","keys","length","includes","cardValidation","expiryValidation","cvcValidation","isAcceptedBrand","acceptedBrands","cardNumberValidationResult","isBrandAccepted","isLocalBrandAccepted","some","localBrand","parsedExpiry","month","year","cardNumber"],"sourceRoot":"../../../../src","sources":["components/Card/utilities.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
import { useCallback, useEffect, useMemo, useRef, useState } from "react";
|
|
2
|
+
export function useForm({
|
|
3
|
+
initialValues,
|
|
4
|
+
validate,
|
|
5
|
+
onChange
|
|
6
|
+
}) {
|
|
7
|
+
const validators = useRef(validate);
|
|
8
|
+
const triggerChange = useRef(false);
|
|
9
|
+
const [values, setValues] = useState(initialValues);
|
|
10
|
+
const [errors, setErrors] = useState({});
|
|
11
|
+
|
|
12
|
+
// keep track of latest validation functions in a ref to prevent
|
|
13
|
+
// re-renders when the function changes.
|
|
14
|
+
useEffect(() => {
|
|
15
|
+
validators.current = validate;
|
|
16
|
+
}, [validate]);
|
|
17
|
+
const setError = useCallback((field, error) => {
|
|
18
|
+
if (!error) {
|
|
19
|
+
setErrors(prev => {
|
|
20
|
+
if (!prev) return prev;
|
|
21
|
+
return Object.keys(prev).reduce((acc, key) => {
|
|
22
|
+
if (key === field) return acc;
|
|
23
|
+
return {
|
|
24
|
+
...acc,
|
|
25
|
+
[key]: prev?.[key]
|
|
26
|
+
};
|
|
27
|
+
}, {});
|
|
28
|
+
});
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
setErrors(prev => ({
|
|
32
|
+
...prev,
|
|
33
|
+
[field]: error
|
|
34
|
+
}));
|
|
35
|
+
triggerChange.current = true;
|
|
36
|
+
}, []);
|
|
37
|
+
const setValue = useCallback((field, value) => {
|
|
38
|
+
if (errors?.[field]) {
|
|
39
|
+
setError(field, undefined);
|
|
40
|
+
}
|
|
41
|
+
setValues(previous => ({
|
|
42
|
+
...previous,
|
|
43
|
+
[field]: value
|
|
44
|
+
}));
|
|
45
|
+
triggerChange.current = true;
|
|
46
|
+
}, [errors, setError]);
|
|
47
|
+
const isValid = useMemo(() => Object.keys(errors ?? {}).length === 0, [errors]);
|
|
48
|
+
const validateForm = useCallback(() => {
|
|
49
|
+
const nextErrors = Object.keys(values).reduce((acc, key) => {
|
|
50
|
+
const validator = validators.current?.[key];
|
|
51
|
+
if (validator) {
|
|
52
|
+
const error = validator(values);
|
|
53
|
+
if (error) {
|
|
54
|
+
return {
|
|
55
|
+
...acc,
|
|
56
|
+
[key]: error
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
return acc;
|
|
61
|
+
}, {});
|
|
62
|
+
const hasErrors = Object.keys(nextErrors).length > 0;
|
|
63
|
+
setErrors(hasErrors ? nextErrors : null);
|
|
64
|
+
|
|
65
|
+
// iterate over the errors and if any of them are different then we should
|
|
66
|
+
// trigger a change event.
|
|
67
|
+
const shouldTriggerChange = Object.keys(nextErrors).some(key => {
|
|
68
|
+
const prevError = errors?.[key];
|
|
69
|
+
const nextError = nextErrors[key];
|
|
70
|
+
return prevError !== nextError;
|
|
71
|
+
});
|
|
72
|
+
triggerChange.current = shouldTriggerChange;
|
|
73
|
+
}, [errors, values]);
|
|
74
|
+
const validateField = useCallback(field => {
|
|
75
|
+
const validator = validators.current?.[field];
|
|
76
|
+
if (validator) {
|
|
77
|
+
const error = validator(values);
|
|
78
|
+
setError(field, error);
|
|
79
|
+
}
|
|
80
|
+
}, [values, setError]);
|
|
81
|
+
const register = useCallback(name => {
|
|
82
|
+
const handleBlur = () => {
|
|
83
|
+
validateField(name);
|
|
84
|
+
};
|
|
85
|
+
const handleChange = value => {
|
|
86
|
+
setValue(name, value);
|
|
87
|
+
};
|
|
88
|
+
return {
|
|
89
|
+
onBlur: handleBlur,
|
|
90
|
+
onChange: handleChange
|
|
91
|
+
};
|
|
92
|
+
}, [setValue, validateField]);
|
|
93
|
+
const form = useMemo(() => ({
|
|
94
|
+
values,
|
|
95
|
+
setValue,
|
|
96
|
+
errors,
|
|
97
|
+
setError,
|
|
98
|
+
isValid,
|
|
99
|
+
register,
|
|
100
|
+
setValues,
|
|
101
|
+
validate: validateForm
|
|
102
|
+
}), [values, setValue, errors, setError, isValid, register, validateForm]);
|
|
103
|
+
useEffect(() => {
|
|
104
|
+
if (!triggerChange.current) return;
|
|
105
|
+
triggerChange.current = false;
|
|
106
|
+
onChange?.(form);
|
|
107
|
+
}, [form, onChange]);
|
|
108
|
+
return form;
|
|
109
|
+
}
|
|
110
|
+
//# sourceMappingURL=useForm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useCallback","useEffect","useMemo","useRef","useState","useForm","initialValues","validate","onChange","validators","triggerChange","values","setValues","errors","setErrors","current","setError","field","error","prev","Object","keys","reduce","acc","key","setValue","value","undefined","previous","isValid","length","validateForm","nextErrors","validator","hasErrors","shouldTriggerChange","some","prevError","nextError","validateField","register","name","handleBlur","handleChange","onBlur","form"],"sourceRoot":"../../../src","sources":["components/useForm.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["Card","init","encrypt"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"AAAA,SAAyBA,IAAI,QAAQ,mBAAmB;AACxD,SAASC,IAAI,EAAEC,OAAO,QAAQ,OAAO","ignoreList":[]}
|
|
@@ -3,15 +3,9 @@ const LINKING_ERROR = `The package '@evervault/evervault-react-native' doesn't s
|
|
|
3
3
|
ios: "- You have run 'pod install'\n",
|
|
4
4
|
default: ''
|
|
5
5
|
}) + '- You rebuilt the app after installing the package\n' + '- You are not using Expo Go\n';
|
|
6
|
-
const EvervaultSdk = NativeModules.EvervaultSdk ? NativeModules.EvervaultSdk : new Proxy({}, {
|
|
6
|
+
export const EvervaultSdk = NativeModules.EvervaultSdk ? NativeModules.EvervaultSdk : new Proxy({}, {
|
|
7
7
|
get() {
|
|
8
8
|
throw new Error(LINKING_ERROR);
|
|
9
9
|
}
|
|
10
10
|
});
|
|
11
|
-
|
|
12
|
-
return EvervaultSdk.initialize(teamUuid, appUuid);
|
|
13
|
-
}
|
|
14
|
-
export async function encrypt(data) {
|
|
15
|
-
return EvervaultSdk.encrypt(data);
|
|
16
|
-
}
|
|
17
|
-
//# sourceMappingURL=index.js.map
|
|
11
|
+
//# sourceMappingURL=native.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["NativeModules","Platform","LINKING_ERROR","select","ios","default","EvervaultSdk","Proxy","get","Error"],"sourceRoot":"../../src","sources":["native.ts"],"mappings":"AAAA,SAASA,aAAa,EAAEC,QAAQ,QAAQ,cAAc;AAEtD,MAAMC,aAAa,GAChB,4FAA2F,GAC5FD,QAAQ,CAACE,MAAM,CAAC;EAAEC,GAAG,EAAE,gCAAgC;EAAEC,OAAO,EAAE;AAAG,CAAC,CAAC,GACvE,sDAAsD,GACtD,+BAA+B;AAEjC,OAAO,MAAMC,YAAY,GAAGN,aAAa,CAACM,YAAY,GAClDN,aAAa,CAACM,YAAY,GAC1B,IAAIC,KAAK,CACP,CAAC,CAAC,EACF;EACEC,GAAGA,CAAA,EAAG;IACJ,MAAM,IAAIC,KAAK,CAACP,aAAa,CAAC;EAChC;AACF,CACF,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { Platform } from 'react-native';
|
|
2
|
+
import { EvervaultSdk } from './native';
|
|
3
|
+
export async function init(teamUuid, appUuid) {
|
|
4
|
+
if (!teamUuid.startsWith('team_')) {
|
|
5
|
+
throw new Error("Invalid Evervault Team UUID");
|
|
6
|
+
}
|
|
7
|
+
if (!appUuid.startsWith('app_')) {
|
|
8
|
+
throw new Error("Invalid Evervault App UUID");
|
|
9
|
+
}
|
|
10
|
+
return EvervaultSdk.initialize(teamUuid, appUuid);
|
|
11
|
+
}
|
|
12
|
+
export async function encrypt(data) {
|
|
13
|
+
if (Platform.OS === 'android' && typeof data !== 'string') {
|
|
14
|
+
throw new Error(`The Evervault SDK does not currently support encrypting non-string data on Android.
|
|
15
|
+
If this is required for your use case, please get in touch with us at support@evervault.com. Please do not
|
|
16
|
+
serialize other data types to strings and pass them to this method as this will result in the data
|
|
17
|
+
type being returned in it's stringified form when decryption occurs.`);
|
|
18
|
+
}
|
|
19
|
+
return EvervaultSdk.encrypt(data);
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=sdk.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["Platform","EvervaultSdk","init","teamUuid","appUuid","startsWith","Error","initialize","encrypt","data","OS"],"sourceRoot":"../../src","sources":["sdk.ts"],"mappings":"AAAA,SAASA,QAAQ,QAAQ,cAAc;AACvC,SAASC,YAAY,QAAQ,UAAU;AAEvC,OAAO,eAAeC,IAAIA,CAACC,QAAgB,EAAEC,OAAe,EAAiB;EAC3E,IAAI,CAACD,QAAQ,CAACE,UAAU,CAAC,OAAO,CAAC,EAAE;IACjC,MAAM,IAAIC,KAAK,CAAC,6BAA6B,CAAC;EAChD;EAEA,IAAI,CAACF,OAAO,CAACC,UAAU,CAAC,MAAM,CAAC,EAAE;IAC/B,MAAM,IAAIC,KAAK,CAAC,4BAA4B,CAAC;EAC/C;EAEA,OAAOL,YAAY,CAACM,UAAU,CAACJ,QAAQ,EAAEC,OAAO,CAAC;AACnD;AAEA,OAAO,eAAeI,OAAOA,CAACC,IAAS,EAAmB;EACxD,IAAIT,QAAQ,CAACU,EAAE,KAAK,SAAS,IAAI,OAAOD,IAAI,KAAK,QAAQ,EAAE;IACzD,MAAM,IAAIH,KAAK,CAAE;AACrB;AACA;AACA,2EAA2E,CAAC;EAC1E;EAEA,OAAOL,YAAY,CAACO,OAAO,CAACC,IAAI,CAAC;AACnC","ignoreList":[]}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
import type { CardForm, CardConfig, CardPayload } from './types';
|
|
3
|
+
import { CardNumber } from './CardNumber';
|
|
4
|
+
import { CardHolder } from './CardHolder';
|
|
5
|
+
import { CardExpiry } from './CardExpiry';
|
|
6
|
+
import { StyleProp, TextStyle } from 'react-native';
|
|
7
|
+
export interface BaseProps {
|
|
8
|
+
disabled?: boolean;
|
|
9
|
+
placeholder?: string;
|
|
10
|
+
readOnly?: boolean;
|
|
11
|
+
style?: StyleProp<TextStyle>;
|
|
12
|
+
}
|
|
13
|
+
export interface CardProps {
|
|
14
|
+
initialValue?: CardForm;
|
|
15
|
+
config?: CardConfig;
|
|
16
|
+
children: ReactNode;
|
|
17
|
+
onChange?: (payload: CardPayload) => void;
|
|
18
|
+
onComplete?: (payload: CardPayload) => void;
|
|
19
|
+
style?: StyleProp<TextStyle>;
|
|
20
|
+
}
|
|
21
|
+
declare function Card({ initialValue, config, children, onChange, onComplete, style, }: CardProps): import("react").JSX.Element;
|
|
22
|
+
declare const CardNamespace: typeof Card & {
|
|
23
|
+
Number: typeof CardNumber;
|
|
24
|
+
CVC: ({ style, disabled, placeholder, readOnly, }: import("./CardCVC").CVCProps) => import("react").JSX.Element;
|
|
25
|
+
Holder: typeof CardHolder;
|
|
26
|
+
Expiry: typeof CardExpiry;
|
|
27
|
+
};
|
|
28
|
+
export { CardNamespace as Card };
|
|
29
|
+
//# sourceMappingURL=Card.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Card.d.ts","sourceRoot":"","sources":["../../../../../src/components/Card/Card.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAE,SAAS,EAAuB,MAAM,OAAO,CAAC;AAGvD,OAAO,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAa,WAAW,EAAE,MAAM,SAAS,CAAC;AAC5E,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAI1C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,SAAS,EAAQ,MAAM,cAAc,CAAC;AAE1D,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;CAC9B;AAED,MAAM,WAAW,SAAS;IACxB,YAAY,CAAC,EAAE,QAAQ,CAAC;IACxB,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,QAAQ,EAAE,SAAS,CAAC;IACpB,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,IAAI,CAAC;IAC1C,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,IAAI,CAAC;IAC5C,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;CAC9B;AAED,iBAAS,IAAI,CAAC,EACZ,YAAY,EACZ,MAAM,EACN,QAAQ,EACR,QAAQ,EACR,UAAU,EACV,KAAK,GACN,EAAE,SAAS,+BAyGX;AAED,QAAA,MAAM,aAAa;;;;;CAKjB,CAAC;AAEH,OAAO,EAAE,aAAa,IAAI,IAAI,EAAE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CardCVC.d.ts","sourceRoot":"","sources":["../../../../../src/components/Card/CardCVC.tsx"],"names":[],"mappings":"AACA,OAAO,KAA6B,MAAM,OAAO,CAAC;AAGlD,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAEnC,MAAM,WAAW,QAAS,SAAQ,SAAS;CAAI;AAE/C,eAAO,MAAM,OAAO,gDAKjB,QAAQ,sBAuCV,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { BaseProps } from './Card';
|
|
3
|
+
export interface CardExpiryProps extends BaseProps {
|
|
4
|
+
}
|
|
5
|
+
export declare function CardExpiry({ disabled, placeholder, readOnly, style }: CardExpiryProps): import("react").JSX.Element;
|
|
6
|
+
//# sourceMappingURL=CardExpiry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CardExpiry.d.ts","sourceRoot":"","sources":["../../../../../src/components/Card/CardExpiry.tsx"],"names":[],"mappings":";AAGA,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAEnC,MAAM,WAAW,eAAgB,SAAQ,SAAS;CAAI;AAEtD,wBAAgB,UAAU,CAAC,EACzB,QAAQ,EACR,WAAW,EACX,QAAQ,EACR,KAAK,EACN,EAAE,eAAe,+BAmCjB"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { BaseProps } from './Card';
|
|
3
|
+
export interface CardHolderProps extends BaseProps {
|
|
4
|
+
autoFocus?: boolean;
|
|
5
|
+
}
|
|
6
|
+
export declare function CardHolder({ autoFocus, disabled, placeholder, readOnly, style }: CardHolderProps): import("react").JSX.Element;
|
|
7
|
+
//# sourceMappingURL=CardHolder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CardHolder.d.ts","sourceRoot":"","sources":["../../../../../src/components/Card/CardHolder.tsx"],"names":[],"mappings":";AAGA,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAEnC,MAAM,WAAW,eAAgB,SAAQ,SAAS;IAChD,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,wBAAgB,UAAU,CAAC,EACzB,SAAS,EACT,QAAQ,EACR,WAAW,EACX,QAAQ,EACR,KAAK,EACN,EAAE,eAAe,+BA8BjB"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { BaseProps } from './Card';
|
|
3
|
+
interface CardNumberProps extends BaseProps {
|
|
4
|
+
autoFocus?: boolean;
|
|
5
|
+
}
|
|
6
|
+
export declare function CardNumber({ autoFocus, disabled, placeholder, readOnly, style, }: CardNumberProps): import("react").JSX.Element;
|
|
7
|
+
export {};
|
|
8
|
+
//# sourceMappingURL=CardNumber.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CardNumber.d.ts","sourceRoot":"","sources":["../../../../../src/components/Card/CardNumber.tsx"],"names":[],"mappings":";AAIA,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAEnC,UAAU,eAAgB,SAAQ,SAAS;IACzC,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,wBAAgB,UAAU,CAAC,EACzB,SAAS,EACT,QAAQ,EACR,WAAW,EACX,QAAQ,EACR,KAAK,GACN,EAAE,eAAe,+BAoDjB"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { UseFormReturn } from '../useForm';
|
|
2
|
+
import { Dispatch, SetStateAction } from 'react';
|
|
3
|
+
import { CardForm, CardField } from './types';
|
|
4
|
+
type Context<T> = {
|
|
5
|
+
values: CardForm;
|
|
6
|
+
register: UseFormReturn<T>['register'];
|
|
7
|
+
setRegisteredFields: Dispatch<SetStateAction<Set<CardField>>>;
|
|
8
|
+
};
|
|
9
|
+
export declare const CardContext: import("react").Context<Context<CardForm>>;
|
|
10
|
+
export declare const useCardContext: () => Context<CardForm>;
|
|
11
|
+
export {};
|
|
12
|
+
//# sourceMappingURL=context.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../../../src/components/Card/context.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,cAAc,EAA6B,MAAM,OAAO,CAAC;AAC5E,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAE9C,KAAK,OAAO,CAAC,CAAC,IAAI;IAChB,MAAM,EAAE,QAAQ,CAAC;IACjB,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;IACvC,mBAAmB,EAAE,QAAQ,CAAC,cAAc,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;CAC/D,CAAC;AAEF,eAAO,MAAM,WAAW,4CAYpB,CAAC;AAEL,eAAO,MAAM,cAAc,yBAAgC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/Card/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,KAAK,SAAS,EAAE,MAAM,QAAQ,CAAC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
export type CardBrandName = 'american-express' | 'visa' | 'mastercard' | 'discover' | 'jcb' | 'diners-club' | 'unionpay' | 'maestro' | 'mir' | 'elo' | 'hipercard' | 'hiper' | 'szep';
|
|
2
|
+
export interface CardConfig {
|
|
3
|
+
acceptedBrands?: CardBrandName[];
|
|
4
|
+
}
|
|
5
|
+
export interface CardForm {
|
|
6
|
+
name: string;
|
|
7
|
+
number: string;
|
|
8
|
+
cvc: string;
|
|
9
|
+
expiry: string;
|
|
10
|
+
}
|
|
11
|
+
export type CardField = 'name' | 'number' | 'expiry' | 'cvc';
|
|
12
|
+
export interface CardExpiry {
|
|
13
|
+
month: string | null;
|
|
14
|
+
year: string | null;
|
|
15
|
+
}
|
|
16
|
+
export interface CardPayload {
|
|
17
|
+
card: {
|
|
18
|
+
name: string | null;
|
|
19
|
+
brand: string | null;
|
|
20
|
+
localBrands: string[] | null;
|
|
21
|
+
number: string | null;
|
|
22
|
+
lastFour: string | null;
|
|
23
|
+
bin: string | null;
|
|
24
|
+
expiry: CardExpiry;
|
|
25
|
+
cvc: string | null;
|
|
26
|
+
};
|
|
27
|
+
isValid: boolean;
|
|
28
|
+
isComplete: boolean;
|
|
29
|
+
errors: null | Partial<{
|
|
30
|
+
number?: string;
|
|
31
|
+
cvc?: string;
|
|
32
|
+
expiry?: string;
|
|
33
|
+
}>;
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/components/Card/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,aAAa,GACrB,kBAAkB,GAClB,MAAM,GACN,YAAY,GACZ,UAAU,GACV,KAAK,GACL,aAAa,GACb,UAAU,GACV,SAAS,GACT,KAAK,GACL,KAAK,GACL,WAAW,GACX,OAAO,GACP,MAAM,CAAC;AAEX,MAAM,WAAW,UAAU;IACzB,cAAc,CAAC,EAAE,aAAa,EAAE,CAAC;CAClC;AAED,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAAG,KAAK,CAAC;AAE7D,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CACrB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE;QACJ,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;QACpB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;QACrB,WAAW,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;QAC7B,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;QACtB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;QACxB,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;QACnB,MAAM,EAAE,UAAU,CAAC;QACnB,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;KACpB,CAAC;IACF,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,OAAO,CAAC;IACpB,MAAM,EAAE,IAAI,GAAG,OAAO,CAAC;QACrB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC,CAAC;CACJ"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { CardNumberValidationResult } from '@evervault/card-validator';
|
|
2
|
+
import type { CardForm, CardBrandName, CardField, CardPayload } from './types';
|
|
3
|
+
import { UseFormReturn } from '../useForm';
|
|
4
|
+
export declare function changePayload(encrypt: (value: string) => Promise<string>, form: UseFormReturn<CardForm>, fields: CardField[]): Promise<CardPayload>;
|
|
5
|
+
export declare function isComplete(form: UseFormReturn<CardForm>, fields: CardField[]): boolean;
|
|
6
|
+
export declare function isAcceptedBrand(acceptedBrands: CardBrandName[] | undefined, cardNumberValidationResult: CardNumberValidationResult): boolean;
|
|
7
|
+
//# sourceMappingURL=utilities.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utilities.d.ts","sourceRoot":"","sources":["../../../../../src/components/Card/utilities.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,0BAA0B,EAC3B,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAC/E,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE3C,wBAAsB,aAAa,CACjC,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,EAC3C,IAAI,EAAE,aAAa,CAAC,QAAQ,CAAC,EAC7B,MAAM,EAAE,SAAS,EAAE,GAClB,OAAO,CAAC,WAAW,CAAC,CAwBtB;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,aAAa,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,WAqB5E;AAED,wBAAgB,eAAe,CAC7B,cAAc,EAAE,aAAa,EAAE,GAAG,SAAS,EAC3C,0BAA0B,EAAE,0BAA0B,GACrD,OAAO,CAUT"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
export interface UseFormReturn<T> {
|
|
3
|
+
values: T;
|
|
4
|
+
setValue: <K extends keyof T>(field: K, value: T[K]) => void;
|
|
5
|
+
setValues: React.Dispatch<React.SetStateAction<T>>;
|
|
6
|
+
errors: Partial<Record<keyof T, string>> | null;
|
|
7
|
+
setError: <K extends keyof T>(field: K, error: string | undefined) => void;
|
|
8
|
+
isValid: boolean;
|
|
9
|
+
validate: () => void;
|
|
10
|
+
register: <K extends keyof T>(name: K) => {
|
|
11
|
+
onChange: (value: T[K]) => void;
|
|
12
|
+
onBlur: (event: any) => void;
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
interface UseFormOptions<T> {
|
|
16
|
+
initialValues: T;
|
|
17
|
+
validate: Record<keyof T, (values: T) => string | undefined>;
|
|
18
|
+
onChange?: (values: UseFormReturn<T>) => void;
|
|
19
|
+
}
|
|
20
|
+
export declare function useForm<T extends object>({ initialValues, validate, onChange, }: UseFormOptions<T>): UseFormReturn<T>;
|
|
21
|
+
export {};
|
|
22
|
+
//# sourceMappingURL=useForm.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useForm.d.ts","sourceRoot":"","sources":["../../../../src/components/useForm.tsx"],"names":[],"mappings":";AAEA,MAAM,WAAW,aAAa,CAAC,CAAC;IAC9B,MAAM,EAAE,CAAC,CAAC;IACV,QAAQ,EAAE,CAAC,CAAC,SAAS,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;IAC7D,SAAS,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;IACnD,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC;IAChD,QAAQ,EAAE,CAAC,CAAC,SAAS,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,CAAC;IAC3E,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,QAAQ,EAAE,CAAC,CAAC,SAAS,MAAM,CAAC,EAC1B,IAAI,EAAE,CAAC,KACJ;QACH,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;QAEhC,MAAM,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;KAC9B,CAAC;CACH;AAED,UAAU,cAAc,CAAC,CAAC;IACxB,aAAa,EAAE,CAAC,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,MAAM,GAAG,SAAS,CAAC,CAAC;IAC7D,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;CAC/C;AAED,wBAAgB,OAAO,CAAC,CAAC,SAAS,MAAM,EAAE,EACxC,aAAa,EACb,QAAQ,EACR,QAAQ,GACT,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,CA8ItC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AACtC,YAAY,EACV,WAAW,EACX,UAAU,EACV,aAAa,EACb,UAAU,EACV,QAAQ,EACR,SAAS,GACV,MAAM,yBAAyB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"native.d.ts","sourceRoot":"","sources":["../../../src/native.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,YAAY,KASpB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sdk.d.ts","sourceRoot":"","sources":["../../../src/sdk.ts"],"names":[],"mappings":"AAGA,wBAAsB,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAU3E;AAED,wBAAsB,OAAO,CAAC,IAAI,EAAE,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,CASxD"}
|