@tomei/sso 0.64.1 → 0.66.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (76) hide show
  1. package/dist/src/components/login-user/login-user.js +63 -64
  2. package/dist/src/components/login-user/login-user.js.map +1 -1
  3. package/dist/src/components/login-user/user.js +1 -1
  4. package/dist/src/components/login-user/user.js.map +1 -1
  5. package/dist/src/index.d.ts +1 -0
  6. package/dist/src/index.js +1 -0
  7. package/dist/src/index.js.map +1 -1
  8. package/dist/tsconfig.tsbuildinfo +1 -1
  9. package/package.json +5 -2
  10. package/src/components/login-user/login-user.ts +90 -89
  11. package/src/components/login-user/user.ts +1 -1
  12. package/src/index.ts +1 -0
  13. package/coverage/clover.xml +0 -1380
  14. package/coverage/coverage-final.json +0 -39
  15. package/coverage/lcov-report/base.css +0 -224
  16. package/coverage/lcov-report/block-navigation.js +0 -87
  17. package/coverage/lcov-report/components/group-object-privilege/group-object-privilege.repository.ts.html +0 -160
  18. package/coverage/lcov-report/components/group-object-privilege/group-object-privilege.ts.html +0 -919
  19. package/coverage/lcov-report/components/group-object-privilege/index.html +0 -131
  20. package/coverage/lcov-report/components/group-privilege/group-privilege.repository.ts.html +0 -172
  21. package/coverage/lcov-report/components/group-privilege/group-privilege.ts.html +0 -337
  22. package/coverage/lcov-report/components/group-privilege/index.html +0 -131
  23. package/coverage/lcov-report/components/group-system-access/group-system-access.repository.ts.html +0 -214
  24. package/coverage/lcov-report/components/group-system-access/group-system-access.ts.html +0 -355
  25. package/coverage/lcov-report/components/group-system-access/index.html +0 -131
  26. package/coverage/lcov-report/components/password-hash/index.html +0 -116
  27. package/coverage/lcov-report/components/password-hash/password-hash.service.ts.html +0 -127
  28. package/coverage/lcov-report/components/system-privilege/index.html +0 -116
  29. package/coverage/lcov-report/components/system-privilege/system-privilege.repository.ts.html +0 -139
  30. package/coverage/lcov-report/components/user-group/index.html +0 -131
  31. package/coverage/lcov-report/components/user-group/user-group.repository.ts.html +0 -142
  32. package/coverage/lcov-report/components/user-group/user-group.ts.html +0 -2377
  33. package/coverage/lcov-report/components/user-object-privilege/index.html +0 -131
  34. package/coverage/lcov-report/components/user-object-privilege/user-object-privilege.repository.ts.html +0 -118
  35. package/coverage/lcov-report/components/user-object-privilege/user-object-privilege.ts.html +0 -322
  36. package/coverage/lcov-report/components/user-privilege/index.html +0 -131
  37. package/coverage/lcov-report/components/user-privilege/user-privilege.repository.ts.html +0 -160
  38. package/coverage/lcov-report/components/user-privilege/user-privilege.ts.html +0 -2071
  39. package/coverage/lcov-report/components/user-system-access/index.html +0 -131
  40. package/coverage/lcov-report/components/user-system-access/user-system-access.repository.ts.html +0 -208
  41. package/coverage/lcov-report/components/user-system-access/user-system-access.ts.html +0 -2236
  42. package/coverage/lcov-report/enum/api-key.enum.ts.html +0 -100
  43. package/coverage/lcov-report/enum/group-type.enum.ts.html +0 -109
  44. package/coverage/lcov-report/enum/index.html +0 -206
  45. package/coverage/lcov-report/enum/index.ts.html +0 -103
  46. package/coverage/lcov-report/enum/login-status.enum.ts.html +0 -97
  47. package/coverage/lcov-report/enum/object-status.enum.ts.html +0 -97
  48. package/coverage/lcov-report/enum/user-status.enum.ts.html +0 -106
  49. package/coverage/lcov-report/enum/yn.enum.ts.html +0 -97
  50. package/coverage/lcov-report/favicon.png +0 -0
  51. package/coverage/lcov-report/index.html +0 -296
  52. package/coverage/lcov-report/models/group-object-privilege.entity.ts.html +0 -358
  53. package/coverage/lcov-report/models/group-privilege.entity.ts.html +0 -319
  54. package/coverage/lcov-report/models/group-reporting-user.entity.ts.html +0 -370
  55. package/coverage/lcov-report/models/group-system-access.entity.ts.html +0 -328
  56. package/coverage/lcov-report/models/group.entity.ts.html +0 -466
  57. package/coverage/lcov-report/models/index.html +0 -296
  58. package/coverage/lcov-report/models/staff.entity.ts.html +0 -358
  59. package/coverage/lcov-report/models/system-privilege.entity.ts.html +0 -355
  60. package/coverage/lcov-report/models/system.entity.ts.html +0 -424
  61. package/coverage/lcov-report/models/user-group.entity.ts.html +0 -358
  62. package/coverage/lcov-report/models/user-object-privilege.entity.ts.html +0 -355
  63. package/coverage/lcov-report/models/user-privilege.entity.ts.html +0 -319
  64. package/coverage/lcov-report/models/user-system-access.entity.ts.html +0 -346
  65. package/coverage/lcov-report/models/user.entity.ts.html +0 -685
  66. package/coverage/lcov-report/prettify.css +0 -1
  67. package/coverage/lcov-report/prettify.js +0 -2
  68. package/coverage/lcov-report/redis-client/index.html +0 -116
  69. package/coverage/lcov-report/redis-client/redis.service.ts.html +0 -310
  70. package/coverage/lcov-report/session/index.html +0 -116
  71. package/coverage/lcov-report/session/session.service.ts.html +0 -373
  72. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  73. package/coverage/lcov-report/sorter.js +0 -210
  74. package/coverage/lcov.info +0 -2223
  75. package/coverage/test-report.xml +0 -71
  76. package/sonar-project.properties +0 -23
@@ -1,373 +0,0 @@
1
-
2
- <!doctype html>
3
- <html lang="en">
4
-
5
- <head>
6
- <title>Code coverage report for session/session.service.ts</title>
7
- <meta charset="utf-8" />
8
- <link rel="stylesheet" href="../prettify.css" />
9
- <link rel="stylesheet" href="../base.css" />
10
- <link rel="shortcut icon" type="image/x-icon" href="../favicon.png" />
11
- <meta name="viewport" content="width=device-width, initial-scale=1" />
12
- <style type='text/css'>
13
- .coverage-summary .sorter {
14
- background-image: url(../sort-arrow-sprite.png);
15
- }
16
- </style>
17
- </head>
18
-
19
- <body>
20
- <div class='wrapper'>
21
- <div class='pad1'>
22
- <h1><a href="../index.html">All files</a> / <a href="index.html">session</a> session.service.ts</h1>
23
- <div class='clearfix'>
24
-
25
- <div class='fl pad1y space-right2'>
26
- <span class="strong">55% </span>
27
- <span class="quiet">Statements</span>
28
- <span class='fraction'>22/40</span>
29
- </div>
30
-
31
-
32
- <div class='fl pad1y space-right2'>
33
- <span class="strong">63.63% </span>
34
- <span class="quiet">Branches</span>
35
- <span class='fraction'>7/11</span>
36
- </div>
37
-
38
-
39
- <div class='fl pad1y space-right2'>
40
- <span class="strong">72.72% </span>
41
- <span class="quiet">Functions</span>
42
- <span class='fraction'>8/11</span>
43
- </div>
44
-
45
-
46
- <div class='fl pad1y space-right2'>
47
- <span class="strong">55% </span>
48
- <span class="quiet">Lines</span>
49
- <span class='fraction'>22/40</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
- <template id="filterTemplate">
58
- <div class="quiet">
59
- Filter:
60
- <input type="search" id="fileSearch">
61
- </div>
62
- </template>
63
- </div>
64
- <div class='status-line medium'></div>
65
- <pre><table class="coverage">
66
- <tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
67
- <a name='L2'></a><a href='#L2'>2</a>
68
- <a name='L3'></a><a href='#L3'>3</a>
69
- <a name='L4'></a><a href='#L4'>4</a>
70
- <a name='L5'></a><a href='#L5'>5</a>
71
- <a name='L6'></a><a href='#L6'>6</a>
72
- <a name='L7'></a><a href='#L7'>7</a>
73
- <a name='L8'></a><a href='#L8'>8</a>
74
- <a name='L9'></a><a href='#L9'>9</a>
75
- <a name='L10'></a><a href='#L10'>10</a>
76
- <a name='L11'></a><a href='#L11'>11</a>
77
- <a name='L12'></a><a href='#L12'>12</a>
78
- <a name='L13'></a><a href='#L13'>13</a>
79
- <a name='L14'></a><a href='#L14'>14</a>
80
- <a name='L15'></a><a href='#L15'>15</a>
81
- <a name='L16'></a><a href='#L16'>16</a>
82
- <a name='L17'></a><a href='#L17'>17</a>
83
- <a name='L18'></a><a href='#L18'>18</a>
84
- <a name='L19'></a><a href='#L19'>19</a>
85
- <a name='L20'></a><a href='#L20'>20</a>
86
- <a name='L21'></a><a href='#L21'>21</a>
87
- <a name='L22'></a><a href='#L22'>22</a>
88
- <a name='L23'></a><a href='#L23'>23</a>
89
- <a name='L24'></a><a href='#L24'>24</a>
90
- <a name='L25'></a><a href='#L25'>25</a>
91
- <a name='L26'></a><a href='#L26'>26</a>
92
- <a name='L27'></a><a href='#L27'>27</a>
93
- <a name='L28'></a><a href='#L28'>28</a>
94
- <a name='L29'></a><a href='#L29'>29</a>
95
- <a name='L30'></a><a href='#L30'>30</a>
96
- <a name='L31'></a><a href='#L31'>31</a>
97
- <a name='L32'></a><a href='#L32'>32</a>
98
- <a name='L33'></a><a href='#L33'>33</a>
99
- <a name='L34'></a><a href='#L34'>34</a>
100
- <a name='L35'></a><a href='#L35'>35</a>
101
- <a name='L36'></a><a href='#L36'>36</a>
102
- <a name='L37'></a><a href='#L37'>37</a>
103
- <a name='L38'></a><a href='#L38'>38</a>
104
- <a name='L39'></a><a href='#L39'>39</a>
105
- <a name='L40'></a><a href='#L40'>40</a>
106
- <a name='L41'></a><a href='#L41'>41</a>
107
- <a name='L42'></a><a href='#L42'>42</a>
108
- <a name='L43'></a><a href='#L43'>43</a>
109
- <a name='L44'></a><a href='#L44'>44</a>
110
- <a name='L45'></a><a href='#L45'>45</a>
111
- <a name='L46'></a><a href='#L46'>46</a>
112
- <a name='L47'></a><a href='#L47'>47</a>
113
- <a name='L48'></a><a href='#L48'>48</a>
114
- <a name='L49'></a><a href='#L49'>49</a>
115
- <a name='L50'></a><a href='#L50'>50</a>
116
- <a name='L51'></a><a href='#L51'>51</a>
117
- <a name='L52'></a><a href='#L52'>52</a>
118
- <a name='L53'></a><a href='#L53'>53</a>
119
- <a name='L54'></a><a href='#L54'>54</a>
120
- <a name='L55'></a><a href='#L55'>55</a>
121
- <a name='L56'></a><a href='#L56'>56</a>
122
- <a name='L57'></a><a href='#L57'>57</a>
123
- <a name='L58'></a><a href='#L58'>58</a>
124
- <a name='L59'></a><a href='#L59'>59</a>
125
- <a name='L60'></a><a href='#L60'>60</a>
126
- <a name='L61'></a><a href='#L61'>61</a>
127
- <a name='L62'></a><a href='#L62'>62</a>
128
- <a name='L63'></a><a href='#L63'>63</a>
129
- <a name='L64'></a><a href='#L64'>64</a>
130
- <a name='L65'></a><a href='#L65'>65</a>
131
- <a name='L66'></a><a href='#L66'>66</a>
132
- <a name='L67'></a><a href='#L67'>67</a>
133
- <a name='L68'></a><a href='#L68'>68</a>
134
- <a name='L69'></a><a href='#L69'>69</a>
135
- <a name='L70'></a><a href='#L70'>70</a>
136
- <a name='L71'></a><a href='#L71'>71</a>
137
- <a name='L72'></a><a href='#L72'>72</a>
138
- <a name='L73'></a><a href='#L73'>73</a>
139
- <a name='L74'></a><a href='#L74'>74</a>
140
- <a name='L75'></a><a href='#L75'>75</a>
141
- <a name='L76'></a><a href='#L76'>76</a>
142
- <a name='L77'></a><a href='#L77'>77</a>
143
- <a name='L78'></a><a href='#L78'>78</a>
144
- <a name='L79'></a><a href='#L79'>79</a>
145
- <a name='L80'></a><a href='#L80'>80</a>
146
- <a name='L81'></a><a href='#L81'>81</a>
147
- <a name='L82'></a><a href='#L82'>82</a>
148
- <a name='L83'></a><a href='#L83'>83</a>
149
- <a name='L84'></a><a href='#L84'>84</a>
150
- <a name='L85'></a><a href='#L85'>85</a>
151
- <a name='L86'></a><a href='#L86'>86</a>
152
- <a name='L87'></a><a href='#L87'>87</a>
153
- <a name='L88'></a><a href='#L88'>88</a>
154
- <a name='L89'></a><a href='#L89'>89</a>
155
- <a name='L90'></a><a href='#L90'>90</a>
156
- <a name='L91'></a><a href='#L91'>91</a>
157
- <a name='L92'></a><a href='#L92'>92</a>
158
- <a name='L93'></a><a href='#L93'>93</a>
159
- <a name='L94'></a><a href='#L94'>94</a>
160
- <a name='L95'></a><a href='#L95'>95</a>
161
- <a name='L96'></a><a href='#L96'>96</a>
162
- <a name='L97'></a><a href='#L97'>97</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
163
- <span class="cline-any cline-neutral">&nbsp;</span>
164
- <span class="cline-any cline-neutral">&nbsp;</span>
165
- <span class="cline-any cline-neutral">&nbsp;</span>
166
- <span class="cline-any cline-yes">1x</span>
167
- <span class="cline-any cline-neutral">&nbsp;</span>
168
- <span class="cline-any cline-yes">3x</span>
169
- <span class="cline-any cline-neutral">&nbsp;</span>
170
- <span class="cline-any cline-neutral">&nbsp;</span>
171
- <span class="cline-any cline-neutral">&nbsp;</span>
172
- <span class="cline-any cline-neutral">&nbsp;</span>
173
- <span class="cline-any cline-yes">3x</span>
174
- <span class="cline-any cline-yes">3x</span>
175
- <span class="cline-any cline-yes">3x</span>
176
- <span class="cline-any cline-yes">3x</span>
177
- <span class="cline-any cline-no">&nbsp;</span>
178
- <span class="cline-any cline-no">&nbsp;</span>
179
- <span class="cline-any cline-neutral">&nbsp;</span>
180
- <span class="cline-any cline-yes">3x</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-yes">3x</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">3x</span>
190
- <span class="cline-any cline-yes">3x</span>
191
- <span class="cline-any cline-yes">3x</span>
192
- <span class="cline-any cline-neutral">&nbsp;</span>
193
- <span class="cline-any cline-no">&nbsp;</span>
194
- <span class="cline-any cline-neutral">&nbsp;</span>
195
- <span class="cline-any cline-neutral">&nbsp;</span>
196
- <span class="cline-any cline-neutral">&nbsp;</span>
197
- <span class="cline-any cline-neutral">&nbsp;</span>
198
- <span class="cline-any cline-yes">2x</span>
199
- <span class="cline-any cline-neutral">&nbsp;</span>
200
- <span class="cline-any cline-neutral">&nbsp;</span>
201
- <span class="cline-any cline-yes">2x</span>
202
- <span class="cline-any cline-yes">2x</span>
203
- <span class="cline-any cline-yes">2x</span>
204
- <span class="cline-any cline-yes">2x</span>
205
- <span class="cline-any cline-no">&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">2x</span>
209
- <span class="cline-any cline-neutral">&nbsp;</span>
210
- <span class="cline-any cline-no">&nbsp;</span>
211
- <span class="cline-any cline-neutral">&nbsp;</span>
212
- <span class="cline-any cline-neutral">&nbsp;</span>
213
- <span class="cline-any cline-neutral">&nbsp;</span>
214
- <span class="cline-any cline-neutral">&nbsp;</span>
215
- <span class="cline-any cline-yes">1x</span>
216
- <span class="cline-any cline-neutral">&nbsp;</span>
217
- <span class="cline-any cline-neutral">&nbsp;</span>
218
- <span class="cline-any cline-neutral">&nbsp;</span>
219
- <span class="cline-any cline-yes">1x</span>
220
- <span class="cline-any cline-yes">1x</span>
221
- <span class="cline-any cline-yes">1x</span>
222
- <span class="cline-any cline-neutral">&nbsp;</span>
223
- <span class="cline-any cline-no">&nbsp;</span>
224
- <span class="cline-any cline-neutral">&nbsp;</span>
225
- <span class="cline-any cline-neutral">&nbsp;</span>
226
- <span class="cline-any cline-neutral">&nbsp;</span>
227
- <span class="cline-any cline-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-neutral">&nbsp;</span>
231
- <span class="cline-any cline-neutral">&nbsp;</span>
232
- <span class="cline-any cline-no">&nbsp;</span>
233
- <span class="cline-any cline-no">&nbsp;</span>
234
- <span class="cline-any cline-no">&nbsp;</span>
235
- <span class="cline-any cline-neutral">&nbsp;</span>
236
- <span class="cline-any cline-no">&nbsp;</span>
237
- <span class="cline-any cline-neutral">&nbsp;</span>
238
- <span class="cline-any cline-neutral">&nbsp;</span>
239
- <span class="cline-any cline-neutral">&nbsp;</span>
240
- <span class="cline-any cline-neutral">&nbsp;</span>
241
- <span class="cline-any cline-no">&nbsp;</span>
242
- <span class="cline-any cline-no">&nbsp;</span>
243
- <span class="cline-any cline-no">&nbsp;</span>
244
- <span class="cline-any cline-neutral">&nbsp;</span>
245
- <span class="cline-any cline-no">&nbsp;</span>
246
- <span class="cline-any cline-neutral">&nbsp;</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-no">&nbsp;</span>
251
- <span class="cline-any cline-no">&nbsp;</span>
252
- <span class="cline-any cline-no">&nbsp;</span>
253
- <span class="cline-any cline-neutral">&nbsp;</span>
254
- <span class="cline-any cline-no">&nbsp;</span>
255
- <span class="cline-any cline-neutral">&nbsp;</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></td><td class="text"><pre class="prettyprint lang-js">import { RedisService } from '../redis-client/redis.service';
259
- import { ISessionService } from './interfaces/session-service.interface';
260
- import { IUserSession } from '../interfaces/user-session.interface';
261
- &nbsp;
262
- export class SessionService implements ISessionService {
263
- private static _RedisService: RedisService;
264
- private environment: string = '';
265
- &nbsp;
266
- private constructor() {}
267
- &nbsp;
268
- static async init(redisClient?: any): Promise&lt;SessionService&gt; {
269
- const sessionService = new SessionService();
270
- SessionService._RedisService = await RedisService.init(redisClient);
271
- if (process.env.NODE_ENV == 'test') {
272
- sessionService.environment = 'test:';
273
- } else <span class="cstat-no" title="statement not covered" ><span class="missing-if-branch" title="else path not taken" >E</span>if (process.env.NODE_ENV == 'staging') {</span>
274
- <span class="cstat-no" title="statement not covered" > sessionService.environment = 'staging:';</span>
275
- }
276
- return sessionService;
277
- }
278
- &nbsp;
279
- async setUserSession(
280
- userId: string,
281
- sessionData: IUserSession,
282
- sessionName: string = 'tomei-sid',
283
- duration: number = 60 * 60, //1 hour
284
- ): Promise&lt;void&gt; {
285
- try {
286
- const key = `${this.environment}${sessionName}:${userId}`;
287
- await SessionService._RedisService.set(key, sessionData, duration);
288
- } catch (error) {
289
- <span class="cstat-no" title="statement not covered" > throw error;</span>
290
- }
291
- }
292
- &nbsp;
293
- async retrieveUserSession(
294
- userId: string,
295
- sessionName: string = 'tomei-sid',
296
- ): Promise&lt;IUserSession&gt; {
297
- try {
298
- const key = `${this.environment}${sessionName}:${userId}`;
299
- const stringData = await SessionService._RedisService.get(key);
300
- <span class="missing-if-branch" title="if path not taken" >I</span>if (!stringData)
301
- <span class="cstat-no" title="statement not covered" > return {</span>
302
- systemLogins: [],
303
- };
304
- return JSON.parse(stringData);
305
- } catch (error) {
306
- <span class="cstat-no" title="statement not covered" > throw error;</span>
307
- }
308
- }
309
- &nbsp;
310
- async refreshDuration(
311
- userid: string,
312
- sessionName: string = 'tomei-sid',
313
- duration: number = 60 * 60,
314
- ): Promise&lt;void&gt; {
315
- try {
316
- const userSession = await this.retrieveUserSession(userid, sessionName);
317
- await this.setUserSession(userid, userSession, sessionName, duration);
318
- } catch (error) {
319
- <span class="cstat-no" title="statement not covered" > throw error;</span>
320
- }
321
- }
322
- &nbsp;
323
- async <span class="fstat-no" title="function not covered" >setAuthorizationCode(</span>
324
- token: string,
325
- value: string,
326
- expire: number,
327
- ): Promise&lt;void&gt; {
328
- <span class="cstat-no" title="statement not covered" > try {</span>
329
- const key = <span class="cstat-no" title="statement not covered" >`${this.environment}tomei-auth-code:${token}`;</span>
330
- <span class="cstat-no" title="statement not covered" > await SessionService._RedisService.set(key, value, expire);</span>
331
- } catch (error) {
332
- <span class="cstat-no" title="statement not covered" > throw error;</span>
333
- }
334
- }
335
- &nbsp;
336
- async <span class="fstat-no" title="function not covered" >retrieveAuthorizationCode(</span>token: string): Promise&lt;string&gt; {
337
- <span class="cstat-no" title="statement not covered" > try {</span>
338
- const key = <span class="cstat-no" title="statement not covered" >`${this.environment}tomei-auth-code:${token}`;</span>
339
- <span class="cstat-no" title="statement not covered" > return await SessionService._RedisService.get(key);</span>
340
- } catch (error) {
341
- <span class="cstat-no" title="statement not covered" > throw error;</span>
342
- }
343
- }
344
- &nbsp;
345
- async <span class="fstat-no" title="function not covered" >deleteAuthorizationCode(</span>token: string): Promise&lt;void&gt; {
346
- <span class="cstat-no" title="statement not covered" > try {</span>
347
- const key = <span class="cstat-no" title="statement not covered" >`${this.environment}tomei-auth-code:${token}`;</span>
348
- <span class="cstat-no" title="statement not covered" > await SessionService._RedisService.del(key);</span>
349
- } catch (error) {
350
- <span class="cstat-no" title="statement not covered" > throw error;</span>
351
- }
352
- }
353
- }
354
- &nbsp;</pre></td></tr></table></pre>
355
-
356
- <div class='push'></div><!-- for sticky footer -->
357
- </div><!-- /wrapper -->
358
- <div class='footer quiet pad2 space-top1 center small'>
359
- Code coverage generated by
360
- <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
361
- at 2025-09-18T18:22:10.462Z
362
- </div>
363
- <script src="../prettify.js"></script>
364
- <script>
365
- window.onload = function () {
366
- prettyPrint();
367
- };
368
- </script>
369
- <script src="../sorter.js"></script>
370
- <script src="../block-navigation.js"></script>
371
- </body>
372
- </html>
373
-
@@ -1,210 +0,0 @@
1
- /* eslint-disable */
2
- var addSorting = (function() {
3
- 'use strict';
4
- var cols,
5
- currentSort = {
6
- index: 0,
7
- desc: false
8
- };
9
-
10
- // returns the summary table element
11
- function getTable() {
12
- return document.querySelector('.coverage-summary');
13
- }
14
- // returns the thead element of the summary table
15
- function getTableHeader() {
16
- return getTable().querySelector('thead tr');
17
- }
18
- // returns the tbody element of the summary table
19
- function getTableBody() {
20
- return getTable().querySelector('tbody');
21
- }
22
- // returns the th element for nth column
23
- function getNthColumn(n) {
24
- return getTableHeader().querySelectorAll('th')[n];
25
- }
26
-
27
- function onFilterInput() {
28
- const searchValue = document.getElementById('fileSearch').value;
29
- const rows = document.getElementsByTagName('tbody')[0].children;
30
-
31
- // Try to create a RegExp from the searchValue. If it fails (invalid regex),
32
- // it will be treated as a plain text search
33
- let searchRegex;
34
- try {
35
- searchRegex = new RegExp(searchValue, 'i'); // 'i' for case-insensitive
36
- } catch (error) {
37
- searchRegex = null;
38
- }
39
-
40
- for (let i = 0; i < rows.length; i++) {
41
- const row = rows[i];
42
- let isMatch = false;
43
-
44
- if (searchRegex) {
45
- // If a valid regex was created, use it for matching
46
- isMatch = searchRegex.test(row.textContent);
47
- } else {
48
- // Otherwise, fall back to the original plain text search
49
- isMatch = row.textContent
50
- .toLowerCase()
51
- .includes(searchValue.toLowerCase());
52
- }
53
-
54
- row.style.display = isMatch ? '' : 'none';
55
- }
56
- }
57
-
58
- // loads the search box
59
- function addSearchBox() {
60
- var template = document.getElementById('filterTemplate');
61
- var templateClone = template.content.cloneNode(true);
62
- templateClone.getElementById('fileSearch').oninput = onFilterInput;
63
- template.parentElement.appendChild(templateClone);
64
- }
65
-
66
- // loads all columns
67
- function loadColumns() {
68
- var colNodes = getTableHeader().querySelectorAll('th'),
69
- colNode,
70
- cols = [],
71
- col,
72
- i;
73
-
74
- for (i = 0; i < colNodes.length; i += 1) {
75
- colNode = colNodes[i];
76
- col = {
77
- key: colNode.getAttribute('data-col'),
78
- sortable: !colNode.getAttribute('data-nosort'),
79
- type: colNode.getAttribute('data-type') || 'string'
80
- };
81
- cols.push(col);
82
- if (col.sortable) {
83
- col.defaultDescSort = col.type === 'number';
84
- colNode.innerHTML =
85
- colNode.innerHTML + '<span class="sorter"></span>';
86
- }
87
- }
88
- return cols;
89
- }
90
- // attaches a data attribute to every tr element with an object
91
- // of data values keyed by column name
92
- function loadRowData(tableRow) {
93
- var tableCols = tableRow.querySelectorAll('td'),
94
- colNode,
95
- col,
96
- data = {},
97
- i,
98
- val;
99
- for (i = 0; i < tableCols.length; i += 1) {
100
- colNode = tableCols[i];
101
- col = cols[i];
102
- val = colNode.getAttribute('data-value');
103
- if (col.type === 'number') {
104
- val = Number(val);
105
- }
106
- data[col.key] = val;
107
- }
108
- return data;
109
- }
110
- // loads all row data
111
- function loadData() {
112
- var rows = getTableBody().querySelectorAll('tr'),
113
- i;
114
-
115
- for (i = 0; i < rows.length; i += 1) {
116
- rows[i].data = loadRowData(rows[i]);
117
- }
118
- }
119
- // sorts the table using the data for the ith column
120
- function sortByIndex(index, desc) {
121
- var key = cols[index].key,
122
- sorter = function(a, b) {
123
- a = a.data[key];
124
- b = b.data[key];
125
- return a < b ? -1 : a > b ? 1 : 0;
126
- },
127
- finalSorter = sorter,
128
- tableBody = document.querySelector('.coverage-summary tbody'),
129
- rowNodes = tableBody.querySelectorAll('tr'),
130
- rows = [],
131
- i;
132
-
133
- if (desc) {
134
- finalSorter = function(a, b) {
135
- return -1 * sorter(a, b);
136
- };
137
- }
138
-
139
- for (i = 0; i < rowNodes.length; i += 1) {
140
- rows.push(rowNodes[i]);
141
- tableBody.removeChild(rowNodes[i]);
142
- }
143
-
144
- rows.sort(finalSorter);
145
-
146
- for (i = 0; i < rows.length; i += 1) {
147
- tableBody.appendChild(rows[i]);
148
- }
149
- }
150
- // removes sort indicators for current column being sorted
151
- function removeSortIndicators() {
152
- var col = getNthColumn(currentSort.index),
153
- cls = col.className;
154
-
155
- cls = cls.replace(/ sorted$/, '').replace(/ sorted-desc$/, '');
156
- col.className = cls;
157
- }
158
- // adds sort indicators for current column being sorted
159
- function addSortIndicators() {
160
- getNthColumn(currentSort.index).className += currentSort.desc
161
- ? ' sorted-desc'
162
- : ' sorted';
163
- }
164
- // adds event listeners for all sorter widgets
165
- function enableUI() {
166
- var i,
167
- el,
168
- ithSorter = function ithSorter(i) {
169
- var col = cols[i];
170
-
171
- return function() {
172
- var desc = col.defaultDescSort;
173
-
174
- if (currentSort.index === i) {
175
- desc = !currentSort.desc;
176
- }
177
- sortByIndex(i, desc);
178
- removeSortIndicators();
179
- currentSort.index = i;
180
- currentSort.desc = desc;
181
- addSortIndicators();
182
- };
183
- };
184
- for (i = 0; i < cols.length; i += 1) {
185
- if (cols[i].sortable) {
186
- // add the click event handler on the th so users
187
- // dont have to click on those tiny arrows
188
- el = getNthColumn(i).querySelector('.sorter').parentElement;
189
- if (el.addEventListener) {
190
- el.addEventListener('click', ithSorter(i));
191
- } else {
192
- el.attachEvent('onclick', ithSorter(i));
193
- }
194
- }
195
- }
196
- }
197
- // adds sorting functionality to the UI
198
- return function() {
199
- if (!getTable()) {
200
- return;
201
- }
202
- cols = loadColumns();
203
- loadData();
204
- addSearchBox();
205
- addSortIndicators();
206
- enableUI();
207
- };
208
- })();
209
-
210
- window.addEventListener('load', addSorting);