@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,216 @@
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 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
+ 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
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
6
+ 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); } }
7
+ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
8
+ 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; }
9
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
10
+ 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); }
11
+ import { ProductSceneEnum } from "../../../types";
12
+ import { Security, SecurityRegionEnum, getSecurityConfigStorageKey, getSecurityHost, getSecurityScene } from "./security";
13
+ import { getOrSetStorageId, safeJson } from "../../../util";
14
+ import { ServiceProvider } from '..';
15
+ export var SecurityService = /*#__PURE__*/function () {
16
+ function SecurityService() {
17
+ _classCallCheck(this, SecurityService);
18
+ _defineProperty(this, "logger", void 0);
19
+ _defineProperty(this, "productScene", ProductSceneEnum.EASY_PAY);
20
+ }
21
+ _createClass(SecurityService, [{
22
+ key: "init",
23
+ value: function init(initOptions, instanceId, sdkMetaData) {
24
+ this.logger = ServiceProvider.getInstance(instanceId).getService('Log');
25
+ this.productScene = sdkMetaData.productScene;
26
+ this.initSecurity(true);
27
+ }
28
+ }, {
29
+ key: "update",
30
+ value: function update(paymentContext) {
31
+ this.initSecurity(false);
32
+ }
33
+ }, {
34
+ key: "destroy",
35
+ value: function destroy() {}
36
+ }, {
37
+ key: "getDeviceId",
38
+ value: function () {
39
+ var _getDeviceId = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {
40
+ var _this = this;
41
+ var deviceIdParameter,
42
+ isPolling,
43
+ _args2 = arguments;
44
+ return _regeneratorRuntime().wrap(function _callee2$(_context2) {
45
+ while (1) switch (_context2.prev = _context2.next) {
46
+ case 0:
47
+ deviceIdParameter = _args2.length > 0 && _args2[0] !== undefined ? _args2[0] : {};
48
+ isPolling = _args2.length > 1 && _args2[1] !== undefined ? _args2[1] : false;
49
+ return _context2.abrupt("return", new Promise(function (resolve) {
50
+ // To avoid rendering being blocked, move the logic to the next event loop for processing
51
+ setTimeout( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
52
+ var getDeviceIdStartTime, securitySDK, deviceId;
53
+ return _regeneratorRuntime().wrap(function _callee$(_context) {
54
+ while (1) switch (_context.prev = _context.next) {
55
+ case 0:
56
+ getDeviceIdStartTime = Date.now();
57
+ securitySDK = _this._getSecuritySDKByProductScene({
58
+ product: (deviceIdParameter === null || deviceIdParameter === void 0 ? void 0 : deviceIdParameter.productScene) || _this.productScene
59
+ });
60
+ deviceId = '';
61
+ if (!securitySDK) {
62
+ _context.next = 15;
63
+ break;
64
+ }
65
+ if (!(isPolling && parseInt(deviceIdParameter === null || deviceIdParameter === void 0 ? void 0 : deviceIdParameter.tokenCollectTime) > 0)) {
66
+ _context.next = 10;
67
+ break;
68
+ }
69
+ _context.next = 7;
70
+ return securitySDK.pollingGetApdidToken(deviceIdParameter);
71
+ case 7:
72
+ _context.t0 = _context.sent;
73
+ _context.next = 13;
74
+ break;
75
+ case 10:
76
+ _context.next = 12;
77
+ return securitySDK.getApdidToken();
78
+ case 12:
79
+ _context.t0 = _context.sent;
80
+ case 13:
81
+ deviceId = _context.t0;
82
+ _this.logDeviceId(deviceId, getDeviceIdStartTime);
83
+ case 15:
84
+ resolve(deviceId);
85
+ case 16:
86
+ case "end":
87
+ return _context.stop();
88
+ }
89
+ }, _callee);
90
+ })), 0);
91
+ }));
92
+ case 3:
93
+ case "end":
94
+ return _context2.stop();
95
+ }
96
+ }, _callee2);
97
+ }));
98
+ function getDeviceId() {
99
+ return _getDeviceId.apply(this, arguments);
100
+ }
101
+ return getDeviceId;
102
+ }()
103
+ }, {
104
+ key: "initSecurity",
105
+ value: function initSecurity() {
106
+ var _this2 = this;
107
+ var isPre = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
108
+ var sdkAction = isPre ? 'PreInit' : 'Init';
109
+ var sdk = this._getSecuritySDKByProductScene({
110
+ product: this.productScene
111
+ });
112
+ if (sdk) {
113
+ return sdk;
114
+ }
115
+ this.logger.logInfo({
116
+ title: "sdk_event_securitySdk".concat(sdkAction)
117
+ });
118
+ sdk = this._newSecuritySDKByScene({
119
+ product: this.productScene,
120
+ region: isPre ? SecurityRegionEnum.SG : undefined
121
+ }, function () {
122
+ _this2.logger.logInfo({
123
+ title: "sdk_event_securitySdk".concat(sdkAction, "Success")
124
+ }, isPre ? {
125
+ product: _this2.productScene
126
+ } : undefined).send();
127
+ }, function (msg) {
128
+ _this2.logger.logError({
129
+ title: 'sdk_error_securitySdkInitFailed',
130
+ msg: msg || undefined
131
+ }, {
132
+ product: _this2.productScene,
133
+ sign: isPre ? 'Active initialization' : 'SDK internal initialization'
134
+ }).send();
135
+ throw new Error("sdk_error_securitySdkInitFailed: ".concat(msg || 'Unknown error'));
136
+ });
137
+ return sdk;
138
+ }
139
+ }, {
140
+ key: "logDeviceId",
141
+ value: function logDeviceId(deviceId, getDeviceIdStartTime) {
142
+ var time = "".concat(Date.now() - getDeviceIdStartTime);
143
+ if (deviceId) {
144
+ this.logger.logInfo({
145
+ title: 'sdk_event_securitySdkGetTokenSuccess'
146
+ }, {
147
+ deviceId: deviceId,
148
+ time: time
149
+ }).send();
150
+ } else {
151
+ this.logger.logInfo({
152
+ title: 'sdk_error_securitySdkGetTokenFailed'
153
+ }, {
154
+ deviceId: deviceId,
155
+ time: time
156
+ }).send();
157
+ }
158
+ }
159
+
160
+ /**
161
+ * @description Obtain security SDK through scenario identification
162
+ */
163
+ }, {
164
+ key: "_getSecuritySDKByProductScene",
165
+ value: function _getSecuritySDKByProductScene(securityConfig) {
166
+ var storage = this._getSecurityConfigStorage(securityConfig.product);
167
+ var scene = storage.scene || getSecurityScene(securityConfig.product);
168
+ var securitySdk = SecurityService.securitySdkMap.get(scene);
169
+ return securitySdk;
170
+ }
171
+
172
+ /**
173
+ * @description New security SDK through scenario identification
174
+ */
175
+ }, {
176
+ key: "_newSecuritySDKByScene",
177
+ value: function _newSecuritySDKByScene(securityConfig, successCallback, failCallback) {
178
+ var storage = this._getSecurityConfigStorage(securityConfig.product);
179
+ var scene = storage.scene || getSecurityScene(securityConfig.product);
180
+ var h5gateway = storage.h5gateway || getSecurityHost(securityConfig.region);
181
+ try {
182
+ var securitySdk = new Security({
183
+ scene: scene,
184
+ h5gateway: h5gateway
185
+ });
186
+ SecurityService.securitySdkMap.set(scene, securitySdk);
187
+ securitySdk.initSecurity(successCallback, failCallback);
188
+ return securitySdk;
189
+ } catch (error) {
190
+ failCallback && failCallback(error === null || error === void 0 ? void 0 : error.toString());
191
+ }
192
+ }
193
+
194
+ /**
195
+ * @description Obtain risk control configuration in local storage
196
+ */
197
+ }, {
198
+ key: "_getSecurityConfigStorage",
199
+ value: function _getSecurityConfigStorage(product) {
200
+ var scene = '';
201
+ var h5gateway = '';
202
+ var securityConfigStorage = getOrSetStorageId(getSecurityConfigStorageKey(product));
203
+ if (securityConfigStorage) {
204
+ var config = safeJson(securityConfigStorage, {});
205
+ scene = config === null || config === void 0 ? void 0 : config.appName;
206
+ h5gateway = config === null || config === void 0 ? void 0 : config.h5gateway;
207
+ }
208
+ return {
209
+ scene: scene,
210
+ h5gateway: h5gateway
211
+ };
212
+ }
213
+ }]);
214
+ return SecurityService;
215
+ }();
216
+ _defineProperty(SecurityService, "securitySdkMap", new Map());
@@ -1,5 +1,5 @@
1
- import { IsecurityConfig, productSceneEnum, DeviceIdParameter } from '../types';
2
- export declare const getSecurityConfigStorageKey: (scene: productSceneEnum) => string;
1
+ import { IsecurityConfig, ProductSceneEnum, DeviceIdParameter } from '../../../types';
2
+ export declare const getSecurityConfigStorageKey: (scene: ProductSceneEnum) => string;
3
3
  export declare enum SecurityRegionEnum {
4
4
  SG = "SG",
5
5
  US = "US",
@@ -8,8 +8,8 @@ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _d
8
8
  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; }
9
9
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
10
10
  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); }
11
- import { productSceneEnum } from "../types";
12
- import APDID from "./jshield-apdid/apdid-core.umd.min";
11
+ import { ProductSceneEnum } from "../../../types";
12
+ import APDID from "../../../util/jshield-apdid/apdid-core.umd.min";
13
13
  export var getSecurityConfigStorageKey = function getSecurityConfigStorageKey(scene) {
14
14
  return "AMSSDK_SECURITY_CONFIG_".concat(scene);
15
15
  };
@@ -24,7 +24,7 @@ export var securityHost = {
24
24
  US: 'https://open-na-global.alipay.com/api/open/risk_client',
25
25
  DE: 'https://open-de-global.alipay.com/api/open/risk_client'
26
26
  };
27
- export var sceneMap = _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty({}, productSceneEnum.CASHIER_PAYMENT, 'Acquirer'), productSceneEnum.AUTO_DEBIT, 'Acquirer'), productSceneEnum.VAULTING, 'Acquirer'), productSceneEnum.CARD_APPLE_PAY, 'Acquirer'), "EASYPAY", 'EasyPay'), productSceneEnum.EASY_PAY, 'EasyPay'), productSceneEnum.FLASH_BUY, 'OneAccount'), productSceneEnum.ELEMENT_PAYMENT, 'Acquirer');
27
+ export var sceneMap = _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty({}, ProductSceneEnum.CASHIER_PAYMENT, 'Acquirer'), ProductSceneEnum.AUTO_DEBIT, 'Acquirer'), ProductSceneEnum.VAULTING, 'Acquirer'), ProductSceneEnum.CARD_APPLE_PAY, 'Acquirer'), "EASYPAY", 'EasyPay'), ProductSceneEnum.EASY_PAY, 'EasyPay'), ProductSceneEnum.FLASH_BUY, 'OneAccount'), ProductSceneEnum.ELEMENT_PAYMENT, 'Acquirer');
28
28
  export var getSecurityHost = function getSecurityHost(region) {
29
29
  return securityHost[region] || securityHost[SecurityRegionEnum.SG];
30
30
  };
@@ -0,0 +1,4 @@
1
+ /**
2
+ * @author 谦彧 <zhangmian.zm@alipay.com>
3
+ * @date 2024/9/17
4
+ */
@@ -0,0 +1,4 @@
1
+ /**
2
+ * @author 谦彧 <zhangmian.zm@alipay.com>
3
+ * @date 2024/9/17
4
+ */
@@ -0,0 +1,7 @@
1
+ import { WebAppMatchConfig } from './web_app_url_utils';
2
+ /**
3
+ * @author 谦彧 <zhangmian.zm@alipay.com>
4
+ * @date 2024/9/18
5
+ */
6
+ export declare function getGrayscaleId(): number;
7
+ export declare function isGreyscaleMatch(configEntry: WebAppMatchConfig, grayScaleId: number): boolean;
@@ -0,0 +1,40 @@
1
+ import { getStorageString, setStorageString } from "../../util/storage";
2
+ import { v4 as uuid } from 'uuid';
3
+ /**
4
+ * @author 谦彧 <zhangmian.zm@alipay.com>
5
+ * @date 2024/9/18
6
+ */
7
+ export function getGrayscaleId() {
8
+ try {
9
+ var cachedGrayScaleId = getStorageString('AntomDefaultGrayScaleId', '');
10
+ if (cachedGrayScaleId) {
11
+ return parseInt(cachedGrayScaleId);
12
+ }
13
+ var seed = uuid();
14
+ // 取倒数2、3位
15
+ var sub = seed.substring(seed.length - 3, seed.length - 1);
16
+ // 将16进制转成10进制值
17
+ var decimal = parseInt(sub, 16);
18
+ var grayScaleId = Math.floor(decimal * 100 / 255);
19
+ setStorageString('AntomDefaultGrayScaleId', '' + grayScaleId);
20
+ return grayScaleId;
21
+ } catch (error) {
22
+ console.error('Get gray scale ID failed', error);
23
+ return 0;
24
+ }
25
+ }
26
+ export function isGreyscaleMatch(configEntry, grayScaleId) {
27
+ if (!(configEntry !== null && configEntry !== void 0 && configEntry.greyscale)) {
28
+ return true;
29
+ }
30
+ try {
31
+ var greyscale = parseInt(configEntry === null || configEntry === void 0 ? void 0 : configEntry.greyscale);
32
+ if (greyscale === 0) {
33
+ return false;
34
+ }
35
+ return greyscale >= grayScaleId;
36
+ } catch (error) {
37
+ console.error('Match gray scale ID failed', error);
38
+ return false;
39
+ }
40
+ }
@@ -0,0 +1,13 @@
1
+ import { IPaymentSessionMetaData } from '../../types';
2
+ import { WebAppMatchConfig } from './web_app_url_utils';
3
+ import { SDKMetaData } from '../index';
4
+ /**
5
+ * @author 谦彧 <zhangmian.zm@alipay.com>
6
+ * @date 2024/9/17
7
+ */
8
+ export declare function convertPaymentSession(sessionData: string): {
9
+ id: string;
10
+ data: IPaymentSessionMetaData;
11
+ };
12
+ export declare const getWebAppVersion: (currentSDKMetaData: Pick<SDKMetaData, 'sdkVersion' | 'productScene' | 'greyscaleId'>, mid?: string, config?: WebAppMatchConfig[]) => string;
13
+ export declare const saveWebAppVersion: (webAppVersion: string, currentSDKMetaData: Pick<SDKMetaData, 'sdkVersion' | 'productScene'>) => void;
@@ -0,0 +1,57 @@
1
+ import { parseBase64ToString } from "../../util";
2
+ import { getStorageString, setStorageString } from "../../util/storage";
3
+ import { compareVersion, isVersionInStringRange } from "../../util/versionCompare";
4
+ import { getGrayscaleValue, isGreyscaleMatch, isWebPlatform } from "../../util/upgrade";
5
+ /**
6
+ * @author 谦彧 <zhangmian.zm@alipay.com>
7
+ * @date 2024/9/17
8
+ */
9
+ export function convertPaymentSession(sessionData) {
10
+ try {
11
+ return {
12
+ id: sessionData.split('&&').slice(0, 3).join('&&'),
13
+ data: JSON.parse(parseBase64ToString(sessionData.split('&&')[3]))
14
+ };
15
+ } catch (error) {
16
+ console.error('Parsing sessionData is abnormal and may affect the payment link. Please ensure to use the new version of SDK.', error);
17
+ return {
18
+ id: sessionData,
19
+ data: {}
20
+ };
21
+ }
22
+ }
23
+ export var getWebAppVersion = function getWebAppVersion(currentSDKMetaData) {
24
+ var mid = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
25
+ var config = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];
26
+ var webAppVersion = findTargetWebAppVersionByConfig(currentSDKMetaData, mid, config);
27
+ if (webAppVersion) {
28
+ return webAppVersion;
29
+ }
30
+ webAppVersion = getStorageString("Antom_".concat(currentSDKMetaData.sdkVersion + currentSDKMetaData.productScene, "_LastAppVersion"), '');
31
+ if (webAppVersion) {
32
+ return webAppVersion;
33
+ }
34
+ return currentSDKMetaData.sdkVersion;
35
+ };
36
+ export var saveWebAppVersion = function saveWebAppVersion(webAppVersion, currentSDKMetaData) {
37
+ setStorageString("Antom_".concat(currentSDKMetaData.sdkVersion + currentSDKMetaData.productScene, "_LastAppVersion"), '');
38
+ };
39
+ var findTargetWebAppVersionByConfig = function findTargetWebAppVersionByConfig(currentSDKInfo) {
40
+ var mid = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
41
+ var config = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];
42
+ var sortedConfig = config.sort(function (a, b) {
43
+ return compareVersion(b.appVersion, a.appVersion);
44
+ });
45
+ var targetConfigEntry = sortedConfig.find(function (configEntry) {
46
+ if (isVersionInStringRange(currentSDKInfo.sdkVersion, configEntry.v) && isWebPlatform(configEntry.platform)) {
47
+ var _configEntry$productS, _currentSDKInfo$produ, _configEntry$mid, _currentSDKInfo$greys;
48
+ var isMatchProductScene = (_configEntry$productS = configEntry.productScene) !== null && _configEntry$productS !== void 0 && _configEntry$productS.trim() ? configEntry.productScene.toUpperCase().includes(currentSDKInfo === null || currentSDKInfo === void 0 || (_currentSDKInfo$produ = currentSDKInfo.productScene) === null || _currentSDKInfo$produ === void 0 ? void 0 : _currentSDKInfo$produ.toUpperCase()) : true;
49
+ var isMatchMid = (_configEntry$mid = configEntry.mid) !== null && _configEntry$mid !== void 0 && _configEntry$mid.trim() ? configEntry.mid.toUpperCase().includes(mid === null || mid === void 0 ? void 0 : mid.toUpperCase()) : true;
50
+ var matchGreyscale = isGreyscaleMatch(configEntry, (_currentSDKInfo$greys = currentSDKInfo.greyscaleId) !== null && _currentSDKInfo$greys !== void 0 ? _currentSDKInfo$greys : getGrayscaleValue());
51
+ if (isMatchProductScene && isMatchMid && matchGreyscale) {
52
+ return configEntry;
53
+ }
54
+ }
55
+ });
56
+ return (targetConfigEntry === null || targetConfigEntry === void 0 ? void 0 : targetConfigEntry.appVersion) || null;
57
+ };
@@ -0,0 +1,6 @@
1
+ import { RedirectBehaviorPayload } from '../index';
2
+ /**
3
+ * @author 谦彧 <zhangmian.zm@alipay.com>
4
+ * @date 2024/9/19
5
+ */
6
+ export declare const redirect: (payload: RedirectBehaviorPayload, instanceId: string) => void;
@@ -0,0 +1,99 @@
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 _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; }
5
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
6
+ 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); }
7
+ import { eventCodeEnum, RedirectType, TargetEnum } from "../../types";
8
+ import { ServiceProvider } from "../service";
9
+ import { isPC } from "../../util";
10
+ import CallApp from "../../util/intl-callapp/es";
11
+ import { EVENT } from "../../constant";
12
+
13
+ /**
14
+ * @author 谦彧 <zhangmian.zm@alipay.com>
15
+ * @date 2024/9/19
16
+ */
17
+ export var redirect = function redirect(payload, instanceId) {
18
+ var serviceProvider = ServiceProvider.getInstance(instanceId);
19
+ var logService = serviceProvider.getService('Log');
20
+ logService.logInfo({
21
+ title: 'sdk_event_call_url_start'
22
+ }, _objectSpread({}, payload)).send();
23
+ // 支持 target: _blank,新开tab页打开
24
+ if (payload.browserLinkTarget === TargetEnum.BLANK) {
25
+ if (!payload.url) return failCallback(payload, RedirectType.NormalUrl, '', payload, serviceProvider);
26
+ successCallback(payload, RedirectType.NormalUrl, payload.url, serviceProvider);
27
+ window.open(payload.url);
28
+ return;
29
+ }
30
+ if (payload.browserLinkTarget === TargetEnum.REPLACE && !(payload !== null && payload !== void 0 && payload.applinkUrl) && !(payload !== null && payload !== void 0 && payload.schemeUrl)) {
31
+ if (!payload.url) return failCallback(payload, RedirectType.NormalUrl, '', payload, serviceProvider);
32
+ successCallback(payload, RedirectType.NormalUrl, payload.url, serviceProvider);
33
+ window.location.replace(payload.url);
34
+ return;
35
+ }
36
+ if (isPC()) {
37
+ successCallback(payload, RedirectType.NormalUrl, payload.url, serviceProvider);
38
+ window.location.href = payload.url;
39
+ return;
40
+ }
41
+ if (!payload.schemeUrl && !payload.applinkUrl) {
42
+ successCallback(payload, RedirectType.NormalUrl, payload.url, serviceProvider);
43
+ window.location.href = payload.url;
44
+ }
45
+ // Use callApp lib to evoke
46
+ // TODO replace to npm
47
+ var callAppLib = new CallApp({
48
+ successCb: function successCb(evokeAppBy) {
49
+ var type = evokeAppBy.type == 'Scheme' ? RedirectType.SchemeUrl : RedirectType.ApplinkUrl;
50
+ successCallback(payload, type, evokeAppBy.url, serviceProvider);
51
+ }
52
+ });
53
+ callAppLib.open({
54
+ link: payload.applinkUrl,
55
+ fallback: function fallback() {
56
+ // Applink evoke failed, try to use scheme url
57
+ if (payload.applinkUrl) {
58
+ failCallback(payload, RedirectType.ApplinkUrl, payload.applinkUrl, payload, serviceProvider);
59
+ }
60
+ callAppLib.open({
61
+ scheme: payload.schemeUrl,
62
+ fallback: function fallback() {
63
+ // ScehmeUrl evoke failed
64
+ if (payload.schemeUrl) {
65
+ failCallback(payload, RedirectType.SchemeUrl, payload.schemeUrl, payload, serviceProvider);
66
+ }
67
+ window.location.href = payload.url;
68
+ successCallback(payload, RedirectType.NormalUrl, payload.url, serviceProvider);
69
+ }
70
+ });
71
+ }
72
+ });
73
+ };
74
+ var successCallback = function successCallback(payload, type, url, serviceProvider) {
75
+ serviceProvider.getService('EventCenter').emit(EVENT.eventCallback.name, {
76
+ code: eventCodeEnum.SDK_CALL_URL_SUCCESS,
77
+ message: "Successfully opened the app,".concat(type, ": ").concat(url)
78
+ });
79
+ serviceProvider.getService('Log').logInfo({
80
+ title: 'sdk_event_call_url_success'
81
+ }, {
82
+ redirectInfo: JSON.stringify(payload),
83
+ openType: type,
84
+ url: url
85
+ }).send();
86
+ };
87
+ var failCallback = function failCallback(payload, type, url, behaviorData, serviceProvider) {
88
+ serviceProvider.getService('EventCenter').emit(EVENT.eventCallback.name, {
89
+ code: eventCodeEnum.SDK_CALL_URL_ERROR,
90
+ message: "Failed to open app,applinkUrl: ".concat(behaviorData === null || behaviorData === void 0 ? void 0 : behaviorData.applinkUrl, " schemeUrl: ").concat(behaviorData === null || behaviorData === void 0 ? void 0 : behaviorData.schemeUrl, " normalUrl: ").concat(behaviorData === null || behaviorData === void 0 ? void 0 : behaviorData.url)
91
+ });
92
+ serviceProvider.getService('Log').logInfo({
93
+ title: 'sdk_error_call_url_failed'
94
+ }, {
95
+ redirectInfo: JSON.stringify(payload),
96
+ openType: type,
97
+ url: url
98
+ }).send();
99
+ };
@@ -0,0 +1,4 @@
1
+ import { EventCenter } from '../service/event-center';
2
+ export declare const registerSystemEvents: (eventCenter: EventCenter) => void;
3
+ export declare const unRegisterSystemEvents: (eventCenter: EventCenter) => void;
4
+ export declare const getIframeOrigin: (iframe: HTMLIFrameElement) => string;
@@ -0,0 +1,71 @@
1
+ import { EVENT } from "../../constant";
2
+ import { v4 as uuid } from 'uuid';
3
+ export var registerSystemEvents = function registerSystemEvents(eventCenter) {
4
+ var handleSubmitForm = function handleSubmitForm(data) {
5
+ var attributes = data.attributes;
6
+ var _document = document,
7
+ body = _document.body;
8
+ var form = document.createElement('form');
9
+ form.setAttribute('height', '1');
10
+ form.setAttribute('width', '1');
11
+ Object.keys(attributes.data).forEach(function (key) {
12
+ var input = document.createElement('input');
13
+ input.setAttribute('type', 'hidden');
14
+ input.setAttribute('name', key);
15
+ input.setAttribute('value', attributes.data[key]);
16
+ form.appendChild(input);
17
+ });
18
+ form.setAttribute('action', attributes.action);
19
+ form.setAttribute('method', 'post');
20
+ body.appendChild(form);
21
+ setTimeout(function () {
22
+ form.submit();
23
+ }, 0);
24
+ };
25
+ var handleHeartBeat = function handleHeartBeat(data) {
26
+ // TODO:
27
+ };
28
+ var handleBeforeSubmit = function handleBeforeSubmit(data) {
29
+ if (eventCenter.isExist(EVENT.beforeSubmit.name)) {
30
+ eventCenter.emit(EVENT.beforeSubmit.name, data);
31
+ return;
32
+ }
33
+ var eventCallbackId = uuid();
34
+ eventCenter.dispatchToApp({
35
+ event: EVENT.beforeSubmitDone.name,
36
+ eventCallbackId: eventCallbackId,
37
+ data: {
38
+ result: 'IGNORE'
39
+ }
40
+ });
41
+ };
42
+ var handleSendBroadcast = function handleSendBroadcast(data) {
43
+ eventCenter.dispatchToApp({
44
+ event: EVENT.receiveBroadcast.name,
45
+ data: data
46
+ });
47
+ };
48
+ var handleSendMultiAppEventToSdk = function handleSendMultiAppEventToSdk(data) {
49
+ eventCenter.dispatchToApp({
50
+ event: EVENT.receiveMuitiAppFromSdk.name,
51
+ data: data
52
+ });
53
+ };
54
+ eventCenter.listen(EVENT.submitForm.name, handleSubmitForm);
55
+ eventCenter.listen(EVENT.appHeartBeat.name, handleHeartBeat);
56
+ eventCenter.listen(EVENT.beforeSubmit.name, handleBeforeSubmit);
57
+ eventCenter.listen(EVENT.sendBroadcast.name, handleSendBroadcast);
58
+ // deprecated
59
+ eventCenter.listen(EVENT.sendMuitiAppEventToSdk.name, handleSendMultiAppEventToSdk);
60
+ };
61
+ export var unRegisterSystemEvents = function unRegisterSystemEvents(eventCenter) {
62
+ eventCenter.unlisten(EVENT.submitForm.name);
63
+ eventCenter.unlisten(EVENT.appHeartBeat.name);
64
+ eventCenter.unlisten(EVENT.beforeSubmit.name);
65
+ eventCenter.unlisten(EVENT.sendBroadcast.name);
66
+ eventCenter.unlisten(EVENT.sendMuitiAppEventToSdk.name);
67
+ };
68
+ export var getIframeOrigin = function getIframeOrigin(iframe) {
69
+ var url = new URL(iframe.src);
70
+ return url.origin;
71
+ };
@@ -0,0 +1,37 @@
1
+ import { DisplayTypeEnum, PaymentMethodCategoryTypeEnum } from '../../types';
2
+ import { SDKMetaData } from '../index';
3
+ /**
4
+ * Tell the SDK which version of the Web App to load.
5
+ * Sent by server inside paymentSession.
6
+ */
7
+ export interface WebAppMatchConfig {
8
+ /**
9
+ * SDK support version range, '{minVer}|{maxVer}', such as '1.0.0' or '1.0.0|2.0.0' or '2.0.0'
10
+ * If SDK version < maxVer and > minVer, then will use this config entry.
11
+ */
12
+ v: string;
13
+ appVersion: string;
14
+ productScene?: string;
15
+ platform?: string;
16
+ mid?: string;
17
+ greyscale?: string;
18
+ }
19
+ export interface QueryParams {
20
+ displayType: DisplayTypeEnum;
21
+ locale: string;
22
+ instanceId: string;
23
+ analyticsEnabled: boolean;
24
+ isPreload: string;
25
+ hostSign?: string;
26
+ }
27
+ export declare const getWebAppUrl: (params: {
28
+ environment: string;
29
+ sdkMetaData: SDKMetaData;
30
+ productSceneVersion: string;
31
+ paymentMethodCategoryType: PaymentMethodCategoryTypeEnum;
32
+ query: QueryParams;
33
+ }) => {
34
+ path: string;
35
+ locationSearch: string;
36
+ };
37
+ export declare const parseWebAppMatchConfig: (extendInfo: string) => WebAppMatchConfig[];