@firebase/installations 0.4.7-canary.daf63c2c → 0.4.7

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 (36) hide show
  1. package/coverage/browser/HeadlessChrome 80.0.3987 (Linux 0.0.0)/api/common.ts.html +402 -0
  2. package/coverage/browser/HeadlessChrome 80.0.3987 (Linux 0.0.0)/api/create-installation-request.ts.html +270 -0
  3. package/coverage/browser/HeadlessChrome 80.0.3987 (Linux 0.0.0)/api/delete-installation-request.ts.html +219 -0
  4. package/coverage/browser/HeadlessChrome 80.0.3987 (Linux 0.0.0)/api/generate-auth-token-request.ts.html +306 -0
  5. package/coverage/browser/HeadlessChrome 80.0.3987 (Linux 0.0.0)/api/index.html +136 -0
  6. package/coverage/browser/HeadlessChrome 80.0.3987 (Linux 0.0.0)/base.css +224 -0
  7. package/coverage/browser/HeadlessChrome 80.0.3987 (Linux 0.0.0)/block-navigation.js +79 -0
  8. package/coverage/browser/HeadlessChrome 80.0.3987 (Linux 0.0.0)/functions/delete-installation.ts.html +219 -0
  9. package/coverage/browser/HeadlessChrome 80.0.3987 (Linux 0.0.0)/functions/get-id.ts.html +183 -0
  10. package/coverage/browser/HeadlessChrome 80.0.3987 (Linux 0.0.0)/functions/get-token.ts.html +201 -0
  11. package/coverage/browser/HeadlessChrome 80.0.3987 (Linux 0.0.0)/functions/index.html +136 -0
  12. package/coverage/browser/HeadlessChrome 80.0.3987 (Linux 0.0.0)/functions/on-id-change.ts.html +180 -0
  13. package/coverage/browser/HeadlessChrome 80.0.3987 (Linux 0.0.0)/helpers/buffer-to-base64-url-safe.ts.html +132 -0
  14. package/coverage/browser/HeadlessChrome 80.0.3987 (Linux 0.0.0)/helpers/extract-app-config.ts.html +240 -0
  15. package/coverage/browser/HeadlessChrome 80.0.3987 (Linux 0.0.0)/helpers/fid-changed.ts.html +399 -0
  16. package/coverage/browser/HeadlessChrome 80.0.3987 (Linux 0.0.0)/helpers/generate-fid.ts.html +234 -0
  17. package/coverage/browser/HeadlessChrome 80.0.3987 (Linux 0.0.0)/helpers/get-installation-entry.ts.html +750 -0
  18. package/coverage/browser/HeadlessChrome 80.0.3987 (Linux 0.0.0)/helpers/idb-manager.ts.html +438 -0
  19. package/coverage/browser/HeadlessChrome 80.0.3987 (Linux 0.0.0)/helpers/index.html +175 -0
  20. package/coverage/browser/HeadlessChrome 80.0.3987 (Linux 0.0.0)/helpers/refresh-auth-token.ts.html +696 -0
  21. package/coverage/browser/HeadlessChrome 80.0.3987 (Linux 0.0.0)/index.html +136 -0
  22. package/coverage/browser/HeadlessChrome 80.0.3987 (Linux 0.0.0)/lcov.info +825 -0
  23. package/coverage/browser/HeadlessChrome 80.0.3987 (Linux 0.0.0)/prettify.css +1 -0
  24. package/coverage/browser/HeadlessChrome 80.0.3987 (Linux 0.0.0)/prettify.js +2 -0
  25. package/coverage/browser/HeadlessChrome 80.0.3987 (Linux 0.0.0)/sort-arrow-sprite.png +0 -0
  26. package/coverage/browser/HeadlessChrome 80.0.3987 (Linux 0.0.0)/sorter.js +170 -0
  27. package/coverage/browser/HeadlessChrome 80.0.3987 (Linux 0.0.0)/util/constants.ts.html +162 -0
  28. package/coverage/browser/HeadlessChrome 80.0.3987 (Linux 0.0.0)/util/errors.ts.html +285 -0
  29. package/coverage/browser/HeadlessChrome 80.0.3987 (Linux 0.0.0)/util/get-key.ts.html +138 -0
  30. package/coverage/browser/HeadlessChrome 80.0.3987 (Linux 0.0.0)/util/index.html +136 -0
  31. package/coverage/browser/HeadlessChrome 80.0.3987 (Linux 0.0.0)/util/sleep.ts.html +138 -0
  32. package/dist/index.cjs.js +1 -1
  33. package/dist/index.esm.js +1 -1
  34. package/dist/index.esm2017.js +1 -1
  35. package/karma.conf.js +2 -1
  36. package/package.json +8 -8
@@ -0,0 +1,438 @@
1
+ <!doctype html>
2
+ <html lang="en">
3
+ <head>
4
+ <title>Code coverage report for helpers/idb-manager.ts</title>
5
+ <meta charset="utf-8" />
6
+ <link rel="stylesheet" href="../prettify.css" />
7
+ <link rel="stylesheet" href="../base.css" />
8
+ <meta name="viewport" content="width=device-width, initial-scale=1">
9
+ <style type='text/css'>
10
+ .coverage-summary .sorter {
11
+ background-image: url(../sort-arrow-sprite.png);
12
+ }
13
+ </style>
14
+ </head>
15
+ <body>
16
+ <div class='wrapper'>
17
+ <div class='pad1'>
18
+ <h1>
19
+ <a href="../index.html">All files</a> / <a href="index.html">helpers</a> idb-manager.ts
20
+ </h1>
21
+ <div class='clearfix'>
22
+ <div class='fl pad1y space-right2'>
23
+ <span class="strong">100% </span>
24
+ <span class="quiet">Statements</span>
25
+ <span class='fraction'>59/59</span>
26
+ </div>
27
+ <div class='fl pad1y space-right2'>
28
+ <span class="strong">100% </span>
29
+ <span class="quiet">Branches</span>
30
+ <span class='fraction'>17/17</span>
31
+ </div>
32
+ <div class='fl pad1y space-right2'>
33
+ <span class="strong">100% </span>
34
+ <span class="quiet">Functions</span>
35
+ <span class='fraction'>7/7</span>
36
+ </div>
37
+ <div class='fl pad1y space-right2'>
38
+ <span class="strong">100% </span>
39
+ <span class="quiet">Lines</span>
40
+ <span class='fraction'>52/52</span>
41
+ </div>
42
+ </div>
43
+ <p class="quiet">
44
+ 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.
45
+ </p>
46
+ </div>
47
+ <div class='status-line high'></div>
48
+ <pre><table class="coverage">
49
+ <tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
50
+ <a name='L2'></a><a href='#L2'>2</a>
51
+ <a name='L3'></a><a href='#L3'>3</a>
52
+ <a name='L4'></a><a href='#L4'>4</a>
53
+ <a name='L5'></a><a href='#L5'>5</a>
54
+ <a name='L6'></a><a href='#L6'>6</a>
55
+ <a name='L7'></a><a href='#L7'>7</a>
56
+ <a name='L8'></a><a href='#L8'>8</a>
57
+ <a name='L9'></a><a href='#L9'>9</a>
58
+ <a name='L10'></a><a href='#L10'>10</a>
59
+ <a name='L11'></a><a href='#L11'>11</a>
60
+ <a name='L12'></a><a href='#L12'>12</a>
61
+ <a name='L13'></a><a href='#L13'>13</a>
62
+ <a name='L14'></a><a href='#L14'>14</a>
63
+ <a name='L15'></a><a href='#L15'>15</a>
64
+ <a name='L16'></a><a href='#L16'>16</a>
65
+ <a name='L17'></a><a href='#L17'>17</a>
66
+ <a name='L18'></a><a href='#L18'>18</a>
67
+ <a name='L19'></a><a href='#L19'>19</a>
68
+ <a name='L20'></a><a href='#L20'>20</a>
69
+ <a name='L21'></a><a href='#L21'>21</a>
70
+ <a name='L22'></a><a href='#L22'>22</a>
71
+ <a name='L23'></a><a href='#L23'>23</a>
72
+ <a name='L24'></a><a href='#L24'>24</a>
73
+ <a name='L25'></a><a href='#L25'>25</a>
74
+ <a name='L26'></a><a href='#L26'>26</a>
75
+ <a name='L27'></a><a href='#L27'>27</a>
76
+ <a name='L28'></a><a href='#L28'>28</a>
77
+ <a name='L29'></a><a href='#L29'>29</a>
78
+ <a name='L30'></a><a href='#L30'>30</a>
79
+ <a name='L31'></a><a href='#L31'>31</a>
80
+ <a name='L32'></a><a href='#L32'>32</a>
81
+ <a name='L33'></a><a href='#L33'>33</a>
82
+ <a name='L34'></a><a href='#L34'>34</a>
83
+ <a name='L35'></a><a href='#L35'>35</a>
84
+ <a name='L36'></a><a href='#L36'>36</a>
85
+ <a name='L37'></a><a href='#L37'>37</a>
86
+ <a name='L38'></a><a href='#L38'>38</a>
87
+ <a name='L39'></a><a href='#L39'>39</a>
88
+ <a name='L40'></a><a href='#L40'>40</a>
89
+ <a name='L41'></a><a href='#L41'>41</a>
90
+ <a name='L42'></a><a href='#L42'>42</a>
91
+ <a name='L43'></a><a href='#L43'>43</a>
92
+ <a name='L44'></a><a href='#L44'>44</a>
93
+ <a name='L45'></a><a href='#L45'>45</a>
94
+ <a name='L46'></a><a href='#L46'>46</a>
95
+ <a name='L47'></a><a href='#L47'>47</a>
96
+ <a name='L48'></a><a href='#L48'>48</a>
97
+ <a name='L49'></a><a href='#L49'>49</a>
98
+ <a name='L50'></a><a href='#L50'>50</a>
99
+ <a name='L51'></a><a href='#L51'>51</a>
100
+ <a name='L52'></a><a href='#L52'>52</a>
101
+ <a name='L53'></a><a href='#L53'>53</a>
102
+ <a name='L54'></a><a href='#L54'>54</a>
103
+ <a name='L55'></a><a href='#L55'>55</a>
104
+ <a name='L56'></a><a href='#L56'>56</a>
105
+ <a name='L57'></a><a href='#L57'>57</a>
106
+ <a name='L58'></a><a href='#L58'>58</a>
107
+ <a name='L59'></a><a href='#L59'>59</a>
108
+ <a name='L60'></a><a href='#L60'>60</a>
109
+ <a name='L61'></a><a href='#L61'>61</a>
110
+ <a name='L62'></a><a href='#L62'>62</a>
111
+ <a name='L63'></a><a href='#L63'>63</a>
112
+ <a name='L64'></a><a href='#L64'>64</a>
113
+ <a name='L65'></a><a href='#L65'>65</a>
114
+ <a name='L66'></a><a href='#L66'>66</a>
115
+ <a name='L67'></a><a href='#L67'>67</a>
116
+ <a name='L68'></a><a href='#L68'>68</a>
117
+ <a name='L69'></a><a href='#L69'>69</a>
118
+ <a name='L70'></a><a href='#L70'>70</a>
119
+ <a name='L71'></a><a href='#L71'>71</a>
120
+ <a name='L72'></a><a href='#L72'>72</a>
121
+ <a name='L73'></a><a href='#L73'>73</a>
122
+ <a name='L74'></a><a href='#L74'>74</a>
123
+ <a name='L75'></a><a href='#L75'>75</a>
124
+ <a name='L76'></a><a href='#L76'>76</a>
125
+ <a name='L77'></a><a href='#L77'>77</a>
126
+ <a name='L78'></a><a href='#L78'>78</a>
127
+ <a name='L79'></a><a href='#L79'>79</a>
128
+ <a name='L80'></a><a href='#L80'>80</a>
129
+ <a name='L81'></a><a href='#L81'>81</a>
130
+ <a name='L82'></a><a href='#L82'>82</a>
131
+ <a name='L83'></a><a href='#L83'>83</a>
132
+ <a name='L84'></a><a href='#L84'>84</a>
133
+ <a name='L85'></a><a href='#L85'>85</a>
134
+ <a name='L86'></a><a href='#L86'>86</a>
135
+ <a name='L87'></a><a href='#L87'>87</a>
136
+ <a name='L88'></a><a href='#L88'>88</a>
137
+ <a name='L89'></a><a href='#L89'>89</a>
138
+ <a name='L90'></a><a href='#L90'>90</a>
139
+ <a name='L91'></a><a href='#L91'>91</a>
140
+ <a name='L92'></a><a href='#L92'>92</a>
141
+ <a name='L93'></a><a href='#L93'>93</a>
142
+ <a name='L94'></a><a href='#L94'>94</a>
143
+ <a name='L95'></a><a href='#L95'>95</a>
144
+ <a name='L96'></a><a href='#L96'>96</a>
145
+ <a name='L97'></a><a href='#L97'>97</a>
146
+ <a name='L98'></a><a href='#L98'>98</a>
147
+ <a name='L99'></a><a href='#L99'>99</a>
148
+ <a name='L100'></a><a href='#L100'>100</a>
149
+ <a name='L101'></a><a href='#L101'>101</a>
150
+ <a name='L102'></a><a href='#L102'>102</a>
151
+ <a name='L103'></a><a href='#L103'>103</a>
152
+ <a name='L104'></a><a href='#L104'>104</a>
153
+ <a name='L105'></a><a href='#L105'>105</a>
154
+ <a name='L106'></a><a href='#L106'>106</a>
155
+ <a name='L107'></a><a href='#L107'>107</a>
156
+ <a name='L108'></a><a href='#L108'>108</a>
157
+ <a name='L109'></a><a href='#L109'>109</a>
158
+ <a name='L110'></a><a href='#L110'>110</a>
159
+ <a name='L111'></a><a href='#L111'>111</a>
160
+ <a name='L112'></a><a href='#L112'>112</a>
161
+ <a name='L113'></a><a href='#L113'>113</a>
162
+ <a name='L114'></a><a href='#L114'>114</a>
163
+ <a name='L115'></a><a href='#L115'>115</a>
164
+ <a name='L116'></a><a href='#L116'>116</a>
165
+ <a name='L117'></a><a href='#L117'>117</a>
166
+ <a name='L118'></a><a href='#L118'>118</a>
167
+ <a name='L119'></a><a href='#L119'>119</a>
168
+ <a name='L120'></a><a href='#L120'>120</a>
169
+ <a name='L121'></a><a href='#L121'>121</a>
170
+ <a name='L122'></a><a href='#L122'>122</a>
171
+ <a name='L123'></a><a href='#L123'>123</a>
172
+ <a name='L124'></a><a href='#L124'>124</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
173
+ <span class="cline-any cline-neutral">&nbsp;</span>
174
+ <span class="cline-any cline-neutral">&nbsp;</span>
175
+ <span class="cline-any cline-neutral">&nbsp;</span>
176
+ <span class="cline-any cline-neutral">&nbsp;</span>
177
+ <span class="cline-any cline-neutral">&nbsp;</span>
178
+ <span class="cline-any cline-neutral">&nbsp;</span>
179
+ <span class="cline-any cline-neutral">&nbsp;</span>
180
+ <span class="cline-any cline-neutral">&nbsp;</span>
181
+ <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-yes">17x</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-yes">17x</span>
193
+ <span class="cline-any cline-yes">17x</span>
194
+ <span class="cline-any cline-neutral">&nbsp;</span>
195
+ <span class="cline-any cline-yes">17x</span>
196
+ <span class="cline-any cline-yes">17x</span>
197
+ <span class="cline-any cline-yes">17x</span>
198
+ <span class="cline-any cline-neutral">&nbsp;</span>
199
+ <span class="cline-any cline-yes">17x</span>
200
+ <span class="cline-any cline-neutral">&nbsp;</span>
201
+ <span class="cline-any cline-yes">2395x</span>
202
+ <span class="cline-any cline-yes">17x</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-yes">1x</span>
209
+ <span class="cline-any cline-neutral">&nbsp;</span>
210
+ <span class="cline-any cline-yes">1x</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-yes">2395x</span>
215
+ <span class="cline-any cline-neutral">&nbsp;</span>
216
+ <span class="cline-any cline-neutral">&nbsp;</span>
217
+ <span class="cline-any cline-neutral">&nbsp;</span>
218
+ <span class="cline-any cline-yes">17x</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-yes">34x</span>
222
+ <span class="cline-any cline-yes">34x</span>
223
+ <span class="cline-any cline-yes">34x</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-neutral">&nbsp;</span>
228
+ <span class="cline-any cline-neutral">&nbsp;</span>
229
+ <span class="cline-any cline-neutral">&nbsp;</span>
230
+ <span class="cline-any cline-yes">17x</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-yes">113x</span>
235
+ <span class="cline-any cline-yes">113x</span>
236
+ <span class="cline-any cline-yes">113x</span>
237
+ <span class="cline-any cline-yes">113x</span>
238
+ <span class="cline-any cline-yes">113x</span>
239
+ <span class="cline-any cline-yes">226x</span>
240
+ <span class="cline-any cline-yes">226x</span>
241
+ <span class="cline-any cline-neutral">&nbsp;</span>
242
+ <span class="cline-any cline-yes">113x</span>
243
+ <span class="cline-any cline-yes">77x</span>
244
+ <span class="cline-any cline-neutral">&nbsp;</span>
245
+ <span class="cline-any cline-neutral">&nbsp;</span>
246
+ <span class="cline-any cline-yes">113x</span>
247
+ <span class="cline-any cline-neutral">&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-yes">17x</span>
251
+ <span class="cline-any cline-yes">6x</span>
252
+ <span class="cline-any cline-yes">6x</span>
253
+ <span class="cline-any cline-yes">6x</span>
254
+ <span class="cline-any cline-yes">12x</span>
255
+ <span class="cline-any cline-yes">12x</span>
256
+ <span class="cline-any cline-neutral">&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-yes">17x</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-neutral">&nbsp;</span>
268
+ <span class="cline-any cline-yes">184x</span>
269
+ <span class="cline-any cline-yes">184x</span>
270
+ <span class="cline-any cline-yes">184x</span>
271
+ <span class="cline-any cline-yes">184x</span>
272
+ <span class="cline-any cline-yes">184x</span>
273
+ <span class="cline-any cline-yes">184x</span>
274
+ <span class="cline-any cline-neutral">&nbsp;</span>
275
+ <span class="cline-any cline-yes">354x</span>
276
+ <span class="cline-any cline-yes">4x</span>
277
+ <span class="cline-any cline-neutral">&nbsp;</span>
278
+ <span class="cline-any cline-yes">352x</span>
279
+ <span class="cline-any cline-neutral">&nbsp;</span>
280
+ <span class="cline-any cline-yes">356x</span>
281
+ <span class="cline-any cline-neutral">&nbsp;</span>
282
+ <span class="cline-any cline-yes">178x</span>
283
+ <span class="cline-any cline-yes">18x</span>
284
+ <span class="cline-any cline-neutral">&nbsp;</span>
285
+ <span class="cline-any cline-neutral">&nbsp;</span>
286
+ <span class="cline-any cline-yes">178x</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-yes">17x</span>
290
+ <span class="cline-any cline-yes">2058x</span>
291
+ <span class="cline-any cline-yes">2058x</span>
292
+ <span class="cline-any cline-yes">4116x</span>
293
+ <span class="cline-any cline-yes">4116x</span>
294
+ <span class="cline-any cline-neutral">&nbsp;</span>
295
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">/**
296
+ * @license
297
+ * Copyright 2019 Google Inc.
298
+ *
299
+ * Licensed under the Apache License, Version 2.0 (the "License");
300
+ * you may not use this file except in compliance with the License.
301
+ * You may obtain a copy of the License at
302
+ *
303
+ * http://www.apache.org/licenses/LICENSE-2.0
304
+ *
305
+ * Unless required by applicable law or agreed to in writing, software
306
+ * distributed under the License is distributed on an "AS IS" BASIS,
307
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
308
+ * See the License for the specific language governing permissions and
309
+ * limitations under the License.
310
+ */
311
+ &nbsp;
312
+ import { DB, openDb } from 'idb';
313
+ import { AppConfig } from '../interfaces/app-config';
314
+ import { InstallationEntry } from '../interfaces/installation-entry';
315
+ import { getKey } from '../util/get-key';
316
+ import { fidChanged } from './fid-changed';
317
+ &nbsp;
318
+ const DATABASE_NAME = 'firebase-installations-database';
319
+ const DATABASE_VERSION = 1;
320
+ const OBJECT_STORE_NAME = 'firebase-installations-store';
321
+ &nbsp;
322
+ let dbPromise: Promise&lt;DB&gt; | null = null;
323
+ function getDbPromise(): Promise&lt;DB&gt; {
324
+ if (!dbPromise) {
325
+ dbPromise = openDb(DATABASE_NAME, DATABASE_VERSION, upgradeDB =&gt; {
326
+ // We don't use 'break' in this switch statement, the fall-through
327
+ // behavior is what we want, because if there are multiple versions between
328
+ // the old version and the current version, we want ALL the migrations
329
+ // that correspond to those versions to run, not only the last one.
330
+ // eslint-disable-next-line default-case
331
+ switch (upgradeDB.oldVersion) {
332
+ case 0:
333
+ upgradeDB.createObjectStore(OBJECT_STORE_NAME);
334
+ }
335
+ });
336
+ }
337
+ return dbPromise;
338
+ }
339
+ &nbsp;
340
+ /** Gets record(s) from the objectStore that match the given key. */
341
+ export async function get(
342
+ appConfig: AppConfig
343
+ ): Promise&lt;InstallationEntry | undefined&gt; {
344
+ const key = getKey(appConfig);
345
+ const db = await getDbPromise();
346
+ return db
347
+ .transaction(OBJECT_STORE_NAME)
348
+ .objectStore(OBJECT_STORE_NAME)
349
+ .get(key);
350
+ }
351
+ &nbsp;
352
+ /** Assigns or overwrites the record for the given key with the given value. */
353
+ export async function set&lt;ValueType extends InstallationEntry&gt;(
354
+ appConfig: AppConfig,
355
+ value: ValueType
356
+ ): Promise&lt;ValueType&gt; {
357
+ const key = getKey(appConfig);
358
+ const db = await getDbPromise();
359
+ const tx = db.transaction(OBJECT_STORE_NAME, 'readwrite');
360
+ const objectStore = tx.objectStore(OBJECT_STORE_NAME);
361
+ const oldValue = await objectStore.get(key);
362
+ await objectStore.put(value, key);
363
+ await tx.complete;
364
+ &nbsp;
365
+ if (!oldValue || oldValue.fid !== value.fid) {
366
+ fidChanged(appConfig, value.fid);
367
+ }
368
+ &nbsp;
369
+ return value;
370
+ }
371
+ &nbsp;
372
+ /** Removes record(s) from the objectStore that match the given key. */
373
+ export async function remove(appConfig: AppConfig): Promise&lt;void&gt; {
374
+ const key = getKey(appConfig);
375
+ const db = await getDbPromise();
376
+ const tx = db.transaction(OBJECT_STORE_NAME, 'readwrite');
377
+ await tx.objectStore(OBJECT_STORE_NAME).delete(key);
378
+ await tx.complete;
379
+ }
380
+ &nbsp;
381
+ /**
382
+ * Atomically updates a record with the result of updateFn, which gets
383
+ * called with the current value. If newValue is undefined, the record is
384
+ * deleted instead.
385
+ * @return Updated value
386
+ */
387
+ export async function update&lt;ValueType extends InstallationEntry | undefined&gt;(
388
+ appConfig: AppConfig,
389
+ updateFn: (previousValue: InstallationEntry | undefined) =&gt; ValueType
390
+ ): Promise&lt;ValueType&gt; {
391
+ const key = getKey(appConfig);
392
+ const db = await getDbPromise();
393
+ const tx = db.transaction(OBJECT_STORE_NAME, 'readwrite');
394
+ const store = tx.objectStore(OBJECT_STORE_NAME);
395
+ const oldValue: InstallationEntry | undefined = await store.get(key);
396
+ const newValue = updateFn(oldValue);
397
+ &nbsp;
398
+ if (newValue === undefined) {
399
+ await store.delete(key);
400
+ } else {
401
+ await store.put(newValue, key);
402
+ }
403
+ await tx.complete;
404
+ &nbsp;
405
+ if (newValue &amp;&amp; (!oldValue || oldValue.fid !== newValue.fid)) {
406
+ fidChanged(appConfig, newValue.fid);
407
+ }
408
+ &nbsp;
409
+ return newValue;
410
+ }
411
+ &nbsp;
412
+ export async function clear(): Promise&lt;void&gt; {
413
+ const db = await getDbPromise();
414
+ const tx = db.transaction(OBJECT_STORE_NAME, 'readwrite');
415
+ await tx.objectStore(OBJECT_STORE_NAME).clear();
416
+ await tx.complete;
417
+ }
418
+ &nbsp;</pre></td></tr>
419
+ </table></pre>
420
+ <div class='push'></div><!-- for sticky footer -->
421
+ </div><!-- /wrapper -->
422
+ <div class='footer quiet pad2 space-top1 center small'>
423
+ Code coverage
424
+ generated by <a href="https://istanbul.js.org/" target="_blank">istanbul</a> at Thu Apr 02 2020 14:32:08 GMT-0700 (Pacific Daylight Time)
425
+ </div>
426
+ </div>
427
+ <script src="../prettify.js"></script>
428
+ <script>
429
+ window.onload = function () {
430
+ if (typeof prettyPrint === 'function') {
431
+ prettyPrint();
432
+ }
433
+ };
434
+ </script>
435
+ <script src="../sorter.js"></script>
436
+ <script src="../block-navigation.js"></script>
437
+ </body>
438
+ </html>
@@ -0,0 +1,175 @@
1
+ <!doctype html>
2
+ <html lang="en">
3
+ <head>
4
+ <title>Code coverage report for helpers</title>
5
+ <meta charset="utf-8" />
6
+ <link rel="stylesheet" href="../prettify.css" />
7
+ <link rel="stylesheet" href="../base.css" />
8
+ <meta name="viewport" content="width=device-width, initial-scale=1">
9
+ <style type='text/css'>
10
+ .coverage-summary .sorter {
11
+ background-image: url(../sort-arrow-sprite.png);
12
+ }
13
+ </style>
14
+ </head>
15
+ <body>
16
+ <div class='wrapper'>
17
+ <div class='pad1'>
18
+ <h1>
19
+ <a href="../index.html">All files</a> helpers
20
+ </h1>
21
+ <div class='clearfix'>
22
+ <div class='fl pad1y space-right2'>
23
+ <span class="strong">97.21% </span>
24
+ <span class="quiet">Statements</span>
25
+ <span class='fraction'>244/251</span>
26
+ </div>
27
+ <div class='fl pad1y space-right2'>
28
+ <span class="strong">91.38% </span>
29
+ <span class="quiet">Branches</span>
30
+ <span class='fraction'>106/116</span>
31
+ </div>
32
+ <div class='fl pad1y space-right2'>
33
+ <span class="strong">100% </span>
34
+ <span class="quiet">Functions</span>
35
+ <span class='fraction'>41/41</span>
36
+ </div>
37
+ <div class='fl pad1y space-right2'>
38
+ <span class="strong">96.96% </span>
39
+ <span class="quiet">Lines</span>
40
+ <span class='fraction'>223/230</span>
41
+ </div>
42
+ </div>
43
+ <p class="quiet">
44
+ 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.
45
+ </p>
46
+ </div>
47
+ <div class='status-line high'></div>
48
+ <div class="pad1">
49
+ <table class="coverage-summary">
50
+ <thead>
51
+ <tr>
52
+ <th data-col="file" data-fmt="html" data-html="true" class="file">File</th>
53
+ <th data-col="pic" data-type="number" data-fmt="html" data-html="true" class="pic"></th>
54
+ <th data-col="statements" data-type="number" data-fmt="pct" class="pct">Statements</th>
55
+ <th data-col="statements_raw" data-type="number" data-fmt="html" class="abs"></th>
56
+ <th data-col="branches" data-type="number" data-fmt="pct" class="pct">Branches</th>
57
+ <th data-col="branches_raw" data-type="number" data-fmt="html" class="abs"></th>
58
+ <th data-col="functions" data-type="number" data-fmt="pct" class="pct">Functions</th>
59
+ <th data-col="functions_raw" data-type="number" data-fmt="html" class="abs"></th>
60
+ <th data-col="lines" data-type="number" data-fmt="pct" class="pct">Lines</th>
61
+ <th data-col="lines_raw" data-type="number" data-fmt="html" class="abs"></th>
62
+ </tr>
63
+ </thead>
64
+ <tbody><tr>
65
+ <td class="file high" data-value="buffer-to-base64-url-safe.ts"><a href="buffer-to-base64-url-safe.ts.html">buffer-to-base64-url-safe.ts</a></td>
66
+ <td data-value="100" class="pic high"><div class="chart"><div class="cover-fill cover-full" style="width: 100%;"></div><div class="cover-empty" style="width:0%;"></div></div></td>
67
+ <td data-value="100" class="pct high">100%</td>
68
+ <td data-value="3" class="abs high">3/3</td>
69
+ <td data-value="100" class="pct high">100%</td>
70
+ <td data-value="0" class="abs high">0/0</td>
71
+ <td data-value="100" class="pct high">100%</td>
72
+ <td data-value="1" class="abs high">1/1</td>
73
+ <td data-value="100" class="pct high">100%</td>
74
+ <td data-value="3" class="abs high">3/3</td>
75
+ </tr>
76
+
77
+ <tr>
78
+ <td class="file high" data-value="extract-app-config.ts"><a href="extract-app-config.ts.html">extract-app-config.ts</a></td>
79
+ <td data-value="100" class="pic high"><div class="chart"><div class="cover-fill cover-full" style="width: 100%;"></div><div class="cover-empty" style="width:0%;"></div></div></td>
80
+ <td data-value="100" class="pct high">100%</td>
81
+ <td data-value="13" class="abs high">13/13</td>
82
+ <td data-value="100" class="pct high">100%</td>
83
+ <td data-value="8" class="abs high">8/8</td>
84
+ <td data-value="100" class="pct high">100%</td>
85
+ <td data-value="2" class="abs high">2/2</td>
86
+ <td data-value="100" class="pct high">100%</td>
87
+ <td data-value="12" class="abs high">12/12</td>
88
+ </tr>
89
+
90
+ <tr>
91
+ <td class="file high" data-value="fid-changed.ts"><a href="fid-changed.ts.html">fid-changed.ts</a></td>
92
+ <td data-value="95.24" class="pic high"><div class="chart"><div class="cover-fill" style="width: 95%;"></div><div class="cover-empty" style="width:5%;"></div></div></td>
93
+ <td data-value="95.24" class="pct high">95.24%</td>
94
+ <td data-value="42" class="abs high">40/42</td>
95
+ <td data-value="83.33" class="pct high">83.33%</td>
96
+ <td data-value="18" class="abs high">15/18</td>
97
+ <td data-value="100" class="pct high">100%</td>
98
+ <td data-value="8" class="abs high">8/8</td>
99
+ <td data-value="95.12" class="pct high">95.12%</td>
100
+ <td data-value="41" class="abs high">39/41</td>
101
+ </tr>
102
+
103
+ <tr>
104
+ <td class="file high" data-value="generate-fid.ts"><a href="generate-fid.ts.html">generate-fid.ts</a></td>
105
+ <td data-value="100" class="pic high"><div class="chart"><div class="cover-fill cover-full" style="width: 100%;"></div><div class="cover-empty" style="width:0%;"></div></div></td>
106
+ <td data-value="100" class="pct high">100%</td>
107
+ <td data-value="14" class="abs high">14/14</td>
108
+ <td data-value="50" class="pct medium">50%</td>
109
+ <td data-value="4" class="abs medium">2/4</td>
110
+ <td data-value="100" class="pct high">100%</td>
111
+ <td data-value="2" class="abs high">2/2</td>
112
+ <td data-value="100" class="pct high">100%</td>
113
+ <td data-value="14" class="abs high">14/14</td>
114
+ </tr>
115
+
116
+ <tr>
117
+ <td class="file high" data-value="get-installation-entry.ts"><a href="get-installation-entry.ts.html">get-installation-entry.ts</a></td>
118
+ <td data-value="96.55" class="pic high"><div class="chart"><div class="cover-fill" style="width: 96%;"></div><div class="cover-empty" style="width:4%;"></div></div></td>
119
+ <td data-value="96.55" class="pct high">96.55%</td>
120
+ <td data-value="58" class="abs high">56/58</td>
121
+ <td data-value="93.55" class="pct high">93.55%</td>
122
+ <td data-value="31" class="abs high">29/31</td>
123
+ <td data-value="100" class="pct high">100%</td>
124
+ <td data-value="10" class="abs high">10/10</td>
125
+ <td data-value="96.15" class="pct high">96.15%</td>
126
+ <td data-value="52" class="abs high">50/52</td>
127
+ </tr>
128
+
129
+ <tr>
130
+ <td class="file high" data-value="idb-manager.ts"><a href="idb-manager.ts.html">idb-manager.ts</a></td>
131
+ <td data-value="100" class="pic high"><div class="chart"><div class="cover-fill cover-full" style="width: 100%;"></div><div class="cover-empty" style="width:0%;"></div></div></td>
132
+ <td data-value="100" class="pct high">100%</td>
133
+ <td data-value="59" class="abs high">59/59</td>
134
+ <td data-value="100" class="pct high">100%</td>
135
+ <td data-value="17" class="abs high">17/17</td>
136
+ <td data-value="100" class="pct high">100%</td>
137
+ <td data-value="7" class="abs high">7/7</td>
138
+ <td data-value="100" class="pct high">100%</td>
139
+ <td data-value="52" class="abs high">52/52</td>
140
+ </tr>
141
+
142
+ <tr>
143
+ <td class="file high" data-value="refresh-auth-token.ts"><a href="refresh-auth-token.ts.html">refresh-auth-token.ts</a></td>
144
+ <td data-value="95.16" class="pic high"><div class="chart"><div class="cover-fill" style="width: 95%;"></div><div class="cover-empty" style="width:5%;"></div></div></td>
145
+ <td data-value="95.16" class="pct high">95.16%</td>
146
+ <td data-value="62" class="abs high">59/62</td>
147
+ <td data-value="92.11" class="pct high">92.11%</td>
148
+ <td data-value="38" class="abs high">35/38</td>
149
+ <td data-value="100" class="pct high">100%</td>
150
+ <td data-value="11" class="abs high">11/11</td>
151
+ <td data-value="94.64" class="pct high">94.64%</td>
152
+ <td data-value="56" class="abs high">53/56</td>
153
+ </tr>
154
+
155
+ </tbody>
156
+ </table>
157
+ </div><div class='push'></div><!-- for sticky footer -->
158
+ </div><!-- /wrapper -->
159
+ <div class='footer quiet pad2 space-top1 center small'>
160
+ Code coverage
161
+ generated by <a href="https://istanbul.js.org/" target="_blank">istanbul</a> at Thu Apr 02 2020 14:32:08 GMT-0700 (Pacific Daylight Time)
162
+ </div>
163
+ </div>
164
+ <script src="../prettify.js"></script>
165
+ <script>
166
+ window.onload = function () {
167
+ if (typeof prettyPrint === 'function') {
168
+ prettyPrint();
169
+ }
170
+ };
171
+ </script>
172
+ <script src="../sorter.js"></script>
173
+ <script src="../block-navigation.js"></script>
174
+ </body>
175
+ </html>