@alipay/ams-checkout 2.0.19 → 2.0.21
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/ams-checkout.js +3 -3
- package/dist/ams-checkout.min.js +1 -1
- package/esm/config/index.d.ts +7 -0
- package/esm/config/index.js +2 -2
- package/esm/constant/element.d.ts +2 -1
- package/esm/constant/element.js +1 -0
- package/esm/constant/index.d.ts +4 -21
- package/esm/core/component/ckp/index.d.ts +1 -1
- package/esm/core/component/ckp/index.js +5 -2
- package/esm/core/component/element/elementController/index.d.ts +3 -3
- package/esm/core/component/element/elementController/index.js +66 -42
- package/esm/core/component/element/elementProcessor/baseElementProcessor.d.ts +1 -0
- package/esm/core/component/element/elementProcessor/baseElementProcessor.js +1 -0
- package/esm/core/component/element/elementProcessor/convertPaymentMethods.d.ts +22 -0
- package/esm/core/component/element/elementProcessor/convertPaymentMethods.js +159 -0
- package/esm/core/component/element/elementProcessor/paymentProcessor.d.ts +5 -0
- package/esm/core/component/element/elementProcessor/paymentProcessor.js +107 -29
- package/esm/core/component/element/index.d.ts +4 -1
- package/esm/core/component/element/index.js +19 -4
- package/esm/core/component/element/mock.js +2 -2
- package/esm/core/component/element/modernElementController/adapter.d.ts +19 -0
- package/esm/core/component/element/modernElementController/adapter.js +79 -0
- package/esm/core/component/element/modernElementController/index.d.ts +155 -0
- package/esm/core/component/element/modernElementController/index.js +1780 -0
- package/esm/core/component/element/type.d.ts +74 -19
- package/esm/core/component/element/util.d.ts +9 -2
- package/esm/core/component/element/util.js +3 -2
- package/esm/core/instance/index.d.ts +12 -4
- package/esm/core/instance/index.js +152 -26
- package/esm/foundation/service/event-center.js +1 -1
- package/esm/foundation/service/security/index.d.ts +9 -4
- package/esm/foundation/service/security/index.js +158 -35
- package/esm/foundation/service/security/security.d.ts +22 -1
- package/esm/foundation/service/security/security.js +150 -37
- package/esm/foundation/utils/preload_helper.d.ts +6 -3
- package/esm/foundation/utils/preload_helper.js +122 -32
- package/esm/main.js +4 -4
- package/esm/modern/global.d.ts +3 -0
- package/esm/modern/index.d.ts +5 -1
- package/esm/modern/index.js +1 -51
- package/esm/modern/tools.js +1 -0
- package/esm/plugin/component/channel.d.ts +2 -2
- package/esm/plugin/component/channel.js +18 -18
- package/esm/plugin/component/index.js +36 -29
- package/esm/tsdoc-metadata.json +1 -1
- package/esm/types/index.d.ts +5 -1
- package/esm/util/beforeConfirm.d.ts +4 -2
- package/esm/util/beforeConfirm.js +15 -14
- package/esm/util/jshield-apdid/apdid-loader.js +377 -0
- package/esm/util/jshield-apdid/index.js +21 -0
- package/esm/util/logger.js +1 -2
- package/esm/util/security-registry.d.ts +72 -0
- package/esm/util/security-registry.js +175 -0
- package/esm/util/security.d.ts +22 -1
- package/esm/util/security.js +150 -39
- package/package.json +15 -9
- package/types.d.ts +843 -1103
- package/types.untrimmed.d.ts +995 -1122
- package/esm/modern/stageName.d.ts +0 -3
- package/esm/modern/stageName.js +0 -1
|
@@ -32,7 +32,7 @@ export declare class ApplePaySdk {
|
|
|
32
32
|
*/
|
|
33
33
|
private paymentStatus;
|
|
34
34
|
/**
|
|
35
|
-
* @description oncancel 原因标记,用于区分用户主动取消 vs 商户通过 onBeforeConfirm
|
|
35
|
+
* @description oncancel 原因标记,用于区分用户主动取消 vs 商户通过 onBeforeConfirm 中止/超时
|
|
36
36
|
*/
|
|
37
37
|
private cancelReason;
|
|
38
38
|
private logger;
|
|
@@ -40,7 +40,7 @@ export declare class ApplePaySdk {
|
|
|
40
40
|
private shipping?;
|
|
41
41
|
private merchantAmount;
|
|
42
42
|
private merchantCurrency;
|
|
43
|
-
private onBeforeConfirm
|
|
43
|
+
private onBeforeConfirm;
|
|
44
44
|
constructor({ paymentSessionData, parseData, logger, env, shipping, merchantAmount, merchantCurrency, }: {
|
|
45
45
|
paymentSessionData: string;
|
|
46
46
|
parseData: IPaymentSessionMetaData;
|
|
@@ -17,7 +17,7 @@ import { getDoubleFaUrlFromSession } from "../../foundation/utils/web_app_url_ut
|
|
|
17
17
|
import { getApplePayPaymentSession, submitPayInfo } from "../../service";
|
|
18
18
|
import { EnvironmentEnum } from "../../types";
|
|
19
19
|
import { device, isEmpty } from "../../util";
|
|
20
|
-
import { executeWithTimeout, BEFORE_CONFIRM_TIMEOUT_MS } from "../../util/beforeConfirm";
|
|
20
|
+
import { executeWithTimeout, BEFORE_CONFIRM_TIMEOUT_MS, MERCHANT_CONFIRM_ABORT_CODE, MERCHANT_CONFIRM_TIMEOUT_CODE } from "../../util/beforeConfirm";
|
|
21
21
|
import { APPLE_PAY_RECURRING_VERSION, APPLE_PAY_VERSION } from "../applepay/interface";
|
|
22
22
|
var APPLEPAYERRORENUM = /*#__PURE__*/function (APPLEPAYERRORENUM) {
|
|
23
23
|
APPLEPAYERRORENUM["APPLE_PAY_MISSING_DATA"] = "APPLE_PAY_MISSING_DATA";
|
|
@@ -155,7 +155,7 @@ export var ApplePaySdk = /*#__PURE__*/function () {
|
|
|
155
155
|
*/
|
|
156
156
|
_defineProperty(this, "paymentStatus", void 0);
|
|
157
157
|
/**
|
|
158
|
-
* @description oncancel 原因标记,用于区分用户主动取消 vs 商户通过 onBeforeConfirm
|
|
158
|
+
* @description oncancel 原因标记,用于区分用户主动取消 vs 商户通过 onBeforeConfirm 中止/超时
|
|
159
159
|
*/
|
|
160
160
|
_defineProperty(this, "cancelReason", null);
|
|
161
161
|
_defineProperty(this, "logger", void 0);
|
|
@@ -163,7 +163,7 @@ export var ApplePaySdk = /*#__PURE__*/function () {
|
|
|
163
163
|
_defineProperty(this, "shipping", void 0);
|
|
164
164
|
_defineProperty(this, "merchantAmount", void 0);
|
|
165
165
|
_defineProperty(this, "merchantCurrency", void 0);
|
|
166
|
-
_defineProperty(this, "onBeforeConfirm",
|
|
166
|
+
_defineProperty(this, "onBeforeConfirm", null);
|
|
167
167
|
this.paymentSessionData = paymentSessionData;
|
|
168
168
|
this.parseData = parseData;
|
|
169
169
|
this.env = env;
|
|
@@ -213,6 +213,7 @@ export var ApplePaySdk = /*#__PURE__*/function () {
|
|
|
213
213
|
try {
|
|
214
214
|
if (!_this.session) return;
|
|
215
215
|
_this.paymentStatus = PAYMENT_STATUS.PENDING;
|
|
216
|
+
_this.cancelReason = 'USER_CANCEL';
|
|
216
217
|
_this.session.onvalidatemerchant = /*#__PURE__*/function () {
|
|
217
218
|
var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(event) {
|
|
218
219
|
var requestParams, res, merchantSession, _this$logger, _this$logger2;
|
|
@@ -282,7 +283,7 @@ export var ApplePaySdk = /*#__PURE__*/function () {
|
|
|
282
283
|
}();
|
|
283
284
|
_this.session.onpaymentauthorized = /*#__PURE__*/function () {
|
|
284
285
|
var _ref3 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3(event) {
|
|
285
|
-
var exception, _event$payment, token, billingContact, shippingContact, _this$parseData, obj, _this$parseData$payme, requiredBillingContactFields, requiredShippingContactFields, _this$logger3, _this$logger4, _this$logger6, startTime, _yield$executeWithTim, rawResult, timedOut, shouldContinue, _this$logger5, _this$session2, _this$session2$comple, _this$logger7, _this$session3, _this$session3$comple, res, _this$logger8;
|
|
286
|
+
var exception, _event$payment, token, billingContact, shippingContact, _this$parseData, obj, _this$parseData$payme, requiredBillingContactFields, requiredShippingContactFields, _this$logger3, _this$logger4, _this$logger6, startTime, _yield$executeWithTim, rawResult, timedOut, shouldContinue, isTimeout, _this$logger5, _this$session2, _this$session2$comple, _this$logger7, _this$session3, _this$session3$comple, res, _this$logger8;
|
|
286
287
|
return _regeneratorRuntime().wrap(function _callee3$(_context3) {
|
|
287
288
|
while (1) switch (_context3.prev = _context3.next) {
|
|
288
289
|
case 0:
|
|
@@ -323,26 +324,25 @@ export var ApplePaySdk = /*#__PURE__*/function () {
|
|
|
323
324
|
_context3.next = 39;
|
|
324
325
|
break;
|
|
325
326
|
case 11:
|
|
326
|
-
// 清空回原始状态
|
|
327
|
-
_this.cancelReason = 'USER_CANCEL';
|
|
328
327
|
(_this$logger4 = _this.logger) === null || _this$logger4 === void 0 || _this$logger4.logInfo({
|
|
329
328
|
title: 'sdk_before_confirm_start'
|
|
330
329
|
}, {
|
|
331
330
|
paymentMethodType: 'APPLEPAY',
|
|
332
331
|
path: 'applePay_chrome_sdk'
|
|
333
332
|
});
|
|
334
|
-
_context3.prev =
|
|
333
|
+
_context3.prev = 12;
|
|
335
334
|
startTime = Date.now();
|
|
336
|
-
_context3.next =
|
|
335
|
+
_context3.next = 16;
|
|
337
336
|
return executeWithTimeout(function () {
|
|
338
337
|
return _this.onBeforeConfirm();
|
|
339
338
|
});
|
|
340
|
-
case
|
|
339
|
+
case 16:
|
|
341
340
|
_yield$executeWithTim = _context3.sent;
|
|
342
341
|
rawResult = _yield$executeWithTim.result;
|
|
343
342
|
timedOut = _yield$executeWithTim.timedOut;
|
|
344
343
|
shouldContinue = rawResult;
|
|
345
|
-
|
|
344
|
+
isTimeout = timedOut || Date.now() - startTime >= BEFORE_CONFIRM_TIMEOUT_MS;
|
|
345
|
+
if (isTimeout) {
|
|
346
346
|
(_this$logger5 = _this.logger) === null || _this$logger5 === void 0 || _this$logger5.logError({
|
|
347
347
|
title: 'sdk_before_confirm_timeout'
|
|
348
348
|
});
|
|
@@ -357,11 +357,11 @@ export var ApplePaySdk = /*#__PURE__*/function () {
|
|
|
357
357
|
_context3.next = 29;
|
|
358
358
|
break;
|
|
359
359
|
}
|
|
360
|
-
_this.cancelReason = 'MERCHANT_ABORT';
|
|
360
|
+
_this.cancelReason = isTimeout ? 'MERCHANT_TIMEOUT' : 'MERCHANT_ABORT';
|
|
361
361
|
(_this$session2 = _this.session) === null || _this$session2 === void 0 || (_this$session2$comple = _this$session2.completePayment) === null || _this$session2$comple === void 0 || _this$session2$comple.call(_this$session2, window.ApplePaySession.STATUS_FAILURE);
|
|
362
362
|
_this.abortSession();
|
|
363
363
|
reject({
|
|
364
|
-
errorCode:
|
|
364
|
+
errorCode: isTimeout ? MERCHANT_CONFIRM_TIMEOUT_CODE : MERCHANT_CONFIRM_ABORT_CODE
|
|
365
365
|
});
|
|
366
366
|
return _context3.abrupt("return");
|
|
367
367
|
case 29:
|
|
@@ -369,7 +369,7 @@ export var ApplePaySdk = /*#__PURE__*/function () {
|
|
|
369
369
|
break;
|
|
370
370
|
case 31:
|
|
371
371
|
_context3.prev = 31;
|
|
372
|
-
_context3.t0 = _context3["catch"](
|
|
372
|
+
_context3.t0 = _context3["catch"](12);
|
|
373
373
|
(_this$logger7 = _this.logger) === null || _this$logger7 === void 0 || _this$logger7.logError({
|
|
374
374
|
title: 'sdk_before_confirm_error'
|
|
375
375
|
}, {
|
|
@@ -381,7 +381,7 @@ export var ApplePaySdk = /*#__PURE__*/function () {
|
|
|
381
381
|
(_this$session3 = _this.session) === null || _this$session3 === void 0 || (_this$session3$comple = _this$session3.completePayment) === null || _this$session3$comple === void 0 || _this$session3$comple.call(_this$session3, window.ApplePaySession.STATUS_FAILURE);
|
|
382
382
|
_this.abortSession();
|
|
383
383
|
reject({
|
|
384
|
-
errorCode:
|
|
384
|
+
errorCode: MERCHANT_CONFIRM_ABORT_CODE
|
|
385
385
|
});
|
|
386
386
|
return _context3.abrupt("return");
|
|
387
387
|
case 39:
|
|
@@ -402,7 +402,7 @@ export var ApplePaySdk = /*#__PURE__*/function () {
|
|
|
402
402
|
case "end":
|
|
403
403
|
return _context3.stop();
|
|
404
404
|
}
|
|
405
|
-
}, _callee3, null, [[
|
|
405
|
+
}, _callee3, null, [[12, 31]]);
|
|
406
406
|
}));
|
|
407
407
|
return function (_x2) {
|
|
408
408
|
return _ref3.apply(this, arguments);
|
|
@@ -420,10 +420,10 @@ export var ApplePaySdk = /*#__PURE__*/function () {
|
|
|
420
420
|
title: 'a3753.b103030.c386485.d507498'
|
|
421
421
|
});
|
|
422
422
|
}
|
|
423
|
-
// cancelReason
|
|
424
|
-
|
|
423
|
+
// cancelReason 标识 onBeforeConfirm 主动中止/超时;其他情况视为用户主动取消付款界面
|
|
424
|
+
var merchantCancelErrorCode = _this.cancelReason === 'MERCHANT_TIMEOUT' ? MERCHANT_CONFIRM_TIMEOUT_CODE : MERCHANT_CONFIRM_ABORT_CODE;
|
|
425
425
|
reject({
|
|
426
|
-
errorCode: _this.cancelReason === 'MERCHANT_ABORT'
|
|
426
|
+
errorCode: _this.cancelReason === 'MERCHANT_ABORT' || _this.cancelReason === 'MERCHANT_TIMEOUT' ? merchantCancelErrorCode : APPLEPAYERRORENUM.APPLE_PAY_CANCEL
|
|
427
427
|
});
|
|
428
428
|
};
|
|
429
429
|
_this.session.begin();
|
|
@@ -156,24 +156,28 @@ var ComponentApp = /*#__PURE__*/function () {
|
|
|
156
156
|
var securitySDK = this.AMSSDK._getSecuritySDKByProductScene({
|
|
157
157
|
product: product
|
|
158
158
|
});
|
|
159
|
-
if (
|
|
160
|
-
|
|
161
|
-
|
|
159
|
+
if (securitySDK) {
|
|
160
|
+
// Already ready
|
|
161
|
+
return;
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
// Use _newSecuritySDKByScene which handles loading/ready/failed states internally
|
|
165
|
+
this.AMSSDK.logger.logInfo({
|
|
166
|
+
title: 'sdk_event_securitySdkInit'
|
|
167
|
+
});
|
|
168
|
+
this.AMSSDK._newSecuritySDKByScene({
|
|
169
|
+
product: product
|
|
170
|
+
}, function () {
|
|
171
|
+
_this.AMSSDK.logger.logInfo({
|
|
172
|
+
title: 'sdk_event_securitySdkInitSuccess'
|
|
162
173
|
});
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
});
|
|
169
|
-
}, function () {
|
|
170
|
-
_this.AMSSDK.logger.logError({
|
|
171
|
-
title: 'sdk_error_securitySdkInitFailed'
|
|
172
|
-
}, {
|
|
173
|
-
sign: 'SDK internal initialization'
|
|
174
|
-
});
|
|
174
|
+
}, function () {
|
|
175
|
+
_this.AMSSDK.logger.logError({
|
|
176
|
+
title: 'sdk_error_securitySdkInitFailed'
|
|
177
|
+
}, {
|
|
178
|
+
sign: 'SDK internal initialization'
|
|
175
179
|
});
|
|
176
|
-
}
|
|
180
|
+
});
|
|
177
181
|
}
|
|
178
182
|
}, {
|
|
179
183
|
key: "logDeviceId",
|
|
@@ -208,36 +212,39 @@ var ComponentApp = /*#__PURE__*/function () {
|
|
|
208
212
|
while (1) switch (_context.prev = _context.next) {
|
|
209
213
|
case 0:
|
|
210
214
|
productScene = (_this2$_renderParams = _this2._renderParams) === null || _this2$_renderParams === void 0 || (_this2$_renderParams = _this2$_renderParams.paymentSessionMetaData) === null || _this2$_renderParams === void 0 || (_this2$_renderParams = _this2$_renderParams.paymentSessionConfig) === null || _this2$_renderParams === void 0 ? void 0 : _this2$_renderParams.productScene;
|
|
211
|
-
getDeviceIdStartTime = Date.now();
|
|
212
|
-
|
|
215
|
+
getDeviceIdStartTime = Date.now(); // Use async version to handle loading state
|
|
216
|
+
_context.next = 4;
|
|
217
|
+
return _this2.AMSSDK._awaitSecuritySDKByProductScene({
|
|
213
218
|
product: (deviceIdParameter === null || deviceIdParameter === void 0 ? void 0 : deviceIdParameter.productScene) || productScene
|
|
214
219
|
});
|
|
220
|
+
case 4:
|
|
221
|
+
securitySDK = _context.sent;
|
|
215
222
|
deviceId = '';
|
|
216
223
|
if (!securitySDK) {
|
|
217
|
-
_context.next =
|
|
224
|
+
_context.next = 18;
|
|
218
225
|
break;
|
|
219
226
|
}
|
|
220
227
|
if (!(isPolling && parseInt(deviceIdParameter === null || deviceIdParameter === void 0 ? void 0 : deviceIdParameter.tokenCollectTime) > 0)) {
|
|
221
|
-
_context.next =
|
|
228
|
+
_context.next = 13;
|
|
222
229
|
break;
|
|
223
230
|
}
|
|
224
|
-
_context.next =
|
|
231
|
+
_context.next = 10;
|
|
225
232
|
return securitySDK.pollingGetApdidToken(deviceIdParameter);
|
|
226
|
-
case
|
|
233
|
+
case 10:
|
|
227
234
|
_context.t0 = _context.sent;
|
|
228
|
-
_context.next =
|
|
235
|
+
_context.next = 16;
|
|
229
236
|
break;
|
|
230
|
-
case 11:
|
|
231
|
-
_context.next = 13;
|
|
232
|
-
return securitySDK.getApdidToken();
|
|
233
237
|
case 13:
|
|
238
|
+
_context.next = 15;
|
|
239
|
+
return securitySDK.getApdidToken();
|
|
240
|
+
case 15:
|
|
234
241
|
_context.t0 = _context.sent;
|
|
235
|
-
case
|
|
242
|
+
case 16:
|
|
236
243
|
deviceId = _context.t0;
|
|
237
244
|
_this2.logDeviceId(deviceId, getDeviceIdStartTime);
|
|
238
|
-
case
|
|
245
|
+
case 18:
|
|
239
246
|
resolve(deviceId);
|
|
240
|
-
case
|
|
247
|
+
case 19:
|
|
241
248
|
case "end":
|
|
242
249
|
return _context.stop();
|
|
243
250
|
}
|
package/esm/tsdoc-metadata.json
CHANGED
package/esm/types/index.d.ts
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
import type { AxiosHeaderValue } from 'axios';
|
|
9
9
|
import { IApplePayContactField } from '../plugin/applepay/interface';
|
|
10
10
|
export type onChange = () => onCnageResult;
|
|
11
|
-
export {
|
|
11
|
+
export { ElementType, PaymentElementLayout, ThemeType, type IElementOptions } from '../core/component/element/type';
|
|
12
12
|
interface onCnageResult {
|
|
13
13
|
complete: boolean;
|
|
14
14
|
addressValue: AddressItem[];
|
|
@@ -40,6 +40,7 @@ export interface IoptionsParams {
|
|
|
40
40
|
networkMode?: string;
|
|
41
41
|
mode?: string;
|
|
42
42
|
securityRegion?: 'US' | 'SG' | 'DE';
|
|
43
|
+
preview?: boolean | 'web' | 'mobile';
|
|
43
44
|
}
|
|
44
45
|
export interface ValidationResult {
|
|
45
46
|
isValid: boolean;
|
|
@@ -126,6 +127,7 @@ export interface IcreateComponent {
|
|
|
126
127
|
isAppWebview?: boolean;
|
|
127
128
|
merchantAppointParam?: IMerchantAppointParam;
|
|
128
129
|
isNativeAppWebview?: boolean;
|
|
130
|
+
isDemoMode?: boolean;
|
|
129
131
|
}
|
|
130
132
|
export interface IappendIframeNodesParams extends IcreateComponent {
|
|
131
133
|
paymentSessionMetaData: IPaymentSessionMetaData;
|
|
@@ -352,6 +354,7 @@ export interface IPaymentSessionMetaData {
|
|
|
352
354
|
};
|
|
353
355
|
skipRenderPaymentMethod?: boolean;
|
|
354
356
|
needAccountConfirmPage?: boolean;
|
|
357
|
+
modernWeb?: boolean;
|
|
355
358
|
}
|
|
356
359
|
export interface IPaymentSessionFactor {
|
|
357
360
|
merchantInfo?: IMerchantInfo;
|
|
@@ -810,6 +813,7 @@ export interface IPaymentMethod {
|
|
|
810
813
|
applePayProps?: {
|
|
811
814
|
paymentRequest: ApplePayPaymentRequest;
|
|
812
815
|
};
|
|
816
|
+
googlePayProps?: any;
|
|
813
817
|
};
|
|
814
818
|
interActionType?: InterActionTypeEnum;
|
|
815
819
|
recommend?: boolean;
|
|
@@ -1,9 +1,11 @@
|
|
|
1
|
-
export declare const BEFORE_CONFIRM_TIMEOUT_MS =
|
|
1
|
+
export declare const BEFORE_CONFIRM_TIMEOUT_MS = 20000;
|
|
2
|
+
export declare const MERCHANT_CONFIRM_ABORT_CODE = "MERCHANT_CONFIRM_ABORT";
|
|
3
|
+
export declare const MERCHANT_CONFIRM_TIMEOUT_CODE = "MERCHANT_CONFIRM_TIMEOUT";
|
|
2
4
|
/**
|
|
3
5
|
* 带超时的异步执行,始终清理定时器避免 unhandled promise rejection。
|
|
4
6
|
*
|
|
5
7
|
* @param fn - 要执行的异步函数
|
|
6
|
-
* @param timeoutMs - 超时时间(毫秒),默认
|
|
8
|
+
* @param timeoutMs - 超时时间(毫秒),默认 20000
|
|
7
9
|
* @returns result 为 fn 的返回值(超时时为 undefined),timedOut 表示是否因超时返回
|
|
8
10
|
*/
|
|
9
11
|
export declare function executeWithTimeout<T>(fn: () => Promise<T>, timeoutMs?: number): Promise<{
|
|
@@ -2,13 +2,16 @@ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" ==
|
|
|
2
2
|
function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, ""); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: "normal", arg: t.call(e, r) }; } catch (t) { return { type: "throw", arg: t }; } } e.wrap = wrap; var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { ["next", "throw", "return"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if ("throw" !== c.type) { var u = c.arg, h = u.value; return h && "object" == _typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { invoke("next", t, i, a); }, function (t) { invoke("throw", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke("throw", t, i, a); }); } a(c.arg); } var r; o(this, "_invoke", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw new Error("Generator is already running"); if (o === s) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = f; var p = tryCatch(e, r, n); if ("normal" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, "throw" === n && e.iterator.return && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; var i = tryCatch(o, e.iterator, r.arg); if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || "" === e) { var r = e[a]; if (r) return r.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { return this; }), define(g, "toString", function () { return "[object Generator]"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return handle("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw new Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break; } } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, catch: function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw new Error("illegal catch attempt"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, "next" === this.method && (this.arg = t), y; } }, e; }
|
|
3
3
|
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
|
|
4
4
|
function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
|
|
5
|
-
export var BEFORE_CONFIRM_TIMEOUT_MS =
|
|
5
|
+
export var BEFORE_CONFIRM_TIMEOUT_MS = 20000;
|
|
6
|
+
export var MERCHANT_CONFIRM_ABORT_CODE = 'MERCHANT_CONFIRM_ABORT';
|
|
7
|
+
export var MERCHANT_CONFIRM_TIMEOUT_CODE = 'MERCHANT_CONFIRM_TIMEOUT';
|
|
8
|
+
var BEFORE_CONFIRM_TIMEOUT_SIGNAL = Symbol('BEFORE_CONFIRM_TIMEOUT');
|
|
6
9
|
|
|
7
10
|
/**
|
|
8
11
|
* 带超时的异步执行,始终清理定时器避免 unhandled promise rejection。
|
|
9
|
-
*
|
|
12
|
+
*
|
|
10
13
|
* @param fn - 要执行的异步函数
|
|
11
|
-
* @param timeoutMs - 超时时间(毫秒),默认
|
|
14
|
+
* @param timeoutMs - 超时时间(毫秒),默认 20000
|
|
12
15
|
* @returns result 为 fn 的返回值(超时时为 undefined),timedOut 表示是否因超时返回
|
|
13
16
|
*/
|
|
14
17
|
export function executeWithTimeout(_x) {
|
|
@@ -20,7 +23,6 @@ function _executeWithTimeout() {
|
|
|
20
23
|
timerId,
|
|
21
24
|
timeoutPromise,
|
|
22
25
|
result,
|
|
23
|
-
isTimeout,
|
|
24
26
|
_args = arguments;
|
|
25
27
|
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
26
28
|
while (1) switch (_context.prev = _context.next) {
|
|
@@ -28,7 +30,7 @@ function _executeWithTimeout() {
|
|
|
28
30
|
timeoutMs = _args.length > 1 && _args[1] !== undefined ? _args[1] : BEFORE_CONFIRM_TIMEOUT_MS;
|
|
29
31
|
timeoutPromise = new Promise(function (_, reject) {
|
|
30
32
|
timerId = setTimeout(function () {
|
|
31
|
-
return reject(
|
|
33
|
+
return reject(BEFORE_CONFIRM_TIMEOUT_SIGNAL);
|
|
32
34
|
}, timeoutMs);
|
|
33
35
|
});
|
|
34
36
|
_context.prev = 2;
|
|
@@ -43,26 +45,25 @@ function _executeWithTimeout() {
|
|
|
43
45
|
case 9:
|
|
44
46
|
_context.prev = 9;
|
|
45
47
|
_context.t0 = _context["catch"](2);
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
_context.next = 14;
|
|
48
|
+
if (!(_context.t0 === BEFORE_CONFIRM_TIMEOUT_SIGNAL)) {
|
|
49
|
+
_context.next = 13;
|
|
49
50
|
break;
|
|
50
51
|
}
|
|
51
52
|
return _context.abrupt("return", {
|
|
52
53
|
result: undefined,
|
|
53
54
|
timedOut: true
|
|
54
55
|
});
|
|
55
|
-
case
|
|
56
|
+
case 13:
|
|
56
57
|
throw _context.t0;
|
|
57
|
-
case
|
|
58
|
-
_context.prev =
|
|
58
|
+
case 14:
|
|
59
|
+
_context.prev = 14;
|
|
59
60
|
clearTimeout(timerId);
|
|
60
|
-
return _context.finish(
|
|
61
|
-
case
|
|
61
|
+
return _context.finish(14);
|
|
62
|
+
case 17:
|
|
62
63
|
case "end":
|
|
63
64
|
return _context.stop();
|
|
64
65
|
}
|
|
65
|
-
}, _callee, null, [[2, 9,
|
|
66
|
+
}, _callee, null, [[2, 9, 14, 17]]);
|
|
66
67
|
}));
|
|
67
68
|
return _executeWithTimeout.apply(this, arguments);
|
|
68
69
|
}
|