ac-awssecrets 2.0.3 → 2.0.5
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.
- package/CHANGELOG.md +20 -0
- package/package.json +6 -6
- package/coverage/lcov-report/base.css +0 -224
- package/coverage/lcov-report/block-navigation.js +0 -87
- package/coverage/lcov-report/favicon.png +0 -0
- package/coverage/lcov-report/index.html +0 -116
- package/coverage/lcov-report/index.js.html +0 -610
- package/coverage/lcov-report/prettify.css +0 -1
- package/coverage/lcov-report/prettify.js +0 -2
- package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
- package/coverage/lcov-report/sorter.js +0 -196
- package/coverage/lcov.info +0 -174
|
@@ -1,610 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
<!doctype html>
|
|
3
|
-
<html lang="en">
|
|
4
|
-
|
|
5
|
-
<head>
|
|
6
|
-
<title>Code coverage report for index.js</title>
|
|
7
|
-
<meta charset="utf-8" />
|
|
8
|
-
<link rel="stylesheet" href="prettify.css" />
|
|
9
|
-
<link rel="stylesheet" href="base.css" />
|
|
10
|
-
<link rel="shortcut icon" type="image/x-icon" href="favicon.png" />
|
|
11
|
-
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
12
|
-
<style type='text/css'>
|
|
13
|
-
.coverage-summary .sorter {
|
|
14
|
-
background-image: url(sort-arrow-sprite.png);
|
|
15
|
-
}
|
|
16
|
-
</style>
|
|
17
|
-
</head>
|
|
18
|
-
|
|
19
|
-
<body>
|
|
20
|
-
<div class='wrapper'>
|
|
21
|
-
<div class='pad1'>
|
|
22
|
-
<h1><a href="index.html">All files</a> index.js</h1>
|
|
23
|
-
<div class='clearfix'>
|
|
24
|
-
|
|
25
|
-
<div class='fl pad1y space-right2'>
|
|
26
|
-
<span class="strong">84.33% </span>
|
|
27
|
-
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>70/83</span>
|
|
29
|
-
</div>
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">68.85% </span>
|
|
34
|
-
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>42/61</span>
|
|
36
|
-
</div>
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
<div class='fl pad1y space-right2'>
|
|
40
|
-
<span class="strong">92.85% </span>
|
|
41
|
-
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>13/14</span>
|
|
43
|
-
</div>
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">85.52% </span>
|
|
48
|
-
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>65/76</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></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
|
|
242
|
-
<span class="cline-any cline-yes">1x</span>
|
|
243
|
-
<span class="cline-any cline-neutral"> </span>
|
|
244
|
-
<span class="cline-any cline-yes">1x</span>
|
|
245
|
-
<span class="cline-any cline-neutral"> </span>
|
|
246
|
-
<span class="cline-any cline-neutral"> </span>
|
|
247
|
-
<span class="cline-any cline-neutral"> </span>
|
|
248
|
-
<span class="cline-any cline-neutral"> </span>
|
|
249
|
-
<span class="cline-any cline-neutral"> </span>
|
|
250
|
-
<span class="cline-any cline-neutral"> </span>
|
|
251
|
-
<span class="cline-any cline-neutral"> </span>
|
|
252
|
-
<span class="cline-any cline-neutral"> </span>
|
|
253
|
-
<span class="cline-any cline-neutral"> </span>
|
|
254
|
-
<span class="cline-any cline-neutral"> </span>
|
|
255
|
-
<span class="cline-any cline-neutral"> </span>
|
|
256
|
-
<span class="cline-any cline-neutral"> </span>
|
|
257
|
-
<span class="cline-any cline-neutral"> </span>
|
|
258
|
-
<span class="cline-any cline-neutral"> </span>
|
|
259
|
-
<span class="cline-any cline-neutral"> </span>
|
|
260
|
-
<span class="cline-any cline-neutral"> </span>
|
|
261
|
-
<span class="cline-any cline-neutral"> </span>
|
|
262
|
-
<span class="cline-any cline-yes">1x</span>
|
|
263
|
-
<span class="cline-any cline-neutral"> </span>
|
|
264
|
-
<span class="cline-any cline-yes">25x</span>
|
|
265
|
-
<span class="cline-any cline-neutral"> </span>
|
|
266
|
-
<span class="cline-any cline-yes">1x</span>
|
|
267
|
-
<span class="cline-any cline-yes">23x</span>
|
|
268
|
-
<span class="cline-any cline-yes">23x</span>
|
|
269
|
-
<span class="cline-any cline-neutral"> </span>
|
|
270
|
-
<span class="cline-any cline-neutral"> </span>
|
|
271
|
-
<span class="cline-any cline-neutral"> </span>
|
|
272
|
-
<span class="cline-any cline-neutral"> </span>
|
|
273
|
-
<span class="cline-any cline-neutral"> </span>
|
|
274
|
-
<span class="cline-any cline-yes">1x</span>
|
|
275
|
-
<span class="cline-any cline-yes">1x</span>
|
|
276
|
-
<span class="cline-any cline-yes">3x</span>
|
|
277
|
-
<span class="cline-any cline-neutral"> </span>
|
|
278
|
-
<span class="cline-any cline-yes">3x</span>
|
|
279
|
-
<span class="cline-any cline-neutral"> </span>
|
|
280
|
-
<span class="cline-any cline-neutral"> </span>
|
|
281
|
-
<span class="cline-any cline-neutral"> </span>
|
|
282
|
-
<span class="cline-any cline-neutral"> </span>
|
|
283
|
-
<span class="cline-any cline-yes">3x</span>
|
|
284
|
-
<span class="cline-any cline-no"> </span>
|
|
285
|
-
<span class="cline-any cline-no"> </span>
|
|
286
|
-
<span class="cline-any cline-neutral"> </span>
|
|
287
|
-
<span class="cline-any cline-yes">3x</span>
|
|
288
|
-
<span class="cline-any cline-neutral"> </span>
|
|
289
|
-
<span class="cline-any cline-neutral"> </span>
|
|
290
|
-
<span class="cline-any cline-yes">3x</span>
|
|
291
|
-
<span class="cline-any cline-yes">19x</span>
|
|
292
|
-
<span class="cline-any cline-neutral"> </span>
|
|
293
|
-
<span class="cline-any cline-neutral"> </span>
|
|
294
|
-
<span class="cline-any cline-yes">19x</span>
|
|
295
|
-
<span class="cline-any cline-neutral"> </span>
|
|
296
|
-
<span class="cline-any cline-yes">124x</span>
|
|
297
|
-
<span class="cline-any cline-yes">19x</span>
|
|
298
|
-
<span class="cline-any cline-neutral"> </span>
|
|
299
|
-
<span class="cline-any cline-neutral"> </span>
|
|
300
|
-
<span class="cline-any cline-no"> </span>
|
|
301
|
-
<span class="cline-any cline-neutral"> </span>
|
|
302
|
-
<span class="cline-any cline-neutral"> </span>
|
|
303
|
-
<span class="cline-any cline-no"> </span>
|
|
304
|
-
<span class="cline-any cline-no"> </span>
|
|
305
|
-
<span class="cline-any cline-no"> </span>
|
|
306
|
-
<span class="cline-any cline-no"> </span>
|
|
307
|
-
<span class="cline-any cline-neutral"> </span>
|
|
308
|
-
<span class="cline-any cline-neutral"> </span>
|
|
309
|
-
<span class="cline-any cline-neutral"> </span>
|
|
310
|
-
<span class="cline-any cline-no"> </span>
|
|
311
|
-
<span class="cline-any cline-neutral"> </span>
|
|
312
|
-
<span class="cline-any cline-neutral"> </span>
|
|
313
|
-
<span class="cline-any cline-yes">19x</span>
|
|
314
|
-
<span class="cline-any cline-neutral"> </span>
|
|
315
|
-
<span class="cline-any cline-neutral"> </span>
|
|
316
|
-
<span class="cline-any cline-yes">3x</span>
|
|
317
|
-
<span class="cline-any cline-neutral"> </span>
|
|
318
|
-
<span class="cline-any cline-yes">5x</span>
|
|
319
|
-
<span class="cline-any cline-no"> </span>
|
|
320
|
-
<span class="cline-any cline-neutral"> </span>
|
|
321
|
-
<span class="cline-any cline-yes">19x</span>
|
|
322
|
-
<span class="cline-any cline-neutral"> </span>
|
|
323
|
-
<span class="cline-any cline-neutral"> </span>
|
|
324
|
-
<span class="cline-any cline-neutral"> </span>
|
|
325
|
-
<span class="cline-any cline-yes">3x</span>
|
|
326
|
-
<span class="cline-any cline-neutral"> </span>
|
|
327
|
-
<span class="cline-any cline-neutral"> </span>
|
|
328
|
-
<span class="cline-any cline-yes">2x</span>
|
|
329
|
-
<span class="cline-any cline-neutral"> </span>
|
|
330
|
-
<span class="cline-any cline-yes">2x</span>
|
|
331
|
-
<span class="cline-any cline-yes">2x</span>
|
|
332
|
-
<span class="cline-any cline-yes">2x</span>
|
|
333
|
-
<span class="cline-any cline-no"> </span>
|
|
334
|
-
<span class="cline-any cline-no"> </span>
|
|
335
|
-
<span class="cline-any cline-neutral"> </span>
|
|
336
|
-
<span class="cline-any cline-yes">2x</span>
|
|
337
|
-
<span class="cline-any cline-yes">4x</span>
|
|
338
|
-
<span class="cline-any cline-neutral"> </span>
|
|
339
|
-
<span class="cline-any cline-neutral"> </span>
|
|
340
|
-
<span class="cline-any cline-neutral"> </span>
|
|
341
|
-
<span class="cline-any cline-neutral"> </span>
|
|
342
|
-
<span class="cline-any cline-yes">4x</span>
|
|
343
|
-
<span class="cline-any cline-neutral"> </span>
|
|
344
|
-
<span class="cline-any cline-neutral"> </span>
|
|
345
|
-
<span class="cline-any cline-neutral"> </span>
|
|
346
|
-
<span class="cline-any cline-neutral"> </span>
|
|
347
|
-
<span class="cline-any cline-yes">3x</span>
|
|
348
|
-
<span class="cline-any cline-yes">3x</span>
|
|
349
|
-
<span class="cline-any cline-yes">3x</span>
|
|
350
|
-
<span class="cline-any cline-yes">17x</span>
|
|
351
|
-
<span class="cline-any cline-yes">17x</span>
|
|
352
|
-
<span class="cline-any cline-neutral"> </span>
|
|
353
|
-
<span class="cline-any cline-neutral"> </span>
|
|
354
|
-
<span class="cline-any cline-yes">17x</span>
|
|
355
|
-
<span class="cline-any cline-yes">17x</span>
|
|
356
|
-
<span class="cline-any cline-yes">33x</span>
|
|
357
|
-
<span class="cline-any cline-yes">33x</span>
|
|
358
|
-
<span class="cline-any cline-yes">32x</span>
|
|
359
|
-
<span class="cline-any cline-yes">32x</span>
|
|
360
|
-
<span class="cline-any cline-yes">2x</span>
|
|
361
|
-
<span class="cline-any cline-yes">2x</span>
|
|
362
|
-
<span class="cline-any cline-neutral"> </span>
|
|
363
|
-
<span class="cline-any cline-neutral"> </span>
|
|
364
|
-
<span class="cline-any cline-yes">1x</span>
|
|
365
|
-
<span class="cline-any cline-yes">1x</span>
|
|
366
|
-
<span class="cline-any cline-neutral"> </span>
|
|
367
|
-
<span class="cline-any cline-neutral"> </span>
|
|
368
|
-
<span class="cline-any cline-yes">32x</span>
|
|
369
|
-
<span class="cline-any cline-neutral"> </span>
|
|
370
|
-
<span class="cline-any cline-neutral"> </span>
|
|
371
|
-
<span class="cline-any cline-neutral"> </span>
|
|
372
|
-
<span class="cline-any cline-yes">16x</span>
|
|
373
|
-
<span class="cline-any cline-yes">2x</span>
|
|
374
|
-
<span class="cline-any cline-yes">2x</span>
|
|
375
|
-
<span class="cline-any cline-yes">2x</span>
|
|
376
|
-
<span class="cline-any cline-yes">2x</span>
|
|
377
|
-
<span class="cline-any cline-yes">2x</span>
|
|
378
|
-
<span class="cline-any cline-neutral"> </span>
|
|
379
|
-
<span class="cline-any cline-yes">2x</span>
|
|
380
|
-
<span class="cline-any cline-neutral"> </span>
|
|
381
|
-
<span class="cline-any cline-neutral"> </span>
|
|
382
|
-
<span class="cline-any cline-neutral"> </span>
|
|
383
|
-
<span class="cline-any cline-neutral"> </span>
|
|
384
|
-
<span class="cline-any cline-neutral"> </span>
|
|
385
|
-
<span class="cline-any cline-neutral"> </span>
|
|
386
|
-
<span class="cline-any cline-neutral"> </span>
|
|
387
|
-
<span class="cline-any cline-neutral"> </span>
|
|
388
|
-
<span class="cline-any cline-neutral"> </span>
|
|
389
|
-
<span class="cline-any cline-neutral"> </span>
|
|
390
|
-
<span class="cline-any cline-neutral"> </span>
|
|
391
|
-
<span class="cline-any cline-yes">14x</span>
|
|
392
|
-
<span class="cline-any cline-yes">6x</span>
|
|
393
|
-
<span class="cline-any cline-yes">6x</span>
|
|
394
|
-
<span class="cline-any cline-neutral"> </span>
|
|
395
|
-
<span class="cline-any cline-neutral"> </span>
|
|
396
|
-
<span class="cline-any cline-yes">8x</span>
|
|
397
|
-
<span class="cline-any cline-yes">1x</span>
|
|
398
|
-
<span class="cline-any cline-neutral"> </span>
|
|
399
|
-
<span class="cline-any cline-yes">8x</span>
|
|
400
|
-
<span class="cline-any cline-yes">8x</span>
|
|
401
|
-
<span class="cline-any cline-neutral"> </span>
|
|
402
|
-
<span class="cline-any cline-neutral"> </span>
|
|
403
|
-
<span class="cline-any cline-yes">16x</span>
|
|
404
|
-
<span class="cline-any cline-yes">9x</span>
|
|
405
|
-
<span class="cline-any cline-neutral"> </span>
|
|
406
|
-
<span class="cline-any cline-neutral"> </span>
|
|
407
|
-
<span class="cline-any cline-neutral"> </span>
|
|
408
|
-
<span class="cline-any cline-neutral"> </span>
|
|
409
|
-
<span class="cline-any cline-neutral"> </span>
|
|
410
|
-
<span class="cline-any cline-yes">1x</span>
|
|
411
|
-
<span class="cline-any cline-neutral"> </span>
|
|
412
|
-
<span class="cline-any cline-neutral"> </span>
|
|
413
|
-
<span class="cline-any cline-neutral"> </span>
|
|
414
|
-
<span class="cline-any cline-neutral"> </span>
|
|
415
|
-
<span class="cline-any cline-yes">1x</span>
|
|
416
|
-
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">const { SecretsManagerClient, GetSecretValueCommand } = require("@aws-sdk/client-secrets-manager");
|
|
417
|
-
const { fromIni } = require("@aws-sdk/credential-providers")
|
|
418
|
-
|
|
419
|
-
const testConfig = require('./test/config')
|
|
420
|
-
|
|
421
|
-
/**
|
|
422
|
-
* Replaces configuration variables with secrets
|
|
423
|
-
|
|
424
|
-
KEY is the variable name
|
|
425
|
-
NAME is the name of the secret
|
|
426
|
-
|
|
427
|
-
OPT
|
|
428
|
-
serverName
|
|
429
|
-
|
|
430
|
-
MULTISECRETS
|
|
431
|
-
Multisecrets -> the secret contains a list of secrets that should be fetched
|
|
432
|
-
*
|
|
433
|
-
* TESTMODES
|
|
434
|
-
* 3 -> use secrets from testConfig
|
|
435
|
-
*/
|
|
436
|
-
|
|
437
|
-
const awsSecrets = () => {
|
|
438
|
-
|
|
439
|
-
const getKey = (obj, key) => key.split('.').reduce((acc, cur) => acc[cur], obj)
|
|
440
|
-
|
|
441
|
-
const setKey = (obj, key, value ) => {
|
|
442
|
-
const [head, ...rest] = key.split('.')
|
|
443
|
-
!rest.length
|
|
444
|
-
? obj[head] = value
|
|
445
|
-
: setKey(obj[head], rest.join('.'), value)
|
|
446
|
-
}
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
const functionName = 'ac-awsSecrets'.padEnd(15)
|
|
450
|
-
const loadSecrets = async({ secrets = <span class="branch-0 cbranch-no" title="branch not covered" >[],</span> multisecrets = [], config = <span class="branch-0 cbranch-no" title="branch not covered" >{},</span> profile = process.env['profile'], testMode = <span class="branch-0 cbranch-no" title="branch not covered" >0,</span> debug = false } = <span class="branch-0 cbranch-no" title="branch not covered" >{})</span> => {
|
|
451
|
-
const environment = config?.environment || 'development'
|
|
452
|
-
|
|
453
|
-
const awsConfig = {
|
|
454
|
-
region: 'eu-central-1'
|
|
455
|
-
}
|
|
456
|
-
// credentials are determined from Lambda role.
|
|
457
|
-
// But you can also use a set profile
|
|
458
|
-
<span class="missing-if-branch" title="if path not taken" >I</span>if (profile) {
|
|
459
|
-
<span class="cstat-no" title="statement not covered" > console.error('%s | Using AWS profile | %s', functionName, profile)</span>
|
|
460
|
-
<span class="cstat-no" title="statement not covered" > awsConfig.credentials = fromIni({ profile })</span>
|
|
461
|
-
}
|
|
462
|
-
const client = new SecretsManagerClient(awsConfig)
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
const getSecret = async({ secret }) => {
|
|
466
|
-
const secretName = (environment === 'test' ? <span class="branch-0 cbranch-no" title="branch not covered" >'test.' </span>: '') + secret?.name + (secret?.suffix ? <span class="branch-0 cbranch-no" title="branch not covered" >'.' + secret?.suffix </span>: '')
|
|
467
|
-
|
|
468
|
-
// TESTMODE
|
|
469
|
-
<span class="missing-if-branch" title="else path not taken" >E</span>if (testMode === 3) {
|
|
470
|
-
// fetch from availableSecrets
|
|
471
|
-
let found = testConfig.availableSecrets.find(item => item.name === secret.name)
|
|
472
|
-
secret.value = found?.value
|
|
473
|
-
}
|
|
474
|
-
else {
|
|
475
|
-
const command = <span class="cstat-no" title="statement not covered" >new GetSecretValueCommand({</span>
|
|
476
|
-
SecretId: secretName
|
|
477
|
-
})
|
|
478
|
-
<span class="cstat-no" title="statement not covered" > try {</span>
|
|
479
|
-
const response = <span class="cstat-no" title="statement not covered" >await client.send(command)</span>
|
|
480
|
-
<span class="cstat-no" title="statement not covered" > if (response?.SecretString) {</span>
|
|
481
|
-
<span class="cstat-no" title="statement not covered" > secret.value = JSON.parse(response?.SecretString)</span>
|
|
482
|
-
}
|
|
483
|
-
}
|
|
484
|
-
catch(e) {
|
|
485
|
-
<span class="cstat-no" title="statement not covered" > console.error('%s | %s | %s', functionName, secretName, e?.message)</span>
|
|
486
|
-
}
|
|
487
|
-
}
|
|
488
|
-
return secret
|
|
489
|
-
}
|
|
490
|
-
|
|
491
|
-
const fetchSecrets = async({ secrets }) => {
|
|
492
|
-
// filter out secrets with ignoreInTestMode = true
|
|
493
|
-
<span class="missing-if-branch" title="if path not taken" >I</span>if (environment === 'test') {
|
|
494
|
-
<span class="cstat-no" title="statement not covered" > secrets = secrets.filter(<span class="fstat-no" title="function not covered" >se</span>cret => <span class="cstat-no" title="statement not covered" >!secret.ignoreInTestMode)</span></span>
|
|
495
|
-
}
|
|
496
|
-
return Promise.all(secrets.map(secret => getSecret({ secret })))
|
|
497
|
-
}
|
|
498
|
-
|
|
499
|
-
// fetch placeholder
|
|
500
|
-
if (multisecrets.length > 0) {
|
|
501
|
-
// some keys can have multiple entries (e.g. cloudfrontCOnfigs can have 1 - n entries)
|
|
502
|
-
// we have to fetch them first from a secret and add them to the secrets to fetch
|
|
503
|
-
let secretsToAdd = await fetchSecrets({ secrets: multisecrets })
|
|
504
|
-
// iterate each multisecret and add the values as new secrets
|
|
505
|
-
secretsToAdd.forEach(secadd => {
|
|
506
|
-
let items = JSON.parse(secadd?.value?.values) || <span class="branch-1 cbranch-no" title="branch not covered" >[]</span>
|
|
507
|
-
<span class="missing-if-branch" title="if path not taken" >I</span>if (typeof items !== 'object' || items.length < 1) {
|
|
508
|
-
<span class="cstat-no" title="statement not covered" > console.error('%s | %s | MultiSecret has no valid property values', functionName, secadd.name)</span>
|
|
509
|
-
<span class="cstat-no" title="statement not covered" > throw new Error('MultiSecret has no valid property values')</span>
|
|
510
|
-
}
|
|
511
|
-
items.forEach(item => {
|
|
512
|
-
let p = {
|
|
513
|
-
key: secadd.key,
|
|
514
|
-
name: item,
|
|
515
|
-
type: 'arrayObject' // multisecrets contain multiple secrets that belong to the same config property (which is an array of objects)
|
|
516
|
-
}
|
|
517
|
-
secrets.push(p)
|
|
518
|
-
})
|
|
519
|
-
})
|
|
520
|
-
}
|
|
521
|
-
|
|
522
|
-
<span class="missing-if-branch" title="else path not taken" >E</span>if (secrets.length > 0) {
|
|
523
|
-
await fetchSecrets({ secrets })
|
|
524
|
-
for (const secret of secrets) {
|
|
525
|
-
let existingValue = getKey(config, secret.key) || {}
|
|
526
|
-
let value = secret?.value
|
|
527
|
-
|
|
528
|
-
// convert values
|
|
529
|
-
<span class="missing-if-branch" title="else path not taken" >E</span>if (typeof value === 'object') {
|
|
530
|
-
Object.keys(value).forEach((key) => {
|
|
531
|
-
let val = value[key]
|
|
532
|
-
if (val === 'true') val = true
|
|
533
|
-
else <span class="missing-if-branch" title="if path not taken" >I</span>if (val === 'false') <span class="cstat-no" title="statement not covered" >val = false</span>
|
|
534
|
-
else if (typeof val === 'string' && val.startsWith('JSON:')) {
|
|
535
|
-
try {
|
|
536
|
-
val = JSON.parse(val.substring(5))
|
|
537
|
-
}
|
|
538
|
-
catch(e) {
|
|
539
|
-
console.error('%s | %s | JSON could not be parsed %j', functionName, secret.name, val)
|
|
540
|
-
throw new Error('invalidJSON')
|
|
541
|
-
}
|
|
542
|
-
}
|
|
543
|
-
value[key] = val
|
|
544
|
-
})
|
|
545
|
-
}
|
|
546
|
-
|
|
547
|
-
if (secret.servers) {
|
|
548
|
-
<span class="missing-if-branch" title="else path not taken" >E</span>if (typeof secret.servers === 'boolean') {
|
|
549
|
-
let servers = existingValue?.servers || <span class="branch-1 cbranch-no" title="branch not covered" >[]</span>
|
|
550
|
-
config[secret.key].servers = servers.map(server => {
|
|
551
|
-
<span class="missing-if-branch" title="else path not taken" >E</span>if (server.server === secret.serverName) {
|
|
552
|
-
server = { ...server, ...value }
|
|
553
|
-
}
|
|
554
|
-
return server
|
|
555
|
-
})
|
|
556
|
-
}
|
|
557
|
-
else {
|
|
558
|
-
// NEW NOTATION AS OBJECT
|
|
559
|
-
/* TODO: Probably not used anywhere, so legacy is ok
|
|
560
|
-
let match = {}
|
|
561
|
-
_.set(match, _.get(secret.servers, 'identifier'), _.get(secret.servers, 'value'))
|
|
562
|
-
existingValue = _.find(_.get(config, key, []), match)
|
|
563
|
-
*/
|
|
564
|
-
}
|
|
565
|
-
}
|
|
566
|
-
else if (secret?.type === 'arrayObject') {
|
|
567
|
-
existingValue.push(value)
|
|
568
|
-
setKey(config, secret.key, existingValue)
|
|
569
|
-
}
|
|
570
|
-
else {
|
|
571
|
-
if (Object.keys(existingValue).length === 0) {
|
|
572
|
-
setKey(config, secret.key, {})
|
|
573
|
-
}
|
|
574
|
-
existingValue = { ...existingValue, ...value }
|
|
575
|
-
setKey(config, secret.key, existingValue)
|
|
576
|
-
}
|
|
577
|
-
|
|
578
|
-
if (secret?.log || debug) {
|
|
579
|
-
console.log('%s | %s | %j', functionName, secret?.name, existingValue)
|
|
580
|
-
}
|
|
581
|
-
}
|
|
582
|
-
}
|
|
583
|
-
}
|
|
584
|
-
|
|
585
|
-
return {
|
|
586
|
-
loadSecrets
|
|
587
|
-
}
|
|
588
|
-
}
|
|
589
|
-
|
|
590
|
-
module.exports = awsSecrets()
|
|
591
|
-
</pre></td></tr></table></pre>
|
|
592
|
-
|
|
593
|
-
<div class='push'></div><!-- for sticky footer -->
|
|
594
|
-
</div><!-- /wrapper -->
|
|
595
|
-
<div class='footer quiet pad2 space-top1 center small'>
|
|
596
|
-
Code coverage generated by
|
|
597
|
-
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
598
|
-
at 2023-02-25T07:46:45.054Z
|
|
599
|
-
</div>
|
|
600
|
-
<script src="prettify.js"></script>
|
|
601
|
-
<script>
|
|
602
|
-
window.onload = function () {
|
|
603
|
-
prettyPrint();
|
|
604
|
-
};
|
|
605
|
-
</script>
|
|
606
|
-
<script src="sorter.js"></script>
|
|
607
|
-
<script src="block-navigation.js"></script>
|
|
608
|
-
</body>
|
|
609
|
-
</html>
|
|
610
|
-
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
.pln{color:#000}@media screen{.str{color:#080}.kwd{color:#008}.com{color:#800}.typ{color:#606}.lit{color:#066}.pun,.opn,.clo{color:#660}.tag{color:#008}.atn{color:#606}.atv{color:#080}.dec,.var{color:#606}.fun{color:red}}@media print,projection{.str{color:#060}.kwd{color:#006;font-weight:bold}.com{color:#600;font-style:italic}.typ{color:#404;font-weight:bold}.lit{color:#044}.pun,.opn,.clo{color:#440}.tag{color:#006;font-weight:bold}.atn{color:#404}.atv{color:#060}}pre.prettyprint{padding:2px;border:1px solid #888}ol.linenums{margin-top:0;margin-bottom:0}li.L0,li.L1,li.L2,li.L3,li.L5,li.L6,li.L7,li.L8{list-style-type:none}li.L1,li.L3,li.L5,li.L7,li.L9{background:#eee}
|