@autofleet/sadot 0.7.6 → 0.7.7-beta.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.
- package/coverage/clover.xml +1073 -0
- package/coverage/coverage-final.json +44 -0
- package/coverage/lcov-report/base.css +224 -0
- package/coverage/lcov-report/block-navigation.js +87 -0
- package/coverage/lcov-report/favicon.png +0 -0
- package/coverage/lcov-report/index.html +461 -0
- package/coverage/lcov-report/prettify.css +1 -0
- package/coverage/lcov-report/prettify.js +2 -0
- package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
- package/coverage/lcov-report/sorter.js +196 -0
- package/coverage/lcov-report/src/api/index.html +116 -0
- package/coverage/lcov-report/src/api/index.ts.html +112 -0
- package/coverage/lcov-report/src/api/v1/definition/index.html +131 -0
- package/coverage/lcov-report/src/api/v1/definition/index.ts.html +406 -0
- package/coverage/lcov-report/src/api/v1/definition/validations.ts.html +310 -0
- package/coverage/lcov-report/src/api/v1/errors.ts.html +133 -0
- package/coverage/lcov-report/src/api/v1/index.html +131 -0
- package/coverage/lcov-report/src/api/v1/index.ts.html +112 -0
- package/coverage/lcov-report/src/errors/index.html +116 -0
- package/coverage/lcov-report/src/errors/index.ts.html +211 -0
- package/coverage/lcov-report/src/events/index.html +116 -0
- package/coverage/lcov-report/src/events/index.ts.html +238 -0
- package/coverage/lcov-report/src/hooks/create.ts.html +262 -0
- package/coverage/lcov-report/src/hooks/enrich.ts.html +523 -0
- package/coverage/lcov-report/src/hooks/find.ts.html +166 -0
- package/coverage/lcov-report/src/hooks/index.html +191 -0
- package/coverage/lcov-report/src/hooks/index.ts.html +130 -0
- package/coverage/lcov-report/src/hooks/update.ts.html +211 -0
- package/coverage/lcov-report/src/hooks/workaround.ts.html +226 -0
- package/coverage/lcov-report/src/index.html +116 -0
- package/coverage/lcov-report/src/index.ts.html +235 -0
- package/coverage/lcov-report/src/models/CustomFieldDefinition.ts.html +550 -0
- package/coverage/lcov-report/src/models/CustomFieldValue.ts.html +415 -0
- package/coverage/lcov-report/src/models/index.html +146 -0
- package/coverage/lcov-report/src/models/index.ts.html +406 -0
- package/coverage/lcov-report/src/models/tests/AssociatedTestModel.ts.html +256 -0
- package/coverage/lcov-report/src/models/tests/TestModel.ts.html +247 -0
- package/coverage/lcov-report/src/models/tests/contextAwareModels/ContextAwareTestModel.ts.html +214 -0
- package/coverage/lcov-report/src/models/tests/contextAwareModels/ContextTestModel.ts.html +199 -0
- package/coverage/lcov-report/src/models/tests/contextAwareModels/index.html +131 -0
- package/coverage/lcov-report/src/models/tests/index.html +131 -0
- package/coverage/lcov-report/src/repository/definition.ts.html +466 -0
- package/coverage/lcov-report/src/repository/index.html +131 -0
- package/coverage/lcov-report/src/repository/value.ts.html +523 -0
- package/coverage/lcov-report/src/scopes/filter.ts.html +637 -0
- package/coverage/lcov-report/src/scopes/index.html +131 -0
- package/coverage/lcov-report/src/scopes/index.ts.html +103 -0
- package/coverage/lcov-report/src/tests/api/index.html +116 -0
- package/coverage/lcov-report/src/tests/api/test-api.ts.html +199 -0
- package/coverage/lcov-report/src/tests/functional/searching/index.html +116 -0
- package/coverage/lcov-report/src/tests/functional/searching/index.ts.html +202 -0
- package/coverage/lcov-report/src/tests/helpers/database-config.ts.html +130 -0
- package/coverage/lcov-report/src/tests/helpers/index.html +131 -0
- package/coverage/lcov-report/src/tests/helpers/index.ts.html +142 -0
- package/coverage/lcov-report/src/tests/mocks/definition.mock.ts.html +310 -0
- package/coverage/lcov-report/src/tests/mocks/events.mock.ts.html +139 -0
- package/coverage/lcov-report/src/tests/mocks/index.html +146 -0
- package/coverage/lcov-report/src/tests/mocks/testModel.ts.html +196 -0
- package/coverage/lcov-report/src/utils/constants/index.html +116 -0
- package/coverage/lcov-report/src/utils/constants/index.ts.html +160 -0
- package/coverage/lcov-report/src/utils/db/index.html +116 -0
- package/coverage/lcov-report/src/utils/db/index.ts.html +148 -0
- package/coverage/lcov-report/src/utils/helpers/index.html +116 -0
- package/coverage/lcov-report/src/utils/helpers/index.ts.html +283 -0
- package/coverage/lcov-report/src/utils/index.html +131 -0
- package/coverage/lcov-report/src/utils/init.ts.html +430 -0
- package/coverage/lcov-report/src/utils/logger/index.html +116 -0
- package/coverage/lcov-report/src/utils/logger/index.ts.html +100 -0
- package/coverage/lcov-report/src/utils/scopeAttributes.ts.html +121 -0
- package/coverage/lcov-report/src/utils/validations/index.html +116 -0
- package/coverage/lcov-report/src/utils/validations/index.ts.html +151 -0
- package/coverage/lcov-report/src/utils/validations/schema/custom-fields.ts.html +109 -0
- package/coverage/lcov-report/src/utils/validations/schema/index.html +116 -0
- package/coverage/lcov-report/src/utils/validations/validators/index.html +146 -0
- package/coverage/lcov-report/src/utils/validations/validators/index.ts.html +199 -0
- package/coverage/lcov-report/src/utils/validations/validators/select.validator.ts.html +118 -0
- package/coverage/lcov-report/src/utils/validations/validators/status.validator.ts.html +139 -0
- package/coverage/lcov.info +1818 -0
- package/dist/hooks/create.js +16 -32
- package/dist/repository/definition.d.ts +6 -12
- package/dist/repository/value.d.ts +1 -1
- package/dist/repository/value.js +18 -5
- package/dist/scopes/filter.js +26 -13
- package/package.json +2 -1
- package/src/hooks/create.ts +24 -42
- package/src/repository/definition.ts +6 -15
- package/src/repository/value.ts +20 -4
- package/src/scopes/filter.ts +24 -13
|
@@ -0,0 +1,523 @@
|
|
|
1
|
+
|
|
2
|
+
<!doctype html>
|
|
3
|
+
<html lang="en">
|
|
4
|
+
|
|
5
|
+
<head>
|
|
6
|
+
<title>Code coverage report for src/repository/value.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/repository</a> value.ts</h1>
|
|
23
|
+
<div class='clearfix'>
|
|
24
|
+
|
|
25
|
+
<div class='fl pad1y space-right2'>
|
|
26
|
+
<span class="strong">84.72% </span>
|
|
27
|
+
<span class="quiet">Statements</span>
|
|
28
|
+
<span class='fraction'>61/72</span>
|
|
29
|
+
</div>
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
<div class='fl pad1y space-right2'>
|
|
33
|
+
<span class="strong">65.21% </span>
|
|
34
|
+
<span class="quiet">Branches</span>
|
|
35
|
+
<span class='fraction'>15/23</span>
|
|
36
|
+
</div>
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
<div class='fl pad1y space-right2'>
|
|
40
|
+
<span class="strong">66.66% </span>
|
|
41
|
+
<span class="quiet">Functions</span>
|
|
42
|
+
<span class='fraction'>12/18</span>
|
|
43
|
+
</div>
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
<div class='fl pad1y space-right2'>
|
|
47
|
+
<span class="strong">83.92% </span>
|
|
48
|
+
<span class="quiet">Lines</span>
|
|
49
|
+
<span class='fraction'>47/56</span>
|
|
50
|
+
</div>
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
</div>
|
|
54
|
+
<p class="quiet">
|
|
55
|
+
Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
|
|
56
|
+
</p>
|
|
57
|
+
<template id="filterTemplate">
|
|
58
|
+
<div class="quiet">
|
|
59
|
+
Filter:
|
|
60
|
+
<input type="search" id="fileSearch">
|
|
61
|
+
</div>
|
|
62
|
+
</template>
|
|
63
|
+
</div>
|
|
64
|
+
<div class='status-line 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></td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span>
|
|
213
|
+
<span class="cline-any cline-neutral"> </span>
|
|
214
|
+
<span class="cline-any cline-yes">19x</span>
|
|
215
|
+
<span class="cline-any cline-yes">19x</span>
|
|
216
|
+
<span class="cline-any cline-neutral"> </span>
|
|
217
|
+
<span class="cline-any cline-yes">19x</span>
|
|
218
|
+
<span class="cline-any cline-yes">19x</span>
|
|
219
|
+
<span class="cline-any cline-neutral"> </span>
|
|
220
|
+
<span class="cline-any cline-yes">19x</span>
|
|
221
|
+
<span class="cline-any cline-neutral"> </span>
|
|
222
|
+
<span class="cline-any cline-yes">19x</span>
|
|
223
|
+
<span class="cline-any cline-no"> </span>
|
|
224
|
+
<span class="cline-any cline-neutral"> </span>
|
|
225
|
+
<span class="cline-any cline-yes">19x</span>
|
|
226
|
+
<span class="cline-any cline-no"> </span>
|
|
227
|
+
<span class="cline-any cline-no"> </span>
|
|
228
|
+
<span class="cline-any cline-no"> </span>
|
|
229
|
+
<span class="cline-any cline-no"> </span>
|
|
230
|
+
<span class="cline-any cline-neutral"> </span>
|
|
231
|
+
<span class="cline-any cline-no"> </span>
|
|
232
|
+
<span class="cline-any cline-neutral"> </span>
|
|
233
|
+
<span class="cline-any cline-neutral"> </span>
|
|
234
|
+
<span class="cline-any cline-yes">19x</span>
|
|
235
|
+
<span class="cline-any cline-neutral"> </span>
|
|
236
|
+
<span class="cline-any cline-neutral"> </span>
|
|
237
|
+
<span class="cline-any cline-neutral"> </span>
|
|
238
|
+
<span class="cline-any cline-neutral"> </span>
|
|
239
|
+
<span class="cline-any cline-neutral"> </span>
|
|
240
|
+
<span class="cline-any cline-yes">19x</span>
|
|
241
|
+
<span class="cline-any cline-neutral"> </span>
|
|
242
|
+
<span class="cline-any cline-neutral"> </span>
|
|
243
|
+
<span class="cline-any cline-neutral"> </span>
|
|
244
|
+
<span class="cline-any cline-neutral"> </span>
|
|
245
|
+
<span class="cline-any cline-neutral"> </span>
|
|
246
|
+
<span class="cline-any cline-neutral"> </span>
|
|
247
|
+
<span class="cline-any cline-yes">19x</span>
|
|
248
|
+
<span class="cline-any cline-yes">544x</span>
|
|
249
|
+
<span class="cline-any cline-yes">544x</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-yes">19x</span>
|
|
258
|
+
<span class="cline-any cline-neutral"> </span>
|
|
259
|
+
<span class="cline-any cline-yes">3x</span>
|
|
260
|
+
<span class="cline-any cline-yes">3x</span>
|
|
261
|
+
<span class="cline-any cline-yes">3x</span>
|
|
262
|
+
<span class="cline-any cline-yes">2x</span>
|
|
263
|
+
<span class="cline-any cline-neutral"> </span>
|
|
264
|
+
<span class="cline-any cline-yes">1x</span>
|
|
265
|
+
<span class="cline-any cline-neutral"> </span>
|
|
266
|
+
<span class="cline-any cline-no"> </span>
|
|
267
|
+
<span class="cline-any cline-neutral"> </span>
|
|
268
|
+
<span class="cline-any cline-neutral"> </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-neutral"> </span>
|
|
275
|
+
<span class="cline-any cline-yes">19x</span>
|
|
276
|
+
<span class="cline-any cline-neutral"> </span>
|
|
277
|
+
<span class="cline-any cline-neutral"> </span>
|
|
278
|
+
<span class="cline-any cline-neutral"> </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">379x</span>
|
|
284
|
+
<span class="cline-any cline-yes">379x</span>
|
|
285
|
+
<span class="cline-any cline-neutral"> </span>
|
|
286
|
+
<span class="cline-any cline-neutral"> </span>
|
|
287
|
+
<span class="cline-any cline-neutral"> </span>
|
|
288
|
+
<span class="cline-any cline-neutral"> </span>
|
|
289
|
+
<span class="cline-any cline-neutral"> </span>
|
|
290
|
+
<span class="cline-any cline-yes">379x</span>
|
|
291
|
+
<span class="cline-any cline-neutral"> </span>
|
|
292
|
+
<span class="cline-any cline-yes">379x</span>
|
|
293
|
+
<span class="cline-any cline-neutral"> </span>
|
|
294
|
+
<span class="cline-any cline-neutral"> </span>
|
|
295
|
+
<span class="cline-any cline-neutral"> </span>
|
|
296
|
+
<span class="cline-any cline-neutral"> </span>
|
|
297
|
+
<span class="cline-any cline-yes">379x</span>
|
|
298
|
+
<span class="cline-any cline-yes">172x</span>
|
|
299
|
+
<span class="cline-any cline-neutral"> </span>
|
|
300
|
+
<span class="cline-any cline-yes">379x</span>
|
|
301
|
+
<span class="cline-any cline-neutral"> </span>
|
|
302
|
+
<span class="cline-any cline-yes">1015x</span>
|
|
303
|
+
<span class="cline-any cline-yes">379x</span>
|
|
304
|
+
<span class="cline-any cline-yes">2x</span>
|
|
305
|
+
<span class="cline-any cline-yes">4x</span>
|
|
306
|
+
<span class="cline-any cline-yes">2x</span>
|
|
307
|
+
<span class="cline-any cline-neutral"> </span>
|
|
308
|
+
<span class="cline-any cline-neutral"> </span>
|
|
309
|
+
<span class="cline-any cline-yes">377x</span>
|
|
310
|
+
<span class="cline-any cline-yes">1014x</span>
|
|
311
|
+
<span class="cline-any cline-yes">377x</span>
|
|
312
|
+
<span class="cline-any cline-yes">1x</span>
|
|
313
|
+
<span class="cline-any cline-neutral"> </span>
|
|
314
|
+
<span class="cline-any cline-neutral"> </span>
|
|
315
|
+
<span class="cline-any cline-yes">377x</span>
|
|
316
|
+
<span class="cline-any cline-neutral"> </span>
|
|
317
|
+
<span class="cline-any cline-yes">377x</span>
|
|
318
|
+
<span class="cline-any cline-yes">4852x</span>
|
|
319
|
+
<span class="cline-any cline-yes">1014x</span>
|
|
320
|
+
<span class="cline-any cline-yes">1014x</span>
|
|
321
|
+
<span class="cline-any cline-yes">1014x</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-neutral"> </span>
|
|
326
|
+
<span class="cline-any cline-neutral"> </span>
|
|
327
|
+
<span class="cline-any cline-neutral"> </span>
|
|
328
|
+
<span class="cline-any cline-neutral"> </span>
|
|
329
|
+
<span class="cline-any cline-yes">375x</span>
|
|
330
|
+
<span class="cline-any cline-yes">119x</span>
|
|
331
|
+
<span class="cline-any cline-no"> </span>
|
|
332
|
+
<span class="cline-any cline-neutral"> </span>
|
|
333
|
+
<span class="cline-any cline-neutral"> </span>
|
|
334
|
+
<span class="cline-any cline-neutral"> </span>
|
|
335
|
+
<span class="cline-any cline-neutral"> </span>
|
|
336
|
+
<span class="cline-any cline-neutral"> </span>
|
|
337
|
+
<span class="cline-any cline-neutral"> </span>
|
|
338
|
+
<span class="cline-any cline-neutral"> </span>
|
|
339
|
+
<span class="cline-any cline-neutral"> </span>
|
|
340
|
+
<span class="cline-any cline-yes">375x</span>
|
|
341
|
+
<span class="cline-any cline-yes">1012x</span>
|
|
342
|
+
<span class="cline-any cline-neutral"> </span>
|
|
343
|
+
<span class="cline-any cline-neutral"> </span>
|
|
344
|
+
<span class="cline-any cline-yes">984x</span>
|
|
345
|
+
<span class="cline-any cline-neutral"> </span>
|
|
346
|
+
<span class="cline-any cline-neutral"> </span>
|
|
347
|
+
<span class="cline-any cline-neutral"> </span>
|
|
348
|
+
<span class="cline-any cline-yes">19x</span>
|
|
349
|
+
<span class="cline-any cline-neutral"> </span>
|
|
350
|
+
<span class="cline-any cline-neutral"> </span>
|
|
351
|
+
<span class="cline-any cline-no"> </span>
|
|
352
|
+
<span class="cline-any cline-neutral"> </span>
|
|
353
|
+
<span class="cline-any cline-neutral"> </span>
|
|
354
|
+
<span class="cline-any cline-neutral"> </span>
|
|
355
|
+
<span class="cline-any cline-neutral"> </span>
|
|
356
|
+
<span class="cline-any cline-neutral"> </span>
|
|
357
|
+
<span class="cline-any cline-neutral"> </span>
|
|
358
|
+
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">/* eslint-disable max-len */
|
|
359
|
+
import type { FindOptions, WhereOptions } from 'sequelize';
|
|
360
|
+
import { CustomFieldValue, CustomFieldDefinition } from '../models';
|
|
361
|
+
import * as DefinitionRepo from './definition';
|
|
362
|
+
import type { CreateCustomFieldValue, ValuesToUpdate } from '../types/value';
|
|
363
|
+
import logger from '../utils/logger';
|
|
364
|
+
import { MissingDefinitionError } from '../errors';
|
|
365
|
+
import type { ModelOptions } from '../types';
|
|
366
|
+
import { CustomFieldDefinitionType } from '../utils/constants';
|
|
367
|
+
|
|
368
|
+
export const findByModelIdAndDefinition = <span class="fstat-no" title="function not covered" >async </span>(modelId: string, customFieldDefinitionId: string) =>
|
|
369
|
+
<span class="cstat-no" title="statement not covered" > CustomFieldValue.findAll({ where: { modelId, customFieldDefinitionId }, include: [CustomFieldDefinition] });</span>
|
|
370
|
+
|
|
371
|
+
export const create = <span class="fstat-no" title="function not covered" >async </span>(data: CreateCustomFieldValue, withAssociations = <span class="branch-0 cbranch-no" title="branch not covered" >false)</span> => {
|
|
372
|
+
const created = <span class="cstat-no" title="statement not covered" >await CustomFieldValue.create(data);</span>
|
|
373
|
+
<span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (withAssociations) {</span>
|
|
374
|
+
const createdWithAssociations = <span class="cstat-no" title="statement not covered" >await findByModelIdAndDefinition(created.modelId, created.customFieldDefinitionId);</span>
|
|
375
|
+
<span class="cstat-no" title="statement not covered" > return createdWithAssociations?.[0];</span>
|
|
376
|
+
}
|
|
377
|
+
<span class="cstat-no" title="statement not covered" > return created;</span>
|
|
378
|
+
};
|
|
379
|
+
|
|
380
|
+
export const findAllValues = <span class="fstat-no" title="function not covered" >async </span>() => <span class="cstat-no" title="statement not covered" >CustomFieldValue.findAll({ include: [CustomFieldDefinition] });</span>
|
|
381
|
+
/**
|
|
382
|
+
* Get all values for model instance id (with their definitions)
|
|
383
|
+
* @param modelId
|
|
384
|
+
* @returns CustomFieldValue[]
|
|
385
|
+
*/
|
|
386
|
+
export const findValuesByModelId = <span class="fstat-no" title="function not covered" >async </span>(modelId: string) => <span class="cstat-no" title="statement not covered" >CustomFieldValue.findAll({ where: { modelId }, include: [CustomFieldDefinition] });</span>
|
|
387
|
+
|
|
388
|
+
/**
|
|
389
|
+
* Retrieves custom field values for given model IDs
|
|
390
|
+
* @param modelIds - An array of model IDs to query custom field values for.
|
|
391
|
+
* @param options - Optional configuration object.
|
|
392
|
+
*/
|
|
393
|
+
export const findValuesByModelIds = async (modelIds: string[], options?): Promise<CustomFieldValue[]> => {
|
|
394
|
+
const { transaction } = options;
|
|
395
|
+
return CustomFieldValue.findAll({
|
|
396
|
+
where: { modelId: modelIds },
|
|
397
|
+
transaction,
|
|
398
|
+
raw: true,
|
|
399
|
+
nest: true,
|
|
400
|
+
});
|
|
401
|
+
};
|
|
402
|
+
|
|
403
|
+
const formatFunctions = {
|
|
404
|
+
[CustomFieldDefinitionType.DATE]: (value) => {
|
|
405
|
+
if (value) {
|
|
406
|
+
const date = new Date(value);
|
|
407
|
+
if (date.toString() === 'Invalid Date') {
|
|
408
|
+
throw new Error(`Invalid date value: ${value}`);
|
|
409
|
+
}
|
|
410
|
+
return date.toISOString();
|
|
411
|
+
}
|
|
412
|
+
<span class="cstat-no" title="statement not covered" > return null;</span>
|
|
413
|
+
},
|
|
414
|
+
};
|
|
415
|
+
|
|
416
|
+
/**
|
|
417
|
+
* Try to update custom field values for a model instance.
|
|
418
|
+
* Create new value record if not exists, but fails if value's definition not exist.
|
|
419
|
+
* Return the updated values
|
|
420
|
+
*/
|
|
421
|
+
export const updateValues = async (
|
|
422
|
+
modelType: string,
|
|
423
|
+
modelId: string,
|
|
424
|
+
identifiers: string[],
|
|
425
|
+
valuesToUpdate: ValuesToUpdate,
|
|
426
|
+
options: FindOptions & { modelOptions?: ModelOptions } = <span class="branch-0 cbranch-no" title="branch not covered" >{},</span>
|
|
427
|
+
defineAllDefaults = false,
|
|
428
|
+
): Promise<CustomFieldValue[]> => {
|
|
429
|
+
const names = Object.keys(valuesToUpdate);
|
|
430
|
+
logger.debug(`custom-fields: updating values for ${modelType} ${modelId}`, {
|
|
431
|
+
names,
|
|
432
|
+
optionsKeys: options ? Object.keys(options) : <span class="branch-1 cbranch-no" title="branch not covered" >null,</span>
|
|
433
|
+
valuesToUpdate,
|
|
434
|
+
identifiers,
|
|
435
|
+
});
|
|
436
|
+
const { modelOptions, transaction } = options;
|
|
437
|
+
|
|
438
|
+
const where: WhereOptions = {
|
|
439
|
+
modelType,
|
|
440
|
+
name: names,
|
|
441
|
+
};
|
|
442
|
+
|
|
443
|
+
if (!options.modelOptions?.useEntityIdFromInclude) {
|
|
444
|
+
where.entityId = identifiers;
|
|
445
|
+
}
|
|
446
|
+
const fieldDefinitions = await DefinitionRepo.findAll(where, { withDisabled: true, transaction, include: modelOptions.include?.(identifiers) }) || <span class="branch-1 cbranch-no" title="branch not covered" >[];</span>
|
|
447
|
+
|
|
448
|
+
const disabledDefinitions = fieldDefinitions.filter((def) => def.disabled);
|
|
449
|
+
if (fieldDefinitions.length !== names.length) {
|
|
450
|
+
logger.warn(`custom-fields: missing definitions for ${modelType} ${modelId}`, { names, fieldDefinitions });
|
|
451
|
+
const missingDefinitions = names.filter((name) => !fieldDefinitions.some((def) => def.name === name));
|
|
452
|
+
throw new MissingDefinitionError(missingDefinitions);
|
|
453
|
+
}
|
|
454
|
+
|
|
455
|
+
const disabledNames = disabledDefinitions?.map((def) => def.name) || <span class="branch-1 cbranch-no" title="branch not covered" >[];</span>
|
|
456
|
+
const valuesWithDisabledDefinitions = names.filter((name) => disabledNames.includes(name));
|
|
457
|
+
if (valuesWithDisabledDefinitions?.length > 0) {
|
|
458
|
+
logger.warn(`custom-fields: trying to update disabled values: ${valuesWithDisabledDefinitions.join(', ')}`);
|
|
459
|
+
}
|
|
460
|
+
|
|
461
|
+
const visitedFields = new Set<CustomFieldDefinition>();
|
|
462
|
+
|
|
463
|
+
const values: CreateCustomFieldValue[] = names.map((name) => {
|
|
464
|
+
const fieldDefinition = fieldDefinitions.find((def) => def.name === name);
|
|
465
|
+
visitedFields.add(fieldDefinition);
|
|
466
|
+
const formatFunction = formatFunctions[fieldDefinition.fieldType];
|
|
467
|
+
return {
|
|
468
|
+
modelId,
|
|
469
|
+
value: (formatFunction ? formatFunction(valuesToUpdate[name]) : valuesToUpdate[name]) ?? fieldDefinition.defaultValue,
|
|
470
|
+
updatedAt: new Date(),
|
|
471
|
+
customFieldDefinitionId: fieldDefinition.id,
|
|
472
|
+
};
|
|
473
|
+
});
|
|
474
|
+
|
|
475
|
+
if (defineAllDefaults) {
|
|
476
|
+
fieldDefinitions.filter((def) => !visitedFields.has(def) && <span class="branch-1 cbranch-no" title="branch not covered" >![null, undefined].includes(def.defaultValue))</span>.forEach(<span class="fstat-no" title="function not covered" >({</span> id, defaultValue }) => {
|
|
477
|
+
<span class="cstat-no" title="statement not covered" > values.push({</span>
|
|
478
|
+
modelId,
|
|
479
|
+
value: defaultValue,
|
|
480
|
+
updatedAt: new Date(),
|
|
481
|
+
customFieldDefinitionId: id,
|
|
482
|
+
});
|
|
483
|
+
});
|
|
484
|
+
}
|
|
485
|
+
|
|
486
|
+
return Promise.all(values.map(async (value) => {
|
|
487
|
+
const [cfv] = await CustomFieldValue.upsert(value, {
|
|
488
|
+
transaction: options.transaction,
|
|
489
|
+
});
|
|
490
|
+
return cfv;
|
|
491
|
+
}));
|
|
492
|
+
};
|
|
493
|
+
|
|
494
|
+
export const deleteValue = <span class="fstat-no" title="function not covered" >(</span>
|
|
495
|
+
id: string,
|
|
496
|
+
options: any = <span class="branch-0 cbranch-no" title="branch not covered" >{},</span>
|
|
497
|
+
): Promise<any> => <span class="cstat-no" title="statement not covered" >CustomFieldValue.update(</span>
|
|
498
|
+
{ deletedAt: new Date() },
|
|
499
|
+
{
|
|
500
|
+
where: { id },
|
|
501
|
+
transaction: options.transaction,
|
|
502
|
+
},
|
|
503
|
+
);
|
|
504
|
+
</pre></td></tr></table></pre>
|
|
505
|
+
|
|
506
|
+
<div class='push'></div><!-- for sticky footer -->
|
|
507
|
+
</div><!-- /wrapper -->
|
|
508
|
+
<div class='footer quiet pad2 space-top1 center small'>
|
|
509
|
+
Code coverage generated by
|
|
510
|
+
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
511
|
+
at 2024-12-16T15:10:03.141Z
|
|
512
|
+
</div>
|
|
513
|
+
<script src="../../prettify.js"></script>
|
|
514
|
+
<script>
|
|
515
|
+
window.onload = function () {
|
|
516
|
+
prettyPrint();
|
|
517
|
+
};
|
|
518
|
+
</script>
|
|
519
|
+
<script src="../../sorter.js"></script>
|
|
520
|
+
<script src="../../block-navigation.js"></script>
|
|
521
|
+
</body>
|
|
522
|
+
</html>
|
|
523
|
+
|