@budibase/server 1.2.28-alpha.0 → 1.2.28

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 (193) hide show
  1. package/__mocks__/node-fetch.ts +1 -8
  2. package/builder/assets/{index.f1c7e247.css → index.08dd0c5e.css} +1 -1
  3. package/builder/assets/index.14246e6e.js +975 -0
  4. package/builder/index.html +2 -2
  5. package/coverage/clover.xml +1202 -1206
  6. package/coverage/coverage-final.json +116 -116
  7. package/coverage/lcov-report/api/controllers/apikeys.js.html +6 -6
  8. package/coverage/lcov-report/api/controllers/auth.js.html +7 -7
  9. package/coverage/lcov-report/api/controllers/automation.js.html +29 -29
  10. package/coverage/lcov-report/api/controllers/backup.js.html +5 -5
  11. package/coverage/lcov-report/api/controllers/cloud.js.html +11 -11
  12. package/coverage/lcov-report/api/controllers/component.js.html +5 -5
  13. package/coverage/lcov-report/api/controllers/datasource.js.html +17 -17
  14. package/coverage/lcov-report/api/controllers/dev.js.html +20 -20
  15. package/coverage/lcov-report/api/controllers/index.html +1 -1
  16. package/coverage/lcov-report/api/controllers/integration.js.html +8 -8
  17. package/coverage/lcov-report/api/controllers/layout.js.html +7 -7
  18. package/coverage/lcov-report/api/controllers/metadata.js.html +9 -9
  19. package/coverage/lcov-report/api/controllers/migrations.js.html +4 -4
  20. package/coverage/lcov-report/api/controllers/permission.js.html +15 -15
  21. package/coverage/lcov-report/api/controllers/query/index.html +1 -1
  22. package/coverage/lcov-report/api/controllers/query/validation.js.html +10 -10
  23. package/coverage/lcov-report/api/controllers/role.js.html +10 -10
  24. package/coverage/lcov-report/api/controllers/routing.js.html +9 -9
  25. package/coverage/lcov-report/api/controllers/row/external.js.html +19 -19
  26. package/coverage/lcov-report/api/controllers/row/index.html +25 -25
  27. package/coverage/lcov-report/api/controllers/row/internal.js.html +30 -30
  28. package/coverage/lcov-report/api/controllers/row/internalSearch.js.html +184 -202
  29. package/coverage/lcov-report/api/controllers/row/staticFormula.js.html +10 -10
  30. package/coverage/lcov-report/api/controllers/row/utils.js.html +7 -16
  31. package/coverage/lcov-report/api/controllers/screen.js.html +8 -8
  32. package/coverage/lcov-report/api/controllers/script.js.html +4 -4
  33. package/coverage/lcov-report/api/controllers/table/bulkFormula.js.html +9 -9
  34. package/coverage/lcov-report/api/controllers/table/external.js.html +14 -14
  35. package/coverage/lcov-report/api/controllers/table/index.html +1 -1
  36. package/coverage/lcov-report/api/controllers/table/index.js.html +15 -15
  37. package/coverage/lcov-report/api/controllers/templates.js.html +6 -6
  38. package/coverage/lcov-report/api/controllers/user.js.html +1 -1
  39. package/coverage/lcov-report/api/controllers/view/exporters.js.html +4 -4
  40. package/coverage/lcov-report/api/controllers/view/index.html +1 -1
  41. package/coverage/lcov-report/api/controllers/view/index.js.html +20 -20
  42. package/coverage/lcov-report/api/controllers/view/utils.js.html +13 -13
  43. package/coverage/lcov-report/api/controllers/view/viewBuilder.js.html +8 -8
  44. package/coverage/lcov-report/api/controllers/webhook.js.html +15 -15
  45. package/coverage/lcov-report/api/index.html +1 -1
  46. package/coverage/lcov-report/api/index.js.html +30 -30
  47. package/coverage/lcov-report/api/routes/analytics.js.html +11 -8
  48. package/coverage/lcov-report/api/routes/apikeys.js.html +8 -8
  49. package/coverage/lcov-report/api/routes/auth.js.html +6 -6
  50. package/coverage/lcov-report/api/routes/automation.js.html +11 -11
  51. package/coverage/lcov-report/api/routes/backup.js.html +8 -8
  52. package/coverage/lcov-report/api/routes/cloud.js.html +8 -8
  53. package/coverage/lcov-report/api/routes/component.js.html +8 -8
  54. package/coverage/lcov-report/api/routes/datasource.js.html +9 -9
  55. package/coverage/lcov-report/api/routes/deploy.js.html +8 -8
  56. package/coverage/lcov-report/api/routes/dev.js.html +13 -13
  57. package/coverage/lcov-report/api/routes/index.html +7 -7
  58. package/coverage/lcov-report/api/routes/integration.js.html +8 -8
  59. package/coverage/lcov-report/api/routes/layout.js.html +8 -8
  60. package/coverage/lcov-report/api/routes/metadata.js.html +9 -9
  61. package/coverage/lcov-report/api/routes/migrations.js.html +7 -7
  62. package/coverage/lcov-report/api/routes/permission.js.html +9 -9
  63. package/coverage/lcov-report/api/routes/query.js.html +10 -10
  64. package/coverage/lcov-report/api/routes/role.js.html +9 -9
  65. package/coverage/lcov-report/api/routes/routing.js.html +8 -8
  66. package/coverage/lcov-report/api/routes/screen.js.html +9 -9
  67. package/coverage/lcov-report/api/routes/script.js.html +1 -1
  68. package/coverage/lcov-report/api/routes/table.js.html +10 -10
  69. package/coverage/lcov-report/api/routes/templates.js.html +8 -8
  70. package/coverage/lcov-report/api/routes/user.js.html +8 -8
  71. package/coverage/lcov-report/api/routes/utils/index.html +1 -1
  72. package/coverage/lcov-report/api/routes/utils/validators.js.html +37 -37
  73. package/coverage/lcov-report/api/routes/view.js.html +10 -10
  74. package/coverage/lcov-report/api/routes/webhook.js.html +9 -9
  75. package/coverage/lcov-report/automations/actions.js.html +25 -25
  76. package/coverage/lcov-report/automations/automationUtils.js.html +8 -8
  77. package/coverage/lcov-report/automations/bullboard.js.html +17 -17
  78. package/coverage/lcov-report/automations/index.html +1 -1
  79. package/coverage/lcov-report/automations/index.js.html +12 -12
  80. package/coverage/lcov-report/automations/steps/bash.js.html +7 -7
  81. package/coverage/lcov-report/automations/steps/delay.js.html +4 -4
  82. package/coverage/lcov-report/automations/steps/discord.js.html +7 -7
  83. package/coverage/lcov-report/automations/steps/executeQuery.js.html +6 -6
  84. package/coverage/lcov-report/automations/steps/executeScript.js.html +6 -6
  85. package/coverage/lcov-report/automations/steps/filter.js.html +7 -7
  86. package/coverage/lcov-report/automations/steps/index.html +1 -1
  87. package/coverage/lcov-report/automations/steps/integromat.js.html +5 -5
  88. package/coverage/lcov-report/automations/steps/loop.js.html +2 -2
  89. package/coverage/lcov-report/automations/steps/outgoingWebhook.js.html +8 -8
  90. package/coverage/lcov-report/automations/steps/queryRows.js.html +10 -10
  91. package/coverage/lcov-report/automations/steps/sendSmtpEmail.js.html +5 -5
  92. package/coverage/lcov-report/automations/steps/serverLog.js.html +3 -3
  93. package/coverage/lcov-report/automations/steps/slack.js.html +5 -5
  94. package/coverage/lcov-report/automations/steps/updateRow.js.html +6 -6
  95. package/coverage/lcov-report/automations/steps/utils.js.html +3 -3
  96. package/coverage/lcov-report/automations/steps/zapier.js.html +5 -5
  97. package/coverage/lcov-report/automations/triggerInfo/app.js.html +2 -2
  98. package/coverage/lcov-report/automations/triggerInfo/cron.js.html +2 -2
  99. package/coverage/lcov-report/automations/triggerInfo/index.html +1 -1
  100. package/coverage/lcov-report/automations/triggerInfo/index.js.html +8 -8
  101. package/coverage/lcov-report/automations/triggerInfo/rowDeleted.js.html +2 -2
  102. package/coverage/lcov-report/automations/triggerInfo/rowSaved.js.html +2 -2
  103. package/coverage/lcov-report/automations/triggerInfo/rowUpdated.js.html +2 -2
  104. package/coverage/lcov-report/automations/triggerInfo/webhook.js.html +2 -2
  105. package/coverage/lcov-report/automations/triggers.js.html +18 -18
  106. package/coverage/lcov-report/constants/index.html +1 -1
  107. package/coverage/lcov-report/constants/index.js.html +1 -1
  108. package/coverage/lcov-report/constants/layouts.js.html +5 -5
  109. package/coverage/lcov-report/constants/screens.js.html +4 -4
  110. package/coverage/lcov-report/db/inMemoryView.js.html +5 -5
  111. package/coverage/lcov-report/db/index.html +1 -1
  112. package/coverage/lcov-report/db/index.js.html +9 -9
  113. package/coverage/lcov-report/db/linkedRows/LinkController.js.html +7 -7
  114. package/coverage/lcov-report/db/linkedRows/index.html +1 -1
  115. package/coverage/lcov-report/db/linkedRows/index.js.html +18 -18
  116. package/coverage/lcov-report/db/linkedRows/linkUtils.js.html +13 -13
  117. package/coverage/lcov-report/db/newid.js.html +2 -2
  118. package/coverage/lcov-report/db/utils.js.html +11 -11
  119. package/coverage/lcov-report/events/AutomationEmitter.js.html +1 -1
  120. package/coverage/lcov-report/events/index.html +1 -1
  121. package/coverage/lcov-report/events/index.js.html +6 -6
  122. package/coverage/lcov-report/events/utils.js.html +3 -3
  123. package/coverage/lcov-report/index.html +24 -24
  124. package/coverage/lcov-report/integrations/tests/TestConfiguration.js.html +1 -1
  125. package/coverage/lcov-report/integrations/tests/index.html +1 -1
  126. package/coverage/lcov-report/middleware/appInfo.js.html +5 -5
  127. package/coverage/lcov-report/middleware/builder.js.html +9 -9
  128. package/coverage/lcov-report/middleware/currentapp.js.html +49 -49
  129. package/coverage/lcov-report/middleware/index.html +1 -1
  130. package/coverage/lcov-report/middleware/joi-validator.js.html +1 -1
  131. package/coverage/lcov-report/middleware/publicApi.js.html +5 -5
  132. package/coverage/lcov-report/middleware/resourceId.js.html +22 -22
  133. package/coverage/lcov-report/middleware/selfhost.js.html +1 -1
  134. package/coverage/lcov-report/middleware/utils.js.html +3 -3
  135. package/coverage/lcov-report/utilities/budibaseDir.js.html +3 -3
  136. package/coverage/lcov-report/utilities/centralPath.js.html +4 -4
  137. package/coverage/lcov-report/utilities/csvParser.js.html +6 -6
  138. package/coverage/lcov-report/utilities/global.js.html +16 -16
  139. package/coverage/lcov-report/utilities/index.html +1 -1
  140. package/coverage/lcov-report/utilities/index.js.html +3 -3
  141. package/coverage/lcov-report/utilities/queue/inMemoryQueue.js.html +9 -9
  142. package/coverage/lcov-report/utilities/queue/index.html +1 -1
  143. package/coverage/lcov-report/utilities/routing/index.html +1 -1
  144. package/coverage/lcov-report/utilities/routing/index.js.html +6 -6
  145. package/coverage/lcov-report/utilities/rowProcessor/index.html +1 -1
  146. package/coverage/lcov-report/utilities/rowProcessor/index.js.html +20 -20
  147. package/coverage/lcov-report/utilities/rowProcessor/utils.js.html +6 -6
  148. package/coverage/lcov-report/utilities/scriptRunner.js.html +5 -5
  149. package/coverage/lcov-report/utilities/security.js.html +8 -8
  150. package/coverage/lcov-report/utilities/statusCodes.js.html +1 -1
  151. package/coverage/lcov-report/utilities/usageQuota/index.html +1 -1
  152. package/coverage/lcov-report/utilities/usageQuota/rows.js.html +7 -7
  153. package/coverage/lcov-report/utilities/usageQuota/usageQuoteReset.js.html +1 -1
  154. package/coverage/lcov-report/utilities/users.js.html +1 -1
  155. package/coverage/lcov-report/utilities/workerRequests.js.html +18 -18
  156. package/coverage/lcov.info +1520 -1524
  157. package/dist/api/controllers/analytics.js +27 -1
  158. package/dist/api/controllers/row/internalSearch.js +0 -5
  159. package/dist/api/controllers/row/utils.js +1 -3
  160. package/dist/api/controllers/static/index.js +1 -11
  161. package/dist/api/controllers/table/external.js +1 -1
  162. package/dist/api/routes/analytics.js +1 -0
  163. package/dist/automations/logging/index.js +0 -3
  164. package/dist/integrations/base/sql.js +4 -5
  165. package/dist/integrations/base/utils.js +27 -13
  166. package/dist/integrations/microsoftSqlServer.js +2 -5
  167. package/dist/integrations/mysql.js +2 -2
  168. package/dist/integrations/postgres.js +2 -5
  169. package/dist/package.json +1 -1
  170. package/dist/tests/utilities/TestConfiguration.js +8 -11
  171. package/dist/tsconfig.build.tsbuildinfo +1 -1
  172. package/package.json +7 -7
  173. package/src/api/controllers/analytics.ts +27 -0
  174. package/src/api/controllers/row/internalSearch.js +0 -6
  175. package/src/api/controllers/row/utils.js +1 -4
  176. package/src/api/controllers/static/index.ts +1 -11
  177. package/src/api/controllers/table/external.js +1 -1
  178. package/src/api/routes/analytics.js +1 -0
  179. package/src/api/routes/tests/analytics.spec.js +59 -0
  180. package/src/api/routes/tests/static.spec.js +0 -10
  181. package/src/automations/logging/index.ts +0 -3
  182. package/src/integrations/base/sql.ts +4 -5
  183. package/src/integrations/base/utils.ts +19 -9
  184. package/src/integrations/microsoftSqlServer.ts +2 -3
  185. package/src/integrations/mysql.ts +1 -1
  186. package/src/integrations/postgres.ts +1 -2
  187. package/src/integrations/queries/sql.ts +1 -0
  188. package/src/integrations/tests/sql.spec.js +1 -1
  189. package/src/tests/utilities/TestConfiguration.js +10 -17
  190. package/builder/assets/index.66b1c771.js +0 -977
  191. package/dist/integrations/base/query.js +0 -27
  192. package/src/api/routes/tests/internalSearch.spec.js +0 -157
  193. package/src/integrations/base/query.ts +0 -17
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">79.16% </span>
26
+ <span class="strong">59.25% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>152/192</span>
28
+ <span class='fraction'>112/189</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">68.06% </span>
33
+ <span class="strong">39.49% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>81/119</span>
35
+ <span class='fraction'>47/119</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">70.27% </span>
40
+ <span class="strong">48.64% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>26/37</span>
42
+ <span class='fraction'>18/37</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">78.72% </span>
47
+ <span class="strong">60% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>148/188</span>
49
+ <span class='fraction'>111/185</span>
50
50
  </div>
51
51
 
52
52
 
@@ -523,14 +523,7 @@
523
523
  <a name='L458'></a><a href='#L458'>458</a>
524
524
  <a name='L459'></a><a href='#L459'>459</a>
525
525
  <a name='L460'></a><a href='#L460'>460</a>
526
- <a name='L461'></a><a href='#L461'>461</a>
527
- <a name='L462'></a><a href='#L462'>462</a>
528
- <a name='L463'></a><a href='#L463'>463</a>
529
- <a name='L464'></a><a href='#L464'>464</a>
530
- <a name='L465'></a><a href='#L465'>465</a>
531
- <a name='L466'></a><a href='#L466'>466</a>
532
- <a name='L467'></a><a href='#L467'>467</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">44x</span>
533
- <span class="cline-any cline-yes">44x</span>
526
+ <a name='L461'></a><a href='#L461'>461</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">44x</span>
534
527
  <span class="cline-any cline-yes">44x</span>
535
528
  <span class="cline-any cline-yes">44x</span>
536
529
  <span class="cline-any cline-yes">44x</span>
@@ -541,7 +534,7 @@
541
534
  <span class="cline-any cline-neutral">&nbsp;</span>
542
535
  <span class="cline-any cline-neutral">&nbsp;</span>
543
536
  <span class="cline-any cline-neutral">&nbsp;</span>
544
- <span class="cline-any cline-yes">14x</span>
537
+ <span class="cline-any cline-yes">1x</span>
545
538
  <span class="cline-any cline-neutral">&nbsp;</span>
546
539
  <span class="cline-any cline-neutral">&nbsp;</span>
547
540
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -554,54 +547,54 @@
554
547
  <span class="cline-any cline-neutral">&nbsp;</span>
555
548
  <span class="cline-any cline-neutral">&nbsp;</span>
556
549
  <span class="cline-any cline-neutral">&nbsp;</span>
557
- <span class="cline-any cline-yes">14x</span>
558
- <span class="cline-any cline-yes">14x</span>
559
- <span class="cline-any cline-yes">14x</span>
560
- <span class="cline-any cline-yes">14x</span>
561
- <span class="cline-any cline-yes">14x</span>
550
+ <span class="cline-any cline-yes">1x</span>
551
+ <span class="cline-any cline-yes">1x</span>
552
+ <span class="cline-any cline-yes">1x</span>
553
+ <span class="cline-any cline-yes">1x</span>
554
+ <span class="cline-any cline-yes">1x</span>
562
555
  <span class="cline-any cline-neutral">&nbsp;</span>
563
556
  <span class="cline-any cline-neutral">&nbsp;</span>
564
557
  <span class="cline-any cline-neutral">&nbsp;</span>
565
- <span class="cline-any cline-yes">14x</span>
566
- <span class="cline-any cline-yes">14x</span>
558
+ <span class="cline-any cline-yes">1x</span>
559
+ <span class="cline-any cline-yes">1x</span>
567
560
  <span class="cline-any cline-neutral">&nbsp;</span>
568
561
  <span class="cline-any cline-neutral">&nbsp;</span>
569
562
  <span class="cline-any cline-neutral">&nbsp;</span>
570
- <span class="cline-any cline-yes">27x</span>
571
- <span class="cline-any cline-yes">27x</span>
563
+ <span class="cline-any cline-yes">1x</span>
564
+ <span class="cline-any cline-yes">1x</span>
572
565
  <span class="cline-any cline-neutral">&nbsp;</span>
573
566
  <span class="cline-any cline-neutral">&nbsp;</span>
574
567
  <span class="cline-any cline-neutral">&nbsp;</span>
575
- <span class="cline-any cline-yes">27x</span>
576
- <span class="cline-any cline-yes">27x</span>
568
+ <span class="cline-any cline-yes">1x</span>
569
+ <span class="cline-any cline-yes">1x</span>
577
570
  <span class="cline-any cline-neutral">&nbsp;</span>
578
- <span class="cline-any cline-yes">27x</span>
571
+ <span class="cline-any cline-yes">1x</span>
579
572
  <span class="cline-any cline-neutral">&nbsp;</span>
580
573
  <span class="cline-any cline-neutral">&nbsp;</span>
581
574
  <span class="cline-any cline-neutral">&nbsp;</span>
582
- <span class="cline-any cline-yes">14x</span>
583
575
  <span class="cline-any cline-yes">1x</span>
576
+ <span class="cline-any cline-no">&nbsp;</span>
584
577
  <span class="cline-any cline-neutral">&nbsp;</span>
585
- <span class="cline-any cline-yes">14x</span>
578
+ <span class="cline-any cline-yes">1x</span>
586
579
  <span class="cline-any cline-neutral">&nbsp;</span>
587
580
  <span class="cline-any cline-neutral">&nbsp;</span>
588
581
  <span class="cline-any cline-neutral">&nbsp;</span>
589
- <span class="cline-any cline-yes">14x</span>
590
- <span class="cline-any cline-yes">13x</span>
582
+ <span class="cline-any cline-yes">1x</span>
583
+ <span class="cline-any cline-no">&nbsp;</span>
591
584
  <span class="cline-any cline-neutral">&nbsp;</span>
592
- <span class="cline-any cline-yes">14x</span>
585
+ <span class="cline-any cline-yes">1x</span>
593
586
  <span class="cline-any cline-neutral">&nbsp;</span>
594
587
  <span class="cline-any cline-neutral">&nbsp;</span>
595
588
  <span class="cline-any cline-neutral">&nbsp;</span>
596
- <span class="cline-any cline-yes">14x</span>
597
- <span class="cline-any cline-yes">13x</span>
589
+ <span class="cline-any cline-yes">1x</span>
590
+ <span class="cline-any cline-no">&nbsp;</span>
598
591
  <span class="cline-any cline-neutral">&nbsp;</span>
599
- <span class="cline-any cline-yes">14x</span>
592
+ <span class="cline-any cline-yes">1x</span>
600
593
  <span class="cline-any cline-neutral">&nbsp;</span>
601
594
  <span class="cline-any cline-neutral">&nbsp;</span>
602
595
  <span class="cline-any cline-neutral">&nbsp;</span>
603
- <span class="cline-any cline-yes">27x</span>
604
- <span class="cline-any cline-yes">27x</span>
596
+ <span class="cline-any cline-yes">1x</span>
597
+ <span class="cline-any cline-yes">1x</span>
605
598
  <span class="cline-any cline-neutral">&nbsp;</span>
606
599
  <span class="cline-any cline-neutral">&nbsp;</span>
607
600
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -665,117 +658,115 @@
665
658
  <span class="cline-any cline-neutral">&nbsp;</span>
666
659
  <span class="cline-any cline-neutral">&nbsp;</span>
667
660
  <span class="cline-any cline-neutral">&nbsp;</span>
668
- <span class="cline-any cline-yes">118x</span>
661
+ <span class="cline-any cline-yes">2x</span>
669
662
  <span class="cline-any cline-neutral">&nbsp;</span>
670
- <span class="cline-any cline-yes">118x</span>
663
+ <span class="cline-any cline-yes">2x</span>
671
664
  <span class="cline-any cline-neutral">&nbsp;</span>
672
- <span class="cline-any cline-yes">118x</span>
673
- <span class="cline-any cline-yes">57x</span>
665
+ <span class="cline-any cline-yes">2x</span>
666
+ <span class="cline-any cline-yes">1x</span>
674
667
  <span class="cline-any cline-neutral">&nbsp;</span>
675
668
  <span class="cline-any cline-neutral">&nbsp;</span>
676
- <span class="cline-any cline-yes">118x</span>
677
- <span class="cline-any cline-yes">114x</span>
669
+ <span class="cline-any cline-yes">2x</span>
670
+ <span class="cline-any cline-yes">2x</span>
678
671
  <span class="cline-any cline-neutral">&nbsp;</span>
679
672
  <span class="cline-any cline-neutral">&nbsp;</span>
680
- <span class="cline-any cline-yes">118x</span>
681
- <span class="cline-any cline-yes">54x</span>
673
+ <span class="cline-any cline-yes">2x</span>
674
+ <span class="cline-any cline-no">&nbsp;</span>
682
675
  <span class="cline-any cline-neutral">&nbsp;</span>
683
- <span class="cline-any cline-yes">118x</span>
676
+ <span class="cline-any cline-yes">2x</span>
684
677
  <span class="cline-any cline-neutral">&nbsp;</span>
685
678
  <span class="cline-any cline-neutral">&nbsp;</span>
686
679
  <span class="cline-any cline-neutral">&nbsp;</span>
687
- <span class="cline-any cline-yes">27x</span>
688
- <span class="cline-any cline-yes">27x</span>
689
- <span class="cline-any cline-yes">27x</span>
690
- <span class="cline-any cline-yes">27x</span>
680
+ <span class="cline-any cline-yes">1x</span>
681
+ <span class="cline-any cline-yes">1x</span>
682
+ <span class="cline-any cline-yes">1x</span>
683
+ <span class="cline-any cline-yes">1x</span>
691
684
  <span class="cline-any cline-neutral">&nbsp;</span>
692
- <span class="cline-any cline-yes">27x</span>
693
- <span class="cline-any cline-yes">27x</span>
694
- <span class="cline-any cline-yes">27x</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>
695
688
  <span class="cline-any cline-neutral">&nbsp;</span>
696
689
  <span class="cline-any cline-neutral">&nbsp;</span>
697
- <span class="cline-any cline-yes">27x</span>
690
+ <span class="cline-any cline-yes">1x</span>
698
691
  <span class="cline-any cline-neutral">&nbsp;</span>
699
- <span class="cline-any cline-yes">41x</span>
692
+ <span class="cline-any cline-yes">1x</span>
700
693
  <span class="cline-any cline-no">&nbsp;</span>
701
694
  <span class="cline-any cline-neutral">&nbsp;</span>
702
- <span class="cline-any cline-yes">41x</span>
695
+ <span class="cline-any cline-yes">1x</span>
703
696
  <span class="cline-any cline-neutral">&nbsp;</span>
704
697
  <span class="cline-any cline-neutral">&nbsp;</span>
705
- <span class="cline-any cline-yes">27x</span>
706
- <span class="cline-any cline-yes">2x</span>
698
+ <span class="cline-any cline-yes">1x</span>
699
+ <span class="cline-any cline-no">&nbsp;</span>
707
700
  <span class="cline-any cline-no">&nbsp;</span>
708
701
  <span class="cline-any cline-neutral">&nbsp;</span>
709
- <span class="cline-any cline-yes">2x</span>
702
+ <span class="cline-any cline-no">&nbsp;</span>
710
703
  <span class="cline-any cline-neutral">&nbsp;</span>
711
704
  <span class="cline-any cline-neutral">&nbsp;</span>
712
- <span class="cline-any cline-yes">27x</span>
713
- <span class="cline-any cline-yes">2x</span>
705
+ <span class="cline-any cline-yes">1x</span>
706
+ <span class="cline-any cline-no">&nbsp;</span>
714
707
  <span class="cline-any cline-no">&nbsp;</span>
715
708
  <span class="cline-any cline-no">&nbsp;</span>
716
709
  <span class="cline-any cline-neutral">&nbsp;</span>
717
710
  <span class="cline-any cline-no">&nbsp;</span>
718
711
  <span class="cline-any cline-neutral">&nbsp;</span>
719
712
  <span class="cline-any cline-neutral">&nbsp;</span>
720
- <span class="cline-any cline-yes">2x</span>
721
- <span class="cline-any cline-yes">2x</span>
722
- <span class="cline-any cline-yes">2x</span>
723
- <span class="cline-any cline-neutral">&nbsp;</span>
713
+ <span class="cline-any cline-no">&nbsp;</span>
714
+ <span class="cline-any cline-no">&nbsp;</span>
715
+ <span class="cline-any cline-no">&nbsp;</span>
724
716
  <span class="cline-any cline-neutral">&nbsp;</span>
725
717
  <span class="cline-any cline-neutral">&nbsp;</span>
726
718
  <span class="cline-any cline-neutral">&nbsp;</span>
727
- <span class="cline-any cline-yes">2x</span>
728
719
  <span class="cline-any cline-neutral">&nbsp;</span>
720
+ <span class="cline-any cline-no">&nbsp;</span>
729
721
  <span class="cline-any cline-neutral">&nbsp;</span>
730
722
  <span class="cline-any cline-neutral">&nbsp;</span>
731
- <span class="cline-any cline-yes">270x</span>
732
723
  <span class="cline-any cline-neutral">&nbsp;</span>
733
- <span class="cline-any cline-yes">59x</span>
734
- <span class="cline-any cline-yes">59x</span>
724
+ <span class="cline-any cline-yes">10x</span>
725
+ <span class="cline-any cline-yes">1x</span>
735
726
  <span class="cline-any cline-neutral">&nbsp;</span>
736
727
  <span class="cline-any cline-neutral">&nbsp;</span>
737
- <span class="cline-any cline-yes">59x</span>
738
- <span class="cline-any cline-yes">59x</span>
728
+ <span class="cline-any cline-yes">1x</span>
729
+ <span class="cline-any cline-yes">1x</span>
739
730
  <span class="cline-any cline-no">&nbsp;</span>
740
731
  <span class="cline-any cline-neutral">&nbsp;</span>
741
- <span class="cline-any cline-yes">59x</span>
742
- <span class="cline-any cline-yes">55x</span>
732
+ <span class="cline-any cline-yes">1x</span>
733
+ <span class="cline-any cline-yes">1x</span>
743
734
  <span class="cline-any cline-neutral">&nbsp;</span>
744
- <span class="cline-any cline-yes">59x</span>
735
+ <span class="cline-any cline-yes">1x</span>
745
736
  <span class="cline-any cline-neutral">&nbsp;</span>
746
737
  <span class="cline-any cline-neutral">&nbsp;</span>
747
738
  <span class="cline-any cline-neutral">&nbsp;</span>
748
739
  <span class="cline-any cline-neutral">&nbsp;</span>
749
- <span class="cline-any cline-yes">27x</span>
750
- <span class="cline-any cline-yes">27x</span>
751
- <span class="cline-any cline-yes">2x</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-no">&nbsp;</span>
752
743
  <span class="cline-any cline-no">&nbsp;</span>
753
744
  <span class="cline-any cline-neutral">&nbsp;</span>
754
- <span class="cline-any cline-yes">2x</span>
745
+ <span class="cline-any cline-no">&nbsp;</span>
755
746
  <span class="cline-any cline-neutral">&nbsp;</span>
756
747
  <span class="cline-any cline-neutral">&nbsp;</span>
757
748
  <span class="cline-any cline-neutral">&nbsp;</span>
758
- <span class="cline-any cline-yes">2x</span>
749
+ <span class="cline-any cline-no">&nbsp;</span>
759
750
  <span class="cline-any cline-neutral">&nbsp;</span>
760
751
  <span class="cline-any cline-neutral">&nbsp;</span>
761
- <span class="cline-any cline-yes">27x</span>
762
- <span class="cline-any cline-yes">27x</span>
763
- <span class="cline-any cline-yes">2x</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-no">&nbsp;</span>
764
755
  <span class="cline-any cline-no">&nbsp;</span>
765
756
  <span class="cline-any cline-neutral">&nbsp;</span>
766
- <span class="cline-any cline-yes">2x</span>
757
+ <span class="cline-any cline-no">&nbsp;</span>
767
758
  <span class="cline-any cline-no">&nbsp;</span>
768
759
  <span class="cline-any cline-neutral">&nbsp;</span>
769
- <span class="cline-any cline-yes">2x</span>
760
+ <span class="cline-any cline-no">&nbsp;</span>
770
761
  <span class="cline-any cline-no">&nbsp;</span>
771
762
  <span class="cline-any cline-neutral">&nbsp;</span>
772
- <span class="cline-any cline-yes">2x</span>
773
- <span class="cline-any cline-yes">2x</span>
774
- <span class="cline-any cline-yes">2x</span>
763
+ <span class="cline-any cline-no">&nbsp;</span>
764
+ <span class="cline-any cline-no">&nbsp;</span>
765
+ <span class="cline-any cline-no">&nbsp;</span>
775
766
  <span class="cline-any cline-neutral">&nbsp;</span>
776
767
  <span class="cline-any cline-neutral">&nbsp;</span>
777
- <span class="cline-any cline-yes">27x</span>
778
- <span class="cline-any cline-yes">27x</span>
768
+ <span class="cline-any cline-yes">1x</span>
769
+ <span class="cline-any cline-yes">1x</span>
779
770
  <span class="cline-any cline-no">&nbsp;</span>
780
771
  <span class="cline-any cline-no">&nbsp;</span>
781
772
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -786,66 +777,63 @@
786
777
  <span class="cline-any cline-no">&nbsp;</span>
787
778
  <span class="cline-any cline-neutral">&nbsp;</span>
788
779
  <span class="cline-any cline-neutral">&nbsp;</span>
789
- <span class="cline-any cline-yes">27x</span>
790
- <span class="cline-any cline-yes">27x</span>
780
+ <span class="cline-any cline-yes">1x</span>
781
+ <span class="cline-any cline-yes">1x</span>
791
782
  <span class="cline-any cline-neutral">&nbsp;</span>
792
- <span class="cline-any cline-yes">27x</span>
793
- <span class="cline-any cline-yes">27x</span>
794
- <span class="cline-any cline-yes">6x</span>
783
+ <span class="cline-any cline-yes">1x</span>
784
+ <span class="cline-any cline-yes">1x</span>
785
+ <span class="cline-any cline-no">&nbsp;</span>
795
786
  <span class="cline-any cline-no">&nbsp;</span>
796
787
  <span class="cline-any cline-neutral">&nbsp;</span>
797
- <span class="cline-any cline-yes">6x</span>
798
- <span class="cline-any cline-neutral">&nbsp;</span>
788
+ <span class="cline-any cline-no">&nbsp;</span>
799
789
  <span class="cline-any cline-neutral">&nbsp;</span>
800
- <span class="cline-any cline-yes">27x</span>
801
- <span class="cline-any cline-yes">27x</span>
802
790
  <span class="cline-any cline-neutral">&nbsp;</span>
803
- <span class="cline-any cline-yes">27x</span>
804
- <span class="cline-any cline-yes">27x</span>
791
+ <span class="cline-any cline-yes">1x</span>
792
+ <span class="cline-any cline-yes">1x</span>
805
793
  <span class="cline-any cline-neutral">&nbsp;</span>
806
- <span class="cline-any cline-yes">27x</span>
807
- <span class="cline-any cline-yes">27x</span>
794
+ <span class="cline-any cline-yes">1x</span>
795
+ <span class="cline-any cline-yes">1x</span>
808
796
  <span class="cline-any cline-neutral">&nbsp;</span>
809
- <span class="cline-any cline-yes">27x</span>
810
- <span class="cline-any cline-yes">27x</span>
797
+ <span class="cline-any cline-yes">1x</span>
798
+ <span class="cline-any cline-yes">1x</span>
811
799
  <span class="cline-any cline-neutral">&nbsp;</span>
800
+ <span class="cline-any cline-yes">1x</span>
801
+ <span class="cline-any cline-yes">1x</span>
812
802
  <span class="cline-any cline-neutral">&nbsp;</span>
813
- <span class="cline-any cline-yes">27x</span>
814
- <span class="cline-any cline-yes">27x</span>
815
- <span class="cline-any cline-yes">27x</span>
816
- <span class="cline-any cline-yes">27x</span>
817
803
  <span class="cline-any cline-neutral">&nbsp;</span>
818
- <span class="cline-any cline-yes">27x</span>
804
+ <span class="cline-any cline-yes">1x</span>
805
+ <span class="cline-any cline-yes">1x</span>
806
+ <span class="cline-any cline-yes">1x</span>
807
+ <span class="cline-any cline-yes">1x</span>
819
808
  <span class="cline-any cline-neutral">&nbsp;</span>
809
+ <span class="cline-any cline-yes">1x</span>
820
810
  <span class="cline-any cline-neutral">&nbsp;</span>
821
811
  <span class="cline-any cline-neutral">&nbsp;</span>
822
- <span class="cline-any cline-yes">27x</span>
823
812
  <span class="cline-any cline-neutral">&nbsp;</span>
813
+ <span class="cline-any cline-yes">1x</span>
824
814
  <span class="cline-any cline-neutral">&nbsp;</span>
825
815
  <span class="cline-any cline-neutral">&nbsp;</span>
826
816
  <span class="cline-any cline-neutral">&nbsp;</span>
827
- <span class="cline-any cline-yes">27x</span>
828
- <span class="cline-any cline-yes">14x</span>
829
817
  <span class="cline-any cline-neutral">&nbsp;</span>
830
- <span class="cline-any cline-yes">27x</span>
831
- <span class="cline-any cline-yes">2x</span>
832
- <span class="cline-any cline-yes">2x</span>
833
- <span class="cline-any cline-yes">2x</span>
834
- <span class="cline-any cline-neutral">&nbsp;</span>
835
- <span class="cline-any cline-yes">27x</span>
818
+ <span class="cline-any cline-yes">1x</span>
819
+ <span class="cline-any cline-no">&nbsp;</span>
836
820
  <span class="cline-any cline-neutral">&nbsp;</span>
821
+ <span class="cline-any cline-yes">1x</span>
822
+ <span class="cline-any cline-no">&nbsp;</span>
823
+ <span class="cline-any cline-no">&nbsp;</span>
824
+ <span class="cline-any cline-no">&nbsp;</span>
837
825
  <span class="cline-any cline-neutral">&nbsp;</span>
826
+ <span class="cline-any cline-yes">1x</span>
838
827
  <span class="cline-any cline-neutral">&nbsp;</span>
839
- <span class="cline-any cline-yes">27x</span>
840
- <span class="cline-any cline-yes">27x</span>
841
- <span class="cline-any cline-yes">27x</span>
842
- <span class="cline-any cline-yes">27x</span>
843
- <span class="cline-any cline-yes">27x</span>
844
828
  <span class="cline-any cline-neutral">&nbsp;</span>
845
829
  <span class="cline-any cline-neutral">&nbsp;</span>
830
+ <span class="cline-any cline-yes">1x</span>
831
+ <span class="cline-any cline-yes">1x</span>
832
+ <span class="cline-any cline-yes">1x</span>
833
+ <span class="cline-any cline-yes">1x</span>
834
+ <span class="cline-any cline-yes">1x</span>
846
835
  <span class="cline-any cline-neutral">&nbsp;</span>
847
836
  <span class="cline-any cline-neutral">&nbsp;</span>
848
- <span class="cline-any cline-yes">44x</span>
849
837
  <span class="cline-any cline-neutral">&nbsp;</span>
850
838
  <span class="cline-any cline-neutral">&nbsp;</span>
851
839
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -855,25 +843,25 @@
855
843
  <span class="cline-any cline-neutral">&nbsp;</span>
856
844
  <span class="cline-any cline-neutral">&nbsp;</span>
857
845
  <span class="cline-any cline-yes">44x</span>
858
- <span class="cline-any cline-yes">27x</span>
846
+ <span class="cline-any cline-yes">1x</span>
859
847
  <span class="cline-any cline-neutral">&nbsp;</span>
860
848
  <span class="cline-any cline-neutral">&nbsp;</span>
861
849
  <span class="cline-any cline-neutral">&nbsp;</span>
862
850
  <span class="cline-any cline-neutral">&nbsp;</span>
863
851
  <span class="cline-any cline-neutral">&nbsp;</span>
864
852
  <span class="cline-any cline-neutral">&nbsp;</span>
865
- <span class="cline-any cline-yes">27x</span>
853
+ <span class="cline-any cline-yes">1x</span>
866
854
  <span class="cline-any cline-neutral">&nbsp;</span>
867
- <span class="cline-any cline-yes">27x</span>
855
+ <span class="cline-any cline-yes">1x</span>
868
856
  <span class="cline-any cline-neutral">&nbsp;</span>
869
857
  <span class="cline-any cline-neutral">&nbsp;</span>
870
- <span class="cline-any cline-yes">27x</span>
871
- <span class="cline-any cline-yes">27x</span>
858
+ <span class="cline-any cline-yes">1x</span>
859
+ <span class="cline-any cline-yes">1x</span>
872
860
  <span class="cline-any cline-neutral">&nbsp;</span>
873
- <span class="cline-any cline-yes">27x</span>
874
- <span class="cline-any cline-yes">27x</span>
861
+ <span class="cline-any cline-yes">1x</span>
862
+ <span class="cline-any cline-yes">1x</span>
875
863
  <span class="cline-any cline-neutral">&nbsp;</span>
876
- <span class="cline-any cline-yes">27x</span>
864
+ <span class="cline-any cline-yes">1x</span>
877
865
  <span class="cline-any cline-neutral">&nbsp;</span>
878
866
  <span class="cline-any cline-neutral">&nbsp;</span>
879
867
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -941,31 +929,31 @@
941
929
  <span class="cline-any cline-neutral">&nbsp;</span>
942
930
  <span class="cline-any cline-neutral">&nbsp;</span>
943
931
  <span class="cline-any cline-yes">44x</span>
944
- <span class="cline-any cline-yes">13x</span>
945
- <span class="cline-any cline-yes">13x</span>
946
- <span class="cline-any cline-yes">12x</span>
932
+ <span class="cline-any cline-no">&nbsp;</span>
933
+ <span class="cline-any cline-no">&nbsp;</span>
934
+ <span class="cline-any cline-no">&nbsp;</span>
947
935
  <span class="cline-any cline-neutral">&nbsp;</span>
948
- <span class="cline-any cline-yes">13x</span>
949
- <span class="cline-any cline-yes">13x</span>
936
+ <span class="cline-any cline-no">&nbsp;</span>
937
+ <span class="cline-any cline-no">&nbsp;</span>
950
938
  <span class="cline-any cline-neutral">&nbsp;</span>
951
939
  <span class="cline-any cline-neutral">&nbsp;</span>
952
940
  <span class="cline-any cline-neutral">&nbsp;</span>
953
941
  <span class="cline-any cline-neutral">&nbsp;</span>
954
942
  <span class="cline-any cline-neutral">&nbsp;</span>
955
- <span class="cline-any cline-yes">13x</span>
943
+ <span class="cline-any cline-no">&nbsp;</span>
956
944
  <span class="cline-any cline-neutral">&nbsp;</span>
957
945
  <span class="cline-any cline-neutral">&nbsp;</span>
958
946
  <span class="cline-any cline-neutral">&nbsp;</span>
959
947
  <span class="cline-any cline-neutral">&nbsp;</span>
960
948
  <span class="cline-any cline-neutral">&nbsp;</span>
961
949
  <span class="cline-any cline-neutral">&nbsp;</span>
962
- <span class="cline-any cline-yes">13x</span>
950
+ <span class="cline-any cline-no">&nbsp;</span>
963
951
  <span class="cline-any cline-neutral">&nbsp;</span>
964
952
  <span class="cline-any cline-neutral">&nbsp;</span>
965
953
  <span class="cline-any cline-neutral">&nbsp;</span>
966
954
  <span class="cline-any cline-neutral">&nbsp;</span>
967
955
  <span class="cline-any cline-neutral">&nbsp;</span>
968
- <span class="cline-any cline-yes">13x</span>
956
+ <span class="cline-any cline-no">&nbsp;</span>
969
957
  <span class="cline-any cline-neutral">&nbsp;</span>
970
958
  <span class="cline-any cline-neutral">&nbsp;</span>
971
959
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -996,7 +984,6 @@
996
984
  <span class="cline-any cline-yes">1x</span>
997
985
  <span class="cline-any cline-neutral">&nbsp;</span>
998
986
  <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">const { SearchIndexes } = require("../../../db/utils")
999
- const { removeKeyNumbering } = require("./utils")
1000
987
  const fetch = require("node-fetch")
1001
988
  const { getCouchInfo } = require("@budibase/backend-core/db")
1002
989
  const { getAppId } = require("@budibase/backend-core/context")
@@ -1045,22 +1032,22 @@ class QueryBuilder {
1045
1032
  }
1046
1033
  &nbsp;
1047
1034
  setSort(sort) {
1048
- if (sort != null) {
1049
- this.sort = sort
1035
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (sort != null) {
1036
+ <span class="cstat-no" title="statement not covered" > this.sort = sort</span>
1050
1037
  }
1051
1038
  return this
1052
1039
  }
1053
1040
  &nbsp;
1054
1041
  setSortOrder(sortOrder) {
1055
- if (sortOrder != null) {
1056
- this.sortOrder = sortOrder
1042
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (sortOrder != null) {
1043
+ <span class="cstat-no" title="statement not covered" > this.sortOrder = sortOrder</span>
1057
1044
  }
1058
1045
  return this
1059
1046
  }
1060
1047
  &nbsp;
1061
1048
  setSortType(sortType) {
1062
- if (sortType != null) {
1063
- this.sortType = sortType
1049
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (sortType != null) {
1050
+ <span class="cstat-no" title="statement not covered" > this.sortType = sortType</span>
1064
1051
  }
1065
1052
  return this
1066
1053
  }
@@ -1136,15 +1123,15 @@ class QueryBuilder {
1136
1123
  const originalType = typeof value
1137
1124
  // Convert to lowercase
1138
1125
  if (value &amp;&amp; lowercase) {
1139
- value = value.toLowerCase ? value.toLowerCase() : value
1126
+ value = value.toLowerCase ? value.toLowerCase() : <span class="branch-1 cbranch-no" title="branch not covered" >value</span>
1140
1127
  }
1141
1128
  // Escape characters
1142
- if (escape &amp;&amp; originalType === "string") {
1129
+ <span class="missing-if-branch" title="else path not taken" >E</span>if (escape &amp;&amp; originalType === "string") {
1143
1130
  value = `${value}`.replace(/[ #+\-&amp;|!(){}\]^"~*?:\\]/g, "\\$&amp;")
1144
1131
  }
1145
1132
  // Wrap in quotes
1146
- if (hasVersion &amp;&amp; wrap) {
1147
- value = originalType === "number" ? value : `"${value}"`
1133
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (hasVersion &amp;&amp; <span class="branch-1 cbranch-no" title="branch not covered" >wrap)</span> {
1134
+ <span class="cstat-no" title="statement not covered" > value = originalType === "number" ? value : `"${value}"`</span>
1148
1135
  }
1149
1136
  return value
1150
1137
  }
@@ -1152,7 +1139,7 @@ class QueryBuilder {
1152
1139
  buildSearchQuery() {
1153
1140
  const builder = this
1154
1141
  let allOr = this.query &amp;&amp; this.query.allOr
1155
- let query = allOr ? "" : "*:*"
1142
+ let query = allOr ? <span class="branch-0 cbranch-no" title="branch not covered" >"" </span>: "*:*"
1156
1143
  const allPreProcessingOpts = { escape: true, lowercase: true, wrap: true }
1157
1144
  let tableId
1158
1145
  <span class="missing-if-branch" title="else path not taken" >E</span>if (this.query.equal.tableId) {
@@ -1168,35 +1155,33 @@ class QueryBuilder {
1168
1155
  return `${key}:${builder.preprocess(value, allPreProcessingOpts)}`
1169
1156
  }
1170
1157
  &nbsp;
1171
- const contains = (key, value) =&gt; {
1172
- <span class="missing-if-branch" title="if path not taken" >I</span>if (!value &amp;&amp; <span class="branch-1 cbranch-no" title="branch not covered" >value !== 0)</span> {
1158
+ const contains = <span class="fstat-no" title="function not covered" >(k</span>ey, value) =&gt; {
1159
+ <span class="cstat-no" title="statement not covered" > if (!value &amp;&amp; value !== 0) {</span>
1173
1160
  <span class="cstat-no" title="statement not covered" > return null</span>
1174
1161
  }
1175
- return `${key}:${builder.preprocess(value, { escape: true })}`
1162
+ <span class="cstat-no" title="statement not covered" > return `${key}:${builder.preprocess(value, { escape: true })}`</span>
1176
1163
  }
1177
1164
  &nbsp;
1178
- const oneOf = (key, value) =&gt; {
1179
- <span class="missing-if-branch" title="if path not taken" >I</span>if (!Array.isArray(value)) {
1165
+ const oneOf = <span class="fstat-no" title="function not covered" >(k</span>ey, value) =&gt; {
1166
+ <span class="cstat-no" title="statement not covered" > if (!Array.isArray(value)) {</span>
1180
1167
  <span class="cstat-no" title="statement not covered" > if (typeof value === "string") {</span>
1181
1168
  <span class="cstat-no" title="statement not covered" > value = value.split(",")</span>
1182
1169
  } else {
1183
1170
  <span class="cstat-no" title="statement not covered" > return ""</span>
1184
1171
  }
1185
1172
  }
1186
- let orStatement = `${builder.preprocess(value[0], allPreProcessingOpts)}`
1187
- for (let i = 1; i &lt; value.length; i++) {
1188
- orStatement += ` OR ${builder.preprocess(
1173
+ let orStatement = <span class="cstat-no" title="statement not covered" >`${builder.preprocess(value[0], allPreProcessingOpts)}`</span>
1174
+ <span class="cstat-no" title="statement not covered" > for (let i = <span class="cstat-no" title="statement not covered" >1;</span> i &lt; value.length; i++) {</span>
1175
+ <span class="cstat-no" title="statement not covered" > orStatement += ` OR ${builder.preprocess(</span>
1189
1176
  value[i],
1190
1177
  allPreProcessingOpts
1191
1178
  )}`
1192
1179
  }
1193
- return `${key}:(${orStatement})`
1180
+ <span class="cstat-no" title="statement not covered" > return `${key}:(${orStatement})`</span>
1194
1181
  }
1195
1182
  &nbsp;
1196
1183
  function build(structure, queryFn) {
1197
1184
  for (let [key, value] of Object.entries(structure)) {
1198
- // check for new format - remove numbering if needed
1199
- key = removeKeyNumbering(key)
1200
1185
  key = builder.preprocess(key.replace(/ /g, "_"), {
1201
1186
  escape: true,
1202
1187
  })
@@ -1204,8 +1189,8 @@ class QueryBuilder {
1204
1189
  <span class="missing-if-branch" title="if path not taken" >I</span>if (expression == null) {
1205
1190
  <span class="cstat-no" title="statement not covered" > continue</span>
1206
1191
  }
1207
- if (query.length &gt; 0) {
1208
- query += ` ${allOr ? "OR" : "AND"} `
1192
+ <span class="missing-if-branch" title="else path not taken" >E</span>if (query.length &gt; 0) {
1193
+ query += ` ${allOr ? <span class="branch-0 cbranch-no" title="branch not covered" >"OR" </span>: "AND"} `
1209
1194
  }
1210
1195
  query += expression
1211
1196
  }
@@ -1213,31 +1198,31 @@ class QueryBuilder {
1213
1198
  &nbsp;
1214
1199
  // Construct the actual lucene search query string from JSON structure
1215
1200
  <span class="missing-if-branch" title="else path not taken" >E</span>if (this.query.string) {
1216
- build(this.query.string, (key, value) =&gt; {
1217
- <span class="missing-if-branch" title="if path not taken" >I</span>if (!value) {
1201
+ build(this.query.string, <span class="fstat-no" title="function not covered" >(k</span>ey, value) =&gt; {
1202
+ <span class="cstat-no" title="statement not covered" > if (!value) {</span>
1218
1203
  <span class="cstat-no" title="statement not covered" > return null</span>
1219
1204
  }
1220
- value = builder.preprocess(value, {
1205
+ <span class="cstat-no" title="statement not covered" > value = builder.preprocess(value, {</span>
1221
1206
  escape: true,
1222
1207
  lowercase: true,
1223
1208
  })
1224
- return `${key}:${value}*`
1209
+ <span class="cstat-no" title="statement not covered" > return `${key}:${value}*`</span>
1225
1210
  })
1226
1211
  }
1227
1212
  <span class="missing-if-branch" title="else path not taken" >E</span>if (this.query.range) {
1228
- build(this.query.range, (key, value) =&gt; {
1229
- <span class="missing-if-branch" title="if path not taken" >I</span>if (!value) {
1213
+ build(this.query.range, <span class="fstat-no" title="function not covered" >(k</span>ey, value) =&gt; {
1214
+ <span class="cstat-no" title="statement not covered" > if (!value) {</span>
1230
1215
  <span class="cstat-no" title="statement not covered" > return null</span>
1231
1216
  }
1232
- <span class="missing-if-branch" title="if path not taken" >I</span>if (value.low == null || value.low === "") {
1217
+ <span class="cstat-no" title="statement not covered" > if (value.low == null || value.low === "") {</span>
1233
1218
  <span class="cstat-no" title="statement not covered" > return null</span>
1234
1219
  }
1235
- <span class="missing-if-branch" title="if path not taken" >I</span>if (value.high == null || value.high === "") {
1220
+ <span class="cstat-no" title="statement not covered" > if (value.high == null || value.high === "") {</span>
1236
1221
  <span class="cstat-no" title="statement not covered" > return null</span>
1237
1222
  }
1238
- const low = builder.preprocess(value.low, allPreProcessingOpts)
1239
- const high = builder.preprocess(value.high, allPreProcessingOpts)
1240
- return `${key}:[${low} TO ${high}]`
1223
+ const low = <span class="cstat-no" title="statement not covered" >builder.preprocess(value.low, allPreProcessingOpts)</span>
1224
+ const high = <span class="cstat-no" title="statement not covered" >builder.preprocess(value.high, allPreProcessingOpts)</span>
1225
+ <span class="cstat-no" title="statement not covered" > return `${key}:[${low} TO ${high}]`</span>
1241
1226
  })
1242
1227
  }
1243
1228
  <span class="missing-if-branch" title="else path not taken" >E</span>if (this.query.fuzzy) {
@@ -1256,18 +1241,18 @@ class QueryBuilder {
1256
1241
  build(this.query.equal, equal)
1257
1242
  }
1258
1243
  <span class="missing-if-branch" title="else path not taken" >E</span>if (this.query.notEqual) {
1259
- build(this.query.notEqual, (key, value) =&gt; {
1260
- <span class="missing-if-branch" title="if path not taken" >I</span>if (!value) {
1244
+ build(this.query.notEqual, <span class="fstat-no" title="function not covered" >(k</span>ey, value) =&gt; {
1245
+ <span class="cstat-no" title="statement not covered" > if (!value) {</span>
1261
1246
  <span class="cstat-no" title="statement not covered" > return null</span>
1262
1247
  }
1263
- return `!${key}:${builder.preprocess(value, allPreProcessingOpts)}`
1248
+ <span class="cstat-no" title="statement not covered" > return `!${key}:${builder.preprocess(value, allPreProcessingOpts)}`</span>
1264
1249
  })
1265
1250
  }
1266
1251
  <span class="missing-if-branch" title="else path not taken" >E</span>if (this.query.empty) {
1267
- build(this.query.empty, key =&gt; `!${key}:["" TO *]`)
1252
+ build(this.query.empty, <span class="fstat-no" title="function not covered" >ke</span>y =&gt; <span class="cstat-no" title="statement not covered" >`!${key}:["" TO *]`)</span>
1268
1253
  }
1269
1254
  <span class="missing-if-branch" title="else path not taken" >E</span>if (this.query.notEmpty) {
1270
- build(this.query.notEmpty, key =&gt; `${key}:["" TO *]`)
1255
+ build(this.query.notEmpty, <span class="fstat-no" title="function not covered" >ke</span>y =&gt; <span class="cstat-no" title="statement not covered" >`${key}:["" TO *]`)</span>
1271
1256
  }
1272
1257
  <span class="missing-if-branch" title="else path not taken" >E</span>if (this.query.oneOf) {
1273
1258
  build(this.query.oneOf, oneOf)
@@ -1290,13 +1275,13 @@ class QueryBuilder {
1290
1275
  limit: Math.min(this.limit, 200),
1291
1276
  include_docs: this.includeDocs,
1292
1277
  }
1293
- if (this.bookmark) {
1294
- body.bookmark = this.bookmark
1278
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (this.bookmark) {
1279
+ <span class="cstat-no" title="statement not covered" > body.bookmark = this.bookmark</span>
1295
1280
  }
1296
- if (this.sort) {
1297
- const order = this.sortOrder === "descending" ? <span class="branch-0 cbranch-no" title="branch not covered" >"-" </span>: ""
1298
- const type = `&lt;${this.sortType}&gt;`
1299
- body.sort = `${order}${this.sort.replace(/ /g, "_")}${type}`
1281
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (this.sort) {
1282
+ const order = <span class="cstat-no" title="statement not covered" >this.sortOrder === "descending" ? "-" : ""</span>
1283
+ const type = <span class="cstat-no" title="statement not covered" >`&lt;${this.sortType}&gt;`</span>
1284
+ <span class="cstat-no" title="statement not covered" > body.sort = `${order}${this.sort.replace(/ /g, "_")}${type}`</span>
1300
1285
  }
1301
1286
  return body
1302
1287
  }
@@ -1310,9 +1295,6 @@ class QueryBuilder {
1310
1295
  }
1311
1296
  }
1312
1297
  &nbsp;
1313
- // exported for unit testing
1314
- exports.QueryBuilder = QueryBuilder
1315
- &nbsp;
1316
1298
  /**
1317
1299
  * Executes a lucene search query.
1318
1300
  * @param url The query URL
@@ -1406,32 +1388,32 @@ const recursiveSearch = async (query, params) =&gt; {
1406
1388
  * bookmark {string} The bookmark to resume from
1407
1389
  * @returns {Promise&lt;{hasNextPage: boolean, rows: *[]}&gt;}
1408
1390
  */
1409
- exports.paginatedSearch = async (query, params) =&gt; {
1410
- let limit = params.limit
1411
- if (limit == null || isNaN(limit) || limit &lt; 0) {
1412
- limit = 50
1391
+ exports.paginatedSearch = <span class="fstat-no" title="function not covered" >as</span>ync (query, params) =&gt; {
1392
+ let limit = <span class="cstat-no" title="statement not covered" >params.limit</span>
1393
+ <span class="cstat-no" title="statement not covered" > if (limit == null || isNaN(limit) || limit &lt; 0) {</span>
1394
+ <span class="cstat-no" title="statement not covered" > limit = 50</span>
1413
1395
  }
1414
- limit = Math.min(limit, 200)
1415
- const search = new QueryBuilder(query)
1396
+ <span class="cstat-no" title="statement not covered" > limit = Math.min(limit, 200)</span>
1397
+ const search = <span class="cstat-no" title="statement not covered" >new QueryBuilder(query)</span>
1416
1398
  .setVersion(params.version)
1417
1399
  .setTable(params.tableId)
1418
1400
  .setSort(params.sort)
1419
1401
  .setSortOrder(params.sortOrder)
1420
1402
  .setSortType(params.sortType)
1421
- const searchResults = await search
1403
+ const searchResults = <span class="cstat-no" title="statement not covered" >await search</span>
1422
1404
  .setBookmark(params.bookmark)
1423
1405
  .setLimit(limit)
1424
1406
  .run()
1425
1407
  &nbsp;
1426
1408
  // Try fetching 1 row in the next page to see if another page of results
1427
1409
  // exists or not
1428
- const nextResults = await search
1410
+ const nextResults = <span class="cstat-no" title="statement not covered" >await search</span>
1429
1411
  .setTable(params.tableId)
1430
1412
  .setBookmark(searchResults.bookmark)
1431
1413
  .setLimit(1)
1432
1414
  .run()
1433
1415
  &nbsp;
1434
- return {
1416
+ <span class="cstat-no" title="statement not covered" > return {</span>
1435
1417
  ...searchResults,
1436
1418
  hasNextPage: nextResults.rows &amp;&amp; nextResults.rows.length &gt; 0,
1437
1419
  }
@@ -1468,7 +1450,7 @@ exports.fullSearch = async (query, params) =&gt; {
1468
1450
  <div class='footer quiet pad2 space-top1 center small'>
1469
1451
  Code coverage generated by
1470
1452
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
1471
- at Wed Aug 10 2022 11:09:15 GMT+0000 (Coordinated Universal Time)
1453
+ at Wed Aug 10 2022 11:49:21 GMT+0000 (Coordinated Universal Time)
1472
1454
  </div>
1473
1455
  <script src="../../../prettify.js"></script>
1474
1456
  <script>