@saasquatch/squatch-js 2.6.0-0 → 2.6.0-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.
@@ -137,9 +137,9 @@
137
137
  <a name='L72'></a><a href='#L72'>72</a>
138
138
  <a name='L73'></a><a href='#L73'>73</a>
139
139
  <a name='L74'></a><a href='#L74'>74</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
140
- <span class="cline-any cline-yes">1x</span>
140
+ <span class="cline-any cline-yes">2x</span>
141
141
  <span class="cline-any cline-neutral">&nbsp;</span>
142
- <span class="cline-any cline-yes">1x</span>
142
+ <span class="cline-any cline-yes">2x</span>
143
143
  <span class="cline-any cline-neutral">&nbsp;</span>
144
144
  <span class="cline-any cline-neutral">&nbsp;</span>
145
145
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -148,7 +148,7 @@
148
148
  <span class="cline-any cline-neutral">&nbsp;</span>
149
149
  <span class="cline-any cline-neutral">&nbsp;</span>
150
150
  <span class="cline-any cline-neutral">&nbsp;</span>
151
- <span class="cline-any cline-yes">1x</span>
151
+ <span class="cline-any cline-yes">2x</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>
@@ -289,7 +289,7 @@ export type SQHDetails = {
289
289
  <div class='footer quiet pad2 space-top1 center small'>
290
290
  Code coverage generated by
291
291
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
292
- at 2023-07-03T20:35:44.061Z
292
+ at 2023-07-18T18:59:28.021Z
293
293
  </div>
294
294
  <script src="../prettify.js"></script>
295
295
  <script>
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">10.63% </span>
26
+ <span class="strong">21.27% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>5/47</span>
28
+ <span class='fraction'>10/47</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
33
  <span class="strong">0% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>0/21</span>
35
+ <span class='fraction'>0/29</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">0% </span>
40
+ <span class="strong">16.66% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>0/6</span>
42
+ <span class='fraction'>1/6</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">10.86% </span>
47
+ <span class="strong">21.73% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>5/46</span>
49
+ <span class='fraction'>10/46</span>
50
50
  </div>
51
51
 
52
52
 
@@ -244,7 +244,8 @@
244
244
  <a name='L179'></a><a href='#L179'>179</a>
245
245
  <a name='L180'></a><a href='#L180'>180</a>
246
246
  <a name='L181'></a><a href='#L181'>181</a>
247
- <a name='L182'></a><a href='#L182'>182</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
247
+ <a name='L182'></a><a href='#L182'>182</a>
248
+ <a name='L183'></a><a href='#L183'>183</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
248
249
  <span class="cline-any cline-neutral">&nbsp;</span>
249
250
  <span class="cline-any cline-neutral">&nbsp;</span>
250
251
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -267,8 +268,6 @@
267
268
  <span class="cline-any cline-neutral">&nbsp;</span>
268
269
  <span class="cline-any cline-neutral">&nbsp;</span>
269
270
  <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
271
  <span class="cline-any cline-yes">1x</span>
273
272
  <span class="cline-any cline-neutral">&nbsp;</span>
274
273
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -291,13 +290,12 @@
291
290
  <span class="cline-any cline-neutral">&nbsp;</span>
292
291
  <span class="cline-any cline-neutral">&nbsp;</span>
293
292
  <span class="cline-any cline-neutral">&nbsp;</span>
293
+ <span class="cline-any cline-yes">29x</span>
294
+ <span class="cline-any cline-yes">29x</span>
294
295
  <span class="cline-any cline-neutral">&nbsp;</span>
295
- <span class="cline-any cline-no">&nbsp;</span>
296
- <span class="cline-any cline-no">&nbsp;</span>
297
- <span class="cline-any cline-neutral">&nbsp;</span>
298
- <span class="cline-any cline-no">&nbsp;</span>
299
- <span class="cline-any cline-no">&nbsp;</span>
300
- <span class="cline-any cline-no">&nbsp;</span>
296
+ <span class="cline-any cline-yes">29x</span>
297
+ <span class="cline-any cline-yes">29x</span>
298
+ <span class="cline-any cline-yes">29x</span>
301
299
  <span class="cline-any cline-neutral">&nbsp;</span>
302
300
  <span class="cline-any cline-neutral">&nbsp;</span>
303
301
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -326,6 +324,8 @@
326
324
  <span class="cline-any cline-neutral">&nbsp;</span>
327
325
  <span class="cline-any cline-no">&nbsp;</span>
328
326
  <span class="cline-any cline-no">&nbsp;</span>
327
+ <span class="cline-any cline-neutral">&nbsp;</span>
328
+ <span class="cline-any cline-neutral">&nbsp;</span>
329
329
  <span class="cline-any cline-no">&nbsp;</span>
330
330
  <span class="cline-any cline-neutral">&nbsp;</span>
331
331
  <span class="cline-any cline-no">&nbsp;</span>
@@ -357,6 +357,8 @@
357
357
  <span class="cline-any cline-neutral">&nbsp;</span>
358
358
  <span class="cline-any cline-no">&nbsp;</span>
359
359
  <span class="cline-any cline-no">&nbsp;</span>
360
+ <span class="cline-any cline-neutral">&nbsp;</span>
361
+ <span class="cline-any cline-neutral">&nbsp;</span>
360
362
  <span class="cline-any cline-no">&nbsp;</span>
361
363
  <span class="cline-any cline-neutral">&nbsp;</span>
362
364
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -434,7 +436,7 @@ import {
434
436
  WidgetType,
435
437
  WithRequired,
436
438
  } from "../types";
437
- import { doGet, doPost, doPut, doQuery } from "../utils/io";
439
+ import { doGet, doPut, doQuery } from "../utils/io";
438
440
  import {
439
441
  validateConfig,
440
442
  validateLocale,
@@ -442,8 +444,6 @@ import {
442
444
  validateWidgetConfig,
443
445
  } from "../utils/validate";
444
446
  import { RENDER_WIDGET_QUERY } from "./graphql";
445
- import { DEFAULT_DOMAIN } from "../utils/validate";
446
- import { DEFAULT_NPM_CDN } from "../utils/validate";
447
447
  &nbsp;
448
448
  /**
449
449
  *
@@ -455,7 +455,6 @@ export default class WidgetApi {
455
455
  domain: string;
456
456
  npmCdn: string;
457
457
  &nbsp;
458
- // TODO: Support using new window variables for initialisation
459
458
  /**
460
459
  * Initialize a new {@link WidgetApi} instance.
461
460
  *
@@ -472,13 +471,13 @@ export default class WidgetApi {
472
471
  * import {WidgetApi} from '@saasquatch/squatch-js';
473
472
  * let squatchApi = new WidgetApi({tenantAlias:'test_12b5bo1b25125'});
474
473
  */
475
- <span class="fstat-no" title="function not covered" > constructor(c</span>onfig?: ConfigOptions) {
476
- const raw = <span class="cstat-no" title="statement not covered" >config as unknown;</span>
477
- const clean = <span class="cstat-no" title="statement not covered" >validateConfig(raw);</span>
474
+ constructor(config?: ConfigOptions) {
475
+ const raw = config as unknown;
476
+ const clean = validateConfig(raw);
478
477
  &nbsp;
479
- <span class="cstat-no" title="statement not covered" > this.tenantAlias = clean.tenantAlias;</span>
480
- <span class="cstat-no" title="statement not covered" > this.domain = clean.domain;</span>
481
- <span class="cstat-no" title="statement not covered" > this.npmCdn = clean.npmCdn;</span>
478
+ this.tenantAlias = clean.tenantAlias;
479
+ this.domain = clean.domain;
480
+ this.npmCdn = clean.npmCdn;
482
481
  }
483
482
  &nbsp;
484
483
  /**
@@ -506,14 +505,16 @@ export default class WidgetApi {
506
505
  } = <span class="cstat-no" title="statement not covered" >clean as WithRequired&lt;WidgetConfig, "user"&gt;;</span>
507
506
  &nbsp;
508
507
  const tenantAlias = <span class="cstat-no" title="statement not covered" >encodeURIComponent(this.tenantAlias);</span>
509
- const accountId = <span class="cstat-no" title="statement not covered" >encodeURIComponent(user.accountId);</span>
510
- const userId = <span class="cstat-no" title="statement not covered" >encodeURIComponent(user.id);</span>
508
+ const accountId = <span class="cstat-no" title="statement not covered" >user.accountId</span>
509
+ ? encodeURIComponent(user.accountId)
510
+ : null;
511
+ const userId = <span class="cstat-no" title="statement not covered" >user.id ? encodeURIComponent(user.id) : null;</span>
511
512
  &nbsp;
512
513
  const optionalParams = <span class="cstat-no" title="statement not covered" >_buildParams({ widgetType, engagementMedium });</span>
513
514
  &nbsp;
514
515
  const path = <span class="cstat-no" title="statement not covered" >`/api/v1/${tenantAlias}/widget/account/${accountId}/user/${userId}/upsert${optionalParams}`;</span>
515
516
  const url = <span class="cstat-no" title="statement not covered" >this.domain + path;</span>
516
- const cookies = <span class="cstat-no" title="statement not covered" >Cookies.get("_saasquatch");</span>
517
+ const cookies = <span class="cstat-no" title="statement not covered" >(Cookies || window.Cookies).get("_saasquatch");</span>
517
518
  <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (cookies) <span class="cstat-no" title="statement not covered" >user["cookies"] = cookies;</span></span>
518
519
  <span class="cstat-no" title="statement not covered" > return doPut(url, JSON.stringify(user), jwt);</span>
519
520
  }
@@ -537,8 +538,10 @@ export default class WidgetApi {
537
538
  const { widgetType, engagementMedium = <span class="branch-0 cbranch-no" title="branch not covered" >"POPUP",</span> jwt, user } = <span class="cstat-no" title="statement not covered" >clean;</span>
538
539
  &nbsp;
539
540
  const tenantAlias = <span class="cstat-no" title="statement not covered" >encodeURIComponent(this.tenantAlias);</span>
540
- const accountId = <span class="cstat-no" title="statement not covered" >user ? encodeURIComponent(user.accountId) : null;</span>
541
- const userId = <span class="cstat-no" title="statement not covered" >user ? encodeURIComponent(user.id) : null;</span>
541
+ const accountId = <span class="cstat-no" title="statement not covered" >user?.accountId</span>
542
+ ? encodeURIComponent(user.accountId)
543
+ : null;
544
+ const userId = <span class="cstat-no" title="statement not covered" >user?.id ? encodeURIComponent(user.id) : null;</span>
542
545
  &nbsp;
543
546
  const locale =
544
547
  <span class="cstat-no" title="statement not covered" > clean.locale ?? validateLocale(navigator.language.replace(/\-/g, "_"));</span>
@@ -572,7 +575,7 @@ export default class WidgetApi {
572
575
  */
573
576
  <span class="fstat-no" title="function not covered" > async </span>squatchReferralCookie(): Promise&lt;ReferralCookie&gt; {
574
577
  const tenantAlias = <span class="cstat-no" title="statement not covered" >encodeURIComponent(this.tenantAlias);</span>
575
- const _saasquatch = <span class="cstat-no" title="statement not covered" >Cookies.get("_saasquatch") || "";</span>
578
+ const _saasquatch = <span class="cstat-no" title="statement not covered" >(Cookies || window.Cookies).get("_saasquatch") || "";</span>
576
579
  &nbsp;
577
580
  const cookie = <span class="cstat-no" title="statement not covered" >_saasquatch</span>
578
581
  ? `?cookies=${encodeURIComponent(_saasquatch)}`
@@ -613,7 +616,7 @@ function <span class="fstat-no" title="function not covered" >_buildParams(</spa
613
616
  <div class='footer quiet pad2 space-top1 center small'>
614
617
  Code coverage generated by
615
618
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
616
- at 2023-07-03T20:35:44.061Z
619
+ at 2023-07-18T18:59:28.021Z
617
620
  </div>
618
621
  <script src="../prettify.js"></script>
619
622
  <script>
@@ -115,7 +115,7 @@
115
115
  <div class='footer quiet pad2 space-top1 center small'>
116
116
  Code coverage generated by
117
117
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
118
- at 2023-07-03T20:35:44.061Z
118
+ at 2023-07-18T18:59:28.021Z
119
119
  </div>
120
120
  <script src="../prettify.js"></script>
121
121
  <script>
@@ -92,7 +92,7 @@
92
92
  <span class="cline-any cline-neutral">&nbsp;</span>
93
93
  <span class="cline-any cline-neutral">&nbsp;</span>
94
94
  <span class="cline-any cline-neutral">&nbsp;</span>
95
- <span class="cline-any cline-yes">1x</span>
95
+ <span class="cline-any cline-yes">2x</span>
96
96
  <span class="cline-any cline-no">&nbsp;</span>
97
97
  <span class="cline-any cline-neutral">&nbsp;</span>
98
98
  <span class="cline-any cline-no">&nbsp;</span>
@@ -145,7 +145,7 @@ export function <span class="fstat-no" title="function not covered" >domready(</
145
145
  <div class='footer quiet pad2 space-top1 center small'>
146
146
  Code coverage generated by
147
147
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
148
- at 2023-07-03T20:35:44.061Z
148
+ at 2023-07-18T18:59:28.021Z
149
149
  </div>
150
150
  <script src="../prettify.js"></script>
151
151
  <script>
@@ -23,16 +23,16 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">13.95% </span>
26
+ <span class="strong">12.76% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>6/43</span>
28
+ <span class='fraction'>6/47</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
33
  <span class="strong">0% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>0/20</span>
35
+ <span class='fraction'>0/28</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">16.66% </span>
47
+ <span class="strong">15% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>6/36</span>
49
+ <span class='fraction'>6/40</span>
50
50
  </div>
51
51
 
52
52
 
@@ -163,18 +163,24 @@
163
163
  <a name='L98'></a><a href='#L98'>98</a>
164
164
  <a name='L99'></a><a href='#L99'>99</a>
165
165
  <a name='L100'></a><a href='#L100'>100</a>
166
- <a name='L101'></a><a href='#L101'>101</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
166
+ <a name='L101'></a><a href='#L101'>101</a>
167
+ <a name='L102'></a><a href='#L102'>102</a>
168
+ <a name='L103'></a><a href='#L103'>103</a>
169
+ <a name='L104'></a><a href='#L104'>104</a>
170
+ <a name='L105'></a><a href='#L105'>105</a>
171
+ <a name='L106'></a><a href='#L106'>106</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">3x</span>
167
172
  <span class="cline-any cline-neutral">&nbsp;</span>
168
173
  <span class="cline-any cline-neutral">&nbsp;</span>
169
- <span class="cline-any cline-yes">1x</span>
174
+ <span class="cline-any cline-yes">3x</span>
170
175
  <span class="cline-any cline-neutral">&nbsp;</span>
171
- <span class="cline-any cline-yes">1x</span>
176
+ <span class="cline-any cline-yes">3x</span>
172
177
  <span class="cline-any cline-neutral">&nbsp;</span>
173
178
  <span class="cline-any cline-neutral">&nbsp;</span>
174
179
  <span class="cline-any cline-neutral">&nbsp;</span>
175
180
  <span class="cline-any cline-neutral">&nbsp;</span>
176
181
  <span class="cline-any cline-neutral">&nbsp;</span>
177
182
  <span class="cline-any cline-no">&nbsp;</span>
183
+ <span class="cline-any cline-no">&nbsp;</span>
178
184
  <span class="cline-any cline-neutral">&nbsp;</span>
179
185
  <span class="cline-any cline-neutral">&nbsp;</span>
180
186
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -194,13 +200,14 @@
194
200
  <span class="cline-any cline-neutral">&nbsp;</span>
195
201
  <span class="cline-any cline-neutral">&nbsp;</span>
196
202
  <span class="cline-any cline-neutral">&nbsp;</span>
197
- <span class="cline-any cline-yes">1x</span>
203
+ <span class="cline-any cline-yes">3x</span>
198
204
  <span class="cline-any cline-no">&nbsp;</span>
199
205
  <span class="cline-any cline-neutral">&nbsp;</span>
200
206
  <span class="cline-any cline-neutral">&nbsp;</span>
201
207
  <span class="cline-any cline-neutral">&nbsp;</span>
202
208
  <span class="cline-any cline-neutral">&nbsp;</span>
203
209
  <span class="cline-any cline-no">&nbsp;</span>
210
+ <span class="cline-any cline-no">&nbsp;</span>
204
211
  <span class="cline-any cline-neutral">&nbsp;</span>
205
212
  <span class="cline-any cline-no">&nbsp;</span>
206
213
  <span class="cline-any cline-no">&nbsp;</span>
@@ -216,11 +223,13 @@
216
223
  <span class="cline-any cline-no">&nbsp;</span>
217
224
  <span class="cline-any cline-neutral">&nbsp;</span>
218
225
  <span class="cline-any cline-neutral">&nbsp;</span>
219
- <span class="cline-any cline-yes">1x</span>
226
+ <span class="cline-any cline-yes">3x</span>
220
227
  <span class="cline-any cline-no">&nbsp;</span>
221
228
  <span class="cline-any cline-neutral">&nbsp;</span>
222
229
  <span class="cline-any cline-neutral">&nbsp;</span>
223
230
  <span class="cline-any cline-neutral">&nbsp;</span>
231
+ <span class="cline-any cline-neutral">&nbsp;</span>
232
+ <span class="cline-any cline-no">&nbsp;</span>
224
233
  <span class="cline-any cline-no">&nbsp;</span>
225
234
  <span class="cline-any cline-neutral">&nbsp;</span>
226
235
  <span class="cline-any cline-no">&nbsp;</span>
@@ -239,7 +248,7 @@
239
248
  <span class="cline-any cline-neutral">&nbsp;</span>
240
249
  <span class="cline-any cline-neutral">&nbsp;</span>
241
250
  <span class="cline-any cline-neutral">&nbsp;</span>
242
- <span class="cline-any cline-yes">1x</span>
251
+ <span class="cline-any cline-yes">3x</span>
243
252
  <span class="cline-any cline-no">&nbsp;</span>
244
253
  <span class="cline-any cline-neutral">&nbsp;</span>
245
254
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -247,6 +256,7 @@
247
256
  <span class="cline-any cline-neutral">&nbsp;</span>
248
257
  <span class="cline-any cline-neutral">&nbsp;</span>
249
258
  <span class="cline-any cline-no">&nbsp;</span>
259
+ <span class="cline-any cline-no">&nbsp;</span>
250
260
  <span class="cline-any cline-neutral">&nbsp;</span>
251
261
  <span class="cline-any cline-no">&nbsp;</span>
252
262
  <span class="cline-any cline-no">&nbsp;</span>
@@ -272,8 +282,9 @@ export async function <span class="fstat-no" title="function not covered" >doQue
272
282
  url: string,
273
283
  query: string,
274
284
  variables: Record&lt;string, unknown&gt;,
275
- token: string | undefined
285
+ jwt: string | undefined
276
286
  ) {
287
+ const token = <span class="cstat-no" title="statement not covered" >jwt || window.squatchToken;</span>
277
288
  const headers = <span class="cstat-no" title="statement not covered" >{</span>
278
289
  Accept: "application/json",
279
290
  "Content-Type": "application/json",
@@ -300,7 +311,8 @@ export async function <span class="fstat-no" title="function not covered" >doGet
300
311
  "Content-Type": "application/json",
301
312
  };
302
313
  &nbsp;
303
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (jwt) <span class="cstat-no" title="statement not covered" >headers["X-SaaSquatch-User-Token"] = jwt;</span></span>
314
+ const token = <span class="cstat-no" title="statement not covered" >jwt || window.squatchToken;</span>
315
+ <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (token) <span class="cstat-no" title="statement not covered" >headers["X-SaaSquatch-User-Token"] = token;</span></span>
304
316
  &nbsp;
305
317
  <span class="cstat-no" title="statement not covered" > try {</span>
306
318
  const res = <span class="cstat-no" title="statement not covered" >await fetch(url, {</span>
@@ -321,7 +333,9 @@ export async function <span class="fstat-no" title="function not covered" >doPos
321
333
  Accept: "application/json",
322
334
  "Content-Type": "application/json",
323
335
  };
324
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (jwt) <span class="cstat-no" title="statement not covered" >headers["X-SaaSquatch-User-Token"] = jwt;</span></span>
336
+ &nbsp;
337
+ const token = <span class="cstat-no" title="statement not covered" >jwt || window.squatchToken;</span>
338
+ <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (token) <span class="cstat-no" title="statement not covered" >headers["X-SaaSquatch-User-Token"] = token;</span></span>
325
339
  &nbsp;
326
340
  <span class="cstat-no" title="statement not covered" > try {</span>
327
341
  const res = <span class="cstat-no" title="statement not covered" >await fetch(url, {</span>
@@ -346,7 +360,8 @@ export async function <span class="fstat-no" title="function not covered" >doPut
346
360
  "X-SaaSquatch-Referrer": window ? window.location.href : "",
347
361
  };
348
362
  &nbsp;
349
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (jwt) <span class="cstat-no" title="statement not covered" >headers["X-SaaSquatch-User-Token"] = jwt;</span></span>
363
+ const token = <span class="cstat-no" title="statement not covered" >jwt || window.squatchToken;</span>
364
+ <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (token) <span class="cstat-no" title="statement not covered" >headers["X-SaaSquatch-User-Token"] = token;</span></span>
350
365
  &nbsp;
351
366
  <span class="cstat-no" title="statement not covered" > try {</span>
352
367
  const res = <span class="cstat-no" title="statement not covered" >await fetch(url, {</span>
@@ -370,7 +385,7 @@ export async function <span class="fstat-no" title="function not covered" >doPut
370
385
  <div class='footer quiet pad2 space-top1 center small'>
371
386
  Code coverage generated by
372
387
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
373
- at 2023-07-03T20:35:44.061Z
388
+ at 2023-07-18T18:59:28.021Z
374
389
  </div>
375
390
  <script src="../prettify.js"></script>
376
391
  <script>
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">100% </span>
26
+ <span class="strong">75% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>28/28</span>
28
+ <span class='fraction'>21/28</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">100% </span>
33
+ <span class="strong">50% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>28/28</span>
35
+ <span class='fraction'>14/28</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">100% </span>
40
+ <span class="strong">80% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>5/5</span>
42
+ <span class='fraction'>4/5</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">100% </span>
47
+ <span class="strong">87.5% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>24/24</span>
49
+ <span class='fraction'>21/24</span>
50
50
  </div>
51
51
 
52
52
 
@@ -61,7 +61,7 @@
61
61
  </div>
62
62
  </template>
63
63
  </div>
64
- <div class='status-line high'></div>
64
+ <div class='status-line medium'></div>
65
65
  <pre><table class="coverage">
66
66
  <tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
67
67
  <a name='L2'></a><a href='#L2'>2</a>
@@ -126,34 +126,34 @@
126
126
  <a name='L61'></a><a href='#L61'>61</a>
127
127
  <a name='L62'></a><a href='#L62'>62</a></td><td class="line-coverage quiet"><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">2x</span>
130
- <span class="cline-any cline-yes">2x</span>
129
+ <span class="cline-any cline-yes">3x</span>
130
+ <span class="cline-any cline-yes">3x</span>
131
131
  <span class="cline-any cline-neutral">&nbsp;</span>
132
132
  <span class="cline-any cline-neutral">&nbsp;</span>
133
133
  <span class="cline-any cline-neutral">&nbsp;</span>
134
134
  <span class="cline-any cline-neutral">&nbsp;</span>
135
135
  <span class="cline-any cline-neutral">&nbsp;</span>
136
- <span class="cline-any cline-yes">2x</span>
136
+ <span class="cline-any cline-yes">3x</span>
137
137
  <span class="cline-any cline-neutral">&nbsp;</span>
138
138
  <span class="cline-any cline-neutral">&nbsp;</span>
139
- <span class="cline-any cline-yes">9x</span>
139
+ <span class="cline-any cline-yes">58x</span>
140
140
  <span class="cline-any cline-neutral">&nbsp;</span>
141
- <span class="cline-any cline-yes">8x</span>
141
+ <span class="cline-any cline-yes">58x</span>
142
142
  <span class="cline-any cline-neutral">&nbsp;</span>
143
143
  <span class="cline-any cline-neutral">&nbsp;</span>
144
144
  <span class="cline-any cline-neutral">&nbsp;</span>
145
145
  <span class="cline-any cline-neutral">&nbsp;</span>
146
146
  <span class="cline-any cline-neutral">&nbsp;</span>
147
147
  <span class="cline-any cline-neutral">&nbsp;</span>
148
- <span class="cline-any cline-yes">8x</span>
149
- <span class="cline-any cline-yes">2x</span>
150
- <span class="cline-any cline-yes">6x</span>
148
+ <span class="cline-any cline-yes">58x</span>
149
+ <span class="cline-any cline-no">&nbsp;</span>
150
+ <span class="cline-any cline-yes">58x</span>
151
151
  <span class="cline-any cline-neutral">&nbsp;</span>
152
- <span class="cline-any cline-yes">6x</span>
153
- <span class="cline-any cline-yes">6x</span>
152
+ <span class="cline-any cline-yes">58x</span>
153
+ <span class="cline-any cline-yes">58x</span>
154
154
  <span class="cline-any cline-neutral">&nbsp;</span>
155
- <span class="cline-any cline-yes">6x</span>
156
- <span class="cline-any cline-yes">6x</span>
155
+ <span class="cline-any cline-yes">58x</span>
156
+ <span class="cline-any cline-yes">58x</span>
157
157
  <span class="cline-any cline-neutral">&nbsp;</span>
158
158
  <span class="cline-any cline-neutral">&nbsp;</span>
159
159
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -161,29 +161,29 @@
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
- <span class="cline-any cline-yes">2x</span>
165
- <span class="cline-any cline-yes">16x</span>
164
+ <span class="cline-any cline-yes">3x</span>
165
+ <span class="cline-any cline-yes">5x</span>
166
166
  <span class="cline-any cline-neutral">&nbsp;</span>
167
167
  <span class="cline-any cline-neutral">&nbsp;</span>
168
- <span class="cline-any cline-yes">2x</span>
169
- <span class="cline-any cline-yes">10x</span>
170
- <span class="cline-any cline-yes">2x</span>
168
+ <span class="cline-any cline-yes">3x</span>
169
+ <span class="cline-any cline-no">&nbsp;</span>
170
+ <span class="cline-any cline-no">&nbsp;</span>
171
171
  <span class="cline-any cline-neutral">&nbsp;</span>
172
172
  <span class="cline-any cline-neutral">&nbsp;</span>
173
173
  <span class="cline-any cline-neutral">&nbsp;</span>
174
- <span class="cline-any cline-yes">2x</span>
175
- <span class="cline-any cline-yes">4x</span>
176
174
  <span class="cline-any cline-yes">3x</span>
175
+ <span class="cline-any cline-yes">2x</span>
176
+ <span class="cline-any cline-yes">2x</span>
177
177
  <span class="cline-any cline-neutral">&nbsp;</span>
178
- <span class="cline-any cline-yes">1x</span>
178
+ <span class="cline-any cline-yes">2x</span>
179
179
  <span class="cline-any cline-neutral">&nbsp;</span>
180
180
  <span class="cline-any cline-neutral">&nbsp;</span>
181
- <span class="cline-any cline-yes">2x</span>
181
+ <span class="cline-any cline-yes">3x</span>
182
182
  <span class="cline-any cline-neutral">&nbsp;</span>
183
183
  <span class="cline-any cline-neutral">&nbsp;</span>
184
- <span class="cline-any cline-yes">4x</span>
184
+ <span class="cline-any cline-yes">3x</span>
185
185
  <span class="cline-any cline-neutral">&nbsp;</span>
186
- <span class="cline-any cline-yes">2x</span>
186
+ <span class="cline-any cline-yes">3x</span>
187
187
  <span class="cline-any cline-neutral">&nbsp;</span>
188
188
  <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import { ConfigOptions, WidgetConfig } from "../types";
189
189
  &nbsp;
@@ -197,23 +197,23 @@ type Required&lt;T&gt; = T extends object
197
197
  export function validateConfig(
198
198
  _raw?: unknown | undefined
199
199
  ): Required&lt;ConfigOptions&gt; {
200
- if (typeof _raw !== "object") throw new Error("config must be an object");
200
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (typeof _raw !== "object") <span class="cstat-no" title="statement not covered" >throw new Error("config must be an object");</span>
201
201
  &nbsp;
202
202
  const raw = {
203
- tenantAlias: _raw?.["tenantAlias"] || window.squatchTenant,
204
- domain: _raw?.["domain"] || window.squatchConfig?.domain,
205
- npmCdn: _raw?.["npmCdn"] || window.squatchConfig?.npmCdn,
203
+ tenantAlias: _raw?.["tenantAlias"] || <span class="branch-1 cbranch-no" title="branch not covered" >window.squatchTenant,</span>
204
+ domain: _raw?.["domain"] || <span class="branch-1 cbranch-no" title="branch not covered" >window.squatchConfig?.domain,</span>
205
+ npmCdn: _raw?.["npmCdn"] || <span class="branch-1 cbranch-no" title="branch not covered" >window.squatchConfig?.npmCdn,</span>
206
206
  debug: _raw?.["debug"] || window.squatchConfig?.debug,
207
207
  };
208
208
  &nbsp;
209
- if (typeof raw.tenantAlias !== "string")
210
- throw new Error("tenantAlias not provided");
209
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (typeof raw.tenantAlias !== "string")
210
+ <span class="cstat-no" title="statement not covered" > throw new Error("tenantAlias not provided");</span>
211
211
  const tenantAlias = raw.tenantAlias;
212
212
  const domain =
213
- (typeof raw.domain === "string" &amp;&amp; raw.domain) || DEFAULT_DOMAIN;
214
- const debug = (typeof raw.debug === "boolean" &amp;&amp; raw.debug) || false;
213
+ (typeof raw.domain === "string" &amp;&amp; raw.domain) || <span class="branch-2 cbranch-no" title="branch not covered" >DEFAULT_DOMAIN;</span>
214
+ const debug = (typeof raw.debug === "boolean" &amp;&amp; <span class="branch-1 cbranch-no" title="branch not covered" >raw.debug)</span> || false;
215
215
  const npmCdn =
216
- (typeof raw.npmCdn === "string" &amp;&amp; raw.npmCdn) || DEFAULT_NPM_CDN;
216
+ (typeof raw.npmCdn === "string" &amp;&amp; raw.npmCdn) || <span class="branch-2 cbranch-no" title="branch not covered" >DEFAULT_NPM_CDN;</span>
217
217
  return {
218
218
  tenantAlias,
219
219
  domain,
@@ -226,15 +226,15 @@ export function isObject(obj: unknown): obj is object {
226
226
  return typeof obj === "object" &amp;&amp; !Array.isArray(obj) &amp;&amp; obj !== null;
227
227
  }
228
228
  &nbsp;
229
- export function validateLocale(locale?: string) {
230
- if (locale &amp;&amp; /^[a-z]{2}_(?:[A-Z]{2}|[0-9]{3})$/.test(locale)) {
231
- return locale;
229
+ export function <span class="fstat-no" title="function not covered" >validateLocale(</span>locale?: string) {
230
+ <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (locale &amp;&amp; /^[a-z]{2}_(?:[A-Z]{2}|[0-9]{3})$/.test(locale)) {</span>
231
+ <span class="cstat-no" title="statement not covered" > return locale;</span>
232
232
  }
233
233
  }
234
234
  &nbsp;
235
235
  export function validateWidgetConfig(raw: unknown | undefined): WidgetConfig {
236
- if (!isObject(raw)) throw new Error("Widget properties must be an object");
237
- if (!raw?.["user"]) throw new Error("Required properties missing.");
236
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (!isObject(raw)) <span class="cstat-no" title="statement not covered" >throw new Error("Widget properties must be an object");</span>
237
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (!raw?.["user"]) <span class="cstat-no" title="statement not covered" >throw new Error("Required properties missing.");</span>
238
238
  &nbsp;
239
239
  return raw as WidgetConfig;
240
240
  }
@@ -242,7 +242,7 @@ export function validateWidgetConfig(raw: unknown | undefined): WidgetConfig {
242
242
  export function validatePasswordlessConfig(
243
243
  raw: unknown | undefined
244
244
  ): WidgetConfig {
245
- if (!isObject(raw)) throw new Error("Widget properties must be an object");
245
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (!isObject(raw)) <span class="cstat-no" title="statement not covered" >throw new Error("Widget properties must be an object");</span>
246
246
  &nbsp;
247
247
  return raw as WidgetConfig;
248
248
  }
@@ -253,7 +253,7 @@ export function validatePasswordlessConfig(
253
253
  <div class='footer quiet pad2 space-top1 center small'>
254
254
  Code coverage generated by
255
255
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
256
- at 2023-07-03T20:35:44.061Z
256
+ at 2023-07-18T18:59:28.021Z
257
257
  </div>
258
258
  <script src="../prettify.js"></script>
259
259
  <script>
@@ -253,7 +253,7 @@ export function validatePasswordlessConfig(
253
253
  <div class='footer quiet pad2 space-top1 center small'>
254
254
  Code coverage generated by
255
255
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
256
- at 2023-07-03T20:33:48.968Z
256
+ at 2023-07-13T17:12:47.320Z
257
257
  </div>
258
258
  <script src="prettify.js"></script>
259
259
  <script>