@alipay/ams-checkout 1.23.0 → 1.25.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 (128) hide show
  1. package/dist/umd/ams-checkout.min.js +1 -1
  2. package/esm/component/channel.d.ts +19 -0
  3. package/esm/component/channel.js +87 -0
  4. package/esm/component/component.inline.style.d.ts +10 -0
  5. package/esm/component/component.inline.style.js +121 -0
  6. package/esm/component/component.popup.style.d.ts +23 -0
  7. package/esm/component/component.popup.style.js +190 -0
  8. package/esm/component/popupWindow.style.d.ts +11 -0
  9. package/esm/component/popupWindow.style.js +121 -0
  10. package/esm/config/index.d.ts +7 -7
  11. package/esm/config/index.js +10 -10
  12. package/esm/constant/index.d.ts +9 -5
  13. package/esm/constant/index.js +12 -78
  14. package/esm/core/component/ckp/index.js +6 -5
  15. package/esm/core/component/element/components/address.d.ts +19 -0
  16. package/esm/core/component/element/components/address.js +68 -0
  17. package/esm/core/component/element/components/auth.d.ts +17 -0
  18. package/esm/core/component/element/components/auth.js +60 -0
  19. package/esm/core/component/element/components/payment.d.ts +19 -0
  20. package/esm/core/component/element/components/payment.js +74 -0
  21. package/esm/core/component/element/index.d.ts +47 -0
  22. package/esm/core/component/element/index.js +816 -0
  23. package/esm/core/component/element/mock.d.ts +4 -0
  24. package/esm/core/component/element/mock.js +491 -0
  25. package/esm/core/component/element/type.d.ts +190 -0
  26. package/esm/core/component/element/type.js +35 -0
  27. package/esm/core/component/element/utils.d.ts +13 -0
  28. package/esm/core/component/element/utils.js +6 -0
  29. package/esm/core/component/index.d.ts +4 -4
  30. package/esm/core/component/index.js +14 -14
  31. package/esm/core/drop-in/index.js +2 -2
  32. package/esm/core/instance/index.js +9 -9
  33. package/esm/foundation/core/index.d.ts +26 -0
  34. package/esm/foundation/core/index.js +366 -0
  35. package/esm/foundation/index.d.ts +75 -0
  36. package/esm/foundation/index.js +42 -0
  37. package/esm/foundation/product-processor/easysafepay/deps.d.ts +18 -0
  38. package/esm/foundation/product-processor/easysafepay/deps.js +12 -0
  39. package/esm/foundation/product-processor/easysafepay/index.d.ts +26 -0
  40. package/esm/foundation/product-processor/easysafepay/index.js +463 -0
  41. package/esm/foundation/service/api-bus/ability/callback.d.ts +9 -0
  42. package/esm/foundation/service/api-bus/ability/callback.js +55 -0
  43. package/esm/foundation/service/api-bus/ability/globalData.d.ts +10 -0
  44. package/esm/foundation/service/api-bus/ability/globalData.js +89 -0
  45. package/esm/foundation/service/api-bus/ability/request.d.ts +10 -0
  46. package/esm/foundation/service/api-bus/ability/request.js +151 -0
  47. package/esm/foundation/service/api-bus/ability/security.d.ts +12 -0
  48. package/esm/foundation/service/api-bus/ability/security.js +161 -0
  49. package/esm/foundation/service/api-bus/ability/tracker.d.ts +9 -0
  50. package/esm/foundation/service/api-bus/ability/tracker.js +80 -0
  51. package/esm/foundation/service/api-bus/busManager.d.ts +127 -0
  52. package/esm/foundation/service/api-bus/busManager.js +398 -0
  53. package/esm/foundation/service/api-bus/index.d.ts +20 -0
  54. package/esm/foundation/service/api-bus/index.js +88 -0
  55. package/esm/foundation/service/api-bus/interface.d.ts +48 -0
  56. package/esm/foundation/service/api-bus/interface.js +54 -0
  57. package/esm/foundation/service/container/index.d.ts +30 -0
  58. package/esm/foundation/service/container/index.js +298 -0
  59. package/esm/foundation/service/container/popup.d.ts +17 -0
  60. package/esm/foundation/service/container/popup.js +103 -0
  61. package/esm/foundation/service/container/utils.d.ts +7 -0
  62. package/esm/foundation/service/container/utils.js +48 -0
  63. package/esm/foundation/service/event-center.d.ts +76 -0
  64. package/esm/foundation/service/event-center.js +243 -0
  65. package/esm/foundation/service/global-data/index.d.ts +11 -0
  66. package/esm/foundation/service/global-data/index.js +68 -0
  67. package/esm/foundation/service/index.d.ts +19 -0
  68. package/esm/foundation/service/index.js +82 -0
  69. package/esm/foundation/service/log/index.d.ts +43 -0
  70. package/esm/foundation/service/log/index.js +235 -0
  71. package/esm/foundation/service/log/types.d.ts +32 -0
  72. package/esm/foundation/service/log/types.js +1 -0
  73. package/esm/foundation/service/requester/deps.d.ts +17 -0
  74. package/esm/foundation/service/requester/deps.js +11 -0
  75. package/esm/foundation/service/requester/requester.d.ts +22 -0
  76. package/esm/foundation/service/requester/requester.js +214 -0
  77. package/esm/foundation/service/security/index.d.ts +28 -0
  78. package/esm/foundation/service/security/index.js +286 -0
  79. package/esm/foundation/service/security/security.d.ts +33 -0
  80. package/esm/foundation/service/security/security.js +182 -0
  81. package/esm/foundation/utils/gray_scale_utils.d.ts +7 -0
  82. package/esm/foundation/utils/gray_scale_utils.js +40 -0
  83. package/esm/foundation/utils/payment_context_utils.d.ts +13 -0
  84. package/esm/foundation/utils/payment_context_utils.js +57 -0
  85. package/esm/foundation/utils/payment_product_utils.d.ts +13 -0
  86. package/esm/foundation/utils/payment_product_utils.js +38 -0
  87. package/esm/foundation/utils/redirect_utils.d.ts +11 -0
  88. package/esm/foundation/utils/redirect_utils.js +263 -0
  89. package/esm/foundation/utils/system_events.d.ts +4 -0
  90. package/esm/foundation/utils/system_events.js +66 -0
  91. package/esm/foundation/utils/web_app_url_utils.d.ts +46 -0
  92. package/esm/foundation/utils/web_app_url_utils.js +112 -0
  93. package/esm/index.d.ts +12 -6
  94. package/esm/index.js +75 -64
  95. package/esm/plugin/applepay/component.js +3 -3
  96. package/esm/plugin/applepay/service.d.ts +2 -2
  97. package/esm/plugin/applepay/service.js +2 -2
  98. package/esm/plugin/component/cashierApp.d.ts +7 -5
  99. package/esm/plugin/component/cashierApp.js +15 -8
  100. package/esm/plugin/component/channel.d.ts +4 -4
  101. package/esm/plugin/component/component.inline.style.d.ts +4 -4
  102. package/esm/plugin/component/component.inline.style.js +10 -8
  103. package/esm/plugin/component/component.popup.style.d.ts +6 -6
  104. package/esm/plugin/component/component.popup.style.js +6 -6
  105. package/esm/plugin/component/index.d.ts +8 -7
  106. package/esm/plugin/component/index.js +160 -103
  107. package/esm/plugin/const.js +5 -5
  108. package/esm/plugin/drop-in/index.d.ts +5 -5
  109. package/esm/plugin/drop-in/index.js +7 -7
  110. package/esm/plugin/type.d.ts +3 -3
  111. package/esm/service/element.d.ts +4 -0
  112. package/esm/service/element.js +51 -0
  113. package/esm/service/index.d.ts +1 -0
  114. package/esm/service/index.js +2 -0
  115. package/esm/types/index.d.ts +247 -39
  116. package/esm/types/index.js +109 -59
  117. package/esm/util/createIframeNode.d.ts +2 -2
  118. package/esm/util/createIframeNode.js +3 -3
  119. package/esm/util/getBackScheme.js +95 -3
  120. package/esm/util/security.d.ts +2 -2
  121. package/esm/util/security.js +2 -2
  122. package/package.json +2 -1
  123. package/esm/util/ua/index.d.ts +0 -2
  124. package/esm/util/ua/index.js +0 -2
  125. package/esm/util/ua/isAndroid.d.ts +0 -4
  126. package/esm/util/ua/isAndroid.js +0 -7
  127. package/esm/util/ua/isIOS.d.ts +0 -4
  128. package/esm/util/ua/isIOS.js +0 -7
@@ -0,0 +1,286 @@
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
+ }
27
+ }, {
28
+ key: "update",
29
+ value: function update(paymentContext) {}
30
+ }, {
31
+ key: "destroy",
32
+ value: function destroy() {}
33
+ }, {
34
+ key: "getDeviceId",
35
+ value: function () {
36
+ var _getDeviceId = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {
37
+ var _this = this;
38
+ var deviceIdParameter,
39
+ isPolling,
40
+ _args2 = arguments;
41
+ return _regeneratorRuntime().wrap(function _callee2$(_context2) {
42
+ while (1) switch (_context2.prev = _context2.next) {
43
+ case 0:
44
+ deviceIdParameter = _args2.length > 0 && _args2[0] !== undefined ? _args2[0] : {};
45
+ isPolling = _args2.length > 1 && _args2[1] !== undefined ? _args2[1] : false;
46
+ return _context2.abrupt("return", new Promise(function (resolve) {
47
+ // To avoid rendering being blocked, move the logic to the next event loop for processing
48
+ setTimeout( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
49
+ var getDeviceIdStartTime, securitySDK, deviceId;
50
+ return _regeneratorRuntime().wrap(function _callee$(_context) {
51
+ while (1) switch (_context.prev = _context.next) {
52
+ case 0:
53
+ getDeviceIdStartTime = Date.now();
54
+ securitySDK = _this._getSecuritySDKByProductScene({
55
+ product: (deviceIdParameter === null || deviceIdParameter === void 0 ? void 0 : deviceIdParameter.productScene) || _this.productScene
56
+ });
57
+ deviceId = '';
58
+ if (!securitySDK) {
59
+ _context.next = 15;
60
+ break;
61
+ }
62
+ if (!(isPolling && parseInt(deviceIdParameter === null || deviceIdParameter === void 0 ? void 0 : deviceIdParameter.tokenCollectTime) > 0)) {
63
+ _context.next = 10;
64
+ break;
65
+ }
66
+ _context.next = 7;
67
+ return securitySDK.pollingGetApdidToken(deviceIdParameter);
68
+ case 7:
69
+ _context.t0 = _context.sent;
70
+ _context.next = 13;
71
+ break;
72
+ case 10:
73
+ _context.next = 12;
74
+ return securitySDK.getApdidToken();
75
+ case 12:
76
+ _context.t0 = _context.sent;
77
+ case 13:
78
+ deviceId = _context.t0;
79
+ _this.logDeviceId(deviceId, getDeviceIdStartTime);
80
+ case 15:
81
+ resolve(deviceId);
82
+ case 16:
83
+ case "end":
84
+ return _context.stop();
85
+ }
86
+ }, _callee);
87
+ })), 0);
88
+ }));
89
+ case 3:
90
+ case "end":
91
+ return _context2.stop();
92
+ }
93
+ }, _callee2);
94
+ }));
95
+ function getDeviceId() {
96
+ return _getDeviceId.apply(this, arguments);
97
+ }
98
+ return getDeviceId;
99
+ }()
100
+ }, {
101
+ key: "preInitSecurity",
102
+ value: function () {
103
+ var _preInitSecurity = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3(timeout) {
104
+ return _regeneratorRuntime().wrap(function _callee3$(_context3) {
105
+ while (1) switch (_context3.prev = _context3.next) {
106
+ case 0:
107
+ _context3.next = 2;
108
+ return this._initSecurity(true, timeout);
109
+ case 2:
110
+ case "end":
111
+ return _context3.stop();
112
+ }
113
+ }, _callee3, this);
114
+ }));
115
+ function preInitSecurity(_x) {
116
+ return _preInitSecurity.apply(this, arguments);
117
+ }
118
+ return preInitSecurity;
119
+ }()
120
+ }, {
121
+ key: "initSecurity",
122
+ value: function () {
123
+ var _initSecurity2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee4(timeout) {
124
+ return _regeneratorRuntime().wrap(function _callee4$(_context4) {
125
+ while (1) switch (_context4.prev = _context4.next) {
126
+ case 0:
127
+ _context4.next = 2;
128
+ return this._initSecurity(false, timeout);
129
+ case 2:
130
+ case "end":
131
+ return _context4.stop();
132
+ }
133
+ }, _callee4, this);
134
+ }));
135
+ function initSecurity(_x2) {
136
+ return _initSecurity2.apply(this, arguments);
137
+ }
138
+ return initSecurity;
139
+ }()
140
+ }, {
141
+ key: "_initSecurity",
142
+ value: function () {
143
+ var _initSecurity3 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee5() {
144
+ var _this2 = this;
145
+ var isPre,
146
+ timeout,
147
+ sdkAction,
148
+ _args5 = arguments;
149
+ return _regeneratorRuntime().wrap(function _callee5$(_context5) {
150
+ while (1) switch (_context5.prev = _context5.next) {
151
+ case 0:
152
+ isPre = _args5.length > 0 && _args5[0] !== undefined ? _args5[0] : false;
153
+ timeout = _args5.length > 1 ? _args5[1] : undefined;
154
+ sdkAction = isPre ? 'PreInit' : 'Init';
155
+ if (!this._getSecuritySDKByProductScene({
156
+ product: this.productScene
157
+ })) {
158
+ _context5.next = 5;
159
+ break;
160
+ }
161
+ return _context5.abrupt("return", Promise.resolve());
162
+ case 5:
163
+ this.logger.logInfo({
164
+ title: "sdk_event_securitySdk".concat(sdkAction)
165
+ });
166
+ return _context5.abrupt("return", new Promise(function (resolve, reject) {
167
+ if (timeout) {
168
+ setTimeout(function () {
169
+ _this2.logger.logError({
170
+ title: 'sdk_error_securitySdkInitTimeout'
171
+ }, {
172
+ product: _this2.productScene,
173
+ sign: isPre ? 'Active initialization' : 'SDK internal initialization'
174
+ }).send();
175
+ reject();
176
+ }, timeout);
177
+ }
178
+ _this2._newSecuritySDKByScene({
179
+ product: _this2.productScene,
180
+ region: isPre ? SecurityRegionEnum.SG : undefined
181
+ }, function () {
182
+ _this2.logger.logInfo({
183
+ title: "sdk_event_securitySdk".concat(sdkAction, "Success")
184
+ }, isPre ? {
185
+ product: _this2.productScene
186
+ } : undefined).send();
187
+ resolve();
188
+ }, function (msg) {
189
+ _this2.logger.logError({
190
+ title: 'sdk_error_securitySdkInitFailed',
191
+ msg: msg || undefined
192
+ }, {
193
+ product: _this2.productScene,
194
+ sign: isPre ? 'Active initialization' : 'SDK internal initialization'
195
+ }).send();
196
+ reject();
197
+ });
198
+ }));
199
+ case 7:
200
+ case "end":
201
+ return _context5.stop();
202
+ }
203
+ }, _callee5, this);
204
+ }));
205
+ function _initSecurity() {
206
+ return _initSecurity3.apply(this, arguments);
207
+ }
208
+ return _initSecurity;
209
+ }()
210
+ }, {
211
+ key: "logDeviceId",
212
+ value: function logDeviceId(deviceId, getDeviceIdStartTime) {
213
+ var time = "".concat(Date.now() - getDeviceIdStartTime);
214
+ if (deviceId) {
215
+ this.logger.logInfo({
216
+ title: 'sdk_event_securitySdkGetTokenSuccess'
217
+ }, {
218
+ deviceId: deviceId,
219
+ time: time
220
+ }).send();
221
+ } else {
222
+ this.logger.logInfo({
223
+ title: 'sdk_error_securitySdkGetTokenFailed'
224
+ }, {
225
+ deviceId: deviceId,
226
+ time: time
227
+ }).send();
228
+ }
229
+ }
230
+
231
+ /**
232
+ * @description Obtain security SDK through scenario identification
233
+ */
234
+ }, {
235
+ key: "_getSecuritySDKByProductScene",
236
+ value: function _getSecuritySDKByProductScene(securityConfig) {
237
+ var storage = this._getSecurityConfigStorage(securityConfig.product);
238
+ var scene = storage.scene || getSecurityScene(securityConfig.product);
239
+ var securitySdk = SecurityService.securitySdkMap.get(scene);
240
+ return securitySdk;
241
+ }
242
+
243
+ /**
244
+ * @description New security SDK through scenario identification
245
+ */
246
+ }, {
247
+ key: "_newSecuritySDKByScene",
248
+ value: function _newSecuritySDKByScene(securityConfig, successCallback, failCallback) {
249
+ var storage = this._getSecurityConfigStorage(securityConfig.product);
250
+ var scene = storage.scene || getSecurityScene(securityConfig.product);
251
+ var h5gateway = storage.h5gateway || getSecurityHost(securityConfig.region);
252
+ try {
253
+ var securitySdk = new Security({
254
+ scene: scene,
255
+ h5gateway: h5gateway
256
+ });
257
+ SecurityService.securitySdkMap.set(scene, securitySdk);
258
+ securitySdk.initSecurity(successCallback, failCallback);
259
+ } catch (error) {
260
+ failCallback && failCallback(error === null || error === void 0 ? void 0 : error.toString());
261
+ }
262
+ }
263
+
264
+ /**
265
+ * @description Obtain risk control configuration in local storage
266
+ */
267
+ }, {
268
+ key: "_getSecurityConfigStorage",
269
+ value: function _getSecurityConfigStorage(product) {
270
+ var scene = '';
271
+ var h5gateway = '';
272
+ var securityConfigStorage = getOrSetStorageId(getSecurityConfigStorageKey(product));
273
+ if (securityConfigStorage) {
274
+ var config = safeJson(securityConfigStorage, {});
275
+ scene = config === null || config === void 0 ? void 0 : config.appName;
276
+ h5gateway = config === null || config === void 0 ? void 0 : config.h5gateway;
277
+ }
278
+ return {
279
+ scene: scene,
280
+ h5gateway: h5gateway
281
+ };
282
+ }
283
+ }]);
284
+ return SecurityService;
285
+ }();
286
+ _defineProperty(SecurityService, "securitySdkMap", new Map());
@@ -0,0 +1,33 @@
1
+ import { IsecurityConfig, ProductSceneEnum, DeviceIdParameter } from '../../../types';
2
+ export declare const getSecurityConfigStorageKey: (scene: ProductSceneEnum) => string;
3
+ export declare enum SecurityRegionEnum {
4
+ SG = "SG",
5
+ US = "US",
6
+ DE = "DE"
7
+ }
8
+ export declare const securityHost: {
9
+ SG: string;
10
+ US: string;
11
+ DE: string;
12
+ };
13
+ export declare const sceneMap: {
14
+ CASHIER_PAYMENT: string;
15
+ AUTO_DEBIT: string;
16
+ VAULTING: string;
17
+ CARD_APPLE_PAY: string;
18
+ EASYPAY: string;
19
+ EASY_PAY: string;
20
+ FLASH_BUY: string;
21
+ ELEMENT_PAYMENT: string;
22
+ };
23
+ export declare const getSecurityHost: (region: string) => string;
24
+ export declare const getSecurityScene: (product: string) => string;
25
+ export declare class Security {
26
+ scene: string;
27
+ h5gateway: string;
28
+ constructor(options: IsecurityConfig);
29
+ initSecurity(successCallback: any, failCallback: any): void;
30
+ private initToken;
31
+ pollingGetApdidToken(config?: DeviceIdParameter): Promise<string>;
32
+ getApdidToken(): Promise<string>;
33
+ }
@@ -0,0 +1,182 @@
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 APDID from "../../../util/jshield-apdid/apdid-core.umd.min";
13
+ export var getSecurityConfigStorageKey = function getSecurityConfigStorageKey(scene) {
14
+ return "AMSSDK_SECURITY_CONFIG_".concat(scene);
15
+ };
16
+ export var SecurityRegionEnum = /*#__PURE__*/function (SecurityRegionEnum) {
17
+ SecurityRegionEnum["SG"] = "SG";
18
+ SecurityRegionEnum["US"] = "US";
19
+ SecurityRegionEnum["DE"] = "DE";
20
+ return SecurityRegionEnum;
21
+ }({});
22
+ export var securityHost = {
23
+ SG: 'https://open-sea-global.alipay.com/api/open/risk_client',
24
+ US: 'https://open-na-global.alipay.com/api/open/risk_client',
25
+ DE: 'https://open-de-global.alipay.com/api/open/risk_client'
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');
28
+ export var getSecurityHost = function getSecurityHost(region) {
29
+ return securityHost[region] || securityHost[SecurityRegionEnum.SG];
30
+ };
31
+ export var getSecurityScene = function getSecurityScene(product) {
32
+ return sceneMap[product] || '';
33
+ };
34
+ export var Security = /*#__PURE__*/function () {
35
+ function Security(options) {
36
+ _classCallCheck(this, Security);
37
+ _defineProperty(this, "scene", void 0);
38
+ _defineProperty(this, "h5gateway", void 0);
39
+ this.scene = options.scene;
40
+ this.h5gateway = options.h5gateway || securityHost[SecurityRegionEnum.SG];
41
+ }
42
+ _createClass(Security, [{
43
+ key: "initSecurity",
44
+ value: function initSecurity(successCallback, failCallback) {
45
+ if (!this.scene) {
46
+ throw new Error('securityConfig parameter error');
47
+ }
48
+ if (!Object.values(sceneMap).includes(this.scene) || !Object.values(securityHost).includes(this.h5gateway)) {
49
+ var errorMsg = "scene:".concat(this.scene, " or h5gateway:").concat(this.h5gateway, " do not supported");
50
+ console.error(errorMsg);
51
+ throw new Error(errorMsg);
52
+ }
53
+ this.initToken(successCallback, failCallback);
54
+ }
55
+ }, {
56
+ key: "initToken",
57
+ value: function initToken(successCallback, failCallback) {
58
+ try {
59
+ APDID === null || APDID === void 0 || APDID.initToken(this.scene, {
60
+ host: this.h5gateway
61
+ }, function (success, tokenResult, msg) {
62
+ if (success) {
63
+ successCallback && successCallback();
64
+ } else {
65
+ failCallback && failCallback(msg);
66
+ }
67
+ console.log('initToken result tokenResult', JSON.stringify(tokenResult), msg);
68
+ });
69
+ } catch (error) {
70
+ failCallback && failCallback(error === null || error === void 0 ? void 0 : error.toString());
71
+ }
72
+ }
73
+ }, {
74
+ key: "pollingGetApdidToken",
75
+ value: function () {
76
+ var _pollingGetApdidToken = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3(config) {
77
+ var _this = this;
78
+ var tokenCollectTime, dataPollingInterval, asyncFunc;
79
+ return _regeneratorRuntime().wrap(function _callee3$(_context3) {
80
+ while (1) switch (_context3.prev = _context3.next) {
81
+ case 0:
82
+ tokenCollectTime = parseInt((config === null || config === void 0 ? void 0 : config.tokenCollectTime) || '0', 10);
83
+ dataPollingInterval = parseInt((config === null || config === void 0 ? void 0 : config.dataPollingInterval) || '500', 10);
84
+ asyncFunc = /*#__PURE__*/function () {
85
+ var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(resolve) {
86
+ var deviceId, interval, polling;
87
+ return _regeneratorRuntime().wrap(function _callee2$(_context2) {
88
+ while (1) switch (_context2.prev = _context2.next) {
89
+ case 0:
90
+ _context2.next = 2;
91
+ return _this.getApdidToken();
92
+ case 2:
93
+ deviceId = _context2.sent;
94
+ if (!deviceId) {
95
+ _context2.next = 5;
96
+ break;
97
+ }
98
+ return _context2.abrupt("return", resolve(deviceId));
99
+ case 5:
100
+ polling = /*#__PURE__*/function () {
101
+ var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
102
+ return _regeneratorRuntime().wrap(function _callee$(_context) {
103
+ while (1) switch (_context.prev = _context.next) {
104
+ case 0:
105
+ _context.next = 2;
106
+ return _this.getApdidToken();
107
+ case 2:
108
+ deviceId = _context.sent;
109
+ if (deviceId) {
110
+ clearInterval(interval);
111
+ resolve(deviceId);
112
+ }
113
+ case 4:
114
+ case "end":
115
+ return _context.stop();
116
+ }
117
+ }, _callee);
118
+ }));
119
+ return function polling() {
120
+ return _ref2.apply(this, arguments);
121
+ };
122
+ }();
123
+ interval = setInterval(polling, dataPollingInterval);
124
+ setTimeout(function () {
125
+ clearInterval(interval);
126
+ resolve(deviceId);
127
+ }, tokenCollectTime);
128
+ case 8:
129
+ case "end":
130
+ return _context2.stop();
131
+ }
132
+ }, _callee2);
133
+ }));
134
+ return function asyncFunc(_x2) {
135
+ return _ref.apply(this, arguments);
136
+ };
137
+ }();
138
+ return _context3.abrupt("return", new Promise(function (resolve) {
139
+ asyncFunc(resolve);
140
+ }));
141
+ case 4:
142
+ case "end":
143
+ return _context3.stop();
144
+ }
145
+ }, _callee3);
146
+ }));
147
+ function pollingGetApdidToken(_x) {
148
+ return _pollingGetApdidToken.apply(this, arguments);
149
+ }
150
+ return pollingGetApdidToken;
151
+ }()
152
+ }, {
153
+ key: "getApdidToken",
154
+ value: function () {
155
+ var _getApdidToken = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee4() {
156
+ var _this2 = this;
157
+ return _regeneratorRuntime().wrap(function _callee4$(_context4) {
158
+ while (1) switch (_context4.prev = _context4.next) {
159
+ case 0:
160
+ return _context4.abrupt("return", new Promise(function (resolve) {
161
+ try {
162
+ APDID === null || APDID === void 0 || APDID.getApdidToken(_this2.scene, function (tokenResult) {
163
+ resolve(tokenResult === null || tokenResult === void 0 ? void 0 : tokenResult.token);
164
+ });
165
+ } catch (error) {
166
+ resolve('');
167
+ }
168
+ }));
169
+ case 1:
170
+ case "end":
171
+ return _context4.stop();
172
+ }
173
+ }, _callee4);
174
+ }));
175
+ function getApdidToken() {
176
+ return _getApdidToken.apply(this, arguments);
177
+ }
178
+ return getApdidToken;
179
+ }()
180
+ }]);
181
+ return Security;
182
+ }();
@@ -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;