@dintero/checkout-web-sdk 0.3.1 → 0.4.2

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/CHANGELOG.md CHANGED
@@ -1,8 +1,32 @@
1
+ ## [0.4.0]
2
+
3
+ ### Changed
4
+
5
+ - Changes `lockSession` to return a promise that resolves when the following `SessionLocked` event is returned from the checkout.
6
+ - Changes `refreshSession` to return a promise that resolves when the following `SessionUpdated` event is returned from the checkout.
7
+
8
+ ## [0.3.1]
9
+
10
+ ### Bug Fixes
11
+ * Add correct package version to url
12
+
13
+ ## [0.3.0]
14
+
15
+ ### Features
16
+
17
+ * **lock:** Add callback function to `onSessionLocked`
18
+
19
+ ## [0.2.0]
20
+
21
+ ### Features
22
+
23
+ * Handling of session validation when embedded
24
+
1
25
  ## [0.0.17]
2
26
 
3
27
  ### Changed
4
28
 
5
- - Adds `onActivePaymentProductType` callback.
29
+ - Adds `onActivePaymentProductType` callback.
6
30
  - Adds `setActivePaymentProductType` function.
7
31
 
8
32
  ## [0.0.16]
package/README.md CHANGED
@@ -178,9 +178,16 @@ To update an existing Checkout Express-session, follow these steps:
178
178
  Call lockSession on the checkout object:
179
179
 
180
180
  ```js
181
- checkout.lockSession();
181
+ checkout.lockSession().then(function(sessionLockedEvent){
182
+ // initiate server side session update and then refresh the session
183
+ }).catch(function(sessionLockFailedEvent) {
184
+ // handle failure to lock
185
+ });;
182
186
  ```
183
187
 
188
+ `lockSession()` returns a promise that is resolved when the `SessionLocked` event is
189
+ received from the checkout or rejected if the SessionLockFailed event is received.
190
+
184
191
  When the session is successfully locked, you'll get a callback at `onSessionLocked`.
185
192
  If locking the session fails, there will be a callback at `onSessionLockFailed`.
186
193
 
@@ -207,7 +214,11 @@ onSessionLocked: (event, checkout, callback) => {
207
214
  }
208
215
  ```
209
216
 
210
- Editing and paying in the checkout is enabled again.
217
+ `refreshSession()` returns a promise that is resolved when the `SessionUpdated`
218
+ event is received from the checkout.
219
+
220
+ Editing and paying in the checkout is enabled again when a session without a `pay_lock`
221
+ is loaded by the checkout.
211
222
 
212
223
  ### Validating session before payment
213
224
 
@@ -367,7 +367,7 @@ export type SessionEvent =
367
367
  <div class='footer quiet pad2 space-top1 center small'>
368
368
  Code coverage generated by
369
369
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
370
- at Wed Feb 16 2022 09:14:07 GMT+0000 (Coordinated Universal Time)
370
+ at Sun May 01 2022 13:56:30 GMT+0000 (Coordinated Universal Time)
371
371
  </div>
372
372
  </div>
373
373
  <script src="prettify.js"></script>
@@ -126,15 +126,15 @@
126
126
  <span class="cline-any cline-neutral">&nbsp;</span>
127
127
  <span class="cline-any cline-neutral">&nbsp;</span>
128
128
  <span class="cline-any cline-neutral">&nbsp;</span>
129
- <span class="cline-any cline-yes">26x</span>
129
+ <span class="cline-any cline-yes">30x</span>
130
130
  <span class="cline-any cline-no">&nbsp;</span>
131
131
  <span class="cline-any cline-neutral">&nbsp;</span>
132
- <span class="cline-any cline-yes">26x</span>
132
+ <span class="cline-any cline-yes">30x</span>
133
133
  <span class="cline-any cline-neutral">&nbsp;</span>
134
134
  <span class="cline-any cline-neutral">&nbsp;</span>
135
- <span class="cline-any cline-yes">26x</span>
136
- <span class="cline-any cline-yes">26x</span>
137
- <span class="cline-any cline-yes">26x</span>
135
+ <span class="cline-any cline-yes">30x</span>
136
+ <span class="cline-any cline-yes">30x</span>
137
+ <span class="cline-any cline-yes">30x</span>
138
138
  <span class="cline-any cline-neutral">&nbsp;</span>
139
139
  <span class="cline-any cline-neutral">&nbsp;</span>
140
140
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -147,28 +147,28 @@
147
147
  <span class="cline-any cline-neutral">&nbsp;</span>
148
148
  <span class="cline-any cline-neutral">&nbsp;</span>
149
149
  <span class="cline-any cline-neutral">&nbsp;</span>
150
- <span class="cline-any cline-yes">26x</span>
150
+ <span class="cline-any cline-yes">30x</span>
151
151
  <span class="cline-any cline-neutral">&nbsp;</span>
152
152
  <span class="cline-any cline-neutral">&nbsp;</span>
153
153
  <span class="cline-any cline-neutral">&nbsp;</span>
154
154
  <span class="cline-any cline-neutral">&nbsp;</span>
155
155
  <span class="cline-any cline-neutral">&nbsp;</span>
156
- <span class="cline-any cline-yes">26x</span>
156
+ <span class="cline-any cline-yes">30x</span>
157
157
  <span class="cline-any cline-neutral">&nbsp;</span>
158
158
  <span class="cline-any cline-neutral">&nbsp;</span>
159
- <span class="cline-any cline-yes">26x</span>
159
+ <span class="cline-any cline-yes">30x</span>
160
160
  <span class="cline-any cline-neutral">&nbsp;</span>
161
161
  <span class="cline-any cline-neutral">&nbsp;</span>
162
162
  <span class="cline-any cline-neutral">&nbsp;</span>
163
163
  <span class="cline-any cline-neutral">&nbsp;</span>
164
164
  <span class="cline-any cline-neutral">&nbsp;</span>
165
- <span class="cline-any cline-yes">26x</span>
165
+ <span class="cline-any cline-yes">30x</span>
166
166
  <span class="cline-any cline-neutral">&nbsp;</span>
167
- <span class="cline-any cline-yes">26x</span>
168
- <span class="cline-any cline-yes">26x</span>
169
- <span class="cline-any cline-yes">31x</span>
170
- <span class="cline-any cline-yes">26x</span>
171
- <span class="cline-any cline-yes">26x</span>
167
+ <span class="cline-any cline-yes">30x</span>
168
+ <span class="cline-any cline-yes">30x</span>
169
+ <span class="cline-any cline-yes">35x</span>
170
+ <span class="cline-any cline-yes">30x</span>
171
+ <span class="cline-any cline-yes">30x</span>
172
172
  <span class="cline-any cline-neutral">&nbsp;</span>
173
173
  <span class="cline-any cline-neutral">&nbsp;</span>
174
174
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -238,7 +238,7 @@ export const createIframeAsync = (
238
238
  <div class='footer quiet pad2 space-top1 center small'>
239
239
  Code coverage generated by
240
240
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
241
- at Wed Feb 16 2022 09:14:07 GMT+0000 (Coordinated Universal Time)
241
+ at Sun May 01 2022 13:56:30 GMT+0000 (Coordinated Universal Time)
242
242
  </div>
243
243
  </div>
244
244
  <script src="prettify.js"></script>
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">89.74% </span>
26
+ <span class="strong">93.6% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>140/156</span>
28
+ <span class='fraction'>161/172</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">73.75% </span>
33
+ <span class="strong">76.83% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>59/80</span>
35
+ <span class='fraction'>63/82</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">73.68% </span>
40
+ <span class="strong">86.96% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>28/38</span>
42
+ <span class='fraction'>40/46</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">88.97% </span>
47
+ <span class="strong">93.33% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>121/136</span>
49
+ <span class='fraction'>140/150</span>
50
50
  </div>
51
51
 
52
52
 
@@ -104,32 +104,32 @@
104
104
 
105
105
  <tr>
106
106
  <td class="file high" data-value="index.ts"><a href="index.ts.html">index.ts</a></td>
107
- <td data-value="94.44" class="pic high">
108
- <div class="chart"><div class="cover-fill" style="width: 94%"></div><div class="cover-empty" style="width: 6%"></div></div>
107
+ <td data-value="96.59" class="pic high">
108
+ <div class="chart"><div class="cover-fill" style="width: 96%"></div><div class="cover-empty" style="width: 4%"></div></div>
109
109
  </td>
110
- <td data-value="94.44" class="pct high">94.44%</td>
111
- <td data-value="72" class="abs high">68/72</td>
112
- <td data-value="81.58" class="pct high">81.58%</td>
113
- <td data-value="38" class="abs high">31/38</td>
114
- <td data-value="80" class="pct high">80%</td>
115
- <td data-value="20" class="abs high">16/20</td>
116
- <td data-value="93.65" class="pct high">93.65%</td>
117
- <td data-value="63" class="abs high">59/63</td>
110
+ <td data-value="96.59" class="pct high">96.59%</td>
111
+ <td data-value="88" class="abs high">85/88</td>
112
+ <td data-value="82.5" class="pct high">82.5%</td>
113
+ <td data-value="40" class="abs high">33/40</td>
114
+ <td data-value="92.86" class="pct high">92.86%</td>
115
+ <td data-value="28" class="abs high">26/28</td>
116
+ <td data-value="96.1" class="pct high">96.1%</td>
117
+ <td data-value="77" class="abs high">74/77</td>
118
118
  </tr>
119
119
 
120
120
  <tr>
121
- <td class="file medium" data-value="subscribe.ts"><a href="subscribe.ts.html">subscribe.ts</a></td>
122
- <td data-value="76.47" class="pic medium">
123
- <div class="chart"><div class="cover-fill" style="width: 76%"></div><div class="cover-empty" style="width: 24%"></div></div>
121
+ <td class="file high" data-value="subscribe.ts"><a href="subscribe.ts.html">subscribe.ts</a></td>
122
+ <td data-value="88.24" class="pic high">
123
+ <div class="chart"><div class="cover-fill" style="width: 88%"></div><div class="cover-empty" style="width: 12%"></div></div>
124
124
  </td>
125
- <td data-value="76.47" class="pct medium">76.47%</td>
126
- <td data-value="34" class="abs medium">26/34</td>
127
- <td data-value="62.5" class="pct medium">62.5%</td>
128
- <td data-value="24" class="abs medium">15/24</td>
129
- <td data-value="50" class="pct medium">50%</td>
130
- <td data-value="8" class="abs medium">4/8</td>
131
- <td data-value="72.41" class="pct medium">72.41%</td>
132
- <td data-value="29" class="abs medium">21/29</td>
125
+ <td data-value="88.24" class="pct high">88.24%</td>
126
+ <td data-value="34" class="abs high">30/34</td>
127
+ <td data-value="70.83" class="pct medium">70.83%</td>
128
+ <td data-value="24" class="abs medium">17/24</td>
129
+ <td data-value="75" class="pct medium">75%</td>
130
+ <td data-value="8" class="abs medium">6/8</td>
131
+ <td data-value="86.21" class="pct high">86.21%</td>
132
+ <td data-value="29" class="abs high">25/29</td>
133
133
  </tr>
134
134
 
135
135
  <tr>
@@ -155,7 +155,7 @@
155
155
  <div class='footer quiet pad2 space-top1 center small'>
156
156
  Code coverage generated by
157
157
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
158
- at Wed Feb 16 2022 09:14:07 GMT+0000 (Coordinated Universal Time)
158
+ at Sun May 01 2022 13:56:30 GMT+0000 (Coordinated Universal Time)
159
159
  </div>
160
160
  </div>
161
161
  <script src="prettify.js"></script>
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">94.44% </span>
26
+ <span class="strong">96.59% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>68/72</span>
28
+ <span class='fraction'>85/88</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">81.58% </span>
33
+ <span class="strong">82.5% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>31/38</span>
35
+ <span class='fraction'>33/40</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">80% </span>
40
+ <span class="strong">92.86% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>16/20</span>
42
+ <span class='fraction'>26/28</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">93.65% </span>
47
+ <span class="strong">96.1% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>59/63</span>
49
+ <span class='fraction'>74/77</span>
50
50
  </div>
51
51
 
52
52
 
@@ -408,7 +408,52 @@
408
408
  <a name='L349'></a><a href='#L349'>349</a>
409
409
  <a name='L350'></a><a href='#L350'>350</a>
410
410
  <a name='L351'></a><a href='#L351'>351</a>
411
- <a name='L352'></a><a href='#L352'>352</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
411
+ <a name='L352'></a><a href='#L352'>352</a>
412
+ <a name='L353'></a><a href='#L353'>353</a>
413
+ <a name='L354'></a><a href='#L354'>354</a>
414
+ <a name='L355'></a><a href='#L355'>355</a>
415
+ <a name='L356'></a><a href='#L356'>356</a>
416
+ <a name='L357'></a><a href='#L357'>357</a>
417
+ <a name='L358'></a><a href='#L358'>358</a>
418
+ <a name='L359'></a><a href='#L359'>359</a>
419
+ <a name='L360'></a><a href='#L360'>360</a>
420
+ <a name='L361'></a><a href='#L361'>361</a>
421
+ <a name='L362'></a><a href='#L362'>362</a>
422
+ <a name='L363'></a><a href='#L363'>363</a>
423
+ <a name='L364'></a><a href='#L364'>364</a>
424
+ <a name='L365'></a><a href='#L365'>365</a>
425
+ <a name='L366'></a><a href='#L366'>366</a>
426
+ <a name='L367'></a><a href='#L367'>367</a>
427
+ <a name='L368'></a><a href='#L368'>368</a>
428
+ <a name='L369'></a><a href='#L369'>369</a>
429
+ <a name='L370'></a><a href='#L370'>370</a>
430
+ <a name='L371'></a><a href='#L371'>371</a>
431
+ <a name='L372'></a><a href='#L372'>372</a>
432
+ <a name='L373'></a><a href='#L373'>373</a>
433
+ <a name='L374'></a><a href='#L374'>374</a>
434
+ <a name='L375'></a><a href='#L375'>375</a>
435
+ <a name='L376'></a><a href='#L376'>376</a>
436
+ <a name='L377'></a><a href='#L377'>377</a>
437
+ <a name='L378'></a><a href='#L378'>378</a>
438
+ <a name='L379'></a><a href='#L379'>379</a>
439
+ <a name='L380'></a><a href='#L380'>380</a>
440
+ <a name='L381'></a><a href='#L381'>381</a>
441
+ <a name='L382'></a><a href='#L382'>382</a>
442
+ <a name='L383'></a><a href='#L383'>383</a>
443
+ <a name='L384'></a><a href='#L384'>384</a>
444
+ <a name='L385'></a><a href='#L385'>385</a>
445
+ <a name='L386'></a><a href='#L386'>386</a>
446
+ <a name='L387'></a><a href='#L387'>387</a>
447
+ <a name='L388'></a><a href='#L388'>388</a>
448
+ <a name='L389'></a><a href='#L389'>389</a>
449
+ <a name='L390'></a><a href='#L390'>390</a>
450
+ <a name='L391'></a><a href='#L391'>391</a>
451
+ <a name='L392'></a><a href='#L392'>392</a>
452
+ <a name='L393'></a><a href='#L393'>393</a>
453
+ <a name='L394'></a><a href='#L394'>394</a>
454
+ <a name='L395'></a><a href='#L395'>395</a>
455
+ <a name='L396'></a><a href='#L396'>396</a>
456
+ <a name='L397'></a><a href='#L397'>397</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
412
457
  <span class="cline-any cline-neutral">&nbsp;</span>
413
458
  <span class="cline-any cline-yes">1x</span>
414
459
  <span class="cline-any cline-yes">1x</span>
@@ -427,6 +472,7 @@
427
472
  <span class="cline-any cline-neutral">&nbsp;</span>
428
473
  <span class="cline-any cline-neutral">&nbsp;</span>
429
474
  <span class="cline-any cline-neutral">&nbsp;</span>
475
+ <span class="cline-any cline-neutral">&nbsp;</span>
430
476
  <span class="cline-any cline-yes">1x</span>
431
477
  <span class="cline-any cline-yes">1x</span>
432
478
  <span class="cline-any cline-yes">1x</span>
@@ -566,11 +612,13 @@
566
612
  <span class="cline-any cline-neutral">&nbsp;</span>
567
613
  <span class="cline-any cline-neutral">&nbsp;</span>
568
614
  <span class="cline-any cline-neutral">&nbsp;</span>
615
+ <span class="cline-any cline-neutral">&nbsp;</span>
569
616
  <span class="cline-any cline-yes">1x</span>
570
- <span class="cline-any cline-yes">26x</span>
617
+ <span class="cline-any cline-yes">30x</span>
618
+ <span class="cline-any cline-neutral">&nbsp;</span>
571
619
  <span class="cline-any cline-neutral">&nbsp;</span>
620
+ <span class="cline-any cline-yes">30x</span>
572
621
  <span class="cline-any cline-neutral">&nbsp;</span>
573
- <span class="cline-any cline-yes">26x</span>
574
622
  <span class="cline-any cline-neutral">&nbsp;</span>
575
623
  <span class="cline-any cline-neutral">&nbsp;</span>
576
624
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -585,10 +633,10 @@
585
633
  <span class="cline-any cline-neutral">&nbsp;</span>
586
634
  <span class="cline-any cline-neutral">&nbsp;</span>
587
635
  <span class="cline-any cline-neutral">&nbsp;</span>
588
- <span class="cline-any cline-yes">26x</span>
636
+ <span class="cline-any cline-yes">30x</span>
589
637
  <span class="cline-any cline-neutral">&nbsp;</span>
590
638
  <span class="cline-any cline-neutral">&nbsp;</span>
591
- <span class="cline-any cline-yes">26x</span>
639
+ <span class="cline-any cline-yes">30x</span>
592
640
  <span class="cline-any cline-neutral">&nbsp;</span>
593
641
  <span class="cline-any cline-neutral">&nbsp;</span>
594
642
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -603,7 +651,7 @@
603
651
  <span class="cline-any cline-neutral">&nbsp;</span>
604
652
  <span class="cline-any cline-neutral">&nbsp;</span>
605
653
  <span class="cline-any cline-neutral">&nbsp;</span>
606
- <span class="cline-any cline-yes">26x</span>
654
+ <span class="cline-any cline-yes">30x</span>
607
655
  <span class="cline-any cline-yes">3x</span>
608
656
  <span class="cline-any cline-yes">24x</span>
609
657
  <span class="cline-any cline-yes">3x</span>
@@ -612,23 +660,65 @@
612
660
  <span class="cline-any cline-neutral">&nbsp;</span>
613
661
  <span class="cline-any cline-neutral">&nbsp;</span>
614
662
  <span class="cline-any cline-neutral">&nbsp;</span>
615
- <span class="cline-any cline-yes">26x</span>
616
- <span class="cline-any cline-no">&nbsp;</span>
617
663
  <span class="cline-any cline-neutral">&nbsp;</span>
618
664
  <span class="cline-any cline-neutral">&nbsp;</span>
619
- <span class="cline-any cline-yes">26x</span>
665
+ <span class="cline-any cline-neutral">&nbsp;</span>
666
+ <span class="cline-any cline-neutral">&nbsp;</span>
667
+ <span class="cline-any cline-yes">30x</span>
668
+ <span class="cline-any cline-yes">4x</span>
620
669
  <span class="cline-any cline-no">&nbsp;</span>
621
670
  <span class="cline-any cline-neutral">&nbsp;</span>
671
+ <span class="cline-any cline-yes">4x</span>
672
+ <span class="cline-any cline-yes">4x</span>
673
+ <span class="cline-any cline-yes">4x</span>
674
+ <span class="cline-any cline-neutral">&nbsp;</span>
675
+ <span class="cline-any cline-neutral">&nbsp;</span>
676
+ <span class="cline-any cline-neutral">&nbsp;</span>
677
+ <span class="cline-any cline-yes">4x</span>
678
+ <span class="cline-any cline-yes">2x</span>
679
+ <span class="cline-any cline-neutral">&nbsp;</span>
680
+ <span class="cline-any cline-neutral">&nbsp;</span>
681
+ <span class="cline-any cline-neutral">&nbsp;</span>
682
+ <span class="cline-any cline-neutral">&nbsp;</span>
683
+ <span class="cline-any cline-yes">4x</span>
684
+ <span class="cline-any cline-neutral">&nbsp;</span>
685
+ <span class="cline-any cline-neutral">&nbsp;</span>
686
+ <span class="cline-any cline-neutral">&nbsp;</span>
687
+ <span class="cline-any cline-yes">4x</span>
688
+ <span class="cline-any cline-yes">2x</span>
689
+ <span class="cline-any cline-neutral">&nbsp;</span>
690
+ <span class="cline-any cline-neutral">&nbsp;</span>
691
+ <span class="cline-any cline-neutral">&nbsp;</span>
692
+ <span class="cline-any cline-neutral">&nbsp;</span>
693
+ <span class="cline-any cline-yes">4x</span>
694
+ <span class="cline-any cline-neutral">&nbsp;</span>
695
+ <span class="cline-any cline-neutral">&nbsp;</span>
622
696
  <span class="cline-any cline-neutral">&nbsp;</span>
623
- <span class="cline-any cline-yes">26x</span>
697
+ <span class="cline-any cline-yes">30x</span>
698
+ <span class="cline-any cline-yes">2x</span>
699
+ <span class="cline-any cline-yes">2x</span>
700
+ <span class="cline-any cline-neutral">&nbsp;</span>
701
+ <span class="cline-any cline-neutral">&nbsp;</span>
702
+ <span class="cline-any cline-neutral">&nbsp;</span>
703
+ <span class="cline-any cline-neutral">&nbsp;</span>
704
+ <span class="cline-any cline-neutral">&nbsp;</span>
705
+ <span class="cline-any cline-yes">30x</span>
706
+ <span class="cline-any cline-yes">2x</span>
707
+ <span class="cline-any cline-yes">2x</span>
708
+ <span class="cline-any cline-neutral">&nbsp;</span>
709
+ <span class="cline-any cline-neutral">&nbsp;</span>
710
+ <span class="cline-any cline-neutral">&nbsp;</span>
711
+ <span class="cline-any cline-neutral">&nbsp;</span>
712
+ <span class="cline-any cline-neutral">&nbsp;</span>
713
+ <span class="cline-any cline-yes">30x</span>
624
714
  <span class="cline-any cline-no">&nbsp;</span>
625
715
  <span class="cline-any cline-neutral">&nbsp;</span>
626
716
  <span class="cline-any cline-neutral">&nbsp;</span>
627
- <span class="cline-any cline-yes">26x</span>
717
+ <span class="cline-any cline-yes">30x</span>
628
718
  <span class="cline-any cline-no">&nbsp;</span>
629
719
  <span class="cline-any cline-neutral">&nbsp;</span>
630
720
  <span class="cline-any cline-neutral">&nbsp;</span>
631
- <span class="cline-any cline-yes">26x</span>
721
+ <span class="cline-any cline-yes">30x</span>
632
722
  <span class="cline-any cline-neutral">&nbsp;</span>
633
723
  <span class="cline-any cline-neutral">&nbsp;</span>
634
724
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -637,17 +727,17 @@
637
727
  <span class="cline-any cline-neutral">&nbsp;</span>
638
728
  <span class="cline-any cline-neutral">&nbsp;</span>
639
729
  <span class="cline-any cline-neutral">&nbsp;</span>
640
- <span class="cline-any cline-yes">26x</span>
730
+ <span class="cline-any cline-yes">30x</span>
641
731
  <span class="cline-any cline-neutral">&nbsp;</span>
642
732
  <span class="cline-any cline-neutral">&nbsp;</span>
643
733
  <span class="cline-any cline-neutral">&nbsp;</span>
644
- <span class="cline-any cline-yes">1x</span>
734
+ <span class="cline-any cline-yes">2x</span>
645
735
  <span class="cline-any cline-yes">1x</span>
646
736
  <span class="cline-any cline-neutral">&nbsp;</span>
647
737
  <span class="cline-any cline-neutral">&nbsp;</span>
648
738
  <span class="cline-any cline-neutral">&nbsp;</span>
649
739
  <span class="cline-any cline-neutral">&nbsp;</span>
650
- <span class="cline-any cline-yes">26x</span>
740
+ <span class="cline-any cline-yes">30x</span>
651
741
  <span class="cline-any cline-neutral">&nbsp;</span>
652
742
  <span class="cline-any cline-neutral">&nbsp;</span>
653
743
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -658,7 +748,7 @@
658
748
  <span class="cline-any cline-neutral">&nbsp;</span>
659
749
  <span class="cline-any cline-neutral">&nbsp;</span>
660
750
  <span class="cline-any cline-neutral">&nbsp;</span>
661
- <span class="cline-any cline-yes">26x</span>
751
+ <span class="cline-any cline-yes">30x</span>
662
752
  <span class="cline-any cline-neutral">&nbsp;</span>
663
753
  <span class="cline-any cline-neutral">&nbsp;</span>
664
754
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -727,9 +817,9 @@
727
817
  <span class="cline-any cline-neutral">&nbsp;</span>
728
818
  <span class="cline-any cline-neutral">&nbsp;</span>
729
819
  <span class="cline-any cline-neutral">&nbsp;</span>
730
- <span class="cline-any cline-yes">338x</span>
731
- <span class="cline-any cline-yes">338x</span>
732
- <span class="cline-any cline-yes">219x</span>
820
+ <span class="cline-any cline-yes">390x</span>
821
+ <span class="cline-any cline-yes">390x</span>
822
+ <span class="cline-any cline-yes">251x</span>
733
823
  <span class="cline-any cline-neutral">&nbsp;</span>
734
824
  <span class="cline-any cline-neutral">&nbsp;</span>
735
825
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -742,9 +832,9 @@
742
832
  <span class="cline-any cline-neutral">&nbsp;</span>
743
833
  <span class="cline-any cline-neutral">&nbsp;</span>
744
834
  <span class="cline-any cline-neutral">&nbsp;</span>
745
- <span class="cline-any cline-yes">52x</span>
835
+ <span class="cline-any cline-yes">59x</span>
746
836
  <span class="cline-any cline-neutral">&nbsp;</span>
747
- <span class="cline-any cline-yes">26x</span>
837
+ <span class="cline-any cline-yes">29x</span>
748
838
  <span class="cline-any cline-neutral">&nbsp;</span>
749
839
  <span class="cline-any cline-neutral">&nbsp;</span>
750
840
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -777,6 +867,7 @@ import {
777
867
  ActivePaymentProductType,
778
868
  ValidateSession,
779
869
  SessionValidationCallback,
870
+ SessionEvent
780
871
  } from "./checkout";
781
872
  import { getSessionUrl, windowLocationAssign } from "./url";
782
873
  import { createIframeAsync } from "./createIframeAsync";
@@ -797,8 +888,8 @@ export interface DinteroCheckoutInstance {
797
888
  destroy: () =&gt; void;
798
889
  iframe: HTMLIFrameElement;
799
890
  language: string;
800
- lockSession: () =&gt; void;
801
- refreshSession: () =&gt; void;
891
+ lockSession: () =&gt; Promise&lt;SessionEvent&gt;;
892
+ refreshSession: () =&gt; Promise&lt;SessionEvent&gt;;
802
893
  setActivePaymentProductType: (paymentProductType: string) =&gt; void;
803
894
  submitValidationResult: (result: SessionValidationCallback) =&gt; void;
804
895
  }
@@ -914,6 +1005,7 @@ const handleWithResult = (
914
1005
  };
915
1006
  };
916
1007
  &nbsp;
1008
+ &nbsp;
917
1009
  /**
918
1010
  * Show a dintero payment session in an embedded iframe.
919
1011
  */
@@ -936,6 +1028,7 @@ export const embed = async (
936
1028
  onActivePaymentType,
937
1029
  onValidateSession,
938
1030
  } = options;
1031
+ let checkout: DinteroCheckoutInstance | undefined;
939
1032
  const subscriptions: Subscription[] = [];
940
1033
  &nbsp;
941
1034
  // Create iframe
@@ -963,12 +1056,54 @@ export const embed = async (
963
1056
  }
964
1057
  };
965
1058
  &nbsp;
966
- const lockSession = <span class="fstat-no" title="function not covered" >() =&gt; {</span>
967
- <span class="cstat-no" title="statement not covered" > postSessionLock(iframe, sid);</span>
1059
+ /**
1060
+ * Turn an action into a promise by specifying resolve and
1061
+ * reject events.
1062
+ */
1063
+ const promisifyAction = (action:()=&gt; void, resolveEvent:CheckoutEvents, rejectEvent:CheckoutEvents) =&gt; {
1064
+ <span class="missing-if-branch" title="if path not taken" >I</span>if(!checkout){
1065
+ <span class="cstat-no" title="statement not covered" > throw new Error("Unable to create action promise: checkout is undefined");</span>
1066
+ }
1067
+ return new Promise&lt;SessionEvent&gt;((resolve, reject)=&gt; {
1068
+ const eventSubscriptions:Subscription[] = [];
1069
+ eventSubscriptions.push(subscribe({
1070
+ sid,
1071
+ endpoint,
1072
+ handler: (sessionEvent) =&gt; {
1073
+ eventSubscriptions.forEach((sub)=&gt; sub.unsubscribe());
1074
+ resolve(sessionEvent);
1075
+ },
1076
+ eventTypes: [resolveEvent],
1077
+ checkout,
1078
+ }));
1079
+ eventSubscriptions.push(subscribe({
1080
+ sid,
1081
+ endpoint,
1082
+ handler: () =&gt; {
1083
+ eventSubscriptions.forEach((sub)=&gt; sub.unsubscribe());
1084
+ reject(`Received unexpected event: ${rejectEvent}`);
1085
+ },
1086
+ eventTypes: [rejectEvent],
1087
+ checkout,
1088
+ }));
1089
+ action();
1090
+ });
1091
+ }
1092
+ &nbsp;
1093
+ const lockSession = () =&gt; {
1094
+ return promisifyAction(
1095
+ ()=&gt;{postSessionLock(iframe, sid)},
1096
+ CheckoutEvents.SessionLocked,
1097
+ CheckoutEvents.SessionLockFailed
1098
+ );
968
1099
  };
969
1100
  &nbsp;
970
- const refreshSession = <span class="fstat-no" title="function not covered" >() =&gt; {</span>
971
- <span class="cstat-no" title="statement not covered" > postSessionRefresh(iframe, sid);</span>
1101
+ const refreshSession = () =&gt; {
1102
+ return promisifyAction(
1103
+ ()=&gt;{postSessionRefresh(iframe, sid)},
1104
+ CheckoutEvents.SessionUpdated,
1105
+ CheckoutEvents.SessionNotFound
1106
+ );
972
1107
  };
973
1108
  &nbsp;
974
1109
  const setActivePaymentProductType = <span class="fstat-no" title="function not covered" >(p</span>aymentProductType?:string) =&gt; {
@@ -992,13 +1127,13 @@ export const embed = async (
992
1127
  event: SessionLocked,
993
1128
  checkout: DinteroCheckoutInstance,
994
1129
  ) =&gt; {
995
- <span class="missing-if-branch" title="else path not taken" >E</span>if (onSessionLocked) {
1130
+ if (onSessionLocked) {
996
1131
  onSessionLocked(event, checkout, refreshSession);
997
1132
  }
998
1133
  }
999
1134
  &nbsp;
1000
1135
  // Create checkout object that wraps the destroy function.
1001
- const checkout: DinteroCheckoutInstance = {
1136
+ checkout = {
1002
1137
  destroy,
1003
1138
  iframe,
1004
1139
  language,
@@ -1117,7 +1252,7 @@ export const redirect = (options: DinteroCheckoutOptions) =&gt; {
1117
1252
  <div class='footer quiet pad2 space-top1 center small'>
1118
1253
  Code coverage generated by
1119
1254
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
1120
- at Wed Feb 16 2022 09:14:07 GMT+0000 (Coordinated Universal Time)
1255
+ at Sun May 01 2022 13:56:30 GMT+0000 (Coordinated Universal Time)
1121
1256
  </div>
1122
1257
  </div>
1123
1258
  <script src="prettify.js"></script>