@tap-payments/apple-pay-button 0.0.38-development → 0.0.40-development
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/build/@types/index.d.ts +9 -1
- package/build/api/app.service.d.ts +4 -0
- package/build/api/app.service.js +13 -5
- package/build/features/ApplePayButton/ApplePayButton.d.ts +2 -2
- package/build/features/ApplePayButton/ApplePayButton.js +2 -2
- package/build/features/ApplePayButton/index.d.ts +2 -2
- package/build/hooks/useApplePay.d.ts +2 -1
- package/build/hooks/useApplePay.js +36 -18
- package/build/index.d.ts +2 -2
- package/build/utils/defaultValues.d.ts +2 -2
- package/package.json +1 -1
package/build/@types/index.d.ts
CHANGED
|
@@ -15,6 +15,14 @@ export interface ApplePayRequestData {
|
|
|
15
15
|
amount: number;
|
|
16
16
|
};
|
|
17
17
|
}
|
|
18
|
+
export interface ApplePayDataToLunchSDKFromMerchantSide {
|
|
19
|
+
headers: Record<string, any>;
|
|
20
|
+
BASE_URL: string;
|
|
21
|
+
merchant: Record<string, string>;
|
|
22
|
+
applePayRequestData: ApplePayRequestData;
|
|
23
|
+
debug?: boolean;
|
|
24
|
+
applePaySDKVersion?: number;
|
|
25
|
+
}
|
|
18
26
|
export interface Interface {
|
|
19
27
|
locale?: typeof Locale[keyof typeof Locale];
|
|
20
28
|
theme?: typeof ThemeMode[keyof typeof ThemeMode];
|
|
@@ -94,7 +102,7 @@ export interface ApplePayButtonProps {
|
|
|
94
102
|
onCancel?: () => void;
|
|
95
103
|
onError?: (error: any) => void;
|
|
96
104
|
onSuccess?: (data: Record<string, any>) => void;
|
|
97
|
-
onClick?: (data?:
|
|
105
|
+
onClick?: (data?: ApplePayDataToLunchSDKFromMerchantSide) => void;
|
|
98
106
|
onReady?: () => void;
|
|
99
107
|
metaData?: MetaData;
|
|
100
108
|
debug?: boolean;
|
|
@@ -7,6 +7,7 @@ declare class APPService extends BaseService {
|
|
|
7
7
|
setEnv(env: ApplePayButtonProps['environment']): void;
|
|
8
8
|
setBaseUrl(): void;
|
|
9
9
|
getHeaderPublicKey(): "-----BEGIN PUBLIC KEY-----\nMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC8AX++RtxPZFtns4XzXFlDIxPBh0umN4qRXZaKDIlb6a3MknaB7psJWmf2l+e4Cfh9b5tey/+rZqpQ065eXTZfGCAuBLt+fYLQBhLfjRpk8S6hlIzc1Kdjg65uqzMwcTd0p7I4KLwHk1I0oXzuEu53fU1LSZhWp4Mnd6wjVgXAsQIDAQAB\n-----END PUBLIC KEY-----" | "" | "-----BEGIN PUBLIC KEY-----\nMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC9hSRms7Ir1HmzdZxGXFYgmpi3\nez7VBFje0f8wwrxYS9oVoBtN4iAt0DOs3DbeuqtueI31wtpFVUMGg8W7R0SbtkZd\nGzszQNqt/wyqxpDC9q+97XdXwkWQFA72s76ud7eMXQlsWKsvgwhY+Ywzt0KlpNC3\nHj+N6UWFOYK98Xi+sQIDAQAB\n-----END PUBLIC KEY-----" | "-----BEGIN PUBLIC KEY-----\nMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCi9W5jyTvA4Iwv3V5sfNQ7VdSz\n7WqwBbnWFbIUL/GjaaE93mvDv4zbgRSznHaHQPH6pxrMhMh0tV58njkvjHvQ/tvg\npwM8SemNPKEEAPl69tnMvCrJRPh2dWL3OHY8yCW4c38Hyx4fy56Zd5cdoVWfCReu\njCsvASLGz+cfRrj2swIDAQAB\n-----END PUBLIC KEY-----";
|
|
10
|
+
getBaseUrl(): string;
|
|
10
11
|
setHttpHeaders(headers: Record<string, string>): Promise<void>;
|
|
11
12
|
setBrowserHeaders({ locale, pk, domain }: {
|
|
12
13
|
locale: string;
|
|
@@ -16,6 +17,9 @@ declare class APPService extends BaseService {
|
|
|
16
17
|
checkoutProfile(request: CheckoutProfileRequest): Promise<{
|
|
17
18
|
merchant: any;
|
|
18
19
|
payment_options: any;
|
|
20
|
+
headers: import("axios").AxiosResponseHeaders | Partial<Record<string, string> & {
|
|
21
|
+
"set-cookie"?: string[] | undefined;
|
|
22
|
+
}>;
|
|
19
23
|
}>;
|
|
20
24
|
appleSession(merchant: Pick<MerchantResponse, 'name' | 'id'>, validationURL: string, merchantRegisteredDomain: string): Promise<any>;
|
|
21
25
|
tapTokenization(applePaymentData: Record<string, string>): Promise<any>;
|
package/build/api/app.service.js
CHANGED
|
@@ -140,6 +140,14 @@ var APPService = (function (_super) {
|
|
|
140
140
|
}
|
|
141
141
|
}
|
|
142
142
|
});
|
|
143
|
+
Object.defineProperty(APPService.prototype, "getBaseUrl", {
|
|
144
|
+
enumerable: false,
|
|
145
|
+
configurable: true,
|
|
146
|
+
writable: true,
|
|
147
|
+
value: function () {
|
|
148
|
+
return this.baseUrl;
|
|
149
|
+
}
|
|
150
|
+
});
|
|
143
151
|
Object.defineProperty(APPService.prototype, "setHttpHeaders", {
|
|
144
152
|
enumerable: false,
|
|
145
153
|
configurable: true,
|
|
@@ -191,17 +199,17 @@ var APPService = (function (_super) {
|
|
|
191
199
|
writable: true,
|
|
192
200
|
value: function (request) {
|
|
193
201
|
return __awaiter(this, void 0, void 0, function () {
|
|
194
|
-
var data, merchant, payment_options, session;
|
|
195
|
-
return __generator(this, function (
|
|
196
|
-
switch (
|
|
202
|
+
var _a, data, headers, merchant, payment_options, session;
|
|
203
|
+
return __generator(this, function (_b) {
|
|
204
|
+
switch (_b.label) {
|
|
197
205
|
case 0: return [4, this.post(this.baseUrl + '/checkoutprofile', request)];
|
|
198
206
|
case 1:
|
|
199
|
-
|
|
207
|
+
_a = _b.sent(), data = _a.data, headers = _a.headers;
|
|
200
208
|
if (data.errors)
|
|
201
209
|
throw data;
|
|
202
210
|
merchant = data.merchant, payment_options = data.payment_options, session = data.session;
|
|
203
211
|
setAxiosGlobalHeaders({ session: session });
|
|
204
|
-
return [2, { merchant: merchant, payment_options: payment_options }];
|
|
212
|
+
return [2, { merchant: merchant, payment_options: payment_options, headers: headers }];
|
|
205
213
|
}
|
|
206
214
|
});
|
|
207
215
|
});
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
|
-
import { ApplePayButtonProps } from '../../@types';
|
|
2
|
+
import { ApplePayButtonProps, ApplePayRequestData } from '../../@types';
|
|
3
3
|
import './ApplePayButton.css';
|
|
4
|
-
export type { ApplePayButtonProps };
|
|
4
|
+
export type { ApplePayButtonProps, ApplePayRequestData };
|
|
5
5
|
export declare function ApplePayButton(props: ApplePayButtonProps): JSX.Element;
|
|
6
6
|
export declare const renderApplePayButton: (props: ApplePayButtonProps, elementId: string) => any;
|
|
@@ -19,7 +19,7 @@ import { ButtonStyle, Edges, ThemeMode } from '../../constants';
|
|
|
19
19
|
import './ApplePayButton.css';
|
|
20
20
|
var ApplePay = React.memo(function (props) {
|
|
21
21
|
var mappedProps = getDefaultValues(props);
|
|
22
|
-
var _a = useApplePay(mappedProps), loading = _a.loading, onApplePayButtonClicked = _a.onApplePayButtonClicked, disabled = _a.disabled, applePayRequestData = _a.applePayRequestData;
|
|
22
|
+
var _a = useApplePay(mappedProps), loading = _a.loading, onApplePayButtonClicked = _a.onApplePayButtonClicked, disabled = _a.disabled, applePayRequestData = _a.applePayRequestData, applePayRequestConfiguration = _a.applePayRequestConfiguration;
|
|
23
23
|
var isMerchantIntegration = props.integration === 'merchant';
|
|
24
24
|
React.useEffect(function () {
|
|
25
25
|
if (props.debug) {
|
|
@@ -33,7 +33,7 @@ var ApplePay = React.memo(function (props) {
|
|
|
33
33
|
}, onClick: function () {
|
|
34
34
|
var _a, _b;
|
|
35
35
|
if (isMerchantIntegration) {
|
|
36
|
-
(_a = props.onClick) === null || _a === void 0 ? void 0 : _a.call(props, applePayRequestData);
|
|
36
|
+
(_a = props.onClick) === null || _a === void 0 ? void 0 : _a.call(props, __assign(__assign({}, applePayRequestConfiguration), { applePayRequestData: applePayRequestData }));
|
|
37
37
|
return;
|
|
38
38
|
}
|
|
39
39
|
onApplePayButtonClicked();
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { ApplePayButtonProps, ApplePayButton, renderApplePayButton } from './ApplePayButton';
|
|
1
|
+
import { ApplePayButtonProps, ApplePayButton, renderApplePayButton, ApplePayRequestData } from './ApplePayButton';
|
|
2
2
|
export { ApplePayButton, renderApplePayButton };
|
|
3
|
-
export type { ApplePayButtonProps };
|
|
3
|
+
export type { ApplePayButtonProps, ApplePayRequestData };
|
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
import { ApplePayButtonProps, ApplePayRequestData } from '../@types';
|
|
1
|
+
import { ApplePayButtonProps, ApplePayDataToLunchSDKFromMerchantSide, ApplePayRequestData } from '../@types';
|
|
2
2
|
declare type UseApplePayProps = Omit<ApplePayButtonProps, 'buttonStyle'>;
|
|
3
3
|
interface UseApplePayReturnProps {
|
|
4
4
|
loading: boolean;
|
|
5
5
|
onApplePayButtonClicked: () => Promise<void>;
|
|
6
6
|
disabled: boolean;
|
|
7
7
|
applePayRequestData?: ApplePayRequestData;
|
|
8
|
+
applePayRequestConfiguration?: Omit<ApplePayDataToLunchSDKFromMerchantSide, 'applePayRequestData'>;
|
|
8
9
|
}
|
|
9
10
|
export declare const useApplePay: ({ environment, interface: interfaceObj, merchant, customer, acceptance, scope, debug, onError, onSuccess, onCancel, onReady, metaData, headers, operator, order, onOrderCreated }: UseApplePayProps) => UseApplePayReturnProps;
|
|
10
11
|
export {};
|
|
@@ -45,6 +45,17 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
45
45
|
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
46
46
|
}
|
|
47
47
|
};
|
|
48
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
49
|
+
var t = {};
|
|
50
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
51
|
+
t[p] = s[p];
|
|
52
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
53
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
54
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
55
|
+
t[p[i]] = s[p[i]];
|
|
56
|
+
}
|
|
57
|
+
return t;
|
|
58
|
+
};
|
|
48
59
|
import { useCallback, useEffect, useState } from 'react';
|
|
49
60
|
import appService from '../api/app.service';
|
|
50
61
|
import { ApplePayVersion, Scope } from '../constants';
|
|
@@ -57,6 +68,7 @@ export var useApplePay = function (_a) {
|
|
|
57
68
|
var _c = useState(), profileData = _c[0], setProfile = _c[1];
|
|
58
69
|
var _d = useState(false), disabled = _d[0], setDisabled = _d[1];
|
|
59
70
|
var _e = useState(), applePayRequestData = _e[0], setApplePayRequestData = _e[1];
|
|
71
|
+
var _f = useState(), applePayRequestConfiguration = _f[0], setApplePayRequestConfiguration = _f[1];
|
|
60
72
|
var prepareApplePayRequest = function (_a) {
|
|
61
73
|
var payment_options = _a.payment_options, merchant = _a.merchant;
|
|
62
74
|
var paymentMethod = getApplePayPaymentMethod(payment_options.payment_methods || []);
|
|
@@ -72,17 +84,17 @@ export var useApplePay = function (_a) {
|
|
|
72
84
|
setApplePayRequestData(request);
|
|
73
85
|
};
|
|
74
86
|
var initialize = useCallback(function (metaData) { return __awaiter(void 0, void 0, void 0, function () {
|
|
75
|
-
var merchantProfile, payment_options, headers_1, data, err_1;
|
|
76
|
-
var
|
|
77
|
-
return __generator(this, function (
|
|
78
|
-
switch (
|
|
87
|
+
var merchantProfile, payment_options, headers_1, _a, httpHeaders, data, err_1;
|
|
88
|
+
var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
|
|
89
|
+
return __generator(this, function (_o) {
|
|
90
|
+
switch (_o.label) {
|
|
79
91
|
case 0:
|
|
80
92
|
setLoading(true);
|
|
81
93
|
appService.setEnv(environment);
|
|
82
94
|
appService.setBaseUrl();
|
|
83
|
-
|
|
95
|
+
_o.label = 1;
|
|
84
96
|
case 1:
|
|
85
|
-
|
|
97
|
+
_o.trys.push([1, 7, 8, 9]);
|
|
86
98
|
if (metaData) {
|
|
87
99
|
merchantProfile = metaData.merchant, payment_options = metaData.payment_options, headers_1 = metaData.headers;
|
|
88
100
|
setAxiosGlobalHeaders(__assign({}, headers_1));
|
|
@@ -92,7 +104,7 @@ export var useApplePay = function (_a) {
|
|
|
92
104
|
if (!headers) return [3, 3];
|
|
93
105
|
return [4, appService.setHttpHeaders(__assign(__assign({}, headers), { pk: operator.publicKey }))];
|
|
94
106
|
case 2:
|
|
95
|
-
|
|
107
|
+
_o.sent();
|
|
96
108
|
return [3, 5];
|
|
97
109
|
case 3: return [4, appService.setBrowserHeaders({
|
|
98
110
|
locale: interfaceObj === null || interfaceObj === void 0 ? void 0 : interfaceObj.locale,
|
|
@@ -100,8 +112,8 @@ export var useApplePay = function (_a) {
|
|
|
100
112
|
pk: operator.publicKey
|
|
101
113
|
})];
|
|
102
114
|
case 4:
|
|
103
|
-
|
|
104
|
-
|
|
115
|
+
_o.sent();
|
|
116
|
+
_o.label = 5;
|
|
105
117
|
case 5: return [4, appService.checkoutProfile({
|
|
106
118
|
supported_payment_methods: ['APPLE_PAY'],
|
|
107
119
|
supported_currencies: [order.currency],
|
|
@@ -112,12 +124,12 @@ export var useApplePay = function (_a) {
|
|
|
112
124
|
order: __assign(__assign({ id: order === null || order === void 0 ? void 0 : order.id, amount: Number(order.amount), currency: order.currency, description: order === null || order === void 0 ? void 0 : order.description, metadata: order === null || order === void 0 ? void 0 : order.metadata }, (customer && {
|
|
113
125
|
customer: {
|
|
114
126
|
id: customer === null || customer === void 0 ? void 0 : customer.id,
|
|
115
|
-
email: (
|
|
116
|
-
first_name: ((
|
|
117
|
-
last_name: ((
|
|
127
|
+
email: (_b = customer.contact) === null || _b === void 0 ? void 0 : _b.email,
|
|
128
|
+
first_name: ((_c = customer.name) === null || _c === void 0 ? void 0 : _c.length) ? customer.name[0].first : '',
|
|
129
|
+
last_name: ((_d = customer.name) === null || _d === void 0 ? void 0 : _d.length) ? customer.name[0].last : '',
|
|
118
130
|
phone: {
|
|
119
|
-
country_code: (
|
|
120
|
-
number: (
|
|
131
|
+
country_code: (_g = (_f = (_e = customer.contact) === null || _e === void 0 ? void 0 : _e.phone) === null || _f === void 0 ? void 0 : _f.countryCode) !== null && _g !== void 0 ? _g : '',
|
|
132
|
+
number: (_k = (_j = (_h = customer.contact) === null || _h === void 0 ? void 0 : _h.phone) === null || _j === void 0 ? void 0 : _j.number) !== null && _k !== void 0 ? _k : ''
|
|
121
133
|
}
|
|
122
134
|
}
|
|
123
135
|
})), { merchant: {
|
|
@@ -133,15 +145,20 @@ export var useApplePay = function (_a) {
|
|
|
133
145
|
] })
|
|
134
146
|
})];
|
|
135
147
|
case 6:
|
|
136
|
-
|
|
148
|
+
_a = _o.sent(), httpHeaders = _a.headers, data = __rest(_a, ["headers"]);
|
|
137
149
|
if (debug)
|
|
138
150
|
console.log('merchant configuration: ', data);
|
|
139
151
|
setProfile(data);
|
|
140
152
|
prepareApplePayRequest(data);
|
|
141
|
-
onOrderCreated === null || onOrderCreated === void 0 ? void 0 : onOrderCreated((
|
|
153
|
+
onOrderCreated === null || onOrderCreated === void 0 ? void 0 : onOrderCreated((_m = (_l = data.payment_options) === null || _l === void 0 ? void 0 : _l.order) === null || _m === void 0 ? void 0 : _m.id);
|
|
154
|
+
setApplePayRequestConfiguration({
|
|
155
|
+
BASE_URL: appService.getBaseUrl(),
|
|
156
|
+
headers: httpHeaders,
|
|
157
|
+
merchant: data.merchant
|
|
158
|
+
});
|
|
142
159
|
return [3, 9];
|
|
143
160
|
case 7:
|
|
144
|
-
err_1 =
|
|
161
|
+
err_1 = _o.sent();
|
|
145
162
|
onError === null || onError === void 0 ? void 0 : onError(err_1.errors || err_1);
|
|
146
163
|
return [3, 9];
|
|
147
164
|
case 8:
|
|
@@ -301,6 +318,7 @@ export var useApplePay = function (_a) {
|
|
|
301
318
|
loading: loading,
|
|
302
319
|
onApplePayButtonClicked: onApplePayButtonClicked,
|
|
303
320
|
disabled: !profileData || disabled || !applePayRequestData,
|
|
304
|
-
applePayRequestData: applePayRequestData
|
|
321
|
+
applePayRequestData: applePayRequestData,
|
|
322
|
+
applePayRequestConfiguration: applePayRequestConfiguration
|
|
305
323
|
};
|
|
306
324
|
};
|
package/build/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ApplePayButtonProps, ApplePayButton } from './features/ApplePayButton';
|
|
1
|
+
import { ApplePayButtonProps, ApplePayButton, ApplePayRequestData } from './features/ApplePayButton';
|
|
2
2
|
import { ThemeMode, Scope, SupportedNetworks, Environment, Locale, ButtonType, Edges, MerchantCapabilities } from './constants';
|
|
3
|
-
export type { ApplePayButtonProps };
|
|
3
|
+
export type { ApplePayButtonProps, ApplePayRequestData };
|
|
4
4
|
export { ApplePayButton, ThemeMode, Scope, SupportedNetworks, Environment, Locale, ButtonType, Edges, MerchantCapabilities };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ApplePayButtonProps } from '../@types';
|
|
2
2
|
export declare const getDefaultValues: (mainObject: ApplePayButtonProps) => {
|
|
3
3
|
interface: {
|
|
4
4
|
locale?: "en" | "ar" | "dynamic" | undefined;
|
|
@@ -56,7 +56,7 @@ export declare const getDefaultValues: (mainObject: ApplePayButtonProps) => {
|
|
|
56
56
|
onCancel?: (() => void) | undefined;
|
|
57
57
|
onError?: ((error: any) => void) | undefined;
|
|
58
58
|
onSuccess?: ((data: Record<string, any>) => void) | undefined;
|
|
59
|
-
onClick?: ((data?:
|
|
59
|
+
onClick?: ((data?: import("../@types").ApplePayDataToLunchSDKFromMerchantSide | undefined) => void) | undefined;
|
|
60
60
|
onReady?: (() => void) | undefined;
|
|
61
61
|
metaData?: import("../@types").MetaData | undefined;
|
|
62
62
|
debug?: boolean | undefined;
|