@evervault/evervault-react-native 1.0.1 → 1.2.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/3DS/ThreeDSecure.js +34 -0
- package/dist/commonjs/components/3DS/ThreeDSecure.js.map +1 -0
- package/dist/commonjs/components/3DS/ThreeDSecureFrame.js +45 -0
- package/dist/commonjs/components/3DS/ThreeDSecureFrame.js.map +1 -0
- package/dist/commonjs/components/3DS/config.js +9 -0
- package/dist/commonjs/components/3DS/config.js.map +1 -0
- package/dist/commonjs/components/3DS/context.js +9 -0
- package/dist/commonjs/components/3DS/context.js.map +1 -0
- package/dist/commonjs/components/3DS/index.js +20 -0
- package/dist/commonjs/components/3DS/index.js.map +1 -0
- package/dist/commonjs/components/3DS/styles.js +63 -0
- package/dist/commonjs/components/3DS/styles.js.map +1 -0
- package/dist/commonjs/components/3DS/threeDSSession.js +109 -0
- package/dist/commonjs/components/3DS/threeDSSession.js.map +1 -0
- package/dist/commonjs/components/3DS/types.js +2 -0
- package/dist/commonjs/components/3DS/types.js.map +1 -0
- package/dist/commonjs/components/3DS/useThreeDSecure.js +46 -0
- package/dist/commonjs/components/3DS/useThreeDSecure.js.map +1 -0
- 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 +21 -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/3DS/ThreeDSecure.js +28 -0
- package/dist/module/components/3DS/ThreeDSecure.js.map +1 -0
- package/dist/module/components/3DS/ThreeDSecureFrame.js +36 -0
- package/dist/module/components/3DS/ThreeDSecureFrame.js.map +1 -0
- package/dist/module/components/3DS/config.js +3 -0
- package/dist/module/components/3DS/config.js.map +1 -0
- package/dist/module/components/3DS/context.js +3 -0
- package/dist/module/components/3DS/context.js.map +1 -0
- package/dist/module/components/3DS/index.js +3 -0
- package/dist/module/components/3DS/index.js.map +1 -0
- package/dist/module/components/3DS/styles.js +58 -0
- package/dist/module/components/3DS/styles.js.map +1 -0
- package/dist/module/components/3DS/threeDSSession.js +100 -0
- package/dist/module/components/3DS/threeDSSession.js.map +1 -0
- package/dist/module/components/3DS/types.js +2 -0
- package/dist/module/components/3DS/types.js.map +1 -0
- package/dist/module/components/3DS/useThreeDSecure.js +40 -0
- package/dist/module/components/3DS/useThreeDSecure.js.map +1 -0
- 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 +4 -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/3DS/ThreeDSecure.d.ts +8 -0
- package/dist/typescript/src/components/3DS/ThreeDSecure.d.ts.map +1 -0
- package/dist/typescript/src/components/3DS/ThreeDSecureFrame.d.ts +3 -0
- package/dist/typescript/src/components/3DS/ThreeDSecureFrame.d.ts.map +1 -0
- package/dist/typescript/src/components/3DS/config.d.ts +3 -0
- package/dist/typescript/src/components/3DS/config.d.ts.map +1 -0
- package/dist/typescript/src/components/3DS/context.d.ts +4 -0
- package/dist/typescript/src/components/3DS/context.d.ts.map +1 -0
- package/dist/typescript/src/components/3DS/index.d.ts +3 -0
- package/dist/typescript/src/components/3DS/index.d.ts.map +1 -0
- package/dist/typescript/src/components/3DS/styles.d.ts +57 -0
- package/dist/typescript/src/components/3DS/styles.d.ts.map +1 -0
- package/dist/typescript/src/components/3DS/threeDSSession.d.ts +10 -0
- package/dist/typescript/src/components/3DS/threeDSSession.d.ts.map +1 -0
- package/dist/typescript/src/components/3DS/types.d.ts +42 -0
- package/dist/typescript/src/components/3DS/types.d.ts.map +1 -0
- package/dist/typescript/src/components/3DS/useThreeDSecure.d.ts +3 -0
- package/dist/typescript/src/components/3DS/useThreeDSecure.d.ts.map +1 -0
- 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/types.d.ts.map +1 -1
- 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 +5 -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 +6 -80
- package/src/components/3DS/ThreeDSecure.tsx +32 -0
- package/src/components/3DS/ThreeDSecureFrame.tsx +39 -0
- package/src/components/3DS/config.ts +2 -0
- package/src/components/3DS/context.tsx +4 -0
- package/src/components/3DS/index.ts +2 -0
- package/src/components/3DS/styles.tsx +63 -0
- package/src/components/3DS/threeDSSession.ts +132 -0
- package/src/components/3DS/types.ts +46 -0
- package/src/components/3DS/useThreeDSecure.tsx +51 -0
- 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 +15 -14
- package/src/components/Card/utilities.ts +8 -8
- package/src/components/EvervaultProvider.tsx +64 -0
- package/src/index.tsx +5 -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
|
```
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.ThreeDSecure = void 0;
|
|
7
|
+
var _react = _interopRequireDefault(require("react"));
|
|
8
|
+
var _EvervaultProvider = require("../EvervaultProvider");
|
|
9
|
+
var _ThreeDSecureFrame = require("./ThreeDSecureFrame");
|
|
10
|
+
var _context = require("./context");
|
|
11
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
12
|
+
const ThreeDSecure = ({
|
|
13
|
+
state,
|
|
14
|
+
children
|
|
15
|
+
}) => {
|
|
16
|
+
const {
|
|
17
|
+
appUuid
|
|
18
|
+
} = (0, _EvervaultProvider.useEvervault)();
|
|
19
|
+
if (!appUuid) {
|
|
20
|
+
throw new Error("ThreeDSecure must be used within an Evervault Provider");
|
|
21
|
+
}
|
|
22
|
+
const {
|
|
23
|
+
session,
|
|
24
|
+
isVisible
|
|
25
|
+
} = state;
|
|
26
|
+
if (!session) return null;
|
|
27
|
+
return /*#__PURE__*/_react.default.createElement(_context.ThreeDSecureContext.Provider, {
|
|
28
|
+
value: state
|
|
29
|
+
}, isVisible && children);
|
|
30
|
+
};
|
|
31
|
+
const ThreeDSecureNamespace = exports.ThreeDSecure = Object.assign(ThreeDSecure, {
|
|
32
|
+
Frame: _ThreeDSecureFrame.ThreeDSecureFrame
|
|
33
|
+
});
|
|
34
|
+
//# sourceMappingURL=ThreeDSecure.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_EvervaultProvider","_ThreeDSecureFrame","_context","obj","__esModule","default","ThreeDSecure","state","children","appUuid","useEvervault","Error","session","isVisible","createElement","ThreeDSecureContext","Provider","value","ThreeDSecureNamespace","exports","Object","assign","Frame","ThreeDSecureFrame"],"sourceRoot":"../../../../src","sources":["components/3DS/ThreeDSecure.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AAEA,IAAAC,kBAAA,GAAAD,OAAA;AACA,IAAAE,kBAAA,GAAAF,OAAA;AACA,IAAAG,QAAA,GAAAH,OAAA;AAAgD,SAAAD,uBAAAK,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAGhD,MAAMG,YAAY,GAAGA,CAAC;EAAEC,KAAK;EAAEC;AAAoC,CAAC,KAAK;EACvE,MAAM;IAAEC;EAAQ,CAAC,GAAG,IAAAC,+BAAY,EAAC,CAAC;EAElC,IAAI,CAACD,OAAO,EAAE;IACZ,MAAM,IAAIE,KAAK,CAAC,wDAAwD,CAAC;EAC3E;EAEA,MAAM;IAAEC,OAAO;IAAEC;EAAU,CAAC,GAAGN,KAAK;EAEpC,IAAI,CAACK,OAAO,EAAE,OAAO,IAAI;EAEzB,oBACEf,MAAA,CAAAQ,OAAA,CAAAS,aAAA,CAACZ,QAAA,CAAAa,mBAAmB,CAACC,QAAQ;IAACC,KAAK,EAAEV;EAAM,GACxCM,SAAS,IAAIL,QACc,CAAC;AAEnC,CAAC;AAID,MAAMU,qBAAqB,GAAAC,OAAA,CAAAb,YAAA,GAAGc,MAAM,CAACC,MAAM,CAACf,YAAY,EAAE;EACxDgB,KAAK,EAAEC;AACT,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.ThreeDSecureFrame = ThreeDSecureFrame;
|
|
7
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
8
|
+
var _reactNative = require("react-native");
|
|
9
|
+
var _EvervaultProvider = require("../EvervaultProvider");
|
|
10
|
+
var _reactNativeWebview = _interopRequireDefault(require("react-native-webview"));
|
|
11
|
+
var _config = require("./config");
|
|
12
|
+
var _styles = require("./styles");
|
|
13
|
+
var _context = require("./context");
|
|
14
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
15
|
+
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); }
|
|
16
|
+
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; }
|
|
17
|
+
function ThreeDSecureFrame() {
|
|
18
|
+
const {
|
|
19
|
+
teamUuid,
|
|
20
|
+
appUuid
|
|
21
|
+
} = (0, _EvervaultProvider.useEvervault)();
|
|
22
|
+
const context = (0, _react.useContext)(_context.ThreeDSecureContext);
|
|
23
|
+
if (!teamUuid || !appUuid) {
|
|
24
|
+
throw new Error('Missing Evervault Team or App Uuid. Make sure the ThreeDSecureFrame is nested within the Evervault Provider');
|
|
25
|
+
}
|
|
26
|
+
if (!context) {
|
|
27
|
+
throw new Error("ThreeDSecure.Frame must be used within an Evervault ThreeDSecure provider component");
|
|
28
|
+
}
|
|
29
|
+
const {
|
|
30
|
+
session
|
|
31
|
+
} = context;
|
|
32
|
+
if (!session) {
|
|
33
|
+
return null; // 3DS Session not started yet
|
|
34
|
+
}
|
|
35
|
+
return /*#__PURE__*/_react.default.createElement(_reactNative.View, {
|
|
36
|
+
style: _styles.defaultThreeDSecureFrameStyles.threeDSFrame
|
|
37
|
+
}, /*#__PURE__*/_react.default.createElement(_reactNativeWebview.default, {
|
|
38
|
+
source: {
|
|
39
|
+
uri: `https://${_config.CHALLENGE_DOMAIN_3DS}/?session=${session.sessionId}&app=${appUuid}&team=${teamUuid}`
|
|
40
|
+
},
|
|
41
|
+
containerStyle: _styles.defaultThreeDSecureFrameStyles.webView,
|
|
42
|
+
overScrollMode: "content"
|
|
43
|
+
}));
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=ThreeDSecureFrame.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_EvervaultProvider","_reactNativeWebview","_interopRequireDefault","_config","_styles","_context","obj","__esModule","default","_getRequireWildcardCache","e","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","ThreeDSecureFrame","teamUuid","appUuid","useEvervault","context","useContext","ThreeDSecureContext","Error","session","createElement","View","style","defaultStyles","threeDSFrame","source","uri","CHALLENGE_DOMAIN_3DS","sessionId","containerStyle","webView","overScrollMode"],"sourceRoot":"../../../../src","sources":["components/3DS/ThreeDSecureFrame.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AACA,IAAAE,kBAAA,GAAAF,OAAA;AACA,IAAAG,mBAAA,GAAAC,sBAAA,CAAAJ,OAAA;AACA,IAAAK,OAAA,GAAAL,OAAA;AACA,IAAAM,OAAA,GAAAN,OAAA;AACA,IAAAO,QAAA,GAAAP,OAAA;AAAgD,SAAAI,uBAAAI,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAAA,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,SAAAb,wBAAAa,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAH,UAAA,SAAAG,CAAA,eAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,WAAAF,OAAA,EAAAE,CAAA,QAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAC,GAAA,CAAAJ,CAAA,UAAAG,CAAA,CAAAE,GAAA,CAAAL,CAAA,OAAAM,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAZ,CAAA,oBAAAY,CAAA,OAAAC,cAAA,CAAAC,IAAA,CAAAd,CAAA,EAAAY,CAAA,SAAAG,CAAA,GAAAP,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAX,CAAA,EAAAY,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,IAAAZ,CAAA,CAAAY,CAAA,YAAAN,CAAA,CAAAR,OAAA,GAAAE,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAa,GAAA,CAAAhB,CAAA,EAAAM,CAAA,GAAAA,CAAA;AAEzC,SAASW,iBAAiBA,CAAA,EAAG;EAClC,MAAM;IAAEC,QAAQ;IAAEC;EAAQ,CAAC,GAAG,IAAAC,+BAAY,EAAC,CAAC;EAC5C,MAAMC,OAAO,GAAG,IAAAC,iBAAU,EAACC,4BAAmB,CAAC;EAG/C,IAAI,CAACL,QAAQ,IAAI,CAACC,OAAO,EAAE;IACzB,MAAM,IAAIK,KAAK,CAAC,6GAA6G,CAAC;EAChI;EAEA,IAAI,CAACH,OAAO,EAAE;IACZ,MAAM,IAAIG,KAAK,CAAC,qFAAqF,CAAC;EACxG;EAEA,MAAM;IAAEC;EAAQ,CAAC,GAAGJ,OAAO;EAE3B,IAAI,CAACI,OAAO,EAAE;IACZ,OAAO,IAAI,CAAC,CAAC;EACf;EAEA,oBACEvC,MAAA,CAAAY,OAAA,CAAA4B,aAAA,CAACrC,YAAA,CAAAsC,IAAI;IAACC,KAAK,EAAEC,sCAAa,CAACC;EAAa,gBACtC5C,MAAA,CAAAY,OAAA,CAAA4B,aAAA,CAACnC,mBAAA,CAAAO,OAAO;IACNiC,MAAM,EAAE;MACNC,GAAG,EAAG,WAAUC,4BAAqB,aAAYR,OAAO,CAACS,SAAU,QAAOf,OAAQ,SAAQD,QAAS;IACrG,CAAE;IACFiB,cAAc,EAAEN,sCAAa,CAACO,OAAQ;IACtCC,cAAc,EAAC;EAAS,CACzB,CACG,CAAC;AAEX","ignoreList":[]}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.EV_API_DOMAIN = exports.CHALLENGE_DOMAIN_3DS = void 0;
|
|
7
|
+
const EV_API_DOMAIN = exports.EV_API_DOMAIN = process.env.EV_API_DOMAIN || 'api.evervault.com';
|
|
8
|
+
const CHALLENGE_DOMAIN_3DS = exports.CHALLENGE_DOMAIN_3DS = process.env.CHALLENGE_DOMAIN_3DS || 'c713-2a09-bac5-3a69-ebe-00-178-198.ngrok-free.app';
|
|
9
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["EV_API_DOMAIN","exports","process","env","CHALLENGE_DOMAIN_3DS"],"sourceRoot":"../../../../src","sources":["components/3DS/config.ts"],"mappings":";;;;;;AAAO,MAAMA,aAAa,GAAAC,OAAA,CAAAD,aAAA,GAAGE,OAAO,CAACC,GAAG,CAACH,aAAa,IAAI,mBAAmB;AACtE,MAAMI,oBAAoB,GAAAH,OAAA,CAAAG,oBAAA,GAAGF,OAAO,CAACC,GAAG,CAACC,oBAAoB,IAAI,mDAAmD","ignoreList":[]}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.ThreeDSecureContext = void 0;
|
|
7
|
+
var _react = require("react");
|
|
8
|
+
const ThreeDSecureContext = exports.ThreeDSecureContext = /*#__PURE__*/(0, _react.createContext)(null);
|
|
9
|
+
//# sourceMappingURL=context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","require","ThreeDSecureContext","exports","createContext"],"sourceRoot":"../../../../src","sources":["components/3DS/context.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAGO,MAAMC,mBAAmB,GAAAC,OAAA,CAAAD,mBAAA,gBAAG,IAAAE,oBAAa,EAA2B,IAAI,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
Object.defineProperty(exports, "ThreeDSecure", {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: function () {
|
|
9
|
+
return _ThreeDSecure.ThreeDSecure;
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
Object.defineProperty(exports, "useThreeDSecure", {
|
|
13
|
+
enumerable: true,
|
|
14
|
+
get: function () {
|
|
15
|
+
return _useThreeDSecure.useThreeDSecure;
|
|
16
|
+
}
|
|
17
|
+
});
|
|
18
|
+
var _ThreeDSecure = require("./ThreeDSecure");
|
|
19
|
+
var _useThreeDSecure = require("./useThreeDSecure");
|
|
20
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_ThreeDSecure","require","_useThreeDSecure"],"sourceRoot":"../../../../src","sources":["components/3DS/index.ts"],"mappings":";;;;;;;;;;;;;;;;;AAAA,IAAAA,aAAA,GAAAC,OAAA;AACA,IAAAC,gBAAA,GAAAD,OAAA","ignoreList":[]}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.defaultThreeDSecureFrameStyles = exports.defaultModalStyles = void 0;
|
|
7
|
+
var _reactNative = require("react-native");
|
|
8
|
+
const defaultModalStyles = exports.defaultModalStyles = _reactNative.StyleSheet.create({
|
|
9
|
+
modalContainer: {
|
|
10
|
+
flex: 1,
|
|
11
|
+
justifyContent: "flex-end",
|
|
12
|
+
backgroundColor: "rgba(0, 0, 0, 0.5)"
|
|
13
|
+
},
|
|
14
|
+
modalContent: {
|
|
15
|
+
width: "100%",
|
|
16
|
+
height: "95%",
|
|
17
|
+
backgroundColor: "#fff",
|
|
18
|
+
padding: 0,
|
|
19
|
+
justifyContent: "flex-start",
|
|
20
|
+
borderTopLeftRadius: 20,
|
|
21
|
+
borderTopRightRadius: 20
|
|
22
|
+
},
|
|
23
|
+
titleBar: {
|
|
24
|
+
justifyContent: "center",
|
|
25
|
+
alignItems: "center",
|
|
26
|
+
padding: 10,
|
|
27
|
+
backgroundColor: "#f5f5f5",
|
|
28
|
+
borderBottomWidth: 1,
|
|
29
|
+
borderBottomColor: "#ccc",
|
|
30
|
+
position: "relative",
|
|
31
|
+
width: "100%",
|
|
32
|
+
borderTopLeftRadius: 20,
|
|
33
|
+
borderTopRightRadius: 20
|
|
34
|
+
},
|
|
35
|
+
titleText: {
|
|
36
|
+
fontSize: 18,
|
|
37
|
+
fontWeight: "bold"
|
|
38
|
+
},
|
|
39
|
+
closeButton: {
|
|
40
|
+
position: "absolute",
|
|
41
|
+
left: 10,
|
|
42
|
+
padding: 10
|
|
43
|
+
},
|
|
44
|
+
closeButtonText: {
|
|
45
|
+
fontSize: 18,
|
|
46
|
+
fontWeight: "bold",
|
|
47
|
+
color: "black"
|
|
48
|
+
}
|
|
49
|
+
});
|
|
50
|
+
const defaultThreeDSecureFrameStyles = exports.defaultThreeDSecureFrameStyles = _reactNative.StyleSheet.create({
|
|
51
|
+
threeDSFrame: {
|
|
52
|
+
flex: 1
|
|
53
|
+
},
|
|
54
|
+
webView: {
|
|
55
|
+
flex: 1
|
|
56
|
+
},
|
|
57
|
+
spinnerOverlay: {
|
|
58
|
+
flex: 1,
|
|
59
|
+
justifyContent: 'center',
|
|
60
|
+
alignItems: 'center'
|
|
61
|
+
}
|
|
62
|
+
});
|
|
63
|
+
//# sourceMappingURL=styles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_reactNative","require","defaultModalStyles","exports","StyleSheet","create","modalContainer","flex","justifyContent","backgroundColor","modalContent","width","height","padding","borderTopLeftRadius","borderTopRightRadius","titleBar","alignItems","borderBottomWidth","borderBottomColor","position","titleText","fontSize","fontWeight","closeButton","left","closeButtonText","color","defaultThreeDSecureFrameStyles","threeDSFrame","webView","spinnerOverlay"],"sourceRoot":"../../../../src","sources":["components/3DS/styles.tsx"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AAEA,MAAMC,kBAAkB,GAAAC,OAAA,CAAAD,kBAAA,GAAGE,uBAAU,CAACC,MAAM,CAAC;EACzCC,cAAc,EAAE;IACZC,IAAI,EAAE,CAAC;IACPC,cAAc,EAAE,UAAU;IAC1BC,eAAe,EAAE;EACrB,CAAC;EACDC,YAAY,EAAE;IACVC,KAAK,EAAE,MAAM;IACbC,MAAM,EAAE,KAAK;IACbH,eAAe,EAAE,MAAM;IACvBI,OAAO,EAAE,CAAC;IACVL,cAAc,EAAE,YAAY;IAC5BM,mBAAmB,EAAE,EAAE;IACvBC,oBAAoB,EAAE;EAC1B,CAAC;EACDC,QAAQ,EAAE;IACNR,cAAc,EAAE,QAAQ;IACxBS,UAAU,EAAE,QAAQ;IACpBJ,OAAO,EAAE,EAAE;IACXJ,eAAe,EAAE,SAAS;IAC1BS,iBAAiB,EAAE,CAAC;IACpBC,iBAAiB,EAAE,MAAM;IACzBC,QAAQ,EAAE,UAAU;IACpBT,KAAK,EAAE,MAAM;IACbG,mBAAmB,EAAE,EAAE;IACvBC,oBAAoB,EAAE;EAC1B,CAAC;EACDM,SAAS,EAAE;IACPC,QAAQ,EAAE,EAAE;IACZC,UAAU,EAAE;EAChB,CAAC;EACDC,WAAW,EAAE;IACTJ,QAAQ,EAAE,UAAU;IACpBK,IAAI,EAAE,EAAE;IACRZ,OAAO,EAAE;EACb,CAAC;EACDa,eAAe,EAAE;IACbJ,QAAQ,EAAE,EAAE;IACZC,UAAU,EAAE,MAAM;IAClBI,KAAK,EAAE;EACX;AACJ,CAAC,CAAC;AAEF,MAAMC,8BAA8B,GAAAzB,OAAA,CAAAyB,8BAAA,GAAGxB,uBAAU,CAACC,MAAM,CAAC;EACvDwB,YAAY,EAAE;IACZtB,IAAI,EAAE;EACR,CAAC;EACDuB,OAAO,EAAE;IACPvB,IAAI,EAAE;EACR,CAAC;EACDwB,cAAc,EAAE;IACdxB,IAAI,EAAE,CAAC;IACPC,cAAc,EAAE,QAAQ;IACxBS,UAAU,EAAE;EACd;AACF,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.startSession = exports.pollSession = void 0;
|
|
7
|
+
exports.threeDSecureSession = threeDSecureSession;
|
|
8
|
+
var _config = require("./config");
|
|
9
|
+
const stopPolling = (intervalRef, setIsVisible) => {
|
|
10
|
+
setIsVisible(false);
|
|
11
|
+
clearInterval(intervalRef.current);
|
|
12
|
+
intervalRef.current = null;
|
|
13
|
+
};
|
|
14
|
+
const startSession = async (session, callbacks, intervalRef, setIsVisible) => {
|
|
15
|
+
try {
|
|
16
|
+
const sessionState = await session.get();
|
|
17
|
+
switch (sessionState.status) {
|
|
18
|
+
case "success":
|
|
19
|
+
stopPolling(intervalRef, setIsVisible);
|
|
20
|
+
callbacks.onSuccess();
|
|
21
|
+
break;
|
|
22
|
+
case "failure":
|
|
23
|
+
stopPolling(intervalRef, setIsVisible);
|
|
24
|
+
callbacks.onFailure(new Error("3DS session failed"));
|
|
25
|
+
break;
|
|
26
|
+
case "action-required":
|
|
27
|
+
setIsVisible(true);
|
|
28
|
+
pollSession(session, callbacks, intervalRef, setIsVisible);
|
|
29
|
+
break;
|
|
30
|
+
default:
|
|
31
|
+
break;
|
|
32
|
+
}
|
|
33
|
+
} catch (error) {
|
|
34
|
+
console.error("Error checking session state", error);
|
|
35
|
+
callbacks.onError(new Error("Failed to check 3DS session state"));
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
exports.startSession = startSession;
|
|
39
|
+
const pollSession = (session, callbacks, intervalRef, setIsVisible, interval = 3000) => {
|
|
40
|
+
intervalRef.current = setInterval(async () => {
|
|
41
|
+
try {
|
|
42
|
+
const pollResponse = await session.get();
|
|
43
|
+
if (pollResponse.status === "success") {
|
|
44
|
+
stopPolling(intervalRef, setIsVisible);
|
|
45
|
+
callbacks.onSuccess();
|
|
46
|
+
} else if (pollResponse.status === "failure") {
|
|
47
|
+
stopPolling(intervalRef, setIsVisible);
|
|
48
|
+
callbacks.onFailure(new Error("3DS session failed"));
|
|
49
|
+
} else {
|
|
50
|
+
setIsVisible(true);
|
|
51
|
+
}
|
|
52
|
+
} catch (error) {
|
|
53
|
+
stopPolling(intervalRef, setIsVisible);
|
|
54
|
+
console.error("Error polling session", error);
|
|
55
|
+
callbacks.onError(new Error("Error polling 3DS session"));
|
|
56
|
+
}
|
|
57
|
+
}, interval);
|
|
58
|
+
};
|
|
59
|
+
exports.pollSession = pollSession;
|
|
60
|
+
function threeDSecureSession({
|
|
61
|
+
sessionId,
|
|
62
|
+
appId,
|
|
63
|
+
callbacks,
|
|
64
|
+
intervalRef,
|
|
65
|
+
setIsVisible
|
|
66
|
+
}) {
|
|
67
|
+
const get = async () => {
|
|
68
|
+
try {
|
|
69
|
+
const response = await fetch(`https://${_config.EV_API_DOMAIN}/frontend/3ds/browser-sessions/${sessionId}`, {
|
|
70
|
+
headers: {
|
|
71
|
+
"x-evervault-app-id": appId
|
|
72
|
+
}
|
|
73
|
+
});
|
|
74
|
+
const result = await response.json();
|
|
75
|
+
return result;
|
|
76
|
+
} catch (error) {
|
|
77
|
+
console.error("Error fetching 3DS session status", error);
|
|
78
|
+
throw error;
|
|
79
|
+
}
|
|
80
|
+
};
|
|
81
|
+
const cancel = async () => {
|
|
82
|
+
try {
|
|
83
|
+
await fetch(`https://${_config.EV_API_DOMAIN}/frontend/3ds/browser-sessions/${sessionId}`, {
|
|
84
|
+
method: "PATCH",
|
|
85
|
+
headers: {
|
|
86
|
+
"Content-Type": "application/json",
|
|
87
|
+
"x-evervault-app-id": appId
|
|
88
|
+
},
|
|
89
|
+
body: JSON.stringify({
|
|
90
|
+
outcome: "cancelled"
|
|
91
|
+
})
|
|
92
|
+
});
|
|
93
|
+
callbacks.onFailure(new Error("3DS session cancelled by user"));
|
|
94
|
+
setIsVisible(false);
|
|
95
|
+
if (intervalRef.current) {
|
|
96
|
+
clearInterval(intervalRef.current);
|
|
97
|
+
}
|
|
98
|
+
} catch (error) {
|
|
99
|
+
console.error("Error cancelling 3DS session", error);
|
|
100
|
+
throw error;
|
|
101
|
+
}
|
|
102
|
+
};
|
|
103
|
+
return {
|
|
104
|
+
sessionId,
|
|
105
|
+
get,
|
|
106
|
+
cancel
|
|
107
|
+
};
|
|
108
|
+
}
|
|
109
|
+
//# sourceMappingURL=threeDSSession.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_config","require","stopPolling","intervalRef","setIsVisible","clearInterval","current","startSession","session","callbacks","sessionState","get","status","onSuccess","onFailure","Error","pollSession","error","console","onError","exports","interval","setInterval","pollResponse","threeDSecureSession","sessionId","appId","response","fetch","EV_API_DOMAIN","headers","result","json","cancel","method","body","JSON","stringify","outcome"],"sourceRoot":"../../../../src","sources":["components/3DS/threeDSSession.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../../../src","sources":["components/3DS/types.ts"],"mappings":"","ignoreList":[]}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.useThreeDSecure = void 0;
|
|
7
|
+
var _react = require("react");
|
|
8
|
+
var _EvervaultProvider = require("../EvervaultProvider");
|
|
9
|
+
var _threeDSSession = require("./threeDSSession");
|
|
10
|
+
const useThreeDSecure = () => {
|
|
11
|
+
const {
|
|
12
|
+
appUuid
|
|
13
|
+
} = (0, _EvervaultProvider.useEvervault)();
|
|
14
|
+
const intervalRef = (0, _react.useRef)(null);
|
|
15
|
+
const [session, setSession] = (0, _react.useState)(null);
|
|
16
|
+
const [isVisible, setIsVisible] = (0, _react.useState)(false);
|
|
17
|
+
if (!appUuid) {
|
|
18
|
+
throw new Error("useThreeDSecure must be used within an Evervault Provider");
|
|
19
|
+
}
|
|
20
|
+
const start = (sessionId, callbacks) => {
|
|
21
|
+
const session = (0, _threeDSSession.threeDSecureSession)({
|
|
22
|
+
sessionId,
|
|
23
|
+
appId: appUuid,
|
|
24
|
+
callbacks,
|
|
25
|
+
intervalRef,
|
|
26
|
+
setIsVisible
|
|
27
|
+
});
|
|
28
|
+
setSession(session);
|
|
29
|
+
(0, _threeDSSession.startSession)(session, callbacks, intervalRef, setIsVisible);
|
|
30
|
+
};
|
|
31
|
+
const cancel = async () => {
|
|
32
|
+
if (session) {
|
|
33
|
+
await session.cancel();
|
|
34
|
+
} else {
|
|
35
|
+
console.warn("No 3DS session to cancel");
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
return {
|
|
39
|
+
start,
|
|
40
|
+
cancel,
|
|
41
|
+
session,
|
|
42
|
+
isVisible: isVisible
|
|
43
|
+
};
|
|
44
|
+
};
|
|
45
|
+
exports.useThreeDSecure = useThreeDSecure;
|
|
46
|
+
//# sourceMappingURL=useThreeDSecure.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","require","_EvervaultProvider","_threeDSSession","useThreeDSecure","appUuid","useEvervault","intervalRef","useRef","session","setSession","useState","isVisible","setIsVisible","Error","start","sessionId","callbacks","threeDSecureSession","appId","startSession","cancel","console","warn","exports"],"sourceRoot":"../../../../src","sources":["components/3DS/useThreeDSecure.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAEA,IAAAC,kBAAA,GAAAD,OAAA;AACA,IAAAE,eAAA,GAAAF,OAAA;AAOO,MAAMG,eAAe,GAAGA,CAAA,KAAyB;EACtD,MAAM;IAAEC;EAAQ,CAAC,GAAG,IAAAC,+BAAY,EAAC,CAAC;EAClC,MAAMC,WAAW,GAAG,IAAAC,aAAM,EAAwB,IAAI,CAAC;EACvD,MAAM,CAACC,OAAO,EAAEC,UAAU,CAAC,GAAG,IAAAC,eAAQ,EAA6B,IAAI,CAAC;EACxE,MAAM,CAACC,SAAS,EAAEC,YAAY,CAAC,GAAG,IAAAF,eAAQ,EAAC,KAAK,CAAC;EAEjD,IAAI,CAACN,OAAO,EAAE;IACZ,MAAM,IAAIS,KAAK,CACb,2DACF,CAAC;EACH;EAEA,MAAMC,KAAK,GAAGA,CAACC,SAAiB,EAAEC,SAAgC,KAAK;IACrE,MAAMR,OAAO,GAAG,IAAAS,mCAAmB,EAAC;MAClCF,SAAS;MACTG,KAAK,EAAEd,OAAO;MACdY,SAAS;MACTV,WAAW;MACXM;IACF,CAAC,CAAC;IAEFH,UAAU,CAACD,OAAO,CAAC;IAEnB,IAAAW,4BAAY,EAACX,OAAO,EAAEQ,SAAS,EAAEV,WAAW,EAAEM,YAAY,CAAC;EAC7D,CAAC;EAED,MAAMQ,MAAM,GAAG,MAAAA,CAAA,KAAY;IACzB,IAAIZ,OAAO,EAAE;MACX,MAAMA,OAAO,CAACY,MAAM,CAAC,CAAC;IACxB,CAAC,MAAM;MACLC,OAAO,CAACC,IAAI,CAAC,0BAA0B,CAAC;IAC1C;EACF,CAAC;EAED,OAAO;IACLR,KAAK;IACLM,MAAM;IACNZ,OAAO;IACPG,SAAS,EAAEA;EACb,CAAC;AACH,CAAC;AAACY,OAAA,CAAApB,eAAA,GAAAA,eAAA","ignoreList":[]}
|
|
@@ -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
|
}));
|