@alipay/ams-checkout 0.0.1730107332-dev.3 → 0.0.1730107332-dev.31

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 (102) hide show
  1. package/dist/umd/ams-checkout.min.js +1 -1
  2. package/esm/component/channel.d.ts +2 -3
  3. package/esm/component/channel.js +65 -30
  4. package/esm/component/component.inline.style.js +1 -1
  5. package/esm/component/component.popup.style.d.ts +1 -3
  6. package/esm/component/component.popup.style.js +1 -3
  7. package/esm/config/index.d.ts +7 -7
  8. package/esm/config/index.js +7 -7
  9. package/esm/constant/index.d.ts +3 -0
  10. package/esm/constant/index.js +3 -0
  11. package/esm/core/bus/ability/callback.d.ts +9 -0
  12. package/esm/core/bus/ability/callback.js +55 -0
  13. package/esm/core/bus/ability/security.d.ts +10 -0
  14. package/esm/core/bus/ability/security.js +104 -0
  15. package/esm/core/bus/ability/tracker.d.ts +9 -0
  16. package/esm/core/bus/ability/tracker.js +77 -0
  17. package/esm/core/bus/index.d.ts +125 -0
  18. package/esm/core/bus/index.js +366 -0
  19. package/esm/core/bus/interface.d.ts +36 -0
  20. package/esm/core/bus/interface.js +40 -0
  21. package/esm/core/component/address.d.ts +8 -0
  22. package/esm/core/component/address.js +72 -0
  23. package/esm/core/component/appPreloadProcessing.d.ts +1 -0
  24. package/esm/core/component/appPreloadProcessing.js +89 -0
  25. package/esm/core/component/ckp/index.d.ts +27 -0
  26. package/esm/core/component/ckp/index.js +166 -0
  27. package/esm/core/component/index.d.ts +51 -0
  28. package/esm/core/component/index.js +531 -0
  29. package/esm/core/drop-in/index.d.ts +22 -0
  30. package/esm/core/drop-in/index.js +104 -0
  31. package/esm/core/instance/index.d.ts +89 -0
  32. package/esm/core/instance/index.js +499 -0
  33. package/esm/foundation/core/index.d.ts +2 -2
  34. package/esm/foundation/core/index.js +9 -5
  35. package/esm/foundation/index.d.ts +8 -5
  36. package/esm/foundation/product-processor/easysafepay/deps.d.ts +5 -4
  37. package/esm/foundation/product-processor/easysafepay/deps.js +3 -2
  38. package/esm/foundation/product-processor/easysafepay/index.d.ts +2 -3
  39. package/esm/foundation/product-processor/easysafepay/index.js +115 -231
  40. package/esm/foundation/service/api-bus/index.d.ts +2 -2
  41. package/esm/foundation/service/container/index.d.ts +2 -2
  42. package/esm/foundation/service/container/index.js +0 -1
  43. package/esm/foundation/service/event-center.d.ts +4 -4
  44. package/esm/foundation/service/event-center.js +10 -10
  45. package/esm/foundation/service/global-data/index.d.ts +2 -2
  46. package/esm/foundation/service/index.d.ts +2 -2
  47. package/esm/foundation/service/log/index.d.ts +2 -2
  48. package/esm/foundation/service/requester/deps.d.ts +1 -1
  49. package/esm/foundation/service/requester/requester.d.ts +2 -2
  50. package/esm/foundation/service/security/index.d.ts +2 -2
  51. package/esm/foundation/service/security/index.js +1 -0
  52. package/esm/foundation/utils/redirect_utils.d.ts +5 -0
  53. package/esm/foundation/utils/redirect_utils.js +178 -24
  54. package/esm/foundation/utils/web_app_url_utils.js +1 -1
  55. package/esm/index.d.ts +27 -2
  56. package/esm/index.js +133 -7
  57. package/esm/plugin/applepay/component.d.ts +50 -0
  58. package/esm/plugin/applepay/component.js +339 -0
  59. package/esm/plugin/applepay/index.d.ts +17 -0
  60. package/esm/plugin/applepay/index.js +117 -0
  61. package/esm/plugin/applepay/interface.d.ts +161 -0
  62. package/esm/plugin/applepay/interface.js +69 -0
  63. package/esm/plugin/applepay/service.d.ts +54 -0
  64. package/esm/plugin/applepay/service.js +289 -0
  65. package/esm/plugin/component/cashierApp.d.ts +34 -0
  66. package/esm/plugin/component/cashierApp.js +237 -0
  67. package/esm/plugin/component/channel.d.ts +21 -0
  68. package/esm/plugin/component/channel.js +89 -0
  69. package/esm/plugin/component/component.inline.style.d.ts +10 -0
  70. package/esm/plugin/component/component.inline.style.js +119 -0
  71. package/esm/plugin/component/component.popup.style.d.ts +16 -0
  72. package/esm/plugin/component/component.popup.style.js +174 -0
  73. package/esm/plugin/component/index.d.ts +126 -0
  74. package/esm/plugin/component/index.js +1839 -0
  75. package/esm/plugin/component/popupWindow.style.d.ts +11 -0
  76. package/esm/plugin/component/popupWindow.style.js +121 -0
  77. package/esm/plugin/const.d.ts +2 -0
  78. package/esm/plugin/const.js +33 -0
  79. package/esm/plugin/drop-in/index.d.ts +71 -0
  80. package/esm/plugin/drop-in/index.js +324 -0
  81. package/esm/plugin/payment-element/utils.d.ts +2 -0
  82. package/esm/plugin/payment-element/utils.js +6 -0
  83. package/esm/plugin/paypal/index.d.ts +20 -0
  84. package/esm/plugin/paypal/index.js +390 -0
  85. package/esm/plugin/type.d.ts +34 -0
  86. package/esm/plugin/type.js +1 -0
  87. package/esm/plugin/utils.d.ts +6 -0
  88. package/esm/plugin/utils.js +21 -0
  89. package/esm/types/index.d.ts +10 -11
  90. package/esm/types/index.js +2 -1
  91. package/esm/util/createIframeNode.d.ts +6 -0
  92. package/esm/util/createIframeNode.js +48 -0
  93. package/esm/util/getBackScheme.d.ts +5 -0
  94. package/esm/util/getBackScheme.js +134 -0
  95. package/esm/util/index.d.ts +1 -1
  96. package/esm/util/index.js +4 -3
  97. package/esm/util/intl-callapp/es/index.js +0 -1
  98. package/esm/util/security.d.ts +33 -0
  99. package/esm/util/security.js +182 -0
  100. package/package.json +2 -2
  101. package/esm/foundation/types/index.d.ts +0 -4
  102. package/esm/foundation/types/index.js +0 -4
@@ -0,0 +1,89 @@
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
+ import { loadSDKScript } from "../../util";
6
+ export function loadChannelPneumaticControl(_x, _x2) {
7
+ return _loadChannelPneumaticControl.apply(this, arguments);
8
+ }
9
+ function _loadChannelPneumaticControl() {
10
+ _loadChannelPneumaticControl = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(paymentSessionFactor, logger) {
11
+ var _ref, _ref$frontModulesToBe, frontModulesToBeLoaded, paymentRequestId;
12
+ return _regeneratorRuntime().wrap(function _callee2$(_context2) {
13
+ while (1) switch (_context2.prev = _context2.next) {
14
+ case 0:
15
+ _ref = paymentSessionFactor || {}, _ref$frontModulesToBe = _ref.frontModulesToBeLoaded, frontModulesToBeLoaded = _ref$frontModulesToBe === void 0 ? [] : _ref$frontModulesToBe, paymentRequestId = _ref.paymentRequestId;
16
+ if (Array.isArray(frontModulesToBeLoaded)) {
17
+ _context2.next = 3;
18
+ break;
19
+ }
20
+ return _context2.abrupt("return");
21
+ case 3:
22
+ if (!(frontModulesToBeLoaded.length === 0)) {
23
+ _context2.next = 5;
24
+ break;
25
+ }
26
+ return _context2.abrupt("return");
27
+ case 5:
28
+ return _context2.abrupt("return", new Promise( /*#__PURE__*/function () {
29
+ var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(resolve) {
30
+ var NONE_LOAD_SDK_CHANNEL_LIST, promiseList;
31
+ return _regeneratorRuntime().wrap(function _callee$(_context) {
32
+ while (1) switch (_context.prev = _context.next) {
33
+ case 0:
34
+ NONE_LOAD_SDK_CHANNEL_LIST = /*#__PURE__*/function (NONE_LOAD_SDK_CHANNEL_LIST) {
35
+ NONE_LOAD_SDK_CHANNEL_LIST["AIRWALLEX"] = "AIRWALLEX";
36
+ return NONE_LOAD_SDK_CHANNEL_LIST;
37
+ }({});
38
+ promiseList = [];
39
+ logger.logInfo({
40
+ title: 'load_channel_sdk_start'
41
+ }, {
42
+ frontModulesToBeLoaded: JSON.stringify(frontModulesToBeLoaded),
43
+ paymentRequestId: paymentRequestId
44
+ });
45
+ frontModulesToBeLoaded.forEach(function (loadItem) {
46
+ var acquirerName = loadItem.acquirerName,
47
+ scriptUrl = loadItem.scriptUrl;
48
+ var promiseItem = null;
49
+ if (acquirerName === NONE_LOAD_SDK_CHANNEL_LIST.AIRWALLEX) {
50
+ var attrOptions = {
51
+ defer: true,
52
+ id: 'airwallex-fraud-api',
53
+ 'data-order-session-id': paymentRequestId
54
+ };
55
+ promiseItem = loadSDKScript({
56
+ src: scriptUrl,
57
+ attrOptions: attrOptions,
58
+ timeOut: 3
59
+ }, logger);
60
+ } else {
61
+ promiseItem = loadSDKScript({
62
+ src: scriptUrl,
63
+ timeOut: 3
64
+ }, logger);
65
+ }
66
+ promiseList.push(promiseItem);
67
+ });
68
+ _context.next = 6;
69
+ return Promise.all(promiseList);
70
+ case 6:
71
+ resolve(true);
72
+ case 7:
73
+ case "end":
74
+ return _context.stop();
75
+ }
76
+ }, _callee);
77
+ }));
78
+ return function (_x3) {
79
+ return _ref2.apply(this, arguments);
80
+ };
81
+ }()));
82
+ case 6:
83
+ case "end":
84
+ return _context2.stop();
85
+ }
86
+ }, _callee2);
87
+ }));
88
+ return _loadChannelPneumaticControl.apply(this, arguments);
89
+ }
@@ -0,0 +1,27 @@
1
+ import { IcreateComponent, IoptionsParams } from '../../../types';
2
+ import { Logger } from '../../../util/logger';
3
+ type LOCAL_URL = string;
4
+ export type CKPEmbeddedAppEnv = 'dev' | 'sit' | 'pre' | 'prod';
5
+ export type CKPEmbeddedEventType = 'SDK_PAYMENT_SUCCESSFUL' | 'SDK_PAYMENT_FAIL' | 'SDK_PAYMENT_CANCEL' | 'SDK_PAYMENT_CLICK_BACK_TO_MERCHANT';
6
+ export declare const getCKPPageAddress: (env: IoptionsParams['environment'] | LOCAL_URL) => string;
7
+ export declare class AMSCheckoutPage {
8
+ logger: Logger;
9
+ private _instanceId;
10
+ private originOptions;
11
+ private readonly APP_IFRAME_ID;
12
+ private eventListener?;
13
+ constructor(options: Pick<IoptionsParams, 'environment' | 'locale' | 'onEventCallback'>);
14
+ private generateIframeSrc;
15
+ private eventListenerWrapper;
16
+ private addListener;
17
+ private removeListener;
18
+ /**
19
+ * 挂载组件
20
+ */
21
+ mountComponent(params: Pick<IcreateComponent, 'sessionData'>, selector: string): Promise<void>;
22
+ /**
23
+ * 卸载组件
24
+ */
25
+ unmount(): void;
26
+ }
27
+ export {};
@@ -0,0 +1,166 @@
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 _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
3
+ 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); } }
4
+ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
5
+ 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; }
6
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
7
+ 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); }
8
+ import { v4 as uuid } from 'uuid';
9
+ import { EnvironmentEnum } from "../../../types";
10
+ import { queryParse } from "../../../util";
11
+ import { LogConfig, Logger } from "../../../util/logger";
12
+ var CKP_PAYMENT_PAGE_HOST = {
13
+ DEV: 'https://dev.page.alipay.net',
14
+ TEST: 'https://test.page.alipay.net',
15
+ PRE: 'https://pre.ac.alipay.com',
16
+ PROD: 'https://ac.alipay.com'
17
+ };
18
+
19
+ // for local development
20
+
21
+ var CKP_PAGE_ADDRESS = '/page/antom-web-checkout-v2/checkout-page/pages/payment/index.html';
22
+ export var getCKPPageAddress = function getCKPPageAddress(env) {
23
+ switch (env) {
24
+ case 'dev':
25
+ return "".concat(CKP_PAYMENT_PAGE_HOST.DEV).concat(CKP_PAGE_ADDRESS);
26
+ case 'sit':
27
+ return "".concat(CKP_PAYMENT_PAGE_HOST.TEST).concat(CKP_PAGE_ADDRESS);
28
+ case 'pre':
29
+ return "".concat(CKP_PAYMENT_PAGE_HOST.PRE).concat(CKP_PAGE_ADDRESS);
30
+ case 'prod':
31
+ case 'sandbox':
32
+ case 'light_sandbox':
33
+ return "".concat(CKP_PAYMENT_PAGE_HOST.PROD).concat(CKP_PAGE_ADDRESS);
34
+ default:
35
+ // for local development, e.g. http://localhost:5173/checkout-page/src/pages/payment/index.html
36
+ return env;
37
+ }
38
+ };
39
+ export var AMSCheckoutPage = /*#__PURE__*/function () {
40
+ function AMSCheckoutPage(options) {
41
+ var _this = this;
42
+ _classCallCheck(this, AMSCheckoutPage);
43
+ _defineProperty(this, "logger", void 0);
44
+ _defineProperty(this, "_instanceId", void 0);
45
+ _defineProperty(this, "originOptions", void 0);
46
+ _defineProperty(this, "APP_IFRAME_ID", 'antom-checkout-page-sub-page-iframe');
47
+ _defineProperty(this, "eventListener", void 0);
48
+ _defineProperty(this, "generateIframeSrc", function (sessionData) {
49
+ var env = _this.originOptions.environment || 'prod';
50
+ var session = sessionData || '';
51
+ var lang = _this.originOptions.locale || 'en_US';
52
+ var ckpPageAddress = getCKPPageAddress(env);
53
+ console.log('[antom-web-sdk] <antom-checkout-page> generateIframeSrc', _this.originOptions, env, session, lang, ckpPageAddress);
54
+
55
+ // 先获取去除的 query 参数的 url
56
+ var url = ckpPageAddress.split('?')[0];
57
+ var queryObj = queryParse(ckpPageAddress);
58
+ queryObj.sessionData = session;
59
+ queryObj.lang = lang;
60
+ queryObj.mode = 'embed';
61
+ if (env === 'sandbox') {
62
+ queryObj.shadow = 'true';
63
+ }
64
+ Object.keys(queryObj).forEach(function (key) {
65
+ url += "".concat(url.includes('?') ? '&' : '?').concat(key, "=").concat(encodeURIComponent(queryObj[key]));
66
+ });
67
+ return url;
68
+ });
69
+ _defineProperty(this, "eventListenerWrapper", function (event) {
70
+ var _ref = JSON.parse(event.data) || {},
71
+ code = _ref.code,
72
+ message = _ref.message,
73
+ result = _ref.result;
74
+ if (code && code.startsWith('SDK_PAYMENT')) {
75
+ var _this$eventListener;
76
+ console.log('[antom-web-sdk] <antom-checkout-page> eventListenerWrapper', event, message, result);
77
+ (_this$eventListener = _this.eventListener) === null || _this$eventListener === void 0 || _this$eventListener.call(_this, {
78
+ code: code,
79
+ message: message,
80
+ result: result
81
+ });
82
+ }
83
+ });
84
+ _defineProperty(this, "addListener", function () {
85
+ window.addEventListener('message', _this.eventListenerWrapper);
86
+ });
87
+ _defineProperty(this, "removeListener", function () {
88
+ window.removeEventListener('message', _this.eventListenerWrapper);
89
+ });
90
+ options.environment = options.environment || EnvironmentEnum.prod;
91
+ this._instanceId = uuid();
92
+ this.originOptions = options;
93
+ this.eventListener = options.onEventCallback;
94
+ this.logger = new Logger(LogConfig, ![EnvironmentEnum.prod, EnvironmentEnum.sandbox].includes(options === null || options === void 0 ? void 0 : options.environment));
95
+ Logger.setInstance(this.logger);
96
+ this.logger.setMedta({
97
+ instanceId: this._instanceId
98
+ });
99
+ this.logger.initTracker();
100
+ this.logger.setComponentStartTime(Date.now());
101
+ this.logger.setTrackId(this._instanceId);
102
+ this.logger.logInfo({
103
+ title: 'NEW_AMSSDK_BY_MECHANT',
104
+ msg: "".concat(options === null || options === void 0 ? void 0 : options.environment, "_").concat(options === null || options === void 0 ? void 0 : options.locale)
105
+ }).send();
106
+ }
107
+ _createClass(AMSCheckoutPage, [{
108
+ key: "mountComponent",
109
+ value:
110
+ /**
111
+ * 挂载组件
112
+ */
113
+ function mountComponent(params, selector) {
114
+ if (params.sessionData === undefined || params.sessionData === '' || typeof params.sessionData !== 'string') {
115
+ this.logger.logError({
116
+ title: 'PARAMS_ERROR_INVALID_SESSION_DATA'
117
+ });
118
+ console.error('[antom-web-sdk] <antom-checkout-page> mountComponent: sessionData is required and must be a string');
119
+ throw new Error('PARAMS_ERROR_INVALID_SESSION_DATA');
120
+ }
121
+ if (document.querySelector(this.APP_IFRAME_ID)) {
122
+ this.logger.logError({
123
+ title: 'PARAMS_ERROR_ALREADY_MOUNTED'
124
+ });
125
+ console.error('[antom-web-sdk] <antom-checkout-page> mountComponent: already mounted, please unmount first');
126
+ throw new Error('PARAMS_ERROR_ALREADY_MOUNTED');
127
+ }
128
+ this.addListener();
129
+ var ckpPageAddress = this.generateIframeSrc(params.sessionData);
130
+ var iframe = document.createElement('iframe');
131
+ iframe.id = this.APP_IFRAME_ID;
132
+ iframe.src = ckpPageAddress;
133
+ iframe.width = '100%';
134
+ iframe.height = '100%';
135
+ iframe.style.border = 'none';
136
+ var wrapper = document.querySelector(selector);
137
+ if (wrapper) {
138
+ wrapper.innerHTML = '';
139
+ wrapper.appendChild(iframe);
140
+ } else {
141
+ this.logger.logError({
142
+ title: 'PARAMS_ERROR_INVALID_SELECTOR'
143
+ });
144
+ console.error('[antom-web-sdk] <antom-checkout-page> mountComponent: invalid selector');
145
+ this.removeListener();
146
+ throw new Error('PARAMS_ERROR_INVALID_SELECTOR');
147
+ }
148
+ return Promise.resolve();
149
+ }
150
+
151
+ /**
152
+ * 卸载组件
153
+ */
154
+ }, {
155
+ key: "unmount",
156
+ value: function unmount() {
157
+ this.removeListener();
158
+ var iframe = document.getElementById(this.APP_IFRAME_ID);
159
+ if (iframe) {
160
+ iframe.remove();
161
+ }
162
+ return;
163
+ }
164
+ }]);
165
+ return AMSCheckoutPage;
166
+ }();
@@ -0,0 +1,51 @@
1
+ import ComponentApp from '../../plugin/component';
2
+ import { ComponentSignEnum, IcreateComponent, IoptionsParams, IPaymentSessionMetaData, Iselector, Isubmit, PaymentMethodTypeEnum, SubPaymentMethodTypeEnum } from '../../types';
3
+ import CoreInstance from '../instance/index';
4
+ export declare const getComponentSign: (params: IPaymentSessionMetaData) => ComponentSignEnum;
5
+ export declare const parseSessionData: (sessionData: string) => [IPaymentSessionMetaData, string];
6
+ export type IAMSComponentOptions = IoptionsParams & {
7
+ appVersion: string;
8
+ };
9
+ export declare class AMSComponent extends CoreInstance {
10
+ _componentApp: ComponentApp;
11
+ channelType: ComponentSignEnum[];
12
+ productSceneVersion: string;
13
+ timer: any;
14
+ constructor(options: IAMSComponentOptions);
15
+ private parameterInitAndCheck;
16
+ private pluginAppendIframe;
17
+ private savePreviousChannel;
18
+ /**
19
+ * 初始化 Bus总线的能力
20
+ */
21
+ private registerBusAbility;
22
+ /**
23
+ * To determine whether the corresponding payment method is available,
24
+ * only the channel described in the document will be called, and it will be returned as available by default
25
+ * @param paymentMethod - described in the document
26
+ * @param subPaymentMethod - described in the document
27
+ * @returns
28
+ */
29
+ canMakePayments(paymentMethod: PaymentMethodTypeEnum, subPaymentMethod?: SubPaymentMethodTypeEnum): Promise<boolean>;
30
+ /**
31
+ * @description Create component application
32
+ * @param params - The data source created by the component, necessary sessionData, optional appearance configuration, and refer to the documentation for other parameters and detailed information.
33
+ */
34
+ createComponent(params: IcreateComponent): Promise<void>;
35
+ private createComponentProcess;
36
+ preloadComponent(channelType: any, productSceneVersion: any): void;
37
+ private clearPreloadIframe;
38
+ /**
39
+ * @description Create and render components in the specified element area
40
+ * @param params - The data source created by the component, necessary sessionData, optional appearance configurations, and refer to the documentation for other parameters and detailed information.
41
+ * @param selector - Necessary element selector ID
42
+ */
43
+ mountComponent(params: IcreateComponent, selector: Iselector): Promise<void>;
44
+ private mountComponentProcess;
45
+ /**
46
+ * @description Execute payment submission process
47
+ * @description - When using your own payment button, you can execute the submit payment process by actively calling this function.
48
+ * @param data - Transfer information in the submission interface according to your requirements (optional)
49
+ */
50
+ submit(data?: Isubmit): Promise<unknown>;
51
+ }