@dintero/checkout-web-sdk 0.0.16 → 0.3.1
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.
- package/.github/dependabot.yml +10 -0
- package/.github/workflows/{blank.yml → build.yml} +6 -5
- package/.github/workflows/release.yml +33 -0
- package/.releaserc.json +11 -0
- package/CHANGELOG.md +7 -0
- package/README.md +85 -17
- package/coverage/{Chrome Headless 80.0.3987.0 (Mac OS 10.15.7) → Chrome Headless 99.0.4844.0 (Linux x86_64)}/html/base.css +0 -0
- package/coverage/{Chrome Headless 80.0.3987.0 (Mac OS 10.15.7) → Chrome Headless 99.0.4844.0 (Linux x86_64)}/html/block-navigation.js +0 -0
- package/coverage/{Chrome Headless 80.0.3987.0 (Mac OS 10.15.7) → Chrome Headless 99.0.4844.0 (Linux x86_64)}/html/checkout.ts.html +75 -6
- package/coverage/{Chrome Headless 80.0.3987.0 (Mac OS 10.15.7) → Chrome Headless 99.0.4844.0 (Linux x86_64)}/html/createIframeAsync.ts.html +15 -15
- package/coverage/{Chrome Headless 80.0.3987.0 (Mac OS 10.15.7) → Chrome Headless 99.0.4844.0 (Linux x86_64)}/html/favicon.png +0 -0
- package/coverage/{Chrome Headless 80.0.3987.0 (Mac OS 10.15.7) → Chrome Headless 99.0.4844.0 (Linux x86_64)}/html/index.html +40 -40
- package/coverage/{Chrome Headless 80.0.3987.0 (Mac OS 10.15.7)/html/checkout-web-sdk.ts.html → Chrome Headless 99.0.4844.0 (Linux x86_64)/html/index.ts.html } +227 -32
- package/coverage/{Chrome Headless 80.0.3987.0 (Mac OS 10.15.7) → Chrome Headless 99.0.4844.0 (Linux x86_64)}/html/prettify.css +0 -0
- package/coverage/{Chrome Headless 80.0.3987.0 (Mac OS 10.15.7) → Chrome Headless 99.0.4844.0 (Linux x86_64)}/html/prettify.js +0 -0
- package/coverage/{Chrome Headless 80.0.3987.0 (Mac OS 10.15.7) → Chrome Headless 99.0.4844.0 (Linux x86_64)}/html/sort-arrow-sprite.png +0 -0
- package/coverage/{Chrome Headless 80.0.3987.0 (Mac OS 10.15.7) → Chrome Headless 99.0.4844.0 (Linux x86_64)}/html/sorter.js +0 -0
- package/coverage/{Chrome Headless 80.0.3987.0 (Mac OS 10.15.7) → Chrome Headless 99.0.4844.0 (Linux x86_64)}/html/subscribe.ts.html +92 -26
- package/coverage/{Chrome Headless 80.0.3987.0 (Mac OS 10.15.7) → Chrome Headless 99.0.4844.0 (Linux x86_64)}/html/url.ts.html +23 -17
- package/dist/declarations/src/checkout.d.ts +75 -57
- package/dist/declarations/src/createIframeAsync.d.ts +10 -10
- package/dist/declarations/src/index.d.ts +43 -39
- package/dist/declarations/src/subscribe.d.ts +41 -33
- package/dist/declarations/src/url.d.ts +16 -15
- package/dist/dintero-checkout-web-sdk.cjs.dev.js +84 -16
- package/dist/dintero-checkout-web-sdk.cjs.prod.js +84 -16
- package/dist/dintero-checkout-web-sdk.esm.js +84 -16
- package/dist/dintero-checkout-web-sdk.umd.min.js +1 -1
- package/dist/dintero-checkout-web-sdk.umd.min.js.map +1 -1
- package/package.json +49 -46
- package/coverage/Chrome Headless 80.0.3987.0 (Mac OS 10.15.7)/html/dintero-checkout-web-sdk.ts.html +0 -908
- package/coverage/Chrome Headless 80.0.3987.0 (Mac OS 10.15.7)/html/index.ts.html +0 -908
- package/dist/declarations/package.d.ts +0 -49
|
@@ -2,7 +2,7 @@ import 'native-promise-only';
|
|
|
2
2
|
|
|
3
3
|
var pkg = {
|
|
4
4
|
name: "@dintero/checkout-web-sdk",
|
|
5
|
-
version: "0.
|
|
5
|
+
version: "0.3.1",
|
|
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",
|
|
@@ -14,12 +14,14 @@ var pkg = {
|
|
|
14
14
|
},
|
|
15
15
|
scripts: {
|
|
16
16
|
build: "preconstruct build",
|
|
17
|
-
test: "karma start"
|
|
17
|
+
test: "karma start",
|
|
18
|
+
"semantic-release": "semantic-release",
|
|
19
|
+
prepublishOnly: "npm run build"
|
|
18
20
|
},
|
|
19
21
|
"private": false,
|
|
20
22
|
repository: {
|
|
21
23
|
type: "git",
|
|
22
|
-
url: "
|
|
24
|
+
url: "https://github.com/Dintero/Dintero.Checkout.Web.SDK.git"
|
|
23
25
|
},
|
|
24
26
|
homepage: "https://github.com/Dintero/Dintero.Checkout.Web.SDK#readme",
|
|
25
27
|
author: "Sven Nicolai Viig <sven@dintero.com> (http://dintero.com)",
|
|
@@ -30,18 +32,19 @@ var pkg = {
|
|
|
30
32
|
devDependencies: {
|
|
31
33
|
"@babel/preset-env": "^7.14.1",
|
|
32
34
|
"@babel/preset-typescript": "^7.13.0",
|
|
33
|
-
"@preconstruct/cli": "^2.1.
|
|
35
|
+
"@preconstruct/cli": "^2.1.5",
|
|
36
|
+
"@semantic-release/git": "^10.0.1",
|
|
34
37
|
chai: "^4.2.0",
|
|
35
|
-
karma: "^
|
|
38
|
+
karma: "^6.3.14",
|
|
36
39
|
"karma-chai": "^0.1.0",
|
|
37
40
|
"karma-chrome-launcher": "^3.1.0",
|
|
38
41
|
"karma-mocha": "^2.0.1",
|
|
39
42
|
"karma-typescript": "^5.0.3",
|
|
40
43
|
mocha: "^8.1.1",
|
|
41
44
|
prettier: "^1.19.1",
|
|
42
|
-
puppeteer: "^
|
|
43
|
-
|
|
44
|
-
sinon: "^
|
|
45
|
+
puppeteer: "^13.3.2",
|
|
46
|
+
"semantic-release": "^19.0.2",
|
|
47
|
+
sinon: "^13.0.1",
|
|
45
48
|
typescript: "^4.2.4"
|
|
46
49
|
},
|
|
47
50
|
dependencies: {
|
|
@@ -61,6 +64,8 @@ let CheckoutEvents;
|
|
|
61
64
|
CheckoutEvents["SessionPaymentError"] = "SessionPaymentError";
|
|
62
65
|
CheckoutEvents["SessionLocked"] = "SessionLocked";
|
|
63
66
|
CheckoutEvents["SessionLockFailed"] = "SessionLockFailed";
|
|
67
|
+
CheckoutEvents["ActivePaymentProductType"] = "ActivePaymentProductType";
|
|
68
|
+
CheckoutEvents["ValidateSession"] = "ValidateSession";
|
|
64
69
|
})(CheckoutEvents || (CheckoutEvents = {}));
|
|
65
70
|
|
|
66
71
|
let InternalCheckoutEvents;
|
|
@@ -87,7 +92,8 @@ const getSessionUrl = options => {
|
|
|
87
92
|
sid,
|
|
88
93
|
endpoint,
|
|
89
94
|
language,
|
|
90
|
-
ui
|
|
95
|
+
ui,
|
|
96
|
+
shouldCallValidateSession
|
|
91
97
|
} = options;
|
|
92
98
|
|
|
93
99
|
if (!endpoint) {
|
|
@@ -98,7 +104,8 @@ const getSessionUrl = options => {
|
|
|
98
104
|
let languageParam = language ? `language=${language}` : "";
|
|
99
105
|
let uiParam = ui ? `ui=${ui}` : "";
|
|
100
106
|
let sdk = `sdk=${pkg.version}`;
|
|
101
|
-
|
|
107
|
+
let validate = shouldCallValidateSession ? `client_side_validation=true` : undefined;
|
|
108
|
+
const params = [languageParam, uiParam, sdk, validate].filter(x => x).join("&");
|
|
102
109
|
return `${endpoint}/v1/view/${sid}${params ? "?" + params : ""}`;
|
|
103
110
|
};
|
|
104
111
|
|
|
@@ -177,6 +184,19 @@ const postSessionLock = (iframe, sid) => {
|
|
|
177
184
|
}, "*");
|
|
178
185
|
}
|
|
179
186
|
};
|
|
187
|
+
/**
|
|
188
|
+
* Post the validation result to the checkout iframe
|
|
189
|
+
*/
|
|
190
|
+
|
|
191
|
+
const postValidationResult = (iframe, sid, result) => {
|
|
192
|
+
if (iframe.contentWindow) {
|
|
193
|
+
iframe.contentWindow.postMessage({
|
|
194
|
+
type: "ValidationResult",
|
|
195
|
+
sid,
|
|
196
|
+
...result
|
|
197
|
+
}, "*");
|
|
198
|
+
}
|
|
199
|
+
};
|
|
180
200
|
/**
|
|
181
201
|
* Post RefreshSession-event to the checkout iframe.
|
|
182
202
|
*/
|
|
@@ -189,6 +209,19 @@ const postSessionRefresh = (iframe, sid) => {
|
|
|
189
209
|
}, "*");
|
|
190
210
|
}
|
|
191
211
|
};
|
|
212
|
+
/**
|
|
213
|
+
* Post setActivePaymentProductType-event to the checkout iframe.
|
|
214
|
+
*/
|
|
215
|
+
|
|
216
|
+
const postActivePaymentProductType = (iframe, sid, paymentProductType) => {
|
|
217
|
+
if (iframe.contentWindow) {
|
|
218
|
+
iframe.contentWindow.postMessage({
|
|
219
|
+
type: "SetActivePaymentProductType",
|
|
220
|
+
sid,
|
|
221
|
+
payment_product_type: paymentProductType
|
|
222
|
+
}, "*");
|
|
223
|
+
}
|
|
224
|
+
};
|
|
192
225
|
/**
|
|
193
226
|
* Subscribe to events from an iframe given a handler and a set
|
|
194
227
|
* of event types.
|
|
@@ -288,18 +321,21 @@ const embed = async options => {
|
|
|
288
321
|
onPaymentError,
|
|
289
322
|
onSessionNotFound,
|
|
290
323
|
onSessionLocked,
|
|
291
|
-
onSessionLockFailed
|
|
324
|
+
onSessionLockFailed,
|
|
325
|
+
onActivePaymentType,
|
|
326
|
+
onValidateSession
|
|
292
327
|
} = options;
|
|
293
328
|
const subscriptions = []; // Create iframe
|
|
294
329
|
|
|
295
330
|
const {
|
|
296
331
|
iframe,
|
|
297
332
|
initiate
|
|
298
|
-
} =
|
|
333
|
+
} = createIframeAsync(container, endpoint, getSessionUrl({
|
|
299
334
|
sid,
|
|
300
335
|
endpoint,
|
|
301
336
|
language,
|
|
302
|
-
ui: "inline"
|
|
337
|
+
ui: "inline",
|
|
338
|
+
shouldCallValidateSession: onValidateSession !== undefined
|
|
303
339
|
}));
|
|
304
340
|
/**
|
|
305
341
|
* Function that removes the iframe and all event listeners.
|
|
@@ -321,6 +357,26 @@ const embed = async options => {
|
|
|
321
357
|
|
|
322
358
|
const refreshSession = () => {
|
|
323
359
|
postSessionRefresh(iframe, sid);
|
|
360
|
+
};
|
|
361
|
+
|
|
362
|
+
const setActivePaymentProductType = paymentProductType => {
|
|
363
|
+
postActivePaymentProductType(iframe, sid, paymentProductType);
|
|
364
|
+
};
|
|
365
|
+
|
|
366
|
+
const submitValidationResult = result => {
|
|
367
|
+
postValidationResult(iframe, sid, result);
|
|
368
|
+
};
|
|
369
|
+
|
|
370
|
+
const wrappedOnValidateSession = (event, checkout) => {
|
|
371
|
+
if (onValidateSession) {
|
|
372
|
+
onValidateSession(event, checkout, submitValidationResult);
|
|
373
|
+
}
|
|
374
|
+
};
|
|
375
|
+
|
|
376
|
+
const wrappedOnSessionLocked = (event, checkout) => {
|
|
377
|
+
if (onSessionLocked) {
|
|
378
|
+
onSessionLocked(event, checkout, refreshSession);
|
|
379
|
+
}
|
|
324
380
|
}; // Create checkout object that wraps the destroy function.
|
|
325
381
|
|
|
326
382
|
|
|
@@ -329,7 +385,9 @@ const embed = async options => {
|
|
|
329
385
|
iframe,
|
|
330
386
|
language,
|
|
331
387
|
lockSession,
|
|
332
|
-
refreshSession
|
|
388
|
+
refreshSession,
|
|
389
|
+
setActivePaymentProductType,
|
|
390
|
+
submitValidationResult
|
|
333
391
|
}; // Add event handlers (or in some cases add a fallback href handler).
|
|
334
392
|
|
|
335
393
|
[{
|
|
@@ -357,11 +415,20 @@ const embed = async options => {
|
|
|
357
415
|
handler: onSessionNotFound,
|
|
358
416
|
eventTypes: [CheckoutEvents.SessionNotFound]
|
|
359
417
|
}, {
|
|
360
|
-
handler:
|
|
418
|
+
handler: wrappedOnSessionLocked,
|
|
361
419
|
eventTypes: [CheckoutEvents.SessionLocked]
|
|
362
420
|
}, {
|
|
363
421
|
handler: onSessionLockFailed,
|
|
364
422
|
eventTypes: [CheckoutEvents.SessionLockFailed]
|
|
423
|
+
}, {
|
|
424
|
+
handler: onActivePaymentType,
|
|
425
|
+
eventTypes: [CheckoutEvents.ActivePaymentProductType]
|
|
426
|
+
}, {
|
|
427
|
+
handler: onActivePaymentType,
|
|
428
|
+
eventTypes: [CheckoutEvents.ActivePaymentProductType]
|
|
429
|
+
}, {
|
|
430
|
+
handler: wrappedOnValidateSession,
|
|
431
|
+
eventTypes: [CheckoutEvents.ValidateSession]
|
|
365
432
|
}].forEach(({
|
|
366
433
|
handler,
|
|
367
434
|
eventTypes
|
|
@@ -395,7 +462,8 @@ const redirect = options => {
|
|
|
395
462
|
windowLocationAssign(getSessionUrl({
|
|
396
463
|
sid,
|
|
397
464
|
endpoint,
|
|
398
|
-
language
|
|
465
|
+
language,
|
|
466
|
+
shouldCallValidateSession: false
|
|
399
467
|
}));
|
|
400
468
|
};
|
|
401
469
|
|
|
@@ -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
|
|
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.3.1";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=>{e.href&&r(e.href)},c=(e,n)=>{(e.height||0===e.height)&&n.iframe.setAttribute("style",`width:100%; height:${e.height}px;`)},d=(e,n)=>{e.language&&(n.language=e.language)},u=(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:l="https://checkout.dintero.com",onSession:f,onSessionCancel:h,onPayment:p,onPaymentAuthorized:y,onPaymentError:g,onSessionNotFound:m,onSessionLocked:v,onSessionLockFailed:w,onActivePaymentType:S,onValidateSession:T}=e,b=[],{iframe:P,initiate:_}=((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"),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:l,language:r,ui:"inline",shouldCallValidateSession:void 0!==T})),E=()=>{((e,n)=>{e.contentWindow&&e.contentWindow.postMessage({type:"RefreshSession",sid:n},"*")})(P,t)},A=e=>{((e,n,t)=>{e.contentWindow&&e.contentWindow.postMessage({type:"ValidationResult",sid:n,...t},"*")})(P,t,e)},j={destroy:()=>{P&&(b.forEach((e=>e.unsubscribe())),P.parentElement&&n.removeChild(P))},iframe:P,language:r,lockSession:()=>{((e,n)=>{e.contentWindow&&e.contentWindow.postMessage({type:"LockSession",sid:n},"*")})(P,t)},refreshSession:E,setActivePaymentProductType:e=>{((e,n,t)=>{e.contentWindow&&e.contentWindow.postMessage({type:"SetActivePaymentProductType",sid:n,payment_product_type:t},"*")})(P,t,e)},submitValidationResult:A};return[{handler:d,eventTypes:[i.LanguageChanged]},{handler:c,eventTypes:[i.HeightChanged]},{handler:f,eventTypes:[o.SessionLoaded,o.SessionUpdated]},{eventTypes:[o.SessionPaymentOnHold],handler:p?u(0,l,p):a},{eventTypes:[o.SessionPaymentAuthorized],handler:y||p?u(0,l,y||p):a},{handler:h?u(0,l,h):a,eventTypes:[o.SessionCancel]},{handler:g?u(0,l,g):a,eventTypes:[o.SessionPaymentError]},{handler:m,eventTypes:[o.SessionNotFound]},{handler:(e,n)=>{v&&v(e,n,E)},eventTypes:[o.SessionLocked]},{handler:w,eventTypes:[o.SessionLockFailed]},{handler:S,eventTypes:[o.ActivePaymentProductType]},{handler:S,eventTypes:[o.ActivePaymentProductType]},{handler:(e,n)=>{T&&T(e,n,A)},eventTypes:[o.ValidateSession]}].forEach((({handler:e,eventTypes:n})=>{e&&b.push((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))};return window.addEventListener("message",s,!1),{unsubscribe:()=>{window.removeEventListener("message",s,!1)}}})({sid:t,endpoint:l,handler:e,eventTypes:n,checkout:j}))})),await _(),j},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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dintero-checkout-web-sdk.umd.min.js","sources":["../node_modules/native-promise-only/lib/npo.src.js","../src/checkout.ts","../src/url.ts","../src/index.ts","../src/createIframeAsync.ts","../src/subscribe.ts"],"sourcesContent":["/*! Native Promise Only\n v0.8.1 (c) Kyle Simpson\n MIT License: http://getify.mit-license.org\n*/\n\n(function UMD(name,context,definition){\n\t// special form of UMD for polyfilling across evironments\n\tcontext[name] = context[name] || definition();\n\tif (typeof module != \"undefined\" && module.exports) { module.exports = context[name]; }\n\telse if (typeof define == \"function\" && define.amd) { define(function $AMD$(){ return context[name]; }); }\n})(\"Promise\",typeof global != \"undefined\" ? global : this,function DEF(){\n\t/*jshint validthis:true */\n\t\"use strict\";\n\n\tvar builtInProp, cycle, scheduling_queue,\n\t\tToString = Object.prototype.toString,\n\t\ttimer = (typeof setImmediate != \"undefined\") ?\n\t\t\tfunction timer(fn) { return setImmediate(fn); } :\n\t\t\tsetTimeout\n\t;\n\n\t// dammit, IE8.\n\ttry {\n\t\tObject.defineProperty({},\"x\",{});\n\t\tbuiltInProp = function builtInProp(obj,name,val,config) {\n\t\t\treturn Object.defineProperty(obj,name,{\n\t\t\t\tvalue: val,\n\t\t\t\twritable: true,\n\t\t\t\tconfigurable: config !== false\n\t\t\t});\n\t\t};\n\t}\n\tcatch (err) {\n\t\tbuiltInProp = function builtInProp(obj,name,val) {\n\t\t\tobj[name] = val;\n\t\t\treturn obj;\n\t\t};\n\t}\n\n\t// Note: using a queue instead of array for efficiency\n\tscheduling_queue = (function Queue() {\n\t\tvar first, last, item;\n\n\t\tfunction Item(fn,self) {\n\t\t\tthis.fn = fn;\n\t\t\tthis.self = self;\n\t\t\tthis.next = void 0;\n\t\t}\n\n\t\treturn {\n\t\t\tadd: function add(fn,self) {\n\t\t\t\titem = new Item(fn,self);\n\t\t\t\tif (last) {\n\t\t\t\t\tlast.next = item;\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tfirst = item;\n\t\t\t\t}\n\t\t\t\tlast = item;\n\t\t\t\titem = void 0;\n\t\t\t},\n\t\t\tdrain: function drain() {\n\t\t\t\tvar f = first;\n\t\t\t\tfirst = last = cycle = void 0;\n\n\t\t\t\twhile (f) {\n\t\t\t\t\tf.fn.call(f.self);\n\t\t\t\t\tf = f.next;\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t})();\n\n\tfunction schedule(fn,self) {\n\t\tscheduling_queue.add(fn,self);\n\t\tif (!cycle) {\n\t\t\tcycle = timer(scheduling_queue.drain);\n\t\t}\n\t}\n\n\t// promise duck typing\n\tfunction isThenable(o) {\n\t\tvar _then, o_type = typeof o;\n\n\t\tif (o != null &&\n\t\t\t(\n\t\t\t\to_type == \"object\" || o_type == \"function\"\n\t\t\t)\n\t\t) {\n\t\t\t_then = o.then;\n\t\t}\n\t\treturn typeof _then == \"function\" ? _then : false;\n\t}\n\n\tfunction notify() {\n\t\tfor (var i=0; i<this.chain.length; i++) {\n\t\t\tnotifyIsolated(\n\t\t\t\tthis,\n\t\t\t\t(this.state === 1) ? this.chain[i].success : this.chain[i].failure,\n\t\t\t\tthis.chain[i]\n\t\t\t);\n\t\t}\n\t\tthis.chain.length = 0;\n\t}\n\n\t// NOTE: This is a separate function to isolate\n\t// the `try..catch` so that other code can be\n\t// optimized better\n\tfunction notifyIsolated(self,cb,chain) {\n\t\tvar ret, _then;\n\t\ttry {\n\t\t\tif (cb === false) {\n\t\t\t\tchain.reject(self.msg);\n\t\t\t}\n\t\t\telse {\n\t\t\t\tif (cb === true) {\n\t\t\t\t\tret = self.msg;\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tret = cb.call(void 0,self.msg);\n\t\t\t\t}\n\n\t\t\t\tif (ret === chain.promise) {\n\t\t\t\t\tchain.reject(TypeError(\"Promise-chain cycle\"));\n\t\t\t\t}\n\t\t\t\telse if (_then = isThenable(ret)) {\n\t\t\t\t\t_then.call(ret,chain.resolve,chain.reject);\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tchain.resolve(ret);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tcatch (err) {\n\t\t\tchain.reject(err);\n\t\t}\n\t}\n\n\tfunction resolve(msg) {\n\t\tvar _then, self = this;\n\n\t\t// already triggered?\n\t\tif (self.triggered) { return; }\n\n\t\tself.triggered = true;\n\n\t\t// unwrap\n\t\tif (self.def) {\n\t\t\tself = self.def;\n\t\t}\n\n\t\ttry {\n\t\t\tif (_then = isThenable(msg)) {\n\t\t\t\tschedule(function(){\n\t\t\t\t\tvar def_wrapper = new MakeDefWrapper(self);\n\t\t\t\t\ttry {\n\t\t\t\t\t\t_then.call(msg,\n\t\t\t\t\t\t\tfunction $resolve$(){ resolve.apply(def_wrapper,arguments); },\n\t\t\t\t\t\t\tfunction $reject$(){ reject.apply(def_wrapper,arguments); }\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\tcatch (err) {\n\t\t\t\t\t\treject.call(def_wrapper,err);\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t}\n\t\t\telse {\n\t\t\t\tself.msg = msg;\n\t\t\t\tself.state = 1;\n\t\t\t\tif (self.chain.length > 0) {\n\t\t\t\t\tschedule(notify,self);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tcatch (err) {\n\t\t\treject.call(new MakeDefWrapper(self),err);\n\t\t}\n\t}\n\n\tfunction reject(msg) {\n\t\tvar self = this;\n\n\t\t// already triggered?\n\t\tif (self.triggered) { return; }\n\n\t\tself.triggered = true;\n\n\t\t// unwrap\n\t\tif (self.def) {\n\t\t\tself = self.def;\n\t\t}\n\n\t\tself.msg = msg;\n\t\tself.state = 2;\n\t\tif (self.chain.length > 0) {\n\t\t\tschedule(notify,self);\n\t\t}\n\t}\n\n\tfunction iteratePromises(Constructor,arr,resolver,rejecter) {\n\t\tfor (var idx=0; idx<arr.length; idx++) {\n\t\t\t(function IIFE(idx){\n\t\t\t\tConstructor.resolve(arr[idx])\n\t\t\t\t.then(\n\t\t\t\t\tfunction $resolver$(msg){\n\t\t\t\t\t\tresolver(idx,msg);\n\t\t\t\t\t},\n\t\t\t\t\trejecter\n\t\t\t\t);\n\t\t\t})(idx);\n\t\t}\n\t}\n\n\tfunction MakeDefWrapper(self) {\n\t\tthis.def = self;\n\t\tthis.triggered = false;\n\t}\n\n\tfunction MakeDef(self) {\n\t\tthis.promise = self;\n\t\tthis.state = 0;\n\t\tthis.triggered = false;\n\t\tthis.chain = [];\n\t\tthis.msg = void 0;\n\t}\n\n\tfunction Promise(executor) {\n\t\tif (typeof executor != \"function\") {\n\t\t\tthrow TypeError(\"Not a function\");\n\t\t}\n\n\t\tif (this.__NPO__ !== 0) {\n\t\t\tthrow TypeError(\"Not a promise\");\n\t\t}\n\n\t\t// instance shadowing the inherited \"brand\"\n\t\t// to signal an already \"initialized\" promise\n\t\tthis.__NPO__ = 1;\n\n\t\tvar def = new MakeDef(this);\n\n\t\tthis[\"then\"] = function then(success,failure) {\n\t\t\tvar o = {\n\t\t\t\tsuccess: typeof success == \"function\" ? success : true,\n\t\t\t\tfailure: typeof failure == \"function\" ? failure : false\n\t\t\t};\n\t\t\t// Note: `then(..)` itself can be borrowed to be used against\n\t\t\t// a different promise constructor for making the chained promise,\n\t\t\t// by substituting a different `this` binding.\n\t\t\to.promise = new this.constructor(function extractChain(resolve,reject) {\n\t\t\t\tif (typeof resolve != \"function\" || typeof reject != \"function\") {\n\t\t\t\t\tthrow TypeError(\"Not a function\");\n\t\t\t\t}\n\n\t\t\t\to.resolve = resolve;\n\t\t\t\to.reject = reject;\n\t\t\t});\n\t\t\tdef.chain.push(o);\n\n\t\t\tif (def.state !== 0) {\n\t\t\t\tschedule(notify,def);\n\t\t\t}\n\n\t\t\treturn o.promise;\n\t\t};\n\t\tthis[\"catch\"] = function $catch$(failure) {\n\t\t\treturn this.then(void 0,failure);\n\t\t};\n\n\t\ttry {\n\t\t\texecutor.call(\n\t\t\t\tvoid 0,\n\t\t\t\tfunction publicResolve(msg){\n\t\t\t\t\tresolve.call(def,msg);\n\t\t\t\t},\n\t\t\t\tfunction publicReject(msg) {\n\t\t\t\t\treject.call(def,msg);\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\t\tcatch (err) {\n\t\t\treject.call(def,err);\n\t\t}\n\t}\n\n\tvar PromisePrototype = builtInProp({},\"constructor\",Promise,\n\t\t/*configurable=*/false\n\t);\n\n\t// Note: Android 4 cannot use `Object.defineProperty(..)` here\n\tPromise.prototype = PromisePrototype;\n\n\t// built-in \"brand\" to signal an \"uninitialized\" promise\n\tbuiltInProp(PromisePrototype,\"__NPO__\",0,\n\t\t/*configurable=*/false\n\t);\n\n\tbuiltInProp(Promise,\"resolve\",function Promise$resolve(msg) {\n\t\tvar Constructor = this;\n\n\t\t// spec mandated checks\n\t\t// note: best \"isPromise\" check that's practical for now\n\t\tif (msg && typeof msg == \"object\" && msg.__NPO__ === 1) {\n\t\t\treturn msg;\n\t\t}\n\n\t\treturn new Constructor(function executor(resolve,reject){\n\t\t\tif (typeof resolve != \"function\" || typeof reject != \"function\") {\n\t\t\t\tthrow TypeError(\"Not a function\");\n\t\t\t}\n\n\t\t\tresolve(msg);\n\t\t});\n\t});\n\n\tbuiltInProp(Promise,\"reject\",function Promise$reject(msg) {\n\t\treturn new this(function executor(resolve,reject){\n\t\t\tif (typeof resolve != \"function\" || typeof reject != \"function\") {\n\t\t\t\tthrow TypeError(\"Not a function\");\n\t\t\t}\n\n\t\t\treject(msg);\n\t\t});\n\t});\n\n\tbuiltInProp(Promise,\"all\",function Promise$all(arr) {\n\t\tvar Constructor = this;\n\n\t\t// spec mandated checks\n\t\tif (ToString.call(arr) != \"[object Array]\") {\n\t\t\treturn Constructor.reject(TypeError(\"Not an array\"));\n\t\t}\n\t\tif (arr.length === 0) {\n\t\t\treturn Constructor.resolve([]);\n\t\t}\n\n\t\treturn new Constructor(function executor(resolve,reject){\n\t\t\tif (typeof resolve != \"function\" || typeof reject != \"function\") {\n\t\t\t\tthrow TypeError(\"Not a function\");\n\t\t\t}\n\n\t\t\tvar len = arr.length, msgs = Array(len), count = 0;\n\n\t\t\titeratePromises(Constructor,arr,function resolver(idx,msg) {\n\t\t\t\tmsgs[idx] = msg;\n\t\t\t\tif (++count === len) {\n\t\t\t\t\tresolve(msgs);\n\t\t\t\t}\n\t\t\t},reject);\n\t\t});\n\t});\n\n\tbuiltInProp(Promise,\"race\",function Promise$race(arr) {\n\t\tvar Constructor = this;\n\n\t\t// spec mandated checks\n\t\tif (ToString.call(arr) != \"[object Array]\") {\n\t\t\treturn Constructor.reject(TypeError(\"Not an array\"));\n\t\t}\n\n\t\treturn new Constructor(function executor(resolve,reject){\n\t\t\tif (typeof resolve != \"function\" || typeof reject != \"function\") {\n\t\t\t\tthrow TypeError(\"Not a function\");\n\t\t\t}\n\n\t\t\titeratePromises(Constructor,arr,function resolver(idx,msg){\n\t\t\t\tresolve(msg);\n\t\t\t},reject);\n\t\t});\n\t});\n\n\treturn Promise;\n});\n","import { Session } from \"./session\";\n\nexport enum CheckoutEvents {\n SessionNotFound = \"SessionNotFound\",\n SessionLoaded = \"SessionLoaded\",\n SessionUpdated = \"SessionUpdated\",\n SessionCancel = \"SessionCancel\",\n SessionPaymentOnHold = \"SessionPaymentOnHold\",\n SessionPaymentAuthorized = \"SessionPaymentAuthorized\",\n SessionPaymentError = \"SessionPaymentError\",\n SessionLocked = \"SessionLocked\",\n SessionLockFailed = \"SessionLockFailed\",\n}\nexport enum InternalCheckoutEvents {\n HeightChanged = \"HeightChanged\",\n LanguageChanged = \"LanguageChanged\",\n}\n\nexport type SessionNotFound = {\n type: CheckoutEvents.SessionNotFound;\n};\n\nexport type SessionLoaded = {\n type: CheckoutEvents.SessionLoaded;\n session: Session;\n};\n\nexport type SessionUpdated = {\n type: CheckoutEvents.SessionUpdated;\n session: Session;\n};\n\nexport type SessionCancel = {\n type: CheckoutEvents.SessionCancel;\n href: string;\n};\n\nexport type SessionPaymentOnHold = {\n type: CheckoutEvents.SessionPaymentOnHold;\n transaction_id: string;\n merchant_reference: string;\n href: string;\n};\n\nexport type SessionPaymentAuthorized = {\n type: CheckoutEvents.SessionPaymentAuthorized;\n transaction_id: string;\n merchant_reference: string;\n href: string;\n};\n\nexport type SessionLocked = {\n type: CheckoutEvents.SessionLocked;\n pay_lock_id: string;\n};\n\nexport type SessionLockFailed = {\n type: CheckoutEvents.SessionLockFailed;\n};\n\nexport type SessionPayment = SessionPaymentAuthorized | SessionPaymentOnHold;\n\nexport type SessionPaymentError = {\n type: CheckoutEvents.SessionPaymentError;\n error: string;\n href: string;\n};\n\nexport type SessionEvent =\n | SessionNotFound\n | SessionLoaded\n | SessionUpdated\n | SessionCancel\n | SessionPaymentOnHold\n | SessionPaymentAuthorized\n | SessionPaymentError\n | SessionLocked\n | SessionLockFailed;\n","import pkg from \"../package.json\";\n\n/**\n * Wraps window.location.assign()\n */\nexport const windowLocationAssign = (url: string) => {\n window.location.assign(url);\n};\n\n/**\n * Get the url for the session./yarn-error.log\n.DS_Store\n */\nexport interface SessionUrlOptions {\n sid: string;\n endpoint: string;\n language: string | undefined;\n ui?: \"fullscreen\" | \"inline\";\n}\n\nexport const getSessionUrl = (options: SessionUrlOptions): string => {\n const { sid, endpoint, language, ui } = options;\n if (!endpoint) {\n throw new Error(\"Invalid endpoint\");\n }\n\n // Compose url for view session endpoint with optional language parameter.\n let languageParam = language ? `language=${language}` : \"\";\n let uiParam = ui ? `ui=${ui}` : \"\";\n let sdk = `sdk=${pkg.version}`;\n const params = [languageParam, uiParam, sdk].filter(x => x).join(\"&\");\n return `${endpoint}/v1/view/${sid}${params ? \"?\" + params : \"\"}`;\n};\n","import \"native-promise-only\";\n\nimport pkg from \"../package.json\";\nimport {\n CheckoutEvents,\n InternalCheckoutEvents,\n SessionNotFound,\n SessionLoaded,\n SessionUpdated,\n SessionCancel,\n SessionPaymentOnHold,\n SessionPaymentAuthorized,\n SessionPaymentError,\n SessionLocked,\n SessionLockFailed,\n} from \"./checkout\";\nimport { getSessionUrl, windowLocationAssign } from \"./url\";\nimport { createIframeAsync } from \"./createIframeAsync\";\nimport {subscribe, SubscriptionHandler, Subscription, postSessionLock, postSessionRefresh} from \"./subscribe\";\n\nexport interface DinteroCheckoutInstance {\n /**\n * Remove iframe and all event listeners.\n */\n destroy: () => void;\n iframe: HTMLIFrameElement;\n language: string;\n lockSession: () => void;\n refreshSession: () => void;\n}\n\nexport interface DinteroCheckoutOptions {\n sid: string;\n endpoint?: string;\n language?: string;\n}\n\nexport interface DinteroEmbedCheckoutOptions extends DinteroCheckoutOptions {\n container: HTMLDivElement;\n onPayment?: (\n event: SessionPaymentAuthorized | SessionPaymentOnHold,\n checkout: DinteroCheckoutInstance\n ) => void;\n /**\n * @deprecated Since version 0.0.1. Will be deleted in version 1.0.0. Use onPayment instead.\n */\n onPaymentAuthorized?: (\n event: SessionPaymentAuthorized,\n checkout: DinteroCheckoutInstance\n ) => void;\n onSession?: (\n event: SessionLoaded | SessionUpdated,\n checkout: DinteroCheckoutInstance\n ) => void;\n onPaymentError?: (\n event: SessionPaymentError,\n checkout: DinteroCheckoutInstance\n ) => void;\n onSessionCancel?: (\n event: SessionCancel,\n checkout: DinteroCheckoutInstance\n ) => void;\n onSessionNotFound?: (\n event: SessionNotFound,\n checkout: DinteroCheckoutInstance\n ) => void;\n onSessionLocked?: (\n event: SessionLocked,\n checkout: DinteroCheckoutInstance\n ) => void;\n onSessionLockFailed?: (\n event: SessionLockFailed,\n checkout: DinteroCheckoutInstance\n ) => void;\n}\n\n/**\n * An event handler that navigates to the href in the event.\n */\nconst followHref: SubscriptionHandler = (event: any): void => {\n if (event.href) {\n windowLocationAssign(event.href);\n }\n};\n\n/**\n * An event handler that sets height of the iframe.\n */\nconst setIframeHeight: SubscriptionHandler = (event: any, checkout): void => {\n if (event.height || event.height === 0) {\n checkout.iframe.setAttribute(\n \"style\",\n `width:100%; height:${event.height}px;`\n );\n }\n};\nconst setLanguage: SubscriptionHandler = (event: any, checkout): void => {\n if (event.language) {\n checkout.language = event.language;\n }\n};\n\nconst handleWithResult = (\n sid: string,\n endpoint: string,\n handler: SubscriptionHandler\n): SubscriptionHandler => {\n return (event: any, checkout: DinteroCheckoutInstance) => {\n const eventKeys = [\n \"sid\",\n \"merchant_reference\",\n \"transaction_id\",\n \"error\",\n ];\n const pairs = eventKeys.map(key => [key, event[key]]);\n if (event.type === CheckoutEvents.SessionCancel && !event.error) {\n pairs.push([\"error\", \"cancelled\"]);\n }\n pairs.push([\"language\", checkout.language]);\n pairs.push([\"sdk\", pkg.version]);\n const urlQuery = pairs\n .filter(([key, value]) => value)\n .map(([key, value]) => `${key}=${value}`)\n .join(\"&\");\n checkout.iframe.setAttribute(\n \"src\",\n `${endpoint}/embedResult/?${urlQuery}`\n );\n handler(event, checkout);\n };\n};\n\n/**\n * Show a dintero payment session in an embedded iframe.\n */\nexport const embed = async (\n options: DinteroEmbedCheckoutOptions\n): Promise<DinteroCheckoutInstance> => {\n const {\n container,\n sid,\n language,\n endpoint = \"https://checkout.dintero.com\",\n onSession,\n onSessionCancel,\n onPayment,\n onPaymentAuthorized,\n onPaymentError,\n onSessionNotFound,\n onSessionLocked,\n onSessionLockFailed,\n } = options;\n const subscriptions: Subscription[] = [];\n\n // Create iframe\n const { iframe, initiate } = await createIframeAsync(\n container,\n endpoint,\n getSessionUrl({ sid, endpoint, language, ui: \"inline\" })\n );\n\n /**\n * Function that removes the iframe and all event listeners.\n */\n const destroy = () => {\n if (iframe) {\n subscriptions.forEach(sub => sub.unsubscribe());\n if (iframe.parentElement) {\n container.removeChild(iframe);\n }\n }\n };\n\n const lockSession = () => {\n postSessionLock(iframe, sid);\n };\n\n const refreshSession = () => {\n postSessionRefresh(iframe, sid);\n\n };\n\n // Create checkout object that wraps the destroy function.\n const checkout: DinteroCheckoutInstance = {\n destroy,\n iframe,\n language,\n lockSession,\n refreshSession\n };\n\n // Add event handlers (or in some cases add a fallback href handler).\n [\n {\n handler: setLanguage,\n eventTypes: [InternalCheckoutEvents.LanguageChanged],\n },\n {\n handler: setIframeHeight,\n eventTypes: [InternalCheckoutEvents.HeightChanged],\n },\n {\n handler: onSession as SubscriptionHandler | undefined,\n eventTypes: [\n CheckoutEvents.SessionLoaded,\n CheckoutEvents.SessionUpdated,\n ],\n },\n {\n eventTypes: [CheckoutEvents.SessionPaymentOnHold],\n handler: onPayment\n ? handleWithResult(sid, endpoint, onPayment)\n : followHref,\n },\n {\n eventTypes: [CheckoutEvents.SessionPaymentAuthorized],\n handler: onPaymentAuthorized || onPayment\n ? handleWithResult(sid, endpoint, onPaymentAuthorized || onPayment)\n : followHref,\n },\n {\n handler: onSessionCancel\n ? handleWithResult(sid, endpoint, onSessionCancel)\n : followHref,\n eventTypes: [CheckoutEvents.SessionCancel],\n },\n {\n handler: onPaymentError\n ? handleWithResult(sid, endpoint, onPaymentError)\n : followHref,\n eventTypes: [CheckoutEvents.SessionPaymentError],\n },\n {\n handler: onSessionNotFound as SubscriptionHandler | undefined,\n eventTypes: [CheckoutEvents.SessionNotFound],\n },\n {\n handler: onSessionLocked as SubscriptionHandler | undefined,\n eventTypes: [CheckoutEvents.SessionLocked],\n },\n {\n handler: onSessionLockFailed as SubscriptionHandler | undefined,\n eventTypes: [CheckoutEvents.SessionLockFailed],\n },\n ].forEach(({ handler, eventTypes }) => {\n if (handler) {\n subscriptions.push(\n subscribe({\n sid,\n endpoint,\n handler,\n eventTypes,\n checkout,\n })\n );\n }\n });\n\n // Add iframe to DOM\n await initiate();\n // Return object with function to destroy the checkout.\n return checkout;\n};\n\n/**\n * Redirect the customer to a payment session in the Dintero Checkout.\n */\nexport const redirect = (options: DinteroCheckoutOptions) => {\n const {\n sid,\n language,\n endpoint = \"https://checkout.dintero.com\",\n } = options;\n // Redirect the current browser window to the checkout session url.\n windowLocationAssign(getSessionUrl({ sid, endpoint, language }));\n};\n","/**\n * Creates an iframe and adds it to the container.\n *\n * Returns a promise that resolves to the iframe when the iframe has loaded.\n * Rejects the promise if there is a problem loading the iframe.\n */\nexport const createIframeAsync = (\n container: HTMLDivElement,\n endpoint: string,\n url: string\n): { iframe: HTMLIFrameElement; initiate: () => void } => {\n if (!container || !container.appendChild) {\n throw new Error(\"Invalid container\");\n }\n const iframe = document.createElement(\"iframe\");\n\n // No border, transparent and stretch to 100% of the container width.\n iframe.setAttribute(\"frameborder\", \"0\");\n iframe.setAttribute(\"allowTransparency\", \"true\");\n iframe.setAttribute(\"style\", \"width:100%; height:0;\");\n\n // TODO: Get this to work as expected, might be tricky with current\n // tests since they will require the csp to be \"unsafe-inline\".\n // The server needs to add the same property in the Content Security\n // Policy headers in the response for this to work. A CSP header set by\n // a meta tag in the iframe target will not be detected as a valid\n // CSP from the iframe host.\n // Content Security Policy, should be limited to \"endpoint\".\n // iframe.setAttribute(\"csp\", `default-src ${endpoint}`);\n\n // Apply extra restrictions to the content in the iframe.\n // allow popups is needed to open terms in new window\n iframe.setAttribute(\n \"sandbox\",\n \"allow-scripts allow-forms allow-same-origin allow-popups\"\n );\n\n // The download priority of the resource in the <iframe>'s src attribute.\n iframe.setAttribute(\"importance\", \"high\");\n\n // Set the iframe source to the url.\n iframe.setAttribute(\"src\", url);\n\n // Resolve or reject promise when iframe loads.\n\n // // Add iframe to the container.\n // container.appendChild(iframe);\n return {\n iframe,\n initiate: async () => {\n return new Promise<void>((resolve, reject) => {\n iframe.onload = () => resolve();\n iframe.onerror = () => reject();\n container.appendChild(iframe);\n });\n },\n };\n};\n","import {\n CheckoutEvents,\n InternalCheckoutEvents,\n SessionEvent,\n} from \"./checkout\";\nimport { DinteroCheckoutInstance } from \".\";\n\n/**\n * Unsubscribe handler from event(s).\n */\nexport type SubscriptionHandler = (\n sessionEvent: SessionEvent,\n checkout: DinteroCheckoutInstance\n) => void;\n\ninterface SubscriptionOptions {\n sid: string;\n endpoint: string;\n handler: SubscriptionHandler;\n eventTypes: (CheckoutEvents | InternalCheckoutEvents)[];\n checkout: DinteroCheckoutInstance;\n}\n\nexport type Subscription = {\n /**\n * Unsubscribe handler from event(s).\n */\n unsubscribe: () => void;\n};\n\n/**\n * Post a message acknowledgement to the checkout iframe.\n */\nconst postAck = (iframe: HTMLIFrameElement, event: MessageEvent) => {\n if (event.data.mid && iframe.contentWindow) {\n iframe.contentWindow.postMessage(\n { ack: event.data.mid },\n event.origin || \"*\"\n );\n }\n};\n\n/**\n * Post a SessionLock-event to the checkout iframe.\n */\nexport const postSessionLock = (iframe: HTMLIFrameElement, sid: string) => {\n if (iframe.contentWindow) {\n iframe.contentWindow.postMessage({ type: \"LockSession\", sid }, \"*\");\n }\n};\n\n/**\n * Post RefreshSession-event to the checkout iframe.\n */\nexport const postSessionRefresh = (iframe: HTMLIFrameElement, sid: string) => {\n if (iframe.contentWindow) {\n iframe.contentWindow.postMessage({ type: \"RefreshSession\", sid }, \"*\");\n }\n};\n\n/**\n * Subscribe to events from an iframe given a handler and a set\n * of event types.\n */\nexport const subscribe = (options: SubscriptionOptions): Subscription => {\n const { sid, endpoint, handler, eventTypes, checkout } = options;\n\n // Wrap event handler in a function that checks for correct origin and\n // filters on event type(s) in the event data.\n const wrappedHandler = (event: MessageEvent) => {\n const correctOrigin = event.origin === endpoint;\n const correctWindow = event.source === checkout.iframe.contentWindow;\n const correctSid = event.data && event.data.sid === sid;\n const correctMessageType =\n eventTypes.indexOf(event.data && event.data.type) !== -1;\n if (\n correctOrigin &&\n correctWindow &&\n correctSid &&\n correctMessageType\n ) {\n postAck(checkout.iframe, event);\n handler(event.data, checkout);\n }\n };\n\n // Add event listener to the iframe.\n window.addEventListener(\"message\", wrappedHandler as any, false);\n\n // Function to remove the event listener from the iframe.\n const unsubscribe = () => {\n window.removeEventListener(\"message\", wrappedHandler as any, false);\n };\n\n // Return object with unsubscribe function.\n return {\n unsubscribe,\n };\n};\n"],"names":["name","context","definition","builtInProp","cycle","scheduling_queue","ToString","Object","prototype","toString","timer","setImmediate","fn","setTimeout","defineProperty","obj","val","config","value","writable","configurable","err","schedule","self","add","drain","isThenable","o","_then","o_type","then","notify","i","this","chain","length","notifyIsolated","state","success","failure","cb","ret","reject","msg","call","promise","TypeError","resolve","triggered","def","def_wrapper","MakeDefWrapper","apply","arguments","iteratePromises","Constructor","arr","resolver","rejecter","idx","MakeDef","Promise","executor","__NPO__","constructor","push","first","last","item","Item","next","f","PromisePrototype","len","msgs","Array","count","global","module","exports","CheckoutEvents","InternalCheckoutEvents","windowLocationAssign","url","window","location","assign","getSessionUrl","options","sid","endpoint","language","ui","Error","params","pkg","filter","x","join","followHref","event","href","setIframeHeight","checkout","height","iframe","setAttribute","setLanguage","handleWithResult","handler","pairs","map","key","type","SessionCancel","error","urlQuery","async","container","onSession","onSessionCancel","onPayment","onPaymentAuthorized","onPaymentError","onSessionNotFound","onSessionLocked","onSessionLockFailed","subscriptions","initiate","appendChild","document","createElement","onload","onerror","createIframeAsync","destroy","forEach","sub","unsubscribe","parentElement","removeChild","lockSession","contentWindow","postMessage","postSessionLock","refreshSession","postSessionRefresh","eventTypes","LanguageChanged","HeightChanged","SessionLoaded","SessionUpdated","SessionPaymentOnHold","SessionPaymentAuthorized","SessionPaymentError","SessionNotFound","SessionLocked","SessionLockFailed","wrappedHandler","correctOrigin","origin","correctWindow","source","correctSid","data","correctMessageType","indexOf","mid","ack","postAck","addEventListener","removeEventListener","subscribe"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"dintero-checkout-web-sdk.umd.min.js","sources":["../node_modules/native-promise-only/lib/npo.src.js","../src/checkout.ts","../src/url.ts","../src/index.ts","../src/createIframeAsync.ts","../src/subscribe.ts"],"sourcesContent":["/*! Native Promise Only\n v0.8.1 (c) Kyle Simpson\n MIT License: http://getify.mit-license.org\n*/\n\n(function UMD(name,context,definition){\n\t// special form of UMD for polyfilling across evironments\n\tcontext[name] = context[name] || definition();\n\tif (typeof module != \"undefined\" && module.exports) { module.exports = context[name]; }\n\telse if (typeof define == \"function\" && define.amd) { define(function $AMD$(){ return context[name]; }); }\n})(\"Promise\",typeof global != \"undefined\" ? global : this,function DEF(){\n\t/*jshint validthis:true */\n\t\"use strict\";\n\n\tvar builtInProp, cycle, scheduling_queue,\n\t\tToString = Object.prototype.toString,\n\t\ttimer = (typeof setImmediate != \"undefined\") ?\n\t\t\tfunction timer(fn) { return setImmediate(fn); } :\n\t\t\tsetTimeout\n\t;\n\n\t// dammit, IE8.\n\ttry {\n\t\tObject.defineProperty({},\"x\",{});\n\t\tbuiltInProp = function builtInProp(obj,name,val,config) {\n\t\t\treturn Object.defineProperty(obj,name,{\n\t\t\t\tvalue: val,\n\t\t\t\twritable: true,\n\t\t\t\tconfigurable: config !== false\n\t\t\t});\n\t\t};\n\t}\n\tcatch (err) {\n\t\tbuiltInProp = function builtInProp(obj,name,val) {\n\t\t\tobj[name] = val;\n\t\t\treturn obj;\n\t\t};\n\t}\n\n\t// Note: using a queue instead of array for efficiency\n\tscheduling_queue = (function Queue() {\n\t\tvar first, last, item;\n\n\t\tfunction Item(fn,self) {\n\t\t\tthis.fn = fn;\n\t\t\tthis.self = self;\n\t\t\tthis.next = void 0;\n\t\t}\n\n\t\treturn {\n\t\t\tadd: function add(fn,self) {\n\t\t\t\titem = new Item(fn,self);\n\t\t\t\tif (last) {\n\t\t\t\t\tlast.next = item;\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tfirst = item;\n\t\t\t\t}\n\t\t\t\tlast = item;\n\t\t\t\titem = void 0;\n\t\t\t},\n\t\t\tdrain: function drain() {\n\t\t\t\tvar f = first;\n\t\t\t\tfirst = last = cycle = void 0;\n\n\t\t\t\twhile (f) {\n\t\t\t\t\tf.fn.call(f.self);\n\t\t\t\t\tf = f.next;\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t})();\n\n\tfunction schedule(fn,self) {\n\t\tscheduling_queue.add(fn,self);\n\t\tif (!cycle) {\n\t\t\tcycle = timer(scheduling_queue.drain);\n\t\t}\n\t}\n\n\t// promise duck typing\n\tfunction isThenable(o) {\n\t\tvar _then, o_type = typeof o;\n\n\t\tif (o != null &&\n\t\t\t(\n\t\t\t\to_type == \"object\" || o_type == \"function\"\n\t\t\t)\n\t\t) {\n\t\t\t_then = o.then;\n\t\t}\n\t\treturn typeof _then == \"function\" ? _then : false;\n\t}\n\n\tfunction notify() {\n\t\tfor (var i=0; i<this.chain.length; i++) {\n\t\t\tnotifyIsolated(\n\t\t\t\tthis,\n\t\t\t\t(this.state === 1) ? this.chain[i].success : this.chain[i].failure,\n\t\t\t\tthis.chain[i]\n\t\t\t);\n\t\t}\n\t\tthis.chain.length = 0;\n\t}\n\n\t// NOTE: This is a separate function to isolate\n\t// the `try..catch` so that other code can be\n\t// optimized better\n\tfunction notifyIsolated(self,cb,chain) {\n\t\tvar ret, _then;\n\t\ttry {\n\t\t\tif (cb === false) {\n\t\t\t\tchain.reject(self.msg);\n\t\t\t}\n\t\t\telse {\n\t\t\t\tif (cb === true) {\n\t\t\t\t\tret = self.msg;\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tret = cb.call(void 0,self.msg);\n\t\t\t\t}\n\n\t\t\t\tif (ret === chain.promise) {\n\t\t\t\t\tchain.reject(TypeError(\"Promise-chain cycle\"));\n\t\t\t\t}\n\t\t\t\telse if (_then = isThenable(ret)) {\n\t\t\t\t\t_then.call(ret,chain.resolve,chain.reject);\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tchain.resolve(ret);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tcatch (err) {\n\t\t\tchain.reject(err);\n\t\t}\n\t}\n\n\tfunction resolve(msg) {\n\t\tvar _then, self = this;\n\n\t\t// already triggered?\n\t\tif (self.triggered) { return; }\n\n\t\tself.triggered = true;\n\n\t\t// unwrap\n\t\tif (self.def) {\n\t\t\tself = self.def;\n\t\t}\n\n\t\ttry {\n\t\t\tif (_then = isThenable(msg)) {\n\t\t\t\tschedule(function(){\n\t\t\t\t\tvar def_wrapper = new MakeDefWrapper(self);\n\t\t\t\t\ttry {\n\t\t\t\t\t\t_then.call(msg,\n\t\t\t\t\t\t\tfunction $resolve$(){ resolve.apply(def_wrapper,arguments); },\n\t\t\t\t\t\t\tfunction $reject$(){ reject.apply(def_wrapper,arguments); }\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\tcatch (err) {\n\t\t\t\t\t\treject.call(def_wrapper,err);\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t}\n\t\t\telse {\n\t\t\t\tself.msg = msg;\n\t\t\t\tself.state = 1;\n\t\t\t\tif (self.chain.length > 0) {\n\t\t\t\t\tschedule(notify,self);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tcatch (err) {\n\t\t\treject.call(new MakeDefWrapper(self),err);\n\t\t}\n\t}\n\n\tfunction reject(msg) {\n\t\tvar self = this;\n\n\t\t// already triggered?\n\t\tif (self.triggered) { return; }\n\n\t\tself.triggered = true;\n\n\t\t// unwrap\n\t\tif (self.def) {\n\t\t\tself = self.def;\n\t\t}\n\n\t\tself.msg = msg;\n\t\tself.state = 2;\n\t\tif (self.chain.length > 0) {\n\t\t\tschedule(notify,self);\n\t\t}\n\t}\n\n\tfunction iteratePromises(Constructor,arr,resolver,rejecter) {\n\t\tfor (var idx=0; idx<arr.length; idx++) {\n\t\t\t(function IIFE(idx){\n\t\t\t\tConstructor.resolve(arr[idx])\n\t\t\t\t.then(\n\t\t\t\t\tfunction $resolver$(msg){\n\t\t\t\t\t\tresolver(idx,msg);\n\t\t\t\t\t},\n\t\t\t\t\trejecter\n\t\t\t\t);\n\t\t\t})(idx);\n\t\t}\n\t}\n\n\tfunction MakeDefWrapper(self) {\n\t\tthis.def = self;\n\t\tthis.triggered = false;\n\t}\n\n\tfunction MakeDef(self) {\n\t\tthis.promise = self;\n\t\tthis.state = 0;\n\t\tthis.triggered = false;\n\t\tthis.chain = [];\n\t\tthis.msg = void 0;\n\t}\n\n\tfunction Promise(executor) {\n\t\tif (typeof executor != \"function\") {\n\t\t\tthrow TypeError(\"Not a function\");\n\t\t}\n\n\t\tif (this.__NPO__ !== 0) {\n\t\t\tthrow TypeError(\"Not a promise\");\n\t\t}\n\n\t\t// instance shadowing the inherited \"brand\"\n\t\t// to signal an already \"initialized\" promise\n\t\tthis.__NPO__ = 1;\n\n\t\tvar def = new MakeDef(this);\n\n\t\tthis[\"then\"] = function then(success,failure) {\n\t\t\tvar o = {\n\t\t\t\tsuccess: typeof success == \"function\" ? success : true,\n\t\t\t\tfailure: typeof failure == \"function\" ? failure : false\n\t\t\t};\n\t\t\t// Note: `then(..)` itself can be borrowed to be used against\n\t\t\t// a different promise constructor for making the chained promise,\n\t\t\t// by substituting a different `this` binding.\n\t\t\to.promise = new this.constructor(function extractChain(resolve,reject) {\n\t\t\t\tif (typeof resolve != \"function\" || typeof reject != \"function\") {\n\t\t\t\t\tthrow TypeError(\"Not a function\");\n\t\t\t\t}\n\n\t\t\t\to.resolve = resolve;\n\t\t\t\to.reject = reject;\n\t\t\t});\n\t\t\tdef.chain.push(o);\n\n\t\t\tif (def.state !== 0) {\n\t\t\t\tschedule(notify,def);\n\t\t\t}\n\n\t\t\treturn o.promise;\n\t\t};\n\t\tthis[\"catch\"] = function $catch$(failure) {\n\t\t\treturn this.then(void 0,failure);\n\t\t};\n\n\t\ttry {\n\t\t\texecutor.call(\n\t\t\t\tvoid 0,\n\t\t\t\tfunction publicResolve(msg){\n\t\t\t\t\tresolve.call(def,msg);\n\t\t\t\t},\n\t\t\t\tfunction publicReject(msg) {\n\t\t\t\t\treject.call(def,msg);\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\t\tcatch (err) {\n\t\t\treject.call(def,err);\n\t\t}\n\t}\n\n\tvar PromisePrototype = builtInProp({},\"constructor\",Promise,\n\t\t/*configurable=*/false\n\t);\n\n\t// Note: Android 4 cannot use `Object.defineProperty(..)` here\n\tPromise.prototype = PromisePrototype;\n\n\t// built-in \"brand\" to signal an \"uninitialized\" promise\n\tbuiltInProp(PromisePrototype,\"__NPO__\",0,\n\t\t/*configurable=*/false\n\t);\n\n\tbuiltInProp(Promise,\"resolve\",function Promise$resolve(msg) {\n\t\tvar Constructor = this;\n\n\t\t// spec mandated checks\n\t\t// note: best \"isPromise\" check that's practical for now\n\t\tif (msg && typeof msg == \"object\" && msg.__NPO__ === 1) {\n\t\t\treturn msg;\n\t\t}\n\n\t\treturn new Constructor(function executor(resolve,reject){\n\t\t\tif (typeof resolve != \"function\" || typeof reject != \"function\") {\n\t\t\t\tthrow TypeError(\"Not a function\");\n\t\t\t}\n\n\t\t\tresolve(msg);\n\t\t});\n\t});\n\n\tbuiltInProp(Promise,\"reject\",function Promise$reject(msg) {\n\t\treturn new this(function executor(resolve,reject){\n\t\t\tif (typeof resolve != \"function\" || typeof reject != \"function\") {\n\t\t\t\tthrow TypeError(\"Not a function\");\n\t\t\t}\n\n\t\t\treject(msg);\n\t\t});\n\t});\n\n\tbuiltInProp(Promise,\"all\",function Promise$all(arr) {\n\t\tvar Constructor = this;\n\n\t\t// spec mandated checks\n\t\tif (ToString.call(arr) != \"[object Array]\") {\n\t\t\treturn Constructor.reject(TypeError(\"Not an array\"));\n\t\t}\n\t\tif (arr.length === 0) {\n\t\t\treturn Constructor.resolve([]);\n\t\t}\n\n\t\treturn new Constructor(function executor(resolve,reject){\n\t\t\tif (typeof resolve != \"function\" || typeof reject != \"function\") {\n\t\t\t\tthrow TypeError(\"Not a function\");\n\t\t\t}\n\n\t\t\tvar len = arr.length, msgs = Array(len), count = 0;\n\n\t\t\titeratePromises(Constructor,arr,function resolver(idx,msg) {\n\t\t\t\tmsgs[idx] = msg;\n\t\t\t\tif (++count === len) {\n\t\t\t\t\tresolve(msgs);\n\t\t\t\t}\n\t\t\t},reject);\n\t\t});\n\t});\n\n\tbuiltInProp(Promise,\"race\",function Promise$race(arr) {\n\t\tvar Constructor = this;\n\n\t\t// spec mandated checks\n\t\tif (ToString.call(arr) != \"[object Array]\") {\n\t\t\treturn Constructor.reject(TypeError(\"Not an array\"));\n\t\t}\n\n\t\treturn new Constructor(function executor(resolve,reject){\n\t\t\tif (typeof resolve != \"function\" || typeof reject != \"function\") {\n\t\t\t\tthrow TypeError(\"Not a function\");\n\t\t\t}\n\n\t\t\titeratePromises(Constructor,arr,function resolver(idx,msg){\n\t\t\t\tresolve(msg);\n\t\t\t},reject);\n\t\t});\n\t});\n\n\treturn Promise;\n});\n","import { Session } from \"./session\";\n\nexport enum CheckoutEvents {\n SessionNotFound = \"SessionNotFound\",\n SessionLoaded = \"SessionLoaded\",\n SessionUpdated = \"SessionUpdated\",\n SessionCancel = \"SessionCancel\",\n SessionPaymentOnHold = \"SessionPaymentOnHold\",\n SessionPaymentAuthorized = \"SessionPaymentAuthorized\",\n SessionPaymentError = \"SessionPaymentError\",\n SessionLocked = \"SessionLocked\",\n SessionLockFailed = \"SessionLockFailed\",\n ActivePaymentProductType = \"ActivePaymentProductType\",\n ValidateSession = \"ValidateSession\",\n}\nexport enum InternalCheckoutEvents {\n HeightChanged = \"HeightChanged\",\n LanguageChanged = \"LanguageChanged\",\n}\n\nexport type SessionNotFound = {\n type: CheckoutEvents.SessionNotFound;\n};\n\nexport type SessionLoaded = {\n type: CheckoutEvents.SessionLoaded;\n session: Session;\n};\n\nexport type SessionUpdated = {\n type: CheckoutEvents.SessionUpdated;\n session: Session;\n};\n\nexport type SessionCancel = {\n type: CheckoutEvents.SessionCancel;\n href: string;\n};\n\nexport type SessionPaymentOnHold = {\n type: CheckoutEvents.SessionPaymentOnHold;\n transaction_id: string;\n merchant_reference: string;\n href: string;\n};\n\nexport type SessionPaymentAuthorized = {\n type: CheckoutEvents.SessionPaymentAuthorized;\n transaction_id: string;\n merchant_reference: string;\n href: string;\n};\n\nexport type SessionLocked = {\n type: CheckoutEvents.SessionLocked;\n pay_lock_id: string;\n callback: () => void;\n};\n\nexport type SessionLockFailed = {\n type: CheckoutEvents.SessionLockFailed;\n};\nexport type ActivePaymentProductType = {\n type: CheckoutEvents.ActivePaymentProductType;\n payment_product_type: string | undefined;\n};\n\nexport type ValidateSession = {\n type: CheckoutEvents.ValidateSession;\n session: Session;\n callback: (result: SessionValidationCallback) => void;\n};\n\nexport interface SessionValidationCallback {\n success: boolean;\n clientValidationError?: string;\n}\n\nexport type WrappedValidateSession = Pick<ValidateSession, \"type\" | \"session\">;\nexport type WrappedSessionLocked = Pick<SessionLocked, \"type\" | \"pay_lock_id\">;\n\nexport type SessionPayment = SessionPaymentAuthorized | SessionPaymentOnHold;\n\nexport type SessionPaymentError = {\n type: CheckoutEvents.SessionPaymentError;\n error: string;\n href: string;\n};\n\nexport type SessionEvent =\n | SessionNotFound\n | SessionLoaded\n | SessionUpdated\n | SessionCancel\n | SessionPaymentOnHold\n | SessionPaymentAuthorized\n | SessionPaymentError\n | WrappedSessionLocked\n | SessionLockFailed\n | ActivePaymentProductType\n | WrappedValidateSession;\n","import pkg from \"../package.json\";\n\n/**\n * Wraps window.location.assign()\n */\nexport const windowLocationAssign = (url: string) => {\n window.location.assign(url);\n};\n\n/**\n * Get the url for the session./yarn-error.log\n.DS_Store\n */\nexport interface SessionUrlOptions {\n sid: string;\n endpoint: string;\n language: string | undefined;\n ui?: \"fullscreen\" | \"inline\";\n shouldCallValidateSession: boolean;\n}\n\nexport const getSessionUrl = (options: SessionUrlOptions): string => {\n const { sid, endpoint, language, ui, shouldCallValidateSession } = options;\n if (!endpoint) {\n throw new Error(\"Invalid endpoint\");\n }\n\n // Compose url for view session endpoint with optional language parameter.\n let languageParam = language ? `language=${language}` : \"\";\n let uiParam = ui ? `ui=${ui}` : \"\";\n let sdk = `sdk=${pkg.version}`;\n let validate = shouldCallValidateSession ? `client_side_validation=true` : undefined;\n const params = [languageParam, uiParam, sdk, validate].filter(x => x).join(\"&\");\n return `${endpoint}/v1/view/${sid}${params ? \"?\" + params : \"\"}`;\n};\n","import \"native-promise-only\";\n\nimport pkg from \"../package.json\";\nimport {\n CheckoutEvents,\n InternalCheckoutEvents,\n SessionNotFound,\n SessionLoaded,\n SessionUpdated,\n SessionCancel,\n SessionPaymentOnHold,\n SessionPaymentAuthorized,\n SessionPaymentError,\n SessionLocked,\n SessionLockFailed,\n ActivePaymentProductType,\n ValidateSession,\n SessionValidationCallback,\n} from \"./checkout\";\nimport { getSessionUrl, windowLocationAssign } from \"./url\";\nimport { createIframeAsync } from \"./createIframeAsync\";\nimport {\n subscribe,\n SubscriptionHandler,\n Subscription,\n postSessionLock,\n postSessionRefresh,\n postActivePaymentProductType,\n postValidationResult,\n} from \"./subscribe\";\n\nexport interface DinteroCheckoutInstance {\n /**\n * Remove iframe and all event listeners.\n */\n destroy: () => void;\n iframe: HTMLIFrameElement;\n language: string;\n lockSession: () => void;\n refreshSession: () => void;\n setActivePaymentProductType: (paymentProductType: string) => void;\n submitValidationResult: (result: SessionValidationCallback) => void;\n}\n\nexport interface DinteroCheckoutOptions {\n sid: string;\n endpoint?: string;\n language?: string;\n}\n\nexport interface DinteroEmbedCheckoutOptions extends DinteroCheckoutOptions {\n container: HTMLDivElement;\n onPayment?: (\n event: SessionPaymentAuthorized | SessionPaymentOnHold,\n checkout: DinteroCheckoutInstance\n ) => void;\n /**\n * @deprecated Since version 0.0.1. Will be deleted in version 1.0.0. Use onPayment instead.\n */\n onPaymentAuthorized?: (\n event: SessionPaymentAuthorized,\n checkout: DinteroCheckoutInstance\n ) => void;\n onSession?: (\n event: SessionLoaded | SessionUpdated,\n checkout: DinteroCheckoutInstance\n ) => void;\n onPaymentError?: (\n event: SessionPaymentError,\n checkout: DinteroCheckoutInstance\n ) => void;\n onSessionCancel?: (\n event: SessionCancel,\n checkout: DinteroCheckoutInstance\n ) => void;\n onSessionNotFound?: (\n event: SessionNotFound,\n checkout: DinteroCheckoutInstance\n ) => void;\n onSessionLocked?: (\n event: SessionLocked,\n checkout: DinteroCheckoutInstance,\n callback: () => void,\n ) => void;\n onSessionLockFailed?: (\n event: SessionLockFailed,\n checkout: DinteroCheckoutInstance\n ) => void;\n onActivePaymentType?: (\n event: ActivePaymentProductType,\n checkout: DinteroCheckoutInstance\n ) => void;\n onValidateSession?: (\n event: ValidateSession,\n checkout: DinteroCheckoutInstance,\n callback: (result: SessionValidationCallback) => void,\n ) => void;\n}\n\n/**\n * An event handler that navigates to the href in the event.\n */\nconst followHref: SubscriptionHandler = (event: any): void => {\n if (event.href) {\n windowLocationAssign(event.href);\n }\n};\n\n/**\n * An event handler that sets height of the iframe.\n */\nconst setIframeHeight: SubscriptionHandler = (event: any, checkout): void => {\n if (event.height || event.height === 0) {\n checkout.iframe.setAttribute(\n \"style\",\n `width:100%; height:${event.height}px;`\n );\n }\n};\nconst setLanguage: SubscriptionHandler = (event: any, checkout): void => {\n if (event.language) {\n checkout.language = event.language;\n }\n};\n\nconst handleWithResult = (\n sid: string,\n endpoint: string,\n handler: SubscriptionHandler\n): SubscriptionHandler => {\n return (event: any, checkout: DinteroCheckoutInstance) => {\n const eventKeys = [\n \"sid\",\n \"merchant_reference\",\n \"transaction_id\",\n \"error\",\n ];\n const pairs = eventKeys.map((key) => [key, event[key]]);\n if (event.type === CheckoutEvents.SessionCancel && !event.error) {\n pairs.push([\"error\", \"cancelled\"]);\n }\n pairs.push([\"language\", checkout.language]);\n pairs.push([\"sdk\", pkg.version]);\n const urlQuery = pairs\n .filter(([key, value]) => value)\n .map(([key, value]) => `${key}=${value}`)\n .join(\"&\");\n checkout.iframe.setAttribute(\n \"src\",\n `${endpoint}/embedResult/?${urlQuery}`\n );\n handler(event, checkout);\n };\n};\n\n/**\n * Show a dintero payment session in an embedded iframe.\n */\nexport const embed = async (\n options: DinteroEmbedCheckoutOptions\n): Promise<DinteroCheckoutInstance> => {\n const {\n container,\n sid,\n language,\n endpoint = \"https://checkout.dintero.com\",\n onSession,\n onSessionCancel,\n onPayment,\n onPaymentAuthorized,\n onPaymentError,\n onSessionNotFound,\n onSessionLocked,\n onSessionLockFailed,\n onActivePaymentType,\n onValidateSession,\n } = options;\n const subscriptions: Subscription[] = [];\n\n // Create iframe\n const { iframe, initiate } = createIframeAsync(\n container,\n endpoint,\n getSessionUrl({\n sid,\n endpoint,\n language,\n ui: \"inline\",\n shouldCallValidateSession: onValidateSession !== undefined\n }),\n );\n\n /**\n * Function that removes the iframe and all event listeners.\n */\n const destroy = () => {\n if (iframe) {\n subscriptions.forEach((sub) => sub.unsubscribe());\n if (iframe.parentElement) {\n container.removeChild(iframe);\n }\n }\n };\n\n const lockSession = () => {\n postSessionLock(iframe, sid);\n };\n\n const refreshSession = () => {\n postSessionRefresh(iframe, sid);\n };\n\n const setActivePaymentProductType = (paymentProductType?:string) => {\n postActivePaymentProductType(iframe, sid, paymentProductType);\n };\n\n const submitValidationResult = (result: SessionValidationCallback) => {\n postValidationResult(iframe, sid, result);\n }\n\n const wrappedOnValidateSession = (\n event: ValidateSession,\n checkout: DinteroCheckoutInstance,\n ) => {\n if (onValidateSession) {\n onValidateSession(event, checkout, submitValidationResult);\n }\n }\n\n const wrappedOnSessionLocked = (\n event: SessionLocked,\n checkout: DinteroCheckoutInstance,\n ) => {\n if (onSessionLocked) {\n onSessionLocked(event, checkout, refreshSession);\n }\n }\n\n // Create checkout object that wraps the destroy function.\n const checkout: DinteroCheckoutInstance = {\n destroy,\n iframe,\n language,\n lockSession,\n refreshSession,\n setActivePaymentProductType,\n submitValidationResult,\n };\n\n // Add event handlers (or in some cases add a fallback href handler).\n [\n {\n handler: setLanguage,\n eventTypes: [InternalCheckoutEvents.LanguageChanged],\n },\n {\n handler: setIframeHeight,\n eventTypes: [InternalCheckoutEvents.HeightChanged],\n },\n {\n handler: onSession as SubscriptionHandler | undefined,\n eventTypes: [\n CheckoutEvents.SessionLoaded,\n CheckoutEvents.SessionUpdated,\n ],\n },\n {\n eventTypes: [CheckoutEvents.SessionPaymentOnHold],\n handler: onPayment\n ? handleWithResult(sid, endpoint, onPayment)\n : followHref,\n },\n {\n eventTypes: [CheckoutEvents.SessionPaymentAuthorized],\n handler:\n onPaymentAuthorized || onPayment\n ? handleWithResult(\n sid,\n endpoint,\n onPaymentAuthorized || onPayment\n )\n : followHref,\n },\n {\n handler: onSessionCancel\n ? handleWithResult(sid, endpoint, onSessionCancel)\n : followHref,\n eventTypes: [CheckoutEvents.SessionCancel],\n },\n {\n handler: onPaymentError\n ? handleWithResult(sid, endpoint, onPaymentError)\n : followHref,\n eventTypes: [CheckoutEvents.SessionPaymentError],\n },\n {\n handler: onSessionNotFound as SubscriptionHandler | undefined,\n eventTypes: [CheckoutEvents.SessionNotFound],\n },\n {\n handler: wrappedOnSessionLocked as SubscriptionHandler | undefined,\n eventTypes: [CheckoutEvents.SessionLocked],\n },\n {\n handler: onSessionLockFailed as SubscriptionHandler | undefined,\n eventTypes: [CheckoutEvents.SessionLockFailed],\n },\n {\n handler: onActivePaymentType as SubscriptionHandler | undefined,\n eventTypes: [CheckoutEvents.ActivePaymentProductType],\n },\n {\n handler: onActivePaymentType as SubscriptionHandler | undefined,\n eventTypes: [CheckoutEvents.ActivePaymentProductType],\n },\n {\n handler: wrappedOnValidateSession as SubscriptionHandler | undefined,\n eventTypes: [CheckoutEvents.ValidateSession],\n },\n ].forEach(({ handler, eventTypes }) => {\n if (handler) {\n subscriptions.push(\n subscribe({\n sid,\n endpoint,\n handler,\n eventTypes,\n checkout,\n })\n );\n }\n });\n\n // Add iframe to DOM\n await initiate();\n // Return object with function to destroy the checkout.\n return checkout;\n};\n\n/**\n * Redirect the customer to a payment session in the Dintero Checkout.\n */\nexport const redirect = (options: DinteroCheckoutOptions) => {\n const {\n sid,\n language,\n endpoint = \"https://checkout.dintero.com\",\n } = options;\n // Redirect the current browser window to the checkout session url.\n windowLocationAssign(getSessionUrl({ sid, endpoint, language, shouldCallValidateSession: false }));\n};\n","/**\n * Creates an iframe and adds it to the container.\n *\n * Returns a promise that resolves to the iframe when the iframe has loaded.\n * Rejects the promise if there is a problem loading the iframe.\n */\nexport const createIframeAsync = (\n container: HTMLDivElement,\n endpoint: string,\n url: string\n): { iframe: HTMLIFrameElement; initiate: () => void } => {\n if (!container || !container.appendChild) {\n throw new Error(\"Invalid container\");\n }\n const iframe = document.createElement(\"iframe\");\n\n // No border, transparent and stretch to 100% of the container width.\n iframe.setAttribute(\"frameborder\", \"0\");\n iframe.setAttribute(\"allowTransparency\", \"true\");\n iframe.setAttribute(\"style\", \"width:100%; height:0;\");\n\n // TODO: Get this to work as expected, might be tricky with current\n // tests since they will require the csp to be \"unsafe-inline\".\n // The server needs to add the same property in the Content Security\n // Policy headers in the response for this to work. A CSP header set by\n // a meta tag in the iframe target will not be detected as a valid\n // CSP from the iframe host.\n // Content Security Policy, should be limited to \"endpoint\".\n // iframe.setAttribute(\"csp\", `default-src ${endpoint}`);\n\n // Apply extra restrictions to the content in the iframe.\n // allow popups is needed to open terms in new window\n iframe.setAttribute(\n \"sandbox\",\n \"allow-scripts allow-forms allow-same-origin allow-popups\"\n );\n\n // The download priority of the resource in the <iframe>'s src attribute.\n iframe.setAttribute(\"importance\", \"high\");\n\n // Set the iframe source to the url.\n iframe.setAttribute(\"src\", url);\n\n // Resolve or reject promise when iframe loads.\n\n // // Add iframe to the container.\n // container.appendChild(iframe);\n return {\n iframe,\n initiate: async () => {\n return new Promise<void>((resolve, reject) => {\n iframe.onload = () => resolve();\n iframe.onerror = () => reject();\n container.appendChild(iframe);\n });\n },\n };\n};\n","import {\n CheckoutEvents,\n InternalCheckoutEvents,\n SessionEvent,\n SessionValidationCallback,\n} from \"./checkout\";\nimport { DinteroCheckoutInstance } from \".\";\n\n/**\n * Unsubscribe handler from event(s).\n */\nexport type SubscriptionHandler = (\n sessionEvent: SessionEvent,\n checkout: DinteroCheckoutInstance\n) => void;\n\ninterface SubscriptionOptions {\n sid: string;\n endpoint: string;\n handler: SubscriptionHandler;\n eventTypes: (CheckoutEvents | InternalCheckoutEvents)[];\n checkout: DinteroCheckoutInstance;\n}\n\nexport type Subscription = {\n /**\n * Unsubscribe handler from event(s).\n */\n unsubscribe: () => void;\n};\n\n/**\n * Post a message acknowledgement to the checkout iframe.\n */\nconst postAck = (iframe: HTMLIFrameElement, event: MessageEvent) => {\n if (event.data.mid && iframe.contentWindow) {\n iframe.contentWindow.postMessage(\n { ack: event.data.mid },\n event.origin || \"*\"\n );\n }\n};\n\n/**\n * Post a SessionLock-event to the checkout iframe.\n */\nexport const postSessionLock = (iframe: HTMLIFrameElement, sid: string) => {\n if (iframe.contentWindow) {\n iframe.contentWindow.postMessage({ type: \"LockSession\", sid }, \"*\");\n }\n};\n\n/**\n * Post the validation result to the checkout iframe\n */\nexport const postValidationResult = (iframe: HTMLIFrameElement, sid: string, result: SessionValidationCallback) => {\n if (iframe.contentWindow) {\n iframe.contentWindow.postMessage({ type: \"ValidationResult\", sid, ...result }, \"*\");\n }\n};\n\n/**\n * Post RefreshSession-event to the checkout iframe.\n */\nexport const postSessionRefresh = (iframe: HTMLIFrameElement, sid: string) => {\n if (iframe.contentWindow) {\n iframe.contentWindow.postMessage({ type: \"RefreshSession\", sid }, \"*\");\n }\n};\n\n/**\n * Post setActivePaymentProductType-event to the checkout iframe.\n */\nexport const postActivePaymentProductType = (iframe: HTMLIFrameElement, sid: string, paymentProductType?: string) => {\n if (iframe.contentWindow) {\n iframe.contentWindow.postMessage(\n { type: \"SetActivePaymentProductType\", sid, payment_product_type:paymentProductType },\n \"*\"\n );\n }\n};\n\n/**\n * Subscribe to events from an iframe given a handler and a set\n * of event types.\n */\nexport const subscribe = (options: SubscriptionOptions): Subscription => {\n const { sid, endpoint, handler, eventTypes, checkout } = options;\n\n // Wrap event handler in a function that checks for correct origin and\n // filters on event type(s) in the event data.\n const wrappedHandler = (event: MessageEvent) => {\n const correctOrigin = event.origin === endpoint;\n const correctWindow = event.source === checkout.iframe.contentWindow;\n const correctSid = event.data && event.data.sid === sid;\n const correctMessageType =\n eventTypes.indexOf(event.data && event.data.type) !== -1;\n if (\n correctOrigin &&\n correctWindow &&\n correctSid &&\n correctMessageType\n ) {\n postAck(checkout.iframe, event);\n handler(event.data, checkout);\n }\n };\n\n // Add event listener to the iframe.\n window.addEventListener(\"message\", wrappedHandler as any, false);\n\n // Function to remove the event listener from the iframe.\n const unsubscribe = () => {\n window.removeEventListener(\"message\", wrappedHandler as any, false);\n };\n\n // Return object with unsubscribe function.\n return {\n unsubscribe,\n };\n};\n"],"names":["name","context","definition","builtInProp","cycle","scheduling_queue","ToString","Object","prototype","toString","timer","setImmediate","fn","setTimeout","defineProperty","obj","val","config","value","writable","configurable","err","schedule","self","add","drain","isThenable","o","_then","o_type","then","notify","i","this","chain","length","notifyIsolated","state","success","failure","cb","ret","reject","msg","call","promise","TypeError","resolve","triggered","def","def_wrapper","MakeDefWrapper","apply","arguments","iteratePromises","Constructor","arr","resolver","rejecter","idx","MakeDef","Promise","executor","__NPO__","constructor","push","first","last","item","Item","next","f","PromisePrototype","len","msgs","Array","count","global","module","exports","CheckoutEvents","InternalCheckoutEvents","windowLocationAssign","url","window","location","assign","getSessionUrl","options","sid","endpoint","language","ui","shouldCallValidateSession","Error","params","pkg","undefined","filter","x","join","followHref","event","href","setIframeHeight","checkout","height","iframe","setAttribute","setLanguage","handleWithResult","handler","pairs","map","key","type","SessionCancel","error","urlQuery","async","container","onSession","onSessionCancel","onPayment","onPaymentAuthorized","onPaymentError","onSessionNotFound","onSessionLocked","onSessionLockFailed","onActivePaymentType","onValidateSession","subscriptions","initiate","appendChild","document","createElement","onload","onerror","createIframeAsync","refreshSession","contentWindow","postMessage","postSessionRefresh","submitValidationResult","result","postValidationResult","destroy","forEach","sub","unsubscribe","parentElement","removeChild","lockSession","postSessionLock","setActivePaymentProductType","paymentProductType","payment_product_type","postActivePaymentProductType","eventTypes","LanguageChanged","HeightChanged","SessionLoaded","SessionUpdated","SessionPaymentOnHold","SessionPaymentAuthorized","SessionPaymentError","SessionNotFound","SessionLocked","SessionLockFailed","ActivePaymentProductType","ValidateSession","wrappedHandler","correctOrigin","origin","correctWindow","source","correctSid","data","correctMessageType","indexOf","mid","ack","postAck","addEventListener","removeEventListener","subscribe"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,48 +1,51 @@
|
|
|
1
1
|
{
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
"
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
"
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
"
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
"
|
|
46
|
-
|
|
47
|
-
|
|
2
|
+
"name": "@dintero/checkout-web-sdk",
|
|
3
|
+
"version": "0.3.1",
|
|
4
|
+
"description": "Dintero Checkout SDK for web frontends",
|
|
5
|
+
"main": "dist/dintero-checkout-web-sdk.cjs.js",
|
|
6
|
+
"module": "dist/dintero-checkout-web-sdk.esm.js",
|
|
7
|
+
"umd:main": "dist/dintero-checkout-web-sdk.umd.min.js",
|
|
8
|
+
"unpkg": "dist/dintero-checkout-web-sdk.umd.min.js",
|
|
9
|
+
"types": "dist/dintero-checkout-web-sdk.cjs.d.ts",
|
|
10
|
+
"preconstruct": {
|
|
11
|
+
"umdName": "dintero"
|
|
12
|
+
},
|
|
13
|
+
"scripts": {
|
|
14
|
+
"build": "preconstruct build",
|
|
15
|
+
"test": "karma start",
|
|
16
|
+
"semantic-release": "semantic-release",
|
|
17
|
+
"prepublishOnly": "npm run build"
|
|
18
|
+
},
|
|
19
|
+
"private": false,
|
|
20
|
+
"repository": {
|
|
21
|
+
"type": "git",
|
|
22
|
+
"url": "https://github.com/Dintero/Dintero.Checkout.Web.SDK.git"
|
|
23
|
+
},
|
|
24
|
+
"homepage": "https://github.com/Dintero/Dintero.Checkout.Web.SDK#readme",
|
|
25
|
+
"author": "Sven Nicolai Viig <sven@dintero.com> (http://dintero.com)",
|
|
26
|
+
"license": "MIT",
|
|
27
|
+
"bugs": {
|
|
28
|
+
"url": "https://github.com/Dintero/Dintero.Checkout.Web.SDK/issues"
|
|
29
|
+
},
|
|
30
|
+
"devDependencies": {
|
|
31
|
+
"@babel/preset-env": "^7.14.1",
|
|
32
|
+
"@babel/preset-typescript": "^7.13.0",
|
|
33
|
+
"@preconstruct/cli": "^2.1.5",
|
|
34
|
+
"@semantic-release/git": "^10.0.1",
|
|
35
|
+
"chai": "^4.2.0",
|
|
36
|
+
"karma": "^6.3.14",
|
|
37
|
+
"karma-chai": "^0.1.0",
|
|
38
|
+
"karma-chrome-launcher": "^3.1.0",
|
|
39
|
+
"karma-mocha": "^2.0.1",
|
|
40
|
+
"karma-typescript": "^5.0.3",
|
|
41
|
+
"mocha": "^8.1.1",
|
|
42
|
+
"prettier": "^1.19.1",
|
|
43
|
+
"puppeteer": "^13.3.2",
|
|
44
|
+
"semantic-release": "^19.0.2",
|
|
45
|
+
"sinon": "^13.0.1",
|
|
46
|
+
"typescript": "^4.2.4"
|
|
47
|
+
},
|
|
48
|
+
"dependencies": {
|
|
49
|
+
"native-promise-only": "^0.8.1"
|
|
50
|
+
}
|
|
48
51
|
}
|