@primer-io/react-native 2.0.0 → 2.1.1
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/android/build.gradle +1 -1
- package/android/src/main/java/com/primerioreactnative/PrimerCardNumberEditTextManager.kt +83 -0
- package/android/src/main/java/com/primerioreactnative/PrimerRN.kt +2 -2
- package/android/src/main/java/com/primerioreactnative/PrimerRNHeadlessUniversalCheckout.kt +244 -0
- package/android/src/main/java/com/primerioreactnative/PrimerRNHeadlessUniversalCheckoutListener.kt +276 -0
- package/android/src/main/java/com/primerioreactnative/ReactNativePackage.kt +14 -3
- package/android/src/main/java/com/primerioreactnative/datamodels/PrimerErrorRN.kt +3 -0
- package/android/src/main/java/com/primerioreactnative/huc/assets/AssetsManager.kt +56 -0
- package/android/src/main/java/com/primerioreactnative/huc/events/PrimerHeadlessUniversalCheckoutEvent.kt +15 -0
- package/android/src/main/java/com/primerioreactnative/utils/PrimerHeadlessUniversalCheckoutImplementedRNCallbacks.kt +31 -0
- package/ios/Core/ReactNative-Bridging-Header.h +14 -0
- package/ios/DataModels/ImplementedRNCallbacks.swift +34 -9
- package/ios/DataModels/PrimerSettingsRN.swift +15 -16
- package/ios/Headless Universal Checkout/RNTPrimerCardNumberInputElementManager.m +23 -0
- package/ios/Headless Universal Checkout/RNTPrimerHeadlessUniversalCheckout.m +62 -0
- package/ios/Headless Universal Checkout/RNTPrimerHeadlessUniversalCheckout.swift +493 -0
- package/ios/Headless Universal Checkout/RNTPrimerHeadlessUniversalCheckoutCardFormUIManager.m +14 -0
- package/ios/Headless Universal Checkout/RNTPrimerHeadlessUniversalCheckoutCardFormUIManager.swift +117 -0
- package/ios/RNTPrimer.m +2 -0
- package/ios/RNTPrimer.swift +56 -51
- package/ios/ReactNative-Bridging-Header.h +1 -0
- package/lib/commonjs/Primer.js +6 -0
- package/lib/commonjs/Primer.js.map +1 -1
- package/lib/commonjs/PrimerInput.js +80 -0
- package/lib/commonjs/PrimerInput.js.map +1 -0
- package/lib/commonjs/RNPrimer.js +11 -0
- package/lib/commonjs/RNPrimer.js.map +1 -1
- package/lib/commonjs/RNTPrimerHeadlessUniversalCheckoutCardFormUIManager.js +14 -0
- package/lib/commonjs/RNTPrimerHeadlessUniversalCheckoutCardFormUIManager.js.map +1 -0
- package/lib/commonjs/headless_checkout/PrimerHeadlessUniversalCheckout.js +286 -0
- package/lib/commonjs/headless_checkout/PrimerHeadlessUniversalCheckout.js.map +1 -0
- package/lib/commonjs/headless_checkout/RNPrimerHeadlessUniversalCheckout.js +197 -0
- package/lib/commonjs/headless_checkout/RNPrimerHeadlessUniversalCheckout.js.map +1 -0
- package/lib/commonjs/{models/Primer.js → headless_checkout/types.js} +1 -1
- package/lib/commonjs/{models/Primer.js.map → headless_checkout/types.js.map} +0 -0
- package/lib/commonjs/index.js +13 -5
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/models/PrimerInterfaces.js +6 -0
- package/lib/{module/models/Primer.js.map → commonjs/models/PrimerInterfaces.js.map} +0 -0
- package/lib/module/Primer.js +7 -2
- package/lib/module/Primer.js.map +1 -1
- package/lib/module/PrimerInput.js +46 -0
- package/lib/module/PrimerInput.js.map +1 -0
- package/lib/module/RNPrimer.js +11 -0
- package/lib/module/RNPrimer.js.map +1 -1
- package/lib/module/RNTPrimerHeadlessUniversalCheckoutCardFormUIManager.js +5 -0
- package/lib/module/RNTPrimerHeadlessUniversalCheckoutCardFormUIManager.js.map +1 -0
- package/lib/module/headless_checkout/PrimerHeadlessUniversalCheckout.js +273 -0
- package/lib/module/headless_checkout/PrimerHeadlessUniversalCheckout.js.map +1 -0
- package/lib/module/headless_checkout/RNPrimerHeadlessUniversalCheckout.js +188 -0
- package/lib/module/headless_checkout/RNPrimerHeadlessUniversalCheckout.js.map +1 -0
- package/lib/module/headless_checkout/types.js +2 -0
- package/lib/module/headless_checkout/types.js.map +1 -0
- package/lib/module/index.js +2 -1
- package/lib/module/index.js.map +1 -1
- package/lib/module/models/PrimerInterfaces.js +2 -0
- package/lib/module/models/PrimerInterfaces.js.map +1 -0
- package/lib/typescript/MerchantExample/App.d.ts +11 -0
- package/lib/typescript/src/Primer.d.ts +2 -0
- package/lib/typescript/src/PrimerInput.d.ts +15 -0
- package/lib/typescript/{RNPrimer.d.ts → src/RNPrimer.d.ts} +1 -0
- package/lib/typescript/src/RNTPrimerHeadlessUniversalCheckoutCardFormUIManager.d.ts +1 -0
- package/lib/typescript/src/headless_checkout/PrimerHeadlessUniversalCheckout.d.ts +11 -0
- package/lib/typescript/src/headless_checkout/RNPrimerHeadlessUniversalCheckout.d.ts +22 -0
- package/lib/typescript/src/headless_checkout/types.d.ts +22 -0
- package/lib/typescript/{index.d.ts → src/index.d.ts} +2 -1
- package/lib/typescript/{models → src/models}/PrimerCheckoutData.d.ts +0 -0
- package/lib/typescript/{models → src/models}/PrimerCheckoutPaymentMethodData.d.ts +0 -0
- package/lib/typescript/{models → src/models}/PrimerClientSession.d.ts +0 -0
- package/lib/typescript/{models → src/models}/PrimerCountryCode.d.ts +0 -0
- package/lib/typescript/{models → src/models}/PrimerCurrencyCode.d.ts +0 -0
- package/lib/typescript/{models → src/models}/PrimerError.d.ts +0 -0
- package/lib/typescript/{models/Primer.d.ts → src/models/PrimerInterfaces.d.ts} +2 -1
- package/lib/typescript/{models → src/models}/PrimerPaymentMethodTokenData.d.ts +0 -0
- package/lib/typescript/{models → src/models}/PrimerSessionIntent.d.ts +0 -0
- package/lib/typescript/{models → src/models}/PrimerSettings.d.ts +6 -2
- package/lib/typescript/{models → src/models}/PrimerTheme.d.ts +0 -0
- package/lib/typescript/{utils → src/utils}/index.d.ts +0 -0
- package/package.json +1 -1
- package/primer-io-react-native.podspec +1 -1
- package/src/Primer.ts +6 -1
- package/src/PrimerInput.tsx +73 -0
- package/src/RNPrimer.ts +13 -0
- package/src/RNTPrimerHeadlessUniversalCheckoutCardFormUIManager.tsx +2 -0
- package/src/headless_checkout/PrimerHeadlessUniversalCheckout.ts +327 -0
- package/src/headless_checkout/RNPrimerHeadlessUniversalCheckout.ts +252 -0
- package/src/headless_checkout/types.ts +32 -0
- package/src/index.tsx +4 -2
- package/src/models/{Primer.ts → PrimerInterfaces.ts} +2 -1
- package/src/models/PrimerSettings.ts +17 -2
- package/lib/module/models/Primer.js +0 -2
- package/lib/typescript/Primer.d.ts +0 -2
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
import { NativeEventEmitter, NativeModules } from 'react-native';
|
|
2
|
+
const {
|
|
3
|
+
PrimerHeadlessUniversalCheckout
|
|
4
|
+
} = NativeModules;
|
|
5
|
+
const eventEmitter = new NativeEventEmitter(PrimerHeadlessUniversalCheckout);
|
|
6
|
+
const eventTypes = ['onHUCTokenizeStart', 'onHUCPrepareStart', 'onHUCAvailablePaymentMethodsLoaded', 'onHUCPaymentMethodShow', 'onTokenizeSuccess', 'onResumeSuccess', 'onBeforePaymentCreate', 'onBeforeClientSessionUpdate', 'onClientSessionUpdate', 'onCheckoutComplete', 'onError'];
|
|
7
|
+
const RNPrimerHeadlessUniversalCheckout = {
|
|
8
|
+
///////////////////////////////////////////
|
|
9
|
+
// Event Emitter
|
|
10
|
+
///////////////////////////////////////////
|
|
11
|
+
addListener: (eventType, listener) => {
|
|
12
|
+
eventEmitter.addListener(eventType, listener);
|
|
13
|
+
},
|
|
14
|
+
removeListener: (eventType, listener) => {
|
|
15
|
+
eventEmitter.removeListener(eventType, listener);
|
|
16
|
+
},
|
|
17
|
+
|
|
18
|
+
removeAllListenersForEvent(eventType) {
|
|
19
|
+
eventEmitter.removeAllListeners(eventType);
|
|
20
|
+
},
|
|
21
|
+
|
|
22
|
+
removeAllListeners() {
|
|
23
|
+
eventTypes.forEach(eventType => RNPrimerHeadlessUniversalCheckout.removeAllListenersForEvent(eventType));
|
|
24
|
+
},
|
|
25
|
+
|
|
26
|
+
///////////////////////////////////////////
|
|
27
|
+
// Native API
|
|
28
|
+
///////////////////////////////////////////
|
|
29
|
+
getAssetForPaymentMethodType: (paymentMethodType, assetType) => {
|
|
30
|
+
return new Promise((resolve, reject) => {
|
|
31
|
+
try {
|
|
32
|
+
PrimerHeadlessUniversalCheckout.getAssetForPaymentMethodType(paymentMethodType, assetType, err => {
|
|
33
|
+
reject(err);
|
|
34
|
+
}, url => {
|
|
35
|
+
resolve(url);
|
|
36
|
+
});
|
|
37
|
+
} catch (e) {
|
|
38
|
+
reject(e);
|
|
39
|
+
}
|
|
40
|
+
});
|
|
41
|
+
},
|
|
42
|
+
getAssetForCardNetwork: (cardNetwork, assetType) => {
|
|
43
|
+
return new Promise((resolve, reject) => {
|
|
44
|
+
try {
|
|
45
|
+
PrimerHeadlessUniversalCheckout.getAssetForPaymentMethodType(cardNetwork, assetType, err => {
|
|
46
|
+
reject(err);
|
|
47
|
+
}, url => {
|
|
48
|
+
resolve(url);
|
|
49
|
+
});
|
|
50
|
+
} catch (e) {
|
|
51
|
+
reject(e);
|
|
52
|
+
}
|
|
53
|
+
});
|
|
54
|
+
},
|
|
55
|
+
|
|
56
|
+
startWithClientToken(clientToken, settings) {
|
|
57
|
+
return new Promise((resolve, reject) => {
|
|
58
|
+
PrimerHeadlessUniversalCheckout.startWithClientToken(clientToken, JSON.stringify(settings), err => {
|
|
59
|
+
console.error(err);
|
|
60
|
+
reject(err);
|
|
61
|
+
}, paymentMethodTypes => {
|
|
62
|
+
resolve({
|
|
63
|
+
paymentMethodTypes
|
|
64
|
+
});
|
|
65
|
+
});
|
|
66
|
+
});
|
|
67
|
+
},
|
|
68
|
+
|
|
69
|
+
showPaymentMethod: paymentMethodType => {
|
|
70
|
+
return new Promise(async (resolve, reject) => {
|
|
71
|
+
try {
|
|
72
|
+
await PrimerHeadlessUniversalCheckout.showPaymentMethod(paymentMethodType);
|
|
73
|
+
resolve();
|
|
74
|
+
} catch (err) {
|
|
75
|
+
reject(err);
|
|
76
|
+
}
|
|
77
|
+
});
|
|
78
|
+
},
|
|
79
|
+
///////////////////////////////////////////
|
|
80
|
+
// DECISION HANDLERS
|
|
81
|
+
///////////////////////////////////////////
|
|
82
|
+
// Tokenization Handlers
|
|
83
|
+
handleTokenizationNewClientToken: newClientToken => {
|
|
84
|
+
return new Promise(async (resolve, reject) => {
|
|
85
|
+
try {
|
|
86
|
+
await PrimerHeadlessUniversalCheckout.handleTokenizationNewClientToken(newClientToken);
|
|
87
|
+
resolve();
|
|
88
|
+
} catch (err) {
|
|
89
|
+
reject(err);
|
|
90
|
+
}
|
|
91
|
+
});
|
|
92
|
+
},
|
|
93
|
+
handleTokenizationSuccess: () => {
|
|
94
|
+
return new Promise(async (resolve, reject) => {
|
|
95
|
+
try {
|
|
96
|
+
await PrimerHeadlessUniversalCheckout.handleTokenizationSuccess();
|
|
97
|
+
resolve();
|
|
98
|
+
} catch (err) {
|
|
99
|
+
reject(err);
|
|
100
|
+
}
|
|
101
|
+
});
|
|
102
|
+
},
|
|
103
|
+
handleTokenizationFailure: errorMessage => {
|
|
104
|
+
return new Promise(async (resolve, reject) => {
|
|
105
|
+
try {
|
|
106
|
+
await PrimerHeadlessUniversalCheckout.handleTokenizationFailure(errorMessage || "");
|
|
107
|
+
resolve();
|
|
108
|
+
} catch (err) {
|
|
109
|
+
reject(err);
|
|
110
|
+
}
|
|
111
|
+
});
|
|
112
|
+
},
|
|
113
|
+
// Resume Handlers
|
|
114
|
+
handleResumeWithNewClientToken: newClientToken => {
|
|
115
|
+
return new Promise(async (resolve, reject) => {
|
|
116
|
+
try {
|
|
117
|
+
await PrimerHeadlessUniversalCheckout.handleResumeWithNewClientToken(newClientToken);
|
|
118
|
+
resolve();
|
|
119
|
+
} catch (err) {
|
|
120
|
+
reject(err);
|
|
121
|
+
}
|
|
122
|
+
});
|
|
123
|
+
},
|
|
124
|
+
handleResumeSuccess: () => {
|
|
125
|
+
return new Promise(async (resolve, reject) => {
|
|
126
|
+
try {
|
|
127
|
+
await PrimerHeadlessUniversalCheckout.handleResumeSuccess();
|
|
128
|
+
resolve();
|
|
129
|
+
} catch (err) {
|
|
130
|
+
reject(err);
|
|
131
|
+
}
|
|
132
|
+
});
|
|
133
|
+
},
|
|
134
|
+
handleResumeFailure: errorMessage => {
|
|
135
|
+
return new Promise(async (resolve, reject) => {
|
|
136
|
+
try {
|
|
137
|
+
await PrimerHeadlessUniversalCheckout.handleTokenizationFailure(errorMessage || "");
|
|
138
|
+
resolve();
|
|
139
|
+
} catch (err) {
|
|
140
|
+
reject(err);
|
|
141
|
+
}
|
|
142
|
+
});
|
|
143
|
+
},
|
|
144
|
+
// Payment Creation Handlers
|
|
145
|
+
handlePaymentCreationAbort: errorMessage => {
|
|
146
|
+
return new Promise(async (resolve, reject) => {
|
|
147
|
+
try {
|
|
148
|
+
await PrimerHeadlessUniversalCheckout.handlePaymentCreationAbort(errorMessage || "");
|
|
149
|
+
resolve();
|
|
150
|
+
} catch (err) {
|
|
151
|
+
reject(err);
|
|
152
|
+
}
|
|
153
|
+
});
|
|
154
|
+
},
|
|
155
|
+
handlePaymentCreationContinue: () => {
|
|
156
|
+
return new Promise(async (resolve, reject) => {
|
|
157
|
+
try {
|
|
158
|
+
await PrimerHeadlessUniversalCheckout.handlePaymentCreationContinue();
|
|
159
|
+
resolve();
|
|
160
|
+
} catch (err) {
|
|
161
|
+
reject(err);
|
|
162
|
+
}
|
|
163
|
+
});
|
|
164
|
+
},
|
|
165
|
+
// HELPERS
|
|
166
|
+
setImplementedRNCallbacks: implementedRNCallbacks => {
|
|
167
|
+
return new Promise(async (resolve, reject) => {
|
|
168
|
+
try {
|
|
169
|
+
await PrimerHeadlessUniversalCheckout.setImplementedRNCallbacks(JSON.stringify(implementedRNCallbacks));
|
|
170
|
+
resolve();
|
|
171
|
+
} catch (err) {
|
|
172
|
+
reject(err);
|
|
173
|
+
}
|
|
174
|
+
});
|
|
175
|
+
},
|
|
176
|
+
disposePrimerHeadlessUniversalCheckout: () => {
|
|
177
|
+
return new Promise(async (resolve, reject) => {
|
|
178
|
+
try {
|
|
179
|
+
await PrimerHeadlessUniversalCheckout.disposePrimerHeadlessUniversalCheckout();
|
|
180
|
+
resolve();
|
|
181
|
+
} catch (err) {
|
|
182
|
+
reject(err);
|
|
183
|
+
}
|
|
184
|
+
});
|
|
185
|
+
}
|
|
186
|
+
};
|
|
187
|
+
export default RNPrimerHeadlessUniversalCheckout;
|
|
188
|
+
//# sourceMappingURL=RNPrimerHeadlessUniversalCheckout.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["RNPrimerHeadlessUniversalCheckout.ts"],"names":["NativeEventEmitter","NativeModules","PrimerHeadlessUniversalCheckout","eventEmitter","eventTypes","RNPrimerHeadlessUniversalCheckout","addListener","eventType","listener","removeListener","removeAllListenersForEvent","removeAllListeners","forEach","getAssetForPaymentMethodType","paymentMethodType","assetType","Promise","resolve","reject","err","url","e","getAssetForCardNetwork","cardNetwork","startWithClientToken","clientToken","settings","JSON","stringify","console","error","paymentMethodTypes","showPaymentMethod","handleTokenizationNewClientToken","newClientToken","handleTokenizationSuccess","handleTokenizationFailure","errorMessage","handleResumeWithNewClientToken","handleResumeSuccess","handleResumeFailure","handlePaymentCreationAbort","handlePaymentCreationContinue","setImplementedRNCallbacks","implementedRNCallbacks","disposePrimerHeadlessUniversalCheckout"],"mappings":"AAAA,SAASA,kBAAT,EAA6BC,aAA7B,QAAkD,cAAlD;AAEA,MAAM;AAAEC,EAAAA;AAAF,IAAsCD,aAA5C;AAEA,MAAME,YAAY,GAAG,IAAIH,kBAAJ,CAAuBE,+BAAvB,CAArB;AAeA,MAAME,UAAuB,GAAG,CAC9B,oBAD8B,EAE9B,mBAF8B,EAG9B,oCAH8B,EAI9B,wBAJ8B,EAK9B,mBAL8B,EAM9B,iBAN8B,EAO9B,uBAP8B,EAQ9B,6BAR8B,EAS9B,uBAT8B,EAU9B,oBAV8B,EAW9B,SAX8B,CAAhC;AAcA,MAAMC,iCAAiC,GAAG;AACxC;AACA;AACA;AACAC,EAAAA,WAAW,EAAE,CAACC,SAAD,EAAuBC,QAAvB,KAA6D;AACxEL,IAAAA,YAAY,CAACG,WAAb,CAAyBC,SAAzB,EAAoCC,QAApC;AACD,GANuC;AAQxCC,EAAAA,cAAc,EAAE,CAACF,SAAD,EAAuBC,QAAvB,KAA6D;AAC3EL,IAAAA,YAAY,CAACM,cAAb,CAA4BF,SAA5B,EAAuCC,QAAvC;AACD,GAVuC;;AAYxCE,EAAAA,0BAA0B,CAACH,SAAD,EAAuB;AAC/CJ,IAAAA,YAAY,CAACQ,kBAAb,CAAgCJ,SAAhC;AACD,GAduC;;AAgBxCI,EAAAA,kBAAkB,GAAG;AACnBP,IAAAA,UAAU,CAACQ,OAAX,CAAoBL,SAAD,IAAeF,iCAAiC,CAACK,0BAAlC,CAA6DH,SAA7D,CAAlC;AACD,GAlBuC;;AAoBxC;AACA;AACA;AACAM,EAAAA,4BAA4B,EAAE,CAC5BC,iBAD4B,EAE5BC,SAF4B,KAGR;AACpB,WAAO,IAAIC,OAAJ,CAAY,CAACC,OAAD,EAAUC,MAAV,KAAqB;AACtC,UAAI;AACFhB,QAAAA,+BAA+B,CAACW,4BAAhC,CACEC,iBADF,EAEEC,SAFF,EAGGI,GAAD,IAAgB;AACdD,UAAAA,MAAM,CAACC,GAAD,CAAN;AACD,SALH,EAMGC,GAAD,IAAiB;AACfH,UAAAA,OAAO,CAACG,GAAD,CAAP;AACD,SARH;AAUD,OAXD,CAWE,OAAOC,CAAP,EAAU;AACVH,QAAAA,MAAM,CAACG,CAAD,CAAN;AACD;AACF,KAfM,CAAP;AAgBD,GA3CuC;AA6CxCC,EAAAA,sBAAsB,EAAE,CACtBC,WADsB,EAEtBR,SAFsB,KAGF;AACpB,WAAO,IAAIC,OAAJ,CAAY,CAACC,OAAD,EAAUC,MAAV,KAAqB;AACtC,UAAI;AACFhB,QAAAA,+BAA+B,CAACW,4BAAhC,CACEU,WADF,EAEER,SAFF,EAGGI,GAAD,IAAgB;AACdD,UAAAA,MAAM,CAACC,GAAD,CAAN;AACD,SALH,EAMGC,GAAD,IAAiB;AACfH,UAAAA,OAAO,CAACG,GAAD,CAAP;AACD,SARH;AAUD,OAXD,CAWE,OAAOC,CAAP,EAAU;AACVH,QAAAA,MAAM,CAACG,CAAD,CAAN;AACD;AACF,KAfM,CAAP;AAgBD,GAjEuC;;AAmExCG,EAAAA,oBAAoB,CAACC,WAAD,EAAsBC,QAAtB,EAAmD;AACrE,WAAO,IAAIV,OAAJ,CAAY,CAACC,OAAD,EAAUC,MAAV,KAAqB;AACtChB,MAAAA,+BAA+B,CAACsB,oBAAhC,CACEC,WADF,EAEEE,IAAI,CAACC,SAAL,CAAeF,QAAf,CAFF,EAGGP,GAAD,IAAgB;AACdU,QAAAA,OAAO,CAACC,KAAR,CAAcX,GAAd;AACAD,QAAAA,MAAM,CAACC,GAAD,CAAN;AACD,OANH,EAOGY,kBAAD,IAAkC;AAChCd,QAAAA,OAAO,CAAC;AAAEc,UAAAA;AAAF,SAAD,CAAP;AACD,OATH;AAWD,KAZM,CAAP;AAaD,GAjFuC;;AAmFxCC,EAAAA,iBAAiB,EAAGlB,iBAAD,IAA8C;AAC/D,WAAO,IAAIE,OAAJ,CAAY,OAAOC,OAAP,EAAgBC,MAAhB,KAA2B;AAC5C,UAAI;AACF,cAAMhB,+BAA+B,CAAC8B,iBAAhC,CAAkDlB,iBAAlD,CAAN;AACAG,QAAAA,OAAO;AACR,OAHD,CAGE,OAAOE,GAAP,EAAY;AACZD,QAAAA,MAAM,CAACC,GAAD,CAAN;AACD;AACF,KAPM,CAAP;AAQD,GA5FuC;AA8FxC;AACA;AACA;AAEA;AAEAc,EAAAA,gCAAgC,EAAGC,cAAD,IAA2C;AAC3E,WAAO,IAAIlB,OAAJ,CAAY,OAAOC,OAAP,EAAgBC,MAAhB,KAA2B;AAC5C,UAAI;AACF,cAAMhB,+BAA+B,CAAC+B,gCAAhC,CAAiEC,cAAjE,CAAN;AACAjB,QAAAA,OAAO;AACR,OAHD,CAGE,OAAOE,GAAP,EAAY;AACZD,QAAAA,MAAM,CAACC,GAAD,CAAN;AACD;AACF,KAPM,CAAP;AAQD,GA7GuC;AA+GxCgB,EAAAA,yBAAyB,EAAE,MAAqB;AAC9C,WAAO,IAAInB,OAAJ,CAAY,OAAOC,OAAP,EAAgBC,MAAhB,KAA2B;AAC5C,UAAI;AACF,cAAMhB,+BAA+B,CAACiC,yBAAhC,EAAN;AACAlB,QAAAA,OAAO;AACR,OAHD,CAGE,OAAOE,GAAP,EAAY;AACZD,QAAAA,MAAM,CAACC,GAAD,CAAN;AACD;AACF,KAPM,CAAP;AAQD,GAxHuC;AA0HxCiB,EAAAA,yBAAyB,EAAGC,YAAD,IAAgD;AACzE,WAAO,IAAIrB,OAAJ,CAAY,OAAOC,OAAP,EAAgBC,MAAhB,KAA2B;AAC5C,UAAI;AACF,cAAMhB,+BAA+B,CAACkC,yBAAhC,CAA0DC,YAAY,IAAI,EAA1E,CAAN;AACApB,QAAAA,OAAO;AACR,OAHD,CAGE,OAAOE,GAAP,EAAY;AACZD,QAAAA,MAAM,CAACC,GAAD,CAAN;AACD;AACF,KAPM,CAAP;AAQD,GAnIuC;AAqIxC;AAEAmB,EAAAA,8BAA8B,EAAGJ,cAAD,IAA2C;AACzE,WAAO,IAAIlB,OAAJ,CAAY,OAAOC,OAAP,EAAgBC,MAAhB,KAA2B;AAC5C,UAAI;AACF,cAAMhB,+BAA+B,CAACoC,8BAAhC,CAA+DJ,cAA/D,CAAN;AACAjB,QAAAA,OAAO;AACR,OAHD,CAGE,OAAOE,GAAP,EAAY;AACZD,QAAAA,MAAM,CAACC,GAAD,CAAN;AACD;AACF,KAPM,CAAP;AAQD,GAhJuC;AAkJxCoB,EAAAA,mBAAmB,EAAE,MAAqB;AACxC,WAAO,IAAIvB,OAAJ,CAAY,OAAOC,OAAP,EAAgBC,MAAhB,KAA2B;AAC5C,UAAI;AACF,cAAMhB,+BAA+B,CAACqC,mBAAhC,EAAN;AACAtB,QAAAA,OAAO;AACR,OAHD,CAGE,OAAOE,GAAP,EAAY;AACZD,QAAAA,MAAM,CAACC,GAAD,CAAN;AACD;AACF,KAPM,CAAP;AAQD,GA3JuC;AA6JxCqB,EAAAA,mBAAmB,EAAGH,YAAD,IAAgD;AACnE,WAAO,IAAIrB,OAAJ,CAAY,OAAOC,OAAP,EAAgBC,MAAhB,KAA2B;AAC5C,UAAI;AACF,cAAMhB,+BAA+B,CAACkC,yBAAhC,CAA0DC,YAAY,IAAI,EAA1E,CAAN;AACApB,QAAAA,OAAO;AACR,OAHD,CAGE,OAAOE,GAAP,EAAY;AACZD,QAAAA,MAAM,CAACC,GAAD,CAAN;AACD;AACF,KAPM,CAAP;AAQD,GAtKuC;AAwKxC;AAEAsB,EAAAA,0BAA0B,EAAGJ,YAAD,IAAgD;AAC1E,WAAO,IAAIrB,OAAJ,CAAY,OAAOC,OAAP,EAAgBC,MAAhB,KAA2B;AAC5C,UAAI;AACF,cAAMhB,+BAA+B,CAACuC,0BAAhC,CAA2DJ,YAAY,IAAI,EAA3E,CAAN;AACApB,QAAAA,OAAO;AACR,OAHD,CAGE,OAAOE,GAAP,EAAY;AACZD,QAAAA,MAAM,CAACC,GAAD,CAAN;AACD;AACF,KAPM,CAAP;AAQD,GAnLuC;AAqLxCuB,EAAAA,6BAA6B,EAAE,MAAqB;AAClD,WAAO,IAAI1B,OAAJ,CAAY,OAAOC,OAAP,EAAgBC,MAAhB,KAA2B;AAC5C,UAAI;AACF,cAAMhB,+BAA+B,CAACwC,6BAAhC,EAAN;AACAzB,QAAAA,OAAO;AACR,OAHD,CAGE,OAAOE,GAAP,EAAY;AACZD,QAAAA,MAAM,CAACC,GAAD,CAAN;AACD;AACF,KAPM,CAAP;AAQD,GA9LuC;AAgMxC;AAEAwB,EAAAA,yBAAyB,EAAGC,sBAAD,IAAgD;AACzE,WAAO,IAAI5B,OAAJ,CAAY,OAAOC,OAAP,EAAgBC,MAAhB,KAA2B;AAC5C,UAAI;AACF,cAAMhB,+BAA+B,CAACyC,yBAAhC,CAA0DhB,IAAI,CAACC,SAAL,CAAegB,sBAAf,CAA1D,CAAN;AACA3B,QAAAA,OAAO;AACR,OAHD,CAGE,OAAOE,GAAP,EAAY;AACZD,QAAAA,MAAM,CAACC,GAAD,CAAN;AACD;AACF,KAPM,CAAP;AAQD,GA3MuC;AA8MxC0B,EAAAA,sCAAsC,EAAE,MAAqB;AAC3D,WAAO,IAAI7B,OAAJ,CAAY,OAAOC,OAAP,EAAgBC,MAAhB,KAA2B;AAC5C,UAAI;AACF,cAAMhB,+BAA+B,CAAC2C,sCAAhC,EAAN;AACA5B,QAAAA,OAAO;AACR,OAHD,CAGE,OAAOE,GAAP,EAAY;AACZD,QAAAA,MAAM,CAACC,GAAD,CAAN;AACD;AACF,KAPM,CAAP;AAQD;AAvNuC,CAA1C;AA0NA,eAAed,iCAAf","sourcesContent":["import { NativeEventEmitter, NativeModules } from 'react-native';\n\nconst { PrimerHeadlessUniversalCheckout } = NativeModules;\n\nconst eventEmitter = new NativeEventEmitter(PrimerHeadlessUniversalCheckout);\n\ntype EventType =\n | 'onHUCTokenizeStart'\n | 'onHUCPrepareStart'\n | 'onHUCAvailablePaymentMethodsLoaded'\n | 'onHUCPaymentMethodShow'\n | 'onTokenizeSuccess'\n | 'onResumeSuccess'\n | 'onBeforePaymentCreate'\n | 'onBeforeClientSessionUpdate'\n | 'onClientSessionUpdate'\n | 'onCheckoutComplete'\n | 'onError';\n\nconst eventTypes: EventType[] = [\n 'onHUCTokenizeStart',\n 'onHUCPrepareStart',\n 'onHUCAvailablePaymentMethodsLoaded',\n 'onHUCPaymentMethodShow',\n 'onTokenizeSuccess',\n 'onResumeSuccess',\n 'onBeforePaymentCreate',\n 'onBeforeClientSessionUpdate',\n 'onClientSessionUpdate',\n 'onCheckoutComplete',\n 'onError'\n];\n\nconst RNPrimerHeadlessUniversalCheckout = {\n ///////////////////////////////////////////\n // Event Emitter\n ///////////////////////////////////////////\n addListener: (eventType: EventType, listener: (...args: any[]) => any) => {\n eventEmitter.addListener(eventType, listener);\n },\n\n removeListener: (eventType: EventType, listener: (...args: any[]) => any) => {\n eventEmitter.removeListener(eventType, listener);\n },\n\n removeAllListenersForEvent(eventType: EventType) {\n eventEmitter.removeAllListeners(eventType);\n },\n\n removeAllListeners() {\n eventTypes.forEach((eventType) => RNPrimerHeadlessUniversalCheckout.removeAllListenersForEvent(eventType));\n },\n\n ///////////////////////////////////////////\n // Native API\n ///////////////////////////////////////////\n getAssetForPaymentMethodType: (\n paymentMethodType: string,\n assetType: 'logo' | 'icon'\n ): Promise<string> => {\n return new Promise((resolve, reject) => {\n try {\n PrimerHeadlessUniversalCheckout.getAssetForPaymentMethodType(\n paymentMethodType,\n assetType,\n (err: Error) => {\n reject(err);\n },\n (url: string) => {\n resolve(url);\n }\n );\n } catch (e) {\n reject(e);\n }\n });\n },\n\n getAssetForCardNetwork: (\n cardNetwork: string,\n assetType: 'logo' | 'icon'\n ): Promise<string> => {\n return new Promise((resolve, reject) => {\n try {\n PrimerHeadlessUniversalCheckout.getAssetForPaymentMethodType(\n cardNetwork,\n assetType,\n (err: Error) => {\n reject(err);\n },\n (url: string) => {\n resolve(url);\n }\n );\n } catch (e) {\n reject(e);\n }\n });\n },\n\n startWithClientToken(clientToken: string, settings: any): Promise<any> {\n return new Promise((resolve, reject) => {\n PrimerHeadlessUniversalCheckout.startWithClientToken(\n clientToken,\n JSON.stringify(settings),\n (err: Error) => {\n console.error(err);\n reject(err);\n },\n (paymentMethodTypes: string[]) => {\n resolve({ paymentMethodTypes });\n }\n );\n });\n },\n\n showPaymentMethod: (paymentMethodType: string): Promise<void> => {\n return new Promise(async (resolve, reject) => {\n try {\n await PrimerHeadlessUniversalCheckout.showPaymentMethod(paymentMethodType);\n resolve();\n } catch (err) {\n reject(err);\n }\n });\n },\n\n ///////////////////////////////////////////\n // DECISION HANDLERS\n ///////////////////////////////////////////\n\n // Tokenization Handlers\n\n handleTokenizationNewClientToken: (newClientToken: string): Promise<void> => {\n return new Promise(async (resolve, reject) => {\n try {\n await PrimerHeadlessUniversalCheckout.handleTokenizationNewClientToken(newClientToken);\n resolve();\n } catch (err) {\n reject(err);\n }\n });\n },\n\n handleTokenizationSuccess: (): Promise<void> => {\n return new Promise(async (resolve, reject) => {\n try {\n await PrimerHeadlessUniversalCheckout.handleTokenizationSuccess();\n resolve();\n } catch (err) {\n reject(err);\n }\n });\n },\n\n handleTokenizationFailure: (errorMessage: string | null): Promise<void> => {\n return new Promise(async (resolve, reject) => {\n try {\n await PrimerHeadlessUniversalCheckout.handleTokenizationFailure(errorMessage || \"\");\n resolve();\n } catch (err) {\n reject(err);\n }\n });\n },\n\n // Resume Handlers\n\n handleResumeWithNewClientToken: (newClientToken: string): Promise<void> => {\n return new Promise(async (resolve, reject) => {\n try {\n await PrimerHeadlessUniversalCheckout.handleResumeWithNewClientToken(newClientToken);\n resolve();\n } catch (err) {\n reject(err);\n }\n });\n },\n\n handleResumeSuccess: (): Promise<void> => {\n return new Promise(async (resolve, reject) => {\n try {\n await PrimerHeadlessUniversalCheckout.handleResumeSuccess();\n resolve();\n } catch (err) {\n reject(err);\n }\n });\n },\n\n handleResumeFailure: (errorMessage: string | null): Promise<void> => {\n return new Promise(async (resolve, reject) => {\n try {\n await PrimerHeadlessUniversalCheckout.handleTokenizationFailure(errorMessage || \"\");\n resolve();\n } catch (err) {\n reject(err);\n }\n });\n },\n\n // Payment Creation Handlers\n\n handlePaymentCreationAbort: (errorMessage: string | null): Promise<void> => {\n return new Promise(async (resolve, reject) => {\n try {\n await PrimerHeadlessUniversalCheckout.handlePaymentCreationAbort(errorMessage || \"\");\n resolve();\n } catch (err) {\n reject(err);\n }\n });\n },\n\n handlePaymentCreationContinue: (): Promise<void> => {\n return new Promise(async (resolve, reject) => {\n try {\n await PrimerHeadlessUniversalCheckout.handlePaymentCreationContinue();\n resolve();\n } catch (err) {\n reject(err);\n }\n });\n },\n\n // HELPERS\n\n setImplementedRNCallbacks: (implementedRNCallbacks: any): Promise<void> => {\n return new Promise(async (resolve, reject) => {\n try {\n await PrimerHeadlessUniversalCheckout.setImplementedRNCallbacks(JSON.stringify(implementedRNCallbacks));\n resolve();\n } catch (err) {\n reject(err);\n }\n });\n },\n\n \n disposePrimerHeadlessUniversalCheckout: (): Promise<void> => {\n return new Promise(async (resolve, reject) => {\n try {\n await PrimerHeadlessUniversalCheckout.disposePrimerHeadlessUniversalCheckout();\n resolve();\n } catch (err) {\n reject(err);\n }\n });\n },\n};\n\nexport default RNPrimerHeadlessUniversalCheckout;\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","sourcesContent":[]}
|
package/lib/module/index.js
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
export { Primer } from './Primer';
|
|
2
2
|
export { PrimerSettings } from './models/PrimerSettings';
|
|
3
3
|
export { PrimerSessionIntent } from './models/PrimerSessionIntent';
|
|
4
|
-
export { PrimerPaymentCreationHandler, PrimerTokenizationHandler, PrimerResumeHandler, PrimerErrorHandler } from './models/
|
|
4
|
+
export { PrimerPaymentCreationHandler, PrimerTokenizationHandler, PrimerResumeHandler, PrimerErrorHandler } from './models/PrimerInterfaces';
|
|
5
5
|
export { PrimerPaymentMethodTokenData } from './models/PrimerPaymentMethodTokenData';
|
|
6
6
|
export { PrimerClientSession, PrimerOrder, PrimerLineItem, PrimerCustomer, PrimerAddress } from './models/PrimerClientSession';
|
|
7
7
|
export { PrimerCheckoutData, PrimerCheckoutDataPayment } from './models/PrimerCheckoutData';
|
|
8
8
|
export { PrimerCheckoutPaymentMethodData } from './models/PrimerCheckoutPaymentMethodData';
|
|
9
9
|
export { PrimerError } from './models/PrimerError';
|
|
10
|
+
export { PrimerHeadlessUniversalCheckout } from './headless_checkout/PrimerHeadlessUniversalCheckout';
|
|
10
11
|
//# sourceMappingURL=index.js.map
|
package/lib/module/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["index.tsx"],"names":["Primer","PrimerSettings","PrimerSessionIntent","PrimerPaymentCreationHandler","PrimerTokenizationHandler","PrimerResumeHandler","PrimerErrorHandler","PrimerPaymentMethodTokenData","PrimerClientSession","PrimerOrder","PrimerLineItem","PrimerCustomer","PrimerAddress","PrimerCheckoutData","PrimerCheckoutDataPayment","PrimerCheckoutPaymentMethodData","PrimerError"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["index.tsx"],"names":["Primer","PrimerSettings","PrimerSessionIntent","PrimerPaymentCreationHandler","PrimerTokenizationHandler","PrimerResumeHandler","PrimerErrorHandler","PrimerPaymentMethodTokenData","PrimerClientSession","PrimerOrder","PrimerLineItem","PrimerCustomer","PrimerAddress","PrimerCheckoutData","PrimerCheckoutDataPayment","PrimerCheckoutPaymentMethodData","PrimerError","PrimerHeadlessUniversalCheckout"],"mappings":"AAAA,SACIA,MADJ,QAEO,UAFP;AAGA,SACIC,cADJ,QAEO,yBAFP;AAGA,SACIC,mBADJ,QAEO,8BAFP;AAGA,SACIC,4BADJ,EAEIC,yBAFJ,EAGIC,mBAHJ,EAIIC,kBAJJ,QAKO,2BALP;AAMA,SAASC,4BAAT,QAA6C,uCAA7C;AACA,SACIC,mBADJ,EAEIC,WAFJ,EAGIC,cAHJ,EAIIC,cAJJ,EAKIC,aALJ,QAMO,8BANP;AAOA,SACIC,kBADJ,EAEIC,yBAFJ,QAGO,6BAHP;AAIA,SACIC,+BADJ,QAEO,0CAFP;AAGA,SACIC,WADJ,QAEO,sBAFP;AAGA,SACIC,+BADJ,QAEO,qDAFP","sourcesContent":["export {\n Primer\n} from './Primer';\nexport {\n PrimerSettings\n} from './models/PrimerSettings';\nexport {\n PrimerSessionIntent\n} from './models/PrimerSessionIntent';\nexport { \n PrimerPaymentCreationHandler,\n PrimerTokenizationHandler,\n PrimerResumeHandler,\n PrimerErrorHandler,\n} from './models/PrimerInterfaces';\nexport { PrimerPaymentMethodTokenData } from './models/PrimerPaymentMethodTokenData';\nexport { \n PrimerClientSession,\n PrimerOrder,\n PrimerLineItem,\n PrimerCustomer,\n PrimerAddress,\n} from './models/PrimerClientSession';\nexport { \n PrimerCheckoutData,\n PrimerCheckoutDataPayment,\n} from './models/PrimerCheckoutData';\nexport { \n PrimerCheckoutPaymentMethodData\n} from './models/PrimerCheckoutPaymentMethodData';\nexport { \n PrimerError\n} from './models/PrimerError';\nexport {\n PrimerHeadlessUniversalCheckout\n} from './headless_checkout/PrimerHeadlessUniversalCheckout';\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","sourcesContent":[]}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Sample React Native App
|
|
3
|
+
* https://github.com/facebook/react-native
|
|
4
|
+
*
|
|
5
|
+
* Generated with the TypeScript template
|
|
6
|
+
* https://github.com/react-native-community/react-native-template-typescript
|
|
7
|
+
*
|
|
8
|
+
* @format
|
|
9
|
+
*/
|
|
10
|
+
declare const App: () => JSX.Element;
|
|
11
|
+
export default App;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { ViewProps } from 'react-native';
|
|
3
|
+
export declare const PrimerCardNumberEditTextRaw: import("react-native").HostComponent<{}>;
|
|
4
|
+
declare type PrimerCardNumberEditTextProps = ViewProps;
|
|
5
|
+
export declare const PrimerCardNumberEditText: React.FC<PrimerCardNumberEditTextProps>;
|
|
6
|
+
export declare const PrimerCardholderNameEditTextRaw: import("react-native").HostComponent<{}>;
|
|
7
|
+
declare type PrimerCardholderNameEditTextProps = ViewProps;
|
|
8
|
+
export declare const PrimerCardholderNameEditText: React.FC<PrimerCardholderNameEditTextProps>;
|
|
9
|
+
export declare const PrimerExpiryEditTextRaw: import("react-native").HostComponent<{}>;
|
|
10
|
+
declare type PrimerExpiryEditTextProps = ViewProps;
|
|
11
|
+
export declare const PrimerExpiryEditText: React.FC<PrimerExpiryEditTextProps>;
|
|
12
|
+
export declare const PrimerCvvEditTextRaw: import("react-native").HostComponent<{}>;
|
|
13
|
+
declare type PrimerCvvEditTextProps = ViewProps;
|
|
14
|
+
export declare const PrimerCvvEditText: React.FC<PrimerCvvEditTextProps>;
|
|
15
|
+
export {};
|
|
@@ -16,6 +16,7 @@ declare const RNPrimer: {
|
|
|
16
16
|
showVaultManager: (clientToken: string | undefined) => Promise<void>;
|
|
17
17
|
showPaymentMethod: (paymentMethodType: string, intent: PrimerSessionIntent, clientToken: string) => Promise<void>;
|
|
18
18
|
dismiss: () => Promise<void>;
|
|
19
|
+
dispose: () => Promise<void>;
|
|
19
20
|
handleTokenizationNewClientToken: (newClientToken: string) => Promise<void>;
|
|
20
21
|
handleTokenizationSuccess: () => Promise<void>;
|
|
21
22
|
handleTokenizationFailure: (errorMessage: string | null) => Promise<void>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const PrimerHeadlessUniversalCheckoutCardFormUIManager: any;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { PrimerSettings } from '../models/PrimerSettings';
|
|
2
|
+
declare class PrimerHeadlessUniversalCheckoutClass {
|
|
3
|
+
constructor();
|
|
4
|
+
startWithClientToken(clientToken: string, settings: PrimerSettings): Promise<string[]>;
|
|
5
|
+
showPaymentMethod(paymentMethodType: string): Promise<void>;
|
|
6
|
+
getAssetForPaymentMethodType(paymentMethodType: string, assetType: 'logo' | 'icon'): Promise<string>;
|
|
7
|
+
getAssetForCardNetwork(cardNetwork: string, assetType: 'logo' | 'icon'): Promise<string>;
|
|
8
|
+
disposePrimerHeadlessUniversalCheckout(): Promise<void>;
|
|
9
|
+
}
|
|
10
|
+
export declare const PrimerHeadlessUniversalCheckout: PrimerHeadlessUniversalCheckoutClass;
|
|
11
|
+
export {};
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
declare type EventType = 'onHUCTokenizeStart' | 'onHUCPrepareStart' | 'onHUCAvailablePaymentMethodsLoaded' | 'onHUCPaymentMethodShow' | 'onTokenizeSuccess' | 'onResumeSuccess' | 'onBeforePaymentCreate' | 'onBeforeClientSessionUpdate' | 'onClientSessionUpdate' | 'onCheckoutComplete' | 'onError';
|
|
2
|
+
declare const RNPrimerHeadlessUniversalCheckout: {
|
|
3
|
+
addListener: (eventType: EventType, listener: (...args: any[]) => any) => void;
|
|
4
|
+
removeListener: (eventType: EventType, listener: (...args: any[]) => any) => void;
|
|
5
|
+
removeAllListenersForEvent(eventType: EventType): void;
|
|
6
|
+
removeAllListeners(): void;
|
|
7
|
+
getAssetForPaymentMethodType: (paymentMethodType: string, assetType: 'logo' | 'icon') => Promise<string>;
|
|
8
|
+
getAssetForCardNetwork: (cardNetwork: string, assetType: 'logo' | 'icon') => Promise<string>;
|
|
9
|
+
startWithClientToken(clientToken: string, settings: any): Promise<any>;
|
|
10
|
+
showPaymentMethod: (paymentMethodType: string) => Promise<void>;
|
|
11
|
+
handleTokenizationNewClientToken: (newClientToken: string) => Promise<void>;
|
|
12
|
+
handleTokenizationSuccess: () => Promise<void>;
|
|
13
|
+
handleTokenizationFailure: (errorMessage: string | null) => Promise<void>;
|
|
14
|
+
handleResumeWithNewClientToken: (newClientToken: string) => Promise<void>;
|
|
15
|
+
handleResumeSuccess: () => Promise<void>;
|
|
16
|
+
handleResumeFailure: (errorMessage: string | null) => Promise<void>;
|
|
17
|
+
handlePaymentCreationAbort: (errorMessage: string | null) => Promise<void>;
|
|
18
|
+
handlePaymentCreationContinue: () => Promise<void>;
|
|
19
|
+
setImplementedRNCallbacks: (implementedRNCallbacks: any) => Promise<void>;
|
|
20
|
+
disposePrimerHeadlessUniversalCheckout: () => Promise<void>;
|
|
21
|
+
};
|
|
22
|
+
export default RNPrimerHeadlessUniversalCheckout;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { PrimerCheckoutData } from '../models/PrimerCheckoutData';
|
|
2
|
+
import type { PrimerCheckoutPaymentMethodData } from '../models/PrimerCheckoutPaymentMethodData';
|
|
3
|
+
import type { PrimerTokenizationHandler, PrimerResumeHandler, PrimerPaymentCreationHandler, PrimerErrorHandler } from '../models/PrimerInterfaces';
|
|
4
|
+
import type { PrimerClientSession } from '../models/PrimerClientSession';
|
|
5
|
+
import type { PrimerPaymentMethodTokenData } from '../models/PrimerPaymentMethodTokenData';
|
|
6
|
+
import type { PrimerError } from '../models/PrimerError';
|
|
7
|
+
export interface PrimerHeadlessUniversalCheckoutStartResponse {
|
|
8
|
+
paymentMethodTypes: string[];
|
|
9
|
+
}
|
|
10
|
+
export interface PrimerHeadlessUniversalCheckoutCallbacks {
|
|
11
|
+
onBeforeClientSessionUpdate?: () => void;
|
|
12
|
+
onClientSessionUpdate?: (clientSession: PrimerClientSession) => void;
|
|
13
|
+
onBeforePaymentCreate?: (checkoutPaymentMethodData: PrimerCheckoutPaymentMethodData, handler: PrimerPaymentCreationHandler) => void;
|
|
14
|
+
onCheckoutComplete?: (checkoutData: PrimerCheckoutData) => void;
|
|
15
|
+
onTokenizeSuccess?: (paymentMethodTokenData: PrimerPaymentMethodTokenData, handler: PrimerTokenizationHandler) => void;
|
|
16
|
+
onResumeSuccess?: (resumeToken: string, handler: PrimerResumeHandler) => void;
|
|
17
|
+
onError?: (error: PrimerError, checkoutData: PrimerCheckoutData | null, handler: PrimerErrorHandler | undefined) => void;
|
|
18
|
+
onPrepareStart?: (paymentMethodType: string) => void;
|
|
19
|
+
onTokenizeStart?: (paymentMethodType: string) => void;
|
|
20
|
+
onPaymentMethodShow?: (paymentMethodType: string) => void;
|
|
21
|
+
onAvailablePaymentMethodTypesLoad?: (paymentMethodTypes: string[]) => void;
|
|
22
|
+
}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
export { Primer } from './Primer';
|
|
2
2
|
export { PrimerSettings } from './models/PrimerSettings';
|
|
3
3
|
export { PrimerSessionIntent } from './models/PrimerSessionIntent';
|
|
4
|
-
export { PrimerPaymentCreationHandler, PrimerTokenizationHandler, PrimerResumeHandler, PrimerErrorHandler, } from './models/
|
|
4
|
+
export { PrimerPaymentCreationHandler, PrimerTokenizationHandler, PrimerResumeHandler, PrimerErrorHandler, } from './models/PrimerInterfaces';
|
|
5
5
|
export { PrimerPaymentMethodTokenData } from './models/PrimerPaymentMethodTokenData';
|
|
6
6
|
export { PrimerClientSession, PrimerOrder, PrimerLineItem, PrimerCustomer, PrimerAddress, } from './models/PrimerClientSession';
|
|
7
7
|
export { PrimerCheckoutData, PrimerCheckoutDataPayment, } from './models/PrimerCheckoutData';
|
|
8
8
|
export { PrimerCheckoutPaymentMethodData } from './models/PrimerCheckoutPaymentMethodData';
|
|
9
9
|
export { PrimerError } from './models/PrimerError';
|
|
10
|
+
export { PrimerHeadlessUniversalCheckout } from './headless_checkout/PrimerHeadlessUniversalCheckout';
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import type { PrimerSessionIntent } from "./PrimerSessionIntent";
|
|
2
2
|
import type { PrimerSettings } from "./PrimerSettings";
|
|
3
|
-
export interface
|
|
3
|
+
export interface IPrimer {
|
|
4
4
|
configure(settings: PrimerSettings): Promise<void>;
|
|
5
5
|
showUniversalCheckout(clientToken: string): Promise<void>;
|
|
6
6
|
showVaultManager(clientToken: string): Promise<void>;
|
|
7
7
|
showPaymentMethod(paymentMethodType: string, intent: PrimerSessionIntent, clientToken: string): Promise<void>;
|
|
8
8
|
dismiss(): void;
|
|
9
|
+
dispose(): void;
|
|
9
10
|
}
|
|
10
11
|
export interface PrimerPaymentCreationHandler {
|
|
11
12
|
abortPaymentCreation(errorMessage: string | null): void;
|
|
File without changes
|
|
File without changes
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { PrimerErrorHandler, PrimerPaymentCreationHandler, PrimerResumeHandler, PrimerTokenizationHandler } from "./
|
|
1
|
+
import type { PrimerErrorHandler, PrimerPaymentCreationHandler, PrimerResumeHandler, PrimerTokenizationHandler } from "./PrimerInterfaces";
|
|
2
2
|
import type { PrimerCheckoutData } from "./PrimerCheckoutData";
|
|
3
3
|
import type { PrimerCheckoutPaymentMethodData } from "./PrimerCheckoutPaymentMethodData";
|
|
4
4
|
import type { PrimerClientSession } from "./PrimerClientSession";
|
|
@@ -18,8 +18,12 @@ interface IPrimerSettings {
|
|
|
18
18
|
onCheckoutComplete?: (checkoutData: PrimerCheckoutData) => void;
|
|
19
19
|
onTokenizeSuccess?: (paymentMethodTokenData: PrimerPaymentMethodTokenData, handler: PrimerTokenizationHandler) => void;
|
|
20
20
|
onResumeSuccess?: (resumeToken: string, handler: PrimerResumeHandler) => void;
|
|
21
|
-
onError?: (error: PrimerError, checkoutData: PrimerCheckoutData | null, handler: PrimerErrorHandler) => void;
|
|
21
|
+
onError?: (error: PrimerError, checkoutData: PrimerCheckoutData | null, handler: PrimerErrorHandler | undefined) => void;
|
|
22
22
|
onDismiss?: () => void;
|
|
23
|
+
onPrepareStart?: (paymentMethod: string) => void;
|
|
24
|
+
onTokenizeStart?: (paymentMethod: string) => void;
|
|
25
|
+
onPaymentMethodShow?: (paymentMethod: string) => void;
|
|
26
|
+
onAvailablePaymentMethodsLoad?: (paymentMethods: string[]) => void;
|
|
23
27
|
}
|
|
24
28
|
interface IPrimerLocaleData {
|
|
25
29
|
languageCode?: string;
|
|
File without changes
|
|
File without changes
|
package/package.json
CHANGED
package/src/Primer.ts
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import type { PrimerCheckoutData } from './models/PrimerCheckoutData';
|
|
2
|
-
import type { Primer as IPrimer, PrimerErrorHandler, PrimerPaymentCreationHandler, PrimerResumeHandler, PrimerTokenizationHandler } from './models/Primer';
|
|
3
2
|
import type { PrimerSessionIntent } from './models/PrimerSessionIntent';
|
|
4
3
|
import type { PrimerSettings } from './models/PrimerSettings';
|
|
5
4
|
import RNPrimer from './RNPrimer';
|
|
@@ -7,6 +6,7 @@ import type { PrimerCheckoutPaymentMethodData } from './models/PrimerCheckoutPay
|
|
|
7
6
|
import type { PrimerClientSession } from './models/PrimerClientSession';
|
|
8
7
|
import type { PrimerPaymentMethodTokenData } from './models/PrimerPaymentMethodTokenData';
|
|
9
8
|
import { PrimerError } from './models/PrimerError';
|
|
9
|
+
import type { IPrimer, PrimerErrorHandler, PrimerPaymentCreationHandler, PrimerResumeHandler, PrimerTokenizationHandler } from './models/PrimerInterfaces';
|
|
10
10
|
|
|
11
11
|
///////////////////////////////////////////
|
|
12
12
|
// DECISION HANDLERS
|
|
@@ -263,6 +263,11 @@ export const Primer: IPrimer = {
|
|
|
263
263
|
});
|
|
264
264
|
},
|
|
265
265
|
|
|
266
|
+
dispose(): void {
|
|
267
|
+
RNPrimer.removeAllListeners();
|
|
268
|
+
RNPrimer.dismiss();
|
|
269
|
+
},
|
|
270
|
+
|
|
266
271
|
dismiss(): void {
|
|
267
272
|
RNPrimer.removeAllListeners();
|
|
268
273
|
RNPrimer.dismiss();
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { PrimerHeadlessUniversalCheckoutCardFormUIManager } from './RNTPrimerHeadlessUniversalCheckoutCardFormUIManager';
|
|
2
|
+
import React, { useEffect, useRef } from 'react';
|
|
3
|
+
import { NativeModules, requireNativeComponent, ViewProps } from 'react-native';
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
// PrimerCardNumberEditText
|
|
7
|
+
export const PrimerCardNumberEditTextRaw = requireNativeComponent<{}>(
|
|
8
|
+
'PrimerCardNumberEditText'
|
|
9
|
+
);
|
|
10
|
+
|
|
11
|
+
type PrimerCardNumberEditTextProps = ViewProps;
|
|
12
|
+
|
|
13
|
+
const { PrimerRN } = NativeModules;
|
|
14
|
+
|
|
15
|
+
export const PrimerCardNumberEditText: React.FC<PrimerCardNumberEditTextProps> = (props) => {
|
|
16
|
+
const ref = useRef(React.createRef<any>());
|
|
17
|
+
|
|
18
|
+
useEffect(() => {
|
|
19
|
+
const tag = ref.current.current._nativeTag;
|
|
20
|
+
PrimerHeadlessUniversalCheckoutCardFormUIManager.addInput(tag);
|
|
21
|
+
return () => PrimerRN.removeInput(tag);
|
|
22
|
+
}, []);
|
|
23
|
+
|
|
24
|
+
const rawComponent = (
|
|
25
|
+
<PrimerCardNumberEditTextRaw ref={ref.current} {...props} />
|
|
26
|
+
);
|
|
27
|
+
|
|
28
|
+
return rawComponent;
|
|
29
|
+
};
|
|
30
|
+
|
|
31
|
+
// PrimerCardholderNameEditText
|
|
32
|
+
export const PrimerCardholderNameEditTextRaw = requireNativeComponent<{}>(
|
|
33
|
+
'PrimerCardholderNameEditText'
|
|
34
|
+
);
|
|
35
|
+
|
|
36
|
+
type PrimerCardholderNameEditTextProps = ViewProps;
|
|
37
|
+
|
|
38
|
+
export const PrimerCardholderNameEditText: React.FC<PrimerCardholderNameEditTextProps> = (
|
|
39
|
+
props
|
|
40
|
+
) => {
|
|
41
|
+
const ref = useRef(React.createRef<any>());
|
|
42
|
+
|
|
43
|
+
useEffect(() => {
|
|
44
|
+
const tag = ref.current.current._nativeTag;
|
|
45
|
+
PrimerRN.addInput(tag);
|
|
46
|
+
return () => PrimerRN.removeInput(tag);
|
|
47
|
+
}, []);
|
|
48
|
+
return <PrimerCardholderNameEditTextRaw ref={ref.current} {...props} />;
|
|
49
|
+
};
|
|
50
|
+
|
|
51
|
+
// PrimerExpiryEditText
|
|
52
|
+
export const PrimerExpiryEditTextRaw = requireNativeComponent<{}>(
|
|
53
|
+
'PrimerExpiryEditText'
|
|
54
|
+
);
|
|
55
|
+
|
|
56
|
+
type PrimerExpiryEditTextProps = ViewProps;
|
|
57
|
+
|
|
58
|
+
export const PrimerExpiryEditText: React.FC<PrimerExpiryEditTextProps> = (
|
|
59
|
+
props
|
|
60
|
+
) => {
|
|
61
|
+
return <PrimerExpiryEditTextRaw {...props} />;
|
|
62
|
+
};
|
|
63
|
+
|
|
64
|
+
// cvv
|
|
65
|
+
export const PrimerCvvEditTextRaw = requireNativeComponent<{}>(
|
|
66
|
+
'PrimerCvvEditText'
|
|
67
|
+
);
|
|
68
|
+
|
|
69
|
+
type PrimerCvvEditTextProps = ViewProps;
|
|
70
|
+
|
|
71
|
+
export const PrimerCvvEditText: React.FC<PrimerCvvEditTextProps> = (props) => {
|
|
72
|
+
return <PrimerCvvEditTextRaw {...props} />;
|
|
73
|
+
};
|
package/src/RNPrimer.ts
CHANGED
|
@@ -117,6 +117,17 @@ const RNPrimer = {
|
|
|
117
117
|
});
|
|
118
118
|
},
|
|
119
119
|
|
|
120
|
+
dispose: (): Promise<void> => {
|
|
121
|
+
return new Promise(async (resolve, reject) => {
|
|
122
|
+
try {
|
|
123
|
+
await NativePrimer.dispose();
|
|
124
|
+
resolve();
|
|
125
|
+
} catch (err) {
|
|
126
|
+
reject(err);
|
|
127
|
+
}
|
|
128
|
+
});
|
|
129
|
+
},
|
|
130
|
+
|
|
120
131
|
///////////////////////////////////////////
|
|
121
132
|
// DECISION HANDLERS
|
|
122
133
|
///////////////////////////////////////////
|
|
@@ -239,6 +250,8 @@ const RNPrimer = {
|
|
|
239
250
|
});
|
|
240
251
|
},
|
|
241
252
|
|
|
253
|
+
// HELPERS
|
|
254
|
+
|
|
242
255
|
setImplementedRNCallbacks: (implementedRNCallbacks: any): Promise<void> => {
|
|
243
256
|
return new Promise(async (resolve, reject) => {
|
|
244
257
|
try {
|