frames-react-native 1.1.1 → 1.1.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 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)
@@ -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":"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"}
@@ -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,6 +13,14 @@ 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
25
  <View style={styles.schemeIconContainer}>
18
26
  <Image style={styles.scheme} source={state.cardIcon}/>
@@ -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":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAElE,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC3D,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;YAC9C,IACE,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,MAAM,IAAI,CAAC;gBACtC,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC;oBACxC,KAAK,CAAC,OAAO,CAAC,GAAG,EACnB;gBACA,QAAQ,CAAC;oBACP,IAAI,EAAE,UAAU;oBAChB,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC;iBACpD,CAAC,CAAC;aACJ;QACH,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"}
@@ -22,6 +22,7 @@ interface Validation {
22
22
  }
23
23
  export interface FramesState {
24
24
  cardNumber: string;
25
+ cardBin: CardBinChangedEvent;
25
26
  cardIcon: ImageSourcePropType;
26
27
  cardType: string;
27
28
  expiryDate: string;
@@ -69,6 +70,7 @@ export interface FramesProps extends ViewStyle {
69
70
  cardValidationChanged?: (e: FrameCardValidationChangedEvent) => void;
70
71
  cardTokenized: (e: FrameCardTokenizedEvent) => void;
71
72
  cardTokenizationFailed?: (e: FrameCardTokenizationFailedEvent) => void;
73
+ cardBinChanged?: (e: CardBinChangedEvent) => void;
72
74
  }
73
75
  export interface FrameCardValidationChangedEvent {
74
76
  isValid: boolean;
@@ -139,6 +141,10 @@ export interface FrameCardTokenizationFailedEvent {
139
141
  error_type: string;
140
142
  request_id: string;
141
143
  }
144
+ export interface CardBinChangedEvent {
145
+ bin: string;
146
+ scheme: string;
147
+ }
142
148
  export interface SubmitButtonProps extends TouchableOpacityProps {
143
149
  title: string;
144
150
  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"}
@@ -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.2",
4
+ "description": "Frames React Native",
5
5
  "main": "dist/index.js",
6
6
  "scripts": {
7
7
  "test": "jest --coverage",