@vizabi/reader-ddfcsv 4.0.2 → 4.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (128) hide show
  1. package/.travis.yml +0 -0
  2. package/CHANGELOG.md +0 -0
  3. package/LICENSE +0 -0
  4. package/README.md +0 -0
  5. package/deploy.js +0 -0
  6. package/dist/reader-ddfcsv-polyfill.js +2 -10
  7. package/dist/reader-ddfcsv-polyfill.js.map +1 -1
  8. package/dist/reader-ddfcsv.js +2 -10
  9. package/dist/reader-ddfcsv.js.map +1 -1
  10. package/icon.png +0 -0
  11. package/lib/src/ddf-csv.d.ts +0 -0
  12. package/lib/src/ddf-csv.js +0 -0
  13. package/lib/src/ddf-csv.js.map +0 -0
  14. package/lib/src/ddfcsv-error.d.ts +0 -0
  15. package/lib/src/ddfcsv-error.js +0 -0
  16. package/lib/src/ddfcsv-error.js.map +0 -0
  17. package/lib/src/ddfcsv-reader.d.ts +0 -0
  18. package/lib/src/ddfcsv-reader.js +1 -1
  19. package/lib/src/ddfcsv-reader.js.map +0 -0
  20. package/lib/src/file-readers/backend-file-reader.d.ts +0 -0
  21. package/lib/src/file-readers/backend-file-reader.js +0 -0
  22. package/lib/src/file-readers/backend-file-reader.js.map +0 -0
  23. package/lib/src/file-readers/github-file-reader.d.ts +0 -0
  24. package/lib/src/file-readers/github-file-reader.js +0 -0
  25. package/lib/src/file-readers/github-file-reader.js.map +0 -0
  26. package/lib/src/index.d.ts +0 -0
  27. package/lib/src/index.js +0 -0
  28. package/lib/src/index.js.map +0 -0
  29. package/lib/src/interfaces.d.ts +0 -0
  30. package/lib/src/interfaces.js +0 -0
  31. package/lib/src/interfaces.js.map +0 -0
  32. package/lib/src/resource-selection-optimizer/in-clause-under-conjunction.d.ts +0 -0
  33. package/lib/src/resource-selection-optimizer/in-clause-under-conjunction.js +0 -0
  34. package/lib/src/resource-selection-optimizer/in-clause-under-conjunction.js.map +0 -0
  35. package/lib/src/resource-selection-optimizer/index.d.ts +0 -0
  36. package/lib/src/resource-selection-optimizer/index.js +0 -0
  37. package/lib/src/resource-selection-optimizer/index.js.map +0 -0
  38. package/lib-web/src/ddf-csv.d.ts +0 -0
  39. package/lib-web/src/ddf-csv.js +0 -0
  40. package/lib-web/src/ddf-csv.js.map +0 -0
  41. package/lib-web/src/ddfcsv-error.d.ts +0 -0
  42. package/lib-web/src/ddfcsv-error.js +0 -0
  43. package/lib-web/src/ddfcsv-error.js.map +0 -0
  44. package/lib-web/src/ddfcsv-reader.d.ts +0 -0
  45. package/lib-web/src/ddfcsv-reader.js +0 -0
  46. package/lib-web/src/ddfcsv-reader.js.map +0 -0
  47. package/lib-web/src/file-readers/frontend-file-reader.d.ts +0 -0
  48. package/lib-web/src/file-readers/frontend-file-reader.js +0 -0
  49. package/lib-web/src/file-readers/frontend-file-reader.js.map +0 -0
  50. package/lib-web/src/index-web.d.ts +0 -0
  51. package/lib-web/src/index-web.js +0 -0
  52. package/lib-web/src/index-web.js.map +0 -0
  53. package/lib-web/src/interfaces.d.ts +0 -0
  54. package/lib-web/src/interfaces.js +0 -0
  55. package/lib-web/src/interfaces.js.map +0 -0
  56. package/lib-web/src/resource-selection-optimizer/in-clause-under-conjunction.d.ts +0 -0
  57. package/lib-web/src/resource-selection-optimizer/in-clause-under-conjunction.js +0 -0
  58. package/lib-web/src/resource-selection-optimizer/in-clause-under-conjunction.js.map +0 -0
  59. package/lib-web/src/resource-selection-optimizer/index.d.ts +0 -0
  60. package/lib-web/src/resource-selection-optimizer/index.js +0 -0
  61. package/lib-web/src/resource-selection-optimizer/index.js.map +0 -0
  62. package/package.json +4 -3
  63. package/scripts/set-own-version.js +0 -0
  64. package/src/ddf-csv.ts +0 -0
  65. package/src/ddfcsv-error.ts +0 -0
  66. package/src/ddfcsv-reader.ts +0 -0
  67. package/src/file-readers/backend-file-reader.ts +0 -0
  68. package/src/file-readers/frontend-file-reader.ts +0 -0
  69. package/src/file-readers/github-file-reader.ts +0 -0
  70. package/src/index-web.ts +0 -0
  71. package/src/index.ts +0 -0
  72. package/src/interfaces.ts +0 -0
  73. package/src/resource-selection-optimizer/in-clause-under-conjunction.ts +0 -0
  74. package/src/resource-selection-optimizer/index.ts +0 -0
  75. package/src/test-cases/concepts.ts +0 -0
  76. package/src/test-cases/entities.ts +0 -0
  77. package/test/assets-fixtures/world-50m.json +0 -0
  78. package/test/assets.spec.ts +0 -0
  79. package/test/common.ts +0 -0
  80. package/test/definition/concepts-definition.spec.ts +0 -0
  81. package/test/definition/datapoints-definition.spec.ts +0 -0
  82. package/test/definition/entities-definition.spec.ts +0 -0
  83. package/test/definition/schema-definition.spec.ts +0 -0
  84. package/test/diagnostics.spec.ts +0 -0
  85. package/test/features-service.spec.ts +0 -0
  86. package/test/high-load.spec.ts +0 -0
  87. package/test/main.spec.ts +0 -0
  88. package/test/mocha.opts +0 -0
  89. package/test/multi-instances.spec.ts +0 -0
  90. package/test/result-fixtures/datapoints-assets.json +0 -0
  91. package/test/result-fixtures/in-clause-under-conjunction-1.json +0 -0
  92. package/test/result-fixtures/in-clause-under-conjunction-2.json +0 -0
  93. package/test/result-fixtures/multi-instances/concepts-sg.json +0 -0
  94. package/test/result-fixtures/multi-instances/concepts-soderstornsmodellen.json +0 -0
  95. package/test/result-fixtures/multi-instances/datapoints-sg.json +0 -0
  96. package/test/result-fixtures/multi-instances/datapoints-soderstornsmodellen.json +0 -0
  97. package/test/result-fixtures/multi-instances/entities-sg.json +64 -64
  98. package/test/result-fixtures/multi-instances/entities-soderstornsmodellen.json +0 -0
  99. package/test/result-fixtures/multi-instances/schema-sg.json +0 -0
  100. package/test/result-fixtures/multi-instances/schema-soderstornsmodellen.json +0 -0
  101. package/test/schema.spec.ts +0 -0
  102. package/test/tslint.json +0 -0
  103. package/tsconfig-web.json +0 -0
  104. package/tsconfig.json +0 -0
  105. package/tslint.json +0 -0
  106. package/.nyc_output/22a2b1513646a95439e9329cace3f51b.json +0 -1
  107. package/.nyc_output/d4fb4bc6a5748a1468ef7e31f9a65ced.json +0 -1
  108. package/coverage/base.css +0 -223
  109. package/coverage/block-navigation.js +0 -63
  110. package/coverage/index.html +0 -136
  111. package/coverage/prettify.css +0 -1
  112. package/coverage/prettify.js +0 -1
  113. package/coverage/sort-arrow-sprite.png +0 -0
  114. package/coverage/sorter.js +0 -158
  115. package/coverage/src/ddf-csv.ts.html +0 -2685
  116. package/coverage/src/ddfcsv-error.ts.html +0 -132
  117. package/coverage/src/ddfcsv-reader.ts.html +0 -435
  118. package/coverage/src/file-readers/backend-file-reader.ts.html +0 -147
  119. package/coverage/src/file-readers/github-file-reader.ts.html +0 -168
  120. package/coverage/src/file-readers/index.html +0 -110
  121. package/coverage/src/index.html +0 -136
  122. package/coverage/src/index.ts.html +0 -129
  123. package/coverage/src/resource-selection-optimizer/in-clause-under-conjunction.ts.html +0 -918
  124. package/coverage/src/resource-selection-optimizer/index.html +0 -110
  125. package/coverage/src/resource-selection-optimizer/index.ts.html +0 -102
  126. package/coverage/src/test-cases/concepts.ts.html +0 -150
  127. package/coverage/src/test-cases/entities.ts.html +0 -225
  128. package/coverage/src/test-cases/index.html +0 -110
@@ -1,918 +0,0 @@
1
- <!doctype html>
2
- <html lang="en">
3
- <head>
4
- <title>Code coverage report for src/resource-selection-optimizer/in-clause-under-conjunction.ts</title>
5
- <meta charset="utf-8" />
6
- <link rel="stylesheet" href="../../prettify.css" />
7
- <link rel="stylesheet" href="../../base.css" />
8
- <meta name="viewport" content="width=device-width, initial-scale=1">
9
- <style type='text/css'>
10
- .coverage-summary .sorter {
11
- background-image: url(../../sort-arrow-sprite.png);
12
- }
13
- </style>
14
- </head>
15
- <body>
16
- <div class='wrapper'>
17
- <div class='pad1'>
18
- <h1>
19
- <a href="../../index.html">All files</a> / <a href="index.html">src/resource-selection-optimizer</a> in-clause-under-conjunction.ts
20
- </h1>
21
- <div class='clearfix'>
22
- <div class='fl pad1y space-right2'>
23
- <span class="strong">94.56% </span>
24
- <span class="quiet">Statements</span>
25
- <span class='fraction'>139/147</span>
26
- </div>
27
- <div class='fl pad1y space-right2'>
28
- <span class="strong">86.49% </span>
29
- <span class="quiet">Branches</span>
30
- <span class='fraction'>32/37</span>
31
- </div>
32
- <div class='fl pad1y space-right2'>
33
- <span class="strong">96.3% </span>
34
- <span class="quiet">Functions</span>
35
- <span class='fraction'>26/27</span>
36
- </div>
37
- <div class='fl pad1y space-right2'>
38
- <span class="strong">94.29% </span>
39
- <span class="quiet">Lines</span>
40
- <span class='fraction'>132/140</span>
41
- </div>
42
- </div>
43
- <p class="quiet">
44
- 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.
45
- </p>
46
- </div>
47
- <div class='status-line high'></div>
48
- <pre><table class="coverage">
49
- <tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
50
- <a name='L2'></a><a href='#L2'>2</a>
51
- <a name='L3'></a><a href='#L3'>3</a>
52
- <a name='L4'></a><a href='#L4'>4</a>
53
- <a name='L5'></a><a href='#L5'>5</a>
54
- <a name='L6'></a><a href='#L6'>6</a>
55
- <a name='L7'></a><a href='#L7'>7</a>
56
- <a name='L8'></a><a href='#L8'>8</a>
57
- <a name='L9'></a><a href='#L9'>9</a>
58
- <a name='L10'></a><a href='#L10'>10</a>
59
- <a name='L11'></a><a href='#L11'>11</a>
60
- <a name='L12'></a><a href='#L12'>12</a>
61
- <a name='L13'></a><a href='#L13'>13</a>
62
- <a name='L14'></a><a href='#L14'>14</a>
63
- <a name='L15'></a><a href='#L15'>15</a>
64
- <a name='L16'></a><a href='#L16'>16</a>
65
- <a name='L17'></a><a href='#L17'>17</a>
66
- <a name='L18'></a><a href='#L18'>18</a>
67
- <a name='L19'></a><a href='#L19'>19</a>
68
- <a name='L20'></a><a href='#L20'>20</a>
69
- <a name='L21'></a><a href='#L21'>21</a>
70
- <a name='L22'></a><a href='#L22'>22</a>
71
- <a name='L23'></a><a href='#L23'>23</a>
72
- <a name='L24'></a><a href='#L24'>24</a>
73
- <a name='L25'></a><a href='#L25'>25</a>
74
- <a name='L26'></a><a href='#L26'>26</a>
75
- <a name='L27'></a><a href='#L27'>27</a>
76
- <a name='L28'></a><a href='#L28'>28</a>
77
- <a name='L29'></a><a href='#L29'>29</a>
78
- <a name='L30'></a><a href='#L30'>30</a>
79
- <a name='L31'></a><a href='#L31'>31</a>
80
- <a name='L32'></a><a href='#L32'>32</a>
81
- <a name='L33'></a><a href='#L33'>33</a>
82
- <a name='L34'></a><a href='#L34'>34</a>
83
- <a name='L35'></a><a href='#L35'>35</a>
84
- <a name='L36'></a><a href='#L36'>36</a>
85
- <a name='L37'></a><a href='#L37'>37</a>
86
- <a name='L38'></a><a href='#L38'>38</a>
87
- <a name='L39'></a><a href='#L39'>39</a>
88
- <a name='L40'></a><a href='#L40'>40</a>
89
- <a name='L41'></a><a href='#L41'>41</a>
90
- <a name='L42'></a><a href='#L42'>42</a>
91
- <a name='L43'></a><a href='#L43'>43</a>
92
- <a name='L44'></a><a href='#L44'>44</a>
93
- <a name='L45'></a><a href='#L45'>45</a>
94
- <a name='L46'></a><a href='#L46'>46</a>
95
- <a name='L47'></a><a href='#L47'>47</a>
96
- <a name='L48'></a><a href='#L48'>48</a>
97
- <a name='L49'></a><a href='#L49'>49</a>
98
- <a name='L50'></a><a href='#L50'>50</a>
99
- <a name='L51'></a><a href='#L51'>51</a>
100
- <a name='L52'></a><a href='#L52'>52</a>
101
- <a name='L53'></a><a href='#L53'>53</a>
102
- <a name='L54'></a><a href='#L54'>54</a>
103
- <a name='L55'></a><a href='#L55'>55</a>
104
- <a name='L56'></a><a href='#L56'>56</a>
105
- <a name='L57'></a><a href='#L57'>57</a>
106
- <a name='L58'></a><a href='#L58'>58</a>
107
- <a name='L59'></a><a href='#L59'>59</a>
108
- <a name='L60'></a><a href='#L60'>60</a>
109
- <a name='L61'></a><a href='#L61'>61</a>
110
- <a name='L62'></a><a href='#L62'>62</a>
111
- <a name='L63'></a><a href='#L63'>63</a>
112
- <a name='L64'></a><a href='#L64'>64</a>
113
- <a name='L65'></a><a href='#L65'>65</a>
114
- <a name='L66'></a><a href='#L66'>66</a>
115
- <a name='L67'></a><a href='#L67'>67</a>
116
- <a name='L68'></a><a href='#L68'>68</a>
117
- <a name='L69'></a><a href='#L69'>69</a>
118
- <a name='L70'></a><a href='#L70'>70</a>
119
- <a name='L71'></a><a href='#L71'>71</a>
120
- <a name='L72'></a><a href='#L72'>72</a>
121
- <a name='L73'></a><a href='#L73'>73</a>
122
- <a name='L74'></a><a href='#L74'>74</a>
123
- <a name='L75'></a><a href='#L75'>75</a>
124
- <a name='L76'></a><a href='#L76'>76</a>
125
- <a name='L77'></a><a href='#L77'>77</a>
126
- <a name='L78'></a><a href='#L78'>78</a>
127
- <a name='L79'></a><a href='#L79'>79</a>
128
- <a name='L80'></a><a href='#L80'>80</a>
129
- <a name='L81'></a><a href='#L81'>81</a>
130
- <a name='L82'></a><a href='#L82'>82</a>
131
- <a name='L83'></a><a href='#L83'>83</a>
132
- <a name='L84'></a><a href='#L84'>84</a>
133
- <a name='L85'></a><a href='#L85'>85</a>
134
- <a name='L86'></a><a href='#L86'>86</a>
135
- <a name='L87'></a><a href='#L87'>87</a>
136
- <a name='L88'></a><a href='#L88'>88</a>
137
- <a name='L89'></a><a href='#L89'>89</a>
138
- <a name='L90'></a><a href='#L90'>90</a>
139
- <a name='L91'></a><a href='#L91'>91</a>
140
- <a name='L92'></a><a href='#L92'>92</a>
141
- <a name='L93'></a><a href='#L93'>93</a>
142
- <a name='L94'></a><a href='#L94'>94</a>
143
- <a name='L95'></a><a href='#L95'>95</a>
144
- <a name='L96'></a><a href='#L96'>96</a>
145
- <a name='L97'></a><a href='#L97'>97</a>
146
- <a name='L98'></a><a href='#L98'>98</a>
147
- <a name='L99'></a><a href='#L99'>99</a>
148
- <a name='L100'></a><a href='#L100'>100</a>
149
- <a name='L101'></a><a href='#L101'>101</a>
150
- <a name='L102'></a><a href='#L102'>102</a>
151
- <a name='L103'></a><a href='#L103'>103</a>
152
- <a name='L104'></a><a href='#L104'>104</a>
153
- <a name='L105'></a><a href='#L105'>105</a>
154
- <a name='L106'></a><a href='#L106'>106</a>
155
- <a name='L107'></a><a href='#L107'>107</a>
156
- <a name='L108'></a><a href='#L108'>108</a>
157
- <a name='L109'></a><a href='#L109'>109</a>
158
- <a name='L110'></a><a href='#L110'>110</a>
159
- <a name='L111'></a><a href='#L111'>111</a>
160
- <a name='L112'></a><a href='#L112'>112</a>
161
- <a name='L113'></a><a href='#L113'>113</a>
162
- <a name='L114'></a><a href='#L114'>114</a>
163
- <a name='L115'></a><a href='#L115'>115</a>
164
- <a name='L116'></a><a href='#L116'>116</a>
165
- <a name='L117'></a><a href='#L117'>117</a>
166
- <a name='L118'></a><a href='#L118'>118</a>
167
- <a name='L119'></a><a href='#L119'>119</a>
168
- <a name='L120'></a><a href='#L120'>120</a>
169
- <a name='L121'></a><a href='#L121'>121</a>
170
- <a name='L122'></a><a href='#L122'>122</a>
171
- <a name='L123'></a><a href='#L123'>123</a>
172
- <a name='L124'></a><a href='#L124'>124</a>
173
- <a name='L125'></a><a href='#L125'>125</a>
174
- <a name='L126'></a><a href='#L126'>126</a>
175
- <a name='L127'></a><a href='#L127'>127</a>
176
- <a name='L128'></a><a href='#L128'>128</a>
177
- <a name='L129'></a><a href='#L129'>129</a>
178
- <a name='L130'></a><a href='#L130'>130</a>
179
- <a name='L131'></a><a href='#L131'>131</a>
180
- <a name='L132'></a><a href='#L132'>132</a>
181
- <a name='L133'></a><a href='#L133'>133</a>
182
- <a name='L134'></a><a href='#L134'>134</a>
183
- <a name='L135'></a><a href='#L135'>135</a>
184
- <a name='L136'></a><a href='#L136'>136</a>
185
- <a name='L137'></a><a href='#L137'>137</a>
186
- <a name='L138'></a><a href='#L138'>138</a>
187
- <a name='L139'></a><a href='#L139'>139</a>
188
- <a name='L140'></a><a href='#L140'>140</a>
189
- <a name='L141'></a><a href='#L141'>141</a>
190
- <a name='L142'></a><a href='#L142'>142</a>
191
- <a name='L143'></a><a href='#L143'>143</a>
192
- <a name='L144'></a><a href='#L144'>144</a>
193
- <a name='L145'></a><a href='#L145'>145</a>
194
- <a name='L146'></a><a href='#L146'>146</a>
195
- <a name='L147'></a><a href='#L147'>147</a>
196
- <a name='L148'></a><a href='#L148'>148</a>
197
- <a name='L149'></a><a href='#L149'>149</a>
198
- <a name='L150'></a><a href='#L150'>150</a>
199
- <a name='L151'></a><a href='#L151'>151</a>
200
- <a name='L152'></a><a href='#L152'>152</a>
201
- <a name='L153'></a><a href='#L153'>153</a>
202
- <a name='L154'></a><a href='#L154'>154</a>
203
- <a name='L155'></a><a href='#L155'>155</a>
204
- <a name='L156'></a><a href='#L156'>156</a>
205
- <a name='L157'></a><a href='#L157'>157</a>
206
- <a name='L158'></a><a href='#L158'>158</a>
207
- <a name='L159'></a><a href='#L159'>159</a>
208
- <a name='L160'></a><a href='#L160'>160</a>
209
- <a name='L161'></a><a href='#L161'>161</a>
210
- <a name='L162'></a><a href='#L162'>162</a>
211
- <a name='L163'></a><a href='#L163'>163</a>
212
- <a name='L164'></a><a href='#L164'>164</a>
213
- <a name='L165'></a><a href='#L165'>165</a>
214
- <a name='L166'></a><a href='#L166'>166</a>
215
- <a name='L167'></a><a href='#L167'>167</a>
216
- <a name='L168'></a><a href='#L168'>168</a>
217
- <a name='L169'></a><a href='#L169'>169</a>
218
- <a name='L170'></a><a href='#L170'>170</a>
219
- <a name='L171'></a><a href='#L171'>171</a>
220
- <a name='L172'></a><a href='#L172'>172</a>
221
- <a name='L173'></a><a href='#L173'>173</a>
222
- <a name='L174'></a><a href='#L174'>174</a>
223
- <a name='L175'></a><a href='#L175'>175</a>
224
- <a name='L176'></a><a href='#L176'>176</a>
225
- <a name='L177'></a><a href='#L177'>177</a>
226
- <a name='L178'></a><a href='#L178'>178</a>
227
- <a name='L179'></a><a href='#L179'>179</a>
228
- <a name='L180'></a><a href='#L180'>180</a>
229
- <a name='L181'></a><a href='#L181'>181</a>
230
- <a name='L182'></a><a href='#L182'>182</a>
231
- <a name='L183'></a><a href='#L183'>183</a>
232
- <a name='L184'></a><a href='#L184'>184</a>
233
- <a name='L185'></a><a href='#L185'>185</a>
234
- <a name='L186'></a><a href='#L186'>186</a>
235
- <a name='L187'></a><a href='#L187'>187</a>
236
- <a name='L188'></a><a href='#L188'>188</a>
237
- <a name='L189'></a><a href='#L189'>189</a>
238
- <a name='L190'></a><a href='#L190'>190</a>
239
- <a name='L191'></a><a href='#L191'>191</a>
240
- <a name='L192'></a><a href='#L192'>192</a>
241
- <a name='L193'></a><a href='#L193'>193</a>
242
- <a name='L194'></a><a href='#L194'>194</a>
243
- <a name='L195'></a><a href='#L195'>195</a>
244
- <a name='L196'></a><a href='#L196'>196</a>
245
- <a name='L197'></a><a href='#L197'>197</a>
246
- <a name='L198'></a><a href='#L198'>198</a>
247
- <a name='L199'></a><a href='#L199'>199</a>
248
- <a name='L200'></a><a href='#L200'>200</a>
249
- <a name='L201'></a><a href='#L201'>201</a>
250
- <a name='L202'></a><a href='#L202'>202</a>
251
- <a name='L203'></a><a href='#L203'>203</a>
252
- <a name='L204'></a><a href='#L204'>204</a>
253
- <a name='L205'></a><a href='#L205'>205</a>
254
- <a name='L206'></a><a href='#L206'>206</a>
255
- <a name='L207'></a><a href='#L207'>207</a>
256
- <a name='L208'></a><a href='#L208'>208</a>
257
- <a name='L209'></a><a href='#L209'>209</a>
258
- <a name='L210'></a><a href='#L210'>210</a>
259
- <a name='L211'></a><a href='#L211'>211</a>
260
- <a name='L212'></a><a href='#L212'>212</a>
261
- <a name='L213'></a><a href='#L213'>213</a>
262
- <a name='L214'></a><a href='#L214'>214</a>
263
- <a name='L215'></a><a href='#L215'>215</a>
264
- <a name='L216'></a><a href='#L216'>216</a>
265
- <a name='L217'></a><a href='#L217'>217</a>
266
- <a name='L218'></a><a href='#L218'>218</a>
267
- <a name='L219'></a><a href='#L219'>219</a>
268
- <a name='L220'></a><a href='#L220'>220</a>
269
- <a name='L221'></a><a href='#L221'>221</a>
270
- <a name='L222'></a><a href='#L222'>222</a>
271
- <a name='L223'></a><a href='#L223'>223</a>
272
- <a name='L224'></a><a href='#L224'>224</a>
273
- <a name='L225'></a><a href='#L225'>225</a>
274
- <a name='L226'></a><a href='#L226'>226</a>
275
- <a name='L227'></a><a href='#L227'>227</a>
276
- <a name='L228'></a><a href='#L228'>228</a>
277
- <a name='L229'></a><a href='#L229'>229</a>
278
- <a name='L230'></a><a href='#L230'>230</a>
279
- <a name='L231'></a><a href='#L231'>231</a>
280
- <a name='L232'></a><a href='#L232'>232</a>
281
- <a name='L233'></a><a href='#L233'>233</a>
282
- <a name='L234'></a><a href='#L234'>234</a>
283
- <a name='L235'></a><a href='#L235'>235</a>
284
- <a name='L236'></a><a href='#L236'>236</a>
285
- <a name='L237'></a><a href='#L237'>237</a>
286
- <a name='L238'></a><a href='#L238'>238</a>
287
- <a name='L239'></a><a href='#L239'>239</a>
288
- <a name='L240'></a><a href='#L240'>240</a>
289
- <a name='L241'></a><a href='#L241'>241</a>
290
- <a name='L242'></a><a href='#L242'>242</a>
291
- <a name='L243'></a><a href='#L243'>243</a>
292
- <a name='L244'></a><a href='#L244'>244</a>
293
- <a name='L245'></a><a href='#L245'>245</a>
294
- <a name='L246'></a><a href='#L246'>246</a>
295
- <a name='L247'></a><a href='#L247'>247</a>
296
- <a name='L248'></a><a href='#L248'>248</a>
297
- <a name='L249'></a><a href='#L249'>249</a>
298
- <a name='L250'></a><a href='#L250'>250</a>
299
- <a name='L251'></a><a href='#L251'>251</a>
300
- <a name='L252'></a><a href='#L252'>252</a>
301
- <a name='L253'></a><a href='#L253'>253</a>
302
- <a name='L254'></a><a href='#L254'>254</a>
303
- <a name='L255'></a><a href='#L255'>255</a>
304
- <a name='L256'></a><a href='#L256'>256</a>
305
- <a name='L257'></a><a href='#L257'>257</a>
306
- <a name='L258'></a><a href='#L258'>258</a>
307
- <a name='L259'></a><a href='#L259'>259</a>
308
- <a name='L260'></a><a href='#L260'>260</a>
309
- <a name='L261'></a><a href='#L261'>261</a>
310
- <a name='L262'></a><a href='#L262'>262</a>
311
- <a name='L263'></a><a href='#L263'>263</a>
312
- <a name='L264'></a><a href='#L264'>264</a>
313
- <a name='L265'></a><a href='#L265'>265</a>
314
- <a name='L266'></a><a href='#L266'>266</a>
315
- <a name='L267'></a><a href='#L267'>267</a>
316
- <a name='L268'></a><a href='#L268'>268</a>
317
- <a name='L269'></a><a href='#L269'>269</a>
318
- <a name='L270'></a><a href='#L270'>270</a>
319
- <a name='L271'></a><a href='#L271'>271</a>
320
- <a name='L272'></a><a href='#L272'>272</a>
321
- <a name='L273'></a><a href='#L273'>273</a>
322
- <a name='L274'></a><a href='#L274'>274</a>
323
- <a name='L275'></a><a href='#L275'>275</a>
324
- <a name='L276'></a><a href='#L276'>276</a>
325
- <a name='L277'></a><a href='#L277'>277</a>
326
- <a name='L278'></a><a href='#L278'>278</a>
327
- <a name='L279'></a><a href='#L279'>279</a>
328
- <a name='L280'></a><a href='#L280'>280</a>
329
- <a name='L281'></a><a href='#L281'>281</a>
330
- <a name='L282'></a><a href='#L282'>282</a>
331
- <a name='L283'></a><a href='#L283'>283</a>
332
- <a name='L284'></a><a href='#L284'>284</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
333
- <span class="cline-any cline-yes">1x</span>
334
- <span class="cline-any cline-yes">1x</span>
335
- <span class="cline-any cline-yes">1x</span>
336
- <span class="cline-any cline-yes">1x</span>
337
- <span class="cline-any cline-yes">1x</span>
338
- <span class="cline-any cline-yes">1x</span>
339
- <span class="cline-any cline-yes">1x</span>
340
- <span class="cline-any cline-yes">1x</span>
341
- <span class="cline-any cline-yes">1x</span>
342
- <span class="cline-any cline-yes">1x</span>
343
- <span class="cline-any cline-neutral">&nbsp;</span>
344
- <span class="cline-any cline-yes">1x</span>
345
- <span class="cline-any cline-neutral">&nbsp;</span>
346
- <span class="cline-any cline-yes">1x</span>
347
- <span class="cline-any cline-neutral">&nbsp;</span>
348
- <span class="cline-any cline-yes">1x</span>
349
- <span class="cline-any cline-yes">1x</span>
350
- <span class="cline-any cline-yes">1x</span>
351
- <span class="cline-any cline-yes">1x</span>
352
- <span class="cline-any cline-yes">1x</span>
353
- <span class="cline-any cline-neutral">&nbsp;</span>
354
- <span class="cline-any cline-yes">8x</span>
355
- <span class="cline-any cline-yes">820x</span>
356
- <span class="cline-any cline-yes">20x</span>
357
- <span class="cline-any cline-neutral">&nbsp;</span>
358
- <span class="cline-any cline-yes">1x</span>
359
- <span class="cline-any cline-yes">7706x</span>
360
- <span class="cline-any cline-neutral">&nbsp;</span>
361
- <span class="cline-any cline-neutral">&nbsp;</span>
362
- <span class="cline-any cline-neutral">&nbsp;</span>
363
- <span class="cline-any cline-neutral">&nbsp;</span>
364
- <span class="cline-any cline-neutral">&nbsp;</span>
365
- <span class="cline-any cline-neutral">&nbsp;</span>
366
- <span class="cline-any cline-yes">7706x</span>
367
- <span class="cline-any cline-yes">7706x</span>
368
- <span class="cline-any cline-yes">7706x</span>
369
- <span class="cline-any cline-yes">7706x</span>
370
- <span class="cline-any cline-yes">7706x</span>
371
- <span class="cline-any cline-yes">7706x</span>
372
- <span class="cline-any cline-neutral">&nbsp;</span>
373
- <span class="cline-any cline-neutral">&nbsp;</span>
374
- <span class="cline-any cline-neutral">&nbsp;</span>
375
- <span class="cline-any cline-yes">7711x</span>
376
- <span class="cline-any cline-neutral">&nbsp;</span>
377
- <span class="cline-any cline-yes">15422x</span>
378
- <span class="cline-any cline-neutral">&nbsp;</span>
379
- <span class="cline-any cline-yes">7711x</span>
380
- <span class="cline-any cline-neutral">&nbsp;</span>
381
- <span class="cline-any cline-neutral">&nbsp;</span>
382
- <span class="cline-any cline-neutral">&nbsp;</span>
383
- <span class="cline-any cline-neutral">&nbsp;</span>
384
- <span class="cline-any cline-yes">5x</span>
385
- <span class="cline-any cline-neutral">&nbsp;</span>
386
- <span class="cline-any cline-yes">5x</span>
387
- <span class="cline-any cline-yes">5x</span>
388
- <span class="cline-any cline-neutral">&nbsp;</span>
389
- <span class="cline-any cline-neutral">&nbsp;</span>
390
- <span class="cline-any cline-yes">5x</span>
391
- <span class="cline-any cline-yes">5x</span>
392
- <span class="cline-any cline-yes">5x</span>
393
- <span class="cline-any cline-yes">5x</span>
394
- <span class="cline-any cline-yes">5x</span>
395
- <span class="cline-any cline-yes">5x</span>
396
- <span class="cline-any cline-yes">5x</span>
397
- <span class="cline-any cline-yes">5x</span>
398
- <span class="cline-any cline-neutral">&nbsp;</span>
399
- <span class="cline-any cline-no">&nbsp;</span>
400
- <span class="cline-any cline-no">&nbsp;</span>
401
- <span class="cline-any cline-neutral">&nbsp;</span>
402
- <span class="cline-any cline-neutral">&nbsp;</span>
403
- <span class="cline-any cline-yes">5x</span>
404
- <span class="cline-any cline-neutral">&nbsp;</span>
405
- <span class="cline-any cline-yes">5x</span>
406
- <span class="cline-any cline-neutral">&nbsp;</span>
407
- <span class="cline-any cline-no">&nbsp;</span>
408
- <span class="cline-any cline-no">&nbsp;</span>
409
- <span class="cline-any cline-no">&nbsp;</span>
410
- <span class="cline-any cline-neutral">&nbsp;</span>
411
- <span class="cline-any cline-neutral">&nbsp;</span>
412
- <span class="cline-any cline-neutral">&nbsp;</span>
413
- <span class="cline-any cline-neutral">&nbsp;</span>
414
- <span class="cline-any cline-yes">5x</span>
415
- <span class="cline-any cline-yes">1510x</span>
416
- <span class="cline-any cline-neutral">&nbsp;</span>
417
- <span class="cline-any cline-yes">1510x</span>
418
- <span class="cline-any cline-neutral">&nbsp;</span>
419
- <span class="cline-any cline-neutral">&nbsp;</span>
420
- <span class="cline-any cline-yes">5x</span>
421
- <span class="cline-any cline-neutral">&nbsp;</span>
422
- <span class="cline-any cline-neutral">&nbsp;</span>
423
- <span class="cline-any cline-neutral">&nbsp;</span>
424
- <span class="cline-any cline-yes">5x</span>
425
- <span class="cline-any cline-neutral">&nbsp;</span>
426
- <span class="cline-any cline-yes">5x</span>
427
- <span class="cline-any cline-neutral">&nbsp;</span>
428
- <span class="cline-any cline-yes">5x</span>
429
- <span class="cline-any cline-yes">10x</span>
430
- <span class="cline-any cline-neutral">&nbsp;</span>
431
- <span class="cline-any cline-yes">10x</span>
432
- <span class="cline-any cline-yes">4x</span>
433
- <span class="cline-any cline-neutral">&nbsp;</span>
434
- <span class="cline-any cline-yes">8x</span>
435
- <span class="cline-any cline-neutral">&nbsp;</span>
436
- <span class="cline-any cline-neutral">&nbsp;</span>
437
- <span class="cline-any cline-neutral">&nbsp;</span>
438
- <span class="cline-any cline-yes">5x</span>
439
- <span class="cline-any cline-neutral">&nbsp;</span>
440
- <span class="cline-any cline-neutral">&nbsp;</span>
441
- <span class="cline-any cline-neutral">&nbsp;</span>
442
- <span class="cline-any cline-yes">5x</span>
443
- <span class="cline-any cline-yes">5x</span>
444
- <span class="cline-any cline-neutral">&nbsp;</span>
445
- <span class="cline-any cline-yes">5x</span>
446
- <span class="cline-any cline-yes">460x</span>
447
- <span class="cline-any cline-yes">820x</span>
448
- <span class="cline-any cline-neutral">&nbsp;</span>
449
- <span class="cline-any cline-yes">820x</span>
450
- <span class="cline-any cline-yes">158x</span>
451
- <span class="cline-any cline-yes">242x</span>
452
- <span class="cline-any cline-neutral">&nbsp;</span>
453
- <span class="cline-any cline-yes">242x</span>
454
- <span class="cline-any cline-yes">242x</span>
455
- <span class="cline-any cline-neutral">&nbsp;</span>
456
- <span class="cline-any cline-neutral">&nbsp;</span>
457
- <span class="cline-any cline-neutral">&nbsp;</span>
458
- <span class="cline-any cline-neutral">&nbsp;</span>
459
- <span class="cline-any cline-neutral">&nbsp;</span>
460
- <span class="cline-any cline-yes">5x</span>
461
- <span class="cline-any cline-neutral">&nbsp;</span>
462
- <span class="cline-any cline-neutral">&nbsp;</span>
463
- <span class="cline-any cline-neutral">&nbsp;</span>
464
- <span class="cline-any cline-yes">5x</span>
465
- <span class="cline-any cline-yes">242x</span>
466
- <span class="cline-any cline-yes">242x</span>
467
- <span class="cline-any cline-yes">242x</span>
468
- <span class="cline-any cline-no">&nbsp;</span>
469
- <span class="cline-any cline-neutral">&nbsp;</span>
470
- <span class="cline-any cline-neutral">&nbsp;</span>
471
- <span class="cline-any cline-yes">242x</span>
472
- <span class="cline-any cline-neutral">&nbsp;</span>
473
- <span class="cline-any cline-neutral">&nbsp;</span>
474
- <span class="cline-any cline-yes">242x</span>
475
- <span class="cline-any cline-no">&nbsp;</span>
476
- <span class="cline-any cline-neutral">&nbsp;</span>
477
- <span class="cline-any cline-neutral">&nbsp;</span>
478
- <span class="cline-any cline-neutral">&nbsp;</span>
479
- <span class="cline-any cline-neutral">&nbsp;</span>
480
- <span class="cline-any cline-yes">5x</span>
481
- <span class="cline-any cline-neutral">&nbsp;</span>
482
- <span class="cline-any cline-neutral">&nbsp;</span>
483
- <span class="cline-any cline-neutral">&nbsp;</span>
484
- <span class="cline-any cline-yes">31795x</span>
485
- <span class="cline-any cline-yes">962778x</span>
486
- <span class="cline-any cline-yes">31582x</span>
487
- <span class="cline-any cline-neutral">&nbsp;</span>
488
- <span class="cline-any cline-yes">5x</span>
489
- <span class="cline-any cline-yes">5x</span>
490
- <span class="cline-any cline-neutral">&nbsp;</span>
491
- <span class="cline-any cline-yes">5x</span>
492
- <span class="cline-any cline-yes">242x</span>
493
- <span class="cline-any cline-yes">31795x</span>
494
- <span class="cline-any cline-yes">31795x</span>
495
- <span class="cline-any cline-yes">31795x</span>
496
- <span class="cline-any cline-neutral">&nbsp;</span>
497
- <span class="cline-any cline-yes">31795x</span>
498
- <span class="cline-any cline-yes">213x</span>
499
- <span class="cline-any cline-neutral">&nbsp;</span>
500
- <span class="cline-any cline-neutral">&nbsp;</span>
501
- <span class="cline-any cline-yes">31795x</span>
502
- <span class="cline-any cline-yes">31795x</span>
503
- <span class="cline-any cline-neutral">&nbsp;</span>
504
- <span class="cline-any cline-neutral">&nbsp;</span>
505
- <span class="cline-any cline-neutral">&nbsp;</span>
506
- <span class="cline-any cline-yes">5x</span>
507
- <span class="cline-any cline-neutral">&nbsp;</span>
508
- <span class="cline-any cline-neutral">&nbsp;</span>
509
- <span class="cline-any cline-neutral">&nbsp;</span>
510
- <span class="cline-any cline-yes">5x</span>
511
- <span class="cline-any cline-yes">2x</span>
512
- <span class="cline-any cline-neutral">&nbsp;</span>
513
- <span class="cline-any cline-yes">2x</span>
514
- <span class="cline-any cline-yes">230x</span>
515
- <span class="cline-any cline-yes">226x</span>
516
- <span class="cline-any cline-neutral">&nbsp;</span>
517
- <span class="cline-any cline-neutral">&nbsp;</span>
518
- <span class="cline-any cline-neutral">&nbsp;</span>
519
- <span class="cline-any cline-yes">2x</span>
520
- <span class="cline-any cline-neutral">&nbsp;</span>
521
- <span class="cline-any cline-yes">5x</span>
522
- <span class="cline-any cline-neutral">&nbsp;</span>
523
- <span class="cline-any cline-yes">5x</span>
524
- <span class="cline-any cline-yes">8x</span>
525
- <span class="cline-any cline-neutral">&nbsp;</span>
526
- <span class="cline-any cline-neutral">&nbsp;</span>
527
- <span class="cline-any cline-neutral">&nbsp;</span>
528
- <span class="cline-any cline-neutral">&nbsp;</span>
529
- <span class="cline-any cline-yes">8x</span>
530
- <span class="cline-any cline-yes">8x</span>
531
- <span class="cline-any cline-neutral">&nbsp;</span>
532
- <span class="cline-any cline-yes">8x</span>
533
- <span class="cline-any cline-yes">232x</span>
534
- <span class="cline-any cline-neutral">&nbsp;</span>
535
- <span class="cline-any cline-yes">232x</span>
536
- <span class="cline-any cline-neutral">&nbsp;</span>
537
- <span class="cline-any cline-yes">232x</span>
538
- <span class="cline-any cline-yes">232x</span>
539
- <span class="cline-any cline-yes">7344x</span>
540
- <span class="cline-any cline-yes">194501x</span>
541
- <span class="cline-any cline-yes">168277x</span>
542
- <span class="cline-any cline-neutral">&nbsp;</span>
543
- <span class="cline-any cline-neutral">&nbsp;</span>
544
- <span class="cline-any cline-neutral">&nbsp;</span>
545
- <span class="cline-any cline-neutral">&nbsp;</span>
546
- <span class="cline-any cline-neutral">&nbsp;</span>
547
- <span class="cline-any cline-neutral">&nbsp;</span>
548
- <span class="cline-any cline-yes">8x</span>
549
- <span class="cline-any cline-yes">79x</span>
550
- <span class="cline-any cline-yes">79x</span>
551
- <span class="cline-any cline-neutral">&nbsp;</span>
552
- <span class="cline-any cline-neutral">&nbsp;</span>
553
- <span class="cline-any cline-neutral">&nbsp;</span>
554
- <span class="cline-any cline-yes">8x</span>
555
- <span class="cline-any cline-neutral">&nbsp;</span>
556
- <span class="cline-any cline-neutral">&nbsp;</span>
557
- <span class="cline-any cline-yes">5x</span>
558
- <span class="cline-any cline-neutral">&nbsp;</span>
559
- <span class="cline-any cline-yes">5x</span>
560
- <span class="cline-any cline-neutral">&nbsp;</span>
561
- <span class="cline-any cline-neutral">&nbsp;</span>
562
- <span class="cline-any cline-neutral">&nbsp;</span>
563
- <span class="cline-any cline-yes">5x</span>
564
- <span class="cline-any cline-neutral">&nbsp;</span>
565
- <span class="cline-any cline-neutral">&nbsp;</span>
566
- <span class="cline-any cline-neutral">&nbsp;</span>
567
- <span class="cline-any cline-neutral">&nbsp;</span>
568
- <span class="cline-any cline-yes">5x</span>
569
- <span class="cline-any cline-yes">8x</span>
570
- <span class="cline-any cline-neutral">&nbsp;</span>
571
- <span class="cline-any cline-neutral">&nbsp;</span>
572
- <span class="cline-any cline-neutral">&nbsp;</span>
573
- <span class="cline-any cline-yes">8x</span>
574
- <span class="cline-any cline-yes">5x</span>
575
- <span class="cline-any cline-yes">5x</span>
576
- <span class="cline-any cline-neutral">&nbsp;</span>
577
- <span class="cline-any cline-neutral">&nbsp;</span>
578
- <span class="cline-any cline-neutral">&nbsp;</span>
579
- <span class="cline-any cline-yes">5x</span>
580
- <span class="cline-any cline-no">&nbsp;</span>
581
- <span class="cline-any cline-neutral">&nbsp;</span>
582
- <span class="cline-any cline-neutral">&nbsp;</span>
583
- <span class="cline-any cline-yes">5x</span>
584
- <span class="cline-any cline-neutral">&nbsp;</span>
585
- <span class="cline-any cline-neutral">&nbsp;</span>
586
- <span class="cline-any cline-neutral">&nbsp;</span>
587
- <span class="cline-any cline-neutral">&nbsp;</span>
588
- <span class="cline-any cline-neutral">&nbsp;</span>
589
- <span class="cline-any cline-neutral">&nbsp;</span>
590
- <span class="cline-any cline-neutral">&nbsp;</span>
591
- <span class="cline-any cline-yes">12x</span>
592
- <span class="cline-any cline-yes">12x</span>
593
- <span class="cline-any cline-neutral">&nbsp;</span>
594
- <span class="cline-any cline-yes">12x</span>
595
- <span class="cline-any cline-yes">12x</span>
596
- <span class="cline-any cline-neutral">&nbsp;</span>
597
- <span class="cline-any cline-neutral">&nbsp;</span>
598
- <span class="cline-any cline-neutral">&nbsp;</span>
599
- <span class="cline-any cline-neutral">&nbsp;</span>
600
- <span class="cline-any cline-yes">8x</span>
601
- <span class="cline-any cline-neutral">&nbsp;</span>
602
- <span class="cline-any cline-yes">8x</span>
603
- <span class="cline-any cline-yes">8x</span>
604
- <span class="cline-any cline-neutral">&nbsp;</span>
605
- <span class="cline-any cline-neutral">&nbsp;</span>
606
- <span class="cline-any cline-neutral">&nbsp;</span>
607
- <span class="cline-any cline-neutral">&nbsp;</span>
608
- <span class="cline-any cline-yes">12x</span>
609
- <span class="cline-any cline-neutral">&nbsp;</span>
610
- <span class="cline-any cline-neutral">&nbsp;</span>
611
- <span class="cline-any cline-neutral">&nbsp;</span>
612
- <span class="cline-any cline-yes">10x</span>
613
- <span class="cline-any cline-neutral">&nbsp;</span>
614
- <span class="cline-any cline-neutral">&nbsp;</span>
615
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import * as path from 'path';
616
- import * as head from 'lodash.head';
617
- import * as values from 'lodash.values';
618
- import * as keys from 'lodash.keys';
619
- import * as get from 'lodash.get';
620
- import * as flattenDeep from 'lodash.flattendeep';
621
- import * as isEmpty from 'lodash.isempty';
622
- import * as startsWith from 'lodash.startswith';
623
- import * as includes from 'lodash.includes';
624
- import * as compact from 'lodash.compact';
625
- import { DdfCsvError } from '../ddfcsv-error';
626
- import { IDatapackage, IResourceSelectionOptimizer, IResourceRead, IBaseReaderOptions } from '../interfaces';
627
- import { QueryFeature, featureDetectors, IQuery } from 'ddf-query-validator';
628
- &nbsp;
629
- const Papa = require('papaparse');
630
- &nbsp;
631
- const WHERE_KEYWORD = 'where';
632
- const JOIN_KEYWORD = 'join';
633
- const KEY_IN = '$in';
634
- const KEY_NIN = '$nin';
635
- const KEY_AND = '$and';
636
- &nbsp;
637
- const getFirstConditionClause = clause =&gt; head(values(clause));
638
- const getFirstKey = obj =&gt; head(keys(obj));
639
- const isOneKeyBased = obj =&gt; keys(obj).length === 1;
640
- &nbsp;
641
- export class InClauseUnderConjunction implements IResourceSelectionOptimizer {
642
- private flow: any = {};
643
- private fileReader: IResourceRead;
644
- private datasetPath: string;
645
- private query: IQuery;
646
- private datapackage: IDatapackage;
647
- private conceptsLookup;
648
- &nbsp;
649
- constructor(queryParam, private options: IBaseReaderOptions) {
650
- this.fileReader = options.fileReader;
651
- this.datasetPath = options.basePath;
652
- this.query = queryParam;
653
- this.datapackage = options.datapackage;
654
- this.conceptsLookup = options.conceptsLookup;
655
- }
656
- &nbsp;
657
- isMatched(): boolean {
658
- this.flow.joinObject = get(this.query, JOIN_KEYWORD);
659
- &nbsp;
660
- const relatedFeatures = compact(featureDetectors.map(detector =&gt; detector(this.query, this.conceptsLookup)));
661
- &nbsp;
662
- return includes(relatedFeatures, QueryFeature.WhereClauseBasedOnConjunction) &amp;&amp;
663
- includes(relatedFeatures, QueryFeature.ConjunctionPartFromWhereClauseCorrespondsToJoin);
664
- }
665
- &nbsp;
666
- async getRecommendedFilesSet(): Promise&lt;string[]&gt; {
667
- const { debug, error, warning } = this.options.diagnostic.prepareDiagnosticFor('getRecommendedFilesSet');
668
- &nbsp;
669
- <span class="missing-if-branch" title="else path not taken" >E</span>if (this.isMatched()) {
670
- debug('plugin matched');
671
- &nbsp;
672
- let result;
673
- try {
674
- this.fillResourceToFileHash();
675
- this.collectProcessableClauses();
676
- this.collectEntityFilesNames();
677
- const data = await this.collectEntities();
678
- this.fillEntityValuesHash(data);
679
- this.getFilesGroupsQueryClause();
680
- result = this.getOptimalFilesGroup();
681
- } catch (err) {
682
- <span class="cstat-no" title="statement not covered" > error('wrong data processing', err);</span>
683
- <span class="cstat-no" title="statement not covered" > return [];</span>
684
- }
685
- &nbsp;
686
- debug('recommended files found', result);
687
- &nbsp;
688
- return result;
689
- } else {
690
- const message = <span class="cstat-no" title="statement not covered" >`Plugin "InClauseUnderConjunction" is not matched!`;</span>
691
- <span class="cstat-no" title="statement not covered" > warning(message);</span>
692
- <span class="cstat-no" title="statement not covered" > throw new DdfCsvError(message, 'InClauseUnderConjunction plugin');</span>
693
- }
694
- }
695
- &nbsp;
696
- private fillResourceToFileHash(): InClauseUnderConjunction {
697
- this.flow.resourceToFile = get(this.datapackage, 'resources', []).reduce((hash, resource) =&gt; {
698
- hash.set(resource.name, resource.path);
699
- &nbsp;
700
- return hash;
701
- }, new Map());
702
- &nbsp;
703
- return this;
704
- }
705
- &nbsp;
706
- private collectProcessableClauses(): InClauseUnderConjunction {
707
- const joinKeys = keys(this.flow.joinObject);
708
- &nbsp;
709
- this.flow.processableClauses = [];
710
- &nbsp;
711
- for (const joinKey of joinKeys) {
712
- const where = get(this.flow.joinObject, `${joinKey}.${WHERE_KEYWORD}`, {});
713
- &nbsp;
714
- if (this.singleAndField(where)) {
715
- this.flow.processableClauses.push(...flattenDeep(where[KEY_AND].map(el =&gt; this.getProcessableClauses(el))));
716
- } else {
717
- this.flow.processableClauses.push(...this.getProcessableClauses(where));
718
- }
719
- }
720
- &nbsp;
721
- return this;
722
- }
723
- &nbsp;
724
- private collectEntityFilesNames(): InClauseUnderConjunction {
725
- this.flow.entityFilesNames = [];
726
- this.flow.fileNameToPrimaryKeyHash = new Map();
727
- &nbsp;
728
- for (const schemaResourceRecord of this.datapackage.ddfSchema.entities) {
729
- for (const clause of this.flow.processableClauses) {
730
- const primaryKey = getFirstKey(clause);
731
- &nbsp;
732
- if (head(schemaResourceRecord.primaryKey) === primaryKey) {
733
- for (const resourceName of schemaResourceRecord.resources) {
734
- const file = this.flow.resourceToFile.get(resourceName);
735
- &nbsp;
736
- this.flow.entityFilesNames.push(file);
737
- this.flow.fileNameToPrimaryKeyHash.set(file, primaryKey);
738
- }
739
- }
740
- }
741
- }
742
- &nbsp;
743
- return this;
744
- }
745
- &nbsp;
746
- private collectEntities(): Promise&lt;any&gt; {
747
- const self = this;
748
- const actions = self.flow.entityFilesNames.map(file =&gt; new Promise((actResolve, actReject) =&gt; {
749
- self.fileReader.readText(path.join(self.datasetPath, file), (err, text) =&gt; {
750
- <span class="missing-if-branch" title="if path not taken" >I</span>if (err) {
751
- <span class="cstat-no" title="statement not covered" > return actReject(err);</span>
752
- }
753
- &nbsp;
754
- Papa.parse(text, {
755
- header: true,
756
- skipEmptyLines: true,
757
- complete: result =&gt; actResolve({file, result}),
758
- error: <span class="fstat-no" title="function not covered" >error</span> =&gt; <span class="cstat-no" title="statement not covered" >actReject(error)</span>
759
- });
760
- });
761
- }));
762
- &nbsp;
763
- return Promise.all(actions);
764
- }
765
- &nbsp;
766
- private fillEntityValuesHash(entitiesData): InClauseUnderConjunction {
767
- const getSubdomainsFromRecord = record =&gt; compact(keys(record)
768
- .filter(key =&gt; startsWith(key, 'is--') &amp;&amp; (record[key] === 'TRUE' || <span class="branch-2 cbranch-no" title="branch not covered" >record[key] === 'true')</span>)
769
- .map(key =&gt; key.replace(/^is--/, '')));
770
- &nbsp;
771
- this.flow.entityValueToFileHash = new Map();
772
- this.flow.entityValueToDomainHash = new Map();
773
- &nbsp;
774
- for (const entityFileDescriptor of entitiesData) {
775
- for (const entityRecord of entityFileDescriptor.result.data) {
776
- const primaryKeyForThisFile = this.flow.fileNameToPrimaryKeyHash.get(entityFileDescriptor.file);
777
- const primaryKeyCellValue = entityRecord[primaryKeyForThisFile];
778
- const domainsForCurrentRecord = [...getSubdomainsFromRecord(entityRecord)];
779
- &nbsp;
780
- if (isEmpty(domainsForCurrentRecord)) {
781
- domainsForCurrentRecord.push(primaryKeyForThisFile);
782
- }
783
- &nbsp;
784
- this.flow.entityValueToDomainHash.set(primaryKeyCellValue, domainsForCurrentRecord);
785
- this.flow.entityValueToFileHash.set(primaryKeyCellValue, entityFileDescriptor.file);
786
- }
787
- }
788
- &nbsp;
789
- return this;
790
- }
791
- &nbsp;
792
- private getFilesGroupsQueryClause(): InClauseUnderConjunction {
793
- const getEntitiesExcept = (entityValuesToExclude: string[]): string[] =&gt; {
794
- const result = [];
795
- &nbsp;
796
- for (const entityKey of this.flow.entityValueToDomainHash.keys()) {
797
- if (!includes(entityValuesToExclude, entityKey)) {
798
- result.push(entityKey);
799
- }
800
- }
801
- &nbsp;
802
- return result;
803
- };
804
- const filesGroupsByClause = new Map();
805
- &nbsp;
806
- for (const clause of this.flow.processableClauses) {
807
- const filesGroupByClause = {
808
- entities: new Set(),
809
- datapoints: new Set(),
810
- concepts: new Set()
811
- };
812
- const firstConditionClause = getFirstConditionClause(clause);
813
- const entityValuesFromClause = firstConditionClause[KEY_IN] || getEntitiesExcept(firstConditionClause[KEY_NIN]);
814
- &nbsp;
815
- for (const entityValueFromClause of entityValuesFromClause) {
816
- filesGroupByClause.entities.add(this.flow.entityValueToFileHash.get(entityValueFromClause));
817
- &nbsp;
818
- const entitiesByQuery = this.flow.entityValueToDomainHash.get(entityValueFromClause);
819
- &nbsp;
820
- for (const entityByQuery of entitiesByQuery) {
821
- for (const schemaResourceRecord of this.datapackage.ddfSchema.datapoints) {
822
- for (const resourceName of schemaResourceRecord.resources) {
823
- if (includes(schemaResourceRecord.primaryKey, entityByQuery)) {
824
- filesGroupByClause.datapoints.add(this.flow.resourceToFile.get(resourceName));
825
- }
826
- }
827
- }
828
- }
829
- }
830
- &nbsp;
831
- for (const schemaResourceRecord of this.datapackage.ddfSchema.concepts) {
832
- for (const resourceName of schemaResourceRecord.resources) {
833
- filesGroupByClause.concepts.add(this.flow.resourceToFile.get(resourceName));
834
- }
835
- }
836
- &nbsp;
837
- filesGroupsByClause.set(clause, filesGroupByClause);
838
- }
839
- &nbsp;
840
- this.flow.filesGroupsByClause = filesGroupsByClause;
841
- &nbsp;
842
- return this;
843
- }
844
- &nbsp;
845
- private getOptimalFilesGroup(): string[] {
846
- const clauseKeys = this.flow.filesGroupsByClause.keys();
847
- &nbsp;
848
- let appropriateClauseKey;
849
- let appropriateClauseSize;
850
- &nbsp;
851
- for (const key of clauseKeys) {
852
- const size = this.flow.filesGroupsByClause.get(key).datapoints.size +
853
- this.flow.filesGroupsByClause.get(key).entities.size +
854
- this.flow.filesGroupsByClause.get(key).concepts.size;
855
- &nbsp;
856
- if (!appropriateClauseKey || size &lt; appropriateClauseSize) {
857
- appropriateClauseKey = key;
858
- appropriateClauseSize = size;
859
- }
860
- }
861
- &nbsp;
862
- <span class="missing-if-branch" title="if path not taken" >I</span>if (!this.flow.filesGroupsByClause.get(appropriateClauseKey)) {
863
- <span class="cstat-no" title="statement not covered" > return [];</span>
864
- }
865
- &nbsp;
866
- return [
867
- ...Array.from(this.flow.filesGroupsByClause.get(appropriateClauseKey).concepts),
868
- ...Array.from(this.flow.filesGroupsByClause.get(appropriateClauseKey).entities),
869
- ...Array.from(this.flow.filesGroupsByClause.get(appropriateClauseKey).datapoints)
870
- ] as string[];
871
- }
872
- &nbsp;
873
- private getProcessableClauses(clause) {
874
- const result = [];
875
- const clauseKeys = keys(clause);
876
- &nbsp;
877
- for (const key of clauseKeys) {
878
- if (!startsWith(key, '$') &amp;&amp; isOneKeyBased(clause[key])) {
879
- // attention! this functionality process only first clause
880
- // for example, { geo: { '$in': ['world'] } }
881
- // in this example { geo: { '$in': ['world'] }, foo: { '$in': ['bar', 'baz'] } }]
882
- // foo: { '$in': ['bar', 'baz'] } will NOT be processed
883
- const conditionKey = head(keys(clause[key]));
884
- &nbsp;
885
- <span class="missing-if-branch" title="else path not taken" >E</span>if (conditionKey === KEY_IN || conditionKey === KEY_NIN) {
886
- result.push(clause);
887
- }
888
- }
889
- }
890
- &nbsp;
891
- return result;
892
- }
893
- &nbsp;
894
- private singleAndField(clause): boolean {
895
- return isOneKeyBased(clause) &amp;&amp; !!get(clause, KEY_AND);
896
- }
897
- }
898
- &nbsp;</pre></td></tr>
899
- </table></pre>
900
- <div class='push'></div><!-- for sticky footer -->
901
- </div><!-- /wrapper -->
902
- <div class='footer quiet pad2 space-top1 center small'>
903
- Code coverage
904
- generated by <a href="https://istanbul.js.org/" target="_blank">istanbul</a> at Thu Sep 08 2022 02:09:33 GMT+0300 (Moscow Standard Time)
905
- </div>
906
- </div>
907
- <script src="../../prettify.js"></script>
908
- <script>
909
- window.onload = function () {
910
- if (typeof prettyPrint === 'function') {
911
- prettyPrint();
912
- }
913
- };
914
- </script>
915
- <script src="../../sorter.js"></script>
916
- <script src="../../block-navigation.js"></script>
917
- </body>
918
- </html>