@alipay/ams-checkout 1.23.0 → 1.24.0

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.
Files changed (124) hide show
  1. package/dist/umd/ams-checkout.min.js +1 -1
  2. package/esm/config/index.d.ts +7 -7
  3. package/esm/config/index.js +10 -10
  4. package/esm/constant/index.d.ts +6 -0
  5. package/esm/constant/index.js +8 -0
  6. package/esm/core/bus/ability/globalData.d.ts +10 -0
  7. package/esm/core/bus/ability/globalData.js +89 -0
  8. package/esm/core/bus/ability/request.d.ts +10 -0
  9. package/esm/core/bus/ability/request.js +151 -0
  10. package/esm/core/bus/interface.d.ts +12 -0
  11. package/esm/core/bus/interface.js +16 -2
  12. package/esm/core/component/address.d.ts +2 -2
  13. package/esm/core/component/appPreloadProcessing.js +2 -0
  14. package/esm/core/component/ckp/index.d.ts +3 -3
  15. package/esm/core/component/ckp/index.js +6 -5
  16. package/esm/core/component/element/components/address.d.ts +19 -0
  17. package/esm/core/component/element/components/address.js +68 -0
  18. package/esm/core/component/element/components/auth.d.ts +17 -0
  19. package/esm/core/component/element/components/auth.js +60 -0
  20. package/esm/core/component/element/components/payment.d.ts +19 -0
  21. package/esm/core/component/element/components/payment.js +74 -0
  22. package/esm/core/component/element/index.d.ts +47 -0
  23. package/esm/core/component/element/index.js +816 -0
  24. package/esm/core/component/element/mock.d.ts +4 -0
  25. package/esm/core/component/element/mock.js +491 -0
  26. package/esm/core/component/element/type.d.ts +184 -0
  27. package/esm/core/component/element/type.js +35 -0
  28. package/esm/core/component/element/utils.d.ts +13 -0
  29. package/esm/core/component/element/utils.js +6 -0
  30. package/esm/core/component/index.d.ts +5 -5
  31. package/esm/core/component/index.js +20 -16
  32. package/esm/core/drop-in/index.d.ts +2 -2
  33. package/esm/core/drop-in/index.js +2 -2
  34. package/esm/core/instance/index.d.ts +5 -5
  35. package/esm/core/instance/index.js +11 -10
  36. package/esm/foundation/core/index.d.ts +26 -0
  37. package/esm/foundation/core/index.js +301 -0
  38. package/esm/foundation/index.d.ts +72 -0
  39. package/esm/foundation/index.js +42 -0
  40. package/esm/foundation/product-processor/easysafepay/deps.d.ts +15 -0
  41. package/esm/foundation/product-processor/easysafepay/deps.js +9 -0
  42. package/esm/foundation/product-processor/easysafepay/index.d.ts +26 -0
  43. package/esm/foundation/product-processor/easysafepay/index.js +536 -0
  44. package/esm/foundation/service/container/index.d.ts +28 -0
  45. package/esm/foundation/service/container/index.js +256 -0
  46. package/esm/foundation/service/container/popup.d.ts +17 -0
  47. package/esm/foundation/service/container/popup.js +103 -0
  48. package/esm/foundation/service/container/utils.d.ts +7 -0
  49. package/esm/foundation/service/container/utils.js +48 -0
  50. package/esm/foundation/service/event-bus/ability/callback.d.ts +9 -0
  51. package/esm/foundation/service/event-bus/ability/callback.js +55 -0
  52. package/esm/foundation/service/event-bus/ability/globalData.d.ts +10 -0
  53. package/esm/foundation/service/event-bus/ability/globalData.js +89 -0
  54. package/esm/foundation/service/event-bus/ability/request.d.ts +10 -0
  55. package/esm/foundation/service/event-bus/ability/request.js +151 -0
  56. package/esm/foundation/service/event-bus/ability/security.d.ts +12 -0
  57. package/esm/foundation/service/event-bus/ability/security.js +151 -0
  58. package/esm/foundation/service/event-bus/ability/tracker.d.ts +9 -0
  59. package/esm/foundation/service/event-bus/ability/tracker.js +80 -0
  60. package/esm/foundation/service/event-bus/busManager.d.ts +127 -0
  61. package/esm/foundation/service/event-bus/busManager.js +398 -0
  62. package/esm/foundation/service/event-bus/index.d.ts +20 -0
  63. package/esm/foundation/service/event-bus/index.js +88 -0
  64. package/esm/foundation/service/event-center.d.ts +75 -0
  65. package/esm/foundation/service/event-center.js +244 -0
  66. package/esm/foundation/service/global-data/index.d.ts +11 -0
  67. package/esm/foundation/service/global-data/index.js +69 -0
  68. package/esm/foundation/service/index.d.ts +19 -0
  69. package/esm/foundation/service/index.js +82 -0
  70. package/esm/foundation/service/log/index.d.ts +43 -0
  71. package/esm/foundation/service/log/index.js +235 -0
  72. package/esm/foundation/service/log/types.d.ts +32 -0
  73. package/esm/foundation/service/log/types.js +1 -0
  74. package/esm/foundation/service/requester/deps.d.ts +17 -0
  75. package/esm/foundation/service/requester/deps.js +11 -0
  76. package/esm/foundation/service/requester/requester.d.ts +22 -0
  77. package/esm/foundation/service/requester/requester.js +211 -0
  78. package/esm/foundation/service/security/index.d.ts +26 -0
  79. package/esm/foundation/service/security/index.js +216 -0
  80. package/esm/{util → foundation/service/security}/security.d.ts +2 -2
  81. package/esm/{util → foundation/service/security}/security.js +3 -3
  82. package/esm/foundation/types/index.d.ts +4 -0
  83. package/esm/foundation/types/index.js +4 -0
  84. package/esm/foundation/utils/gray_scale_utils.d.ts +7 -0
  85. package/esm/foundation/utils/gray_scale_utils.js +40 -0
  86. package/esm/foundation/utils/payment_context_utils.d.ts +13 -0
  87. package/esm/foundation/utils/payment_context_utils.js +57 -0
  88. package/esm/foundation/utils/redirect_utils.d.ts +6 -0
  89. package/esm/foundation/utils/redirect_utils.js +99 -0
  90. package/esm/foundation/utils/system_events.d.ts +4 -0
  91. package/esm/foundation/utils/system_events.js +71 -0
  92. package/esm/foundation/utils/web_app_url_utils.d.ts +37 -0
  93. package/esm/foundation/utils/web_app_url_utils.js +97 -0
  94. package/esm/index.d.ts +16 -10
  95. package/esm/index.js +70 -59
  96. package/esm/plugin/applepay/component.js +3 -3
  97. package/esm/plugin/applepay/service.d.ts +2 -2
  98. package/esm/plugin/applepay/service.js +2 -2
  99. package/esm/plugin/component/cashierApp.d.ts +7 -5
  100. package/esm/plugin/component/cashierApp.js +16 -8
  101. package/esm/plugin/component/channel.d.ts +4 -4
  102. package/esm/plugin/component/component.inline.style.d.ts +4 -4
  103. package/esm/plugin/component/component.inline.style.js +10 -7
  104. package/esm/plugin/component/component.popup.style.d.ts +15 -6
  105. package/esm/plugin/component/component.popup.style.js +33 -15
  106. package/esm/plugin/component/index.d.ts +8 -7
  107. package/esm/plugin/component/index.js +153 -98
  108. package/esm/plugin/const.js +5 -5
  109. package/esm/plugin/drop-in/index.d.ts +5 -5
  110. package/esm/plugin/drop-in/index.js +7 -7
  111. package/esm/plugin/payment-element/utils.d.ts +1 -1
  112. package/esm/plugin/payment-element/utils.js +2 -1
  113. package/esm/plugin/type.d.ts +4 -4
  114. package/esm/service/element.d.ts +4 -0
  115. package/esm/service/element.js +51 -0
  116. package/esm/service/index.d.ts +1 -0
  117. package/esm/service/index.js +2 -0
  118. package/esm/types/index.d.ts +240 -38
  119. package/esm/types/index.js +103 -59
  120. package/esm/util/createIframeNode.d.ts +2 -2
  121. package/esm/util/createIframeNode.js +3 -3
  122. package/esm/util/index.d.ts +1 -1
  123. package/esm/util/index.js +3 -4
  124. package/package.json +2 -1
@@ -0,0 +1,235 @@
1
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
2
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
3
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
4
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
5
+ function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
6
+ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
7
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
8
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
9
+ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
10
+ import { EnvironmentEnum } from "../../../types";
11
+ import { isPC } from "../../../util";
12
+ import { getStorageString, setStorageString } from "../../../util/storage";
13
+
14
+ /**
15
+ * @author 谦彧 <zhangmian.zm@alipay.com>
16
+ * @date 2024/9/18
17
+ */
18
+
19
+ export var LogService = /*#__PURE__*/function () {
20
+ function LogService() {
21
+ _classCallCheck(this, LogService);
22
+ _defineProperty(this, "instanceId", void 0);
23
+ _defineProperty(this, "logs", void 0);
24
+ _defineProperty(this, "config", void 0);
25
+ _defineProperty(this, "debug", void 0);
26
+ // It will use to calc the timing from component creating/mounting for each event.
27
+ _defineProperty(this, "componentStartTime", void 0);
28
+ _defineProperty(this, "isLoaded", void 0);
29
+ _defineProperty(this, "trackId", void 0);
30
+ }
31
+ _createClass(LogService, [{
32
+ key: "init",
33
+ value: function init(initOptions, instanceId, sdkMetaData) {
34
+ this.logs = [];
35
+ this.config = LogConfig;
36
+ this.debug = ![EnvironmentEnum.prod, EnvironmentEnum.sandbox].includes(initOptions === null || initOptions === void 0 ? void 0 : initOptions.environment);
37
+ this.componentStartTime = 0;
38
+ this.isLoaded = false;
39
+ var deviceId = getStorageString('AMSSDK_STORAGE_ID');
40
+ if (!deviceId) {
41
+ deviceId = instanceId;
42
+ setStorageString('AMSSDK_STORAGE_ID', deviceId);
43
+ }
44
+ this.setMetaData({
45
+ instanceId: instanceId,
46
+ // use to identify a device, named from deprecated SDK
47
+ storageId: deviceId,
48
+ sdkVersion: sdkMetaData.sdkVersion,
49
+ webAppVersion: sdkMetaData.webAppVersion,
50
+ productScene: sdkMetaData.productScene,
51
+ trackId: instanceId,
52
+ platform: isPC() ? 'PC' : 'WAP'
53
+ });
54
+ this.initTracker();
55
+ this.setComponentStartTime(Date.now());
56
+ this.logInfo({
57
+ title: 'NEW_AMSSDK_BY_MECHANT',
58
+ msg: "".concat(initOptions === null || initOptions === void 0 ? void 0 : initOptions.environment, "_").concat(initOptions === null || initOptions === void 0 ? void 0 : initOptions.locale)
59
+ }).send();
60
+ }
61
+ }, {
62
+ key: "update",
63
+ value: function update(paymentContext) {
64
+ var _paymentContext$payme, _paymentContext$payme2, _paymentContext$payme3, _paymentContext$payme4;
65
+ this.setComponentStartTime(Date.now());
66
+ this.setMetaData({
67
+ firstLogTime: this.componentStartTime,
68
+ renderDisplayType: paymentContext.displayInfo.type,
69
+ merchantId: paymentContext.paymentSessionObj.clientId,
70
+ productScene: (_paymentContext$payme = paymentContext.paymentSessionObj.paymentSessionConfig) === null || _paymentContext$payme === void 0 ? void 0 : _paymentContext$payme.productScene,
71
+ productSceneVersion: (_paymentContext$payme2 = paymentContext.paymentSessionObj.paymentSessionConfig) === null || _paymentContext$payme2 === void 0 ? void 0 : _paymentContext$payme2.productSceneVersion,
72
+ paymentMethodType: (_paymentContext$payme3 = paymentContext.paymentSessionObj.paymentMethodInfoView) === null || _paymentContext$payme3 === void 0 ? void 0 : _paymentContext$payme3.paymentMethodType,
73
+ paymentMethodCategoryType: (_paymentContext$payme4 = paymentContext.paymentSessionObj.paymentSessionConfig) === null || _paymentContext$payme4 === void 0 ? void 0 : _paymentContext$payme4.paymentMethodCategoryType,
74
+ trackId: paymentContext.paymentSessionId
75
+ });
76
+ }
77
+ }, {
78
+ key: "destroy",
79
+ value: function destroy() {}
80
+ }, {
81
+ key: "setMetaData",
82
+ value: function setMetaData(metaData) {
83
+ var _window,
84
+ _this = this;
85
+ this.config.mdata = Object.assign(this.config.mdata, metaData);
86
+ if ((_window = window) !== null && _window !== void 0 && _window.iTracker) {
87
+ var _window2;
88
+ (_window2 = window) === null || _window2 === void 0 || (_window2 = _window2.iTracker) === null || _window2 === void 0 || _window2.set({
89
+ mdata: this.config.mdata
90
+ });
91
+ setTimeout(function () {
92
+ _this.reportLogs();
93
+ }, 80);
94
+ } else {
95
+ this.initTracker();
96
+ }
97
+ }
98
+ }, {
99
+ key: "getLogConfig",
100
+ value: function getLogConfig() {
101
+ return this.config;
102
+ }
103
+ }, {
104
+ key: "logError",
105
+ value: function logError(error, extra) {
106
+ return this.log('error', error, extra);
107
+ }
108
+ }, {
109
+ key: "logInfo",
110
+ value: function logInfo(info, extra) {
111
+ return this.log('info', info, extra);
112
+ }
113
+ }, {
114
+ key: "log",
115
+ value: function log(type, payload, extra) {
116
+ var now = Date.now();
117
+ var fsDuration = now - this.componentStartTime;
118
+ this.logs.push({
119
+ type: type,
120
+ logPayload: payload,
121
+ extra: _objectSpread(_objectSpread({}, extra), {}, {
122
+ fsDuration: fsDuration,
123
+ timeStamp: now
124
+ })
125
+ });
126
+ if (this.debug) {
127
+ console.log(payload);
128
+ }
129
+ this.send();
130
+ return this;
131
+ }
132
+ }, {
133
+ key: "reportLogs",
134
+ value: function reportLogs() {
135
+ var _window3;
136
+ if (!((_window3 = window) !== null && _window3 !== void 0 && _window3.iTracker)) {
137
+ return;
138
+ }
139
+ var _window$iTracker = window.iTracker,
140
+ logError = _window$iTracker.logError,
141
+ logInfo = _window$iTracker.logInfo,
142
+ reportRPC = _window$iTracker.reportRPC;
143
+ var logs = this.logs;
144
+ while (logs.length > 0) {
145
+ try {
146
+ var log = logs.pop();
147
+ if (log.type === 'error') {
148
+ var _log$logPayload;
149
+ logError(log.logPayload, _objectSpread({
150
+ title: (_log$logPayload = log.logPayload) === null || _log$logPayload === void 0 ? void 0 : _log$logPayload.title
151
+ }, log === null || log === void 0 ? void 0 : log.extra));
152
+ } else if (log.type === 'info') {
153
+ var _log$logPayload2;
154
+ logInfo(log.logPayload, _objectSpread({
155
+ title: (_log$logPayload2 = log.logPayload) === null || _log$logPayload2 === void 0 ? void 0 : _log$logPayload2.title
156
+ }, log === null || log === void 0 ? void 0 : log.extra));
157
+ } else if (log.type === 'rpc') {
158
+ var _log$logPayload3;
159
+ reportRPC(log.logPayload, _objectSpread({
160
+ title: (_log$logPayload3 = log.logPayload) === null || _log$logPayload3 === void 0 ? void 0 : _log$logPayload3.title
161
+ }, log === null || log === void 0 ? void 0 : log.extra));
162
+ }
163
+ } catch (error) {
164
+ console.error('Error occurred while calling iTracker method:', error);
165
+ }
166
+ }
167
+ }
168
+ }, {
169
+ key: "loadScript",
170
+ value: function loadScript(url, callback) {
171
+ var script = document.createElement('script');
172
+ script.type = 'text/javascript';
173
+ script.src = url;
174
+ script.onload = callback;
175
+ script.onerror = function () {
176
+ console.error("unable to load Antom script: ".concat(url));
177
+ };
178
+ document.body.appendChild(script);
179
+ }
180
+ }, {
181
+ key: "initTracker",
182
+ value: function initTracker() {
183
+ var _this2 = this;
184
+ if (this.isLoaded) return;
185
+ this.isLoaded = true;
186
+ try {
187
+ if (typeof localStorage !== 'undefined') {
188
+ this.loadScript(this.config.scriptUrl, function () {
189
+ var _window4;
190
+ (_window4 = window) === null || _window4 === void 0 || _window4.iTracker.initiTracker(_this2.config);
191
+ setTimeout(function () {
192
+ _this2.reportLogs();
193
+ }, 80);
194
+ });
195
+ }
196
+ } catch (error) {
197
+ console.error('Failed to initialize iTracker:', error);
198
+ }
199
+ }
200
+ }, {
201
+ key: "send",
202
+ value: function send() {
203
+ var _window5;
204
+ if ((_window5 = window) !== null && _window5 !== void 0 && _window5.iTracker) {
205
+ this.reportLogs();
206
+ } else {
207
+ this.initTracker();
208
+ }
209
+ }
210
+ }, {
211
+ key: "setComponentStartTime",
212
+ value: function setComponentStartTime(val) {
213
+ this.componentStartTime = val;
214
+ }
215
+ }, {
216
+ key: "getComponentStartTime",
217
+ value: function getComponentStartTime() {
218
+ return this.componentStartTime;
219
+ }
220
+ }]);
221
+ return LogService;
222
+ }();
223
+ var LogConfig = {
224
+ scriptUrl: 'https://gw.alipayobjects.com/render/p/yuyan_npm/@alipay_intl-tracker/1.6.0/dist/common.min.js',
225
+ spmConfig: {},
226
+ batchCount: 1,
227
+ appId: 'antom_sdk',
228
+ server: 'https://imdap-sea.alipay.com/loggw/dwcookieLogGet.do',
229
+ bizType: 'antom_sdk',
230
+ productId: 'ANTOM_SDK',
231
+ version: 'iteration/20231021',
232
+ mdata: {
233
+ firstLogTime: Date.now()
234
+ }
235
+ };
@@ -0,0 +1,32 @@
1
+ /**
2
+ * @author 谦彧 <zhangmian.zm@alipay.com>
3
+ * @date 2024/9/18
4
+ */
5
+ export interface LogPayload {
6
+ title?: string;
7
+ msg?: string;
8
+ name?: string;
9
+ label?: string;
10
+ time?: number;
11
+ success?: boolean;
12
+ code?: string;
13
+ traceId?: string;
14
+ }
15
+ export type LogExtra = Record<string, any>;
16
+ export interface LogMetaData {
17
+ platform?: string;
18
+ sdkVersion?: string;
19
+ webAppVersion?: string;
20
+ firstLogTime?: number;
21
+ fsDuration?: number;
22
+ instanceId?: string;
23
+ storageId?: string;
24
+ renderDisplayType?: string;
25
+ merchantId?: string;
26
+ productScene?: string;
27
+ productSceneVersion?: string;
28
+ paymentMethodType?: string;
29
+ paymentMethodCategoryType?: string;
30
+ requestSeq?: string;
31
+ trackId?: string;
32
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,17 @@
1
+ /**
2
+ * 这个文件暂时先用来存放架构升级时不稳定的依赖。
3
+ * 以及方便单测时mock外部依赖
4
+ */
5
+ export type { SDKMetaData } from "../..";
6
+ export type { LogPayload, LogExtra } from '../log/types';
7
+ export type { LogService } from '../log';
8
+ export type { Service, PaymentContext } from '../../index';
9
+ export { fomatGetwayError } from '../../../request/utils';
10
+ export type { IOptionsParams, IPaymentSessionMetaData } from '../../../types';
11
+ export { sdkVersion } from '../../../config/index';
12
+ export { appId, hostSignMap, lightSandboxMap, requestHost, sofaId, tntInstId } from '../../../config/request';
13
+ export type { RequestConfig } from '../../../types';
14
+ export { errorEnum } from '../../../types';
15
+ export { get } from '../../../util/get';
16
+ export { device, isPC, queryParse, safeJson } from '../../../util';
17
+ export type { Logger } from '../../../util/logger';
@@ -0,0 +1,11 @@
1
+ /**
2
+ * 这个文件暂时先用来存放架构升级时不稳定的依赖。
3
+ * 以及方便单测时mock外部依赖
4
+ */
5
+
6
+ export { fomatGetwayError } from "../../../request/utils";
7
+ export { sdkVersion } from "../../../config/index";
8
+ export { appId, hostSignMap, lightSandboxMap, requestHost, sofaId, tntInstId } from "../../../config/request";
9
+ export { errorEnum } from "../../../types";
10
+ export { get } from "../../../util/get";
11
+ export { device, isPC, queryParse, safeJson } from "../../../util";
@@ -0,0 +1,22 @@
1
+ import { IOptionsParams, PaymentContext, RequestConfig, SDKMetaData, Service } from './deps';
2
+ /**
3
+ * @author congle.zzq <congle.zzq@alipay.com>
4
+ * @date 2024/9/18
5
+ */
6
+ export declare class RequesterService implements Service {
7
+ private sandboxFlag?;
8
+ private instanceId;
9
+ init(initOptions: IOptionsParams, instanceId: string, sdkMetaData: SDKMetaData): void;
10
+ /**
11
+ *
12
+ * @param requestData 请求参数
13
+ * @param options 请求配置
14
+ * @example request({ name: 'test' }, { operation-type: 'xxx.xxx.xxx' })
15
+ */
16
+ request<T>(requestData: Record<string, any> | undefined, options: RequestConfig): Promise<T>;
17
+ getEnvInfo(options: RequestConfig): any;
18
+ private reportRequestTimeCost;
19
+ update(paymentSession: PaymentContext): void;
20
+ destroy(): void;
21
+ private createRequestInstance;
22
+ }
@@ -0,0 +1,211 @@
1
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
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
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
4
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
5
+ 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); } }
6
+ 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); }); }; }
7
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
8
+ function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
9
+ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
10
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
11
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
12
+ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
13
+ import axios from 'axios';
14
+ import { ServiceProvider } from '..';
15
+ import { errorEnum } from "./deps";
16
+ import { appId, device, fomatGetwayError, get, hostSignMap, isPC, lightSandboxMap, queryParse, requestHost, safeJson, sdkVersion, sofaId, tntInstId } from "./deps";
17
+
18
+ /**
19
+ * @author congle.zzq <congle.zzq@alipay.com>
20
+ * @date 2024/9/18
21
+ */
22
+ export var RequesterService = /*#__PURE__*/function () {
23
+ function RequesterService() {
24
+ _classCallCheck(this, RequesterService);
25
+ _defineProperty(this, "sandboxFlag", void 0);
26
+ _defineProperty(this, "instanceId", void 0);
27
+ }
28
+ _createClass(RequesterService, [{
29
+ key: "init",
30
+ value: function init(initOptions, instanceId, sdkMetaData) {
31
+ // TODO record init SDK timing
32
+ // 在页面打开时就读取_sandbox 标记
33
+ var _queryParse = queryParse(),
34
+ _sandbox = _queryParse._sandbox;
35
+ this.sandboxFlag = _sandbox;
36
+ this.instanceId = instanceId;
37
+ }
38
+
39
+ /**
40
+ *
41
+ * @param requestData 请求参数
42
+ * @param options 请求配置
43
+ * @example request({ name: 'test' }, { operation-type: 'xxx.xxx.xxx' })
44
+ */
45
+ }, {
46
+ key: "request",
47
+ value: (function () {
48
+ var _request = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(requestData, options) {
49
+ var envInfo, _data, startTime, myRequest, _yield$myRequest, data, headers, resData, traceId, handleGetWayError, errorMessage, errorCode, _error$message, _error, timeoutCode, _errorCode;
50
+ return _regeneratorRuntime().wrap(function _callee$(_context) {
51
+ while (1) switch (_context.prev = _context.next) {
52
+ case 0:
53
+ envInfo = this.getEnvInfo(options);
54
+ _data = [_objectSpread(_objectSpread({}, requestData), {}, {
55
+ envInfo: envInfo,
56
+ extParams: _objectSpread(_objectSpread({}, requestData === null || requestData === void 0 ? void 0 : requestData.extParams), {}, {
57
+ refUrl: window.location.href
58
+ })
59
+ })];
60
+ startTime = Date.now();
61
+ _context.prev = 3;
62
+ myRequest = this.createRequestInstance(options);
63
+ _context.next = 7;
64
+ return myRequest({
65
+ data: _data
66
+ });
67
+ case 7:
68
+ _yield$myRequest = _context.sent;
69
+ data = _yield$myRequest.data;
70
+ headers = _yield$myRequest.headers;
71
+ resData = data || {};
72
+ traceId = get(headers, 'Mgw-TraceId') || get(headers, 'mgw-traceid', '');
73
+ resData.traceId = traceId || '';
74
+ handleGetWayError = fomatGetwayError(headers, traceId);
75
+ if (!(handleGetWayError !== null && handleGetWayError !== void 0 && handleGetWayError.errorCode)) {
76
+ _context.next = 19;
77
+ break;
78
+ }
79
+ errorMessage = (resData === null || resData === void 0 ? void 0 : resData.errorMessage) || (handleGetWayError === null || handleGetWayError === void 0 ? void 0 : handleGetWayError.errorMessage);
80
+ errorCode = handleGetWayError === null || handleGetWayError === void 0 ? void 0 : handleGetWayError.errorCode;
81
+ this.reportRequestTimeCost({
82
+ name: options === null || options === void 0 ? void 0 : options['Operation-Type'],
83
+ label: 'request',
84
+ time: Date.now() - startTime,
85
+ success: false,
86
+ code: errorCode,
87
+ msg: errorMessage,
88
+ traceId: traceId
89
+ });
90
+ throw new Error(JSON.stringify({
91
+ errorMessage: errorMessage,
92
+ errorCode: errorCode,
93
+ success: false
94
+ }));
95
+ case 19:
96
+ this.reportRequestTimeCost({
97
+ name: options === null || options === void 0 ? void 0 : options['Operation-Type'],
98
+ label: 'request',
99
+ time: Date.now() - startTime,
100
+ success: true,
101
+ code: 'SUCCESS',
102
+ msg: '',
103
+ traceId: traceId
104
+ });
105
+ return _context.abrupt("return", resData);
106
+ case 23:
107
+ _context.prev = 23;
108
+ _context.t0 = _context["catch"](3);
109
+ _error = safeJson(_context.t0 === null || _context.t0 === void 0 ? void 0 : _context.t0.message, {
110
+ success: false,
111
+ errorCode: errorEnum.SYSTEM,
112
+ errorMessage: _context.t0 === null || _context.t0 === void 0 ? void 0 : _context.t0.message
113
+ });
114
+ timeoutCode = _context.t0 !== null && _context.t0 !== void 0 && (_error$message = _context.t0.message) !== null && _error$message !== void 0 && _error$message.includes('timeout') ? errorEnum.TIMEOUT : '';
115
+ _errorCode = (_error === null || _error === void 0 ? void 0 : _error.errorCode) || timeoutCode;
116
+ this.reportRequestTimeCost({
117
+ name: options === null || options === void 0 ? void 0 : options['Operation-Type'],
118
+ label: 'request',
119
+ time: Date.now() - startTime,
120
+ success: false,
121
+ code: _errorCode,
122
+ msg: JSON.stringify((_error === null || _error === void 0 ? void 0 : _error.message) || _context.t0)
123
+ });
124
+ return _context.abrupt("return", Promise.reject({
125
+ success: false,
126
+ errorCode: _errorCode,
127
+ errorMessage: _error === null || _error === void 0 ? void 0 : _error.message
128
+ }));
129
+ case 30:
130
+ case "end":
131
+ return _context.stop();
132
+ }
133
+ }, _callee, this, [[3, 23]]);
134
+ }));
135
+ function request(_x, _x2) {
136
+ return _request.apply(this, arguments);
137
+ }
138
+ return request;
139
+ }())
140
+ }, {
141
+ key: "getEnvInfo",
142
+ value: function getEnvInfo(options) {
143
+ var _options$envInfo;
144
+ var envInfo = _objectSpread(_objectSpread({
145
+ terminalType: isPC() ? 'WEB' : 'WAP',
146
+ browserInfo: {
147
+ browserJavaScriptEnabled: true,
148
+ browserLanguage: navigator.language,
149
+ browserUserAgent: navigator.userAgent,
150
+ browserColorDepth: screen.colorDepth
151
+ },
152
+ deviceLanguage: navigator.language,
153
+ screenWidth: screen.width,
154
+ screenHeight: screen.height,
155
+ timeZoneOffset: new Date().getTimezoneOffset()
156
+ }, options === null || options === void 0 ? void 0 : options.envInfo), {}, {
157
+ locale: (options === null || options === void 0 || (_options$envInfo = options.envInfo) === null || _options$envInfo === void 0 ? void 0 : _options$envInfo.locale) || 'en_US'
158
+ });
159
+ try {
160
+ var _navigator;
161
+ envInfo.browserInfo.browserJavaEnabled = ((_navigator = navigator) === null || _navigator === void 0 ? void 0 : _navigator.javaEnabled()) || false;
162
+ // eslint-disable-next-line no-empty
163
+ } catch (error) {}
164
+ if (envInfo.terminalType === 'WAP') envInfo.osType = device.iOS ? 'IOS' : 'ANDROID';
165
+ return envInfo;
166
+ }
167
+ }, {
168
+ key: "reportRequestTimeCost",
169
+ value: function reportRequestTimeCost(rpcData, extra) {
170
+ var logService = ServiceProvider.getInstance(this.instanceId).getService('Log');
171
+ logService.log('rpc', rpcData, extra);
172
+ }
173
+ }, {
174
+ key: "update",
175
+ value: function update(paymentSession) {}
176
+ }, {
177
+ key: "destroy",
178
+ value: function destroy() {}
179
+ }, {
180
+ key: "createRequestInstance",
181
+ value: function createRequestInstance(options) {
182
+ var _options$timeout, _options$withCredenti;
183
+ var date = new Date(); // 获取当前时间
184
+ var timestamp = date.getTime(); // 获取时间戳
185
+ var utcTimestamp = timestamp + date.getTimezoneOffset() * 60 * 1000; // 获取 UTC 时间戳
186
+ var env = options.env || 'prod';
187
+ var lightSandboxConfig = lightSandboxMap(options['Operation-Type'], env); // light_sandbox
188
+
189
+ var baseURL = options.baseURL || lightSandboxConfig.baseURL || hostSignMap(options === null || options === void 0 ? void 0 : options.hostSign, env) || requestHost[env];
190
+ var _headers = _objectSpread(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty({
191
+ appId: lightSandboxConfig.appId || appId,
192
+ workspaceId: options.env === 'pre' ? 'pre' : 'default'
193
+ }, "x-cors-".concat(appId.toLowerCase(), "-default"), '1'), "version", '2.0'), 'sofa-group-name', lightSandboxConfig.sofaId || sofaId), 'Operation-Type', lightSandboxConfig['Operation-Type'] || options['Operation-Type'] || ''), 'Client-Time', utcTimestamp), "tntInstId", tntInstId), 'sdk-version', sdkVersion || ''), options.headers);
194
+ // sandbox 影子链路
195
+ if (this.sandboxFlag === 'true' || env === 'sandbox') {
196
+ _headers['load-test'] = true;
197
+ _headers.sofaPenAttrs = 'instMock=O&loadMode=2';
198
+ }
199
+ if (env !== 'dev') delete _headers['sofa-group-name'];
200
+ var instance = axios.create({
201
+ baseURL: baseURL,
202
+ timeout: (_options$timeout = options.timeout) !== null && _options$timeout !== void 0 ? _options$timeout : 15000,
203
+ headers: _headers,
204
+ withCredentials: (_options$withCredenti = options.withCredentials) !== null && _options$withCredenti !== void 0 ? _options$withCredenti : true,
205
+ method: (options === null || options === void 0 ? void 0 : options.method) || 'POST'
206
+ });
207
+ return instance.request;
208
+ }
209
+ }]);
210
+ return RequesterService;
211
+ }();
@@ -0,0 +1,26 @@
1
+ import { DeviceIdParameter, IOptionsParams } from '../../../types';
2
+ import { PaymentContext, SDKMetaData, Service } from '../../index';
3
+ import { Security } from './security';
4
+ export declare class SecurityService implements Service {
5
+ private logger;
6
+ private productScene;
7
+ static securitySdkMap: Map<string, Security>;
8
+ init(initOptions: IOptionsParams, instanceId: string, sdkMetaData: SDKMetaData): void;
9
+ update(paymentContext: PaymentContext): void;
10
+ destroy(): void;
11
+ getDeviceId(deviceIdParameter?: DeviceIdParameter, isPolling?: boolean): Promise<string>;
12
+ initSecurity(isPre?: boolean): Security;
13
+ private logDeviceId;
14
+ /**
15
+ * @description Obtain security SDK through scenario identification
16
+ */
17
+ private _getSecuritySDKByProductScene;
18
+ /**
19
+ * @description New security SDK through scenario identification
20
+ */
21
+ private _newSecuritySDKByScene;
22
+ /**
23
+ * @description Obtain risk control configuration in local storage
24
+ */
25
+ private _getSecurityConfigStorage;
26
+ }