@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.
Files changed (33) hide show
  1. package/.github/dependabot.yml +10 -0
  2. package/.github/workflows/{blank.yml → build.yml} +6 -5
  3. package/.github/workflows/release.yml +33 -0
  4. package/.releaserc.json +11 -0
  5. package/CHANGELOG.md +7 -0
  6. package/README.md +85 -17
  7. 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
  8. 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
  9. 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
  10. 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
  11. 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
  12. 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
  13. 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
  14. 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
  15. 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
  16. 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
  17. 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
  18. 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
  19. 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
  20. package/dist/declarations/src/checkout.d.ts +75 -57
  21. package/dist/declarations/src/createIframeAsync.d.ts +10 -10
  22. package/dist/declarations/src/index.d.ts +43 -39
  23. package/dist/declarations/src/subscribe.d.ts +41 -33
  24. package/dist/declarations/src/url.d.ts +16 -15
  25. package/dist/dintero-checkout-web-sdk.cjs.dev.js +84 -16
  26. package/dist/dintero-checkout-web-sdk.cjs.prod.js +84 -16
  27. package/dist/dintero-checkout-web-sdk.esm.js +84 -16
  28. package/dist/dintero-checkout-web-sdk.umd.min.js +1 -1
  29. package/dist/dintero-checkout-web-sdk.umd.min.js.map +1 -1
  30. package/package.json +49 -46
  31. package/coverage/Chrome Headless 80.0.3987.0 (Mac OS 10.15.7)/html/dintero-checkout-web-sdk.ts.html +0 -908
  32. package/coverage/Chrome Headless 80.0.3987.0 (Mac OS 10.15.7)/html/index.ts.html +0 -908
  33. package/dist/declarations/package.d.ts +0 -49
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">84.62% </span>
26
+ <span class="strong">76.47% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>22/26</span>
28
+ <span class='fraction'>26/34</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">75% </span>
33
+ <span class="strong">62.5% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>15/20</span>
35
+ <span class='fraction'>15/24</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">66.67% </span>
40
+ <span class="strong">50% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>4/6</span>
42
+ <span class='fraction'>4/8</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">82.61% </span>
47
+ <span class="strong">72.41% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>19/23</span>
49
+ <span class='fraction'>21/29</span>
50
50
  </div>
51
51
 
52
52
 
@@ -55,7 +55,7 @@
55
55
  Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
56
56
  </p>
57
57
  </div>
58
- <div class='status-line high'></div>
58
+ <div class='status-line medium'></div>
59
59
  <pre><table class="coverage">
60
60
  <tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
61
61
  <a name='L2'></a><a href='#L2'>2</a>
@@ -156,7 +156,29 @@
156
156
  <a name='L97'></a><a href='#L97'>97</a>
157
157
  <a name='L98'></a><a href='#L98'>98</a>
158
158
  <a name='L99'></a><a href='#L99'>99</a>
159
- <a name='L100'></a><a href='#L100'>100</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
159
+ <a name='L100'></a><a href='#L100'>100</a>
160
+ <a name='L101'></a><a href='#L101'>101</a>
161
+ <a name='L102'></a><a href='#L102'>102</a>
162
+ <a name='L103'></a><a href='#L103'>103</a>
163
+ <a name='L104'></a><a href='#L104'>104</a>
164
+ <a name='L105'></a><a href='#L105'>105</a>
165
+ <a name='L106'></a><a href='#L106'>106</a>
166
+ <a name='L107'></a><a href='#L107'>107</a>
167
+ <a name='L108'></a><a href='#L108'>108</a>
168
+ <a name='L109'></a><a href='#L109'>109</a>
169
+ <a name='L110'></a><a href='#L110'>110</a>
170
+ <a name='L111'></a><a href='#L111'>111</a>
171
+ <a name='L112'></a><a href='#L112'>112</a>
172
+ <a name='L113'></a><a href='#L113'>113</a>
173
+ <a name='L114'></a><a href='#L114'>114</a>
174
+ <a name='L115'></a><a href='#L115'>115</a>
175
+ <a name='L116'></a><a href='#L116'>116</a>
176
+ <a name='L117'></a><a href='#L117'>117</a>
177
+ <a name='L118'></a><a href='#L118'>118</a>
178
+ <a name='L119'></a><a href='#L119'>119</a>
179
+ <a name='L120'></a><a href='#L120'>120</a>
180
+ <a name='L121'></a><a href='#L121'>121</a>
181
+ <a name='L122'></a><a href='#L122'>122</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
160
182
  <span class="cline-any cline-neutral">&nbsp;</span>
161
183
  <span class="cline-any cline-neutral">&nbsp;</span>
162
184
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -189,15 +211,34 @@
189
211
  <span class="cline-any cline-neutral">&nbsp;</span>
190
212
  <span class="cline-any cline-neutral">&nbsp;</span>
191
213
  <span class="cline-any cline-neutral">&nbsp;</span>
214
+ <span class="cline-any cline-neutral">&nbsp;</span>
215
+ <span class="cline-any cline-yes">1x</span>
216
+ <span class="cline-any cline-yes">22x</span>
217
+ <span class="cline-any cline-yes">1x</span>
218
+ <span class="cline-any cline-neutral">&nbsp;</span>
219
+ <span class="cline-any cline-neutral">&nbsp;</span>
220
+ <span class="cline-any cline-neutral">&nbsp;</span>
221
+ <span class="cline-any cline-neutral">&nbsp;</span>
222
+ <span class="cline-any cline-neutral">&nbsp;</span>
223
+ <span class="cline-any cline-neutral">&nbsp;</span>
224
+ <span class="cline-any cline-neutral">&nbsp;</span>
225
+ <span class="cline-any cline-neutral">&nbsp;</span>
226
+ <span class="cline-any cline-neutral">&nbsp;</span>
192
227
  <span class="cline-any cline-yes">1x</span>
193
- <span class="cline-any cline-yes">36x</span>
194
- <span class="cline-any cline-yes">2x</span>
228
+ <span class="cline-any cline-no">&nbsp;</span>
229
+ <span class="cline-any cline-no">&nbsp;</span>
195
230
  <span class="cline-any cline-neutral">&nbsp;</span>
196
231
  <span class="cline-any cline-neutral">&nbsp;</span>
197
232
  <span class="cline-any cline-neutral">&nbsp;</span>
198
233
  <span class="cline-any cline-neutral">&nbsp;</span>
199
234
  <span class="cline-any cline-neutral">&nbsp;</span>
200
235
  <span class="cline-any cline-neutral">&nbsp;</span>
236
+ <span class="cline-any cline-yes">1x</span>
237
+ <span class="cline-any cline-no">&nbsp;</span>
238
+ <span class="cline-any cline-no">&nbsp;</span>
239
+ <span class="cline-any cline-neutral">&nbsp;</span>
240
+ <span class="cline-any cline-neutral">&nbsp;</span>
241
+ <span class="cline-any cline-neutral">&nbsp;</span>
201
242
  <span class="cline-any cline-neutral">&nbsp;</span>
202
243
  <span class="cline-any cline-neutral">&nbsp;</span>
203
244
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -220,38 +261,41 @@
220
261
  <span class="cline-any cline-neutral">&nbsp;</span>
221
262
  <span class="cline-any cline-neutral">&nbsp;</span>
222
263
  <span class="cline-any cline-neutral">&nbsp;</span>
264
+ <span class="cline-any cline-neutral">&nbsp;</span>
265
+ <span class="cline-any cline-neutral">&nbsp;</span>
266
+ <span class="cline-any cline-neutral">&nbsp;</span>
223
267
  <span class="cline-any cline-yes">1x</span>
224
- <span class="cline-any cline-yes">1480x</span>
268
+ <span class="cline-any cline-yes">1095x</span>
225
269
  <span class="cline-any cline-neutral">&nbsp;</span>
226
270
  <span class="cline-any cline-neutral">&nbsp;</span>
227
271
  <span class="cline-any cline-neutral">&nbsp;</span>
228
- <span class="cline-any cline-yes">296x</span>
229
- <span class="cline-any cline-yes">6134x</span>
230
- <span class="cline-any cline-yes">6134x</span>
231
- <span class="cline-any cline-yes">6134x</span>
272
+ <span class="cline-any cline-yes">219x</span>
273
+ <span class="cline-any cline-yes">2753x</span>
274
+ <span class="cline-any cline-yes">2753x</span>
275
+ <span class="cline-any cline-yes">2753x</span>
232
276
  <span class="cline-any cline-neutral">&nbsp;</span>
233
- <span class="cline-any cline-yes">6134x</span>
234
- <span class="cline-any cline-yes">6134x</span>
277
+ <span class="cline-any cline-yes">2753x</span>
278
+ <span class="cline-any cline-yes">2753x</span>
235
279
  <span class="cline-any cline-neutral">&nbsp;</span>
236
280
  <span class="cline-any cline-neutral">&nbsp;</span>
237
281
  <span class="cline-any cline-neutral">&nbsp;</span>
238
282
  <span class="cline-any cline-neutral">&nbsp;</span>
239
283
  <span class="cline-any cline-neutral">&nbsp;</span>
240
- <span class="cline-any cline-yes">36x</span>
241
- <span class="cline-any cline-yes">36x</span>
284
+ <span class="cline-any cline-yes">22x</span>
285
+ <span class="cline-any cline-yes">22x</span>
242
286
  <span class="cline-any cline-neutral">&nbsp;</span>
243
287
  <span class="cline-any cline-neutral">&nbsp;</span>
244
288
  <span class="cline-any cline-neutral">&nbsp;</span>
245
289
  <span class="cline-any cline-neutral">&nbsp;</span>
246
- <span class="cline-any cline-yes">296x</span>
290
+ <span class="cline-any cline-yes">219x</span>
247
291
  <span class="cline-any cline-neutral">&nbsp;</span>
248
292
  <span class="cline-any cline-neutral">&nbsp;</span>
249
- <span class="cline-any cline-yes">296x</span>
250
- <span class="cline-any cline-yes">36x</span>
293
+ <span class="cline-any cline-yes">219x</span>
294
+ <span class="cline-any cline-yes">24x</span>
251
295
  <span class="cline-any cline-neutral">&nbsp;</span>
252
296
  <span class="cline-any cline-neutral">&nbsp;</span>
253
297
  <span class="cline-any cline-neutral">&nbsp;</span>
254
- <span class="cline-any cline-yes">296x</span>
298
+ <span class="cline-any cline-yes">219x</span>
255
299
  <span class="cline-any cline-neutral">&nbsp;</span>
256
300
  <span class="cline-any cline-neutral">&nbsp;</span>
257
301
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -259,6 +303,7 @@
259
303
  CheckoutEvents,
260
304
  InternalCheckoutEvents,
261
305
  SessionEvent,
306
+ SessionValidationCallback,
262
307
  } from "./checkout";
263
308
  import { DinteroCheckoutInstance } from ".";
264
309
  &nbsp;
@@ -306,6 +351,15 @@ export const postSessionLock = <span class="fstat-no" title="function not covere
306
351
  }
307
352
  };
308
353
  &nbsp;
354
+ /**
355
+ * Post the validation result to the checkout iframe
356
+ */
357
+ export const postValidationResult = <span class="fstat-no" title="function not covered" >(i</span>frame: HTMLIFrameElement, sid: string, result: SessionValidationCallback) =&gt; {
358
+ <span class="cstat-no" title="statement not covered" > if (iframe.contentWindow) {</span>
359
+ <span class="cstat-no" title="statement not covered" > iframe.contentWindow.postMessage({ type: "ValidationResult", sid, ...result }, "*");</span>
360
+ }
361
+ };
362
+ &nbsp;
309
363
  /**
310
364
  * Post RefreshSession-event to the checkout iframe.
311
365
  */
@@ -315,6 +369,18 @@ export const postSessionRefresh = <span class="fstat-no" title="function not cov
315
369
  }
316
370
  };
317
371
  &nbsp;
372
+ /**
373
+ * Post setActivePaymentProductType-event to the checkout iframe.
374
+ */
375
+ export const postActivePaymentProductType = <span class="fstat-no" title="function not covered" >(i</span>frame: HTMLIFrameElement, sid: string, paymentProductType?: string) =&gt; {
376
+ <span class="cstat-no" title="statement not covered" > if (iframe.contentWindow) {</span>
377
+ <span class="cstat-no" title="statement not covered" > iframe.contentWindow.postMessage(</span>
378
+ { type: "SetActivePaymentProductType", sid, payment_product_type:paymentProductType },
379
+ "*"
380
+ );
381
+ }
382
+ };
383
+ &nbsp;
318
384
  /**
319
385
  * Subscribe to events from an iframe given a handler and a set
320
386
  * of event types.
@@ -361,7 +427,7 @@ export const subscribe = (options: SubscriptionOptions): Subscription =&gt; {
361
427
  <div class='footer quiet pad2 space-top1 center small'>
362
428
  Code coverage generated by
363
429
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
364
- at Tue May 11 2021 12:17:54 GMT+0200 (Central European Summer Time)
430
+ at Wed Feb 16 2022 09:14:07 GMT+0000 (Coordinated Universal Time)
365
431
  </div>
366
432
  </div>
367
433
  <script src="prettify.js"></script>
@@ -23,16 +23,16 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">86.67% </span>
26
+ <span class="strong">87.5% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>13/15</span>
28
+ <span class='fraction'>14/16</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">62.5% </span>
33
+ <span class="strong">60% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>5/8</span>
35
+ <span class='fraction'>6/10</span>
36
36
  </div>
37
37
 
38
38
 
@@ -44,9 +44,9 @@
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">83.33% </span>
47
+ <span class="strong">84.62% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>10/12</span>
49
+ <span class='fraction'>11/13</span>
50
50
  </div>
51
51
 
52
52
 
@@ -90,7 +90,9 @@
90
90
  <a name='L31'></a><a href='#L31'>31</a>
91
91
  <a name='L32'></a><a href='#L32'>32</a>
92
92
  <a name='L33'></a><a href='#L33'>33</a>
93
- <a name='L34'></a><a href='#L34'>34</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
93
+ <a name='L34'></a><a href='#L34'>34</a>
94
+ <a name='L35'></a><a href='#L35'>35</a>
95
+ <a name='L36'></a><a href='#L36'>36</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
94
96
  <span class="cline-any cline-neutral">&nbsp;</span>
95
97
  <span class="cline-any cline-neutral">&nbsp;</span>
96
98
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -110,18 +112,20 @@
110
112
  <span class="cline-any cline-neutral">&nbsp;</span>
111
113
  <span class="cline-any cline-neutral">&nbsp;</span>
112
114
  <span class="cline-any cline-neutral">&nbsp;</span>
115
+ <span class="cline-any cline-neutral">&nbsp;</span>
113
116
  <span class="cline-any cline-yes">1x</span>
114
- <span class="cline-any cline-yes">16x</span>
115
- <span class="cline-any cline-yes">4x</span>
117
+ <span class="cline-any cline-yes">10x</span>
118
+ <span class="cline-any cline-yes">2x</span>
116
119
  <span class="cline-any cline-no">&nbsp;</span>
117
120
  <span class="cline-any cline-neutral">&nbsp;</span>
118
121
  <span class="cline-any cline-neutral">&nbsp;</span>
119
122
  <span class="cline-any cline-neutral">&nbsp;</span>
120
- <span class="cline-any cline-yes">4x</span>
121
- <span class="cline-any cline-yes">4x</span>
122
- <span class="cline-any cline-yes">4x</span>
123
- <span class="cline-any cline-yes">12x</span>
124
- <span class="cline-any cline-yes">4x</span>
123
+ <span class="cline-any cline-yes">2x</span>
124
+ <span class="cline-any cline-yes">2x</span>
125
+ <span class="cline-any cline-yes">2x</span>
126
+ <span class="cline-any cline-yes">2x</span>
127
+ <span class="cline-any cline-yes">8x</span>
128
+ <span class="cline-any cline-yes">2x</span>
125
129
  <span class="cline-any cline-neutral">&nbsp;</span>
126
130
  <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import pkg from "../package.json";
127
131
  &nbsp;
@@ -141,10 +145,11 @@ export interface SessionUrlOptions {
141
145
  endpoint: string;
142
146
  language: string | undefined;
143
147
  ui?: "fullscreen" | "inline";
148
+ shouldCallValidateSession: boolean;
144
149
  }
145
150
  &nbsp;
146
151
  export const getSessionUrl = (options: SessionUrlOptions): string =&gt; {
147
- const { sid, endpoint, language, ui } = options;
152
+ const { sid, endpoint, language, ui, shouldCallValidateSession } = options;
148
153
  <span class="missing-if-branch" title="if path not taken" >I</span>if (!endpoint) {
149
154
  <span class="cstat-no" title="statement not covered" > throw new Error("Invalid endpoint");</span>
150
155
  }
@@ -153,7 +158,8 @@ export const getSessionUrl = (options: SessionUrlOptions): string =&gt; {
153
158
  let languageParam = language ? `language=${language}` : "";
154
159
  let uiParam = ui ? <span class="branch-0 cbranch-no" title="branch not covered" >`ui=${ui}` </span>: "";
155
160
  let sdk = `sdk=${pkg.version}`;
156
- const params = [languageParam, uiParam, sdk].filter(x =&gt; x).join("&amp;");
161
+ let validate = shouldCallValidateSession ? <span class="branch-0 cbranch-no" title="branch not covered" >`client_side_validation=true` </span>: undefined;
162
+ const params = [languageParam, uiParam, sdk, validate].filter(x =&gt; x).join("&amp;");
157
163
  return `${endpoint}/v1/view/${sid}${params ? "?" + params : <span class="branch-1 cbranch-no" title="branch not covered" >""}</span>`;
158
164
  };
159
165
  &nbsp;</pre></td></tr></table></pre>
@@ -163,7 +169,7 @@ export const getSessionUrl = (options: SessionUrlOptions): string =&gt; {
163
169
  <div class='footer quiet pad2 space-top1 center small'>
164
170
  Code coverage generated by
165
171
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
166
- at Tue May 11 2021 12:17:54 GMT+0200 (Central European Summer Time)
172
+ at Wed Feb 16 2022 09:14:07 GMT+0000 (Coordinated Universal Time)
167
173
  </div>
168
174
  </div>
169
175
  <script src="prettify.js"></script>
@@ -1,57 +1,75 @@
1
- import { Session } from "./session";
2
- export declare enum CheckoutEvents {
3
- SessionNotFound = "SessionNotFound",
4
- SessionLoaded = "SessionLoaded",
5
- SessionUpdated = "SessionUpdated",
6
- SessionCancel = "SessionCancel",
7
- SessionPaymentOnHold = "SessionPaymentOnHold",
8
- SessionPaymentAuthorized = "SessionPaymentAuthorized",
9
- SessionPaymentError = "SessionPaymentError",
10
- SessionLocked = "SessionLocked",
11
- SessionLockFailed = "SessionLockFailed"
12
- }
13
- export declare enum InternalCheckoutEvents {
14
- HeightChanged = "HeightChanged",
15
- LanguageChanged = "LanguageChanged"
16
- }
17
- export declare type SessionNotFound = {
18
- type: CheckoutEvents.SessionNotFound;
19
- };
20
- export declare type SessionLoaded = {
21
- type: CheckoutEvents.SessionLoaded;
22
- session: Session;
23
- };
24
- export declare type SessionUpdated = {
25
- type: CheckoutEvents.SessionUpdated;
26
- session: Session;
27
- };
28
- export declare type SessionCancel = {
29
- type: CheckoutEvents.SessionCancel;
30
- href: string;
31
- };
32
- export declare type SessionPaymentOnHold = {
33
- type: CheckoutEvents.SessionPaymentOnHold;
34
- transaction_id: string;
35
- merchant_reference: string;
36
- href: string;
37
- };
38
- export declare type SessionPaymentAuthorized = {
39
- type: CheckoutEvents.SessionPaymentAuthorized;
40
- transaction_id: string;
41
- merchant_reference: string;
42
- href: string;
43
- };
44
- export declare type SessionLocked = {
45
- type: CheckoutEvents.SessionLocked;
46
- pay_lock_id: string;
47
- };
48
- export declare type SessionLockFailed = {
49
- type: CheckoutEvents.SessionLockFailed;
50
- };
51
- export declare type SessionPayment = SessionPaymentAuthorized | SessionPaymentOnHold;
52
- export declare type SessionPaymentError = {
53
- type: CheckoutEvents.SessionPaymentError;
54
- error: string;
55
- href: string;
56
- };
57
- export declare type SessionEvent = SessionNotFound | SessionLoaded | SessionUpdated | SessionCancel | SessionPaymentOnHold | SessionPaymentAuthorized | SessionPaymentError | SessionLocked | SessionLockFailed;
1
+ import { Session } from "./session";
2
+ export declare enum CheckoutEvents {
3
+ SessionNotFound = "SessionNotFound",
4
+ SessionLoaded = "SessionLoaded",
5
+ SessionUpdated = "SessionUpdated",
6
+ SessionCancel = "SessionCancel",
7
+ SessionPaymentOnHold = "SessionPaymentOnHold",
8
+ SessionPaymentAuthorized = "SessionPaymentAuthorized",
9
+ SessionPaymentError = "SessionPaymentError",
10
+ SessionLocked = "SessionLocked",
11
+ SessionLockFailed = "SessionLockFailed",
12
+ ActivePaymentProductType = "ActivePaymentProductType",
13
+ ValidateSession = "ValidateSession"
14
+ }
15
+ export declare enum InternalCheckoutEvents {
16
+ HeightChanged = "HeightChanged",
17
+ LanguageChanged = "LanguageChanged"
18
+ }
19
+ export declare type SessionNotFound = {
20
+ type: CheckoutEvents.SessionNotFound;
21
+ };
22
+ export declare type SessionLoaded = {
23
+ type: CheckoutEvents.SessionLoaded;
24
+ session: Session;
25
+ };
26
+ export declare type SessionUpdated = {
27
+ type: CheckoutEvents.SessionUpdated;
28
+ session: Session;
29
+ };
30
+ export declare type SessionCancel = {
31
+ type: CheckoutEvents.SessionCancel;
32
+ href: string;
33
+ };
34
+ export declare type SessionPaymentOnHold = {
35
+ type: CheckoutEvents.SessionPaymentOnHold;
36
+ transaction_id: string;
37
+ merchant_reference: string;
38
+ href: string;
39
+ };
40
+ export declare type SessionPaymentAuthorized = {
41
+ type: CheckoutEvents.SessionPaymentAuthorized;
42
+ transaction_id: string;
43
+ merchant_reference: string;
44
+ href: string;
45
+ };
46
+ export declare type SessionLocked = {
47
+ type: CheckoutEvents.SessionLocked;
48
+ pay_lock_id: string;
49
+ callback: () => void;
50
+ };
51
+ export declare type SessionLockFailed = {
52
+ type: CheckoutEvents.SessionLockFailed;
53
+ };
54
+ export declare type ActivePaymentProductType = {
55
+ type: CheckoutEvents.ActivePaymentProductType;
56
+ payment_product_type: string | undefined;
57
+ };
58
+ export declare type ValidateSession = {
59
+ type: CheckoutEvents.ValidateSession;
60
+ session: Session;
61
+ callback: (result: SessionValidationCallback) => void;
62
+ };
63
+ export interface SessionValidationCallback {
64
+ success: boolean;
65
+ clientValidationError?: string;
66
+ }
67
+ export declare type WrappedValidateSession = Pick<ValidateSession, "type" | "session">;
68
+ export declare type WrappedSessionLocked = Pick<SessionLocked, "type" | "pay_lock_id">;
69
+ export declare type SessionPayment = SessionPaymentAuthorized | SessionPaymentOnHold;
70
+ export declare type SessionPaymentError = {
71
+ type: CheckoutEvents.SessionPaymentError;
72
+ error: string;
73
+ href: string;
74
+ };
75
+ export declare type SessionEvent = SessionNotFound | SessionLoaded | SessionUpdated | SessionCancel | SessionPaymentOnHold | SessionPaymentAuthorized | SessionPaymentError | WrappedSessionLocked | SessionLockFailed | ActivePaymentProductType | WrappedValidateSession;
@@ -1,10 +1,10 @@
1
- /**
2
- * Creates an iframe and adds it to the container.
3
- *
4
- * Returns a promise that resolves to the iframe when the iframe has loaded.
5
- * Rejects the promise if there is a problem loading the iframe.
6
- */
7
- export declare const createIframeAsync: (container: HTMLDivElement, endpoint: string, url: string) => {
8
- iframe: HTMLIFrameElement;
9
- initiate: () => void;
10
- };
1
+ /**
2
+ * Creates an iframe and adds it to the container.
3
+ *
4
+ * Returns a promise that resolves to the iframe when the iframe has loaded.
5
+ * Rejects the promise if there is a problem loading the iframe.
6
+ */
7
+ export declare const createIframeAsync: (container: HTMLDivElement, endpoint: string, url: string) => {
8
+ iframe: HTMLIFrameElement;
9
+ initiate: () => void;
10
+ };
@@ -1,39 +1,43 @@
1
- import "native-promise-only";
2
- import { SessionNotFound, SessionLoaded, SessionUpdated, SessionCancel, SessionPaymentOnHold, SessionPaymentAuthorized, SessionPaymentError, SessionLocked, SessionLockFailed } from "./checkout";
3
- export interface DinteroCheckoutInstance {
4
- /**
5
- * Remove iframe and all event listeners.
6
- */
7
- destroy: () => void;
8
- iframe: HTMLIFrameElement;
9
- language: string;
10
- lockSession: () => void;
11
- refreshSession: () => void;
12
- }
13
- export interface DinteroCheckoutOptions {
14
- sid: string;
15
- endpoint?: string;
16
- language?: string;
17
- }
18
- export interface DinteroEmbedCheckoutOptions extends DinteroCheckoutOptions {
19
- container: HTMLDivElement;
20
- onPayment?: (event: SessionPaymentAuthorized | SessionPaymentOnHold, checkout: DinteroCheckoutInstance) => void;
21
- /**
22
- * @deprecated Since version 0.0.1. Will be deleted in version 1.0.0. Use onPayment instead.
23
- */
24
- onPaymentAuthorized?: (event: SessionPaymentAuthorized, checkout: DinteroCheckoutInstance) => void;
25
- onSession?: (event: SessionLoaded | SessionUpdated, checkout: DinteroCheckoutInstance) => void;
26
- onPaymentError?: (event: SessionPaymentError, checkout: DinteroCheckoutInstance) => void;
27
- onSessionCancel?: (event: SessionCancel, checkout: DinteroCheckoutInstance) => void;
28
- onSessionNotFound?: (event: SessionNotFound, checkout: DinteroCheckoutInstance) => void;
29
- onSessionLocked?: (event: SessionLocked, checkout: DinteroCheckoutInstance) => void;
30
- onSessionLockFailed?: (event: SessionLockFailed, checkout: DinteroCheckoutInstance) => void;
31
- }
32
- /**
33
- * Show a dintero payment session in an embedded iframe.
34
- */
35
- export declare const embed: (options: DinteroEmbedCheckoutOptions) => Promise<DinteroCheckoutInstance>;
36
- /**
37
- * Redirect the customer to a payment session in the Dintero Checkout.
38
- */
39
- export declare const redirect: (options: DinteroCheckoutOptions) => void;
1
+ import "native-promise-only";
2
+ import { SessionNotFound, SessionLoaded, SessionUpdated, SessionCancel, SessionPaymentOnHold, SessionPaymentAuthorized, SessionPaymentError, SessionLocked, SessionLockFailed, ActivePaymentProductType, ValidateSession, SessionValidationCallback } from "./checkout";
3
+ export interface DinteroCheckoutInstance {
4
+ /**
5
+ * Remove iframe and all event listeners.
6
+ */
7
+ destroy: () => void;
8
+ iframe: HTMLIFrameElement;
9
+ language: string;
10
+ lockSession: () => void;
11
+ refreshSession: () => void;
12
+ setActivePaymentProductType: (paymentProductType: string) => void;
13
+ submitValidationResult: (result: SessionValidationCallback) => void;
14
+ }
15
+ export interface DinteroCheckoutOptions {
16
+ sid: string;
17
+ endpoint?: string;
18
+ language?: string;
19
+ }
20
+ export interface DinteroEmbedCheckoutOptions extends DinteroCheckoutOptions {
21
+ container: HTMLDivElement;
22
+ onPayment?: (event: SessionPaymentAuthorized | SessionPaymentOnHold, checkout: DinteroCheckoutInstance) => void;
23
+ /**
24
+ * @deprecated Since version 0.0.1. Will be deleted in version 1.0.0. Use onPayment instead.
25
+ */
26
+ onPaymentAuthorized?: (event: SessionPaymentAuthorized, checkout: DinteroCheckoutInstance) => void;
27
+ onSession?: (event: SessionLoaded | SessionUpdated, checkout: DinteroCheckoutInstance) => void;
28
+ onPaymentError?: (event: SessionPaymentError, checkout: DinteroCheckoutInstance) => void;
29
+ onSessionCancel?: (event: SessionCancel, checkout: DinteroCheckoutInstance) => void;
30
+ onSessionNotFound?: (event: SessionNotFound, checkout: DinteroCheckoutInstance) => void;
31
+ onSessionLocked?: (event: SessionLocked, checkout: DinteroCheckoutInstance, callback: () => void) => void;
32
+ onSessionLockFailed?: (event: SessionLockFailed, checkout: DinteroCheckoutInstance) => void;
33
+ onActivePaymentType?: (event: ActivePaymentProductType, checkout: DinteroCheckoutInstance) => void;
34
+ onValidateSession?: (event: ValidateSession, checkout: DinteroCheckoutInstance, callback: (result: SessionValidationCallback) => void) => void;
35
+ }
36
+ /**
37
+ * Show a dintero payment session in an embedded iframe.
38
+ */
39
+ export declare const embed: (options: DinteroEmbedCheckoutOptions) => Promise<DinteroCheckoutInstance>;
40
+ /**
41
+ * Redirect the customer to a payment session in the Dintero Checkout.
42
+ */
43
+ export declare const redirect: (options: DinteroCheckoutOptions) => void;