exframe-cache-manager 1.2.1 → 1.3.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.
Files changed (51) hide show
  1. package/Dockerfile +1 -0
  2. package/docker-compose.yml +1 -0
  3. package/index.js +3 -4
  4. package/package.json +16 -10
  5. package/.scannerwork/.sonar_lock +0 -0
  6. package/.scannerwork/report-task.txt +0 -7
  7. package/.scannerwork/ucfg2/js/_home_ubuntu__jenkins_workspace_NPM_exframe_cache_manager_master_src_bitbucket_org_exzeo_usa_exframe_cache_manager_index_js_1_1_P1_ENTRY.ucfg +0 -0
  8. package/.scannerwork/ucfg2/js/index_js_101_10_FE_6_0.ucfg +0 -0
  9. package/.scannerwork/ucfg2/js/index_js_102_14_promiseResolvePromise_1.ucfg +0 -0
  10. package/.scannerwork/ucfg2/js/index_js_102_26_A_6_res.ucfg +0 -0
  11. package/.scannerwork/ucfg2/js/index_js_107_14_FE_7_0.ucfg +0 -0
  12. package/.scannerwork/ucfg2/js/index_js_108_14_promiseResolvePromise_2.ucfg +0 -0
  13. package/.scannerwork/ucfg2/js/index_js_108_26_A_7_res_rej.ucfg +0 -0
  14. package/.scannerwork/ucfg2/js/index_js_109_34_A_8_con_cli.ucfg +0 -0
  15. package/.scannerwork/ucfg2/js/index_js_120_32_A_9_0.ucfg +0 -0
  16. package/.scannerwork/ucfg2/js/index_js_125_32_A_10_0.ucfg +0 -0
  17. package/.scannerwork/ucfg2/js/index_js_137_31_FE_8_fn.ucfg +0 -0
  18. package/.scannerwork/ucfg2/js/index_js_158_15_FE_9_con_pat.ucfg +0 -0
  19. package/.scannerwork/ucfg2/js/index_js_159_40_A_11_cli.ucfg +0 -0
  20. package/.scannerwork/ucfg2/js/index_js_15_1_FD_0_cachemanager.ucfg +0 -0
  21. package/.scannerwork/ucfg2/js/index_js_182_33_A_12_key.ucfg +0 -0
  22. package/.scannerwork/ucfg2/js/index_js_41_12_FE_0_key.ucfg +0 -0
  23. package/.scannerwork/ucfg2/js/index_js_53_18_FE_1_key_val_ttl.ucfg +0 -0
  24. package/.scannerwork/ucfg2/js/index_js_66_15_FE_2_key_val.ucfg +0 -0
  25. package/.scannerwork/ucfg2/js/index_js_67_40_A_0_cli.ucfg +0 -0
  26. package/.scannerwork/ucfg2/js/index_js_75_18_FE_3_key_val.ucfg +0 -0
  27. package/.scannerwork/ucfg2/js/index_js_76_40_A_1_cli.ucfg +0 -0
  28. package/.scannerwork/ucfg2/js/index_js_85_16_FE_4_key_val.ucfg +0 -0
  29. package/.scannerwork/ucfg2/js/index_js_86_40_A_2_cli.ucfg +0 -0
  30. package/.scannerwork/ucfg2/js/index_js_86_56_promiseResolvePromise_0.ucfg +0 -0
  31. package/.scannerwork/ucfg2/js/index_js_86_68_A_3_res_rej.ucfg +0 -0
  32. package/.scannerwork/ucfg2/js/index_js_87_38_A_4_ex_res.ucfg +0 -0
  33. package/.scannerwork/ucfg2/js/index_js_97_22_FE_5_0.ucfg +0 -0
  34. package/.scannerwork/ucfg2/js/index_js_98_40_A_5_cli.ucfg +0 -0
  35. package/Jenkinsfile +0 -2
  36. package/Makefile +0 -4
  37. package/audit.json +0 -10
  38. package/documentation/coverage/6217a6b9-772a-4f00-9d31-93bcdd2c5d92.json +0 -1
  39. package/documentation/coverage/lcov-report/base.css +0 -224
  40. package/documentation/coverage/lcov-report/block-navigation.js +0 -79
  41. package/documentation/coverage/lcov-report/favicon.png +0 -0
  42. package/documentation/coverage/lcov-report/index.html +0 -111
  43. package/documentation/coverage/lcov-report/index.js.html +0 -707
  44. package/documentation/coverage/lcov-report/prettify.css +0 -1
  45. package/documentation/coverage/lcov-report/prettify.js +0 -2
  46. package/documentation/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  47. package/documentation/coverage/lcov-report/sorter.js +0 -170
  48. package/documentation/coverage/lcov.info +0 -135
  49. package/documentation/coverage/processinfo/6217a6b9-772a-4f00-9d31-93bcdd2c5d92.json +0 -1
  50. package/documentation/coverage/processinfo/index.json +0 -1
  51. package/junit/0575131b-3393-4268-9ea2-22ea818e831b.xml +0 -27
@@ -1,707 +0,0 @@
1
-
2
- <!doctype html>
3
- <html lang="en">
4
-
5
- <head>
6
- <title>Code coverage report for index.js</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> index.js</h1>
23
- <div class='clearfix'>
24
-
25
- <div class='fl pad1y space-right2'>
26
- <span class="strong">84.61% </span>
27
- <span class="quiet">Statements</span>
28
- <span class='fraction'>55/65</span>
29
- </div>
30
-
31
-
32
- <div class='fl pad1y space-right2'>
33
- <span class="strong">72.22% </span>
34
- <span class="quiet">Branches</span>
35
- <span class='fraction'>13/18</span>
36
- </div>
37
-
38
-
39
- <div class='fl pad1y space-right2'>
40
- <span class="strong">91.66% </span>
41
- <span class="quiet">Functions</span>
42
- <span class='fraction'>22/24</span>
43
- </div>
44
-
45
-
46
- <div class='fl pad1y space-right2'>
47
- <span class="strong">85% </span>
48
- <span class="quiet">Lines</span>
49
- <span class='fraction'>51/60</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>
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>
182
- <a name='L123'></a><a href='#L123'>123</a>
183
- <a name='L124'></a><a href='#L124'>124</a>
184
- <a name='L125'></a><a href='#L125'>125</a>
185
- <a name='L126'></a><a href='#L126'>126</a>
186
- <a name='L127'></a><a href='#L127'>127</a>
187
- <a name='L128'></a><a href='#L128'>128</a>
188
- <a name='L129'></a><a href='#L129'>129</a>
189
- <a name='L130'></a><a href='#L130'>130</a>
190
- <a name='L131'></a><a href='#L131'>131</a>
191
- <a name='L132'></a><a href='#L132'>132</a>
192
- <a name='L133'></a><a href='#L133'>133</a>
193
- <a name='L134'></a><a href='#L134'>134</a>
194
- <a name='L135'></a><a href='#L135'>135</a>
195
- <a name='L136'></a><a href='#L136'>136</a>
196
- <a name='L137'></a><a href='#L137'>137</a>
197
- <a name='L138'></a><a href='#L138'>138</a>
198
- <a name='L139'></a><a href='#L139'>139</a>
199
- <a name='L140'></a><a href='#L140'>140</a>
200
- <a name='L141'></a><a href='#L141'>141</a>
201
- <a name='L142'></a><a href='#L142'>142</a>
202
- <a name='L143'></a><a href='#L143'>143</a>
203
- <a name='L144'></a><a href='#L144'>144</a>
204
- <a name='L145'></a><a href='#L145'>145</a>
205
- <a name='L146'></a><a href='#L146'>146</a>
206
- <a name='L147'></a><a href='#L147'>147</a>
207
- <a name='L148'></a><a href='#L148'>148</a>
208
- <a name='L149'></a><a href='#L149'>149</a>
209
- <a name='L150'></a><a href='#L150'>150</a>
210
- <a name='L151'></a><a href='#L151'>151</a>
211
- <a name='L152'></a><a href='#L152'>152</a>
212
- <a name='L153'></a><a href='#L153'>153</a>
213
- <a name='L154'></a><a href='#L154'>154</a>
214
- <a name='L155'></a><a href='#L155'>155</a>
215
- <a name='L156'></a><a href='#L156'>156</a>
216
- <a name='L157'></a><a href='#L157'>157</a>
217
- <a name='L158'></a><a href='#L158'>158</a>
218
- <a name='L159'></a><a href='#L159'>159</a>
219
- <a name='L160'></a><a href='#L160'>160</a>
220
- <a name='L161'></a><a href='#L161'>161</a>
221
- <a name='L162'></a><a href='#L162'>162</a>
222
- <a name='L163'></a><a href='#L163'>163</a>
223
- <a name='L164'></a><a href='#L164'>164</a>
224
- <a name='L165'></a><a href='#L165'>165</a>
225
- <a name='L166'></a><a href='#L166'>166</a>
226
- <a name='L167'></a><a href='#L167'>167</a>
227
- <a name='L168'></a><a href='#L168'>168</a>
228
- <a name='L169'></a><a href='#L169'>169</a>
229
- <a name='L170'></a><a href='#L170'>170</a>
230
- <a name='L171'></a><a href='#L171'>171</a>
231
- <a name='L172'></a><a href='#L172'>172</a>
232
- <a name='L173'></a><a href='#L173'>173</a>
233
- <a name='L174'></a><a href='#L174'>174</a>
234
- <a name='L175'></a><a href='#L175'>175</a>
235
- <a name='L176'></a><a href='#L176'>176</a>
236
- <a name='L177'></a><a href='#L177'>177</a>
237
- <a name='L178'></a><a href='#L178'>178</a>
238
- <a name='L179'></a><a href='#L179'>179</a>
239
- <a name='L180'></a><a href='#L180'>180</a>
240
- <a name='L181'></a><a href='#L181'>181</a>
241
- <a name='L182'></a><a href='#L182'>182</a>
242
- <a name='L183'></a><a href='#L183'>183</a>
243
- <a name='L184'></a><a href='#L184'>184</a>
244
- <a name='L185'></a><a href='#L185'>185</a>
245
- <a name='L186'></a><a href='#L186'>186</a>
246
- <a name='L187'></a><a href='#L187'>187</a>
247
- <a name='L188'></a><a href='#L188'>188</a>
248
- <a name='L189'></a><a href='#L189'>189</a>
249
- <a name='L190'></a><a href='#L190'>190</a>
250
- <a name='L191'></a><a href='#L191'>191</a>
251
- <a name='L192'></a><a href='#L192'>192</a>
252
- <a name='L193'></a><a href='#L193'>193</a>
253
- <a name='L194'></a><a href='#L194'>194</a>
254
- <a name='L195'></a><a href='#L195'>195</a>
255
- <a name='L196'></a><a href='#L196'>196</a>
256
- <a name='L197'></a><a href='#L197'>197</a>
257
- <a name='L198'></a><a href='#L198'>198</a>
258
- <a name='L199'></a><a href='#L199'>199</a>
259
- <a name='L200'></a><a href='#L200'>200</a>
260
- <a name='L201'></a><a href='#L201'>201</a>
261
- <a name='L202'></a><a href='#L202'>202</a>
262
- <a name='L203'></a><a href='#L203'>203</a>
263
- <a name='L204'></a><a href='#L204'>204</a>
264
- <a name='L205'></a><a href='#L205'>205</a>
265
- <a name='L206'></a><a href='#L206'>206</a>
266
- <a name='L207'></a><a href='#L207'>207</a>
267
- <a name='L208'></a><a href='#L208'>208</a>
268
- <a name='L209'></a><a href='#L209'>209</a>
269
- <a name='L210'></a><a href='#L210'>210</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
270
- <span class="cline-any cline-neutral">&nbsp;</span>
271
- <span class="cline-any cline-yes">1x</span>
272
- <span class="cline-any cline-yes">1x</span>
273
- <span class="cline-any cline-yes">1x</span>
274
- <span class="cline-any cline-yes">1x</span>
275
- <span class="cline-any cline-neutral">&nbsp;</span>
276
- <span class="cline-any cline-yes">1x</span>
277
- <span class="cline-any cline-neutral">&nbsp;</span>
278
- <span class="cline-any cline-neutral">&nbsp;</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">2x</span>
285
- <span class="cline-any cline-no">&nbsp;</span>
286
- <span class="cline-any cline-no">&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-yes">2x</span>
290
- <span class="cline-any cline-neutral">&nbsp;</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-neutral">&nbsp;</span>
294
- <span class="cline-any cline-neutral">&nbsp;</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-yes">2x</span>
298
- <span class="cline-any cline-neutral">&nbsp;</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-yes">2x</span>
302
- <span class="cline-any cline-yes">2x</span>
303
- <span class="cline-any cline-neutral">&nbsp;</span>
304
- <span class="cline-any cline-yes">2x</span>
305
- <span class="cline-any cline-neutral">&nbsp;</span>
306
- <span class="cline-any cline-neutral">&nbsp;</span>
307
- <span class="cline-any cline-neutral">&nbsp;</span>
308
- <span class="cline-any cline-neutral">&nbsp;</span>
309
- <span class="cline-any cline-neutral">&nbsp;</span>
310
- <span class="cline-any cline-yes">4x</span>
311
- <span class="cline-any cline-neutral">&nbsp;</span>
312
- <span class="cline-any cline-neutral">&nbsp;</span>
313
- <span class="cline-any cline-neutral">&nbsp;</span>
314
- <span class="cline-any cline-neutral">&nbsp;</span>
315
- <span class="cline-any cline-neutral">&nbsp;</span>
316
- <span class="cline-any cline-neutral">&nbsp;</span>
317
- <span class="cline-any cline-neutral">&nbsp;</span>
318
- <span class="cline-any cline-neutral">&nbsp;</span>
319
- <span class="cline-any cline-neutral">&nbsp;</span>
320
- <span class="cline-any cline-neutral">&nbsp;</span>
321
- <span class="cline-any cline-neutral">&nbsp;</span>
322
- <span class="cline-any cline-yes">3x</span>
323
- <span class="cline-any cline-neutral">&nbsp;</span>
324
- <span class="cline-any cline-neutral">&nbsp;</span>
325
- <span class="cline-any cline-neutral">&nbsp;</span>
326
- <span class="cline-any cline-yes">3x</span>
327
- <span class="cline-any cline-neutral">&nbsp;</span>
328
- <span class="cline-any cline-neutral">&nbsp;</span>
329
- <span class="cline-any cline-neutral">&nbsp;</span>
330
- <span class="cline-any cline-neutral">&nbsp;</span>
331
- <span class="cline-any cline-neutral">&nbsp;</span>
332
- <span class="cline-any cline-neutral">&nbsp;</span>
333
- <span class="cline-any cline-neutral">&nbsp;</span>
334
- <span class="cline-any cline-neutral">&nbsp;</span>
335
- <span class="cline-any cline-yes">3x</span>
336
- <span class="cline-any cline-neutral">&nbsp;</span>
337
- <span class="cline-any cline-neutral">&nbsp;</span>
338
- <span class="cline-any cline-neutral">&nbsp;</span>
339
- <span class="cline-any cline-neutral">&nbsp;</span>
340
- <span class="cline-any cline-neutral">&nbsp;</span>
341
- <span class="cline-any cline-neutral">&nbsp;</span>
342
- <span class="cline-any cline-neutral">&nbsp;</span>
343
- <span class="cline-any cline-neutral">&nbsp;</span>
344
- <span class="cline-any cline-yes">1x</span>
345
- <span class="cline-any cline-neutral">&nbsp;</span>
346
- <span class="cline-any cline-neutral">&nbsp;</span>
347
- <span class="cline-any cline-neutral">&nbsp;</span>
348
- <span class="cline-any cline-neutral">&nbsp;</span>
349
- <span class="cline-any cline-neutral">&nbsp;</span>
350
- <span class="cline-any cline-neutral">&nbsp;</span>
351
- <span class="cline-any cline-neutral">&nbsp;</span>
352
- <span class="cline-any cline-neutral">&nbsp;</span>
353
- <span class="cline-any cline-neutral">&nbsp;</span>
354
- <span class="cline-any cline-yes">5x</span>
355
- <span class="cline-any cline-yes">5x</span>
356
- <span class="cline-any cline-yes">5x</span>
357
- <span class="cline-any cline-yes">5x</span>
358
- <span class="cline-any cline-neutral">&nbsp;</span>
359
- <span class="cline-any cline-neutral">&nbsp;</span>
360
- <span class="cline-any cline-neutral">&nbsp;</span>
361
- <span class="cline-any cline-neutral">&nbsp;</span>
362
- <span class="cline-any cline-neutral">&nbsp;</span>
363
- <span class="cline-any cline-neutral">&nbsp;</span>
364
- <span class="cline-any cline-neutral">&nbsp;</span>
365
- <span class="cline-any cline-neutral">&nbsp;</span>
366
- <span class="cline-any cline-yes">1x</span>
367
- <span class="cline-any cline-neutral">&nbsp;</span>
368
- <span class="cline-any cline-neutral">&nbsp;</span>
369
- <span class="cline-any cline-neutral">&nbsp;</span>
370
- <span class="cline-any cline-yes">1x</span>
371
- <span class="cline-any cline-yes">1x</span>
372
- <span class="cline-any cline-neutral">&nbsp;</span>
373
- <span class="cline-any cline-neutral">&nbsp;</span>
374
- <span class="cline-any cline-neutral">&nbsp;</span>
375
- <span class="cline-any cline-neutral">&nbsp;</span>
376
- <span class="cline-any cline-yes">16x</span>
377
- <span class="cline-any cline-yes">16x</span>
378
- <span class="cline-any cline-neutral">&nbsp;</span>
379
- <span class="cline-any cline-neutral">&nbsp;</span>
380
- <span class="cline-any cline-yes">16x</span>
381
- <span class="cline-any cline-no">&nbsp;</span>
382
- <span class="cline-any cline-neutral">&nbsp;</span>
383
- <span class="cline-any cline-neutral">&nbsp;</span>
384
- <span class="cline-any cline-yes">16x</span>
385
- <span class="cline-any cline-yes">16x</span>
386
- <span class="cline-any cline-neutral">&nbsp;</span>
387
- <span class="cline-any cline-neutral">&nbsp;</span>
388
- <span class="cline-any cline-no">&nbsp;</span>
389
- <span class="cline-any cline-no">&nbsp;</span>
390
- <span class="cline-any cline-no">&nbsp;</span>
391
- <span class="cline-any cline-neutral">&nbsp;</span>
392
- <span class="cline-any cline-neutral">&nbsp;</span>
393
- <span class="cline-any cline-no">&nbsp;</span>
394
- <span class="cline-any cline-no">&nbsp;</span>
395
- <span class="cline-any cline-no">&nbsp;</span>
396
- <span class="cline-any cline-neutral">&nbsp;</span>
397
- <span class="cline-any cline-neutral">&nbsp;</span>
398
- <span class="cline-any cline-neutral">&nbsp;</span>
399
- <span class="cline-any cline-neutral">&nbsp;</span>
400
- <span class="cline-any cline-neutral">&nbsp;</span>
401
- <span class="cline-any cline-neutral">&nbsp;</span>
402
- <span class="cline-any cline-neutral">&nbsp;</span>
403
- <span class="cline-any cline-neutral">&nbsp;</span>
404
- <span class="cline-any cline-neutral">&nbsp;</span>
405
- <span class="cline-any cline-neutral">&nbsp;</span>
406
- <span class="cline-any cline-neutral">&nbsp;</span>
407
- <span class="cline-any cline-neutral">&nbsp;</span>
408
- <span class="cline-any cline-neutral">&nbsp;</span>
409
- <span class="cline-any cline-yes">16x</span>
410
- <span class="cline-any cline-yes">16x</span>
411
- <span class="cline-any cline-yes">16x</span>
412
- <span class="cline-any cline-neutral">&nbsp;</span>
413
- <span class="cline-any cline-yes">16x</span>
414
- <span class="cline-any cline-yes">16x</span>
415
- <span class="cline-any cline-neutral">&nbsp;</span>
416
- <span class="cline-any cline-neutral">&nbsp;</span>
417
- <span class="cline-any cline-neutral">&nbsp;</span>
418
- <span class="cline-any cline-yes">16x</span>
419
- <span class="cline-any cline-neutral">&nbsp;</span>
420
- <span class="cline-any cline-neutral">&nbsp;</span>
421
- <span class="cline-any cline-neutral">&nbsp;</span>
422
- <span class="cline-any cline-neutral">&nbsp;</span>
423
- <span class="cline-any cline-neutral">&nbsp;</span>
424
- <span class="cline-any cline-neutral">&nbsp;</span>
425
- <span class="cline-any cline-neutral">&nbsp;</span>
426
- <span class="cline-any cline-neutral">&nbsp;</span>
427
- <span class="cline-any cline-yes">6x</span>
428
- <span class="cline-any cline-yes">6x</span>
429
- <span class="cline-any cline-yes">6x</span>
430
- <span class="cline-any cline-yes">6x</span>
431
- <span class="cline-any cline-yes">6x</span>
432
- <span class="cline-any cline-neutral">&nbsp;</span>
433
- <span class="cline-any cline-yes">6x</span>
434
- <span class="cline-any cline-yes">6x</span>
435
- <span class="cline-any cline-yes">6x</span>
436
- <span class="cline-any cline-yes">6x</span>
437
- <span class="cline-any cline-neutral">&nbsp;</span>
438
- <span class="cline-any cline-neutral">&nbsp;</span>
439
- <span class="cline-any cline-yes">6x</span>
440
- <span class="cline-any cline-yes">1x</span>
441
- <span class="cline-any cline-neutral">&nbsp;</span>
442
- <span class="cline-any cline-neutral">&nbsp;</span>
443
- <span class="cline-any cline-yes">5x</span>
444
- <span class="cline-any cline-neutral">&nbsp;</span>
445
- <span class="cline-any cline-neutral">&nbsp;</span>
446
- <span class="cline-any cline-neutral">&nbsp;</span>
447
- <span class="cline-any cline-neutral">&nbsp;</span>
448
- <span class="cline-any cline-neutral">&nbsp;</span>
449
- <span class="cline-any cline-neutral">&nbsp;</span>
450
- <span class="cline-any cline-yes">2x</span>
451
- <span class="cline-any cline-yes">22x</span>
452
- <span class="cline-any cline-yes">20x</span>
453
- <span class="cline-any cline-neutral">&nbsp;</span>
454
- <span class="cline-any cline-neutral">&nbsp;</span>
455
- <span class="cline-any cline-neutral">&nbsp;</span>
456
- <span class="cline-any cline-yes">2x</span>
457
- <span class="cline-any cline-neutral">&nbsp;</span>
458
- <span class="cline-any cline-neutral">&nbsp;</span>
459
- <span class="cline-any cline-yes">1x</span>
460
- <span class="cline-any cline-neutral">&nbsp;</span>
461
- <span class="cline-any cline-neutral">&nbsp;</span>
462
- <span class="cline-any cline-neutral">&nbsp;</span>
463
- <span class="cline-any cline-neutral">&nbsp;</span>
464
- <span class="cline-any cline-neutral">&nbsp;</span>
465
- <span class="cline-any cline-neutral">&nbsp;</span>
466
- <span class="cline-any cline-neutral">&nbsp;</span>
467
- <span class="cline-any cline-neutral">&nbsp;</span>
468
- <span class="cline-any cline-neutral">&nbsp;</span>
469
- <span class="cline-any cline-neutral">&nbsp;</span>
470
- <span class="cline-any cline-neutral">&nbsp;</span>
471
- <span class="cline-any cline-neutral">&nbsp;</span>
472
- <span class="cline-any cline-neutral">&nbsp;</span>
473
- <span class="cline-any cline-neutral">&nbsp;</span>
474
- <span class="cline-any cline-neutral">&nbsp;</span>
475
- <span class="cline-any cline-neutral">&nbsp;</span>
476
- <span class="cline-any cline-neutral">&nbsp;</span>
477
- <span class="cline-any cline-neutral">&nbsp;</span>
478
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">'use strict';
479
- &nbsp;
480
- const CacheManager = require('cache-manager');
481
- const RedisStore = require('cache-manager-redis');
482
- const util = require('util');
483
- const { lazyInstrument } = require('exframe-metrics');
484
- &nbsp;
485
- const db = 0;
486
- &nbsp;
487
- /**
488
- * Cache manager for storing stuff.
489
- * Options is required to pass the redis location
490
- * @param {Options} options
491
- */
492
- function cachemanager(options) {
493
- <span class="missing-if-branch" title="if path not taken" >I</span>if (options.url) {
494
- <span class="cstat-no" title="statement not covered" > options.host = undefined;</span>
495
- <span class="cstat-no" title="statement not covered" > options.port = undefined;</span>
496
- }
497
- &nbsp;
498
- const redisCache = CacheManager.caching({
499
- store: RedisStore,
500
- ttl: 600,
501
- db,
502
- ...options
503
- });
504
- &nbsp;
505
- // @ts-ignore
506
- const redisStore = redisCache.store;
507
- &nbsp;
508
- // need to expose the store's connection pool after it's created by the cache manager as it does not seem to have a way to pass it in
509
- // if we use something besides redis, we'll have to tackle this differently
510
- const cacheStorePool = Object.assign(redisStore._pool, { db });
511
- cacheStorePool.setMaxListeners(0);
512
- &nbsp;
513
- const instance = {
514
- /**
515
- *
516
- * @param {string} key
517
- */
518
- getItem(key) {
519
- return redisCache.get(key);
520
- },
521
- &nbsp;
522
- /**
523
- *
524
- * @template T
525
- * @param {string} key
526
- * @param {T} value
527
- * @param {number} [ttl]
528
- * @returns {Promise&lt;T&gt;}
529
- */
530
- async setItem(key, value, ttl) {
531
- await redisCache.set(key, value, {
532
- ttl: ttl || Number(process.env.REDIS_CACHE_TTL)
533
- });
534
- &nbsp;
535
- return value;
536
- },
537
- &nbsp;
538
- /**
539
- *
540
- * @param {string} key
541
- * @param {any} value
542
- */
543
- addSetItem(key, value) {
544
- return this.processRedisCommands(client =&gt; client.sadd(key, value));
545
- },
546
- &nbsp;
547
- /**
548
- *
549
- * @param {string} key
550
- * @param {any} value
551
- */
552
- removeSetItem(key, value) {
553
- return this.processRedisCommands(client =&gt; client.srem(key, value));
554
- },
555
- &nbsp;
556
- /**
557
- *
558
- * @param {string} key
559
- * @param {any} value
560
- * @returns {Promise&lt;Boolean&gt;}
561
- */
562
- isSetMember(key, value) {
563
- return this.processRedisCommands(async client =&gt; new Promise((res, rej) =&gt; {
564
- client.sismember(key, value, (ex, result) =&gt; {
565
- <span class="missing-if-branch" title="if path not taken" >I</span>if (ex) <span class="cstat-no" title="statement not covered" >return rej(ex);</span>
566
- res(result === 1);
567
- });
568
- }));
569
- },
570
- &nbsp;
571
- /**
572
- * @returns {Promise&lt;true&gt;}
573
- */
574
- async healthCheck() {
575
- return this.processRedisCommands(client =&gt; client &amp;&amp; client.server_info.loading === '0');
576
- },
577
- &nbsp;
578
- close() {
579
- return new Promise(res =&gt; {
580
- cacheStorePool.drain(res);
581
- });
582
- },
583
- &nbsp;
584
- getClient() {
585
- return new Promise((resolve, reject) =&gt; {
586
- cacheStorePool.acquireDb(async (connError, client) =&gt; {
587
- let timeout;
588
- &nbsp;
589
- <span class="missing-if-branch" title="if path not taken" >I</span>if (connError) {
590
- <span class="cstat-no" title="statement not covered" > return reject(connError);</span>
591
- }
592
- &nbsp;
593
- <span class="missing-if-branch" title="else path not taken" >E</span>if (client.connected) {
594
- return resolve(client);
595
- }
596
- &nbsp;
597
- <span class="cstat-no" title="statement not covered" > client.once('ready', <span class="fstat-no" title="function not covered" >()</span> =&gt; {</span>
598
- <span class="cstat-no" title="statement not covered" > clearTimeout(timeout);</span>
599
- <span class="cstat-no" title="statement not covered" > resolve(client);</span>
600
- });
601
- &nbsp;
602
- <span class="cstat-no" title="statement not covered" > timeout = setTimeout(<span class="fstat-no" title="function not covered" >()</span> =&gt; {</span>
603
- <span class="cstat-no" title="statement not covered" > cacheStorePool.release(client);</span>
604
- <span class="cstat-no" title="statement not covered" > reject(new Error('Timeout waiting for redis client connection'));</span>
605
- }, 10000);
606
- }, db);
607
- });
608
- },
609
- &nbsp;
610
- /**
611
- *
612
- * @param {(client: any) =&gt; any} fn
613
- */
614
- async processRedisCommands(fn) {
615
- let client;
616
- let result;
617
- &nbsp;
618
- try {
619
- client = await this.getClient();
620
- result = await fn(client);
621
- } finally {
622
- <span class="missing-if-branch" title="else path not taken" >E</span>if (client) {
623
- cacheStorePool.release(client);
624
- }
625
- }
626
- &nbsp;
627
- return result;
628
- },
629
- &nbsp;
630
- /**
631
- *
632
- * @param {Context} context
633
- * @param {string | RegExp} pattern
634
- */
635
- flushCache(context, pattern) {
636
- return this.processRedisCommands(async (client) =&gt; {
637
- const scanAsync = util.promisify(client.scan).bind(client);
638
- const delAsync = util.promisify(client.del).bind(client);
639
- let cursor = '0';
640
- do {
641
- // eslint-disable-next-line no-await-in-loop
642
- const result = await scanAsync(cursor, 'MATCH', pattern);
643
- ([cursor] = result);
644
- const keys = result[1];
645
- context.log.info('matched keys', {
646
- keys: result[1]
647
- });
648
- if (keys.length &lt;= 0) {
649
- return;
650
- }
651
- // eslint-disable-next-line no-await-in-loop
652
- await delAsync(...keys);
653
- } while (cursor !== '0');
654
- });
655
- },
656
- cacheStorePool
657
- };
658
- &nbsp;
659
- Object.keys(instance).forEach((key) =&gt; {
660
- if (typeof instance[key] === 'function') {
661
- instance[key] = lazyInstrument(instance[key].bind(instance), { metricPrefix: 'cache' });
662
- }
663
- });
664
- &nbsp;
665
- return instance;
666
- }
667
- &nbsp;
668
- module.exports = {
669
- create: cachemanager
670
- };
671
- &nbsp;
672
- /**
673
- * @typedef {RedisCacheManagerOptions &amp; { store?: any, ttl?: number, db?: number }} Options
674
- */
675
- &nbsp;
676
- /**
677
- * @typedef {{ db?: number, url?: string, host?: string, port?: string }} RedisCacheManagerOptions
678
- */
679
- &nbsp;
680
- /**
681
- * @typedef {{ [key: string]: any, log: { [key: string]: LogLevel, info: LogLevel, error: LogLevel } }} Context
682
- */
683
- &nbsp;
684
- /**
685
- * @typedef {(message: string, meta: { [key: string]: any }) =&gt; void} LogLevel
686
- */
687
- &nbsp;</pre></td></tr></table></pre>
688
-
689
- <div class='push'></div><!-- for sticky footer -->
690
- </div><!-- /wrapper -->
691
- <div class='footer quiet pad2 space-top1 center small'>
692
- Code coverage generated by
693
- <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
694
- at Tue Nov 30 2021 16:07:57 GMT+0000 (Coordinated Universal Time)
695
- </div>
696
- </div>
697
- <script src="prettify.js"></script>
698
- <script>
699
- window.onload = function () {
700
- prettyPrint();
701
- };
702
- </script>
703
- <script src="sorter.js"></script>
704
- <script src="block-navigation.js"></script>
705
- </body>
706
- </html>
707
-