auth0-deploy-cli 7.20.0 → 7.22.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 (147) hide show
  1. package/.nyc_output/8c594b79-aa55-4e49-845c-8d88ca24c494.json +1 -0
  2. package/.nyc_output/processinfo/278104e6-6bb4-4dfb-94bf-3ef7f73e08b9.json +1 -0
  3. package/.nyc_output/processinfo/5210e060-a3b8-4e7f-9062-47807b58d0cd.json +1 -0
  4. package/.nyc_output/processinfo/{077589bb-1ba0-4dbe-b46f-6e000c3a10b7.json → 8c594b79-aa55-4e49-845c-8d88ca24c494.json} +1 -1
  5. package/.nyc_output/processinfo/index.json +1 -1
  6. package/CHANGELOG.md +24 -1
  7. package/coverage/lcov-report/index.html +19 -19
  8. package/coverage/lcov.info +516 -514
  9. package/lib/tools/auth0/handlers/logStreams.js +1 -1
  10. package/lib/tools/auth0/handlers/logStreams.js.map +1 -1
  11. package/lib/tools/auth0/handlers/organizations.d.ts +6 -0
  12. package/lib/tools/auth0/handlers/organizations.js +10 -2
  13. package/lib/tools/auth0/handlers/organizations.js.map +1 -1
  14. package/lib/tools/auth0/handlers/themes.d.ts +6 -0
  15. package/lib/tools/auth0/handlers/themes.js +6 -0
  16. package/lib/tools/auth0/handlers/themes.js.map +1 -1
  17. package/package.json +1 -1
  18. package/.nyc_output/077589bb-1ba0-4dbe-b46f-6e000c3a10b7.json +0 -1
  19. package/.nyc_output/processinfo/8cfe1f78-4f88-4145-a8fa-7772e840db6f.json +0 -1
  20. package/.nyc_output/processinfo/a277366c-ae14-4a57-afe2-fecfb961aa73.json +0 -1
  21. package/coverage/lcov-report/src/args.ts.html +0 -505
  22. package/coverage/lcov-report/src/commands/export.ts.html +0 -274
  23. package/coverage/lcov-report/src/commands/import.ts.html +0 -250
  24. package/coverage/lcov-report/src/commands/index.html +0 -131
  25. package/coverage/lcov-report/src/configFactory.ts.html +0 -175
  26. package/coverage/lcov-report/src/context/defaults.ts.html +0 -196
  27. package/coverage/lcov-report/src/context/directory/handlers/actions.ts.html +0 -433
  28. package/coverage/lcov-report/src/context/directory/handlers/attackProtection.ts.html +0 -334
  29. package/coverage/lcov-report/src/context/directory/handlers/branding.ts.html +0 -475
  30. package/coverage/lcov-report/src/context/directory/handlers/clientGrants.ts.html +0 -385
  31. package/coverage/lcov-report/src/context/directory/handlers/clients.ts.html +0 -340
  32. package/coverage/lcov-report/src/context/directory/handlers/connections.ts.html +0 -388
  33. package/coverage/lcov-report/src/context/directory/handlers/customDomains.ts.html +0 -232
  34. package/coverage/lcov-report/src/context/directory/handlers/databases.ts.html +0 -568
  35. package/coverage/lcov-report/src/context/directory/handlers/emailProvider.ts.html +0 -250
  36. package/coverage/lcov-report/src/context/directory/handlers/emailTemplates.ts.html +0 -343
  37. package/coverage/lcov-report/src/context/directory/handlers/guardianFactorProviders.ts.html +0 -271
  38. package/coverage/lcov-report/src/context/directory/handlers/guardianFactorTemplates.ts.html +0 -262
  39. package/coverage/lcov-report/src/context/directory/handlers/guardianFactors.ts.html +0 -262
  40. package/coverage/lcov-report/src/context/directory/handlers/guardianPhoneFactorMessageTypes.ts.html +0 -223
  41. package/coverage/lcov-report/src/context/directory/handlers/guardianPhoneFactorSelectedProvider.ts.html +0 -235
  42. package/coverage/lcov-report/src/context/directory/handlers/guardianPolicies.ts.html +0 -223
  43. package/coverage/lcov-report/src/context/directory/handlers/hooks.ts.html +0 -289
  44. package/coverage/lcov-report/src/context/directory/handlers/index.html +0 -551
  45. package/coverage/lcov-report/src/context/directory/handlers/index.ts.html +0 -304
  46. package/coverage/lcov-report/src/context/directory/handlers/logStreams.ts.html +0 -235
  47. package/coverage/lcov-report/src/context/directory/handlers/migrations.ts.html +0 -205
  48. package/coverage/lcov-report/src/context/directory/handlers/organizations.ts.html +0 -304
  49. package/coverage/lcov-report/src/context/directory/handlers/pages.ts.html +0 -379
  50. package/coverage/lcov-report/src/context/directory/handlers/prompts.ts.html +0 -331
  51. package/coverage/lcov-report/src/context/directory/handlers/resourceServers.ts.html +0 -247
  52. package/coverage/lcov-report/src/context/directory/handlers/roles.ts.html +0 -268
  53. package/coverage/lcov-report/src/context/directory/handlers/rules.ts.html +0 -277
  54. package/coverage/lcov-report/src/context/directory/handlers/rulesConfigs.ts.html +0 -208
  55. package/coverage/lcov-report/src/context/directory/handlers/tenant.ts.html +0 -298
  56. package/coverage/lcov-report/src/context/directory/handlers/themes.ts.html +0 -241
  57. package/coverage/lcov-report/src/context/directory/handlers/triggers.ts.html +0 -229
  58. package/coverage/lcov-report/src/context/directory/index.html +0 -116
  59. package/coverage/lcov-report/src/context/directory/index.ts.html +0 -490
  60. package/coverage/lcov-report/src/context/index.html +0 -131
  61. package/coverage/lcov-report/src/context/index.ts.html +0 -784
  62. package/coverage/lcov-report/src/context/yaml/handlers/actions.ts.html +0 -388
  63. package/coverage/lcov-report/src/context/yaml/handlers/attackProtection.ts.html +0 -193
  64. package/coverage/lcov-report/src/context/yaml/handlers/branding.ts.html +0 -376
  65. package/coverage/lcov-report/src/context/yaml/handlers/clientGrants.ts.html +0 -223
  66. package/coverage/lcov-report/src/context/yaml/handlers/clients.ts.html +0 -304
  67. package/coverage/lcov-report/src/context/yaml/handlers/connections.ts.html +0 -394
  68. package/coverage/lcov-report/src/context/yaml/handlers/customDomains.ts.html +0 -151
  69. package/coverage/lcov-report/src/context/yaml/handlers/databases.ts.html +0 -352
  70. package/coverage/lcov-report/src/context/yaml/handlers/emailProvider.ts.html +0 -208
  71. package/coverage/lcov-report/src/context/yaml/handlers/emailTemplates.ts.html +0 -241
  72. package/coverage/lcov-report/src/context/yaml/handlers/guardianFactorProviders.ts.html +0 -151
  73. package/coverage/lcov-report/src/context/yaml/handlers/guardianFactorTemplates.ts.html +0 -151
  74. package/coverage/lcov-report/src/context/yaml/handlers/guardianFactors.ts.html +0 -151
  75. package/coverage/lcov-report/src/context/yaml/handlers/guardianPhoneFactorMessageTypes.ts.html +0 -151
  76. package/coverage/lcov-report/src/context/yaml/handlers/guardianPhoneFactorSelectedProvider.ts.html +0 -169
  77. package/coverage/lcov-report/src/context/yaml/handlers/guardianPolicies.ts.html +0 -151
  78. package/coverage/lcov-report/src/context/yaml/handlers/hooks.ts.html +0 -280
  79. package/coverage/lcov-report/src/context/yaml/handlers/index.html +0 -551
  80. package/coverage/lcov-report/src/context/yaml/handlers/index.ts.html +0 -298
  81. package/coverage/lcov-report/src/context/yaml/handlers/logStreams.ts.html +0 -151
  82. package/coverage/lcov-report/src/context/yaml/handlers/migrations.ts.html +0 -145
  83. package/coverage/lcov-report/src/context/yaml/handlers/organizations.ts.html +0 -235
  84. package/coverage/lcov-report/src/context/yaml/handlers/pages.ts.html +0 -265
  85. package/coverage/lcov-report/src/context/yaml/handlers/prompts.ts.html +0 -154
  86. package/coverage/lcov-report/src/context/yaml/handlers/resourceServers.ts.html +0 -157
  87. package/coverage/lcov-report/src/context/yaml/handlers/roles.ts.html +0 -199
  88. package/coverage/lcov-report/src/context/yaml/handlers/rules.ts.html +0 -253
  89. package/coverage/lcov-report/src/context/yaml/handlers/rulesConfigs.ts.html +0 -181
  90. package/coverage/lcov-report/src/context/yaml/handlers/tenant.ts.html +0 -235
  91. package/coverage/lcov-report/src/context/yaml/handlers/themes.ts.html +0 -154
  92. package/coverage/lcov-report/src/context/yaml/handlers/triggers.ts.html +0 -172
  93. package/coverage/lcov-report/src/context/yaml/index.html +0 -116
  94. package/coverage/lcov-report/src/context/yaml/index.ts.html +0 -703
  95. package/coverage/lcov-report/src/index.html +0 -236
  96. package/coverage/lcov-report/src/index.ts.html +0 -361
  97. package/coverage/lcov-report/src/keywordPreservation.ts.html +0 -982
  98. package/coverage/lcov-report/src/logger.ts.html +0 -133
  99. package/coverage/lcov-report/src/readonly.ts.html +0 -343
  100. package/coverage/lcov-report/src/sessionDurationsToMinutes.ts.html +0 -154
  101. package/coverage/lcov-report/src/tools/auth0/client.ts.html +0 -604
  102. package/coverage/lcov-report/src/tools/auth0/handlers/actions.ts.html +0 -907
  103. package/coverage/lcov-report/src/tools/auth0/handlers/attackProtection.ts.html +0 -397
  104. package/coverage/lcov-report/src/tools/auth0/handlers/branding.ts.html +0 -430
  105. package/coverage/lcov-report/src/tools/auth0/handlers/clientGrants.ts.html +0 -436
  106. package/coverage/lcov-report/src/tools/auth0/handlers/clients.ts.html +0 -361
  107. package/coverage/lcov-report/src/tools/auth0/handlers/connections.ts.html +0 -598
  108. package/coverage/lcov-report/src/tools/auth0/handlers/customDomains.ts.html +0 -382
  109. package/coverage/lcov-report/src/tools/auth0/handlers/databases.ts.html +0 -436
  110. package/coverage/lcov-report/src/tools/auth0/handlers/default.ts.html +0 -1027
  111. package/coverage/lcov-report/src/tools/auth0/handlers/emailProvider.ts.html +0 -283
  112. package/coverage/lcov-report/src/tools/auth0/handlers/emailTemplates.ts.html +0 -343
  113. package/coverage/lcov-report/src/tools/auth0/handlers/guardianFactorProviders.ts.html +0 -301
  114. package/coverage/lcov-report/src/tools/auth0/handlers/guardianFactorTemplates.ts.html +0 -265
  115. package/coverage/lcov-report/src/tools/auth0/handlers/guardianFactors.ts.html +0 -241
  116. package/coverage/lcov-report/src/tools/auth0/handlers/guardianPhoneFactorMessageTypes.ts.html +0 -337
  117. package/coverage/lcov-report/src/tools/auth0/handlers/guardianPhoneFactorSelectedProvider.ts.html +0 -331
  118. package/coverage/lcov-report/src/tools/auth0/handlers/guardianPolicies.ts.html +0 -256
  119. package/coverage/lcov-report/src/tools/auth0/handlers/hooks.ts.html +0 -895
  120. package/coverage/lcov-report/src/tools/auth0/handlers/index.html +0 -566
  121. package/coverage/lcov-report/src/tools/auth0/handlers/index.ts.html +0 -295
  122. package/coverage/lcov-report/src/tools/auth0/handlers/logStreams.ts.html +0 -379
  123. package/coverage/lcov-report/src/tools/auth0/handlers/migrations.ts.html +0 -319
  124. package/coverage/lcov-report/src/tools/auth0/handlers/organizations.ts.html +0 -946
  125. package/coverage/lcov-report/src/tools/auth0/handlers/pages.ts.html +0 -544
  126. package/coverage/lcov-report/src/tools/auth0/handlers/prompts.ts.html +0 -946
  127. package/coverage/lcov-report/src/tools/auth0/handlers/resourceServers.ts.html +0 -433
  128. package/coverage/lcov-report/src/tools/auth0/handlers/roles.ts.html +0 -748
  129. package/coverage/lcov-report/src/tools/auth0/handlers/rules.ts.html +0 -826
  130. package/coverage/lcov-report/src/tools/auth0/handlers/rulesConfigs.ts.html +0 -289
  131. package/coverage/lcov-report/src/tools/auth0/handlers/tenant.ts.html +0 -556
  132. package/coverage/lcov-report/src/tools/auth0/handlers/themes.ts.html +0 -1885
  133. package/coverage/lcov-report/src/tools/auth0/handlers/triggers.ts.html +0 -439
  134. package/coverage/lcov-report/src/tools/auth0/index.html +0 -146
  135. package/coverage/lcov-report/src/tools/auth0/index.ts.html +0 -385
  136. package/coverage/lcov-report/src/tools/auth0/schema.ts.html +0 -184
  137. package/coverage/lcov-report/src/tools/calculateChanges.ts.html +0 -688
  138. package/coverage/lcov-report/src/tools/constants.ts.html +0 -613
  139. package/coverage/lcov-report/src/tools/deploy.ts.html +0 -193
  140. package/coverage/lcov-report/src/tools/index.html +0 -191
  141. package/coverage/lcov-report/src/tools/index.ts.html +0 -163
  142. package/coverage/lcov-report/src/tools/utils.ts.html +0 -916
  143. package/coverage/lcov-report/src/tools/validationError.ts.html +0 -127
  144. package/coverage/lcov-report/src/types.ts.html +0 -1201
  145. package/coverage/lcov-report/src/utils.ts.html +0 -706
  146. /package/.nyc_output/{8cfe1f78-4f88-4145-a8fa-7772e840db6f.json → 278104e6-6bb4-4dfb-94bf-3ef7f73e08b9.json} +0 -0
  147. /package/.nyc_output/{a277366c-ae14-4a57-afe2-fecfb961aa73.json → 5210e060-a3b8-4e7f-9062-47807b58d0cd.json} +0 -0
@@ -1,1027 +0,0 @@
1
-
2
- <!doctype html>
3
- <html lang="en">
4
-
5
- <head>
6
- <title>Code coverage report for src/tools/auth0/handlers/default.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">src/tools/auth0/handlers</a> default.ts</h1>
23
- <div class='clearfix'>
24
-
25
- <div class='fl pad1y space-right2'>
26
- <span class="strong">86.36% </span>
27
- <span class="quiet">Statements</span>
28
- <span class='fraction'>95/110</span>
29
- </div>
30
-
31
-
32
- <div class='fl pad1y space-right2'>
33
- <span class="strong">81.81% </span>
34
- <span class="quiet">Branches</span>
35
- <span class='fraction'>45/55</span>
36
- </div>
37
-
38
-
39
- <div class='fl pad1y space-right2'>
40
- <span class="strong">77.14% </span>
41
- <span class="quiet">Functions</span>
42
- <span class='fraction'>27/35</span>
43
- </div>
44
-
45
-
46
- <div class='fl pad1y space-right2'>
47
- <span class="strong">85.57% </span>
48
- <span class="quiet">Lines</span>
49
- <span class='fraction'>89/104</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 oninput="onInput()" type="search" id="fileSearch">
61
- </div>
62
- </template>
63
- </div>
64
- <div class='status-line high'></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>
163
- <a name='L98'></a><a href='#L98'>98</a>
164
- <a name='L99'></a><a href='#L99'>99</a>
165
- <a name='L100'></a><a href='#L100'>100</a>
166
- <a name='L101'></a><a href='#L101'>101</a>
167
- <a name='L102'></a><a href='#L102'>102</a>
168
- <a name='L103'></a><a href='#L103'>103</a>
169
- <a name='L104'></a><a href='#L104'>104</a>
170
- <a name='L105'></a><a href='#L105'>105</a>
171
- <a name='L106'></a><a href='#L106'>106</a>
172
- <a name='L107'></a><a href='#L107'>107</a>
173
- <a name='L108'></a><a href='#L108'>108</a>
174
- <a name='L109'></a><a href='#L109'>109</a>
175
- <a name='L110'></a><a href='#L110'>110</a>
176
- <a name='L111'></a><a href='#L111'>111</a>
177
- <a name='L112'></a><a href='#L112'>112</a>
178
- <a name='L113'></a><a href='#L113'>113</a>
179
- <a name='L114'></a><a href='#L114'>114</a>
180
- <a name='L115'></a><a href='#L115'>115</a>
181
- <a name='L116'></a><a href='#L116'>116</a>
182
- <a name='L117'></a><a href='#L117'>117</a>
183
- <a name='L118'></a><a href='#L118'>118</a>
184
- <a name='L119'></a><a href='#L119'>119</a>
185
- <a name='L120'></a><a href='#L120'>120</a>
186
- <a name='L121'></a><a href='#L121'>121</a>
187
- <a name='L122'></a><a href='#L122'>122</a>
188
- <a name='L123'></a><a href='#L123'>123</a>
189
- <a name='L124'></a><a href='#L124'>124</a>
190
- <a name='L125'></a><a href='#L125'>125</a>
191
- <a name='L126'></a><a href='#L126'>126</a>
192
- <a name='L127'></a><a href='#L127'>127</a>
193
- <a name='L128'></a><a href='#L128'>128</a>
194
- <a name='L129'></a><a href='#L129'>129</a>
195
- <a name='L130'></a><a href='#L130'>130</a>
196
- <a name='L131'></a><a href='#L131'>131</a>
197
- <a name='L132'></a><a href='#L132'>132</a>
198
- <a name='L133'></a><a href='#L133'>133</a>
199
- <a name='L134'></a><a href='#L134'>134</a>
200
- <a name='L135'></a><a href='#L135'>135</a>
201
- <a name='L136'></a><a href='#L136'>136</a>
202
- <a name='L137'></a><a href='#L137'>137</a>
203
- <a name='L138'></a><a href='#L138'>138</a>
204
- <a name='L139'></a><a href='#L139'>139</a>
205
- <a name='L140'></a><a href='#L140'>140</a>
206
- <a name='L141'></a><a href='#L141'>141</a>
207
- <a name='L142'></a><a href='#L142'>142</a>
208
- <a name='L143'></a><a href='#L143'>143</a>
209
- <a name='L144'></a><a href='#L144'>144</a>
210
- <a name='L145'></a><a href='#L145'>145</a>
211
- <a name='L146'></a><a href='#L146'>146</a>
212
- <a name='L147'></a><a href='#L147'>147</a>
213
- <a name='L148'></a><a href='#L148'>148</a>
214
- <a name='L149'></a><a href='#L149'>149</a>
215
- <a name='L150'></a><a href='#L150'>150</a>
216
- <a name='L151'></a><a href='#L151'>151</a>
217
- <a name='L152'></a><a href='#L152'>152</a>
218
- <a name='L153'></a><a href='#L153'>153</a>
219
- <a name='L154'></a><a href='#L154'>154</a>
220
- <a name='L155'></a><a href='#L155'>155</a>
221
- <a name='L156'></a><a href='#L156'>156</a>
222
- <a name='L157'></a><a href='#L157'>157</a>
223
- <a name='L158'></a><a href='#L158'>158</a>
224
- <a name='L159'></a><a href='#L159'>159</a>
225
- <a name='L160'></a><a href='#L160'>160</a>
226
- <a name='L161'></a><a href='#L161'>161</a>
227
- <a name='L162'></a><a href='#L162'>162</a>
228
- <a name='L163'></a><a href='#L163'>163</a>
229
- <a name='L164'></a><a href='#L164'>164</a>
230
- <a name='L165'></a><a href='#L165'>165</a>
231
- <a name='L166'></a><a href='#L166'>166</a>
232
- <a name='L167'></a><a href='#L167'>167</a>
233
- <a name='L168'></a><a href='#L168'>168</a>
234
- <a name='L169'></a><a href='#L169'>169</a>
235
- <a name='L170'></a><a href='#L170'>170</a>
236
- <a name='L171'></a><a href='#L171'>171</a>
237
- <a name='L172'></a><a href='#L172'>172</a>
238
- <a name='L173'></a><a href='#L173'>173</a>
239
- <a name='L174'></a><a href='#L174'>174</a>
240
- <a name='L175'></a><a href='#L175'>175</a>
241
- <a name='L176'></a><a href='#L176'>176</a>
242
- <a name='L177'></a><a href='#L177'>177</a>
243
- <a name='L178'></a><a href='#L178'>178</a>
244
- <a name='L179'></a><a href='#L179'>179</a>
245
- <a name='L180'></a><a href='#L180'>180</a>
246
- <a name='L181'></a><a href='#L181'>181</a>
247
- <a name='L182'></a><a href='#L182'>182</a>
248
- <a name='L183'></a><a href='#L183'>183</a>
249
- <a name='L184'></a><a href='#L184'>184</a>
250
- <a name='L185'></a><a href='#L185'>185</a>
251
- <a name='L186'></a><a href='#L186'>186</a>
252
- <a name='L187'></a><a href='#L187'>187</a>
253
- <a name='L188'></a><a href='#L188'>188</a>
254
- <a name='L189'></a><a href='#L189'>189</a>
255
- <a name='L190'></a><a href='#L190'>190</a>
256
- <a name='L191'></a><a href='#L191'>191</a>
257
- <a name='L192'></a><a href='#L192'>192</a>
258
- <a name='L193'></a><a href='#L193'>193</a>
259
- <a name='L194'></a><a href='#L194'>194</a>
260
- <a name='L195'></a><a href='#L195'>195</a>
261
- <a name='L196'></a><a href='#L196'>196</a>
262
- <a name='L197'></a><a href='#L197'>197</a>
263
- <a name='L198'></a><a href='#L198'>198</a>
264
- <a name='L199'></a><a href='#L199'>199</a>
265
- <a name='L200'></a><a href='#L200'>200</a>
266
- <a name='L201'></a><a href='#L201'>201</a>
267
- <a name='L202'></a><a href='#L202'>202</a>
268
- <a name='L203'></a><a href='#L203'>203</a>
269
- <a name='L204'></a><a href='#L204'>204</a>
270
- <a name='L205'></a><a href='#L205'>205</a>
271
- <a name='L206'></a><a href='#L206'>206</a>
272
- <a name='L207'></a><a href='#L207'>207</a>
273
- <a name='L208'></a><a href='#L208'>208</a>
274
- <a name='L209'></a><a href='#L209'>209</a>
275
- <a name='L210'></a><a href='#L210'>210</a>
276
- <a name='L211'></a><a href='#L211'>211</a>
277
- <a name='L212'></a><a href='#L212'>212</a>
278
- <a name='L213'></a><a href='#L213'>213</a>
279
- <a name='L214'></a><a href='#L214'>214</a>
280
- <a name='L215'></a><a href='#L215'>215</a>
281
- <a name='L216'></a><a href='#L216'>216</a>
282
- <a name='L217'></a><a href='#L217'>217</a>
283
- <a name='L218'></a><a href='#L218'>218</a>
284
- <a name='L219'></a><a href='#L219'>219</a>
285
- <a name='L220'></a><a href='#L220'>220</a>
286
- <a name='L221'></a><a href='#L221'>221</a>
287
- <a name='L222'></a><a href='#L222'>222</a>
288
- <a name='L223'></a><a href='#L223'>223</a>
289
- <a name='L224'></a><a href='#L224'>224</a>
290
- <a name='L225'></a><a href='#L225'>225</a>
291
- <a name='L226'></a><a href='#L226'>226</a>
292
- <a name='L227'></a><a href='#L227'>227</a>
293
- <a name='L228'></a><a href='#L228'>228</a>
294
- <a name='L229'></a><a href='#L229'>229</a>
295
- <a name='L230'></a><a href='#L230'>230</a>
296
- <a name='L231'></a><a href='#L231'>231</a>
297
- <a name='L232'></a><a href='#L232'>232</a>
298
- <a name='L233'></a><a href='#L233'>233</a>
299
- <a name='L234'></a><a href='#L234'>234</a>
300
- <a name='L235'></a><a href='#L235'>235</a>
301
- <a name='L236'></a><a href='#L236'>236</a>
302
- <a name='L237'></a><a href='#L237'>237</a>
303
- <a name='L238'></a><a href='#L238'>238</a>
304
- <a name='L239'></a><a href='#L239'>239</a>
305
- <a name='L240'></a><a href='#L240'>240</a>
306
- <a name='L241'></a><a href='#L241'>241</a>
307
- <a name='L242'></a><a href='#L242'>242</a>
308
- <a name='L243'></a><a href='#L243'>243</a>
309
- <a name='L244'></a><a href='#L244'>244</a>
310
- <a name='L245'></a><a href='#L245'>245</a>
311
- <a name='L246'></a><a href='#L246'>246</a>
312
- <a name='L247'></a><a href='#L247'>247</a>
313
- <a name='L248'></a><a href='#L248'>248</a>
314
- <a name='L249'></a><a href='#L249'>249</a>
315
- <a name='L250'></a><a href='#L250'>250</a>
316
- <a name='L251'></a><a href='#L251'>251</a>
317
- <a name='L252'></a><a href='#L252'>252</a>
318
- <a name='L253'></a><a href='#L253'>253</a>
319
- <a name='L254'></a><a href='#L254'>254</a>
320
- <a name='L255'></a><a href='#L255'>255</a>
321
- <a name='L256'></a><a href='#L256'>256</a>
322
- <a name='L257'></a><a href='#L257'>257</a>
323
- <a name='L258'></a><a href='#L258'>258</a>
324
- <a name='L259'></a><a href='#L259'>259</a>
325
- <a name='L260'></a><a href='#L260'>260</a>
326
- <a name='L261'></a><a href='#L261'>261</a>
327
- <a name='L262'></a><a href='#L262'>262</a>
328
- <a name='L263'></a><a href='#L263'>263</a>
329
- <a name='L264'></a><a href='#L264'>264</a>
330
- <a name='L265'></a><a href='#L265'>265</a>
331
- <a name='L266'></a><a href='#L266'>266</a>
332
- <a name='L267'></a><a href='#L267'>267</a>
333
- <a name='L268'></a><a href='#L268'>268</a>
334
- <a name='L269'></a><a href='#L269'>269</a>
335
- <a name='L270'></a><a href='#L270'>270</a>
336
- <a name='L271'></a><a href='#L271'>271</a>
337
- <a name='L272'></a><a href='#L272'>272</a>
338
- <a name='L273'></a><a href='#L273'>273</a>
339
- <a name='L274'></a><a href='#L274'>274</a>
340
- <a name='L275'></a><a href='#L275'>275</a>
341
- <a name='L276'></a><a href='#L276'>276</a>
342
- <a name='L277'></a><a href='#L277'>277</a>
343
- <a name='L278'></a><a href='#L278'>278</a>
344
- <a name='L279'></a><a href='#L279'>279</a>
345
- <a name='L280'></a><a href='#L280'>280</a>
346
- <a name='L281'></a><a href='#L281'>281</a>
347
- <a name='L282'></a><a href='#L282'>282</a>
348
- <a name='L283'></a><a href='#L283'>283</a>
349
- <a name='L284'></a><a href='#L284'>284</a>
350
- <a name='L285'></a><a href='#L285'>285</a>
351
- <a name='L286'></a><a href='#L286'>286</a>
352
- <a name='L287'></a><a href='#L287'>287</a>
353
- <a name='L288'></a><a href='#L288'>288</a>
354
- <a name='L289'></a><a href='#L289'>289</a>
355
- <a name='L290'></a><a href='#L290'>290</a>
356
- <a name='L291'></a><a href='#L291'>291</a>
357
- <a name='L292'></a><a href='#L292'>292</a>
358
- <a name='L293'></a><a href='#L293'>293</a>
359
- <a name='L294'></a><a href='#L294'>294</a>
360
- <a name='L295'></a><a href='#L295'>295</a>
361
- <a name='L296'></a><a href='#L296'>296</a>
362
- <a name='L297'></a><a href='#L297'>297</a>
363
- <a name='L298'></a><a href='#L298'>298</a>
364
- <a name='L299'></a><a href='#L299'>299</a>
365
- <a name='L300'></a><a href='#L300'>300</a>
366
- <a name='L301'></a><a href='#L301'>301</a>
367
- <a name='L302'></a><a href='#L302'>302</a>
368
- <a name='L303'></a><a href='#L303'>303</a>
369
- <a name='L304'></a><a href='#L304'>304</a>
370
- <a name='L305'></a><a href='#L305'>305</a>
371
- <a name='L306'></a><a href='#L306'>306</a>
372
- <a name='L307'></a><a href='#L307'>307</a>
373
- <a name='L308'></a><a href='#L308'>308</a>
374
- <a name='L309'></a><a href='#L309'>309</a>
375
- <a name='L310'></a><a href='#L310'>310</a>
376
- <a name='L311'></a><a href='#L311'>311</a>
377
- <a name='L312'></a><a href='#L312'>312</a>
378
- <a name='L313'></a><a href='#L313'>313</a>
379
- <a name='L314'></a><a href='#L314'>314</a>
380
- <a name='L315'></a><a href='#L315'>315</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
381
- <span class="cline-any cline-neutral">&nbsp;</span>
382
- <span class="cline-any cline-yes">1x</span>
383
- <span class="cline-any cline-neutral">&nbsp;</span>
384
- <span class="cline-any cline-neutral">&nbsp;</span>
385
- <span class="cline-any cline-neutral">&nbsp;</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-neutral">&nbsp;</span>
389
- <span class="cline-any cline-neutral">&nbsp;</span>
390
- <span class="cline-any cline-yes">1x</span>
391
- <span class="cline-any cline-yes">1x</span>
392
- <span class="cline-any cline-neutral">&nbsp;</span>
393
- <span class="cline-any cline-neutral">&nbsp;</span>
394
- <span class="cline-any cline-neutral">&nbsp;</span>
395
- <span class="cline-any cline-yes">1x</span>
396
- <span class="cline-any cline-yes">13x</span>
397
- <span class="cline-any cline-yes">13x</span>
398
- <span class="cline-any cline-yes">13x</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-yes">1x</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-neutral">&nbsp;</span>
410
- <span class="cline-any cline-neutral">&nbsp;</span>
411
- <span class="cline-any cline-neutral">&nbsp;</span>
412
- <span class="cline-any cline-neutral">&nbsp;</span>
413
- <span class="cline-any cline-neutral">&nbsp;</span>
414
- <span class="cline-any cline-neutral">&nbsp;</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-neutral">&nbsp;</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-neutral">&nbsp;</span>
428
- <span class="cline-any cline-neutral">&nbsp;</span>
429
- <span class="cline-any cline-neutral">&nbsp;</span>
430
- <span class="cline-any cline-neutral">&nbsp;</span>
431
- <span class="cline-any cline-neutral">&nbsp;</span>
432
- <span class="cline-any cline-neutral">&nbsp;</span>
433
- <span class="cline-any cline-neutral">&nbsp;</span>
434
- <span class="cline-any cline-neutral">&nbsp;</span>
435
- <span class="cline-any cline-neutral">&nbsp;</span>
436
- <span class="cline-any cline-neutral">&nbsp;</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-neutral">&nbsp;</span>
440
- <span class="cline-any cline-neutral">&nbsp;</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">3999x</span>
444
- <span class="cline-any cline-yes">3999x</span>
445
- <span class="cline-any cline-yes">3999x</span>
446
- <span class="cline-any cline-yes">3999x</span>
447
- <span class="cline-any cline-yes">3999x</span>
448
- <span class="cline-any cline-yes">3999x</span>
449
- <span class="cline-any cline-yes">3999x</span>
450
- <span class="cline-any cline-yes">3999x</span>
451
- <span class="cline-any cline-yes">3999x</span>
452
- <span class="cline-any cline-yes">3999x</span>
453
- <span class="cline-any cline-neutral">&nbsp;</span>
454
- <span class="cline-any cline-yes">3999x</span>
455
- <span class="cline-any cline-neutral">&nbsp;</span>
456
- <span class="cline-any cline-neutral">&nbsp;</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-neutral">&nbsp;</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-yes">3999x</span>
463
- <span class="cline-any cline-yes">3999x</span>
464
- <span class="cline-any cline-yes">3999x</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-yes">60x</span>
469
- <span class="cline-any cline-yes">49x</span>
470
- <span class="cline-any cline-yes">49x</span>
471
- <span class="cline-any cline-neutral">&nbsp;</span>
472
- <span class="cline-any cline-yes">11x</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-yes">24x</span>
477
- <span class="cline-any cline-neutral">&nbsp;</span>
478
- <span class="cline-any cline-neutral">&nbsp;</span>
479
- <span class="cline-any cline-neutral">&nbsp;</span>
480
- <span class="cline-any cline-yes">34x</span>
481
- <span class="cline-any cline-neutral">&nbsp;</span>
482
- <span class="cline-any cline-neutral">&nbsp;</span>
483
- <span class="cline-any cline-neutral">&nbsp;</span>
484
- <span class="cline-any cline-yes">67x</span>
485
- <span class="cline-any cline-neutral">&nbsp;</span>
486
- <span class="cline-any cline-neutral">&nbsp;</span>
487
- <span class="cline-any cline-neutral">&nbsp;</span>
488
- <span class="cline-any cline-yes">133x</span>
489
- <span class="cline-any cline-neutral">&nbsp;</span>
490
- <span class="cline-any cline-neutral">&nbsp;</span>
491
- <span class="cline-any cline-neutral">&nbsp;</span>
492
- <span class="cline-any cline-neutral">&nbsp;</span>
493
- <span class="cline-any cline-no">&nbsp;</span>
494
- <span class="cline-any cline-neutral">&nbsp;</span>
495
- <span class="cline-any cline-neutral">&nbsp;</span>
496
- <span class="cline-any cline-neutral">&nbsp;</span>
497
- <span class="cline-any cline-neutral">&nbsp;</span>
498
- <span class="cline-any cline-yes">123x</span>
499
- <span class="cline-any cline-yes">123x</span>
500
- <span class="cline-any cline-neutral">&nbsp;</span>
501
- <span class="cline-any cline-neutral">&nbsp;</span>
502
- <span class="cline-any cline-yes">123x</span>
503
- <span class="cline-any cline-no">&nbsp;</span>
504
- <span class="cline-any cline-no">&nbsp;</span>
505
- <span class="cline-any cline-neutral">&nbsp;</span>
506
- <span class="cline-any cline-yes">123x</span>
507
- <span class="cline-any cline-yes">123x</span>
508
- <span class="cline-any cline-neutral">&nbsp;</span>
509
- <span class="cline-any cline-neutral">&nbsp;</span>
510
- <span class="cline-any cline-yes">123x</span>
511
- <span class="cline-any cline-neutral">&nbsp;</span>
512
- <span class="cline-any cline-yes">123x</span>
513
- <span class="cline-any cline-neutral">&nbsp;</span>
514
- <span class="cline-any cline-neutral">&nbsp;</span>
515
- <span class="cline-any cline-neutral">&nbsp;</span>
516
- <span class="cline-any cline-yes">52x</span>
517
- <span class="cline-any cline-neutral">&nbsp;</span>
518
- <span class="cline-any cline-neutral">&nbsp;</span>
519
- <span class="cline-any cline-yes">52x</span>
520
- <span class="cline-any cline-no">&nbsp;</span>
521
- <span class="cline-any cline-neutral">&nbsp;</span>
522
- <span class="cline-any cline-neutral">&nbsp;</span>
523
- <span class="cline-any cline-neutral">&nbsp;</span>
524
- <span class="cline-any cline-neutral">&nbsp;</span>
525
- <span class="cline-any cline-neutral">&nbsp;</span>
526
- <span class="cline-any cline-neutral">&nbsp;</span>
527
- <span class="cline-any cline-neutral">&nbsp;</span>
528
- <span class="cline-any cline-yes">52x</span>
529
- <span class="cline-any cline-neutral">&nbsp;</span>
530
- <span class="cline-any cline-neutral">&nbsp;</span>
531
- <span class="cline-any cline-yes">52x</span>
532
- <span class="cline-any cline-neutral">&nbsp;</span>
533
- <span class="cline-any cline-neutral">&nbsp;</span>
534
- <span class="cline-any cline-neutral">&nbsp;</span>
535
- <span class="cline-any cline-neutral">&nbsp;</span>
536
- <span class="cline-any cline-neutral">&nbsp;</span>
537
- <span class="cline-any cline-neutral">&nbsp;</span>
538
- <span class="cline-any cline-neutral">&nbsp;</span>
539
- <span class="cline-any cline-neutral">&nbsp;</span>
540
- <span class="cline-any cline-neutral">&nbsp;</span>
541
- <span class="cline-any cline-neutral">&nbsp;</span>
542
- <span class="cline-any cline-neutral">&nbsp;</span>
543
- <span class="cline-any cline-yes">1810x</span>
544
- <span class="cline-any cline-neutral">&nbsp;</span>
545
- <span class="cline-any cline-neutral">&nbsp;</span>
546
- <span class="cline-any cline-yes">1810x</span>
547
- <span class="cline-any cline-neutral">&nbsp;</span>
548
- <span class="cline-any cline-neutral">&nbsp;</span>
549
- <span class="cline-any cline-yes">75x</span>
550
- <span class="cline-any cline-yes">75x</span>
551
- <span class="cline-any cline-yes">26x</span>
552
- <span class="cline-any cline-yes">13x</span>
553
- <span class="cline-any cline-neutral">&nbsp;</span>
554
- <span class="cline-any cline-neutral">&nbsp;</span>
555
- <span class="cline-any cline-neutral">&nbsp;</span>
556
- <span class="cline-any cline-neutral">&nbsp;</span>
557
- <span class="cline-any cline-neutral">&nbsp;</span>
558
- <span class="cline-any cline-yes">62x</span>
559
- <span class="cline-any cline-yes">62x</span>
560
- <span class="cline-any cline-yes">2x</span>
561
- <span class="cline-any cline-yes">1x</span>
562
- <span class="cline-any cline-neutral">&nbsp;</span>
563
- <span class="cline-any cline-neutral">&nbsp;</span>
564
- <span class="cline-any cline-neutral">&nbsp;</span>
565
- <span class="cline-any cline-neutral">&nbsp;</span>
566
- <span class="cline-any cline-neutral">&nbsp;</span>
567
- <span class="cline-any cline-neutral">&nbsp;</span>
568
- <span class="cline-any cline-neutral">&nbsp;</span>
569
- <span class="cline-any cline-neutral">&nbsp;</span>
570
- <span class="cline-any cline-yes">70x</span>
571
- <span class="cline-any cline-yes">8x</span>
572
- <span class="cline-any cline-neutral">&nbsp;</span>
573
- <span class="cline-any cline-neutral">&nbsp;</span>
574
- <span class="cline-any cline-yes">70x</span>
575
- <span class="cline-any cline-yes">70x</span>
576
- <span class="cline-any cline-yes">70x</span>
577
- <span class="cline-any cline-yes">70x</span>
578
- <span class="cline-any cline-neutral">&nbsp;</span>
579
- <span class="cline-any cline-yes">70x</span>
580
- <span class="cline-any cline-neutral">&nbsp;</span>
581
- <span class="cline-any cline-neutral">&nbsp;</span>
582
- <span class="cline-any cline-neutral">&nbsp;</span>
583
- <span class="cline-any cline-neutral">&nbsp;</span>
584
- <span class="cline-any cline-yes">70x</span>
585
- <span class="cline-any cline-neutral">&nbsp;</span>
586
- <span class="cline-any cline-yes">27x</span>
587
- <span class="cline-any cline-neutral">&nbsp;</span>
588
- <span class="cline-any cline-yes">27x</span>
589
- <span class="cline-any cline-neutral">&nbsp;</span>
590
- <span class="cline-any cline-yes">27x</span>
591
- <span class="cline-any cline-yes">27x</span>
592
- <span class="cline-any cline-yes">8x</span>
593
- <span class="cline-any cline-neutral">&nbsp;</span>
594
- <span class="cline-any cline-neutral">&nbsp;</span>
595
- <span class="cline-any cline-yes">9x</span>
596
- <span class="cline-any cline-neutral">&nbsp;</span>
597
- <span class="cline-any cline-neutral">&nbsp;</span>
598
- <span class="cline-any cline-yes">19x</span>
599
- <span class="cline-any cline-neutral">&nbsp;</span>
600
- <span class="cline-any cline-neutral">&nbsp;</span>
601
- <span class="cline-any cline-neutral">&nbsp;</span>
602
- <span class="cline-any cline-yes">19x</span>
603
- <span class="cline-any cline-yes">19x</span>
604
- <span class="cline-any cline-neutral">&nbsp;</span>
605
- <span class="cline-any cline-yes">19x</span>
606
- <span class="cline-any cline-yes">19x</span>
607
- <span class="cline-any cline-neutral">&nbsp;</span>
608
- <span class="cline-any cline-neutral">&nbsp;</span>
609
- <span class="cline-any cline-no">&nbsp;</span>
610
- <span class="cline-any cline-neutral">&nbsp;</span>
611
- <span class="cline-any cline-neutral">&nbsp;</span>
612
- <span class="cline-any cline-neutral">&nbsp;</span>
613
- <span class="cline-any cline-neutral">&nbsp;</span>
614
- <span class="cline-any cline-neutral">&nbsp;</span>
615
- <span class="cline-any cline-neutral">&nbsp;</span>
616
- <span class="cline-any cline-neutral">&nbsp;</span>
617
- <span class="cline-any cline-neutral">&nbsp;</span>
618
- <span class="cline-any cline-neutral">&nbsp;</span>
619
- <span class="cline-any cline-neutral">&nbsp;</span>
620
- <span class="cline-any cline-yes">70x</span>
621
- <span class="cline-any cline-neutral">&nbsp;</span>
622
- <span class="cline-any cline-neutral">&nbsp;</span>
623
- <span class="cline-any cline-neutral">&nbsp;</span>
624
- <span class="cline-any cline-no">&nbsp;</span>
625
- <span class="cline-any cline-no">&nbsp;</span>
626
- <span class="cline-any cline-no">&nbsp;</span>
627
- <span class="cline-any cline-no">&nbsp;</span>
628
- <span class="cline-any cline-no">&nbsp;</span>
629
- <span class="cline-any cline-neutral">&nbsp;</span>
630
- <span class="cline-any cline-no">&nbsp;</span>
631
- <span class="cline-any cline-no">&nbsp;</span>
632
- <span class="cline-any cline-neutral">&nbsp;</span>
633
- <span class="cline-any cline-no">&nbsp;</span>
634
- <span class="cline-any cline-neutral">&nbsp;</span>
635
- <span class="cline-any cline-neutral">&nbsp;</span>
636
- <span class="cline-any cline-neutral">&nbsp;</span>
637
- <span class="cline-any cline-neutral">&nbsp;</span>
638
- <span class="cline-any cline-neutral">&nbsp;</span>
639
- <span class="cline-any cline-neutral">&nbsp;</span>
640
- <span class="cline-any cline-neutral">&nbsp;</span>
641
- <span class="cline-any cline-neutral">&nbsp;</span>
642
- <span class="cline-any cline-yes">70x</span>
643
- <span class="cline-any cline-neutral">&nbsp;</span>
644
- <span class="cline-any cline-neutral">&nbsp;</span>
645
- <span class="cline-any cline-neutral">&nbsp;</span>
646
- <span class="cline-any cline-yes">28x</span>
647
- <span class="cline-any cline-yes">28x</span>
648
- <span class="cline-any cline-yes">28x</span>
649
- <span class="cline-any cline-yes">28x</span>
650
- <span class="cline-any cline-neutral">&nbsp;</span>
651
- <span class="cline-any cline-neutral">&nbsp;</span>
652
- <span class="cline-any cline-neutral">&nbsp;</span>
653
- <span class="cline-any cline-neutral">&nbsp;</span>
654
- <span class="cline-any cline-yes">28x</span>
655
- <span class="cline-any cline-neutral">&nbsp;</span>
656
- <span class="cline-any cline-yes">27x</span>
657
- <span class="cline-any cline-yes">27x</span>
658
- <span class="cline-any cline-neutral">&nbsp;</span>
659
- <span class="cline-any cline-neutral">&nbsp;</span>
660
- <span class="cline-any cline-no">&nbsp;</span>
661
- <span class="cline-any cline-neutral">&nbsp;</span>
662
- <span class="cline-any cline-neutral">&nbsp;</span>
663
- <span class="cline-any cline-neutral">&nbsp;</span>
664
- <span class="cline-any cline-neutral">&nbsp;</span>
665
- <span class="cline-any cline-neutral">&nbsp;</span>
666
- <span class="cline-any cline-neutral">&nbsp;</span>
667
- <span class="cline-any cline-neutral">&nbsp;</span>
668
- <span class="cline-any cline-neutral">&nbsp;</span>
669
- <span class="cline-any cline-yes">69x</span>
670
- <span class="cline-any cline-neutral">&nbsp;</span>
671
- <span class="cline-any cline-neutral">&nbsp;</span>
672
- <span class="cline-any cline-neutral">&nbsp;</span>
673
- <span class="cline-any cline-yes">21x</span>
674
- <span class="cline-any cline-yes">21x</span>
675
- <span class="cline-any cline-yes">21x</span>
676
- <span class="cline-any cline-yes">21x</span>
677
- <span class="cline-any cline-yes">21x</span>
678
- <span class="cline-any cline-neutral">&nbsp;</span>
679
- <span class="cline-any cline-yes">21x</span>
680
- <span class="cline-any cline-neutral">&nbsp;</span>
681
- <span class="cline-any cline-yes">21x</span>
682
- <span class="cline-any cline-yes">21x</span>
683
- <span class="cline-any cline-neutral">&nbsp;</span>
684
- <span class="cline-any cline-neutral">&nbsp;</span>
685
- <span class="cline-any cline-no">&nbsp;</span>
686
- <span class="cline-any cline-neutral">&nbsp;</span>
687
- <span class="cline-any cline-neutral">&nbsp;</span>
688
- <span class="cline-any cline-neutral">&nbsp;</span>
689
- <span class="cline-any cline-neutral">&nbsp;</span>
690
- <span class="cline-any cline-neutral">&nbsp;</span>
691
- <span class="cline-any cline-neutral">&nbsp;</span>
692
- <span class="cline-any cline-neutral">&nbsp;</span>
693
- <span class="cline-any cline-neutral">&nbsp;</span>
694
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import ValidationError from '../../validationError';
695
- &nbsp;
696
- import {
697
- stripFields,
698
- convertJsonToString,
699
- duplicateItems,
700
- obfuscateSensitiveValues,
701
- stripObfuscatedFieldsFromPayload,
702
- detectInsufficientScopeError,
703
- } from '../../utils';
704
- import log from '../../../logger';
705
- import { calculateChanges } from '../../calculateChanges';
706
- import { Asset, Assets, Auth0APIClient, CalculatedChanges } from '../../../types';
707
- import { ConfigFunction } from '../../../configFactory';
708
- &nbsp;
709
- export function order(value) {
710
- return function decorator(t, n, descriptor) {
711
- descriptor.value.order = value; // eslint-disable-line
712
- return descriptor;
713
- };
714
- }
715
- &nbsp;
716
- type ApiMethodOverride = string | Function;
717
- &nbsp;
718
- export default class APIHandler {
719
- config: ConfigFunction;
720
- id: string;
721
- type: string;
722
- updated: number;
723
- created: number;
724
- deleted: number;
725
- existing: null | Asset | Asset[];
726
- client: Auth0APIClient; // TODO: apply stronger types to Auth0 API client
727
- identifiers: string[];
728
- objectFields: string[];
729
- sensitiveFieldsToObfuscate: string[];
730
- stripUpdateFields: string[]; //Fields to strip from payload when updating
731
- stripCreateFields: string[]; //Fields to strip from payload when creating
732
- name?: string; // TODO: understand if any handlers actually leverage `name` property
733
- functions: {
734
- getAll: ApiMethodOverride;
735
- update: ApiMethodOverride;
736
- create: ApiMethodOverride;
737
- delete: ApiMethodOverride;
738
- };
739
- &nbsp;
740
- constructor(options: {
741
- id?: APIHandler['id'];
742
- config: ConfigFunction;
743
- type: APIHandler['type'];
744
- client: Auth0APIClient;
745
- objectFields?: APIHandler['objectFields'];
746
- identifiers?: APIHandler['identifiers'];
747
- stripUpdateFields?: APIHandler['stripUpdateFields'];
748
- sensitiveFieldsToObfuscate?: APIHandler['sensitiveFieldsToObfuscate'];
749
- stripCreateFields?: APIHandler['stripCreateFields'];
750
- functions: {
751
- getAll?: ApiMethodOverride;
752
- update?: ApiMethodOverride;
753
- create?: ApiMethodOverride;
754
- delete?: ApiMethodOverride;
755
- };
756
- }) {
757
- this.config = options.config;
758
- this.type = options.type;
759
- this.id = options.id || 'id';
760
- this.client = options.client;
761
- this.existing = null;
762
- this.identifiers = options.identifiers || ['id', 'name'];
763
- this.objectFields = options.objectFields || [];
764
- this.stripUpdateFields = [...(options.stripUpdateFields || []), this.id];
765
- this.sensitiveFieldsToObfuscate = options.sensitiveFieldsToObfuscate || [];
766
- this.stripCreateFields = options.stripCreateFields || [];
767
- &nbsp;
768
- this.functions = {
769
- getAll: 'getAll',
770
- create: 'create',
771
- delete: 'delete',
772
- update: 'update',
773
- ...(options.functions || {}),
774
- };
775
- &nbsp;
776
- this.updated = 0;
777
- this.created = 0;
778
- this.deleted = 0;
779
- }
780
- &nbsp;
781
- getClientFN(fn: ApiMethodOverride): Function {
782
- if (typeof fn === 'string') {
783
- const client = this.client[this.type];
784
- return client[fn].bind(client);
785
- }
786
- return fn;
787
- }
788
- &nbsp;
789
- didDelete(item: Asset): void {
790
- log.info(`Deleted [${this.type}]: ${this.objString(item)}`);
791
- }
792
- &nbsp;
793
- didCreate(item: Asset): void {
794
- log.info(`Created [${this.type}]: ${this.objString(item)}`);
795
- }
796
- &nbsp;
797
- didUpdate(item: Asset): void {
798
- log.info(`Updated [${this.type}]: ${this.objString(item)}`);
799
- }
800
- &nbsp;
801
- objString(item: Asset): string {
802
- return convertJsonToString(item);
803
- }
804
- &nbsp;
805
- async <span class="fstat-no" title="function not covered" >getType(</span>): Promise&lt;Asset | Asset[] | null&gt; {
806
- // Each type to impl how to get the existing as its not consistent across the mgnt api.
807
- <span class="cstat-no" title="statement not covered" > throw new Error(`Must implement getType for type ${this.type}`);</span>
808
- }
809
- &nbsp;
810
- async load(): Promise&lt;{ [key: string]: Asset | Asset[] | null }&gt; {
811
- // Load Asset from Tenant
812
- const data = await (async () =&gt; {
813
- const { data, hadSufficientScopes, requiredScopes } = await detectInsufficientScopeError&lt;
814
- Asset | Asset[]
815
- &gt;(this.getType.bind(this));
816
- <span class="missing-if-branch" title="if path not taken" >I</span>if (!hadSufficientScopes) {
817
- <span class="cstat-no" title="statement not covered" > log.warn(`Cannot retrieve ${this.type} due to missing scopes: ${requiredScopes}`);</span>
818
- <span class="cstat-no" title="statement not covered" > return null;</span>
819
- }
820
- log.info(`Retrieving ${this.type} data from Auth0`);
821
- return data;
822
- })();
823
- &nbsp;
824
- this.existing = obfuscateSensitiveValues(data, this.sensitiveFieldsToObfuscate);
825
- &nbsp;
826
- return { [this.type]: this.existing };
827
- }
828
- &nbsp;
829
- async calcChanges(assets: Assets): Promise&lt;CalculatedChanges&gt; {
830
- const typeAssets = assets[this.type];
831
- &nbsp;
832
- // Do nothing if not set
833
- <span class="missing-if-branch" title="if path not taken" >I</span>if (!typeAssets) {
834
- <span class="cstat-no" title="statement not covered" > return {</span>
835
- del: [],
836
- create: [],
837
- conflicts: [],
838
- update: [],
839
- };
840
- }
841
- &nbsp;
842
- const existing = await this.getType();
843
- &nbsp;
844
- // Figure out what needs to be updated vs created
845
- return calculateChanges({
846
- handler: this,
847
- assets: typeAssets,
848
- allowDelete: !!this.config('AUTH0_ALLOW_DELETE'),
849
- //@ts-ignore TODO: investigate what happens when `existing` is null
850
- existing,
851
- identifiers: this.identifiers,
852
- });
853
- }
854
- &nbsp;
855
- async validate(assets: Assets): Promise&lt;void&gt; {
856
- // Ensure no duplication in id and name
857
- const typeAssets = assets[this.type];
858
- &nbsp;
859
- // Do nothing if not set
860
- if (!Array.isArray(typeAssets)) return;
861
- &nbsp;
862
- // Do not allow items with same name
863
- const duplicateNames = duplicateItems(typeAssets, 'name');
864
- if (duplicateNames.length &gt; 0) {
865
- const formatted = duplicateNames.map((dups) =&gt; dups.map((d) =&gt; `${d.name}`));
866
- throw new ValidationError(`There are multiple ${this.type} with the same name combinations
867
- ${convertJsonToString(formatted)}.
868
- Names must be unique.`);
869
- }
870
- &nbsp;
871
- // Do not allow items with same id
872
- const duplicateIDs = duplicateItems(typeAssets, this.id);
873
- if (duplicateIDs.length &gt; 0) {
874
- const formatted = duplicateIDs.map((dups) =&gt; dups.map((d) =&gt; `${d[this.id]}`));
875
- throw new ValidationError(`There are multiple ${
876
- this.type
877
- } for the following stage-order combinations
878
- ${convertJsonToString(formatted)}.
879
- Only one rule must be defined for the same order number in a stage.`);
880
- }
881
- }
882
- &nbsp;
883
- async processChanges(assets: Assets, changes: CalculatedChanges): Promise&lt;void&gt; {
884
- if (!changes) {
885
- changes = await this.calcChanges(assets);
886
- }
887
- &nbsp;
888
- const del = changes.del || <span class="branch-1 cbranch-no" title="branch not covered" >[];</span>
889
- const update = changes.update || <span class="branch-1 cbranch-no" title="branch not covered" >[];</span>
890
- const create = changes.create || <span class="branch-1 cbranch-no" title="branch not covered" >[];</span>
891
- const conflicts = changes.conflicts || <span class="branch-1 cbranch-no" title="branch not covered" >[];</span>
892
- &nbsp;
893
- log.debug(
894
- `Start processChanges for ${this.type} [delete:${del.length}] [update:${update.length}], [create:${create.length}], [conflicts:${conflicts.length}]`
895
- );
896
- &nbsp;
897
- // Process Deleted
898
- if (del.length &gt; 0) {
899
- const allowDelete =
900
- this.config('AUTH0_ALLOW_DELETE') === 'true' || this.config('AUTH0_ALLOW_DELETE') === true;
901
- const byExtension =
902
- this.config('EXTENSION_SECRET') &amp;&amp;
903
- (this.type === 'rules' || this.type === 'resourceServers');
904
- const shouldDelete = allowDelete || byExtension;
905
- if (!shouldDelete) {
906
- log.warn(`Detected the following ${
907
- this.type
908
- } should be deleted. Doing so may be destructive.\nYou can enable deletes by setting 'AUTH0_ALLOW_DELETE' to true in the config
909
- \n${changes.del.map((i) =&gt; this.objString(i)).join('\n')}
910
- `);
911
- } else {
912
- await this.client.pool
913
- .addEachTask({
914
- data: del || <span class="branch-1 cbranch-no" title="branch not covered" >[],</span>
915
- generator: (delItem) =&gt; {
916
- const delFunction = this.getClientFN(this.functions.delete);
917
- return delFunction({ [this.id]: delItem[this.id] })
918
- .then(() =&gt; {
919
- this.didDelete(delItem);
920
- this.deleted += 1;
921
- })
922
- .catch(<span class="fstat-no" title="function not covered" >(e</span>rr) =&gt; {
923
- <span class="cstat-no" title="statement not covered" > throw new Error(</span>
924
- `Problem deleting ${this.type} ${this.objString(delItem)}\n${err}`
925
- );
926
- });
927
- },
928
- })
929
- .promise();
930
- }
931
- }
932
- &nbsp;
933
- // Process Renaming Entries Temp due to conflicts in names
934
- await this.client.pool
935
- .addEachTask({
936
- data: conflicts || <span class="branch-1 cbranch-no" title="branch not covered" >[],</span>
937
- generator: <span class="fstat-no" title="function not covered" >(u</span>pdateItem) =&gt; {
938
- const updateFN = <span class="cstat-no" title="statement not covered" >this.getClientFN(this.functions.update);</span>
939
- const params = <span class="cstat-no" title="statement not covered" >{ [this.id]: updateItem[this.id] };</span>
940
- const updatePayload = <span class="cstat-no" title="statement not covered" >(<span class="fstat-no" title="function not covered" >() =</span>&gt; {</span>
941
- let data = <span class="cstat-no" title="statement not covered" >stripFields({ ...updateItem }, this.stripUpdateFields);</span>
942
- <span class="cstat-no" title="statement not covered" > return stripObfuscatedFieldsFromPayload(data, this.sensitiveFieldsToObfuscate);</span>
943
- })();
944
- <span class="cstat-no" title="statement not covered" > return updateFN(params, updatePayload)</span>
945
- .then(<span class="fstat-no" title="function not covered" >(d</span>ata) =&gt; <span class="cstat-no" title="statement not covered" >this.didUpdate(data))</span>
946
- .catch(<span class="fstat-no" title="function not covered" >(e</span>rr) =&gt; {
947
- <span class="cstat-no" title="statement not covered" > throw new Error(</span>
948
- `Problem updating ${this.type} ${this.objString(updateItem)}\n${err}`
949
- );
950
- });
951
- },
952
- })
953
- .promise();
954
- &nbsp;
955
- // Process Creations
956
- await this.client.pool
957
- .addEachTask({
958
- data: create || <span class="branch-1 cbranch-no" title="branch not covered" >[],</span>
959
- generator: (createItem) =&gt; {
960
- const createFunction = this.getClientFN(this.functions.create);
961
- const createPayload = (() =&gt; {
962
- const strippedPayload = stripFields(createItem, this.stripCreateFields);
963
- return stripObfuscatedFieldsFromPayload(
964
- strippedPayload,
965
- this.sensitiveFieldsToObfuscate
966
- );
967
- })();
968
- return createFunction(createPayload)
969
- .then((data) =&gt; {
970
- this.didCreate(data);
971
- this.created += 1;
972
- })
973
- .catch(<span class="fstat-no" title="function not covered" >(e</span>rr) =&gt; {
974
- <span class="cstat-no" title="statement not covered" > throw new Error(</span>
975
- `Problem creating ${this.type} ${this.objString(createItem)}\n${err}`
976
- );
977
- });
978
- },
979
- })
980
- .promise();
981
- &nbsp;
982
- // Process Updates and strip fields not allowed in updates
983
- await this.client.pool
984
- .addEachTask({
985
- data: update || <span class="branch-1 cbranch-no" title="branch not covered" >[],</span>
986
- generator: (updateItem) =&gt; {
987
- const updateFN = this.getClientFN(this.functions.update);
988
- const params = { [this.id]: updateItem[this.id] };
989
- const updatePayload = (() =&gt; {
990
- let data = stripFields({ ...updateItem }, this.stripUpdateFields);
991
- return stripObfuscatedFieldsFromPayload(data, this.sensitiveFieldsToObfuscate);
992
- })();
993
- return updateFN(params, updatePayload)
994
- .then((data) =&gt; {
995
- this.didUpdate(data);
996
- this.updated += 1;
997
- })
998
- .catch(<span class="fstat-no" title="function not covered" >(e</span>rr) =&gt; {
999
- <span class="cstat-no" title="statement not covered" > throw new Error(</span>
1000
- `Problem updating ${this.type} ${this.objString(updateItem)}\n${err}`
1001
- );
1002
- });
1003
- },
1004
- })
1005
- .promise();
1006
- }
1007
- }
1008
- &nbsp;</pre></td></tr></table></pre>
1009
-
1010
- <div class='push'></div><!-- for sticky footer -->
1011
- </div><!-- /wrapper -->
1012
- <div class='footer quiet pad2 space-top1 center small'>
1013
- Code coverage generated by
1014
- <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
1015
- at Thu Nov 30 2023 12:19:01 GMT+0000 (Coordinated Universal Time)
1016
- </div>
1017
- <script src="../../../../prettify.js"></script>
1018
- <script>
1019
- window.onload = function () {
1020
- prettyPrint();
1021
- };
1022
- </script>
1023
- <script src="../../../../sorter.js"></script>
1024
- <script src="../../../../block-navigation.js"></script>
1025
- </body>
1026
- </html>
1027
-