@md2do/core 0.3.0 → 0.5.1
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 +38 -0
- package/README.md +6 -6
- package/dist/index.d.mts +40 -10
- package/dist/index.d.ts +40 -10
- package/dist/index.js +59 -11
- package/dist/index.mjs +61 -12
- package/package.json +1 -1
- package/src/parser/index.ts +28 -5
- package/src/parser/patterns.ts +8 -5
- package/src/scanner/index.ts +17 -0
- package/src/types/index.ts +4 -0
- package/src/utils/dates.ts +58 -10
- package/coverage/base.css +0 -224
- package/coverage/block-navigation.js +0 -87
- package/coverage/coverage-final.json +0 -10
- package/coverage/favicon.png +0 -0
- package/coverage/index.html +0 -206
- 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 -206
- 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 -210
- package/coverage/lcov-report/src/filters/index.html +0 -116
- package/coverage/lcov-report/src/filters/index.ts.html +0 -1156
- package/coverage/lcov-report/src/index.html +0 -116
- package/coverage/lcov-report/src/index.ts.html +0 -157
- package/coverage/lcov-report/src/parser/index.html +0 -131
- package/coverage/lcov-report/src/parser/index.ts.html +0 -1102
- package/coverage/lcov-report/src/parser/patterns.ts.html +0 -661
- package/coverage/lcov-report/src/scanner/index.html +0 -116
- package/coverage/lcov-report/src/scanner/index.ts.html +0 -658
- package/coverage/lcov-report/src/sorting/index.html +0 -116
- package/coverage/lcov-report/src/sorting/index.ts.html +0 -736
- package/coverage/lcov-report/src/utils/dates.ts.html +0 -499
- package/coverage/lcov-report/src/utils/id.ts.html +0 -169
- package/coverage/lcov-report/src/utils/index.html +0 -131
- package/coverage/lcov-report/src/writer/index.html +0 -116
- package/coverage/lcov-report/src/writer/index.ts.html +0 -1093
- package/coverage/lcov.info +0 -2294
- package/coverage/prettify.css +0 -1
- package/coverage/prettify.js +0 -2
- package/coverage/sort-arrow-sprite.png +0 -0
- package/coverage/sorter.js +0 -210
- package/coverage/src/filters/index.html +0 -116
- package/coverage/src/filters/index.ts.html +0 -1156
- package/coverage/src/index.html +0 -116
- package/coverage/src/index.ts.html +0 -157
- package/coverage/src/parser/index.html +0 -131
- package/coverage/src/parser/index.ts.html +0 -1102
- package/coverage/src/parser/patterns.ts.html +0 -661
- package/coverage/src/scanner/index.html +0 -116
- package/coverage/src/scanner/index.ts.html +0 -658
- package/coverage/src/sorting/index.html +0 -116
- package/coverage/src/sorting/index.ts.html +0 -736
- package/coverage/src/utils/dates.ts.html +0 -499
- package/coverage/src/utils/id.ts.html +0 -169
- package/coverage/src/utils/index.html +0 -131
- package/coverage/src/writer/index.html +0 -116
- package/coverage/src/writer/index.ts.html +0 -1093
|
@@ -1,1156 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
<!doctype html>
|
|
3
|
-
<html lang="en">
|
|
4
|
-
|
|
5
|
-
<head>
|
|
6
|
-
<title>Code coverage report for src/filters/index.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/filters</a> index.ts</h1>
|
|
23
|
-
<div class='clearfix'>
|
|
24
|
-
|
|
25
|
-
<div class='fl pad1y space-right2'>
|
|
26
|
-
<span class="strong">99.43% </span>
|
|
27
|
-
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>355/357</span>
|
|
29
|
-
</div>
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">94.82% </span>
|
|
34
|
-
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>55/58</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'>21/21</span>
|
|
43
|
-
</div>
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">99.43% </span>
|
|
48
|
-
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>355/357</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>
|
|
213
|
-
<a name='L148'></a><a href='#L148'>148</a>
|
|
214
|
-
<a name='L149'></a><a href='#L149'>149</a>
|
|
215
|
-
<a name='L150'></a><a href='#L150'>150</a>
|
|
216
|
-
<a name='L151'></a><a href='#L151'>151</a>
|
|
217
|
-
<a name='L152'></a><a href='#L152'>152</a>
|
|
218
|
-
<a name='L153'></a><a href='#L153'>153</a>
|
|
219
|
-
<a name='L154'></a><a href='#L154'>154</a>
|
|
220
|
-
<a name='L155'></a><a href='#L155'>155</a>
|
|
221
|
-
<a name='L156'></a><a href='#L156'>156</a>
|
|
222
|
-
<a name='L157'></a><a href='#L157'>157</a>
|
|
223
|
-
<a name='L158'></a><a href='#L158'>158</a>
|
|
224
|
-
<a name='L159'></a><a href='#L159'>159</a>
|
|
225
|
-
<a name='L160'></a><a href='#L160'>160</a>
|
|
226
|
-
<a name='L161'></a><a href='#L161'>161</a>
|
|
227
|
-
<a name='L162'></a><a href='#L162'>162</a>
|
|
228
|
-
<a name='L163'></a><a href='#L163'>163</a>
|
|
229
|
-
<a name='L164'></a><a href='#L164'>164</a>
|
|
230
|
-
<a name='L165'></a><a href='#L165'>165</a>
|
|
231
|
-
<a name='L166'></a><a href='#L166'>166</a>
|
|
232
|
-
<a name='L167'></a><a href='#L167'>167</a>
|
|
233
|
-
<a name='L168'></a><a href='#L168'>168</a>
|
|
234
|
-
<a name='L169'></a><a href='#L169'>169</a>
|
|
235
|
-
<a name='L170'></a><a href='#L170'>170</a>
|
|
236
|
-
<a name='L171'></a><a href='#L171'>171</a>
|
|
237
|
-
<a name='L172'></a><a href='#L172'>172</a>
|
|
238
|
-
<a name='L173'></a><a href='#L173'>173</a>
|
|
239
|
-
<a name='L174'></a><a href='#L174'>174</a>
|
|
240
|
-
<a name='L175'></a><a href='#L175'>175</a>
|
|
241
|
-
<a name='L176'></a><a href='#L176'>176</a>
|
|
242
|
-
<a name='L177'></a><a href='#L177'>177</a>
|
|
243
|
-
<a name='L178'></a><a href='#L178'>178</a>
|
|
244
|
-
<a name='L179'></a><a href='#L179'>179</a>
|
|
245
|
-
<a name='L180'></a><a href='#L180'>180</a>
|
|
246
|
-
<a name='L181'></a><a href='#L181'>181</a>
|
|
247
|
-
<a name='L182'></a><a href='#L182'>182</a>
|
|
248
|
-
<a name='L183'></a><a href='#L183'>183</a>
|
|
249
|
-
<a name='L184'></a><a href='#L184'>184</a>
|
|
250
|
-
<a name='L185'></a><a href='#L185'>185</a>
|
|
251
|
-
<a name='L186'></a><a href='#L186'>186</a>
|
|
252
|
-
<a name='L187'></a><a href='#L187'>187</a>
|
|
253
|
-
<a name='L188'></a><a href='#L188'>188</a>
|
|
254
|
-
<a name='L189'></a><a href='#L189'>189</a>
|
|
255
|
-
<a name='L190'></a><a href='#L190'>190</a>
|
|
256
|
-
<a name='L191'></a><a href='#L191'>191</a>
|
|
257
|
-
<a name='L192'></a><a href='#L192'>192</a>
|
|
258
|
-
<a name='L193'></a><a href='#L193'>193</a>
|
|
259
|
-
<a name='L194'></a><a href='#L194'>194</a>
|
|
260
|
-
<a name='L195'></a><a href='#L195'>195</a>
|
|
261
|
-
<a name='L196'></a><a href='#L196'>196</a>
|
|
262
|
-
<a name='L197'></a><a href='#L197'>197</a>
|
|
263
|
-
<a name='L198'></a><a href='#L198'>198</a>
|
|
264
|
-
<a name='L199'></a><a href='#L199'>199</a>
|
|
265
|
-
<a name='L200'></a><a href='#L200'>200</a>
|
|
266
|
-
<a name='L201'></a><a href='#L201'>201</a>
|
|
267
|
-
<a name='L202'></a><a href='#L202'>202</a>
|
|
268
|
-
<a name='L203'></a><a href='#L203'>203</a>
|
|
269
|
-
<a name='L204'></a><a href='#L204'>204</a>
|
|
270
|
-
<a name='L205'></a><a href='#L205'>205</a>
|
|
271
|
-
<a name='L206'></a><a href='#L206'>206</a>
|
|
272
|
-
<a name='L207'></a><a href='#L207'>207</a>
|
|
273
|
-
<a name='L208'></a><a href='#L208'>208</a>
|
|
274
|
-
<a name='L209'></a><a href='#L209'>209</a>
|
|
275
|
-
<a name='L210'></a><a href='#L210'>210</a>
|
|
276
|
-
<a name='L211'></a><a href='#L211'>211</a>
|
|
277
|
-
<a name='L212'></a><a href='#L212'>212</a>
|
|
278
|
-
<a name='L213'></a><a href='#L213'>213</a>
|
|
279
|
-
<a name='L214'></a><a href='#L214'>214</a>
|
|
280
|
-
<a name='L215'></a><a href='#L215'>215</a>
|
|
281
|
-
<a name='L216'></a><a href='#L216'>216</a>
|
|
282
|
-
<a name='L217'></a><a href='#L217'>217</a>
|
|
283
|
-
<a name='L218'></a><a href='#L218'>218</a>
|
|
284
|
-
<a name='L219'></a><a href='#L219'>219</a>
|
|
285
|
-
<a name='L220'></a><a href='#L220'>220</a>
|
|
286
|
-
<a name='L221'></a><a href='#L221'>221</a>
|
|
287
|
-
<a name='L222'></a><a href='#L222'>222</a>
|
|
288
|
-
<a name='L223'></a><a href='#L223'>223</a>
|
|
289
|
-
<a name='L224'></a><a href='#L224'>224</a>
|
|
290
|
-
<a name='L225'></a><a href='#L225'>225</a>
|
|
291
|
-
<a name='L226'></a><a href='#L226'>226</a>
|
|
292
|
-
<a name='L227'></a><a href='#L227'>227</a>
|
|
293
|
-
<a name='L228'></a><a href='#L228'>228</a>
|
|
294
|
-
<a name='L229'></a><a href='#L229'>229</a>
|
|
295
|
-
<a name='L230'></a><a href='#L230'>230</a>
|
|
296
|
-
<a name='L231'></a><a href='#L231'>231</a>
|
|
297
|
-
<a name='L232'></a><a href='#L232'>232</a>
|
|
298
|
-
<a name='L233'></a><a href='#L233'>233</a>
|
|
299
|
-
<a name='L234'></a><a href='#L234'>234</a>
|
|
300
|
-
<a name='L235'></a><a href='#L235'>235</a>
|
|
301
|
-
<a name='L236'></a><a href='#L236'>236</a>
|
|
302
|
-
<a name='L237'></a><a href='#L237'>237</a>
|
|
303
|
-
<a name='L238'></a><a href='#L238'>238</a>
|
|
304
|
-
<a name='L239'></a><a href='#L239'>239</a>
|
|
305
|
-
<a name='L240'></a><a href='#L240'>240</a>
|
|
306
|
-
<a name='L241'></a><a href='#L241'>241</a>
|
|
307
|
-
<a name='L242'></a><a href='#L242'>242</a>
|
|
308
|
-
<a name='L243'></a><a href='#L243'>243</a>
|
|
309
|
-
<a name='L244'></a><a href='#L244'>244</a>
|
|
310
|
-
<a name='L245'></a><a href='#L245'>245</a>
|
|
311
|
-
<a name='L246'></a><a href='#L246'>246</a>
|
|
312
|
-
<a name='L247'></a><a href='#L247'>247</a>
|
|
313
|
-
<a name='L248'></a><a href='#L248'>248</a>
|
|
314
|
-
<a name='L249'></a><a href='#L249'>249</a>
|
|
315
|
-
<a name='L250'></a><a href='#L250'>250</a>
|
|
316
|
-
<a name='L251'></a><a href='#L251'>251</a>
|
|
317
|
-
<a name='L252'></a><a href='#L252'>252</a>
|
|
318
|
-
<a name='L253'></a><a href='#L253'>253</a>
|
|
319
|
-
<a name='L254'></a><a href='#L254'>254</a>
|
|
320
|
-
<a name='L255'></a><a href='#L255'>255</a>
|
|
321
|
-
<a name='L256'></a><a href='#L256'>256</a>
|
|
322
|
-
<a name='L257'></a><a href='#L257'>257</a>
|
|
323
|
-
<a name='L258'></a><a href='#L258'>258</a>
|
|
324
|
-
<a name='L259'></a><a href='#L259'>259</a>
|
|
325
|
-
<a name='L260'></a><a href='#L260'>260</a>
|
|
326
|
-
<a name='L261'></a><a href='#L261'>261</a>
|
|
327
|
-
<a name='L262'></a><a href='#L262'>262</a>
|
|
328
|
-
<a name='L263'></a><a href='#L263'>263</a>
|
|
329
|
-
<a name='L264'></a><a href='#L264'>264</a>
|
|
330
|
-
<a name='L265'></a><a href='#L265'>265</a>
|
|
331
|
-
<a name='L266'></a><a href='#L266'>266</a>
|
|
332
|
-
<a name='L267'></a><a href='#L267'>267</a>
|
|
333
|
-
<a name='L268'></a><a href='#L268'>268</a>
|
|
334
|
-
<a name='L269'></a><a href='#L269'>269</a>
|
|
335
|
-
<a name='L270'></a><a href='#L270'>270</a>
|
|
336
|
-
<a name='L271'></a><a href='#L271'>271</a>
|
|
337
|
-
<a name='L272'></a><a href='#L272'>272</a>
|
|
338
|
-
<a name='L273'></a><a href='#L273'>273</a>
|
|
339
|
-
<a name='L274'></a><a href='#L274'>274</a>
|
|
340
|
-
<a name='L275'></a><a href='#L275'>275</a>
|
|
341
|
-
<a name='L276'></a><a href='#L276'>276</a>
|
|
342
|
-
<a name='L277'></a><a href='#L277'>277</a>
|
|
343
|
-
<a name='L278'></a><a href='#L278'>278</a>
|
|
344
|
-
<a name='L279'></a><a href='#L279'>279</a>
|
|
345
|
-
<a name='L280'></a><a href='#L280'>280</a>
|
|
346
|
-
<a name='L281'></a><a href='#L281'>281</a>
|
|
347
|
-
<a name='L282'></a><a href='#L282'>282</a>
|
|
348
|
-
<a name='L283'></a><a href='#L283'>283</a>
|
|
349
|
-
<a name='L284'></a><a href='#L284'>284</a>
|
|
350
|
-
<a name='L285'></a><a href='#L285'>285</a>
|
|
351
|
-
<a name='L286'></a><a href='#L286'>286</a>
|
|
352
|
-
<a name='L287'></a><a href='#L287'>287</a>
|
|
353
|
-
<a name='L288'></a><a href='#L288'>288</a>
|
|
354
|
-
<a name='L289'></a><a href='#L289'>289</a>
|
|
355
|
-
<a name='L290'></a><a href='#L290'>290</a>
|
|
356
|
-
<a name='L291'></a><a href='#L291'>291</a>
|
|
357
|
-
<a name='L292'></a><a href='#L292'>292</a>
|
|
358
|
-
<a name='L293'></a><a href='#L293'>293</a>
|
|
359
|
-
<a name='L294'></a><a href='#L294'>294</a>
|
|
360
|
-
<a name='L295'></a><a href='#L295'>295</a>
|
|
361
|
-
<a name='L296'></a><a href='#L296'>296</a>
|
|
362
|
-
<a name='L297'></a><a href='#L297'>297</a>
|
|
363
|
-
<a name='L298'></a><a href='#L298'>298</a>
|
|
364
|
-
<a name='L299'></a><a href='#L299'>299</a>
|
|
365
|
-
<a name='L300'></a><a href='#L300'>300</a>
|
|
366
|
-
<a name='L301'></a><a href='#L301'>301</a>
|
|
367
|
-
<a name='L302'></a><a href='#L302'>302</a>
|
|
368
|
-
<a name='L303'></a><a href='#L303'>303</a>
|
|
369
|
-
<a name='L304'></a><a href='#L304'>304</a>
|
|
370
|
-
<a name='L305'></a><a href='#L305'>305</a>
|
|
371
|
-
<a name='L306'></a><a href='#L306'>306</a>
|
|
372
|
-
<a name='L307'></a><a href='#L307'>307</a>
|
|
373
|
-
<a name='L308'></a><a href='#L308'>308</a>
|
|
374
|
-
<a name='L309'></a><a href='#L309'>309</a>
|
|
375
|
-
<a name='L310'></a><a href='#L310'>310</a>
|
|
376
|
-
<a name='L311'></a><a href='#L311'>311</a>
|
|
377
|
-
<a name='L312'></a><a href='#L312'>312</a>
|
|
378
|
-
<a name='L313'></a><a href='#L313'>313</a>
|
|
379
|
-
<a name='L314'></a><a href='#L314'>314</a>
|
|
380
|
-
<a name='L315'></a><a href='#L315'>315</a>
|
|
381
|
-
<a name='L316'></a><a href='#L316'>316</a>
|
|
382
|
-
<a name='L317'></a><a href='#L317'>317</a>
|
|
383
|
-
<a name='L318'></a><a href='#L318'>318</a>
|
|
384
|
-
<a name='L319'></a><a href='#L319'>319</a>
|
|
385
|
-
<a name='L320'></a><a href='#L320'>320</a>
|
|
386
|
-
<a name='L321'></a><a href='#L321'>321</a>
|
|
387
|
-
<a name='L322'></a><a href='#L322'>322</a>
|
|
388
|
-
<a name='L323'></a><a href='#L323'>323</a>
|
|
389
|
-
<a name='L324'></a><a href='#L324'>324</a>
|
|
390
|
-
<a name='L325'></a><a href='#L325'>325</a>
|
|
391
|
-
<a name='L326'></a><a href='#L326'>326</a>
|
|
392
|
-
<a name='L327'></a><a href='#L327'>327</a>
|
|
393
|
-
<a name='L328'></a><a href='#L328'>328</a>
|
|
394
|
-
<a name='L329'></a><a href='#L329'>329</a>
|
|
395
|
-
<a name='L330'></a><a href='#L330'>330</a>
|
|
396
|
-
<a name='L331'></a><a href='#L331'>331</a>
|
|
397
|
-
<a name='L332'></a><a href='#L332'>332</a>
|
|
398
|
-
<a name='L333'></a><a href='#L333'>333</a>
|
|
399
|
-
<a name='L334'></a><a href='#L334'>334</a>
|
|
400
|
-
<a name='L335'></a><a href='#L335'>335</a>
|
|
401
|
-
<a name='L336'></a><a href='#L336'>336</a>
|
|
402
|
-
<a name='L337'></a><a href='#L337'>337</a>
|
|
403
|
-
<a name='L338'></a><a href='#L338'>338</a>
|
|
404
|
-
<a name='L339'></a><a href='#L339'>339</a>
|
|
405
|
-
<a name='L340'></a><a href='#L340'>340</a>
|
|
406
|
-
<a name='L341'></a><a href='#L341'>341</a>
|
|
407
|
-
<a name='L342'></a><a href='#L342'>342</a>
|
|
408
|
-
<a name='L343'></a><a href='#L343'>343</a>
|
|
409
|
-
<a name='L344'></a><a href='#L344'>344</a>
|
|
410
|
-
<a name='L345'></a><a href='#L345'>345</a>
|
|
411
|
-
<a name='L346'></a><a href='#L346'>346</a>
|
|
412
|
-
<a name='L347'></a><a href='#L347'>347</a>
|
|
413
|
-
<a name='L348'></a><a href='#L348'>348</a>
|
|
414
|
-
<a name='L349'></a><a href='#L349'>349</a>
|
|
415
|
-
<a name='L350'></a><a href='#L350'>350</a>
|
|
416
|
-
<a name='L351'></a><a href='#L351'>351</a>
|
|
417
|
-
<a name='L352'></a><a href='#L352'>352</a>
|
|
418
|
-
<a name='L353'></a><a href='#L353'>353</a>
|
|
419
|
-
<a name='L354'></a><a href='#L354'>354</a>
|
|
420
|
-
<a name='L355'></a><a href='#L355'>355</a>
|
|
421
|
-
<a name='L356'></a><a href='#L356'>356</a>
|
|
422
|
-
<a name='L357'></a><a href='#L357'>357</a>
|
|
423
|
-
<a name='L358'></a><a href='#L358'>358</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
|
|
424
|
-
<span class="cline-any cline-yes">1x</span>
|
|
425
|
-
<span class="cline-any cline-yes">1x</span>
|
|
426
|
-
<span class="cline-any cline-yes">1x</span>
|
|
427
|
-
<span class="cline-any cline-yes">1x</span>
|
|
428
|
-
<span class="cline-any cline-yes">1x</span>
|
|
429
|
-
<span class="cline-any cline-yes">1x</span>
|
|
430
|
-
<span class="cline-any cline-yes">1x</span>
|
|
431
|
-
<span class="cline-any cline-yes">1x</span>
|
|
432
|
-
<span class="cline-any cline-yes">1x</span>
|
|
433
|
-
<span class="cline-any cline-yes">1x</span>
|
|
434
|
-
<span class="cline-any cline-yes">1x</span>
|
|
435
|
-
<span class="cline-any cline-yes">1x</span>
|
|
436
|
-
<span class="cline-any cline-yes">1x</span>
|
|
437
|
-
<span class="cline-any cline-yes">1x</span>
|
|
438
|
-
<span class="cline-any cline-yes">1x</span>
|
|
439
|
-
<span class="cline-any cline-yes">1x</span>
|
|
440
|
-
<span class="cline-any cline-yes">1x</span>
|
|
441
|
-
<span class="cline-any cline-yes">7x</span>
|
|
442
|
-
<span class="cline-any cline-yes">7x</span>
|
|
443
|
-
<span class="cline-any cline-yes">1x</span>
|
|
444
|
-
<span class="cline-any cline-yes">1x</span>
|
|
445
|
-
<span class="cline-any cline-yes">1x</span>
|
|
446
|
-
<span class="cline-any cline-yes">1x</span>
|
|
447
|
-
<span class="cline-any cline-yes">1x</span>
|
|
448
|
-
<span class="cline-any cline-yes">1x</span>
|
|
449
|
-
<span class="cline-any cline-yes">1x</span>
|
|
450
|
-
<span class="cline-any cline-yes">1x</span>
|
|
451
|
-
<span class="cline-any cline-yes">1x</span>
|
|
452
|
-
<span class="cline-any cline-yes">1x</span>
|
|
453
|
-
<span class="cline-any cline-yes">1x</span>
|
|
454
|
-
<span class="cline-any cline-yes">4x</span>
|
|
455
|
-
<span class="cline-any cline-yes">4x</span>
|
|
456
|
-
<span class="cline-any cline-yes">1x</span>
|
|
457
|
-
<span class="cline-any cline-yes">1x</span>
|
|
458
|
-
<span class="cline-any cline-yes">1x</span>
|
|
459
|
-
<span class="cline-any cline-yes">1x</span>
|
|
460
|
-
<span class="cline-any cline-yes">1x</span>
|
|
461
|
-
<span class="cline-any cline-yes">1x</span>
|
|
462
|
-
<span class="cline-any cline-yes">1x</span>
|
|
463
|
-
<span class="cline-any cline-yes">1x</span>
|
|
464
|
-
<span class="cline-any cline-yes">1x</span>
|
|
465
|
-
<span class="cline-any cline-yes">1x</span>
|
|
466
|
-
<span class="cline-any cline-yes">1x</span>
|
|
467
|
-
<span class="cline-any cline-yes">9x</span>
|
|
468
|
-
<span class="cline-any cline-yes">9x</span>
|
|
469
|
-
<span class="cline-any cline-yes">1x</span>
|
|
470
|
-
<span class="cline-any cline-yes">1x</span>
|
|
471
|
-
<span class="cline-any cline-yes">1x</span>
|
|
472
|
-
<span class="cline-any cline-yes">1x</span>
|
|
473
|
-
<span class="cline-any cline-yes">1x</span>
|
|
474
|
-
<span class="cline-any cline-yes">1x</span>
|
|
475
|
-
<span class="cline-any cline-yes">1x</span>
|
|
476
|
-
<span class="cline-any cline-yes">1x</span>
|
|
477
|
-
<span class="cline-any cline-yes">1x</span>
|
|
478
|
-
<span class="cline-any cline-yes">1x</span>
|
|
479
|
-
<span class="cline-any cline-yes">1x</span>
|
|
480
|
-
<span class="cline-any cline-yes">2x</span>
|
|
481
|
-
<span class="cline-any cline-yes">2x</span>
|
|
482
|
-
<span class="cline-any cline-yes">1x</span>
|
|
483
|
-
<span class="cline-any cline-yes">1x</span>
|
|
484
|
-
<span class="cline-any cline-yes">1x</span>
|
|
485
|
-
<span class="cline-any cline-yes">1x</span>
|
|
486
|
-
<span class="cline-any cline-yes">1x</span>
|
|
487
|
-
<span class="cline-any cline-yes">1x</span>
|
|
488
|
-
<span class="cline-any cline-yes">1x</span>
|
|
489
|
-
<span class="cline-any cline-yes">1x</span>
|
|
490
|
-
<span class="cline-any cline-yes">1x</span>
|
|
491
|
-
<span class="cline-any cline-yes">1x</span>
|
|
492
|
-
<span class="cline-any cline-yes">1x</span>
|
|
493
|
-
<span class="cline-any cline-yes">1x</span>
|
|
494
|
-
<span class="cline-any cline-yes">1x</span>
|
|
495
|
-
<span class="cline-any cline-yes">1x</span>
|
|
496
|
-
<span class="cline-any cline-yes">1x</span>
|
|
497
|
-
<span class="cline-any cline-yes">1x</span>
|
|
498
|
-
<span class="cline-any cline-yes">1x</span>
|
|
499
|
-
<span class="cline-any cline-yes">1x</span>
|
|
500
|
-
<span class="cline-any cline-yes">1x</span>
|
|
501
|
-
<span class="cline-any cline-yes">1x</span>
|
|
502
|
-
<span class="cline-any cline-yes">1x</span>
|
|
503
|
-
<span class="cline-any cline-yes">1x</span>
|
|
504
|
-
<span class="cline-any cline-yes">1x</span>
|
|
505
|
-
<span class="cline-any cline-yes">1x</span>
|
|
506
|
-
<span class="cline-any cline-yes">5x</span>
|
|
507
|
-
<span class="cline-any cline-yes">5x</span>
|
|
508
|
-
<span class="cline-any cline-yes">1x</span>
|
|
509
|
-
<span class="cline-any cline-yes">1x</span>
|
|
510
|
-
<span class="cline-any cline-yes">1x</span>
|
|
511
|
-
<span class="cline-any cline-yes">1x</span>
|
|
512
|
-
<span class="cline-any cline-yes">1x</span>
|
|
513
|
-
<span class="cline-any cline-yes">1x</span>
|
|
514
|
-
<span class="cline-any cline-yes">1x</span>
|
|
515
|
-
<span class="cline-any cline-yes">1x</span>
|
|
516
|
-
<span class="cline-any cline-yes">1x</span>
|
|
517
|
-
<span class="cline-any cline-yes">1x</span>
|
|
518
|
-
<span class="cline-any cline-yes">1x</span>
|
|
519
|
-
<span class="cline-any cline-yes">1x</span>
|
|
520
|
-
<span class="cline-any cline-yes">1x</span>
|
|
521
|
-
<span class="cline-any cline-yes">1x</span>
|
|
522
|
-
<span class="cline-any cline-yes">1x</span>
|
|
523
|
-
<span class="cline-any cline-yes">1x</span>
|
|
524
|
-
<span class="cline-any cline-yes">1x</span>
|
|
525
|
-
<span class="cline-any cline-yes">1x</span>
|
|
526
|
-
<span class="cline-any cline-yes">1x</span>
|
|
527
|
-
<span class="cline-any cline-yes">7x</span>
|
|
528
|
-
<span class="cline-any cline-yes">7x</span>
|
|
529
|
-
<span class="cline-any cline-yes">7x</span>
|
|
530
|
-
<span class="cline-any cline-yes">7x</span>
|
|
531
|
-
<span class="cline-any cline-yes">7x</span>
|
|
532
|
-
<span class="cline-any cline-yes">7x</span>
|
|
533
|
-
<span class="cline-any cline-yes">7x</span>
|
|
534
|
-
<span class="cline-any cline-yes">16x</span>
|
|
535
|
-
<span class="cline-any cline-yes">16x</span>
|
|
536
|
-
<span class="cline-any cline-yes">16x</span>
|
|
537
|
-
<span class="cline-any cline-yes">16x</span>
|
|
538
|
-
<span class="cline-any cline-yes">4x</span>
|
|
539
|
-
<span class="cline-any cline-yes">4x</span>
|
|
540
|
-
<span class="cline-any cline-yes">12x</span>
|
|
541
|
-
<span class="cline-any cline-yes">12x</span>
|
|
542
|
-
<span class="cline-any cline-yes">16x</span>
|
|
543
|
-
<span class="cline-any cline-yes">7x</span>
|
|
544
|
-
<span class="cline-any cline-yes">7x</span>
|
|
545
|
-
<span class="cline-any cline-yes">7x</span>
|
|
546
|
-
<span class="cline-any cline-yes">7x</span>
|
|
547
|
-
<span class="cline-any cline-yes">16x</span>
|
|
548
|
-
<span class="cline-any cline-yes">5x</span>
|
|
549
|
-
<span class="cline-any cline-yes">5x</span>
|
|
550
|
-
<span class="cline-any cline-yes">5x</span>
|
|
551
|
-
<span class="cline-any cline-no"> </span>
|
|
552
|
-
<span class="cline-any cline-no"> </span>
|
|
553
|
-
<span class="cline-any cline-yes">5x</span>
|
|
554
|
-
<span class="cline-any cline-yes">5x</span>
|
|
555
|
-
<span class="cline-any cline-yes">5x</span>
|
|
556
|
-
<span class="cline-any cline-yes">5x</span>
|
|
557
|
-
<span class="cline-any cline-yes">16x</span>
|
|
558
|
-
<span class="cline-any cline-yes">7x</span>
|
|
559
|
-
<span class="cline-any cline-yes">1x</span>
|
|
560
|
-
<span class="cline-any cline-yes">1x</span>
|
|
561
|
-
<span class="cline-any cline-yes">1x</span>
|
|
562
|
-
<span class="cline-any cline-yes">1x</span>
|
|
563
|
-
<span class="cline-any cline-yes">11x</span>
|
|
564
|
-
<span class="cline-any cline-yes">11x</span>
|
|
565
|
-
<span class="cline-any cline-yes">11x</span>
|
|
566
|
-
<span class="cline-any cline-yes">11x</span>
|
|
567
|
-
<span class="cline-any cline-yes">11x</span>
|
|
568
|
-
<span class="cline-any cline-yes">11x</span>
|
|
569
|
-
<span class="cline-any cline-yes">11x</span>
|
|
570
|
-
<span class="cline-any cline-yes">11x</span>
|
|
571
|
-
<span class="cline-any cline-yes">11x</span>
|
|
572
|
-
<span class="cline-any cline-yes">11x</span>
|
|
573
|
-
<span class="cline-any cline-yes">11x</span>
|
|
574
|
-
<span class="cline-any cline-yes">11x</span>
|
|
575
|
-
<span class="cline-any cline-yes">11x</span>
|
|
576
|
-
<span class="cline-any cline-yes">1x</span>
|
|
577
|
-
<span class="cline-any cline-yes">1x</span>
|
|
578
|
-
<span class="cline-any cline-yes">1x</span>
|
|
579
|
-
<span class="cline-any cline-yes">1x</span>
|
|
580
|
-
<span class="cline-any cline-yes">7x</span>
|
|
581
|
-
<span class="cline-any cline-yes">7x</span>
|
|
582
|
-
<span class="cline-any cline-yes">7x</span>
|
|
583
|
-
<span class="cline-any cline-yes">7x</span>
|
|
584
|
-
<span class="cline-any cline-yes">7x</span>
|
|
585
|
-
<span class="cline-any cline-yes">7x</span>
|
|
586
|
-
<span class="cline-any cline-yes">7x</span>
|
|
587
|
-
<span class="cline-any cline-yes">7x</span>
|
|
588
|
-
<span class="cline-any cline-yes">7x</span>
|
|
589
|
-
<span class="cline-any cline-yes">7x</span>
|
|
590
|
-
<span class="cline-any cline-yes">7x</span>
|
|
591
|
-
<span class="cline-any cline-yes">7x</span>
|
|
592
|
-
<span class="cline-any cline-yes">7x</span>
|
|
593
|
-
<span class="cline-any cline-yes">1x</span>
|
|
594
|
-
<span class="cline-any cline-yes">1x</span>
|
|
595
|
-
<span class="cline-any cline-yes">1x</span>
|
|
596
|
-
<span class="cline-any cline-yes">1x</span>
|
|
597
|
-
<span class="cline-any cline-yes">8x</span>
|
|
598
|
-
<span class="cline-any cline-yes">8x</span>
|
|
599
|
-
<span class="cline-any cline-yes">8x</span>
|
|
600
|
-
<span class="cline-any cline-yes">8x</span>
|
|
601
|
-
<span class="cline-any cline-yes">8x</span>
|
|
602
|
-
<span class="cline-any cline-yes">1x</span>
|
|
603
|
-
<span class="cline-any cline-yes">1x</span>
|
|
604
|
-
<span class="cline-any cline-yes">1x</span>
|
|
605
|
-
<span class="cline-any cline-yes">1x</span>
|
|
606
|
-
<span class="cline-any cline-yes">3x</span>
|
|
607
|
-
<span class="cline-any cline-yes">3x</span>
|
|
608
|
-
<span class="cline-any cline-yes">3x</span>
|
|
609
|
-
<span class="cline-any cline-yes">3x</span>
|
|
610
|
-
<span class="cline-any cline-yes">3x</span>
|
|
611
|
-
<span class="cline-any cline-yes">3x</span>
|
|
612
|
-
<span class="cline-any cline-yes">1x</span>
|
|
613
|
-
<span class="cline-any cline-yes">1x</span>
|
|
614
|
-
<span class="cline-any cline-yes">1x</span>
|
|
615
|
-
<span class="cline-any cline-yes">1x</span>
|
|
616
|
-
<span class="cline-any cline-yes">3x</span>
|
|
617
|
-
<span class="cline-any cline-yes">3x</span>
|
|
618
|
-
<span class="cline-any cline-yes">3x</span>
|
|
619
|
-
<span class="cline-any cline-yes">3x</span>
|
|
620
|
-
<span class="cline-any cline-yes">3x</span>
|
|
621
|
-
<span class="cline-any cline-yes">3x</span>
|
|
622
|
-
<span class="cline-any cline-yes">1x</span>
|
|
623
|
-
<span class="cline-any cline-yes">1x</span>
|
|
624
|
-
<span class="cline-any cline-yes">1x</span>
|
|
625
|
-
<span class="cline-any cline-yes">1x</span>
|
|
626
|
-
<span class="cline-any cline-yes">1x</span>
|
|
627
|
-
<span class="cline-any cline-yes">1x</span>
|
|
628
|
-
<span class="cline-any cline-yes">1x</span>
|
|
629
|
-
<span class="cline-any cline-yes">1x</span>
|
|
630
|
-
<span class="cline-any cline-yes">1x</span>
|
|
631
|
-
<span class="cline-any cline-yes">1x</span>
|
|
632
|
-
<span class="cline-any cline-yes">1x</span>
|
|
633
|
-
<span class="cline-any cline-yes">1x</span>
|
|
634
|
-
<span class="cline-any cline-yes">4x</span>
|
|
635
|
-
<span class="cline-any cline-yes">4x</span>
|
|
636
|
-
<span class="cline-any cline-yes">4x</span>
|
|
637
|
-
<span class="cline-any cline-yes">10x</span>
|
|
638
|
-
<span class="cline-any cline-yes">3x</span>
|
|
639
|
-
<span class="cline-any cline-yes">3x</span>
|
|
640
|
-
<span class="cline-any cline-yes">7x</span>
|
|
641
|
-
<span class="cline-any cline-yes">10x</span>
|
|
642
|
-
<span class="cline-any cline-yes">4x</span>
|
|
643
|
-
<span class="cline-any cline-yes">1x</span>
|
|
644
|
-
<span class="cline-any cline-yes">1x</span>
|
|
645
|
-
<span class="cline-any cline-yes">1x</span>
|
|
646
|
-
<span class="cline-any cline-yes">1x</span>
|
|
647
|
-
<span class="cline-any cline-yes">1x</span>
|
|
648
|
-
<span class="cline-any cline-yes">1x</span>
|
|
649
|
-
<span class="cline-any cline-yes">1x</span>
|
|
650
|
-
<span class="cline-any cline-yes">1x</span>
|
|
651
|
-
<span class="cline-any cline-yes">1x</span>
|
|
652
|
-
<span class="cline-any cline-yes">1x</span>
|
|
653
|
-
<span class="cline-any cline-yes">1x</span>
|
|
654
|
-
<span class="cline-any cline-yes">2x</span>
|
|
655
|
-
<span class="cline-any cline-yes">2x</span>
|
|
656
|
-
<span class="cline-any cline-yes">2x</span>
|
|
657
|
-
<span class="cline-any cline-yes">2x</span>
|
|
658
|
-
<span class="cline-any cline-yes">5x</span>
|
|
659
|
-
<span class="cline-any cline-yes">1x</span>
|
|
660
|
-
<span class="cline-any cline-yes">1x</span>
|
|
661
|
-
<span class="cline-any cline-yes">5x</span>
|
|
662
|
-
<span class="cline-any cline-yes">5x</span>
|
|
663
|
-
<span class="cline-any cline-yes">2x</span>
|
|
664
|
-
<span class="cline-any cline-yes">1x</span>
|
|
665
|
-
<span class="cline-any cline-yes">1x</span>
|
|
666
|
-
<span class="cline-any cline-yes">1x</span>
|
|
667
|
-
<span class="cline-any cline-yes">1x</span>
|
|
668
|
-
<span class="cline-any cline-yes">1x</span>
|
|
669
|
-
<span class="cline-any cline-yes">1x</span>
|
|
670
|
-
<span class="cline-any cline-yes">1x</span>
|
|
671
|
-
<span class="cline-any cline-yes">1x</span>
|
|
672
|
-
<span class="cline-any cline-yes">1x</span>
|
|
673
|
-
<span class="cline-any cline-yes">1x</span>
|
|
674
|
-
<span class="cline-any cline-yes">1x</span>
|
|
675
|
-
<span class="cline-any cline-yes">3x</span>
|
|
676
|
-
<span class="cline-any cline-yes">3x</span>
|
|
677
|
-
<span class="cline-any cline-yes">3x</span>
|
|
678
|
-
<span class="cline-any cline-yes">3x</span>
|
|
679
|
-
<span class="cline-any cline-yes">9x</span>
|
|
680
|
-
<span class="cline-any cline-yes">2x</span>
|
|
681
|
-
<span class="cline-any cline-yes">2x</span>
|
|
682
|
-
<span class="cline-any cline-yes">7x</span>
|
|
683
|
-
<span class="cline-any cline-yes">9x</span>
|
|
684
|
-
<span class="cline-any cline-yes">3x</span>
|
|
685
|
-
<span class="cline-any cline-yes">1x</span>
|
|
686
|
-
<span class="cline-any cline-yes">1x</span>
|
|
687
|
-
<span class="cline-any cline-yes">1x</span>
|
|
688
|
-
<span class="cline-any cline-yes">1x</span>
|
|
689
|
-
<span class="cline-any cline-yes">1x</span>
|
|
690
|
-
<span class="cline-any cline-yes">1x</span>
|
|
691
|
-
<span class="cline-any cline-yes">1x</span>
|
|
692
|
-
<span class="cline-any cline-yes">1x</span>
|
|
693
|
-
<span class="cline-any cline-yes">1x</span>
|
|
694
|
-
<span class="cline-any cline-yes">1x</span>
|
|
695
|
-
<span class="cline-any cline-yes">1x</span>
|
|
696
|
-
<span class="cline-any cline-yes">1x</span>
|
|
697
|
-
<span class="cline-any cline-yes">2x</span>
|
|
698
|
-
<span class="cline-any cline-yes">2x</span>
|
|
699
|
-
<span class="cline-any cline-yes">2x</span>
|
|
700
|
-
<span class="cline-any cline-yes">2x</span>
|
|
701
|
-
<span class="cline-any cline-yes">2x</span>
|
|
702
|
-
<span class="cline-any cline-yes">2x</span>
|
|
703
|
-
<span class="cline-any cline-yes">2x</span>
|
|
704
|
-
<span class="cline-any cline-yes">6x</span>
|
|
705
|
-
<span class="cline-any cline-yes">1x</span>
|
|
706
|
-
<span class="cline-any cline-yes">1x</span>
|
|
707
|
-
<span class="cline-any cline-yes">5x</span>
|
|
708
|
-
<span class="cline-any cline-yes">6x</span>
|
|
709
|
-
<span class="cline-any cline-yes">2x</span>
|
|
710
|
-
<span class="cline-any cline-yes">1x</span>
|
|
711
|
-
<span class="cline-any cline-yes">1x</span>
|
|
712
|
-
<span class="cline-any cline-yes">1x</span>
|
|
713
|
-
<span class="cline-any cline-yes">1x</span>
|
|
714
|
-
<span class="cline-any cline-yes">1x</span>
|
|
715
|
-
<span class="cline-any cline-yes">1x</span>
|
|
716
|
-
<span class="cline-any cline-yes">1x</span>
|
|
717
|
-
<span class="cline-any cline-yes">1x</span>
|
|
718
|
-
<span class="cline-any cline-yes">1x</span>
|
|
719
|
-
<span class="cline-any cline-yes">1x</span>
|
|
720
|
-
<span class="cline-any cline-yes">1x</span>
|
|
721
|
-
<span class="cline-any cline-yes">1x</span>
|
|
722
|
-
<span class="cline-any cline-yes">1x</span>
|
|
723
|
-
<span class="cline-any cline-yes">1x</span>
|
|
724
|
-
<span class="cline-any cline-yes">1x</span>
|
|
725
|
-
<span class="cline-any cline-yes">1x</span>
|
|
726
|
-
<span class="cline-any cline-yes">1x</span>
|
|
727
|
-
<span class="cline-any cline-yes">1x</span>
|
|
728
|
-
<span class="cline-any cline-yes">1x</span>
|
|
729
|
-
<span class="cline-any cline-yes">1x</span>
|
|
730
|
-
<span class="cline-any cline-yes">1x</span>
|
|
731
|
-
<span class="cline-any cline-yes">1x</span>
|
|
732
|
-
<span class="cline-any cline-yes">1x</span>
|
|
733
|
-
<span class="cline-any cline-yes">1x</span>
|
|
734
|
-
<span class="cline-any cline-yes">1x</span>
|
|
735
|
-
<span class="cline-any cline-yes">1x</span>
|
|
736
|
-
<span class="cline-any cline-yes">1x</span>
|
|
737
|
-
<span class="cline-any cline-yes">1x</span>
|
|
738
|
-
<span class="cline-any cline-yes">1x</span>
|
|
739
|
-
<span class="cline-any cline-yes">1x</span>
|
|
740
|
-
<span class="cline-any cline-yes">1x</span>
|
|
741
|
-
<span class="cline-any cline-yes">1x</span>
|
|
742
|
-
<span class="cline-any cline-yes">1x</span>
|
|
743
|
-
<span class="cline-any cline-yes">1x</span>
|
|
744
|
-
<span class="cline-any cline-yes">1x</span>
|
|
745
|
-
<span class="cline-any cline-yes">1x</span>
|
|
746
|
-
<span class="cline-any cline-yes">1x</span>
|
|
747
|
-
<span class="cline-any cline-yes">1x</span>
|
|
748
|
-
<span class="cline-any cline-yes">1x</span>
|
|
749
|
-
<span class="cline-any cline-yes">6x</span>
|
|
750
|
-
<span class="cline-any cline-yes">6x</span>
|
|
751
|
-
<span class="cline-any cline-yes">1x</span>
|
|
752
|
-
<span class="cline-any cline-yes">1x</span>
|
|
753
|
-
<span class="cline-any cline-yes">1x</span>
|
|
754
|
-
<span class="cline-any cline-yes">1x</span>
|
|
755
|
-
<span class="cline-any cline-yes">1x</span>
|
|
756
|
-
<span class="cline-any cline-yes">1x</span>
|
|
757
|
-
<span class="cline-any cline-yes">1x</span>
|
|
758
|
-
<span class="cline-any cline-yes">1x</span>
|
|
759
|
-
<span class="cline-any cline-yes">1x</span>
|
|
760
|
-
<span class="cline-any cline-yes">1x</span>
|
|
761
|
-
<span class="cline-any cline-yes">1x</span>
|
|
762
|
-
<span class="cline-any cline-yes">1x</span>
|
|
763
|
-
<span class="cline-any cline-yes">1x</span>
|
|
764
|
-
<span class="cline-any cline-yes">1x</span>
|
|
765
|
-
<span class="cline-any cline-yes">3x</span>
|
|
766
|
-
<span class="cline-any cline-yes">3x</span>
|
|
767
|
-
<span class="cline-any cline-yes">1x</span>
|
|
768
|
-
<span class="cline-any cline-yes">1x</span>
|
|
769
|
-
<span class="cline-any cline-yes">1x</span>
|
|
770
|
-
<span class="cline-any cline-yes">1x</span>
|
|
771
|
-
<span class="cline-any cline-yes">1x</span>
|
|
772
|
-
<span class="cline-any cline-yes">1x</span>
|
|
773
|
-
<span class="cline-any cline-yes">1x</span>
|
|
774
|
-
<span class="cline-any cline-yes">1x</span>
|
|
775
|
-
<span class="cline-any cline-yes">1x</span>
|
|
776
|
-
<span class="cline-any cline-yes">1x</span>
|
|
777
|
-
<span class="cline-any cline-yes">1x</span>
|
|
778
|
-
<span class="cline-any cline-yes">2x</span>
|
|
779
|
-
<span class="cline-any cline-yes">2x</span>
|
|
780
|
-
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">import type { Task, Priority } from '../types/index.js';
|
|
781
|
-
|
|
782
|
-
/**
|
|
783
|
-
* Filter predicate function type
|
|
784
|
-
* Returns true if task should be included in results
|
|
785
|
-
*/
|
|
786
|
-
export type TaskFilter = (task: Task) => boolean;
|
|
787
|
-
|
|
788
|
-
/**
|
|
789
|
-
* Filter tasks by assignee
|
|
790
|
-
*
|
|
791
|
-
* @param assignee - Username to filter by (without @ symbol)
|
|
792
|
-
* @returns Filter predicate
|
|
793
|
-
*
|
|
794
|
-
* @example
|
|
795
|
-
* tasks.filter(byAssignee('nick'))
|
|
796
|
-
*/
|
|
797
|
-
export function byAssignee(assignee: string): TaskFilter {
|
|
798
|
-
return (task: Task) => task.assignee === assignee;
|
|
799
|
-
}
|
|
800
|
-
|
|
801
|
-
/**
|
|
802
|
-
* Filter tasks by completion status
|
|
803
|
-
*
|
|
804
|
-
* @param completed - true for completed, false for incomplete
|
|
805
|
-
* @returns Filter predicate
|
|
806
|
-
*
|
|
807
|
-
* @example
|
|
808
|
-
* tasks.filter(byCompleted(false)) // Get incomplete tasks
|
|
809
|
-
*/
|
|
810
|
-
export function byCompleted(completed: boolean): TaskFilter {
|
|
811
|
-
return (task: Task) => task.completed === completed;
|
|
812
|
-
}
|
|
813
|
-
|
|
814
|
-
/**
|
|
815
|
-
* Filter tasks by priority level
|
|
816
|
-
*
|
|
817
|
-
* @param priority - Priority level to filter by
|
|
818
|
-
* @returns Filter predicate
|
|
819
|
-
*
|
|
820
|
-
* @example
|
|
821
|
-
* tasks.filter(byPriority('urgent'))
|
|
822
|
-
*/
|
|
823
|
-
export function byPriority(priority: Priority): TaskFilter {
|
|
824
|
-
return (task: Task) => task.priority === priority;
|
|
825
|
-
}
|
|
826
|
-
|
|
827
|
-
/**
|
|
828
|
-
* Filter tasks by project
|
|
829
|
-
*
|
|
830
|
-
* @param project - Project name to filter by
|
|
831
|
-
* @returns Filter predicate
|
|
832
|
-
*
|
|
833
|
-
* @example
|
|
834
|
-
* tasks.filter(byProject('acme-app'))
|
|
835
|
-
*/
|
|
836
|
-
export function byProject(project: string): TaskFilter {
|
|
837
|
-
return (task: Task) => task.project === project;
|
|
838
|
-
}
|
|
839
|
-
|
|
840
|
-
/**
|
|
841
|
-
* Filter tasks by person (from 1-1 context)
|
|
842
|
-
*
|
|
843
|
-
* @param person - Person identifier to filter by
|
|
844
|
-
* @returns Filter predicate
|
|
845
|
-
*
|
|
846
|
-
* @example
|
|
847
|
-
* tasks.filter(byPerson('jane-doe'))
|
|
848
|
-
*/
|
|
849
|
-
export function byPerson(person: string): TaskFilter {
|
|
850
|
-
return (task: Task) => task.person === person;
|
|
851
|
-
}
|
|
852
|
-
|
|
853
|
-
/**
|
|
854
|
-
* Filter tasks by tag
|
|
855
|
-
*
|
|
856
|
-
* @param tag - Tag to filter by (without # symbol)
|
|
857
|
-
* @returns Filter predicate
|
|
858
|
-
*
|
|
859
|
-
* @example
|
|
860
|
-
* tasks.filter(byTag('urgent'))
|
|
861
|
-
*/
|
|
862
|
-
export function byTag(tag: string): TaskFilter {
|
|
863
|
-
return (task: Task) => task.tags.includes(tag);
|
|
864
|
-
}
|
|
865
|
-
|
|
866
|
-
/**
|
|
867
|
-
* Filter tasks by file path
|
|
868
|
-
*
|
|
869
|
-
* @param path - File path or directory to filter by
|
|
870
|
-
* @param options - Filter options
|
|
871
|
-
* @returns Filter predicate
|
|
872
|
-
*
|
|
873
|
-
* @example
|
|
874
|
-
* // Match exact file
|
|
875
|
-
* tasks.filter(byPath('projects/acme-app/sprint.md'))
|
|
876
|
-
*
|
|
877
|
-
* // Match directory (recursive)
|
|
878
|
-
* tasks.filter(byPath('projects/acme-app'))
|
|
879
|
-
*
|
|
880
|
-
* // Match directory (non-recursive)
|
|
881
|
-
* tasks.filter(byPath('projects/acme-app', { recursive: false }))
|
|
882
|
-
*/
|
|
883
|
-
export function byPath(
|
|
884
|
-
path: string,
|
|
885
|
-
options: { recursive?: boolean } = { recursive: true },
|
|
886
|
-
): TaskFilter {
|
|
887
|
-
const normalizedPath = path.replace(/\\/g, '/');
|
|
888
|
-
const isDirectory = !normalizedPath.endsWith('.md');
|
|
889
|
-
|
|
890
|
-
return (task: Task) => {
|
|
891
|
-
const taskPath = task.file.replace(/\\/g, '/');
|
|
892
|
-
|
|
893
|
-
// Exact file match
|
|
894
|
-
if (!isDirectory) {
|
|
895
|
-
return taskPath === normalizedPath;
|
|
896
|
-
}
|
|
897
|
-
|
|
898
|
-
// Directory match
|
|
899
|
-
if (options.recursive) {
|
|
900
|
-
// Recursive: match if task is in directory or subdirectories
|
|
901
|
-
return (
|
|
902
|
-
taskPath.startsWith(normalizedPath + '/') || taskPath === normalizedPath
|
|
903
|
-
);
|
|
904
|
-
} else {
|
|
905
|
-
// Non-recursive: match only direct children
|
|
906
|
-
const dirPrefix = normalizedPath + '/';
|
|
907
|
-
if (!taskPath.startsWith(dirPrefix)) <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
|
|
908
|
-
<span class="cstat-no" title="statement not covered" > return false;</span>
|
|
909
|
-
<span class="cstat-no" title="statement not covered" > }</span>
|
|
910
|
-
// Check that there are no additional slashes after the directory
|
|
911
|
-
const remainder = taskPath.substring(dirPrefix.length);
|
|
912
|
-
return !remainder.includes('/');
|
|
913
|
-
}
|
|
914
|
-
};
|
|
915
|
-
}
|
|
916
|
-
|
|
917
|
-
/**
|
|
918
|
-
* Get start of day in UTC
|
|
919
|
-
*/
|
|
920
|
-
function getUTCStartOfDay(date: Date): Date {
|
|
921
|
-
return new Date(
|
|
922
|
-
Date.UTC(
|
|
923
|
-
date.getUTCFullYear(),
|
|
924
|
-
date.getUTCMonth(),
|
|
925
|
-
date.getUTCDate(),
|
|
926
|
-
0,
|
|
927
|
-
0,
|
|
928
|
-
0,
|
|
929
|
-
0,
|
|
930
|
-
),
|
|
931
|
-
);
|
|
932
|
-
}
|
|
933
|
-
|
|
934
|
-
/**
|
|
935
|
-
* Get end of day in UTC
|
|
936
|
-
*/
|
|
937
|
-
function getUTCEndOfDay(date: Date): Date {
|
|
938
|
-
return new Date(
|
|
939
|
-
Date.UTC(
|
|
940
|
-
date.getUTCFullYear(),
|
|
941
|
-
date.getUTCMonth(),
|
|
942
|
-
date.getUTCDate(),
|
|
943
|
-
23,
|
|
944
|
-
59,
|
|
945
|
-
59,
|
|
946
|
-
999,
|
|
947
|
-
),
|
|
948
|
-
);
|
|
949
|
-
}
|
|
950
|
-
|
|
951
|
-
/**
|
|
952
|
-
* Add days to a date in UTC
|
|
953
|
-
*/
|
|
954
|
-
function addUTCDays(date: Date, days: number): Date {
|
|
955
|
-
const result = new Date(date);
|
|
956
|
-
result.setUTCDate(result.getUTCDate() + days);
|
|
957
|
-
return result;
|
|
958
|
-
}
|
|
959
|
-
|
|
960
|
-
/**
|
|
961
|
-
* Get start of week (Monday) in UTC
|
|
962
|
-
*/
|
|
963
|
-
function getUTCStartOfWeek(date: Date): Date {
|
|
964
|
-
const dayOfWeek = date.getUTCDay();
|
|
965
|
-
const diff = (dayOfWeek === 0 ? <span class="branch-0 cbranch-no" title="branch not covered" >-6 : 1) - d</span>ayOfWeek; // Monday is 1, Sunday is 0
|
|
966
|
-
const result = addUTCDays(date, diff);
|
|
967
|
-
return getUTCStartOfDay(result);
|
|
968
|
-
}
|
|
969
|
-
|
|
970
|
-
/**
|
|
971
|
-
* Get end of week (Sunday) in UTC
|
|
972
|
-
*/
|
|
973
|
-
function getUTCEndOfWeek(date: Date): Date {
|
|
974
|
-
const dayOfWeek = date.getUTCDay();
|
|
975
|
-
const diff = dayOfWeek === 0 ? <span class="branch-0 cbranch-no" title="branch not covered" >0 : 7 - dayOfWeek;</span>
|
|
976
|
-
const result = addUTCDays(date, diff);
|
|
977
|
-
return getUTCEndOfDay(result);
|
|
978
|
-
}
|
|
979
|
-
|
|
980
|
-
/**
|
|
981
|
-
* Filter tasks that are overdue
|
|
982
|
-
* A task is overdue if it has a due date in the past
|
|
983
|
-
*
|
|
984
|
-
* @param referenceDate - Date to compare against (defaults to now)
|
|
985
|
-
* @returns Filter predicate
|
|
986
|
-
*
|
|
987
|
-
* @example
|
|
988
|
-
* tasks.filter(isOverdue())
|
|
989
|
-
*/
|
|
990
|
-
export function isOverdue(referenceDate: Date = new Date()): TaskFilter {
|
|
991
|
-
const today = getUTCStartOfDay(referenceDate);
|
|
992
|
-
|
|
993
|
-
return (task: Task) => {
|
|
994
|
-
if (!task.dueDate || task.completed) {
|
|
995
|
-
return false;
|
|
996
|
-
}
|
|
997
|
-
return task.dueDate < today;
|
|
998
|
-
};
|
|
999
|
-
}
|
|
1000
|
-
|
|
1001
|
-
/**
|
|
1002
|
-
* Filter tasks due today
|
|
1003
|
-
*
|
|
1004
|
-
* @param referenceDate - Date to compare against (defaults to now)
|
|
1005
|
-
* @returns Filter predicate
|
|
1006
|
-
*
|
|
1007
|
-
* @example
|
|
1008
|
-
* tasks.filter(isDueToday())
|
|
1009
|
-
*/
|
|
1010
|
-
export function isDueToday(referenceDate: Date = new Date()): TaskFilter {
|
|
1011
|
-
const todayStart = getUTCStartOfDay(referenceDate);
|
|
1012
|
-
const todayEnd = getUTCEndOfDay(referenceDate);
|
|
1013
|
-
|
|
1014
|
-
return (task: Task) => {
|
|
1015
|
-
if (!task.dueDate || task.completed) {
|
|
1016
|
-
return false;
|
|
1017
|
-
}
|
|
1018
|
-
return task.dueDate >= todayStart && task.dueDate <= todayEnd;
|
|
1019
|
-
};
|
|
1020
|
-
}
|
|
1021
|
-
|
|
1022
|
-
/**
|
|
1023
|
-
* Filter tasks due this week
|
|
1024
|
-
*
|
|
1025
|
-
* @param referenceDate - Date to compare against (defaults to now)
|
|
1026
|
-
* @returns Filter predicate
|
|
1027
|
-
*
|
|
1028
|
-
* @example
|
|
1029
|
-
* tasks.filter(isDueThisWeek())
|
|
1030
|
-
*/
|
|
1031
|
-
export function isDueThisWeek(referenceDate: Date = new Date()): TaskFilter {
|
|
1032
|
-
const weekStart = getUTCStartOfWeek(referenceDate);
|
|
1033
|
-
const weekEnd = getUTCEndOfWeek(referenceDate);
|
|
1034
|
-
|
|
1035
|
-
return (task: Task) => {
|
|
1036
|
-
if (!task.dueDate || task.completed) {
|
|
1037
|
-
return false;
|
|
1038
|
-
}
|
|
1039
|
-
return task.dueDate >= weekStart && task.dueDate <= weekEnd;
|
|
1040
|
-
};
|
|
1041
|
-
}
|
|
1042
|
-
|
|
1043
|
-
/**
|
|
1044
|
-
* Filter tasks due within a specific number of days
|
|
1045
|
-
*
|
|
1046
|
-
* @param days - Number of days from reference date
|
|
1047
|
-
* @param referenceDate - Date to compare against (defaults to now)
|
|
1048
|
-
* @returns Filter predicate
|
|
1049
|
-
*
|
|
1050
|
-
* @example
|
|
1051
|
-
* tasks.filter(isDueWithinDays(7)) // Due in next 7 days
|
|
1052
|
-
*/
|
|
1053
|
-
export function isDueWithinDays(
|
|
1054
|
-
days: number,
|
|
1055
|
-
referenceDate: Date = new Date(),
|
|
1056
|
-
): TaskFilter {
|
|
1057
|
-
const start = getUTCStartOfDay(referenceDate);
|
|
1058
|
-
const end = getUTCEndOfDay(addUTCDays(referenceDate, days));
|
|
1059
|
-
|
|
1060
|
-
return (task: Task) => {
|
|
1061
|
-
if (!task.dueDate || task.completed) {
|
|
1062
|
-
return false;
|
|
1063
|
-
}
|
|
1064
|
-
return task.dueDate >= start && task.dueDate <= end;
|
|
1065
|
-
};
|
|
1066
|
-
}
|
|
1067
|
-
|
|
1068
|
-
/**
|
|
1069
|
-
* Filter tasks that have a due date set
|
|
1070
|
-
*
|
|
1071
|
-
* @returns Filter predicate
|
|
1072
|
-
*
|
|
1073
|
-
* @example
|
|
1074
|
-
* tasks.filter(hasDueDate())
|
|
1075
|
-
*/
|
|
1076
|
-
export function hasDueDate(): TaskFilter {
|
|
1077
|
-
return (task: Task) => task.dueDate !== undefined;
|
|
1078
|
-
}
|
|
1079
|
-
|
|
1080
|
-
/**
|
|
1081
|
-
* Filter tasks that have no due date set
|
|
1082
|
-
*
|
|
1083
|
-
* @returns Filter predicate
|
|
1084
|
-
*
|
|
1085
|
-
* @example
|
|
1086
|
-
* tasks.filter(hasNoDueDate())
|
|
1087
|
-
*/
|
|
1088
|
-
export function hasNoDueDate(): TaskFilter {
|
|
1089
|
-
return (task: Task) => task.dueDate === undefined;
|
|
1090
|
-
}
|
|
1091
|
-
|
|
1092
|
-
/**
|
|
1093
|
-
* Combine multiple filters with AND logic
|
|
1094
|
-
*
|
|
1095
|
-
* @param filters - Array of filter predicates
|
|
1096
|
-
* @returns Combined filter predicate
|
|
1097
|
-
*
|
|
1098
|
-
* @example
|
|
1099
|
-
* tasks.filter(combineFilters([
|
|
1100
|
-
* byAssignee('nick'),
|
|
1101
|
-
* byPriority('urgent'),
|
|
1102
|
-
* isOverdue()
|
|
1103
|
-
* ]))
|
|
1104
|
-
*/
|
|
1105
|
-
export function combineFilters(filters: TaskFilter[]): TaskFilter {
|
|
1106
|
-
return (task: Task) => filters.every((filter) => filter(task));
|
|
1107
|
-
}
|
|
1108
|
-
|
|
1109
|
-
/**
|
|
1110
|
-
* Combine multiple filters with OR logic
|
|
1111
|
-
*
|
|
1112
|
-
* @param filters - Array of filter predicates
|
|
1113
|
-
* @returns Combined filter predicate
|
|
1114
|
-
*
|
|
1115
|
-
* @example
|
|
1116
|
-
* tasks.filter(combineFiltersOr([
|
|
1117
|
-
* isOverdue(),
|
|
1118
|
-
* isDueToday()
|
|
1119
|
-
* ]))
|
|
1120
|
-
*/
|
|
1121
|
-
export function combineFiltersOr(filters: TaskFilter[]): TaskFilter {
|
|
1122
|
-
return (task: Task) => filters.some((filter) => filter(task));
|
|
1123
|
-
}
|
|
1124
|
-
|
|
1125
|
-
/**
|
|
1126
|
-
* Negate a filter
|
|
1127
|
-
*
|
|
1128
|
-
* @param filter - Filter predicate to negate
|
|
1129
|
-
* @returns Negated filter predicate
|
|
1130
|
-
*
|
|
1131
|
-
* @example
|
|
1132
|
-
* tasks.filter(not(byCompleted(true))) // Get incomplete tasks
|
|
1133
|
-
*/
|
|
1134
|
-
export function not(filter: TaskFilter): TaskFilter {
|
|
1135
|
-
return (task: Task) => !filter(task);
|
|
1136
|
-
}
|
|
1137
|
-
</pre></td></tr></table></pre>
|
|
1138
|
-
|
|
1139
|
-
<div class='push'></div><!-- for sticky footer -->
|
|
1140
|
-
</div><!-- /wrapper -->
|
|
1141
|
-
<div class='footer quiet pad2 space-top1 center small'>
|
|
1142
|
-
Code coverage generated by
|
|
1143
|
-
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
1144
|
-
at 2026-01-26T03:50:53.066Z
|
|
1145
|
-
</div>
|
|
1146
|
-
<script src="../../prettify.js"></script>
|
|
1147
|
-
<script>
|
|
1148
|
-
window.onload = function () {
|
|
1149
|
-
prettyPrint();
|
|
1150
|
-
};
|
|
1151
|
-
</script>
|
|
1152
|
-
<script src="../../sorter.js"></script>
|
|
1153
|
-
<script src="../../block-navigation.js"></script>
|
|
1154
|
-
</body>
|
|
1155
|
-
</html>
|
|
1156
|
-
|