@dintero/checkout-web-sdk 0.4.5 → 0.5.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 (22) hide show
  1. package/.github/workflows/release.yml +1 -1
  2. package/README.md +12 -3
  3. package/coverage/{Chrome Headless 105.0.5173.0 (Linux x86_64) → Chrome Headless 106.0.5249.0 (Linux x86_64)}/html/base.css +0 -0
  4. package/coverage/{Chrome Headless 105.0.5173.0 (Linux x86_64) → Chrome Headless 106.0.5249.0 (Linux x86_64)}/html/block-navigation.js +0 -0
  5. package/coverage/{Chrome Headless 105.0.5173.0 (Linux x86_64) → Chrome Headless 106.0.5249.0 (Linux x86_64)}/html/checkout.ts.html +7 -4
  6. package/coverage/{Chrome Headless 105.0.5173.0 (Linux x86_64) → Chrome Headless 106.0.5249.0 (Linux x86_64)}/html/createIframeAsync.ts.html +15 -15
  7. package/coverage/{Chrome Headless 105.0.5173.0 (Linux x86_64) → Chrome Headless 106.0.5249.0 (Linux x86_64)}/html/favicon.png +0 -0
  8. package/coverage/{Chrome Headless 105.0.5173.0 (Linux x86_64) → Chrome Headless 106.0.5249.0 (Linux x86_64)}/html/index.html +17 -17
  9. package/coverage/{Chrome Headless 105.0.5173.0 (Linux x86_64) → Chrome Headless 106.0.5249.0 (Linux x86_64)}/html/index.ts.html +102 -30
  10. package/coverage/{Chrome Headless 105.0.5173.0 (Linux x86_64) → Chrome Headless 106.0.5249.0 (Linux x86_64)}/html/prettify.css +0 -0
  11. package/coverage/{Chrome Headless 105.0.5173.0 (Linux x86_64) → Chrome Headless 106.0.5249.0 (Linux x86_64)}/html/prettify.js +0 -0
  12. package/coverage/{Chrome Headless 105.0.5173.0 (Linux x86_64) → Chrome Headless 106.0.5249.0 (Linux x86_64)}/html/sort-arrow-sprite.png +0 -0
  13. package/coverage/{Chrome Headless 105.0.5173.0 (Linux x86_64) → Chrome Headless 106.0.5249.0 (Linux x86_64)}/html/sorter.js +0 -0
  14. package/coverage/{Chrome Headless 105.0.5173.0 (Linux x86_64) → Chrome Headless 106.0.5249.0 (Linux x86_64)}/html/subscribe.ts.html +15 -15
  15. package/coverage/{Chrome Headless 105.0.5173.0 (Linux x86_64) → Chrome Headless 106.0.5249.0 (Linux x86_64)}/html/url.ts.html +1 -1
  16. package/dist/declarations/src/checkout.d.ts +2 -1
  17. package/dist/dintero-checkout-web-sdk.cjs.dev.js +27 -2
  18. package/dist/dintero-checkout-web-sdk.cjs.prod.js +27 -2
  19. package/dist/dintero-checkout-web-sdk.esm.js +27 -2
  20. package/dist/dintero-checkout-web-sdk.umd.min.js +1 -1
  21. package/dist/dintero-checkout-web-sdk.umd.min.js.map +1 -1
  22. package/package.json +2 -2
@@ -213,7 +213,7 @@
213
213
  <span class="cline-any cline-neutral">&nbsp;</span>
214
214
  <span class="cline-any cline-neutral">&nbsp;</span>
215
215
  <span class="cline-any cline-yes">1x</span>
216
- <span class="cline-any cline-yes">27x</span>
216
+ <span class="cline-any cline-yes">28x</span>
217
217
  <span class="cline-any cline-yes">1x</span>
218
218
  <span class="cline-any cline-neutral">&nbsp;</span>
219
219
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -265,37 +265,37 @@
265
265
  <span class="cline-any cline-neutral">&nbsp;</span>
266
266
  <span class="cline-any cline-neutral">&nbsp;</span>
267
267
  <span class="cline-any cline-yes">1x</span>
268
- <span class="cline-any cline-yes">1295x</span>
268
+ <span class="cline-any cline-yes">1490x</span>
269
269
  <span class="cline-any cline-neutral">&nbsp;</span>
270
270
  <span class="cline-any cline-neutral">&nbsp;</span>
271
271
  <span class="cline-any cline-neutral">&nbsp;</span>
272
- <span class="cline-any cline-yes">259x</span>
273
- <span class="cline-any cline-yes">3679x</span>
274
- <span class="cline-any cline-yes">3679x</span>
275
- <span class="cline-any cline-yes">3679x</span>
272
+ <span class="cline-any cline-yes">298x</span>
273
+ <span class="cline-any cline-yes">4392x</span>
274
+ <span class="cline-any cline-yes">4392x</span>
275
+ <span class="cline-any cline-yes">4392x</span>
276
276
  <span class="cline-any cline-neutral">&nbsp;</span>
277
- <span class="cline-any cline-yes">3679x</span>
278
- <span class="cline-any cline-yes">3679x</span>
277
+ <span class="cline-any cline-yes">4392x</span>
278
+ <span class="cline-any cline-yes">4392x</span>
279
279
  <span class="cline-any cline-neutral">&nbsp;</span>
280
280
  <span class="cline-any cline-neutral">&nbsp;</span>
281
281
  <span class="cline-any cline-neutral">&nbsp;</span>
282
282
  <span class="cline-any cline-neutral">&nbsp;</span>
283
283
  <span class="cline-any cline-neutral">&nbsp;</span>
284
- <span class="cline-any cline-yes">27x</span>
285
- <span class="cline-any cline-yes">27x</span>
284
+ <span class="cline-any cline-yes">28x</span>
285
+ <span class="cline-any cline-yes">28x</span>
286
286
  <span class="cline-any cline-neutral">&nbsp;</span>
287
287
  <span class="cline-any cline-neutral">&nbsp;</span>
288
288
  <span class="cline-any cline-neutral">&nbsp;</span>
289
289
  <span class="cline-any cline-neutral">&nbsp;</span>
290
- <span class="cline-any cline-yes">259x</span>
290
+ <span class="cline-any cline-yes">298x</span>
291
291
  <span class="cline-any cline-neutral">&nbsp;</span>
292
292
  <span class="cline-any cline-neutral">&nbsp;</span>
293
- <span class="cline-any cline-yes">259x</span>
294
- <span class="cline-any cline-yes">32x</span>
293
+ <span class="cline-any cline-yes">298x</span>
294
+ <span class="cline-any cline-yes">35x</span>
295
295
  <span class="cline-any cline-neutral">&nbsp;</span>
296
296
  <span class="cline-any cline-neutral">&nbsp;</span>
297
297
  <span class="cline-any cline-neutral">&nbsp;</span>
298
- <span class="cline-any cline-yes">259x</span>
298
+ <span class="cline-any cline-yes">298x</span>
299
299
  <span class="cline-any cline-neutral">&nbsp;</span>
300
300
  <span class="cline-any cline-neutral">&nbsp;</span>
301
301
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -427,7 +427,7 @@ export const subscribe = (options: SubscriptionOptions): Subscription =&gt; {
427
427
  <div class='footer quiet pad2 space-top1 center small'>
428
428
  Code coverage generated by
429
429
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
430
- at Mon Aug 01 2022 12:32:43 GMT+0000 (Coordinated Universal Time)
430
+ at Tue Oct 18 2022 09:06:23 GMT+0000 (Coordinated Universal Time)
431
431
  </div>
432
432
  </div>
433
433
  <script src="prettify.js"></script>
@@ -169,7 +169,7 @@ export const getSessionUrl = (options: SessionUrlOptions): string =&gt; {
169
169
  <div class='footer quiet pad2 space-top1 center small'>
170
170
  Code coverage generated by
171
171
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
172
- at Mon Aug 01 2022 12:32:43 GMT+0000 (Coordinated Universal Time)
172
+ at Tue Oct 18 2022 09:06:23 GMT+0000 (Coordinated Universal Time)
173
173
  </div>
174
174
  </div>
175
175
  <script src="prettify.js"></script>
@@ -14,7 +14,8 @@ export declare enum CheckoutEvents {
14
14
  }
15
15
  export declare enum InternalCheckoutEvents {
16
16
  HeightChanged = "HeightChanged",
17
- LanguageChanged = "LanguageChanged"
17
+ LanguageChanged = "LanguageChanged",
18
+ ScrollToTop = "ScrollToTop"
18
19
  }
19
20
  export declare type SessionNotFound = {
20
21
  type: CheckoutEvents.SessionNotFound;
@@ -6,7 +6,7 @@ require('native-promise-only');
6
6
 
7
7
  var pkg = {
8
8
  name: "@dintero/checkout-web-sdk",
9
- version: "0.4.5",
9
+ version: "0.5.0",
10
10
  description: "Dintero Checkout SDK for web frontends",
11
11
  main: "dist/dintero-checkout-web-sdk.cjs.js",
12
12
  module: "dist/dintero-checkout-web-sdk.esm.js",
@@ -46,7 +46,7 @@ var pkg = {
46
46
  "karma-typescript": "^5.0.3",
47
47
  mocha: "^8.1.1",
48
48
  prettier: "^2.6.2",
49
- puppeteer: "^15.0.0",
49
+ puppeteer: "^18.0.5",
50
50
  "semantic-release": "^19.0.2",
51
51
  sinon: "^14.0.0",
52
52
  typescript: "^4.2.4"
@@ -77,6 +77,7 @@ let InternalCheckoutEvents;
77
77
  (function (InternalCheckoutEvents) {
78
78
  InternalCheckoutEvents["HeightChanged"] = "HeightChanged";
79
79
  InternalCheckoutEvents["LanguageChanged"] = "LanguageChanged";
80
+ InternalCheckoutEvents["ScrollToTop"] = "ScrollToTop";
80
81
  })(InternalCheckoutEvents || (InternalCheckoutEvents = {}));
81
82
 
82
83
  /**
@@ -284,6 +285,27 @@ const setIframeHeight = (event, checkout) => {
284
285
  checkout.iframe.setAttribute("style", `width:100%; height:${event.height}px;`);
285
286
  }
286
287
  };
288
+ /**
289
+ * An event handler that scrolls to the top of the iframe. This is useful when the user
290
+ * is navigated to another page.
291
+ */
292
+
293
+
294
+ const scrollToIframeTop = (event, checkout) => {
295
+ try {
296
+ checkout.iframe.scrollIntoView({
297
+ block: 'start',
298
+ behavior: 'smooth'
299
+ });
300
+ } catch (e) {
301
+ // Ignore erorr silenty bug log it to the console.
302
+ console.error(e);
303
+ }
304
+ };
305
+ /**
306
+ * An event handler that sets language in the iframe.
307
+ */
308
+
287
309
 
288
310
  const setLanguage = (event, checkout) => {
289
311
  if (event.language) {
@@ -441,6 +463,9 @@ const embed = async options => {
441
463
  }, {
442
464
  handler: setIframeHeight,
443
465
  eventTypes: [InternalCheckoutEvents.HeightChanged]
466
+ }, {
467
+ handler: scrollToIframeTop,
468
+ eventTypes: [InternalCheckoutEvents.ScrollToTop]
444
469
  }, {
445
470
  handler: onSession,
446
471
  eventTypes: [CheckoutEvents.SessionLoaded, CheckoutEvents.SessionUpdated]
@@ -6,7 +6,7 @@ require('native-promise-only');
6
6
 
7
7
  var pkg = {
8
8
  name: "@dintero/checkout-web-sdk",
9
- version: "0.4.5",
9
+ version: "0.5.0",
10
10
  description: "Dintero Checkout SDK for web frontends",
11
11
  main: "dist/dintero-checkout-web-sdk.cjs.js",
12
12
  module: "dist/dintero-checkout-web-sdk.esm.js",
@@ -46,7 +46,7 @@ var pkg = {
46
46
  "karma-typescript": "^5.0.3",
47
47
  mocha: "^8.1.1",
48
48
  prettier: "^2.6.2",
49
- puppeteer: "^15.0.0",
49
+ puppeteer: "^18.0.5",
50
50
  "semantic-release": "^19.0.2",
51
51
  sinon: "^14.0.0",
52
52
  typescript: "^4.2.4"
@@ -77,6 +77,7 @@ let InternalCheckoutEvents;
77
77
  (function (InternalCheckoutEvents) {
78
78
  InternalCheckoutEvents["HeightChanged"] = "HeightChanged";
79
79
  InternalCheckoutEvents["LanguageChanged"] = "LanguageChanged";
80
+ InternalCheckoutEvents["ScrollToTop"] = "ScrollToTop";
80
81
  })(InternalCheckoutEvents || (InternalCheckoutEvents = {}));
81
82
 
82
83
  /**
@@ -284,6 +285,27 @@ const setIframeHeight = (event, checkout) => {
284
285
  checkout.iframe.setAttribute("style", `width:100%; height:${event.height}px;`);
285
286
  }
286
287
  };
288
+ /**
289
+ * An event handler that scrolls to the top of the iframe. This is useful when the user
290
+ * is navigated to another page.
291
+ */
292
+
293
+
294
+ const scrollToIframeTop = (event, checkout) => {
295
+ try {
296
+ checkout.iframe.scrollIntoView({
297
+ block: 'start',
298
+ behavior: 'smooth'
299
+ });
300
+ } catch (e) {
301
+ // Ignore erorr silenty bug log it to the console.
302
+ console.error(e);
303
+ }
304
+ };
305
+ /**
306
+ * An event handler that sets language in the iframe.
307
+ */
308
+
287
309
 
288
310
  const setLanguage = (event, checkout) => {
289
311
  if (event.language) {
@@ -441,6 +463,9 @@ const embed = async options => {
441
463
  }, {
442
464
  handler: setIframeHeight,
443
465
  eventTypes: [InternalCheckoutEvents.HeightChanged]
466
+ }, {
467
+ handler: scrollToIframeTop,
468
+ eventTypes: [InternalCheckoutEvents.ScrollToTop]
444
469
  }, {
445
470
  handler: onSession,
446
471
  eventTypes: [CheckoutEvents.SessionLoaded, CheckoutEvents.SessionUpdated]
@@ -2,7 +2,7 @@ import 'native-promise-only';
2
2
 
3
3
  var pkg = {
4
4
  name: "@dintero/checkout-web-sdk",
5
- version: "0.4.5",
5
+ version: "0.5.0",
6
6
  description: "Dintero Checkout SDK for web frontends",
7
7
  main: "dist/dintero-checkout-web-sdk.cjs.js",
8
8
  module: "dist/dintero-checkout-web-sdk.esm.js",
@@ -42,7 +42,7 @@ var pkg = {
42
42
  "karma-typescript": "^5.0.3",
43
43
  mocha: "^8.1.1",
44
44
  prettier: "^2.6.2",
45
- puppeteer: "^15.0.0",
45
+ puppeteer: "^18.0.5",
46
46
  "semantic-release": "^19.0.2",
47
47
  sinon: "^14.0.0",
48
48
  typescript: "^4.2.4"
@@ -73,6 +73,7 @@ let InternalCheckoutEvents;
73
73
  (function (InternalCheckoutEvents) {
74
74
  InternalCheckoutEvents["HeightChanged"] = "HeightChanged";
75
75
  InternalCheckoutEvents["LanguageChanged"] = "LanguageChanged";
76
+ InternalCheckoutEvents["ScrollToTop"] = "ScrollToTop";
76
77
  })(InternalCheckoutEvents || (InternalCheckoutEvents = {}));
77
78
 
78
79
  /**
@@ -280,6 +281,27 @@ const setIframeHeight = (event, checkout) => {
280
281
  checkout.iframe.setAttribute("style", `width:100%; height:${event.height}px;`);
281
282
  }
282
283
  };
284
+ /**
285
+ * An event handler that scrolls to the top of the iframe. This is useful when the user
286
+ * is navigated to another page.
287
+ */
288
+
289
+
290
+ const scrollToIframeTop = (event, checkout) => {
291
+ try {
292
+ checkout.iframe.scrollIntoView({
293
+ block: 'start',
294
+ behavior: 'smooth'
295
+ });
296
+ } catch (e) {
297
+ // Ignore erorr silenty bug log it to the console.
298
+ console.error(e);
299
+ }
300
+ };
301
+ /**
302
+ * An event handler that sets language in the iframe.
303
+ */
304
+
283
305
 
284
306
  const setLanguage = (event, checkout) => {
285
307
  if (event.language) {
@@ -437,6 +459,9 @@ const embed = async options => {
437
459
  }, {
438
460
  handler: setIframeHeight,
439
461
  eventTypes: [InternalCheckoutEvents.HeightChanged]
462
+ }, {
463
+ handler: scrollToIframeTop,
464
+ eventTypes: [InternalCheckoutEvents.ScrollToTop]
440
465
  }, {
441
466
  handler: onSession,
442
467
  eventTypes: [CheckoutEvents.SessionLoaded, CheckoutEvents.SessionUpdated]
@@ -3,5 +3,5 @@
3
3
  v0.8.1 (c) Kyle Simpson
4
4
  MIT License: http://getify.mit-license.org
5
5
  */
6
- var t,o,i;i=function(){var e,n,t,o=Object.prototype.toString,i="undefined"!=typeof setImmediate?function(e){return setImmediate(e)}:setTimeout;try{Object.defineProperty({},"x",{}),e=function(e,n,t,o){return Object.defineProperty(e,n,{value:t,writable:!0,configurable:!1!==o})}}catch(n){e=function(e,n,t){return e[n]=t,e}}function r(e,o){t.add(e,o),n||(n=i(t.drain))}function s(e){var n,t=typeof e;return null==e||"object"!=t&&"function"!=t||(n=e.then),"function"==typeof n&&n}function a(){for(var e=0;e<this.chain.length;e++)c(this,1===this.state?this.chain[e].success:this.chain[e].failure,this.chain[e]);this.chain.length=0}function c(e,n,t){var o,i;try{!1===n?t.reject(e.msg):(o=!0===n?e.msg:n.call(void 0,e.msg))===t.promise?t.reject(TypeError("Promise-chain cycle")):(i=s(o))?i.call(o,t.resolve,t.reject):t.resolve(o)}catch(e){t.reject(e)}}function d(e){var n,t=this;if(!t.triggered){t.triggered=!0,t.def&&(t=t.def);try{(n=s(e))?r((function(){var o=new f(t);try{n.call(e,(function(){d.apply(o,arguments)}),(function(){u.apply(o,arguments)}))}catch(e){u.call(o,e)}})):(t.msg=e,t.state=1,t.chain.length>0&&r(a,t))}catch(e){u.call(new f(t),e)}}}function u(e){var n=this;n.triggered||(n.triggered=!0,n.def&&(n=n.def),n.msg=e,n.state=2,n.chain.length>0&&r(a,n))}function l(e,n,t,o){for(var i=0;i<n.length;i++)!function(i){e.resolve(n[i]).then((function(e){t(i,e)}),o)}(i)}function f(e){this.def=e,this.triggered=!1}function h(e){this.promise=e,this.state=0,this.triggered=!1,this.chain=[],this.msg=void 0}function p(e){if("function"!=typeof e)throw TypeError("Not a function");if(0!==this.__NPO__)throw TypeError("Not a promise");this.__NPO__=1;var n=new h(this);this.then=function(e,t){var o={success:"function"!=typeof e||e,failure:"function"==typeof t&&t};return o.promise=new this.constructor((function(e,n){if("function"!=typeof e||"function"!=typeof n)throw TypeError("Not a function");o.resolve=e,o.reject=n})),n.chain.push(o),0!==n.state&&r(a,n),o.promise},this.catch=function(e){return this.then(void 0,e)};try{e.call(void 0,(function(e){d.call(n,e)}),(function(e){u.call(n,e)}))}catch(e){u.call(n,e)}}t=function(){var e,t,o;function i(e,n){this.fn=e,this.self=n,this.next=void 0}return{add:function(n,r){o=new i(n,r),t?t.next=o:e=o,t=o,o=void 0},drain:function(){var o=e;for(e=t=n=void 0;o;)o.fn.call(o.self),o=o.next}}}();var y=e({},"constructor",p,!1);return p.prototype=y,e(y,"__NPO__",0,!1),e(p,"resolve",(function(e){return e&&"object"==typeof e&&1===e.__NPO__?e:new this((function(n,t){if("function"!=typeof n||"function"!=typeof t)throw TypeError("Not a function");n(e)}))})),e(p,"reject",(function(e){return new this((function(n,t){if("function"!=typeof n||"function"!=typeof t)throw TypeError("Not a function");t(e)}))})),e(p,"all",(function(e){var n=this;return"[object Array]"!=o.call(e)?n.reject(TypeError("Not an array")):0===e.length?n.resolve([]):new n((function(t,o){if("function"!=typeof t||"function"!=typeof o)throw TypeError("Not a function");var i=e.length,r=Array(i),s=0;l(n,e,(function(e,n){r[e]=n,++s===i&&t(r)}),o)}))})),e(p,"race",(function(e){var n=this;return"[object Array]"!=o.call(e)?n.reject(TypeError("Not an array")):new n((function(t,o){if("function"!=typeof t||"function"!=typeof o)throw TypeError("Not a function");l(n,e,(function(e,n){t(n)}),o)}))})),p},(o=n)[t="Promise"]=o[t]||i(),e.exports&&(e.exports=o[t])}));var t="0.4.5";let o,i;!function(e){e.SessionNotFound="SessionNotFound",e.SessionLoaded="SessionLoaded",e.SessionUpdated="SessionUpdated",e.SessionCancel="SessionCancel",e.SessionPaymentOnHold="SessionPaymentOnHold",e.SessionPaymentAuthorized="SessionPaymentAuthorized",e.SessionPaymentError="SessionPaymentError",e.SessionLocked="SessionLocked",e.SessionLockFailed="SessionLockFailed",e.ActivePaymentProductType="ActivePaymentProductType",e.ValidateSession="ValidateSession"}(o||(o={})),function(e){e.HeightChanged="HeightChanged",e.LanguageChanged="LanguageChanged"}(i||(i={}));const r=e=>{window.location.assign(e)},s=e=>{const{sid:n,endpoint:o,language:i,ui:r,shouldCallValidateSession:s}=e;if(!o)throw new Error("Invalid endpoint");const a=[i?`language=${i}`:"",r?`ui=${r}`:"",`sdk=${t}`,s?"client_side_validation=true":void 0].filter((e=>e)).join("&");return`${o}/v1/view/${n}${a?"?"+a:""}`},a=e=>{const{sid:n,endpoint:t,handler:o,eventTypes:i,checkout:r}=e,s=e=>{const s=e.origin===t,a=e.source===r.iframe.contentWindow,c=e.data&&e.data.sid===n,d=-1!==i.indexOf(e.data&&e.data.type);s&&a&&c&&d&&(((e,n)=>{n.data.mid&&e.contentWindow&&e.contentWindow.postMessage({ack:n.data.mid},n.origin||"*")})(r.iframe,e),o(e.data,r))};window.addEventListener("message",s,!1);return{unsubscribe:()=>{window.removeEventListener("message",s,!1)}}},c=e=>{e.href&&r(e.href)},d=(e,n)=>{(e.height||0===e.height)&&n.iframe.setAttribute("style",`width:100%; height:${e.height}px;`)},u=(e,n)=>{e.language&&(n.language=e.language)},l=(e,n,i)=>(e,r)=>{const s=["sid","merchant_reference","transaction_id","error"].map((n=>[n,e[n]]));e.type!==o.SessionCancel||e.error||s.push(["error","cancelled"]),s.push(["language",r.language]),s.push(["sdk",t]);const a=s.filter((([e,n])=>n)).map((([e,n])=>`${e}=${n}`)).join("&");r.iframe.setAttribute("src",`${n}/embedResult/?${a}`),i(e,r)};e.embed=async e=>{const{container:n,sid:t,language:r,endpoint:f="https://checkout.dintero.com",onSession:h,onSessionCancel:p,onPayment:y,onPaymentAuthorized:g,onPaymentError:m,onSessionNotFound:v,onSessionLocked:w,onSessionLockFailed:S,onActivePaymentType:b,onValidateSession:T}=e;let P;const E=[],{iframe:_,initiate:k}=((e,n,t)=>{if(!e||!e.appendChild)throw new Error("Invalid container");const o=document.createElement("iframe");return o.setAttribute("frameborder","0"),o.setAttribute("allowTransparency","true"),o.setAttribute("style","width:100%; height:0;"),o.setAttribute("sandbox","allow-scripts allow-forms allow-same-origin allow-popups allow-popups-to-escape-sandbox"),o.setAttribute("importance","high"),o.setAttribute("src",t),{iframe:o,initiate:async()=>new Promise(((n,t)=>{o.onload=()=>n(),o.onerror=()=>t(),e.appendChild(o)}))}})(n,0,s({sid:t,endpoint:f,language:r,ui:"inline",shouldCallValidateSession:void 0!==T})),A=(e,n,o)=>{if(!P)throw new Error("Unable to create action promise: checkout is undefined");return new Promise(((i,r)=>{const s=[];s.push(a({sid:t,endpoint:f,handler:e=>{s.forEach((e=>e.unsubscribe())),i(e)},eventTypes:[n],checkout:P})),s.push(a({sid:t,endpoint:f,handler:()=>{s.forEach((e=>e.unsubscribe())),r(`Received unexpected event: ${o}`)},eventTypes:[o],checkout:P})),e()}))},j=()=>A((()=>{((e,n)=>{e.contentWindow&&e.contentWindow.postMessage({type:"RefreshSession",sid:n},"*")})(_,t)}),o.SessionUpdated,o.SessionNotFound),L=e=>{((e,n,t)=>{e.contentWindow&&e.contentWindow.postMessage({type:"ValidationResult",sid:n,...t},"*")})(_,t,e)};return P={destroy:()=>{_&&(E.forEach((e=>e.unsubscribe())),_.parentElement&&n.removeChild(_))},iframe:_,language:r,lockSession:()=>A((()=>{((e,n)=>{e.contentWindow&&e.contentWindow.postMessage({type:"LockSession",sid:n},"*")})(_,t)}),o.SessionLocked,o.SessionLockFailed),refreshSession:j,setActivePaymentProductType:e=>{((e,n,t)=>{e.contentWindow&&e.contentWindow.postMessage({type:"SetActivePaymentProductType",sid:n,payment_product_type:t},"*")})(_,t,e)},submitValidationResult:L},[{handler:u,eventTypes:[i.LanguageChanged]},{handler:d,eventTypes:[i.HeightChanged]},{handler:h,eventTypes:[o.SessionLoaded,o.SessionUpdated]},{eventTypes:[o.SessionPaymentOnHold],handler:y?l(0,f,y):c},{eventTypes:[o.SessionPaymentAuthorized],handler:g||y?l(0,f,g||y):c},{handler:p?l(0,f,p):c,eventTypes:[o.SessionCancel]},{handler:m?l(0,f,m):c,eventTypes:[o.SessionPaymentError]},{handler:v,eventTypes:[o.SessionNotFound]},{handler:(e,n)=>{w&&w(e,n,j)},eventTypes:[o.SessionLocked]},{handler:S,eventTypes:[o.SessionLockFailed]},{handler:b,eventTypes:[o.ActivePaymentProductType]},{handler:b,eventTypes:[o.ActivePaymentProductType]},{handler:(e,n)=>{T&&T(e,n,L)},eventTypes:[o.ValidateSession]}].forEach((({handler:e,eventTypes:n})=>{e&&E.push(a({sid:t,endpoint:f,handler:e,eventTypes:n,checkout:P}))})),await k(),P},e.redirect=e=>{const{sid:n,language:t,endpoint:o="https://checkout.dintero.com"}=e;r(s({sid:n,endpoint:o,language:t,shouldCallValidateSession:!1}))},Object.defineProperty(e,"__esModule",{value:!0})}));
6
+ var t,o,i;i=function(){var e,n,t,o=Object.prototype.toString,i="undefined"!=typeof setImmediate?function(e){return setImmediate(e)}:setTimeout;try{Object.defineProperty({},"x",{}),e=function(e,n,t,o){return Object.defineProperty(e,n,{value:t,writable:!0,configurable:!1!==o})}}catch(n){e=function(e,n,t){return e[n]=t,e}}function r(e,o){t.add(e,o),n||(n=i(t.drain))}function s(e){var n,t=typeof e;return null==e||"object"!=t&&"function"!=t||(n=e.then),"function"==typeof n&&n}function a(){for(var e=0;e<this.chain.length;e++)c(this,1===this.state?this.chain[e].success:this.chain[e].failure,this.chain[e]);this.chain.length=0}function c(e,n,t){var o,i;try{!1===n?t.reject(e.msg):(o=!0===n?e.msg:n.call(void 0,e.msg))===t.promise?t.reject(TypeError("Promise-chain cycle")):(i=s(o))?i.call(o,t.resolve,t.reject):t.resolve(o)}catch(e){t.reject(e)}}function d(e){var n,t=this;if(!t.triggered){t.triggered=!0,t.def&&(t=t.def);try{(n=s(e))?r((function(){var o=new f(t);try{n.call(e,(function(){d.apply(o,arguments)}),(function(){u.apply(o,arguments)}))}catch(e){u.call(o,e)}})):(t.msg=e,t.state=1,t.chain.length>0&&r(a,t))}catch(e){u.call(new f(t),e)}}}function u(e){var n=this;n.triggered||(n.triggered=!0,n.def&&(n=n.def),n.msg=e,n.state=2,n.chain.length>0&&r(a,n))}function l(e,n,t,o){for(var i=0;i<n.length;i++)!function(i){e.resolve(n[i]).then((function(e){t(i,e)}),o)}(i)}function f(e){this.def=e,this.triggered=!1}function h(e){this.promise=e,this.state=0,this.triggered=!1,this.chain=[],this.msg=void 0}function p(e){if("function"!=typeof e)throw TypeError("Not a function");if(0!==this.__NPO__)throw TypeError("Not a promise");this.__NPO__=1;var n=new h(this);this.then=function(e,t){var o={success:"function"!=typeof e||e,failure:"function"==typeof t&&t};return o.promise=new this.constructor((function(e,n){if("function"!=typeof e||"function"!=typeof n)throw TypeError("Not a function");o.resolve=e,o.reject=n})),n.chain.push(o),0!==n.state&&r(a,n),o.promise},this.catch=function(e){return this.then(void 0,e)};try{e.call(void 0,(function(e){d.call(n,e)}),(function(e){u.call(n,e)}))}catch(e){u.call(n,e)}}t=function(){var e,t,o;function i(e,n){this.fn=e,this.self=n,this.next=void 0}return{add:function(n,r){o=new i(n,r),t?t.next=o:e=o,t=o,o=void 0},drain:function(){var o=e;for(e=t=n=void 0;o;)o.fn.call(o.self),o=o.next}}}();var y=e({},"constructor",p,!1);return p.prototype=y,e(y,"__NPO__",0,!1),e(p,"resolve",(function(e){return e&&"object"==typeof e&&1===e.__NPO__?e:new this((function(n,t){if("function"!=typeof n||"function"!=typeof t)throw TypeError("Not a function");n(e)}))})),e(p,"reject",(function(e){return new this((function(n,t){if("function"!=typeof n||"function"!=typeof t)throw TypeError("Not a function");t(e)}))})),e(p,"all",(function(e){var n=this;return"[object Array]"!=o.call(e)?n.reject(TypeError("Not an array")):0===e.length?n.resolve([]):new n((function(t,o){if("function"!=typeof t||"function"!=typeof o)throw TypeError("Not a function");var i=e.length,r=Array(i),s=0;l(n,e,(function(e,n){r[e]=n,++s===i&&t(r)}),o)}))})),e(p,"race",(function(e){var n=this;return"[object Array]"!=o.call(e)?n.reject(TypeError("Not an array")):new n((function(t,o){if("function"!=typeof t||"function"!=typeof o)throw TypeError("Not a function");l(n,e,(function(e,n){t(n)}),o)}))})),p},(o=n)[t="Promise"]=o[t]||i(),e.exports&&(e.exports=o[t])}));var t="0.5.0";let o,i;!function(e){e.SessionNotFound="SessionNotFound",e.SessionLoaded="SessionLoaded",e.SessionUpdated="SessionUpdated",e.SessionCancel="SessionCancel",e.SessionPaymentOnHold="SessionPaymentOnHold",e.SessionPaymentAuthorized="SessionPaymentAuthorized",e.SessionPaymentError="SessionPaymentError",e.SessionLocked="SessionLocked",e.SessionLockFailed="SessionLockFailed",e.ActivePaymentProductType="ActivePaymentProductType",e.ValidateSession="ValidateSession"}(o||(o={})),function(e){e.HeightChanged="HeightChanged",e.LanguageChanged="LanguageChanged",e.ScrollToTop="ScrollToTop"}(i||(i={}));const r=e=>{window.location.assign(e)},s=e=>{const{sid:n,endpoint:o,language:i,ui:r,shouldCallValidateSession:s}=e;if(!o)throw new Error("Invalid endpoint");const a=[i?`language=${i}`:"",r?`ui=${r}`:"",`sdk=${t}`,s?"client_side_validation=true":void 0].filter((e=>e)).join("&");return`${o}/v1/view/${n}${a?"?"+a:""}`},a=e=>{const{sid:n,endpoint:t,handler:o,eventTypes:i,checkout:r}=e,s=e=>{const s=e.origin===t,a=e.source===r.iframe.contentWindow,c=e.data&&e.data.sid===n,d=-1!==i.indexOf(e.data&&e.data.type);s&&a&&c&&d&&(((e,n)=>{n.data.mid&&e.contentWindow&&e.contentWindow.postMessage({ack:n.data.mid},n.origin||"*")})(r.iframe,e),o(e.data,r))};window.addEventListener("message",s,!1);return{unsubscribe:()=>{window.removeEventListener("message",s,!1)}}},c=e=>{e.href&&r(e.href)},d=(e,n)=>{(e.height||0===e.height)&&n.iframe.setAttribute("style",`width:100%; height:${e.height}px;`)},u=(e,n)=>{try{n.iframe.scrollIntoView({block:"start",behavior:"smooth"})}catch(e){console.error(e)}},l=(e,n)=>{e.language&&(n.language=e.language)},f=(e,n,i)=>(e,r)=>{const s=["sid","merchant_reference","transaction_id","error"].map((n=>[n,e[n]]));e.type!==o.SessionCancel||e.error||s.push(["error","cancelled"]),s.push(["language",r.language]),s.push(["sdk",t]);const a=s.filter((([e,n])=>n)).map((([e,n])=>`${e}=${n}`)).join("&");r.iframe.setAttribute("src",`${n}/embedResult/?${a}`),i(e,r)};e.embed=async e=>{const{container:n,sid:t,language:r,endpoint:h="https://checkout.dintero.com",onSession:p,onSessionCancel:y,onPayment:g,onPaymentAuthorized:m,onPaymentError:v,onSessionNotFound:w,onSessionLocked:S,onSessionLockFailed:T,onActivePaymentType:b,onValidateSession:P}=e;let E;const _=[],{iframe:k,initiate:A}=((e,n,t)=>{if(!e||!e.appendChild)throw new Error("Invalid container");const o=document.createElement("iframe");return o.setAttribute("frameborder","0"),o.setAttribute("allowTransparency","true"),o.setAttribute("style","width:100%; height:0;"),o.setAttribute("sandbox","allow-scripts allow-forms allow-same-origin allow-popups allow-popups-to-escape-sandbox"),o.setAttribute("importance","high"),o.setAttribute("src",t),{iframe:o,initiate:async()=>new Promise(((n,t)=>{o.onload=()=>n(),o.onerror=()=>t(),e.appendChild(o)}))}})(n,0,s({sid:t,endpoint:h,language:r,ui:"inline",shouldCallValidateSession:void 0!==P})),j=(e,n,o)=>{if(!E)throw new Error("Unable to create action promise: checkout is undefined");return new Promise(((i,r)=>{const s=[];s.push(a({sid:t,endpoint:h,handler:e=>{s.forEach((e=>e.unsubscribe())),i(e)},eventTypes:[n],checkout:E})),s.push(a({sid:t,endpoint:h,handler:()=>{s.forEach((e=>e.unsubscribe())),r(`Received unexpected event: ${o}`)},eventTypes:[o],checkout:E})),e()}))},L=()=>j((()=>{((e,n)=>{e.contentWindow&&e.contentWindow.postMessage({type:"RefreshSession",sid:n},"*")})(k,t)}),o.SessionUpdated,o.SessionNotFound),N=e=>{((e,n,t)=>{e.contentWindow&&e.contentWindow.postMessage({type:"ValidationResult",sid:n,...t},"*")})(k,t,e)};return E={destroy:()=>{k&&(_.forEach((e=>e.unsubscribe())),k.parentElement&&n.removeChild(k))},iframe:k,language:r,lockSession:()=>j((()=>{((e,n)=>{e.contentWindow&&e.contentWindow.postMessage({type:"LockSession",sid:n},"*")})(k,t)}),o.SessionLocked,o.SessionLockFailed),refreshSession:L,setActivePaymentProductType:e=>{((e,n,t)=>{e.contentWindow&&e.contentWindow.postMessage({type:"SetActivePaymentProductType",sid:n,payment_product_type:t},"*")})(k,t,e)},submitValidationResult:N},[{handler:l,eventTypes:[i.LanguageChanged]},{handler:d,eventTypes:[i.HeightChanged]},{handler:u,eventTypes:[i.ScrollToTop]},{handler:p,eventTypes:[o.SessionLoaded,o.SessionUpdated]},{eventTypes:[o.SessionPaymentOnHold],handler:g?f(0,h,g):c},{eventTypes:[o.SessionPaymentAuthorized],handler:m||g?f(0,h,m||g):c},{handler:y?f(0,h,y):c,eventTypes:[o.SessionCancel]},{handler:v?f(0,h,v):c,eventTypes:[o.SessionPaymentError]},{handler:w,eventTypes:[o.SessionNotFound]},{handler:(e,n)=>{S&&S(e,n,L)},eventTypes:[o.SessionLocked]},{handler:T,eventTypes:[o.SessionLockFailed]},{handler:b,eventTypes:[o.ActivePaymentProductType]},{handler:b,eventTypes:[o.ActivePaymentProductType]},{handler:(e,n)=>{P&&P(e,n,N)},eventTypes:[o.ValidateSession]}].forEach((({handler:e,eventTypes:n})=>{e&&_.push(a({sid:t,endpoint:h,handler:e,eventTypes:n,checkout:E}))})),await A(),E},e.redirect=e=>{const{sid:n,language:t,endpoint:o="https://checkout.dintero.com"}=e;r(s({sid:n,endpoint:o,language:t,shouldCallValidateSession:!1}))},Object.defineProperty(e,"__esModule",{value:!0})}));
7
7
  //# sourceMappingURL=dintero-checkout-web-sdk.umd.min.js.map