@budibase/server 1.0.159 → 1.0.162

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 (169) hide show
  1. package/builder/assets/{index.fd63ba67.js → index.54fa98bf.js} +4 -4
  2. package/builder/index.html +1 -1
  3. package/coverage/clover.xml +96 -88
  4. package/coverage/coverage-final.json +2 -2
  5. package/coverage/lcov-report/api/controllers/analytics.js.html +1 -1
  6. package/coverage/lcov-report/api/controllers/apikeys.js.html +1 -1
  7. package/coverage/lcov-report/api/controllers/auth.js.html +1 -1
  8. package/coverage/lcov-report/api/controllers/automation.js.html +1 -1
  9. package/coverage/lcov-report/api/controllers/backup.js.html +1 -1
  10. package/coverage/lcov-report/api/controllers/cloud.js.html +1 -1
  11. package/coverage/lcov-report/api/controllers/component.js.html +1 -1
  12. package/coverage/lcov-report/api/controllers/datasource.js.html +1 -1
  13. package/coverage/lcov-report/api/controllers/dev.js.html +1 -1
  14. package/coverage/lcov-report/api/controllers/index.html +1 -1
  15. package/coverage/lcov-report/api/controllers/integration.js.html +1 -1
  16. package/coverage/lcov-report/api/controllers/layout.js.html +1 -1
  17. package/coverage/lcov-report/api/controllers/metadata.js.html +1 -1
  18. package/coverage/lcov-report/api/controllers/migrations.js.html +1 -1
  19. package/coverage/lcov-report/api/controllers/permission.js.html +1 -1
  20. package/coverage/lcov-report/api/controllers/query/index.html +1 -1
  21. package/coverage/lcov-report/api/controllers/query/validation.js.html +1 -1
  22. package/coverage/lcov-report/api/controllers/role.js.html +1 -1
  23. package/coverage/lcov-report/api/controllers/routing.js.html +1 -1
  24. package/coverage/lcov-report/api/controllers/row/external.js.html +1 -1
  25. package/coverage/lcov-report/api/controllers/row/index.html +1 -1
  26. package/coverage/lcov-report/api/controllers/row/internal.js.html +1 -1
  27. package/coverage/lcov-report/api/controllers/row/internalSearch.js.html +1 -1
  28. package/coverage/lcov-report/api/controllers/row/staticFormula.js.html +1 -1
  29. package/coverage/lcov-report/api/controllers/row/utils.js.html +1 -1
  30. package/coverage/lcov-report/api/controllers/screen.js.html +1 -1
  31. package/coverage/lcov-report/api/controllers/script.js.html +1 -1
  32. package/coverage/lcov-report/api/controllers/table/bulkFormula.js.html +1 -1
  33. package/coverage/lcov-report/api/controllers/table/external.js.html +1 -1
  34. package/coverage/lcov-report/api/controllers/table/index.html +1 -1
  35. package/coverage/lcov-report/api/controllers/table/index.js.html +1 -1
  36. package/coverage/lcov-report/api/controllers/templates.js.html +1 -1
  37. package/coverage/lcov-report/api/controllers/user.js.html +1 -1
  38. package/coverage/lcov-report/api/controllers/view/exporters.js.html +1 -1
  39. package/coverage/lcov-report/api/controllers/view/index.html +24 -24
  40. package/coverage/lcov-report/api/controllers/view/index.js.html +1 -1
  41. package/coverage/lcov-report/api/controllers/view/utils.js.html +14 -8
  42. package/coverage/lcov-report/api/controllers/view/viewBuilder.js.html +111 -48
  43. package/coverage/lcov-report/api/controllers/webhook.js.html +1 -1
  44. package/coverage/lcov-report/api/index.html +1 -1
  45. package/coverage/lcov-report/api/index.js.html +1 -1
  46. package/coverage/lcov-report/api/routes/analytics.js.html +1 -1
  47. package/coverage/lcov-report/api/routes/apikeys.js.html +1 -1
  48. package/coverage/lcov-report/api/routes/auth.js.html +1 -1
  49. package/coverage/lcov-report/api/routes/automation.js.html +1 -1
  50. package/coverage/lcov-report/api/routes/backup.js.html +1 -1
  51. package/coverage/lcov-report/api/routes/cloud.js.html +1 -1
  52. package/coverage/lcov-report/api/routes/component.js.html +1 -1
  53. package/coverage/lcov-report/api/routes/datasource.js.html +1 -1
  54. package/coverage/lcov-report/api/routes/deploy.js.html +1 -1
  55. package/coverage/lcov-report/api/routes/dev.js.html +1 -1
  56. package/coverage/lcov-report/api/routes/index.html +1 -1
  57. package/coverage/lcov-report/api/routes/integration.js.html +1 -1
  58. package/coverage/lcov-report/api/routes/layout.js.html +1 -1
  59. package/coverage/lcov-report/api/routes/metadata.js.html +1 -1
  60. package/coverage/lcov-report/api/routes/migrations.js.html +1 -1
  61. package/coverage/lcov-report/api/routes/permission.js.html +1 -1
  62. package/coverage/lcov-report/api/routes/query.js.html +1 -1
  63. package/coverage/lcov-report/api/routes/role.js.html +1 -1
  64. package/coverage/lcov-report/api/routes/routing.js.html +1 -1
  65. package/coverage/lcov-report/api/routes/screen.js.html +1 -1
  66. package/coverage/lcov-report/api/routes/script.js.html +1 -1
  67. package/coverage/lcov-report/api/routes/table.js.html +1 -1
  68. package/coverage/lcov-report/api/routes/templates.js.html +1 -1
  69. package/coverage/lcov-report/api/routes/user.js.html +1 -1
  70. package/coverage/lcov-report/api/routes/utils/index.html +1 -1
  71. package/coverage/lcov-report/api/routes/utils/validators.js.html +1 -1
  72. package/coverage/lcov-report/api/routes/view.js.html +1 -1
  73. package/coverage/lcov-report/api/routes/webhook.js.html +1 -1
  74. package/coverage/lcov-report/automations/actions.js.html +1 -1
  75. package/coverage/lcov-report/automations/automationUtils.js.html +1 -1
  76. package/coverage/lcov-report/automations/bullboard.js.html +1 -1
  77. package/coverage/lcov-report/automations/index.html +1 -1
  78. package/coverage/lcov-report/automations/index.js.html +1 -1
  79. package/coverage/lcov-report/automations/steps/bash.js.html +1 -1
  80. package/coverage/lcov-report/automations/steps/delay.js.html +1 -1
  81. package/coverage/lcov-report/automations/steps/discord.js.html +1 -1
  82. package/coverage/lcov-report/automations/steps/executeQuery.js.html +1 -1
  83. package/coverage/lcov-report/automations/steps/executeScript.js.html +1 -1
  84. package/coverage/lcov-report/automations/steps/filter.js.html +1 -1
  85. package/coverage/lcov-report/automations/steps/index.html +1 -1
  86. package/coverage/lcov-report/automations/steps/integromat.js.html +1 -1
  87. package/coverage/lcov-report/automations/steps/loop.js.html +1 -1
  88. package/coverage/lcov-report/automations/steps/outgoingWebhook.js.html +1 -1
  89. package/coverage/lcov-report/automations/steps/queryRows.js.html +1 -1
  90. package/coverage/lcov-report/automations/steps/sendSmtpEmail.js.html +1 -1
  91. package/coverage/lcov-report/automations/steps/serverLog.js.html +1 -1
  92. package/coverage/lcov-report/automations/steps/slack.js.html +1 -1
  93. package/coverage/lcov-report/automations/steps/updateRow.js.html +1 -1
  94. package/coverage/lcov-report/automations/steps/utils.js.html +1 -1
  95. package/coverage/lcov-report/automations/steps/zapier.js.html +1 -1
  96. package/coverage/lcov-report/automations/triggerInfo/app.js.html +1 -1
  97. package/coverage/lcov-report/automations/triggerInfo/cron.js.html +1 -1
  98. package/coverage/lcov-report/automations/triggerInfo/index.html +1 -1
  99. package/coverage/lcov-report/automations/triggerInfo/index.js.html +1 -1
  100. package/coverage/lcov-report/automations/triggerInfo/rowDeleted.js.html +1 -1
  101. package/coverage/lcov-report/automations/triggerInfo/rowSaved.js.html +1 -1
  102. package/coverage/lcov-report/automations/triggerInfo/rowUpdated.js.html +1 -1
  103. package/coverage/lcov-report/automations/triggerInfo/webhook.js.html +1 -1
  104. package/coverage/lcov-report/automations/triggers.js.html +1 -1
  105. package/coverage/lcov-report/constants/index.html +1 -1
  106. package/coverage/lcov-report/constants/index.js.html +1 -1
  107. package/coverage/lcov-report/constants/layouts.js.html +1 -1
  108. package/coverage/lcov-report/constants/screens.js.html +1 -1
  109. package/coverage/lcov-report/db/inMemoryView.js.html +1 -1
  110. package/coverage/lcov-report/db/index.html +1 -1
  111. package/coverage/lcov-report/db/index.js.html +1 -1
  112. package/coverage/lcov-report/db/linkedRows/LinkController.js.html +1 -1
  113. package/coverage/lcov-report/db/linkedRows/index.html +1 -1
  114. package/coverage/lcov-report/db/linkedRows/index.js.html +1 -1
  115. package/coverage/lcov-report/db/linkedRows/linkUtils.js.html +1 -1
  116. package/coverage/lcov-report/db/newid.js.html +1 -1
  117. package/coverage/lcov-report/db/utils.js.html +1 -1
  118. package/coverage/lcov-report/events/AutomationEmitter.js.html +1 -1
  119. package/coverage/lcov-report/events/index.html +1 -1
  120. package/coverage/lcov-report/events/index.js.html +1 -1
  121. package/coverage/lcov-report/events/utils.js.html +1 -1
  122. package/coverage/lcov-report/index.html +19 -19
  123. package/coverage/lcov-report/integrations/tests/TestConfiguration.js.html +1 -1
  124. package/coverage/lcov-report/integrations/tests/index.html +1 -1
  125. package/coverage/lcov-report/middleware/appInfo.js.html +1 -1
  126. package/coverage/lcov-report/middleware/builder.js.html +1 -1
  127. package/coverage/lcov-report/middleware/currentapp.js.html +1 -1
  128. package/coverage/lcov-report/middleware/index.html +1 -1
  129. package/coverage/lcov-report/middleware/joi-validator.js.html +1 -1
  130. package/coverage/lcov-report/middleware/publicApi.js.html +1 -1
  131. package/coverage/lcov-report/middleware/resourceId.js.html +1 -1
  132. package/coverage/lcov-report/middleware/selfhost.js.html +1 -1
  133. package/coverage/lcov-report/middleware/utils.js.html +1 -1
  134. package/coverage/lcov-report/threads/automation.js.html +1 -1
  135. package/coverage/lcov-report/threads/index.html +1 -1
  136. package/coverage/lcov-report/threads/query.js.html +1 -1
  137. package/coverage/lcov-report/threads/utils.js.html +1 -1
  138. package/coverage/lcov-report/utilities/bcrypt.js.html +1 -1
  139. package/coverage/lcov-report/utilities/budibaseDir.js.html +1 -1
  140. package/coverage/lcov-report/utilities/centralPath.js.html +1 -1
  141. package/coverage/lcov-report/utilities/csvParser.js.html +1 -1
  142. package/coverage/lcov-report/utilities/global.js.html +1 -1
  143. package/coverage/lcov-report/utilities/index.html +1 -1
  144. package/coverage/lcov-report/utilities/index.js.html +1 -1
  145. package/coverage/lcov-report/utilities/queue/inMemoryQueue.js.html +1 -1
  146. package/coverage/lcov-report/utilities/queue/index.html +1 -1
  147. package/coverage/lcov-report/utilities/routing/index.html +1 -1
  148. package/coverage/lcov-report/utilities/routing/index.js.html +1 -1
  149. package/coverage/lcov-report/utilities/rowProcessor/index.html +1 -1
  150. package/coverage/lcov-report/utilities/rowProcessor/index.js.html +1 -1
  151. package/coverage/lcov-report/utilities/rowProcessor/utils.js.html +1 -1
  152. package/coverage/lcov-report/utilities/scriptRunner.js.html +1 -1
  153. package/coverage/lcov-report/utilities/security.js.html +1 -1
  154. package/coverage/lcov-report/utilities/statusCodes.js.html +1 -1
  155. package/coverage/lcov-report/utilities/usageQuota/index.html +1 -1
  156. package/coverage/lcov-report/utilities/usageQuota/rows.js.html +1 -1
  157. package/coverage/lcov-report/utilities/usageQuota/usageQuoteReset.js.html +1 -1
  158. package/coverage/lcov-report/utilities/users.js.html +1 -1
  159. package/coverage/lcov-report/utilities/workerRequests.js.html +1 -1
  160. package/coverage/lcov.info +164 -148
  161. package/dist/api/controllers/view/utils.js +4 -2
  162. package/dist/api/controllers/view/viewBuilder.js +22 -8
  163. package/dist/package.json +5 -5
  164. package/dist/tsconfig.build.tsbuildinfo +1 -1
  165. package/package.json +6 -6
  166. package/src/api/controllers/view/tests/__snapshots__/viewBuilder.spec.js.snap +58 -1
  167. package/src/api/controllers/view/tests/viewBuilder.spec.js +18 -0
  168. package/src/api/controllers/view/utils.js +4 -2
  169. package/src/api/controllers/view/viewBuilder.js +32 -11
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">84.84% </span>
26
+ <span class="strong">92.5% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>28/33</span>
28
+ <span class='fraction'>37/40</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">83.33% </span>
33
+ <span class="strong">86.11% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>25/30</span>
35
+ <span class='fraction'>31/36</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">75% </span>
40
+ <span class="strong">100% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>3/4</span>
42
+ <span class='fraction'>5/5</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">84.84% </span>
47
+ <span class="strong">92.5% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>28/33</span>
49
+ <span class='fraction'>37/40</span>
50
50
  </div>
51
51
 
52
52
 
@@ -225,7 +225,28 @@
225
225
  <a name='L160'></a><a href='#L160'>160</a>
226
226
  <a name='L161'></a><a href='#L161'>161</a>
227
227
  <a name='L162'></a><a href='#L162'>162</a>
228
- <a name='L163'></a><a href='#L163'>163</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">42x</span>
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></td><td class="line-coverage quiet"><span class="cline-any cline-yes">42x</span>
229
250
  <span class="cline-any cline-neutral">&nbsp;</span>
230
251
  <span class="cline-any cline-neutral">&nbsp;</span>
231
252
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -238,7 +259,13 @@
238
259
  <span class="cline-any cline-neutral">&nbsp;</span>
239
260
  <span class="cline-any cline-neutral">&nbsp;</span>
240
261
  <span class="cline-any cline-yes">42x</span>
241
- <span class="cline-any cline-no">&nbsp;</span>
262
+ <span class="cline-any cline-neutral">&nbsp;</span>
263
+ <span class="cline-any cline-neutral">&nbsp;</span>
264
+ <span class="cline-any cline-neutral">&nbsp;</span>
265
+ <span class="cline-any cline-neutral">&nbsp;</span>
266
+ <span class="cline-any cline-neutral">&nbsp;</span>
267
+ <span class="cline-any cline-yes">42x</span>
268
+ <span class="cline-any cline-yes">7x</span>
242
269
  <span class="cline-any cline-neutral">&nbsp;</span>
243
270
  <span class="cline-any cline-neutral">&nbsp;</span>
244
271
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -296,34 +323,34 @@
296
323
  <span class="cline-any cline-neutral">&nbsp;</span>
297
324
  <span class="cline-any cline-neutral">&nbsp;</span>
298
325
  <span class="cline-any cline-neutral">&nbsp;</span>
299
- <span class="cline-any cline-yes">11x</span>
326
+ <span class="cline-any cline-yes">19x</span>
300
327
  <span class="cline-any cline-neutral">&nbsp;</span>
301
- <span class="cline-any cline-yes">11x</span>
302
- <span class="cline-any cline-yes">11x</span>
303
- <span class="cline-any cline-yes">2x</span>
328
+ <span class="cline-any cline-yes">19x</span>
329
+ <span class="cline-any cline-yes">19x</span>
330
+ <span class="cline-any cline-yes">10x</span>
304
331
  <span class="cline-any cline-yes">1x</span>
305
332
  <span class="cline-any cline-neutral">&nbsp;</span>
306
333
  <span class="cline-any cline-neutral">&nbsp;</span>
307
- <span class="cline-any cline-yes">2x</span>
334
+ <span class="cline-any cline-yes">10x</span>
308
335
  <span class="cline-any cline-no">&nbsp;</span>
309
336
  <span class="cline-any cline-neutral">&nbsp;</span>
310
337
  <span class="cline-any cline-neutral">&nbsp;</span>
311
- <span class="cline-any cline-yes">2x</span>
312
- <span class="cline-any cline-no">&nbsp;</span>
313
- <span class="cline-any cline-yes">2x</span>
338
+ <span class="cline-any cline-yes">10x</span>
314
339
  <span class="cline-any cline-no">&nbsp;</span>
340
+ <span class="cline-any cline-yes">10x</span>
341
+ <span class="cline-any cline-yes">7x</span>
315
342
  <span class="cline-any cline-neutral">&nbsp;</span>
316
343
  <span class="cline-any cline-neutral">&nbsp;</span>
317
- <span class="cline-any cline-yes">2x</span>
344
+ <span class="cline-any cline-yes">3x</span>
318
345
  <span class="cline-any cline-neutral">&nbsp;</span>
319
- <span class="cline-any cline-yes">2x</span>
346
+ <span class="cline-any cline-yes">3x</span>
320
347
  <span class="cline-any cline-neutral">&nbsp;</span>
321
348
  <span class="cline-any cline-neutral">&nbsp;</span>
322
349
  <span class="cline-any cline-neutral">&nbsp;</span>
323
- <span class="cline-any cline-yes">2x</span>
350
+ <span class="cline-any cline-yes">10x</span>
324
351
  <span class="cline-any cline-neutral">&nbsp;</span>
325
352
  <span class="cline-any cline-neutral">&nbsp;</span>
326
- <span class="cline-any cline-yes">11x</span>
353
+ <span class="cline-any cline-yes">19x</span>
327
354
  <span class="cline-any cline-neutral">&nbsp;</span>
328
355
  <span class="cline-any cline-neutral">&nbsp;</span>
329
356
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -333,7 +360,7 @@
333
360
  <span class="cline-any cline-neutral">&nbsp;</span>
334
361
  <span class="cline-any cline-neutral">&nbsp;</span>
335
362
  <span class="cline-any cline-neutral">&nbsp;</span>
336
- <span class="cline-any cline-yes">11x</span>
363
+ <span class="cline-any cline-yes">12x</span>
337
364
  <span class="cline-any cline-neutral">&nbsp;</span>
338
365
  <span class="cline-any cline-neutral">&nbsp;</span>
339
366
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -349,26 +376,41 @@
349
376
  <span class="cline-any cline-neutral">&nbsp;</span>
350
377
  <span class="cline-any cline-neutral">&nbsp;</span>
351
378
  <span class="cline-any cline-neutral">&nbsp;</span>
352
- <span class="cline-any cline-yes">11x</span>
379
+ <span class="cline-any cline-yes">12x</span>
353
380
  <span class="cline-any cline-no">&nbsp;</span>
354
381
  <span class="cline-any cline-neutral">&nbsp;</span>
355
- <span class="cline-any cline-yes">11x</span>
356
- <span class="cline-any cline-yes">11x</span>
357
382
  <span class="cline-any cline-neutral">&nbsp;</span>
358
- <span class="cline-any cline-yes">11x</span>
383
+ <span class="cline-any cline-yes">12x</span>
384
+ <span class="cline-any cline-yes">12x</span>
385
+ <span class="cline-any cline-neutral">&nbsp;</span>
386
+ <span class="cline-any cline-yes">12x</span>
387
+ <span class="cline-any cline-yes">7x</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-neutral">&nbsp;</span>
391
+ <span class="cline-any cline-yes">7x</span>
392
+ <span class="cline-any cline-neutral">&nbsp;</span>
393
+ <span class="cline-any cline-neutral">&nbsp;</span>
394
+ <span class="cline-any cline-yes">1x</span>
395
+ <span class="cline-any cline-neutral">&nbsp;</span>
396
+ <span class="cline-any cline-neutral">&nbsp;</span>
397
+ <span class="cline-any cline-yes">7x</span>
359
398
  <span class="cline-any cline-neutral">&nbsp;</span>
360
- <span class="cline-any cline-yes">11x</span>
361
399
  <span class="cline-any cline-neutral">&nbsp;</span>
362
- <span class="cline-any cline-yes">11x</span>
363
400
  <span class="cline-any cline-neutral">&nbsp;</span>
364
- <span class="cline-any cline-yes">11x</span>
365
- <span class="cline-any cline-yes">6x</span>
366
401
  <span class="cline-any cline-neutral">&nbsp;</span>
367
402
  <span class="cline-any cline-neutral">&nbsp;</span>
403
+ <span class="cline-any cline-yes">12x</span>
404
+ <span class="cline-any cline-yes">12x</span>
368
405
  <span class="cline-any cline-neutral">&nbsp;</span>
406
+ <span class="cline-any cline-yes">12x</span>
407
+ <span class="cline-any cline-yes">12x</span>
408
+ <span class="cline-any cline-yes">12x</span>
369
409
  <span class="cline-any cline-neutral">&nbsp;</span>
370
410
  <span class="cline-any cline-neutral">&nbsp;</span>
371
- <span class="cline-any cline-yes">11x</span>
411
+ <span class="cline-any cline-yes">12x</span>
412
+ <span class="cline-any cline-neutral">&nbsp;</span>
413
+ <span class="cline-any cline-yes">12x</span>
372
414
  <span class="cline-any cline-neutral">&nbsp;</span>
373
415
  <span class="cline-any cline-neutral">&nbsp;</span>
374
416
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -399,8 +441,14 @@
399
441
  OR: "||",
400
442
  }
401
443
  &nbsp;
402
- const isEmptyExpression = <span class="fstat-no" title="function not covered" >ke</span>y =&gt; {
403
- <span class="cstat-no" title="statement not covered" > return `(</span>
444
+ const CONDITIONS = {
445
+ EMPTY: "EMPTY",
446
+ NOT_EMPTY: "NOT_EMPTY",
447
+ CONTAINS: "CONTAINS",
448
+ }
449
+ &nbsp;
450
+ const isEmptyExpression = key =&gt; {
451
+ return `(
404
452
  doc["${key}"] === undefined ||
405
453
  doc["${key}"] === null ||
406
454
  doc["${key}"] === "" ||
@@ -466,17 +514,17 @@ function parseFilterExpression(filters) {
466
514
  expression.push(TOKEN_MAP[filter.conjunction])
467
515
  }
468
516
  &nbsp;
469
- <span class="missing-if-branch" title="if path not taken" >I</span>if (filter.condition === "CONTAINS") {
517
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (filter.condition === CONDITIONS.CONTAINS) {
470
518
  <span class="cstat-no" title="statement not covered" > expression.push(</span>
471
519
  `doc["${filter.key}"].${TOKEN_MAP[filter.condition]}("${filter.value}")`
472
520
  )
473
- } else <span class="missing-if-branch" title="if path not taken" >I</span>if (filter.condition === "EMPTY") {
521
+ } else <span class="missing-if-branch" title="if path not taken" >I</span>if (filter.condition === CONDITIONS.EMPTY) {
474
522
  <span class="cstat-no" title="statement not covered" > expression.push(isEmptyExpression(filter.key))</span>
475
- } else <span class="missing-if-branch" title="if path not taken" >I</span>if (filter.condition === "NOT_EMPTY") {
476
- <span class="cstat-no" title="statement not covered" > expression.push(`!${isEmptyExpression(filter.key)}`)</span>
523
+ } else if (filter.condition === CONDITIONS.NOT_EMPTY) {
524
+ expression.push(`!${isEmptyExpression(filter.key)}`)
477
525
  } else {
478
526
  const value =
479
- typeof filter.value == "string" ? `"${filter.value}"` : <span class="branch-1 cbranch-no" title="branch not covered" >filter.value</span>
527
+ typeof filter.value == "string" ? `"${filter.value}"` : filter.value
480
528
  &nbsp;
481
529
  expression.push(
482
530
  `doc["${filter.key}"] ${TOKEN_MAP[filter.condition]} ${value}`
@@ -514,21 +562,36 @@ function viewTemplate({ field, tableId, groupBy, filters = [], calculation }) {
514
562
  <span class="missing-if-branch" title="if path not taken" >I</span>if (filters &amp;&amp; filters.length &gt; 0 &amp;&amp; filters[0].conjunction) {
515
563
  <span class="cstat-no" title="statement not covered" > delete filters[0].conjunction</span>
516
564
  }
517
- const parsedFilters = parseFilterExpression(filters)
518
- const filterExpression = parsedFilters ? `&amp;&amp; (${parsedFilters})` : ""
519
- &nbsp;
520
- const emitExpression = parseEmitExpression(field, groupBy)
521
- &nbsp;
522
- const reduction = field &amp;&amp; calculation ? { reduce: `_${calculation}` } : {}
523
565
  &nbsp;
524
- let schema = null
566
+ let schema = null,
567
+ statFilter = null
525
568
  &nbsp;
526
569
  if (calculation) {
527
570
  schema = {
528
571
  ...(groupBy ? GROUP_PROPERTY : FIELD_PROPERTY),
529
572
  ...SCHEMA_MAP[calculation],
530
573
  }
574
+ <span class="missing-if-branch" title="else path not taken" >E</span>if (
575
+ !filters.find(
576
+ filter =&gt;
577
+ filter.key === field &amp;&amp; <span class="branch-1 cbranch-no" title="branch not covered" >filter.condition === CONDITIONS.NOT_EMPTY</span>
578
+ )
579
+ ) {
580
+ statFilter = parseFilterExpression([
581
+ { key: field, condition: CONDITIONS.NOT_EMPTY },
582
+ ])
583
+ }
531
584
  }
585
+ &nbsp;
586
+ const parsedFilters = parseFilterExpression(filters)
587
+ const filterExpression = parsedFilters ? `&amp;&amp; (${parsedFilters})` : ""
588
+ &nbsp;
589
+ const emitExpression = parseEmitExpression(field, groupBy)
590
+ const tableExpression = `doc.tableId === "${tableId}"`
591
+ const coreExpression = statFilter
592
+ ? `(${tableExpression} &amp;&amp; ${statFilter})`
593
+ : tableExpression
594
+ const reduction = field &amp;&amp; calculation ? { reduce: `_${calculation}` } : {}
532
595
  &nbsp;
533
596
  return {
534
597
  meta: {
@@ -540,7 +603,7 @@ function viewTemplate({ field, tableId, groupBy, filters = [], calculation }) {
540
603
  calculation,
541
604
  },
542
605
  map: `function (doc) {
543
- if (doc.tableId === "${tableId}" ${filterExpression}) {
606
+ if (${coreExpression} ${filterExpression}) {
544
607
  ${emitExpression}
545
608
  }
546
609
  }`,
@@ -556,7 +619,7 @@ module.exports = viewTemplate
556
619
  <div class='footer quiet pad2 space-top1 center small'>
557
620
  Code coverage generated by
558
621
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
559
- at Fri May 13 2022 09:10:38 GMT+0000 (Coordinated Universal Time)
622
+ at Mon May 16 2022 16:48:23 GMT+0000 (Coordinated Universal Time)
560
623
  </div>
561
624
  <script src="../../../prettify.js"></script>
562
625
  <script>
@@ -409,7 +409,7 @@ exports.trigger = async ctx =&gt; {
409
409
  <div class='footer quiet pad2 space-top1 center small'>
410
410
  Code coverage generated by
411
411
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
412
- at Fri May 13 2022 09:10:38 GMT+0000 (Coordinated Universal Time)
412
+ at Mon May 16 2022 16:48:23 GMT+0000 (Coordinated Universal Time)
413
413
  </div>
414
414
  <script src="../../prettify.js"></script>
415
415
  <script>
@@ -101,7 +101,7 @@
101
101
  <div class='footer quiet pad2 space-top1 center small'>
102
102
  Code coverage generated by
103
103
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
104
- at Fri May 13 2022 09:10:38 GMT+0000 (Coordinated Universal Time)
104
+ at Mon May 16 2022 16:48:23 GMT+0000 (Coordinated Universal Time)
105
105
  </div>
106
106
  <script src="../prettify.js"></script>
107
107
  <script>
@@ -349,7 +349,7 @@ module.exports = router
349
349
  <div class='footer quiet pad2 space-top1 center small'>
350
350
  Code coverage generated by
351
351
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
352
- at Fri May 13 2022 09:10:38 GMT+0000 (Coordinated Universal Time)
352
+ at Mon May 16 2022 16:48:23 GMT+0000 (Coordinated Universal Time)
353
353
  </div>
354
354
  <script src="../prettify.js"></script>
355
355
  <script>
@@ -100,7 +100,7 @@ module.exports = router
100
100
  <div class='footer quiet pad2 space-top1 center small'>
101
101
  Code coverage generated by
102
102
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
103
- at Fri May 13 2022 09:10:38 GMT+0000 (Coordinated Universal Time)
103
+ at Mon May 16 2022 16:48:23 GMT+0000 (Coordinated Universal Time)
104
104
  </div>
105
105
  <script src="../../prettify.js"></script>
106
106
  <script>
@@ -106,7 +106,7 @@ module.exports = router
106
106
  <div class='footer quiet pad2 space-top1 center small'>
107
107
  Code coverage generated by
108
108
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
109
- at Fri May 13 2022 09:10:38 GMT+0000 (Coordinated Universal Time)
109
+ at Mon May 16 2022 16:48:23 GMT+0000 (Coordinated Universal Time)
110
110
  </div>
111
111
  <script src="../../prettify.js"></script>
112
112
  <script>
@@ -94,7 +94,7 @@ module.exports = router
94
94
  <div class='footer quiet pad2 space-top1 center small'>
95
95
  Code coverage generated by
96
96
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
97
- at Fri May 13 2022 09:10:38 GMT+0000 (Coordinated Universal Time)
97
+ at Mon May 16 2022 16:48:23 GMT+0000 (Coordinated Universal Time)
98
98
  </div>
99
99
  <script src="../../prettify.js"></script>
100
100
  <script>
@@ -295,7 +295,7 @@ module.exports = router
295
295
  <div class='footer quiet pad2 space-top1 center small'>
296
296
  Code coverage generated by
297
297
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
298
- at Fri May 13 2022 09:10:38 GMT+0000 (Coordinated Universal Time)
298
+ at Mon May 16 2022 16:48:23 GMT+0000 (Coordinated Universal Time)
299
299
  </div>
300
300
  <script src="../../prettify.js"></script>
301
301
  <script>
@@ -100,7 +100,7 @@ module.exports = router
100
100
  <div class='footer quiet pad2 space-top1 center small'>
101
101
  Code coverage generated by
102
102
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
103
- at Fri May 13 2022 09:10:38 GMT+0000 (Coordinated Universal Time)
103
+ at Mon May 16 2022 16:48:23 GMT+0000 (Coordinated Universal Time)
104
104
  </div>
105
105
  <script src="../../prettify.js"></script>
106
106
  <script>
@@ -112,7 +112,7 @@ module.exports = router
112
112
  <div class='footer quiet pad2 space-top1 center small'>
113
113
  Code coverage generated by
114
114
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
115
- at Fri May 13 2022 09:10:38 GMT+0000 (Coordinated Universal Time)
115
+ at Mon May 16 2022 16:48:23 GMT+0000 (Coordinated Universal Time)
116
116
  </div>
117
117
  <script src="../../prettify.js"></script>
118
118
  <script>
@@ -112,7 +112,7 @@ module.exports = router
112
112
  <div class='footer quiet pad2 space-top1 center small'>
113
113
  Code coverage generated by
114
114
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
115
- at Fri May 13 2022 09:10:38 GMT+0000 (Coordinated Universal Time)
115
+ at Mon May 16 2022 16:48:23 GMT+0000 (Coordinated Universal Time)
116
116
  </div>
117
117
  <script src="../../prettify.js"></script>
118
118
  <script>
@@ -223,7 +223,7 @@ module.exports = router
223
223
  <div class='footer quiet pad2 space-top1 center small'>
224
224
  Code coverage generated by
225
225
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
226
- at Fri May 13 2022 09:10:38 GMT+0000 (Coordinated Universal Time)
226
+ at Mon May 16 2022 16:48:23 GMT+0000 (Coordinated Universal Time)
227
227
  </div>
228
228
  <script src="../../prettify.js"></script>
229
229
  <script>
@@ -121,7 +121,7 @@ module.exports = router
121
121
  <div class='footer quiet pad2 space-top1 center small'>
122
122
  Code coverage generated by
123
123
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
124
- at Fri May 13 2022 09:10:38 GMT+0000 (Coordinated Universal Time)
124
+ at Mon May 16 2022 16:48:23 GMT+0000 (Coordinated Universal Time)
125
125
  </div>
126
126
  <script src="../../prettify.js"></script>
127
127
  <script>
@@ -148,7 +148,7 @@ module.exports = router
148
148
  <div class='footer quiet pad2 space-top1 center small'>
149
149
  Code coverage generated by
150
150
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
151
- at Fri May 13 2022 09:10:38 GMT+0000 (Coordinated Universal Time)
151
+ at Mon May 16 2022 16:48:23 GMT+0000 (Coordinated Universal Time)
152
152
  </div>
153
153
  <script src="../../prettify.js"></script>
154
154
  <script>
@@ -461,7 +461,7 @@
461
461
  <div class='footer quiet pad2 space-top1 center small'>
462
462
  Code coverage generated by
463
463
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
464
- at Fri May 13 2022 09:10:38 GMT+0000 (Coordinated Universal Time)
464
+ at Mon May 16 2022 16:48:23 GMT+0000 (Coordinated Universal Time)
465
465
  </div>
466
466
  <script src="../../prettify.js"></script>
467
467
  <script>
@@ -106,7 +106,7 @@ module.exports = router
106
106
  <div class='footer quiet pad2 space-top1 center small'>
107
107
  Code coverage generated by
108
108
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
109
- at Fri May 13 2022 09:10:38 GMT+0000 (Coordinated Universal Time)
109
+ at Mon May 16 2022 16:48:23 GMT+0000 (Coordinated Universal Time)
110
110
  </div>
111
111
  <script src="../../prettify.js"></script>
112
112
  <script>
@@ -118,7 +118,7 @@ module.exports = router
118
118
  <div class='footer quiet pad2 space-top1 center small'>
119
119
  Code coverage generated by
120
120
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
121
- at Fri May 13 2022 09:10:38 GMT+0000 (Coordinated Universal Time)
121
+ at Mon May 16 2022 16:48:23 GMT+0000 (Coordinated Universal Time)
122
122
  </div>
123
123
  <script src="../../prettify.js"></script>
124
124
  <script>
@@ -184,7 +184,7 @@ module.exports = router
184
184
  <div class='footer quiet pad2 space-top1 center small'>
185
185
  Code coverage generated by
186
186
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
187
- at Fri May 13 2022 09:10:38 GMT+0000 (Coordinated Universal Time)
187
+ at Mon May 16 2022 16:48:23 GMT+0000 (Coordinated Universal Time)
188
188
  </div>
189
189
  <script src="../../prettify.js"></script>
190
190
  <script>
@@ -112,7 +112,7 @@ module.exports = router
112
112
  <div class='footer quiet pad2 space-top1 center small'>
113
113
  Code coverage generated by
114
114
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
115
- at Fri May 13 2022 09:10:38 GMT+0000 (Coordinated Universal Time)
115
+ at Mon May 16 2022 16:48:23 GMT+0000 (Coordinated Universal Time)
116
116
  </div>
117
117
  <script src="../../prettify.js"></script>
118
118
  <script>
@@ -169,7 +169,7 @@ module.exports = router
169
169
  <div class='footer quiet pad2 space-top1 center small'>
170
170
  Code coverage generated by
171
171
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
172
- at Fri May 13 2022 09:10:38 GMT+0000 (Coordinated Universal Time)
172
+ at Mon May 16 2022 16:48:23 GMT+0000 (Coordinated Universal Time)
173
173
  </div>
174
174
  <script src="../../prettify.js"></script>
175
175
  <script>
@@ -262,7 +262,7 @@ module.exports = router
262
262
  <div class='footer quiet pad2 space-top1 center small'>
263
263
  Code coverage generated by
264
264
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
265
- at Fri May 13 2022 09:10:38 GMT+0000 (Coordinated Universal Time)
265
+ at Mon May 16 2022 16:48:23 GMT+0000 (Coordinated Universal Time)
266
266
  </div>
267
267
  <script src="../../prettify.js"></script>
268
268
  <script>
@@ -115,7 +115,7 @@ module.exports = router
115
115
  <div class='footer quiet pad2 space-top1 center small'>
116
116
  Code coverage generated by
117
117
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
118
- at Fri May 13 2022 09:10:38 GMT+0000 (Coordinated Universal Time)
118
+ at Mon May 16 2022 16:48:23 GMT+0000 (Coordinated Universal Time)
119
119
  </div>
120
120
  <script src="../../prettify.js"></script>
121
121
  <script>
@@ -112,7 +112,7 @@ module.exports = router
112
112
  <div class='footer quiet pad2 space-top1 center small'>
113
113
  Code coverage generated by
114
114
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
115
- at Fri May 13 2022 09:10:38 GMT+0000 (Coordinated Universal Time)
115
+ at Mon May 16 2022 16:48:23 GMT+0000 (Coordinated Universal Time)
116
116
  </div>
117
117
  <script src="../../prettify.js"></script>
118
118
  <script>
@@ -124,7 +124,7 @@ module.exports = router
124
124
  <div class='footer quiet pad2 space-top1 center small'>
125
125
  Code coverage generated by
126
126
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
127
- at Fri May 13 2022 09:10:38 GMT+0000 (Coordinated Universal Time)
127
+ at Mon May 16 2022 16:48:23 GMT+0000 (Coordinated Universal Time)
128
128
  </div>
129
129
  <script src="../../prettify.js"></script>
130
130
  <script>
@@ -100,7 +100,7 @@ const router = <span class="cstat-no" title="statement not covered" >Router()</s
100
100
  <div class='footer quiet pad2 space-top1 center small'>
101
101
  Code coverage generated by
102
102
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
103
- at Fri May 13 2022 09:10:38 GMT+0000 (Coordinated Universal Time)
103
+ at Mon May 16 2022 16:48:23 GMT+0000 (Coordinated Universal Time)
104
104
  </div>
105
105
  <script src="../../prettify.js"></script>
106
106
  <script>
@@ -658,7 +658,7 @@ module.exports = router
658
658
  <div class='footer quiet pad2 space-top1 center small'>
659
659
  Code coverage generated by
660
660
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
661
- at Fri May 13 2022 09:10:38 GMT+0000 (Coordinated Universal Time)
661
+ at Mon May 16 2022 16:48:23 GMT+0000 (Coordinated Universal Time)
662
662
  </div>
663
663
  <script src="../../prettify.js"></script>
664
664
  <script>
@@ -118,7 +118,7 @@ module.exports = router
118
118
  <div class='footer quiet pad2 space-top1 center small'>
119
119
  Code coverage generated by
120
120
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
121
- at Fri May 13 2022 09:10:38 GMT+0000 (Coordinated Universal Time)
121
+ at Mon May 16 2022 16:48:23 GMT+0000 (Coordinated Universal Time)
122
122
  </div>
123
123
  <script src="../../prettify.js"></script>
124
124
  <script>
@@ -229,7 +229,7 @@ module.exports = router
229
229
  <div class='footer quiet pad2 space-top1 center small'>
230
230
  Code coverage generated by
231
231
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
232
- at Fri May 13 2022 09:10:38 GMT+0000 (Coordinated Universal Time)
232
+ at Mon May 16 2022 16:48:23 GMT+0000 (Coordinated Universal Time)
233
233
  </div>
234
234
  <script src="../../prettify.js"></script>
235
235
  <script>
@@ -101,7 +101,7 @@
101
101
  <div class='footer quiet pad2 space-top1 center small'>
102
102
  Code coverage generated by
103
103
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
104
- at Fri May 13 2022 09:10:38 GMT+0000 (Coordinated Universal Time)
104
+ at Mon May 16 2022 16:48:23 GMT+0000 (Coordinated Universal Time)
105
105
  </div>
106
106
  <script src="../../../prettify.js"></script>
107
107
  <script>
@@ -724,7 +724,7 @@ exports.applicationValidator = () =&gt; {
724
724
  <div class='footer quiet pad2 space-top1 center small'>
725
725
  Code coverage generated by
726
726
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
727
- at Fri May 13 2022 09:10:38 GMT+0000 (Coordinated Universal Time)
727
+ at Mon May 16 2022 16:48:23 GMT+0000 (Coordinated Universal Time)
728
728
  </div>
729
729
  <script src="../../../prettify.js"></script>
730
730
  <script>
@@ -163,7 +163,7 @@ module.exports = router
163
163
  <div class='footer quiet pad2 space-top1 center small'>
164
164
  Code coverage generated by
165
165
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
166
- at Fri May 13 2022 09:10:38 GMT+0000 (Coordinated Universal Time)
166
+ at Mon May 16 2022 16:48:23 GMT+0000 (Coordinated Universal Time)
167
167
  </div>
168
168
  <script src="../../prettify.js"></script>
169
169
  <script>