@dintero/checkout-web-sdk 0.0.14 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. package/.babelrc +3 -0
  2. package/.github/dependabot.yml +10 -0
  3. package/.github/workflows/build.yml +25 -0
  4. package/.github/workflows/release.yml +34 -0
  5. package/.releaserc.json +11 -0
  6. package/CHANGELOG.md +22 -4
  7. package/LISENCE +20 -0
  8. package/README.md +78 -22
  9. package/coverage/Chrome Headless 80.0.3987.0 (Linux x86_64)/html/base.css +224 -0
  10. package/coverage/Chrome Headless 80.0.3987.0 (Linux x86_64)/html/block-navigation.js +79 -0
  11. package/coverage/Chrome Headless 80.0.3987.0 (Linux x86_64)/html/checkout.ts.html +377 -0
  12. package/coverage/Chrome Headless 80.0.3987.0 (Linux x86_64)/html/createIframeAsync.ts.html +254 -0
  13. package/coverage/Chrome Headless 80.0.3987.0 (Linux x86_64)/html/favicon.png +0 -0
  14. package/coverage/Chrome Headless 80.0.3987.0 (Linux x86_64)/html/index.html +171 -0
  15. package/coverage/Chrome Headless 80.0.3987.0 (Linux x86_64)/html/index.ts.html +1103 -0
  16. package/coverage/Chrome Headless 80.0.3987.0 (Linux x86_64)/html/prettify.css +1 -0
  17. package/coverage/Chrome Headless 80.0.3987.0 (Linux x86_64)/html/prettify.js +2 -0
  18. package/coverage/Chrome Headless 80.0.3987.0 (Linux x86_64)/html/sort-arrow-sprite.png +0 -0
  19. package/coverage/Chrome Headless 80.0.3987.0 (Linux x86_64)/html/sorter.js +170 -0
  20. package/coverage/Chrome Headless 80.0.3987.0 (Linux x86_64)/html/subscribe.ts.html +443 -0
  21. package/coverage/Chrome Headless 80.0.3987.0 (Linux x86_64)/html/url.ts.html +185 -0
  22. package/dist/declarations/package.d.ts +52 -0
  23. package/dist/{src → declarations}/src/checkout.d.ts +18 -2
  24. package/dist/{src → declarations}/src/createIframeAsync.d.ts +0 -0
  25. package/dist/{src/src/dintero-checkout-web-sdk.d.ts → declarations/src/index.d.ts} +7 -1
  26. package/dist/declarations/src/session.d.ts +953 -0
  27. package/dist/declarations/src/subscribe.d.ts +41 -0
  28. package/dist/{src → declarations}/src/url.d.ts +1 -0
  29. package/dist/dintero-checkout-web-sdk.cjs.d.ts +1 -0
  30. package/dist/dintero-checkout-web-sdk.cjs.dev.js +469 -0
  31. package/dist/dintero-checkout-web-sdk.cjs.js +7 -0
  32. package/dist/dintero-checkout-web-sdk.cjs.prod.js +469 -0
  33. package/dist/dintero-checkout-web-sdk.esm.js +464 -0
  34. package/dist/dintero-checkout-web-sdk.umd.min.js +7 -0
  35. package/dist/dintero-checkout-web-sdk.umd.min.js.map +1 -0
  36. package/karma.conf.js +33 -0
  37. package/package.json +49 -43
  38. package/dist/checkout-web-sdk.js +0 -2
  39. package/dist/checkout-web-sdk.js.map +0 -1
  40. package/dist/checkout-web-sdk.js.mjs +0 -2
  41. package/dist/checkout-web-sdk.js.mjs.map +0 -1
  42. package/dist/checkout-web-sdk.modern.js +0 -2
  43. package/dist/checkout-web-sdk.modern.js.map +0 -1
  44. package/dist/checkout-web-sdk.umd.js +0 -2
  45. package/dist/checkout-web-sdk.umd.js.map +0 -1
  46. package/dist/src/src/subscribe.d.ts +0 -25
@@ -0,0 +1,443 @@
1
+
2
+ <!doctype html>
3
+ <html lang="en">
4
+
5
+ <head>
6
+ <title>Code coverage report for subscribe.ts</title>
7
+ <meta charset="utf-8" />
8
+ <link rel="stylesheet" href="prettify.css" />
9
+ <link rel="stylesheet" href="base.css" />
10
+ <link rel="shortcut icon" type="image/x-icon" href="favicon.png" />
11
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
12
+ <style type='text/css'>
13
+ .coverage-summary .sorter {
14
+ background-image: url(sort-arrow-sprite.png);
15
+ }
16
+ </style>
17
+ </head>
18
+
19
+ <body>
20
+ <div class='wrapper'>
21
+ <div class='pad1'>
22
+ <h1><a href="index.html">All files</a> subscribe.ts</h1>
23
+ <div class='clearfix'>
24
+
25
+ <div class='fl pad1y space-right2'>
26
+ <span class="strong">76.47% </span>
27
+ <span class="quiet">Statements</span>
28
+ <span class='fraction'>26/34</span>
29
+ </div>
30
+
31
+
32
+ <div class='fl pad1y space-right2'>
33
+ <span class="strong">62.5% </span>
34
+ <span class="quiet">Branches</span>
35
+ <span class='fraction'>15/24</span>
36
+ </div>
37
+
38
+
39
+ <div class='fl pad1y space-right2'>
40
+ <span class="strong">50% </span>
41
+ <span class="quiet">Functions</span>
42
+ <span class='fraction'>4/8</span>
43
+ </div>
44
+
45
+
46
+ <div class='fl pad1y space-right2'>
47
+ <span class="strong">72.41% </span>
48
+ <span class="quiet">Lines</span>
49
+ <span class='fraction'>21/29</span>
50
+ </div>
51
+
52
+
53
+ </div>
54
+ <p class="quiet">
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
+ </p>
57
+ </div>
58
+ <div class='status-line medium'></div>
59
+ <pre><table class="coverage">
60
+ <tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
61
+ <a name='L2'></a><a href='#L2'>2</a>
62
+ <a name='L3'></a><a href='#L3'>3</a>
63
+ <a name='L4'></a><a href='#L4'>4</a>
64
+ <a name='L5'></a><a href='#L5'>5</a>
65
+ <a name='L6'></a><a href='#L6'>6</a>
66
+ <a name='L7'></a><a href='#L7'>7</a>
67
+ <a name='L8'></a><a href='#L8'>8</a>
68
+ <a name='L9'></a><a href='#L9'>9</a>
69
+ <a name='L10'></a><a href='#L10'>10</a>
70
+ <a name='L11'></a><a href='#L11'>11</a>
71
+ <a name='L12'></a><a href='#L12'>12</a>
72
+ <a name='L13'></a><a href='#L13'>13</a>
73
+ <a name='L14'></a><a href='#L14'>14</a>
74
+ <a name='L15'></a><a href='#L15'>15</a>
75
+ <a name='L16'></a><a href='#L16'>16</a>
76
+ <a name='L17'></a><a href='#L17'>17</a>
77
+ <a name='L18'></a><a href='#L18'>18</a>
78
+ <a name='L19'></a><a href='#L19'>19</a>
79
+ <a name='L20'></a><a href='#L20'>20</a>
80
+ <a name='L21'></a><a href='#L21'>21</a>
81
+ <a name='L22'></a><a href='#L22'>22</a>
82
+ <a name='L23'></a><a href='#L23'>23</a>
83
+ <a name='L24'></a><a href='#L24'>24</a>
84
+ <a name='L25'></a><a href='#L25'>25</a>
85
+ <a name='L26'></a><a href='#L26'>26</a>
86
+ <a name='L27'></a><a href='#L27'>27</a>
87
+ <a name='L28'></a><a href='#L28'>28</a>
88
+ <a name='L29'></a><a href='#L29'>29</a>
89
+ <a name='L30'></a><a href='#L30'>30</a>
90
+ <a name='L31'></a><a href='#L31'>31</a>
91
+ <a name='L32'></a><a href='#L32'>32</a>
92
+ <a name='L33'></a><a href='#L33'>33</a>
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>
96
+ <a name='L37'></a><a href='#L37'>37</a>
97
+ <a name='L38'></a><a href='#L38'>38</a>
98
+ <a name='L39'></a><a href='#L39'>39</a>
99
+ <a name='L40'></a><a href='#L40'>40</a>
100
+ <a name='L41'></a><a href='#L41'>41</a>
101
+ <a name='L42'></a><a href='#L42'>42</a>
102
+ <a name='L43'></a><a href='#L43'>43</a>
103
+ <a name='L44'></a><a href='#L44'>44</a>
104
+ <a name='L45'></a><a href='#L45'>45</a>
105
+ <a name='L46'></a><a href='#L46'>46</a>
106
+ <a name='L47'></a><a href='#L47'>47</a>
107
+ <a name='L48'></a><a href='#L48'>48</a>
108
+ <a name='L49'></a><a href='#L49'>49</a>
109
+ <a name='L50'></a><a href='#L50'>50</a>
110
+ <a name='L51'></a><a href='#L51'>51</a>
111
+ <a name='L52'></a><a href='#L52'>52</a>
112
+ <a name='L53'></a><a href='#L53'>53</a>
113
+ <a name='L54'></a><a href='#L54'>54</a>
114
+ <a name='L55'></a><a href='#L55'>55</a>
115
+ <a name='L56'></a><a href='#L56'>56</a>
116
+ <a name='L57'></a><a href='#L57'>57</a>
117
+ <a name='L58'></a><a href='#L58'>58</a>
118
+ <a name='L59'></a><a href='#L59'>59</a>
119
+ <a name='L60'></a><a href='#L60'>60</a>
120
+ <a name='L61'></a><a href='#L61'>61</a>
121
+ <a name='L62'></a><a href='#L62'>62</a>
122
+ <a name='L63'></a><a href='#L63'>63</a>
123
+ <a name='L64'></a><a href='#L64'>64</a>
124
+ <a name='L65'></a><a href='#L65'>65</a>
125
+ <a name='L66'></a><a href='#L66'>66</a>
126
+ <a name='L67'></a><a href='#L67'>67</a>
127
+ <a name='L68'></a><a href='#L68'>68</a>
128
+ <a name='L69'></a><a href='#L69'>69</a>
129
+ <a name='L70'></a><a href='#L70'>70</a>
130
+ <a name='L71'></a><a href='#L71'>71</a>
131
+ <a name='L72'></a><a href='#L72'>72</a>
132
+ <a name='L73'></a><a href='#L73'>73</a>
133
+ <a name='L74'></a><a href='#L74'>74</a>
134
+ <a name='L75'></a><a href='#L75'>75</a>
135
+ <a name='L76'></a><a href='#L76'>76</a>
136
+ <a name='L77'></a><a href='#L77'>77</a>
137
+ <a name='L78'></a><a href='#L78'>78</a>
138
+ <a name='L79'></a><a href='#L79'>79</a>
139
+ <a name='L80'></a><a href='#L80'>80</a>
140
+ <a name='L81'></a><a href='#L81'>81</a>
141
+ <a name='L82'></a><a href='#L82'>82</a>
142
+ <a name='L83'></a><a href='#L83'>83</a>
143
+ <a name='L84'></a><a href='#L84'>84</a>
144
+ <a name='L85'></a><a href='#L85'>85</a>
145
+ <a name='L86'></a><a href='#L86'>86</a>
146
+ <a name='L87'></a><a href='#L87'>87</a>
147
+ <a name='L88'></a><a href='#L88'>88</a>
148
+ <a name='L89'></a><a href='#L89'>89</a>
149
+ <a name='L90'></a><a href='#L90'>90</a>
150
+ <a name='L91'></a><a href='#L91'>91</a>
151
+ <a name='L92'></a><a href='#L92'>92</a>
152
+ <a name='L93'></a><a href='#L93'>93</a>
153
+ <a name='L94'></a><a href='#L94'>94</a>
154
+ <a name='L95'></a><a href='#L95'>95</a>
155
+ <a name='L96'></a><a href='#L96'>96</a>
156
+ <a name='L97'></a><a href='#L97'>97</a>
157
+ <a name='L98'></a><a href='#L98'>98</a>
158
+ <a name='L99'></a><a href='#L99'>99</a>
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>
182
+ <span class="cline-any cline-neutral">&nbsp;</span>
183
+ <span class="cline-any cline-neutral">&nbsp;</span>
184
+ <span class="cline-any cline-neutral">&nbsp;</span>
185
+ <span class="cline-any cline-neutral">&nbsp;</span>
186
+ <span class="cline-any cline-neutral">&nbsp;</span>
187
+ <span class="cline-any cline-neutral">&nbsp;</span>
188
+ <span class="cline-any cline-neutral">&nbsp;</span>
189
+ <span class="cline-any cline-neutral">&nbsp;</span>
190
+ <span class="cline-any cline-neutral">&nbsp;</span>
191
+ <span class="cline-any cline-neutral">&nbsp;</span>
192
+ <span class="cline-any cline-neutral">&nbsp;</span>
193
+ <span class="cline-any cline-neutral">&nbsp;</span>
194
+ <span class="cline-any cline-neutral">&nbsp;</span>
195
+ <span class="cline-any cline-neutral">&nbsp;</span>
196
+ <span class="cline-any cline-neutral">&nbsp;</span>
197
+ <span class="cline-any cline-neutral">&nbsp;</span>
198
+ <span class="cline-any cline-neutral">&nbsp;</span>
199
+ <span class="cline-any cline-neutral">&nbsp;</span>
200
+ <span class="cline-any cline-neutral">&nbsp;</span>
201
+ <span class="cline-any cline-neutral">&nbsp;</span>
202
+ <span class="cline-any cline-neutral">&nbsp;</span>
203
+ <span class="cline-any cline-neutral">&nbsp;</span>
204
+ <span class="cline-any cline-neutral">&nbsp;</span>
205
+ <span class="cline-any cline-neutral">&nbsp;</span>
206
+ <span class="cline-any cline-neutral">&nbsp;</span>
207
+ <span class="cline-any cline-neutral">&nbsp;</span>
208
+ <span class="cline-any cline-neutral">&nbsp;</span>
209
+ <span class="cline-any cline-neutral">&nbsp;</span>
210
+ <span class="cline-any cline-neutral">&nbsp;</span>
211
+ <span class="cline-any cline-neutral">&nbsp;</span>
212
+ <span class="cline-any cline-neutral">&nbsp;</span>
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>
227
+ <span class="cline-any cline-yes">1x</span>
228
+ <span class="cline-any cline-no">&nbsp;</span>
229
+ <span class="cline-any cline-no">&nbsp;</span>
230
+ <span class="cline-any cline-neutral">&nbsp;</span>
231
+ <span class="cline-any cline-neutral">&nbsp;</span>
232
+ <span class="cline-any cline-neutral">&nbsp;</span>
233
+ <span class="cline-any cline-neutral">&nbsp;</span>
234
+ <span class="cline-any cline-neutral">&nbsp;</span>
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>
242
+ <span class="cline-any cline-neutral">&nbsp;</span>
243
+ <span class="cline-any cline-neutral">&nbsp;</span>
244
+ <span class="cline-any cline-neutral">&nbsp;</span>
245
+ <span class="cline-any cline-yes">1x</span>
246
+ <span class="cline-any cline-no">&nbsp;</span>
247
+ <span class="cline-any cline-no">&nbsp;</span>
248
+ <span class="cline-any cline-neutral">&nbsp;</span>
249
+ <span class="cline-any cline-neutral">&nbsp;</span>
250
+ <span class="cline-any cline-neutral">&nbsp;</span>
251
+ <span class="cline-any cline-neutral">&nbsp;</span>
252
+ <span class="cline-any cline-neutral">&nbsp;</span>
253
+ <span class="cline-any cline-neutral">&nbsp;</span>
254
+ <span class="cline-any cline-yes">1x</span>
255
+ <span class="cline-any cline-no">&nbsp;</span>
256
+ <span class="cline-any cline-no">&nbsp;</span>
257
+ <span class="cline-any cline-neutral">&nbsp;</span>
258
+ <span class="cline-any cline-neutral">&nbsp;</span>
259
+ <span class="cline-any cline-neutral">&nbsp;</span>
260
+ <span class="cline-any cline-neutral">&nbsp;</span>
261
+ <span class="cline-any cline-neutral">&nbsp;</span>
262
+ <span class="cline-any cline-neutral">&nbsp;</span>
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>
267
+ <span class="cline-any cline-yes">1x</span>
268
+ <span class="cline-any cline-yes">970x</span>
269
+ <span class="cline-any cline-neutral">&nbsp;</span>
270
+ <span class="cline-any cline-neutral">&nbsp;</span>
271
+ <span class="cline-any cline-neutral">&nbsp;</span>
272
+ <span class="cline-any cline-yes">194x</span>
273
+ <span class="cline-any cline-yes">2447x</span>
274
+ <span class="cline-any cline-yes">2447x</span>
275
+ <span class="cline-any cline-yes">2447x</span>
276
+ <span class="cline-any cline-neutral">&nbsp;</span>
277
+ <span class="cline-any cline-yes">2447x</span>
278
+ <span class="cline-any cline-yes">2447x</span>
279
+ <span class="cline-any cline-neutral">&nbsp;</span>
280
+ <span class="cline-any cline-neutral">&nbsp;</span>
281
+ <span class="cline-any cline-neutral">&nbsp;</span>
282
+ <span class="cline-any cline-neutral">&nbsp;</span>
283
+ <span class="cline-any cline-neutral">&nbsp;</span>
284
+ <span class="cline-any cline-yes">22x</span>
285
+ <span class="cline-any cline-yes">22x</span>
286
+ <span class="cline-any cline-neutral">&nbsp;</span>
287
+ <span class="cline-any cline-neutral">&nbsp;</span>
288
+ <span class="cline-any cline-neutral">&nbsp;</span>
289
+ <span class="cline-any cline-neutral">&nbsp;</span>
290
+ <span class="cline-any cline-yes">194x</span>
291
+ <span class="cline-any cline-neutral">&nbsp;</span>
292
+ <span class="cline-any cline-neutral">&nbsp;</span>
293
+ <span class="cline-any cline-yes">194x</span>
294
+ <span class="cline-any cline-yes">21x</span>
295
+ <span class="cline-any cline-neutral">&nbsp;</span>
296
+ <span class="cline-any cline-neutral">&nbsp;</span>
297
+ <span class="cline-any cline-neutral">&nbsp;</span>
298
+ <span class="cline-any cline-yes">194x</span>
299
+ <span class="cline-any cline-neutral">&nbsp;</span>
300
+ <span class="cline-any cline-neutral">&nbsp;</span>
301
+ <span class="cline-any cline-neutral">&nbsp;</span>
302
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import {
303
+ CheckoutEvents,
304
+ InternalCheckoutEvents,
305
+ SessionEvent,
306
+ SessionValidationCallback,
307
+ } from "./checkout";
308
+ import { DinteroCheckoutInstance } from ".";
309
+ &nbsp;
310
+ /**
311
+ * Unsubscribe handler from event(s).
312
+ */
313
+ export type SubscriptionHandler = (
314
+ sessionEvent: SessionEvent,
315
+ checkout: DinteroCheckoutInstance
316
+ ) =&gt; void;
317
+ &nbsp;
318
+ interface SubscriptionOptions {
319
+ sid: string;
320
+ endpoint: string;
321
+ handler: SubscriptionHandler;
322
+ eventTypes: (CheckoutEvents | InternalCheckoutEvents)[];
323
+ checkout: DinteroCheckoutInstance;
324
+ }
325
+ &nbsp;
326
+ export type Subscription = {
327
+ /**
328
+ * Unsubscribe handler from event(s).
329
+ */
330
+ unsubscribe: () =&gt; void;
331
+ };
332
+ &nbsp;
333
+ /**
334
+ * Post a message acknowledgement to the checkout iframe.
335
+ */
336
+ const postAck = (iframe: HTMLIFrameElement, event: MessageEvent) =&gt; {
337
+ if (event.data.mid &amp;&amp; iframe.contentWindow) {
338
+ iframe.contentWindow.postMessage(
339
+ { ack: event.data.mid },
340
+ event.origin || <span class="branch-1 cbranch-no" title="branch not covered" >"*"</span>
341
+ );
342
+ }
343
+ };
344
+ &nbsp;
345
+ /**
346
+ * Post a SessionLock-event to the checkout iframe.
347
+ */
348
+ export const postSessionLock = <span class="fstat-no" title="function not covered" >(i</span>frame: HTMLIFrameElement, sid: string) =&gt; {
349
+ <span class="cstat-no" title="statement not covered" > if (iframe.contentWindow) {</span>
350
+ <span class="cstat-no" title="statement not covered" > iframe.contentWindow.postMessage({ type: "LockSession", sid }, "*");</span>
351
+ }
352
+ };
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;
363
+ /**
364
+ * Post RefreshSession-event to the checkout iframe.
365
+ */
366
+ export const postSessionRefresh = <span class="fstat-no" title="function not covered" >(i</span>frame: HTMLIFrameElement, sid: string) =&gt; {
367
+ <span class="cstat-no" title="statement not covered" > if (iframe.contentWindow) {</span>
368
+ <span class="cstat-no" title="statement not covered" > iframe.contentWindow.postMessage({ type: "RefreshSession", sid }, "*");</span>
369
+ }
370
+ };
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;
384
+ /**
385
+ * Subscribe to events from an iframe given a handler and a set
386
+ * of event types.
387
+ */
388
+ export const subscribe = (options: SubscriptionOptions): Subscription =&gt; {
389
+ const { sid, endpoint, handler, eventTypes, checkout } = options;
390
+ &nbsp;
391
+ // Wrap event handler in a function that checks for correct origin and
392
+ // filters on event type(s) in the event data.
393
+ const wrappedHandler = (event: MessageEvent) =&gt; {
394
+ const correctOrigin = event.origin === endpoint;
395
+ const correctWindow = event.source === checkout.iframe.contentWindow;
396
+ const correctSid = event.data &amp;&amp; event.data.sid === sid;
397
+ const correctMessageType =
398
+ eventTypes.indexOf(event.data &amp;&amp; event.data.type) !== -1;
399
+ if (
400
+ correctOrigin &amp;&amp;
401
+ correctWindow &amp;&amp;
402
+ correctSid &amp;&amp;
403
+ correctMessageType
404
+ ) {
405
+ postAck(checkout.iframe, event);
406
+ handler(event.data, checkout);
407
+ }
408
+ };
409
+ &nbsp;
410
+ // Add event listener to the iframe.
411
+ window.addEventListener("message", wrappedHandler as any, false);
412
+ &nbsp;
413
+ // Function to remove the event listener from the iframe.
414
+ const unsubscribe = () =&gt; {
415
+ window.removeEventListener("message", wrappedHandler as any, false);
416
+ };
417
+ &nbsp;
418
+ // Return object with unsubscribe function.
419
+ return {
420
+ unsubscribe,
421
+ };
422
+ };
423
+ &nbsp;</pre></td></tr></table></pre>
424
+
425
+ <div class='push'></div><!-- for sticky footer -->
426
+ </div><!-- /wrapper -->
427
+ <div class='footer quiet pad2 space-top1 center small'>
428
+ Code coverage generated by
429
+ <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
430
+ at Mon Feb 14 2022 14:16:49 GMT+0000 (Coordinated Universal Time)
431
+ </div>
432
+ </div>
433
+ <script src="prettify.js"></script>
434
+ <script>
435
+ window.onload = function () {
436
+ prettyPrint();
437
+ };
438
+ </script>
439
+ <script src="sorter.js"></script>
440
+ <script src="block-navigation.js"></script>
441
+ </body>
442
+ </html>
443
+
@@ -0,0 +1,185 @@
1
+
2
+ <!doctype html>
3
+ <html lang="en">
4
+
5
+ <head>
6
+ <title>Code coverage report for url.ts</title>
7
+ <meta charset="utf-8" />
8
+ <link rel="stylesheet" href="prettify.css" />
9
+ <link rel="stylesheet" href="base.css" />
10
+ <link rel="shortcut icon" type="image/x-icon" href="favicon.png" />
11
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
12
+ <style type='text/css'>
13
+ .coverage-summary .sorter {
14
+ background-image: url(sort-arrow-sprite.png);
15
+ }
16
+ </style>
17
+ </head>
18
+
19
+ <body>
20
+ <div class='wrapper'>
21
+ <div class='pad1'>
22
+ <h1><a href="index.html">All files</a> url.ts</h1>
23
+ <div class='clearfix'>
24
+
25
+ <div class='fl pad1y space-right2'>
26
+ <span class="strong">87.5% </span>
27
+ <span class="quiet">Statements</span>
28
+ <span class='fraction'>14/16</span>
29
+ </div>
30
+
31
+
32
+ <div class='fl pad1y space-right2'>
33
+ <span class="strong">60% </span>
34
+ <span class="quiet">Branches</span>
35
+ <span class='fraction'>6/10</span>
36
+ </div>
37
+
38
+
39
+ <div class='fl pad1y space-right2'>
40
+ <span class="strong">66.67% </span>
41
+ <span class="quiet">Functions</span>
42
+ <span class='fraction'>2/3</span>
43
+ </div>
44
+
45
+
46
+ <div class='fl pad1y space-right2'>
47
+ <span class="strong">84.62% </span>
48
+ <span class="quiet">Lines</span>
49
+ <span class='fraction'>11/13</span>
50
+ </div>
51
+
52
+
53
+ </div>
54
+ <p class="quiet">
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
+ </p>
57
+ </div>
58
+ <div class='status-line high'></div>
59
+ <pre><table class="coverage">
60
+ <tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
61
+ <a name='L2'></a><a href='#L2'>2</a>
62
+ <a name='L3'></a><a href='#L3'>3</a>
63
+ <a name='L4'></a><a href='#L4'>4</a>
64
+ <a name='L5'></a><a href='#L5'>5</a>
65
+ <a name='L6'></a><a href='#L6'>6</a>
66
+ <a name='L7'></a><a href='#L7'>7</a>
67
+ <a name='L8'></a><a href='#L8'>8</a>
68
+ <a name='L9'></a><a href='#L9'>9</a>
69
+ <a name='L10'></a><a href='#L10'>10</a>
70
+ <a name='L11'></a><a href='#L11'>11</a>
71
+ <a name='L12'></a><a href='#L12'>12</a>
72
+ <a name='L13'></a><a href='#L13'>13</a>
73
+ <a name='L14'></a><a href='#L14'>14</a>
74
+ <a name='L15'></a><a href='#L15'>15</a>
75
+ <a name='L16'></a><a href='#L16'>16</a>
76
+ <a name='L17'></a><a href='#L17'>17</a>
77
+ <a name='L18'></a><a href='#L18'>18</a>
78
+ <a name='L19'></a><a href='#L19'>19</a>
79
+ <a name='L20'></a><a href='#L20'>20</a>
80
+ <a name='L21'></a><a href='#L21'>21</a>
81
+ <a name='L22'></a><a href='#L22'>22</a>
82
+ <a name='L23'></a><a href='#L23'>23</a>
83
+ <a name='L24'></a><a href='#L24'>24</a>
84
+ <a name='L25'></a><a href='#L25'>25</a>
85
+ <a name='L26'></a><a href='#L26'>26</a>
86
+ <a name='L27'></a><a href='#L27'>27</a>
87
+ <a name='L28'></a><a href='#L28'>28</a>
88
+ <a name='L29'></a><a href='#L29'>29</a>
89
+ <a name='L30'></a><a href='#L30'>30</a>
90
+ <a name='L31'></a><a href='#L31'>31</a>
91
+ <a name='L32'></a><a href='#L32'>32</a>
92
+ <a name='L33'></a><a href='#L33'>33</a>
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>
96
+ <span class="cline-any cline-neutral">&nbsp;</span>
97
+ <span class="cline-any cline-neutral">&nbsp;</span>
98
+ <span class="cline-any cline-neutral">&nbsp;</span>
99
+ <span class="cline-any cline-neutral">&nbsp;</span>
100
+ <span class="cline-any cline-yes">1x</span>
101
+ <span class="cline-any cline-no">&nbsp;</span>
102
+ <span class="cline-any cline-neutral">&nbsp;</span>
103
+ <span class="cline-any cline-neutral">&nbsp;</span>
104
+ <span class="cline-any cline-neutral">&nbsp;</span>
105
+ <span class="cline-any cline-neutral">&nbsp;</span>
106
+ <span class="cline-any cline-neutral">&nbsp;</span>
107
+ <span class="cline-any cline-neutral">&nbsp;</span>
108
+ <span class="cline-any cline-neutral">&nbsp;</span>
109
+ <span class="cline-any cline-neutral">&nbsp;</span>
110
+ <span class="cline-any cline-neutral">&nbsp;</span>
111
+ <span class="cline-any cline-neutral">&nbsp;</span>
112
+ <span class="cline-any cline-neutral">&nbsp;</span>
113
+ <span class="cline-any cline-neutral">&nbsp;</span>
114
+ <span class="cline-any cline-neutral">&nbsp;</span>
115
+ <span class="cline-any cline-neutral">&nbsp;</span>
116
+ <span class="cline-any cline-yes">1x</span>
117
+ <span class="cline-any cline-yes">10x</span>
118
+ <span class="cline-any cline-yes">2x</span>
119
+ <span class="cline-any cline-no">&nbsp;</span>
120
+ <span class="cline-any cline-neutral">&nbsp;</span>
121
+ <span class="cline-any cline-neutral">&nbsp;</span>
122
+ <span class="cline-any cline-neutral">&nbsp;</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>
129
+ <span class="cline-any cline-neutral">&nbsp;</span>
130
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import pkg from "../package.json";
131
+ &nbsp;
132
+ /**
133
+ * Wraps window.location.assign()
134
+ */
135
+ export const windowLocationAssign = <span class="fstat-no" title="function not covered" >(u</span>rl: string) =&gt; {
136
+ <span class="cstat-no" title="statement not covered" > window.location.assign(url);</span>
137
+ };
138
+ &nbsp;
139
+ /**
140
+ * Get the url for the session./yarn-error.log
141
+ .DS_Store
142
+ */
143
+ export interface SessionUrlOptions {
144
+ sid: string;
145
+ endpoint: string;
146
+ language: string | undefined;
147
+ ui?: "fullscreen" | "inline";
148
+ shouldCallValidateSession: boolean;
149
+ }
150
+ &nbsp;
151
+ export const getSessionUrl = (options: SessionUrlOptions): string =&gt; {
152
+ const { sid, endpoint, language, ui, shouldCallValidateSession } = options;
153
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (!endpoint) {
154
+ <span class="cstat-no" title="statement not covered" > throw new Error("Invalid endpoint");</span>
155
+ }
156
+ &nbsp;
157
+ // Compose url for view session endpoint with optional language parameter.
158
+ let languageParam = language ? `language=${language}` : "";
159
+ let uiParam = ui ? <span class="branch-0 cbranch-no" title="branch not covered" >`ui=${ui}` </span>: "";
160
+ let sdk = `sdk=${pkg.version}`;
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;");
163
+ return `${endpoint}/v1/view/${sid}${params ? "?" + params : <span class="branch-1 cbranch-no" title="branch not covered" >""}</span>`;
164
+ };
165
+ &nbsp;</pre></td></tr></table></pre>
166
+
167
+ <div class='push'></div><!-- for sticky footer -->
168
+ </div><!-- /wrapper -->
169
+ <div class='footer quiet pad2 space-top1 center small'>
170
+ Code coverage generated by
171
+ <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
172
+ at Mon Feb 14 2022 14:16:49 GMT+0000 (Coordinated Universal Time)
173
+ </div>
174
+ </div>
175
+ <script src="prettify.js"></script>
176
+ <script>
177
+ window.onload = function () {
178
+ prettyPrint();
179
+ };
180
+ </script>
181
+ <script src="sorter.js"></script>
182
+ <script src="block-navigation.js"></script>
183
+ </body>
184
+ </html>
185
+