auth0-deploy-cli 7.21.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 (144) hide show
  1. package/.nyc_output/{79967eba-48ff-4031-8011-aca37169a77a.json → 8c594b79-aa55-4e49-845c-8d88ca24c494.json} +1 -1
  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/{79967eba-48ff-4031-8011-aca37169a77a.json → 8c594b79-aa55-4e49-845c-8d88ca24c494.json} +1 -1
  5. package/.nyc_output/processinfo/index.json +1 -1
  6. package/CHANGELOG.md +11 -1
  7. package/coverage/lcov-report/index.html +5 -5
  8. package/coverage/lcov.info +242 -241
  9. package/lib/tools/auth0/handlers/organizations.d.ts +3 -0
  10. package/lib/tools/auth0/handlers/organizations.js +4 -1
  11. package/lib/tools/auth0/handlers/organizations.js.map +1 -1
  12. package/lib/tools/auth0/handlers/themes.d.ts +6 -0
  13. package/lib/tools/auth0/handlers/themes.js +6 -0
  14. package/lib/tools/auth0/handlers/themes.js.map +1 -1
  15. package/package.json +1 -1
  16. package/.nyc_output/processinfo/16c9e62d-53da-4c19-ba42-9267b40f713d.json +0 -1
  17. package/.nyc_output/processinfo/8b142617-6824-4c2c-9f37-25748820eb7c.json +0 -1
  18. package/coverage/lcov-report/src/args.ts.html +0 -505
  19. package/coverage/lcov-report/src/commands/export.ts.html +0 -274
  20. package/coverage/lcov-report/src/commands/import.ts.html +0 -250
  21. package/coverage/lcov-report/src/commands/index.html +0 -131
  22. package/coverage/lcov-report/src/configFactory.ts.html +0 -175
  23. package/coverage/lcov-report/src/context/defaults.ts.html +0 -196
  24. package/coverage/lcov-report/src/context/directory/handlers/actions.ts.html +0 -433
  25. package/coverage/lcov-report/src/context/directory/handlers/attackProtection.ts.html +0 -334
  26. package/coverage/lcov-report/src/context/directory/handlers/branding.ts.html +0 -475
  27. package/coverage/lcov-report/src/context/directory/handlers/clientGrants.ts.html +0 -385
  28. package/coverage/lcov-report/src/context/directory/handlers/clients.ts.html +0 -340
  29. package/coverage/lcov-report/src/context/directory/handlers/connections.ts.html +0 -388
  30. package/coverage/lcov-report/src/context/directory/handlers/customDomains.ts.html +0 -232
  31. package/coverage/lcov-report/src/context/directory/handlers/databases.ts.html +0 -568
  32. package/coverage/lcov-report/src/context/directory/handlers/emailProvider.ts.html +0 -250
  33. package/coverage/lcov-report/src/context/directory/handlers/emailTemplates.ts.html +0 -343
  34. package/coverage/lcov-report/src/context/directory/handlers/guardianFactorProviders.ts.html +0 -271
  35. package/coverage/lcov-report/src/context/directory/handlers/guardianFactorTemplates.ts.html +0 -262
  36. package/coverage/lcov-report/src/context/directory/handlers/guardianFactors.ts.html +0 -262
  37. package/coverage/lcov-report/src/context/directory/handlers/guardianPhoneFactorMessageTypes.ts.html +0 -223
  38. package/coverage/lcov-report/src/context/directory/handlers/guardianPhoneFactorSelectedProvider.ts.html +0 -235
  39. package/coverage/lcov-report/src/context/directory/handlers/guardianPolicies.ts.html +0 -223
  40. package/coverage/lcov-report/src/context/directory/handlers/hooks.ts.html +0 -289
  41. package/coverage/lcov-report/src/context/directory/handlers/index.html +0 -551
  42. package/coverage/lcov-report/src/context/directory/handlers/index.ts.html +0 -304
  43. package/coverage/lcov-report/src/context/directory/handlers/logStreams.ts.html +0 -235
  44. package/coverage/lcov-report/src/context/directory/handlers/migrations.ts.html +0 -205
  45. package/coverage/lcov-report/src/context/directory/handlers/organizations.ts.html +0 -304
  46. package/coverage/lcov-report/src/context/directory/handlers/pages.ts.html +0 -379
  47. package/coverage/lcov-report/src/context/directory/handlers/prompts.ts.html +0 -331
  48. package/coverage/lcov-report/src/context/directory/handlers/resourceServers.ts.html +0 -247
  49. package/coverage/lcov-report/src/context/directory/handlers/roles.ts.html +0 -268
  50. package/coverage/lcov-report/src/context/directory/handlers/rules.ts.html +0 -277
  51. package/coverage/lcov-report/src/context/directory/handlers/rulesConfigs.ts.html +0 -208
  52. package/coverage/lcov-report/src/context/directory/handlers/tenant.ts.html +0 -298
  53. package/coverage/lcov-report/src/context/directory/handlers/themes.ts.html +0 -241
  54. package/coverage/lcov-report/src/context/directory/handlers/triggers.ts.html +0 -229
  55. package/coverage/lcov-report/src/context/directory/index.html +0 -116
  56. package/coverage/lcov-report/src/context/directory/index.ts.html +0 -490
  57. package/coverage/lcov-report/src/context/index.html +0 -131
  58. package/coverage/lcov-report/src/context/index.ts.html +0 -784
  59. package/coverage/lcov-report/src/context/yaml/handlers/actions.ts.html +0 -388
  60. package/coverage/lcov-report/src/context/yaml/handlers/attackProtection.ts.html +0 -193
  61. package/coverage/lcov-report/src/context/yaml/handlers/branding.ts.html +0 -376
  62. package/coverage/lcov-report/src/context/yaml/handlers/clientGrants.ts.html +0 -223
  63. package/coverage/lcov-report/src/context/yaml/handlers/clients.ts.html +0 -304
  64. package/coverage/lcov-report/src/context/yaml/handlers/connections.ts.html +0 -394
  65. package/coverage/lcov-report/src/context/yaml/handlers/customDomains.ts.html +0 -151
  66. package/coverage/lcov-report/src/context/yaml/handlers/databases.ts.html +0 -352
  67. package/coverage/lcov-report/src/context/yaml/handlers/emailProvider.ts.html +0 -208
  68. package/coverage/lcov-report/src/context/yaml/handlers/emailTemplates.ts.html +0 -241
  69. package/coverage/lcov-report/src/context/yaml/handlers/guardianFactorProviders.ts.html +0 -151
  70. package/coverage/lcov-report/src/context/yaml/handlers/guardianFactorTemplates.ts.html +0 -151
  71. package/coverage/lcov-report/src/context/yaml/handlers/guardianFactors.ts.html +0 -151
  72. package/coverage/lcov-report/src/context/yaml/handlers/guardianPhoneFactorMessageTypes.ts.html +0 -151
  73. package/coverage/lcov-report/src/context/yaml/handlers/guardianPhoneFactorSelectedProvider.ts.html +0 -169
  74. package/coverage/lcov-report/src/context/yaml/handlers/guardianPolicies.ts.html +0 -151
  75. package/coverage/lcov-report/src/context/yaml/handlers/hooks.ts.html +0 -280
  76. package/coverage/lcov-report/src/context/yaml/handlers/index.html +0 -551
  77. package/coverage/lcov-report/src/context/yaml/handlers/index.ts.html +0 -298
  78. package/coverage/lcov-report/src/context/yaml/handlers/logStreams.ts.html +0 -151
  79. package/coverage/lcov-report/src/context/yaml/handlers/migrations.ts.html +0 -145
  80. package/coverage/lcov-report/src/context/yaml/handlers/organizations.ts.html +0 -235
  81. package/coverage/lcov-report/src/context/yaml/handlers/pages.ts.html +0 -265
  82. package/coverage/lcov-report/src/context/yaml/handlers/prompts.ts.html +0 -154
  83. package/coverage/lcov-report/src/context/yaml/handlers/resourceServers.ts.html +0 -157
  84. package/coverage/lcov-report/src/context/yaml/handlers/roles.ts.html +0 -199
  85. package/coverage/lcov-report/src/context/yaml/handlers/rules.ts.html +0 -253
  86. package/coverage/lcov-report/src/context/yaml/handlers/rulesConfigs.ts.html +0 -181
  87. package/coverage/lcov-report/src/context/yaml/handlers/tenant.ts.html +0 -235
  88. package/coverage/lcov-report/src/context/yaml/handlers/themes.ts.html +0 -154
  89. package/coverage/lcov-report/src/context/yaml/handlers/triggers.ts.html +0 -172
  90. package/coverage/lcov-report/src/context/yaml/index.html +0 -116
  91. package/coverage/lcov-report/src/context/yaml/index.ts.html +0 -703
  92. package/coverage/lcov-report/src/index.html +0 -236
  93. package/coverage/lcov-report/src/index.ts.html +0 -361
  94. package/coverage/lcov-report/src/keywordPreservation.ts.html +0 -982
  95. package/coverage/lcov-report/src/logger.ts.html +0 -133
  96. package/coverage/lcov-report/src/readonly.ts.html +0 -343
  97. package/coverage/lcov-report/src/sessionDurationsToMinutes.ts.html +0 -154
  98. package/coverage/lcov-report/src/tools/auth0/client.ts.html +0 -604
  99. package/coverage/lcov-report/src/tools/auth0/handlers/actions.ts.html +0 -907
  100. package/coverage/lcov-report/src/tools/auth0/handlers/attackProtection.ts.html +0 -397
  101. package/coverage/lcov-report/src/tools/auth0/handlers/branding.ts.html +0 -430
  102. package/coverage/lcov-report/src/tools/auth0/handlers/clientGrants.ts.html +0 -436
  103. package/coverage/lcov-report/src/tools/auth0/handlers/clients.ts.html +0 -361
  104. package/coverage/lcov-report/src/tools/auth0/handlers/connections.ts.html +0 -598
  105. package/coverage/lcov-report/src/tools/auth0/handlers/customDomains.ts.html +0 -382
  106. package/coverage/lcov-report/src/tools/auth0/handlers/databases.ts.html +0 -436
  107. package/coverage/lcov-report/src/tools/auth0/handlers/default.ts.html +0 -1027
  108. package/coverage/lcov-report/src/tools/auth0/handlers/emailProvider.ts.html +0 -283
  109. package/coverage/lcov-report/src/tools/auth0/handlers/emailTemplates.ts.html +0 -343
  110. package/coverage/lcov-report/src/tools/auth0/handlers/guardianFactorProviders.ts.html +0 -301
  111. package/coverage/lcov-report/src/tools/auth0/handlers/guardianFactorTemplates.ts.html +0 -265
  112. package/coverage/lcov-report/src/tools/auth0/handlers/guardianFactors.ts.html +0 -241
  113. package/coverage/lcov-report/src/tools/auth0/handlers/guardianPhoneFactorMessageTypes.ts.html +0 -337
  114. package/coverage/lcov-report/src/tools/auth0/handlers/guardianPhoneFactorSelectedProvider.ts.html +0 -331
  115. package/coverage/lcov-report/src/tools/auth0/handlers/guardianPolicies.ts.html +0 -256
  116. package/coverage/lcov-report/src/tools/auth0/handlers/hooks.ts.html +0 -895
  117. package/coverage/lcov-report/src/tools/auth0/handlers/index.html +0 -566
  118. package/coverage/lcov-report/src/tools/auth0/handlers/index.ts.html +0 -295
  119. package/coverage/lcov-report/src/tools/auth0/handlers/logStreams.ts.html +0 -379
  120. package/coverage/lcov-report/src/tools/auth0/handlers/migrations.ts.html +0 -319
  121. package/coverage/lcov-report/src/tools/auth0/handlers/organizations.ts.html +0 -961
  122. package/coverage/lcov-report/src/tools/auth0/handlers/pages.ts.html +0 -544
  123. package/coverage/lcov-report/src/tools/auth0/handlers/prompts.ts.html +0 -946
  124. package/coverage/lcov-report/src/tools/auth0/handlers/resourceServers.ts.html +0 -433
  125. package/coverage/lcov-report/src/tools/auth0/handlers/roles.ts.html +0 -748
  126. package/coverage/lcov-report/src/tools/auth0/handlers/rules.ts.html +0 -826
  127. package/coverage/lcov-report/src/tools/auth0/handlers/rulesConfigs.ts.html +0 -289
  128. package/coverage/lcov-report/src/tools/auth0/handlers/tenant.ts.html +0 -556
  129. package/coverage/lcov-report/src/tools/auth0/handlers/themes.ts.html +0 -1885
  130. package/coverage/lcov-report/src/tools/auth0/handlers/triggers.ts.html +0 -439
  131. package/coverage/lcov-report/src/tools/auth0/index.html +0 -146
  132. package/coverage/lcov-report/src/tools/auth0/index.ts.html +0 -385
  133. package/coverage/lcov-report/src/tools/auth0/schema.ts.html +0 -184
  134. package/coverage/lcov-report/src/tools/calculateChanges.ts.html +0 -688
  135. package/coverage/lcov-report/src/tools/constants.ts.html +0 -613
  136. package/coverage/lcov-report/src/tools/deploy.ts.html +0 -193
  137. package/coverage/lcov-report/src/tools/index.html +0 -191
  138. package/coverage/lcov-report/src/tools/index.ts.html +0 -163
  139. package/coverage/lcov-report/src/tools/utils.ts.html +0 -916
  140. package/coverage/lcov-report/src/tools/validationError.ts.html +0 -127
  141. package/coverage/lcov-report/src/types.ts.html +0 -1201
  142. package/coverage/lcov-report/src/utils.ts.html +0 -706
  143. /package/.nyc_output/{16c9e62d-53da-4c19-ba42-9267b40f713d.json → 278104e6-6bb4-4dfb-94bf-3ef7f73e08b9.json} +0 -0
  144. /package/.nyc_output/{8b142617-6824-4c2c-9f37-25748820eb7c.json → 5210e060-a3b8-4e7f-9062-47807b58d0cd.json} +0 -0
@@ -1,982 +0,0 @@
1
-
2
- <!doctype html>
3
- <html lang="en">
4
-
5
- <head>
6
- <title>Code coverage report for src/keywordPreservation.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</a> keywordPreservation.ts</h1>
23
- <div class='clearfix'>
24
-
25
- <div class='fl pad1y space-right2'>
26
- <span class="strong">99.15% </span>
27
- <span class="quiet">Statements</span>
28
- <span class='fraction'>118/119</span>
29
- </div>
30
-
31
-
32
- <div class='fl pad1y space-right2'>
33
- <span class="strong">96.77% </span>
34
- <span class="quiet">Branches</span>
35
- <span class='fraction'>60/62</span>
36
- </div>
37
-
38
-
39
- <div class='fl pad1y space-right2'>
40
- <span class="strong">100% </span>
41
- <span class="quiet">Functions</span>
42
- <span class='fraction'>19/19</span>
43
- </div>
44
-
45
-
46
- <div class='fl pad1y space-right2'>
47
- <span class="strong">100% </span>
48
- <span class="quiet">Lines</span>
49
- <span class='fraction'>104/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></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</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-yes">1x</span>
369
- <span class="cline-any cline-yes">1x</span>
370
- <span class="cline-any cline-neutral">&nbsp;</span>
371
- <span class="cline-any cline-neutral">&nbsp;</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-neutral">&nbsp;</span>
377
- <span class="cline-any cline-yes">1x</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-neutral">&nbsp;</span>
381
- <span class="cline-any cline-yes">123x</span>
382
- <span class="cline-any cline-yes">315x</span>
383
- <span class="cline-any cline-yes">315x</span>
384
- <span class="cline-any cline-neutral">&nbsp;</span>
385
- <span class="cline-any cline-yes">315x</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-yes">1x</span>
390
- <span class="cline-any cline-neutral">&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-neutral">&nbsp;</span>
394
- <span class="cline-any cline-neutral">&nbsp;</span>
395
- <span class="cline-any cline-yes">157x</span>
396
- <span class="cline-any cline-yes">79x</span>
397
- <span class="cline-any cline-yes">42x</span>
398
- <span class="cline-any cline-neutral">&nbsp;</span>
399
- <span class="cline-any cline-yes">37x</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-yes">78x</span>
403
- <span class="cline-any cline-neutral">&nbsp;</span>
404
- <span class="cline-any cline-yes">78x</span>
405
- <span class="cline-any cline-yes">29x</span>
406
- <span class="cline-any cline-neutral">&nbsp;</span>
407
- <span class="cline-any cline-yes">32x</span>
408
- <span class="cline-any cline-yes">32x</span>
409
- <span class="cline-any cline-neutral">&nbsp;</span>
410
- <span class="cline-any cline-yes">32x</span>
411
- <span class="cline-any cline-yes">25x</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-yes">7x</span>
415
- <span class="cline-any cline-yes">5x</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">2x</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-yes">32x</span>
422
- <span class="cline-any cline-neutral">&nbsp;</span>
423
- <span class="cline-any cline-yes">53x</span>
424
- <span class="cline-any cline-yes">53x</span>
425
- <span class="cline-any cline-neutral">&nbsp;</span>
426
- <span class="cline-any cline-yes">53x</span>
427
- <span class="cline-any cline-yes">53x</span>
428
- <span class="cline-any cline-neutral">&nbsp;</span>
429
- <span class="cline-any cline-yes">33x</span>
430
- <span class="cline-any cline-yes">27x</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-yes">6x</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-yes">32x</span>
439
- <span class="cline-any cline-yes">5x</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-yes">27x</span>
443
- <span class="cline-any cline-neutral">&nbsp;</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-neutral">&nbsp;</span>
451
- <span class="cline-any cline-yes">49x</span>
452
- <span class="cline-any cline-yes">46x</span>
453
- <span class="cline-any cline-neutral">&nbsp;</span>
454
- <span class="cline-any cline-yes">152x</span>
455
- <span class="cline-any cline-neutral">&nbsp;</span>
456
- <span class="cline-any cline-yes">152x</span>
457
- <span class="cline-any cline-neutral">&nbsp;</span>
458
- <span class="cline-any cline-yes">121x</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-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-yes">3x</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-yes">1x</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">256x</span>
481
- <span class="cline-any cline-yes">256x</span>
482
- <span class="cline-any cline-yes">87x</span>
483
- <span class="cline-any cline-neutral">&nbsp;</span>
484
- <span class="cline-any cline-neutral">&nbsp;</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-yes">169x</span>
488
- <span class="cline-any cline-neutral">&nbsp;</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-yes">169x</span>
492
- <span class="cline-any cline-yes">83x</span>
493
- <span class="cline-any cline-neutral">&nbsp;</span>
494
- <span class="cline-any cline-yes">68x</span>
495
- <span class="cline-any cline-yes">87x</span>
496
- <span class="cline-any cline-neutral">&nbsp;</span>
497
- <span class="cline-any cline-yes">87x</span>
498
- <span class="cline-any cline-yes">107x</span>
499
- <span class="cline-any cline-yes">107x</span>
500
- <span class="cline-any cline-neutral">&nbsp;</span>
501
- <span class="cline-any cline-yes">107x</span>
502
- <span class="cline-any cline-neutral">&nbsp;</span>
503
- <span class="cline-any cline-neutral">&nbsp;</span>
504
- <span class="cline-any cline-neutral">&nbsp;</span>
505
- <span class="cline-any cline-yes">68x</span>
506
- <span class="cline-any cline-neutral">&nbsp;</span>
507
- <span class="cline-any cline-neutral">&nbsp;</span>
508
- <span class="cline-any cline-yes">86x</span>
509
- <span class="cline-any cline-neutral">&nbsp;</span>
510
- <span class="cline-any cline-neutral">&nbsp;</span>
511
- <span class="cline-any cline-neutral">&nbsp;</span>
512
- <span class="cline-any cline-neutral">&nbsp;</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-neutral">&nbsp;</span>
517
- <span class="cline-any cline-neutral">&nbsp;</span>
518
- <span class="cline-any cline-yes">1x</span>
519
- <span class="cline-any cline-neutral">&nbsp;</span>
520
- <span class="cline-any cline-neutral">&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-yes">245x</span>
524
- <span class="cline-any cline-neutral">&nbsp;</span>
525
- <span class="cline-any cline-yes">243x</span>
526
- <span class="cline-any cline-neutral">&nbsp;</span>
527
- <span class="cline-any cline-yes">243x</span>
528
- <span class="cline-any cline-neutral">&nbsp;</span>
529
- <span class="cline-any cline-yes">195x</span>
530
- <span class="cline-any cline-yes">63x</span>
531
- <span class="cline-any cline-neutral">&nbsp;</span>
532
- <span class="cline-any cline-yes">63x</span>
533
- <span class="cline-any cline-neutral">&nbsp;</span>
534
- <span class="cline-any cline-yes">63x</span>
535
- <span class="cline-any cline-yes">83x</span>
536
- <span class="cline-any cline-neutral">&nbsp;</span>
537
- <span class="cline-any cline-yes">93x</span>
538
- <span class="cline-any cline-yes">93x</span>
539
- <span class="cline-any cline-neutral">&nbsp;</span>
540
- <span class="cline-any cline-yes">93x</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">35x</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-neutral">&nbsp;</span>
547
- <span class="cline-any cline-yes">63x</span>
548
- <span class="cline-any cline-neutral">&nbsp;</span>
549
- <span class="cline-any cline-yes">35x</span>
550
- <span class="cline-any cline-neutral">&nbsp;</span>
551
- <span class="cline-any cline-neutral">&nbsp;</span>
552
- <span class="cline-any cline-neutral">&nbsp;</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-yes">132x</span>
557
- <span class="cline-any cline-neutral">&nbsp;</span>
558
- <span class="cline-any cline-neutral">&nbsp;</span>
559
- <span class="cline-any cline-neutral">&nbsp;</span>
560
- <span class="cline-any cline-neutral">&nbsp;</span>
561
- <span class="cline-any cline-neutral">&nbsp;</span>
562
- <span class="cline-any cline-neutral">&nbsp;</span>
563
- <span class="cline-any cline-yes">1x</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-yes">74x</span>
569
- <span class="cline-any cline-neutral">&nbsp;</span>
570
- <span class="cline-any cline-yes">74x</span>
571
- <span class="cline-any cline-neutral">&nbsp;</span>
572
- <span class="cline-any cline-yes">45x</span>
573
- <span class="cline-any cline-neutral">&nbsp;</span>
574
- <span class="cline-any cline-yes">45x</span>
575
- <span class="cline-any cline-yes">1x</span>
576
- <span class="cline-any cline-neutral">&nbsp;</span>
577
- <span class="cline-any cline-neutral">&nbsp;</span>
578
- <span class="cline-any cline-yes">44x</span>
579
- <span class="cline-any cline-yes">44x</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-neutral">&nbsp;</span>
585
- <span class="cline-any cline-yes">1x</span>
586
- <span class="cline-any cline-neutral">&nbsp;</span>
587
- <span class="cline-any cline-neutral">&nbsp;</span>
588
- <span class="cline-any cline-neutral">&nbsp;</span>
589
- <span class="cline-any cline-neutral">&nbsp;</span>
590
- <span class="cline-any cline-neutral">&nbsp;</span>
591
- <span class="cline-any cline-neutral">&nbsp;</span>
592
- <span class="cline-any cline-neutral">&nbsp;</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-neutral">&nbsp;</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">9x</span>
599
- <span class="cline-any cline-neutral">&nbsp;</span>
600
- <span class="cline-any cline-yes">8x</span>
601
- <span class="cline-any cline-neutral">&nbsp;</span>
602
- <span class="cline-any cline-yes">25x</span>
603
- <span class="cline-any cline-yes">25x</span>
604
- <span class="cline-any cline-neutral">&nbsp;</span>
605
- <span class="cline-any cline-neutral">&nbsp;</span>
606
- <span class="cline-any cline-neutral">&nbsp;</span>
607
- <span class="cline-any cline-neutral">&nbsp;</span>
608
- <span class="cline-any cline-yes">8x</span>
609
- <span class="cline-any cline-neutral">&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-yes">8x</span>
616
- <span class="cline-any cline-neutral">&nbsp;</span>
617
- <span class="cline-any cline-yes">8x</span>
618
- <span class="cline-any cline-yes">34x</span>
619
- <span class="cline-any cline-neutral">&nbsp;</span>
620
- <span class="cline-any cline-yes">34x</span>
621
- <span class="cline-any cline-yes">34x</span>
622
- <span class="cline-any cline-yes">34x</span>
623
- <span class="cline-any cline-yes">17x</span>
624
- <span class="cline-any cline-neutral">&nbsp;</span>
625
- <span class="cline-any cline-yes">17x</span>
626
- <span class="cline-any cline-neutral">&nbsp;</span>
627
- <span class="cline-any cline-yes">34x</span>
628
- <span class="cline-any cline-neutral">&nbsp;</span>
629
- <span class="cline-any cline-yes">34x</span>
630
- <span class="cline-any cline-neutral">&nbsp;</span>
631
- <span class="cline-any cline-yes">34x</span>
632
- <span class="cline-any cline-yes">34x</span>
633
- <span class="cline-any cline-yes">22x</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-yes">34x</span>
639
- <span class="cline-any cline-yes">14x</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-neutral">&nbsp;</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-neutral">&nbsp;</span>
647
- <span class="cline-any cline-neutral">&nbsp;</span>
648
- <span class="cline-any cline-neutral">&nbsp;</span>
649
- <span class="cline-any cline-neutral">&nbsp;</span>
650
- <span class="cline-any cline-yes">34x</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-neutral">&nbsp;</span>
655
- <span class="cline-any cline-yes">34x</span>
656
- <span class="cline-any cline-neutral">&nbsp;</span>
657
- <span class="cline-any cline-neutral">&nbsp;</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-neutral">&nbsp;</span>
661
- <span class="cline-any cline-neutral">&nbsp;</span>
662
- <span class="cline-any cline-yes">8x</span>
663
- <span class="cline-any cline-neutral">&nbsp;</span>
664
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import { get as getByDotNotation, set as setByDotNotation } from 'dot-prop';
665
- import { keywordReplace } from './tools/utils';
666
- import { AssetTypes, KeywordMappings } from './types';
667
- import { keywordReplaceArrayRegExp, keywordReplaceStringRegExp } from './tools/utils';
668
- import { cloneDeep, forEach, isArray } from 'lodash';
669
- import APIHandler from './tools/auth0/handlers/default';
670
- &nbsp;
671
- /*
672
- RFC for Keyword Preservation: https://github.com/auth0/auth0-deploy-cli/issues/688
673
- Original Github Issue: https://github.com/auth0/auth0-deploy-cli/issues/328
674
- */
675
- &nbsp;
676
- export const doesHaveKeywordMarker = (
677
- string: string,
678
- keywordMappings: KeywordMappings
679
- ): boolean =&gt; {
680
- return !Object.keys(keywordMappings).every((keyword) =&gt; {
681
- const hasArrayMarker = keywordReplaceArrayRegExp(keyword).test(string);
682
- const hasStringMarker = keywordReplaceStringRegExp(keyword).test(string);
683
- &nbsp;
684
- return !hasArrayMarker &amp;&amp; !hasStringMarker;
685
- });
686
- };
687
- &nbsp;
688
- export const getPreservableFieldsFromAssets = (
689
- asset: object,
690
- keywordMappings: KeywordMappings,
691
- resourceSpecificIdentifiers: Partial&lt;Record&lt;AssetTypes, string | string[]&gt;&gt;,
692
- address = ''
693
- ): string[] =&gt; {
694
- if (typeof asset === 'string') {
695
- if (doesHaveKeywordMarker(asset, keywordMappings)) {
696
- return [address];
697
- }
698
- return [];
699
- }
700
- &nbsp;
701
- const shouldRenderDot = address !== '';
702
- &nbsp;
703
- if (Array.isArray(asset)) {
704
- return asset
705
- .map((arrayItem) =&gt; {
706
- const resourceIdentifiers: string[] = (() =&gt; {
707
- const identifierOrIdentifiers = resourceSpecificIdentifiers[address as AssetTypes];
708
- &nbsp;
709
- if (Array.isArray(identifierOrIdentifiers)) {
710
- return identifierOrIdentifiers;
711
- }
712
- &nbsp;
713
- if (identifierOrIdentifiers === undefined) {
714
- return [];
715
- }
716
- &nbsp;
717
- return [identifierOrIdentifiers];
718
- })();
719
- &nbsp;
720
- const specificAddress = resourceIdentifiers.reduce(
721
- (aggregateAddress, resourceIdentifier) =&gt; {
722
- resourceSpecificIdentifiers[address];
723
- <span class="missing-if-branch" title="if path not taken" >I</span>if (resourceIdentifier === undefined) <span class="cstat-no" title="statement not covered" >return ''; </span>// See if this specific resource type has an identifier
724
- &nbsp;
725
- const identifierFieldValue = arrayItem[resourceIdentifier];
726
- if (identifierFieldValue === undefined) return ''; // See if this specific array item possess the resource-specific identifier
727
- &nbsp;
728
- if (aggregateAddress === '') {
729
- return `${resourceIdentifier}=${identifierFieldValue}`;
730
- }
731
- &nbsp;
732
- return `${aggregateAddress}||${resourceIdentifier}=${identifierFieldValue}`;
733
- },
734
- ''
735
- );
736
- &nbsp;
737
- if (specificAddress.length === 0) {
738
- return [];
739
- }
740
- &nbsp;
741
- return getPreservableFieldsFromAssets(
742
- arrayItem,
743
- keywordMappings,
744
- resourceSpecificIdentifiers,
745
- `${address}${shouldRenderDot ? '.' : <span class="branch-1 cbranch-no" title="branch not covered" >''}</span>[${specificAddress}]`
746
- );
747
- })
748
- .flat();
749
- }
750
- if (typeof asset === 'object') {
751
- return Object.keys(asset)
752
- .map((key: string): string[] =&gt; {
753
- const value = asset[key];
754
- &nbsp;
755
- if (value === undefined || value === null) return [];
756
- &nbsp;
757
- return getPreservableFieldsFromAssets(
758
- value,
759
- keywordMappings,
760
- resourceSpecificIdentifiers,
761
- `${address}${shouldRenderDot ? '.' : ''}${key}`
762
- );
763
- })
764
- .flat();
765
- }
766
- return [];
767
- };
768
- &nbsp;
769
- // getAssetsValueByAddress returns a value for an arbitrary data structure when
770
- // provided an "address" of that value. This address is similar to JS object notation
771
- // with the exception of identifying array items by a unique property instead of order.
772
- // Example:
773
- // Object: `{ actions: [ { name: "action-1", code: "..."}] }`
774
- // Address: `.actions[name=action-1].code`
775
- export const getAssetsValueByAddress = (address: string, assets: any): any =&gt; {
776
- //Look ahead and see if the address path only contains dots (ex: `tenant.friendly_name`)
777
- //if so the address is trivial and can use the dot-prop package to return the value
778
- &nbsp;
779
- const isTrivialAddress = address.indexOf('[') === -1;
780
- if (isTrivialAddress) {
781
- return getByDotNotation(assets, address);
782
- }
783
- &nbsp;
784
- // It is easier to handle an address piece-by-piece by
785
- // splitting on the period into separate "directions"
786
- const directions = address.split(/\.(?![^\[]*\])/g);
787
- &nbsp;
788
- // If the the next directions are the proprietary array syntax (ex: `[name=foo]`)
789
- // then perform lookup against unique array-item property
790
- if (directions[0].charAt(0) === '[') {
791
- if (!isArray(assets)) return undefined;
792
- &nbsp;
793
- const target = assets.find((item: any) =&gt; {
794
- const parts = directions[0].substring(1).slice(0, -1).split('||');
795
- &nbsp;
796
- return parts.every((part) =&gt; {
797
- const identifier = part.split('=')[0];
798
- const identifierValue = part.split('=')[1];
799
- &nbsp;
800
- return item[identifier] === identifierValue;
801
- });
802
- });
803
- &nbsp;
804
- return getAssetsValueByAddress(directions.slice(1).join('.'), target);
805
- }
806
- &nbsp;
807
- return getAssetsValueByAddress(
808
- directions.slice(1).join('.'),
809
- getByDotNotation(assets, directions[0])
810
- );
811
- };
812
- &nbsp;
813
- // convertAddressToDotNotation will convert the proprietary address into conventional
814
- // JS object notation. Performing this conversion simplifies the process
815
- // of updating a specific property for a given asset tree using the dot-prop library
816
- // returns null if address value does not exist in asset tree
817
- export const convertAddressToDotNotation = (
818
- assets: any,
819
- address: string,
820
- finalAddressTrail = ''
821
- ): string | null =&gt; {
822
- if (assets === null) return null; //Asset does not exist on remote
823
- &nbsp;
824
- const directions = address.split(/\.(?![^\[]*\])/g);
825
- &nbsp;
826
- if (directions[0] === '') return finalAddressTrail;
827
- &nbsp;
828
- if (directions[0].charAt(0) === '[') {
829
- const identifiers = directions[0].substring(1).slice(0, -1).split('||');
830
- &nbsp;
831
- let targetIndex = -1;
832
- &nbsp;
833
- assets.forEach((item: any, index: number) =&gt; {
834
- if (
835
- identifiers.every((part) =&gt; {
836
- const identifier = part.split('=')[0];
837
- const identifierValue = part.split('=')[1];
838
- &nbsp;
839
- return item[identifier] === identifierValue;
840
- })
841
- ) {
842
- targetIndex = index;
843
- }
844
- });
845
- &nbsp;
846
- if (targetIndex === -1) return null; // No object of this address exists in the assets
847
- &nbsp;
848
- return convertAddressToDotNotation(
849
- assets[targetIndex],
850
- directions.slice(1).join('.'),
851
- `${finalAddressTrail}.${targetIndex}`
852
- );
853
- }
854
- &nbsp;
855
- return convertAddressToDotNotation(
856
- getByDotNotation(assets, directions[0]),
857
- directions.slice(1).join('.'),
858
- finalAddressTrail === '' ? directions[0] : `${finalAddressTrail}.${directions[0]}`
859
- );
860
- };
861
- &nbsp;
862
- export const updateAssetsByAddress = (
863
- assets: object,
864
- address: string,
865
- newValue: string
866
- ): object =&gt; {
867
- const dotNotationAddress = convertAddressToDotNotation(assets, address);
868
- &nbsp;
869
- if (dotNotationAddress === null) return assets;
870
- &nbsp;
871
- const doesPropertyExist = getByDotNotation(assets, dotNotationAddress) !== undefined;
872
- &nbsp;
873
- if (!doesPropertyExist) {
874
- return assets;
875
- }
876
- &nbsp;
877
- setByDotNotation(assets, dotNotationAddress, newValue);
878
- return assets;
879
- };
880
- &nbsp;
881
- // preserveKeywords is the function that ultimately gets executed during export
882
- // to attempt to preserve keywords (ex: ##KEYWORD##) in local configuration files
883
- // from getting overwritten by remote values during export.
884
- export const preserveKeywords = ({
885
- localAssets,
886
- remoteAssets,
887
- keywordMappings,
888
- auth0Handlers,
889
- }: {
890
- localAssets: object;
891
- remoteAssets: object;
892
- keywordMappings: KeywordMappings;
893
- auth0Handlers: (Pick&lt;APIHandler, 'id' | 'type'&gt; &amp; {
894
- identifiers: (string | string[])[];
895
- })[];
896
- }): object =&gt; {
897
- if (Object.keys(keywordMappings).length === 0) return remoteAssets;
898
- &nbsp;
899
- const resourceSpecificIdentifiers: Partial&lt;Record&lt;AssetTypes, string[]&gt;&gt; = auth0Handlers.reduce(
900
- (acc, handler) =&gt; {
901
- acc[handler.type] = handler.identifiers.flat();
902
- return acc;
903
- },
904
- {}
905
- );
906
- &nbsp;
907
- const addresses = getPreservableFieldsFromAssets(
908
- localAssets,
909
- keywordMappings,
910
- resourceSpecificIdentifiers,
911
- ''
912
- );
913
- &nbsp;
914
- let updatedRemoteAssets = cloneDeep(remoteAssets);
915
- &nbsp;
916
- addresses.forEach((address) =&gt; {
917
- const localValue = getAssetsValueByAddress(address, localAssets);
918
- &nbsp;
919
- const remoteAssetsAddress = (() =&gt; {
920
- const doesAddressHaveKeyword = doesHaveKeywordMarker(address, keywordMappings);
921
- if (doesAddressHaveKeyword) {
922
- return keywordReplace(address, keywordMappings);
923
- }
924
- return address;
925
- })();
926
- const remoteValue = getAssetsValueByAddress(remoteAssetsAddress, remoteAssets);
927
- &nbsp;
928
- const localValueWithReplacement = keywordReplace(localValue, keywordMappings);
929
- &nbsp;
930
- const localAndRemoteValuesAreEqual = (() =&gt; {
931
- if (typeof remoteValue === 'string') {
932
- return localValueWithReplacement === remoteValue;
933
- }
934
- //TODO: Account for non-string replacements via @@ syntax
935
- })();
936
- &nbsp;
937
- if (!localAndRemoteValuesAreEqual) {
938
- console.warn(
939
- `WARNING! The remote value with address of ${address} has value of "${remoteValue}" but will be preserved with "${localValueWithReplacement}" due to keyword preservation.`
940
- );
941
- }
942
- &nbsp;
943
- // Two address possibilities are provided to account for cases when there is a keyword
944
- // in the resources's identifier field. When the resource identifier's field is preserved
945
- // on the remote assets tree, it loses its identify, so we'll need to try two addresses:
946
- // one where the identifier field has a keyword and one where the identifier field has
947
- // the literal replaced value.
948
- // Example: `customDomains.[domain=##DOMAIN].domain` and `customDomains.[domain=travel0.com].domain`
949
- updatedRemoteAssets = updateAssetsByAddress(
950
- updatedRemoteAssets,
951
- address, //Two possible addresses need to be passed, one with identifier field keyword replaced and one where it is not replaced. Ex: `customDomains.[domain=##DOMAIN].domain` and `customDomains.[domain=travel0.com].domain`
952
- localValue
953
- );
954
- updatedRemoteAssets = updateAssetsByAddress(
955
- updatedRemoteAssets,
956
- remoteAssetsAddress, //Two possible addresses need to be passed, one with identifier field keyword replaced and one where it is not replaced. Ex: `customDomains.[domain=##DOMAIN].domain` and `customDomains.[domain=travel0.com].domain`
957
- localValue
958
- );
959
- });
960
- &nbsp;
961
- return updatedRemoteAssets;
962
- };
963
- &nbsp;</pre></td></tr></table></pre>
964
-
965
- <div class='push'></div><!-- for sticky footer -->
966
- </div><!-- /wrapper -->
967
- <div class='footer quiet pad2 space-top1 center small'>
968
- Code coverage generated by
969
- <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
970
- at Thu Feb 08 2024 16:21:45 GMT+0000 (Coordinated Universal Time)
971
- </div>
972
- <script src="../prettify.js"></script>
973
- <script>
974
- window.onload = function () {
975
- prettyPrint();
976
- };
977
- </script>
978
- <script src="../sorter.js"></script>
979
- <script src="../block-navigation.js"></script>
980
- </body>
981
- </html>
982
-