frames-react-native 1.1.1 → 1.1.4

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.
@@ -4,6 +4,9 @@ on:
4
4
  push:
5
5
  branches:
6
6
  - main
7
+ pull_request:
8
+ branches:
9
+ - main
7
10
 
8
11
  jobs:
9
12
  test-and-coverage:
package/README.md CHANGED
@@ -1,5 +1,3 @@
1
- ❗️BETA
2
-
3
1
  # Frames React Native
4
2
 
5
3
  [![codecov](https://codecov.io/gh/checkout/frames-react-native/branch/main/graph/badge.svg?token=0UA86P7NKO)](https://codecov.io/gh/checkout/frames-react-native)
@@ -65,7 +63,11 @@ export default function App() {
65
63
  alert(e.token);
66
64
  }}
67
65
  >
68
- <CardNumber style={styles.cardNumber} placeholderTextColor="#9898A0" />
66
+ <CardNumber
67
+ style={styles.cardNumber}
68
+ placeholderTextColor="#9898A0"
69
+ // showIcon={false} in case you don't want to see the card scheme logo
70
+ />
69
71
 
70
72
  <View style={styles.dateAndCode}>
71
73
  <ExpiryDate
@@ -175,3 +177,4 @@ The tokenization is triggered when the SubmitButton is pressed. The process of g
175
177
  | cardValidationChanged | function | Triggered when the state of the card validation changes. |
176
178
  | cardTokenized | function | Triggered after a card is tokenized. Here you will get the card token alongside general card information |
177
179
  | cardTokenizationFailed | function | Triggered after the card tokenization fails. |
180
+ | cardBinChanged | function | Triggered when the user inputs or changes the first 8 digits of a card. |
@@ -48,6 +48,37 @@ describe("CardNumber", () => {
48
48
  expect(tokenized.mock.calls[0][0].last4).toEqual("4242");
49
49
  });
50
50
 
51
+ it("shared the card bin", async () => {
52
+ const binChange = jest.fn();
53
+
54
+ const { getByPlaceholderText, getByTestId } = render(
55
+ <Frames
56
+ config={{
57
+ publicKey: PK,
58
+ debug: true,
59
+ }}
60
+ cardTokenized={() => {}}
61
+ cardBinChanged={binChange}
62
+ >
63
+ <CardNumber placeholder="card-number" />
64
+ <ExpiryDate placeholder="expiry-date" />
65
+ <Cvv placeholder="cvv" />
66
+ <SubmitButton
67
+ title="Pay Now"
68
+ testID={"submit-button"}
69
+ onPress={() => {}}
70
+ />
71
+ </Frames>
72
+ );
73
+
74
+ let cardNumber = getByPlaceholderText("card-number");
75
+ let expiryDate = getByPlaceholderText("expiry-date");
76
+ let cvv = getByPlaceholderText("cvv");
77
+ let pay = getByTestId("submit-button");
78
+ fireEvent.changeText(cardNumber, "42424242");
79
+ expect(binChange).toHaveBeenCalledTimes(1);
80
+ });
81
+
51
82
  it("fails the card tokenization when the card number is invalid", async () => {
52
83
  const failed = jest.fn();
53
84
 
package/dist/Frames.js CHANGED
@@ -44,6 +44,10 @@ var Frames = function (props) {
44
44
  // @ts-ignore
45
45
  var _a = React.useReducer(framesReducer, {
46
46
  cardNumber: null,
47
+ cardBin: {
48
+ bin: null,
49
+ scheme: null,
50
+ },
47
51
  cardType: null,
48
52
  cardIcon: undefined,
49
53
  expiryDate: null,
@@ -84,6 +88,14 @@ var Frames = function (props) {
84
88
  }
85
89
  });
86
90
  }); };
91
+ useEffect(function () {
92
+ if (state.cardBin.bin !== null) {
93
+ if (props.config.debug)
94
+ console.info("Emitting \"cardBinChanged\"", state.cardBin);
95
+ if (props.cardBinChanged)
96
+ props.cardBinChanged(state.cardBin);
97
+ }
98
+ }, [state.cardBin]);
87
99
  useEffect(function () {
88
100
  if (state.cardNumber !== null) {
89
101
  var payload = {
@@ -1 +1 @@
1
- {"version":3,"file":"Frames.js","sourceRoot":"","sources":["../src/Frames.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Frames.js","sourceRoot":"","sources":["../src/Frames.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAOhD,OAAO,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAC;AAEnE,MAAM,CAAC,IAAM,aAAa,GAAG,KAAK,CAAC,aAAa,CAAC,EAAuB,CAAC,CAAC;AAE1E,IAAM,MAAM,GAAG,UAAC,KAAkB;IAChC,aAAa;IACP,IAAA;;;;;;;;;;;;;;;;;MAoBL,EApBM,aAAK,EAAE,gBAoBb,CAAC;IAEF,IAAM,UAAU,GAAG;;;;;;oBAEf,GAAG,CACD,MAAM,EACN,gDAAgD,EAChD,KAAK,CAAC,MAAM,CACb,CAAC;oBACa,qBAAM,QAAQ,CAC3B,yBAAyB,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,CAC/C,EAAA;;oBAFG,QAAQ,GAAG,SAEd;oBACD,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK;wBACpB,OAAO,CAAC,IAAI,CAAC,4BAA0B,EAAE,QAAQ,CAAC,CAAC;oBACrD,IAAI,KAAK,CAAC,aAAa;wBAAE,KAAK,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;oBACvD,GAAG,CACD,MAAM,EACN,+CAA+C,EAC/C,KAAK,CAAC,MAAM,CACb,CAAC;;;;oBAEF,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK;wBACpB,OAAO,CAAC,IAAI,CAAC,qCAAmC,EAAE,OAAK,CAAC,CAAC;oBAC3D,IAAI,KAAK,CAAC,sBAAsB;wBAAE,KAAK,CAAC,sBAAsB,CAAC,OAAK,CAAC,CAAC;oBACtE,GAAG,CACD,OAAO,EACP,0CAA0C,EAC1C,KAAK,CAAC,MAAM,EACZ,OAAK,CACN,CAAC;;;;;SAEL,CAAC;IAEF,SAAS,CAAC;QACR,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,KAAK,IAAI,EAAE;YAC9B,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK;gBACpB,OAAO,CAAC,IAAI,CAAC,6BAA2B,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;YAC3D,IAAI,KAAK,CAAC,cAAc;gBAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;SAC/D;IACH,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;IAEpB,SAAS,CAAC;QACR,IAAI,KAAK,CAAC,UAAU,KAAK,IAAI,EAAE;YAC7B,IAAI,OAAO,GAAG;gBACZ,OAAO,EAAE,aAAa;gBACtB,OAAO,EAAE,KAAK,CAAC,UAAU,CAAC,UAAU;gBACpC,OAAO,EAAE,KAAK,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC;aACvC,CAAC;YAEF,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK;gBACpB,OAAO,CAAC,IAAI,CAAC,qCAAmC,EAAE,OAAO,CAAC,CAAC;YAC7D,IAAI,KAAK,CAAC,sBAAsB;gBAAE,KAAK,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC;SACzE;IACH,CAAC,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC;IAElC,SAAS,CAAC;QACR,IAAI,KAAK,CAAC,UAAU,KAAK,IAAI,EAAE;YAC7B,IAAI,OAAO,GAAG;gBACZ,OAAO,EAAE,aAAa;gBACtB,OAAO,EAAE,KAAK,CAAC,UAAU,CAAC,UAAU;gBACpC,OAAO,EAAE,KAAK,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC;aACvC,CAAC;YAEF,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK;gBACpB,OAAO,CAAC,IAAI,CAAC,qCAAmC,EAAE,OAAO,CAAC,CAAC;YAE7D,IAAI,KAAK,CAAC,sBAAsB;gBAAE,KAAK,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC;SACzE;IACH,CAAC,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC;IAElC,SAAS,CAAC;QACR,IAAI,KAAK,CAAC,GAAG,KAAK,IAAI,EAAE;YACtB,IAAI,OAAO,GAAG;gBACZ,OAAO,EAAE,KAAK;gBACd,OAAO,EAAE,KAAK,CAAC,UAAU,CAAC,GAAG;gBAC7B,OAAO,EAAE,KAAK,CAAC,GAAG,CAAC,MAAM,KAAK,CAAC;aAChC,CAAC;YAEF,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK;gBACpB,OAAO,CAAC,IAAI,CAAC,qCAAmC,EAAE,OAAO,CAAC,CAAC;YAE7D,IAAI,KAAK,CAAC,sBAAsB;gBAAE,KAAK,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC;SACzE;IACH,CAAC,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;IAE3B,SAAS,CAAC;QACR,IAAI,KAAK,CAAC,QAAQ,KAAK,IAAI,EAAE;YAC3B,IAAI,OAAO,GAAG;gBACZ,OAAO,EACL,KAAK,CAAC,UAAU,CAAC,UAAU;oBAC3B,KAAK,CAAC,UAAU,CAAC,UAAU;oBAC3B,KAAK,CAAC,UAAU,CAAC,GAAG;gBACtB,aAAa,EAAE,KAAK,CAAC,QAAQ;aAC9B,CAAC;YAEF,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK;gBACpB,OAAO,CAAC,IAAI,CAAC,mCAAiC,EAAE,OAAO,CAAC,CAAC;YAE3D,IAAI,KAAK,CAAC,oBAAoB;gBAAE,KAAK,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;SACrE;IACH,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;IAErB,SAAS,CAAC;QACR,IAAI,KAAK,CAAC,UAAU,EAAE;YACpB,IAAI,OAAO,GAAG;gBACZ,OAAO,EAAE,KAAK,CAAC,UAAU,CAAC,IAAI;gBAC9B,cAAc,EAAE;oBACd,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,UAAU;oBACvC,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,UAAU;oBACvC,GAAG,EAAE,KAAK,CAAC,UAAU,CAAC,GAAG;iBAC1B;aACF,CAAC;YAEF,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK;gBACpB,OAAO,CAAC,IAAI,CAAC,oCAAkC,EAAE,OAAO,CAAC,CAAC;YAE5D,IAAI,KAAK,CAAC,qBAAqB;gBAAE,KAAK,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC;SACvE;IACH,CAAC,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IAE5B,OAAO,CACL,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAC3C;MAAA,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,OAAA,EAAE,QAAQ,UAAA,EAAE,UAAU,YAAA,EAAE,CAAC,CAC7D;QAAA,CAAC,KAAK,CAAC,QAAQ,CACjB;MAAA,EAAE,aAAa,CAAC,QAAQ,CAC1B;IAAA,EAAE,IAAI,CAAC,CACR,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,MAAM,CAAC;AAEtB,MAAM,CAAC,IAAM,cAAc,GAAG,aAAa,CAAC,QAAQ,CAAC;AACrD,MAAM,CAAC,IAAM,cAAc,GAAG,aAAa,CAAC,QAAQ,CAAC;AAErD,IAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;IAC/B,SAAS,EAAE;QACT,KAAK,EAAE,MAAM;KACd;CACF,CAAC,CAAC"}
@@ -1,4 +1,4 @@
1
1
  import React from "react";
2
- import { FramesFieldProps } from "../types/types";
3
- declare const CardNumber: React.FC<FramesFieldProps>;
2
+ import { FramesCardFieldProps } from "../types/types";
3
+ declare const CardNumber: React.FC<FramesCardFieldProps>;
4
4
  export default CardNumber;
@@ -1,6 +1,6 @@
1
1
  import React from "react";
2
2
  import { StyleSheet, View, TextInput, Image } from "react-native";
3
- import { CARD_CHANGE } from "../utils/actions";
3
+ import { BIN_CHANGE, CARD_CHANGE } from "../utils/actions";
4
4
  import { FramesConsumer } from "../Frames";
5
5
  import { DEFAULT_CARD_NUMBER_PLACEHOLDER } from "../utils/constants";
6
6
  var CardNumber = function (props) {
@@ -13,10 +13,18 @@ var CardNumber = function (props) {
13
13
  return (<View style={styles.wrapper}>
14
14
  <TextInput autoCompleteType="cc-number" keyboardType="number-pad" returnKeyType="done" placeholder={DEFAULT_CARD_NUMBER_PLACEHOLDER} {...props} value={state.cardNumber} style={[styles.cardNumber, props.style]} onChangeText={function (val) {
15
15
  dispatch({ type: CARD_CHANGE, payload: val });
16
+ if (val.replace(/[^0-9]/g, "").length >= 8 &&
17
+ val.replace(/[^0-9]/g, "").substring(0, 8) !==
18
+ state.cardBin.bin) {
19
+ dispatch({
20
+ type: BIN_CHANGE,
21
+ payload: val.replace(/[^0-9]/g, "").substring(0, 8),
22
+ });
23
+ }
16
24
  }}/>
17
- <View style={styles.schemeIconContainer}>
18
- <Image style={styles.scheme} source={state.cardIcon}/>
19
- </View>
25
+ {props.showIcon === undefined || props.showIcon ? (<View style={styles.schemeIconContainer}>
26
+ {state.cardIcon ? (<Image style={styles.scheme} source={state.cardIcon}/>) : undefined}
27
+ </View>) : undefined}
20
28
  </View>);
21
29
  }}
22
30
  </FramesConsumer>);
@@ -1 +1 @@
1
- {"version":3,"file":"CardNumber.js","sourceRoot":"","sources":["../../src/components/CardNumber.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAElE,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAE3C,OAAO,EAAE,+BAA+B,EAAE,MAAM,oBAAoB,CAAC;AAErE,IAAM,UAAU,GAA+B,UAAC,KAAK;IACnD,OAAO,CACL,CAAC,cAAc,CACb;MAAA,CAAC,UAAC,EAAmB;YAAjB,gBAAK,EAAE,sBAAQ;QACjB,IAAI,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,UAAU,MAAK,SAAS,EAAE;YACnC,MAAM,wFAAwF,CAAC;SAChG;QACD,OAAO,CACL,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAC1B;YAAA,CAAC,SAAS,CACR,gBAAgB,CAAC,WAAW,CAC5B,YAAY,CAAC,YAAY,CACzB,aAAa,CAAC,MAAM,CACpB,WAAW,CAAC,CAAC,+BAA+B,CAAC,CAC7C,IAAI,KAAK,CAAC,CACV,KAAK,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CACxB,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CACxC,YAAY,CAAC,CAAC,UAAC,GAAW;YACxB,QAAQ,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC;QAChD,CAAC,CAAC,EAEJ;YAAA,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,mBAAmB,CAAC,CACtC;cAAA,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,EACtD;YAAA,EAAE,IAAI,CACR;UAAA,EAAE,IAAI,CAAC,CACR,CAAC;IACJ,CAAC,CACH;IAAA,EAAE,cAAc,CAAC,CAClB,CAAC;AACJ,CAAC,CAAC;AAEF,IAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;IAC/B,OAAO,EAAE;QACP,eAAe,EAAE,WAAW;KAC7B;IACD,UAAU,EAAE;QACV,WAAW,EAAE,OAAO;QACpB,WAAW,EAAE,CAAC;QACd,SAAS,EAAE,EAAE;QACb,WAAW,EAAE,EAAE;KAChB;IACD,mBAAmB,EAAE;QACnB,MAAM,EAAE,MAAM;QACd,KAAK,EAAE,EAAE;QACT,KAAK,EAAE,EAAE;QACT,QAAQ,EAAE,UAAU;QACpB,cAAc,EAAE,QAAQ;QACxB,UAAU,EAAE,QAAQ;KACrB;IACD,MAAM,EAAE;QACN,MAAM,EAAE,KAAK;QACb,KAAK,EAAE,MAAM;QACb,UAAU,EAAE,SAAS;QACrB,UAAU,EAAE,QAAQ;KACrB;CACF,CAAC,CAAC;AAEH,eAAe,UAAU,CAAC"}
1
+ {"version":3,"file":"CardNumber.js","sourceRoot":"","sources":["../../src/components/CardNumber.tsx"],"names":[],"mappings":"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"}
Binary file
@@ -7,6 +7,7 @@ export interface Schemes {
7
7
  JCB: string;
8
8
  "Diners Club": string;
9
9
  Maestro: string;
10
+ Mada: string;
10
11
  }
11
12
  export interface CardNumberState {
12
13
  value: string;
@@ -14,6 +15,9 @@ export interface CardNumberState {
14
15
  valid: boolean;
15
16
  }
16
17
  export declare type FramesFieldProps = Omit<TextInputProps, "value" | "onChangeText">;
18
+ export interface FramesCardFieldProps extends FramesFieldProps {
19
+ showIcon?: boolean;
20
+ }
17
21
  interface Validation {
18
22
  cardNumber: boolean;
19
23
  expiryDate: boolean;
@@ -22,6 +26,7 @@ interface Validation {
22
26
  }
23
27
  export interface FramesState {
24
28
  cardNumber: string;
29
+ cardBin: CardBinChangedEvent;
25
30
  cardIcon: ImageSourcePropType;
26
31
  cardType: string;
27
32
  expiryDate: string;
@@ -69,6 +74,7 @@ export interface FramesProps extends ViewStyle {
69
74
  cardValidationChanged?: (e: FrameCardValidationChangedEvent) => void;
70
75
  cardTokenized: (e: FrameCardTokenizedEvent) => void;
71
76
  cardTokenizationFailed?: (e: FrameCardTokenizationFailedEvent) => void;
77
+ cardBinChanged?: (e: CardBinChangedEvent) => void;
72
78
  }
73
79
  export interface FrameCardValidationChangedEvent {
74
80
  isValid: boolean;
@@ -101,7 +107,7 @@ export interface TokenizationBody {
101
107
  export interface Phone {
102
108
  number?: string;
103
109
  }
104
- export declare type Scheme = "Visa" | "Mastercard" | "AMERICAN EXPRESS" | "Diners Club International" | "Maestro" | "Discover";
110
+ export declare type Scheme = "Visa" | "Mastercard" | "AMERICAN EXPRESS" | "Diners Club International" | "Maestro" | "Discover" | "Mada";
105
111
  export declare type CardType = "Credit" | "Debit" | "Prepaid" | "Charge";
106
112
  export declare type CardCategory = "Consumer" | "Commercial";
107
113
  export interface GatewayBillingAddress {
@@ -139,6 +145,10 @@ export interface FrameCardTokenizationFailedEvent {
139
145
  error_type: string;
140
146
  request_id: string;
141
147
  }
148
+ export interface CardBinChangedEvent {
149
+ bin: string;
150
+ scheme: string;
151
+ }
142
152
  export interface SubmitButtonProps extends TouchableOpacityProps {
143
153
  title: string;
144
154
  textStyle?: TextProps;
@@ -5,4 +5,5 @@ declare const CARD_VALIDATION_CHANGE = "CARD_VALIDATION_CHANGE";
5
5
  declare const DATE_VALIDATION_CHANGE = "DATE_VALIDATION_CHANGE";
6
6
  declare const CVV_VALIDATION_CHANGE = "CVV_VALIDATION_CHANGE";
7
7
  declare const SUBMIT_CARD = "SUBMIT_CARD";
8
- export { CARD_CHANGE, DATE_CHANGE, CVV_CHANGE, CARD_VALIDATION_CHANGE, DATE_VALIDATION_CHANGE, CVV_VALIDATION_CHANGE, SUBMIT_CARD, };
8
+ declare const BIN_CHANGE = "BIN_CHANGE";
9
+ export { CARD_CHANGE, DATE_CHANGE, CVV_CHANGE, CARD_VALIDATION_CHANGE, DATE_VALIDATION_CHANGE, CVV_VALIDATION_CHANGE, SUBMIT_CARD, BIN_CHANGE, };
@@ -5,5 +5,6 @@ var CARD_VALIDATION_CHANGE = "CARD_VALIDATION_CHANGE";
5
5
  var DATE_VALIDATION_CHANGE = "DATE_VALIDATION_CHANGE";
6
6
  var CVV_VALIDATION_CHANGE = "CVV_VALIDATION_CHANGE";
7
7
  var SUBMIT_CARD = "SUBMIT_CARD";
8
- export { CARD_CHANGE, DATE_CHANGE, CVV_CHANGE, CARD_VALIDATION_CHANGE, DATE_VALIDATION_CHANGE, CVV_VALIDATION_CHANGE, SUBMIT_CARD, };
8
+ var BIN_CHANGE = "BIN_CHANGE";
9
+ export { CARD_CHANGE, DATE_CHANGE, CVV_CHANGE, CARD_VALIDATION_CHANGE, DATE_VALIDATION_CHANGE, CVV_VALIDATION_CHANGE, SUBMIT_CARD, BIN_CHANGE, };
9
10
  //# sourceMappingURL=actions.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"actions.js","sourceRoot":"","sources":["../../src/utils/actions.tsx"],"names":[],"mappings":"AAAA,IAAM,WAAW,GAAG,aAAa,CAAC;AAClC,IAAM,WAAW,GAAG,aAAa,CAAC;AAClC,IAAM,UAAU,GAAG,YAAY,CAAC;AAChC,IAAM,sBAAsB,GAAG,wBAAwB,CAAC;AACxD,IAAM,sBAAsB,GAAG,wBAAwB,CAAC;AACxD,IAAM,qBAAqB,GAAG,uBAAuB,CAAC;AACtD,IAAM,WAAW,GAAG,aAAa,CAAC;AAElC,OAAO,EACL,WAAW,EACX,WAAW,EACX,UAAU,EACV,sBAAsB,EACtB,sBAAsB,EACtB,qBAAqB,EACrB,WAAW,GACZ,CAAC"}
1
+ {"version":3,"file":"actions.js","sourceRoot":"","sources":["../../src/utils/actions.tsx"],"names":[],"mappings":"AAAA,IAAM,WAAW,GAAG,aAAa,CAAC;AAClC,IAAM,WAAW,GAAG,aAAa,CAAC;AAClC,IAAM,UAAU,GAAG,YAAY,CAAC;AAChC,IAAM,sBAAsB,GAAG,wBAAwB,CAAC;AACxD,IAAM,sBAAsB,GAAG,wBAAwB,CAAC;AACxD,IAAM,qBAAqB,GAAG,uBAAuB,CAAC;AACtD,IAAM,WAAW,GAAG,aAAa,CAAC;AAClC,IAAM,UAAU,GAAG,YAAY,CAAC;AAEhC,OAAO,EACL,WAAW,EACX,WAAW,EACX,UAAU,EACV,sBAAsB,EACtB,sBAAsB,EACtB,qBAAqB,EACrB,WAAW,EACX,UAAU,GACX,CAAC"}
@@ -6,12 +6,13 @@ export declare const Icons: {
6
6
  JCB: any;
7
7
  "Diners Club": any;
8
8
  Maestro: any;
9
+ Mada: any;
9
10
  };
10
11
  export declare const formatCard: (text: string) => string;
11
- export declare const getCardType: (text: string) => "Visa" | "Mastercard" | "American Express" | "Discover" | "JCB" | "Diners Club" | "Maestro";
12
+ export declare const getCardType: (text: string) => "Discover" | "Visa" | "Mastercard" | "American Express" | "JCB" | "Diners Club" | "Maestro" | "Mada";
12
13
  export declare const isValidCard: (text: string) => any;
13
14
  export declare const cvvLength: (text: string) => 4 | 3;
14
15
  export declare const isValidCvv: (text: string, type: string) => any;
15
16
  export declare const isValidDate: (text: string) => boolean;
16
- export declare const getIcon: (cardType: "Visa" | "Mastercard" | "American Express" | "Discover" | "JCB" | "Diners Club" | "Maestro") => number | import("react-native").ImageURISource | import("react-native").ImageURISource[] | undefined;
17
+ export declare const getIcon: (cardType: "Discover" | "Visa" | "Mastercard" | "American Express" | "JCB" | "Diners Club" | "Maestro" | "Mada") => number | import("react-native").ImageURISource | import("react-native").ImageURISource[] | undefined;
17
18
  export declare type IconKey = keyof typeof Icons;
@@ -1,18 +1,20 @@
1
+ var __spreadArrays = (this && this.__spreadArrays) || function () {
2
+ for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;
3
+ for (var r = Array(s), k = 0, i = 0; i < il; i++)
4
+ for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
5
+ r[k] = a[j];
6
+ return r;
7
+ };
1
8
  var Card = require("creditcards/card");
2
9
  var Cvc = require("creditcards/cvc");
3
10
  var expiration = require("creditcards/expiration");
4
11
  import { EXPIRY_DATE_DELIMITER } from "./constants";
5
- var acceptedTypes = [
6
- require("creditcards-types/types/visa"),
7
- require("creditcards-types/types/mastercard"),
8
- require("creditcards-types/types/american-express"),
9
- require("creditcards-types/types/discover"),
10
- require("creditcards-types/types/jcb"),
11
- require("creditcards-types/types/diners-club"),
12
- require("creditcards-types/types/maestro"),
13
- ];
14
- var cards = new Card(acceptedTypes);
15
- var cvc = new Cvc(acceptedTypes);
12
+ import creditcardsTypes from "creditcards-types";
13
+ import mada from "creditcards-types/types/mada";
14
+ var types = __spreadArrays([mada], creditcardsTypes);
15
+ var cards = new Card(types);
16
+ var cvc = new Cvc(types);
17
+ var extendedCardTypeMapWhitelist = { 6011111111111117: "Discover" };
16
18
  export var Icons = {
17
19
  Visa: require("../icons/visa.png"),
18
20
  Mastercard: require("../icons/mastercard.png"),
@@ -21,13 +23,15 @@ export var Icons = {
21
23
  JCB: require("../icons/jcb.png"),
22
24
  "Diners Club": require("../icons/dinersclub.png"),
23
25
  Maestro: require("../icons/maestro.png"),
26
+ Mada: require("../icons/mada.png"),
24
27
  };
25
28
  export var formatCard = function (text) {
26
29
  return cards.format(cards.parse(text));
27
30
  };
28
31
  export var getCardType = function (text) {
29
32
  var sanitizedValue = cards.parse(text);
30
- var cardType = cards.type(sanitizedValue, true);
33
+ var cardType = extendedCardTypeMapWhitelist[sanitizedValue] ||
34
+ cards.type(sanitizedValue, true);
31
35
  return cardType;
32
36
  };
33
37
  export var isValidCard = function (text) {
@@ -1 +1 @@
1
- {"version":3,"file":"card.js","sourceRoot":"","sources":["../../src/utils/card.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"card.js","sourceRoot":"","sources":["../../src/utils/card.tsx"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@ import { FramesState } from "../types/types";
2
2
  export declare const framesReducer: (prevState: FramesState, dispatchArg?: any) => {
3
3
  cardNumber: string;
4
4
  cardIcon: number | import("react-native").ImageURISource | import("react-native").ImageURISource[] | undefined;
5
- cardType: "Visa" | "Mastercard" | "American Express" | "Discover" | "JCB" | "Diners Club" | "Maestro";
5
+ cardType: "Discover" | "Visa" | "Mastercard" | "American Express" | "JCB" | "Diners Club" | "Maestro" | "Mada";
6
6
  validation: {
7
7
  cardNumber: any;
8
8
  card: boolean;
@@ -10,6 +10,7 @@ export declare const framesReducer: (prevState: FramesState, dispatchArg?: any)
10
10
  cvv: boolean;
11
11
  };
12
12
  cvvLength: number;
13
+ cardBin: import("../types/types").CardBinChangedEvent;
13
14
  expiryDate: string;
14
15
  cvv: string;
15
16
  } | {
@@ -21,6 +22,7 @@ export declare const framesReducer: (prevState: FramesState, dispatchArg?: any)
21
22
  expiryDate: boolean;
22
23
  };
23
24
  cardNumber: string;
25
+ cardBin: import("../types/types").CardBinChangedEvent;
24
26
  cardIcon: import("react-native").ImageSourcePropType;
25
27
  cardType: string;
26
28
  expiryDate: string;
@@ -11,7 +11,7 @@ var __assign = (this && this.__assign) || function () {
11
11
  };
12
12
  import { formatCard, getCardType, getIcon, isValidCard, cvvLength, isValidCvv, isValidDate, } from "./card";
13
13
  import { getFormattedDate } from "./date";
14
- import { CARD_CHANGE, DATE_CHANGE, CVV_CHANGE } from "./actions";
14
+ import { CARD_CHANGE, DATE_CHANGE, CVV_CHANGE, BIN_CHANGE } from "./actions";
15
15
  export var framesReducer = function (prevState, dispatchArg) {
16
16
  switch (dispatchArg.type) {
17
17
  case CARD_CHANGE:
@@ -26,6 +26,8 @@ export var framesReducer = function (prevState, dispatchArg) {
26
26
  return __assign(__assign({}, prevState), { cvv: dispatchArg.payload, validation: __assign(__assign({}, prevState.validation), { cvv: isValidCvv(dispatchArg.payload, prevState.cardNumber), card: isValidCvv(dispatchArg.payload, prevState.cardNumber) &&
27
27
  prevState.validation.cardNumber &&
28
28
  prevState.validation.expiryDate }) });
29
+ case BIN_CHANGE:
30
+ return __assign(__assign({}, prevState), { cardBin: __assign(__assign({}, prevState.cardBin), { bin: dispatchArg.payload + "", scheme: getCardType(dispatchArg.payload) }) });
29
31
  default:
30
32
  return prevState;
31
33
  }
@@ -1 +1 @@
1
- {"version":3,"file":"reducer.js","sourceRoot":"","sources":["../../src/utils/reducer.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,EACL,UAAU,EACV,WAAW,EACX,OAAO,EACP,WAAW,EACX,SAAS,EACT,UAAU,EACV,WAAW,GACZ,MAAM,QAAQ,CAAC;AAChB,OAAO,EAAE,gBAAgB,EAAE,MAAM,QAAQ,CAAC;AAE1C,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAEjE,MAAM,CAAC,IAAM,aAAa,GAAG,UAAC,SAAsB,EAAE,WAAiB;IACrE,QAAQ,WAAW,CAAC,IAAI,EAAE;QACxB,KAAK,WAAW;YACd,6BACK,SAAS,KACZ,UAAU,EAAE,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC,EAC3C,QAAQ,EAAE,OAAO,CAAC,WAAW,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,EACnD,QAAQ,EAAE,WAAW,CAAC,WAAW,CAAC,OAAO,CAAC,EAC1C,UAAU,wBACL,SAAS,CAAC,UAAU,KACvB,UAAU,EAAE,WAAW,CAAC,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,EACxD,IAAI,EACF,WAAW,CAAC,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;wBAC5C,SAAS,CAAC,UAAU,CAAC,UAAU;wBAC/B,SAAS,CAAC,UAAU,CAAC,GAAG,KAE5B,SAAS,EAAE,SAAS,CAAC,WAAW,CAAC,OAAO,CAAC,IACzC;QAEJ,KAAK,WAAW;YACd,6BACK,SAAS,KACZ,UAAU,EAAE,gBAAgB,CAAC,WAAW,CAAC,OAAO,CAAC,EACjD,UAAU,wBACL,SAAS,CAAC,UAAU,KACvB,UAAU,EAAE,WAAW,CAAC,gBAAgB,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,EAC9D,IAAI,EACF,WAAW,CAAC,gBAAgB,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;wBAClD,SAAS,CAAC,UAAU,CAAC,UAAU;wBAC/B,SAAS,CAAC,UAAU,CAAC,GAAG,OAE5B;QACJ,KAAK,UAAU;YACb,6BACK,SAAS,KACZ,GAAG,EAAE,WAAW,CAAC,OAAO,EACxB,UAAU,wBACL,SAAS,CAAC,UAAU,KACvB,GAAG,EAAE,UAAU,CAAC,WAAW,CAAC,OAAO,EAAE,SAAS,CAAC,UAAU,CAAC,EAC1D,IAAI,EACF,UAAU,CAAC,WAAW,CAAC,OAAO,EAAE,SAAS,CAAC,UAAU,CAAC;wBACrD,SAAS,CAAC,UAAU,CAAC,UAAU;wBAC/B,SAAS,CAAC,UAAU,CAAC,UAAU,OAEnC;QACJ;YACE,OAAO,SAAS,CAAC;KACpB;AACH,CAAC,CAAC"}
1
+ {"version":3,"file":"reducer.js","sourceRoot":"","sources":["../../src/utils/reducer.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,EACL,UAAU,EACV,WAAW,EACX,OAAO,EACP,WAAW,EACX,SAAS,EACT,UAAU,EACV,WAAW,GACZ,MAAM,QAAQ,CAAC;AAChB,OAAO,EAAE,gBAAgB,EAAE,MAAM,QAAQ,CAAC;AAE1C,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAE7E,MAAM,CAAC,IAAM,aAAa,GAAG,UAAC,SAAsB,EAAE,WAAiB;IACrE,QAAQ,WAAW,CAAC,IAAI,EAAE;QACxB,KAAK,WAAW;YACd,6BACK,SAAS,KACZ,UAAU,EAAE,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC,EAC3C,QAAQ,EAAE,OAAO,CAAC,WAAW,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,EACnD,QAAQ,EAAE,WAAW,CAAC,WAAW,CAAC,OAAO,CAAC,EAC1C,UAAU,wBACL,SAAS,CAAC,UAAU,KACvB,UAAU,EAAE,WAAW,CAAC,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,EACxD,IAAI,EACF,WAAW,CAAC,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;wBAC5C,SAAS,CAAC,UAAU,CAAC,UAAU;wBAC/B,SAAS,CAAC,UAAU,CAAC,GAAG,KAE5B,SAAS,EAAE,SAAS,CAAC,WAAW,CAAC,OAAO,CAAC,IACzC;QAEJ,KAAK,WAAW;YACd,6BACK,SAAS,KACZ,UAAU,EAAE,gBAAgB,CAAC,WAAW,CAAC,OAAO,CAAC,EACjD,UAAU,wBACL,SAAS,CAAC,UAAU,KACvB,UAAU,EAAE,WAAW,CAAC,gBAAgB,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,EAC9D,IAAI,EACF,WAAW,CAAC,gBAAgB,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;wBAClD,SAAS,CAAC,UAAU,CAAC,UAAU;wBAC/B,SAAS,CAAC,UAAU,CAAC,GAAG,OAE5B;QACJ,KAAK,UAAU;YACb,6BACK,SAAS,KACZ,GAAG,EAAE,WAAW,CAAC,OAAO,EACxB,UAAU,wBACL,SAAS,CAAC,UAAU,KACvB,GAAG,EAAE,UAAU,CAAC,WAAW,CAAC,OAAO,EAAE,SAAS,CAAC,UAAU,CAAC,EAC1D,IAAI,EACF,UAAU,CAAC,WAAW,CAAC,OAAO,EAAE,SAAS,CAAC,UAAU,CAAC;wBACrD,SAAS,CAAC,UAAU,CAAC,UAAU;wBAC/B,SAAS,CAAC,UAAU,CAAC,UAAU,OAEnC;QACJ,KAAK,UAAU;YACb,6BACK,SAAS,KACZ,OAAO,wBACF,SAAS,CAAC,OAAO,KACpB,GAAG,EAAE,WAAW,CAAC,OAAO,GAAG,EAAE,EAC7B,MAAM,EAAE,WAAW,CAAC,WAAW,CAAC,OAAO,CAAC,OAE1C;QACJ;YACE,OAAO,SAAS,CAAC;KACpB;AACH,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "frames-react-native",
3
- "version": "1.1.1",
4
- "description": "Beta Frames React Native",
3
+ "version": "1.1.4",
4
+ "description": "Frames React Native",
5
5
  "main": "dist/index.js",
6
6
  "scripts": {
7
7
  "test": "jest --coverage",
@@ -9,9 +9,9 @@
9
9
  "build": "tsc"
10
10
  },
11
11
  "dependencies": {
12
- "creditcards": "^3.1.0",
13
- "creditcards-types": "^2.2.2",
14
- "node-fetch": "^2.6.1"
12
+ "creditcards": "^4.2.0",
13
+ "creditcards-types": "^3.2.0",
14
+ "node-fetch": "^2.6.6"
15
15
  },
16
16
  "keywords": [],
17
17
  "author": "",