@budibase/server 1.0.79 → 1.0.80-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (308) hide show
  1. package/__mocks__/node-fetch.ts +1 -0
  2. package/builder/assets/index.b37e0ebb.js +1288 -0
  3. package/builder/assets/{index.c8d1e8f0.css → index.c57242d4.css} +2 -2
  4. package/builder/assets/{vendor.20f80cec.js → vendor.a7c6ad0a.js} +190 -216
  5. package/builder/index.html +3 -3
  6. package/coverage/clover.xml +2399 -2336
  7. package/coverage/coverage-final.json +138 -137
  8. package/coverage/lcov-report/api/controllers/analytics.js.html +6 -6
  9. package/coverage/lcov-report/api/controllers/apikeys.js.html +6 -6
  10. package/coverage/lcov-report/api/controllers/application.js.html +152 -149
  11. package/coverage/lcov-report/api/controllers/auth.js.html +7 -7
  12. package/coverage/lcov-report/api/controllers/automation.js.html +21 -21
  13. package/coverage/lcov-report/api/controllers/backup.js.html +3 -3
  14. package/coverage/lcov-report/api/controllers/cloud.js.html +11 -11
  15. package/coverage/lcov-report/api/controllers/component.js.html +5 -5
  16. package/coverage/lcov-report/api/controllers/datasource.js.html +16 -16
  17. package/coverage/lcov-report/api/controllers/dev.js.html +19 -19
  18. package/coverage/lcov-report/api/controllers/index.html +16 -16
  19. package/coverage/lcov-report/api/controllers/integration.js.html +4 -4
  20. package/coverage/lcov-report/api/controllers/layout.js.html +6 -6
  21. package/coverage/lcov-report/api/controllers/metadata.js.html +9 -9
  22. package/coverage/lcov-report/api/controllers/migrations.js.html +4 -4
  23. package/coverage/lcov-report/api/controllers/permission.js.html +15 -15
  24. package/coverage/lcov-report/api/controllers/query/index.html +1 -1
  25. package/coverage/lcov-report/api/controllers/query/index.js.html +26 -26
  26. package/coverage/lcov-report/api/controllers/query/validation.js.html +10 -10
  27. package/coverage/lcov-report/api/controllers/role.js.html +9 -9
  28. package/coverage/lcov-report/api/controllers/routing.js.html +9 -9
  29. package/coverage/lcov-report/api/controllers/row/external.js.html +16 -16
  30. package/coverage/lcov-report/api/controllers/row/index.html +27 -27
  31. package/coverage/lcov-report/api/controllers/row/index.js.html +46 -46
  32. package/coverage/lcov-report/api/controllers/row/internal.js.html +94 -82
  33. package/coverage/lcov-report/api/controllers/row/internalSearch.js.html +204 -204
  34. package/coverage/lcov-report/api/controllers/row/staticFormula.js.html +24 -24
  35. package/coverage/lcov-report/api/controllers/row/utils.js.html +29 -29
  36. package/coverage/lcov-report/api/controllers/screen.js.html +7 -7
  37. package/coverage/lcov-report/api/controllers/script.js.html +4 -4
  38. package/coverage/lcov-report/api/controllers/table/bulkFormula.js.html +49 -49
  39. package/coverage/lcov-report/api/controllers/table/external.js.html +12 -12
  40. package/coverage/lcov-report/api/controllers/table/index.html +11 -11
  41. package/coverage/lcov-report/api/controllers/table/index.js.html +47 -44
  42. package/coverage/lcov-report/api/controllers/table/internal.js.html +50 -50
  43. package/coverage/lcov-report/api/controllers/table/utils.js.html +80 -80
  44. package/coverage/lcov-report/api/controllers/templates.js.html +5 -5
  45. package/coverage/lcov-report/api/controllers/user.js.html +19 -19
  46. package/coverage/lcov-report/api/controllers/view/exporters.js.html +4 -4
  47. package/coverage/lcov-report/api/controllers/view/index.html +1 -1
  48. package/coverage/lcov-report/api/controllers/view/index.js.html +14 -14
  49. package/coverage/lcov-report/api/controllers/view/utils.js.html +12 -12
  50. package/coverage/lcov-report/api/controllers/view/viewBuilder.js.html +7 -7
  51. package/coverage/lcov-report/api/controllers/webhook.js.html +18 -27
  52. package/coverage/lcov-report/api/index.html +10 -10
  53. package/coverage/lcov-report/api/index.js.html +37 -28
  54. package/coverage/lcov-report/api/routes/analytics.js.html +6 -6
  55. package/coverage/lcov-report/api/routes/apikeys.js.html +8 -8
  56. package/coverage/lcov-report/api/routes/application.js.html +9 -9
  57. package/coverage/lcov-report/api/routes/auth.js.html +6 -6
  58. package/coverage/lcov-report/api/routes/automation.js.html +19 -109
  59. package/coverage/lcov-report/api/routes/backup.js.html +8 -8
  60. package/coverage/lcov-report/api/routes/cloud.js.html +8 -8
  61. package/coverage/lcov-report/api/routes/component.js.html +8 -8
  62. package/coverage/lcov-report/api/routes/datasource.js.html +18 -156
  63. package/coverage/lcov-report/api/routes/deploy.js.html +8 -8
  64. package/coverage/lcov-report/api/routes/dev.js.html +13 -13
  65. package/coverage/lcov-report/api/routes/index.html +35 -35
  66. package/coverage/lcov-report/api/routes/index.js.html +38 -32
  67. package/coverage/lcov-report/api/routes/integration.js.html +8 -8
  68. package/coverage/lcov-report/api/routes/layout.js.html +8 -8
  69. package/coverage/lcov-report/api/routes/metadata.js.html +9 -9
  70. package/coverage/lcov-report/api/routes/migrations.js.html +7 -7
  71. package/coverage/lcov-report/api/routes/permission.js.html +16 -58
  72. package/coverage/lcov-report/api/routes/query.js.html +10 -10
  73. package/coverage/lcov-report/api/routes/role.js.html +15 -78
  74. package/coverage/lcov-report/api/routes/routing.js.html +8 -8
  75. package/coverage/lcov-report/api/routes/row.js.html +17 -14
  76. package/coverage/lcov-report/api/routes/screen.js.html +14 -95
  77. package/coverage/lcov-report/api/routes/script.js.html +1 -1
  78. package/coverage/lcov-report/api/routes/static.js.html +13 -13
  79. package/coverage/lcov-report/api/routes/table.js.html +17 -62
  80. package/coverage/lcov-report/api/routes/templates.js.html +8 -8
  81. package/coverage/lcov-report/api/routes/user.js.html +8 -8
  82. package/coverage/lcov-report/api/routes/utils/index.html +111 -0
  83. package/coverage/lcov-report/api/routes/utils/validators.js.html +737 -0
  84. package/coverage/lcov-report/api/routes/view.js.html +10 -10
  85. package/coverage/lcov-report/api/routes/webhook.js.html +14 -62
  86. package/coverage/lcov-report/automations/actions.js.html +24 -24
  87. package/coverage/lcov-report/automations/automationUtils.js.html +5 -5
  88. package/coverage/lcov-report/automations/bullboard.js.html +16 -16
  89. package/coverage/lcov-report/automations/index.html +1 -1
  90. package/coverage/lcov-report/automations/index.js.html +7 -7
  91. package/coverage/lcov-report/automations/steps/bash.js.html +6 -6
  92. package/coverage/lcov-report/automations/steps/createRow.js.html +7 -7
  93. package/coverage/lcov-report/automations/steps/delay.js.html +4 -4
  94. package/coverage/lcov-report/automations/steps/deleteRow.js.html +7 -7
  95. package/coverage/lcov-report/automations/steps/discord.js.html +7 -7
  96. package/coverage/lcov-report/automations/steps/executeQuery.js.html +6 -6
  97. package/coverage/lcov-report/automations/steps/executeScript.js.html +6 -6
  98. package/coverage/lcov-report/automations/steps/filter.js.html +12 -9
  99. package/coverage/lcov-report/automations/steps/index.html +1 -1
  100. package/coverage/lcov-report/automations/steps/integromat.js.html +5 -5
  101. package/coverage/lcov-report/automations/steps/outgoingWebhook.js.html +8 -8
  102. package/coverage/lcov-report/automations/steps/queryRows.js.html +11 -11
  103. package/coverage/lcov-report/automations/steps/sendSmtpEmail.js.html +5 -5
  104. package/coverage/lcov-report/automations/steps/serverLog.js.html +3 -3
  105. package/coverage/lcov-report/automations/steps/slack.js.html +5 -5
  106. package/coverage/lcov-report/automations/steps/updateRow.js.html +6 -6
  107. package/coverage/lcov-report/automations/steps/utils.js.html +3 -3
  108. package/coverage/lcov-report/automations/steps/zapier.js.html +5 -5
  109. package/coverage/lcov-report/automations/triggerInfo/app.js.html +2 -2
  110. package/coverage/lcov-report/automations/triggerInfo/cron.js.html +2 -2
  111. package/coverage/lcov-report/automations/triggerInfo/index.html +1 -1
  112. package/coverage/lcov-report/automations/triggerInfo/index.js.html +8 -8
  113. package/coverage/lcov-report/automations/triggerInfo/rowDeleted.js.html +2 -2
  114. package/coverage/lcov-report/automations/triggerInfo/rowSaved.js.html +2 -2
  115. package/coverage/lcov-report/automations/triggerInfo/rowUpdated.js.html +2 -2
  116. package/coverage/lcov-report/automations/triggerInfo/webhook.js.html +2 -2
  117. package/coverage/lcov-report/automations/triggers.js.html +26 -26
  118. package/coverage/lcov-report/automations/utils.js.html +35 -35
  119. package/coverage/lcov-report/constants/index.html +5 -5
  120. package/coverage/lcov-report/constants/index.js.html +40 -28
  121. package/coverage/lcov-report/constants/layouts.js.html +5 -5
  122. package/coverage/lcov-report/constants/screens.js.html +4 -4
  123. package/coverage/lcov-report/db/client.js.html +18 -18
  124. package/coverage/lcov-report/db/inMemoryView.js.html +7 -7
  125. package/coverage/lcov-report/db/index.html +15 -15
  126. package/coverage/lcov-report/db/index.js.html +3 -3
  127. package/coverage/lcov-report/db/linkedRows/LinkController.js.html +21 -21
  128. package/coverage/lcov-report/db/linkedRows/index.html +1 -1
  129. package/coverage/lcov-report/db/linkedRows/index.js.html +36 -36
  130. package/coverage/lcov-report/db/linkedRows/linkUtils.js.html +30 -30
  131. package/coverage/lcov-report/db/newid.js.html +4 -4
  132. package/coverage/lcov-report/db/utils.js.html +123 -87
  133. package/coverage/lcov-report/events/AutomationEmitter.js.html +1 -1
  134. package/coverage/lcov-report/events/index.html +1 -1
  135. package/coverage/lcov-report/events/index.js.html +8 -8
  136. package/coverage/lcov-report/events/utils.js.html +18 -18
  137. package/coverage/lcov-report/index.html +89 -74
  138. package/coverage/lcov-report/integrations/tests/TestConfiguration.js.html +1 -1
  139. package/coverage/lcov-report/integrations/tests/index.html +1 -1
  140. package/coverage/lcov-report/middleware/appInfo.js.html +5 -5
  141. package/coverage/lcov-report/middleware/authorized.js.html +29 -29
  142. package/coverage/lcov-report/middleware/builder.js.html +16 -16
  143. package/coverage/lcov-report/middleware/currentapp.js.html +44 -44
  144. package/coverage/lcov-report/middleware/index.html +1 -1
  145. package/coverage/lcov-report/middleware/joi-validator.js.html +14 -14
  146. package/coverage/lcov-report/middleware/resourceId.js.html +29 -29
  147. package/coverage/lcov-report/middleware/selfhost.js.html +1 -1
  148. package/coverage/lcov-report/middleware/usageQuota.js.html +17 -17
  149. package/coverage/lcov-report/middleware/utils.js.html +4 -4
  150. package/coverage/lcov-report/threads/automation.js.html +1 -1
  151. package/coverage/lcov-report/threads/index.html +19 -19
  152. package/coverage/lcov-report/threads/index.js.html +10 -10
  153. package/coverage/lcov-report/threads/query.js.html +123 -39
  154. package/coverage/lcov-report/threads/utils.js.html +14 -14
  155. package/coverage/lcov-report/utilities/bcrypt.js.html +1 -1
  156. package/coverage/lcov-report/utilities/budibaseDir.js.html +7 -7
  157. package/coverage/lcov-report/utilities/centralPath.js.html +4 -4
  158. package/coverage/lcov-report/utilities/csvParser.js.html +6 -6
  159. package/coverage/lcov-report/utilities/global.js.html +28 -28
  160. package/coverage/lcov-report/utilities/index.html +18 -18
  161. package/coverage/lcov-report/utilities/index.js.html +24 -24
  162. package/coverage/lcov-report/utilities/queue/inMemoryQueue.js.html +9 -9
  163. package/coverage/lcov-report/utilities/queue/index.html +1 -1
  164. package/coverage/lcov-report/utilities/routing/index.html +1 -1
  165. package/coverage/lcov-report/utilities/routing/index.js.html +6 -6
  166. package/coverage/lcov-report/utilities/rowProcessor/index.html +1 -1
  167. package/coverage/lcov-report/utilities/rowProcessor/index.js.html +60 -60
  168. package/coverage/lcov-report/utilities/rowProcessor/utils.js.html +13 -13
  169. package/coverage/lcov-report/utilities/scriptRunner.js.html +5 -5
  170. package/coverage/lcov-report/utilities/security.js.html +8 -8
  171. package/coverage/lcov-report/utilities/statusCodes.js.html +1 -1
  172. package/coverage/lcov-report/utilities/usageQuota/index.html +1 -1
  173. package/coverage/lcov-report/utilities/usageQuota/index.js.html +12 -12
  174. package/coverage/lcov-report/utilities/usageQuota/rows.js.html +8 -8
  175. package/coverage/lcov-report/utilities/usageQuota/usageQuoteReset.js.html +1 -1
  176. package/coverage/lcov-report/utilities/users.js.html +5 -5
  177. package/coverage/lcov-report/utilities/workerRequests.js.html +200 -53
  178. package/coverage/lcov.info +3323 -3224
  179. package/dist/api/controllers/application.js +1 -0
  180. package/dist/api/controllers/public/applications.js +94 -0
  181. package/dist/api/controllers/public/mapping/applications.js +29 -0
  182. package/dist/api/controllers/public/mapping/index.js +11 -0
  183. package/dist/api/controllers/public/mapping/queries.js +36 -0
  184. package/dist/api/controllers/public/mapping/rows.js +24 -0
  185. package/dist/api/controllers/public/mapping/tables.js +23 -0
  186. package/dist/api/controllers/public/mapping/types.js +2 -0
  187. package/dist/api/controllers/public/mapping/users.js +29 -0
  188. package/dist/api/controllers/public/queries.js +38 -0
  189. package/dist/api/controllers/public/rows.js +97 -0
  190. package/dist/api/controllers/public/tables.js +75 -0
  191. package/dist/api/controllers/public/users.js +95 -0
  192. package/dist/api/controllers/public/utils.js +49 -0
  193. package/dist/api/controllers/row/internal.js +4 -1
  194. package/dist/api/controllers/table/index.js +2 -1
  195. package/dist/api/controllers/webhook.js +3 -5
  196. package/dist/api/index.js +3 -1
  197. package/dist/api/routes/automation.js +3 -31
  198. package/dist/api/routes/datasource.js +3 -50
  199. package/dist/api/routes/index.js +2 -0
  200. package/dist/api/routes/permission.js +4 -14
  201. package/dist/api/routes/public/applications.js +141 -0
  202. package/dist/api/routes/public/index.js +101 -0
  203. package/dist/api/routes/public/middleware/mapper.js +94 -0
  204. package/dist/api/routes/public/queries.js +77 -0
  205. package/dist/api/routes/public/rows.js +229 -0
  206. package/dist/api/routes/public/tables.js +154 -0
  207. package/dist/api/routes/public/users.js +137 -0
  208. package/dist/api/routes/public/utils/Endpoint.js +36 -0
  209. package/dist/api/routes/role.js +3 -19
  210. package/dist/api/routes/row.js +3 -4
  211. package/dist/api/routes/screen.js +2 -23
  212. package/dist/api/routes/table.js +3 -17
  213. package/dist/api/routes/tests/utilities/index.js +23 -0
  214. package/dist/api/routes/utils/validators.js +200 -0
  215. package/dist/api/routes/webhook.js +2 -17
  216. package/dist/automations/steps/filter.js +2 -2
  217. package/dist/automations/steps/queryRows.js +1 -1
  218. package/dist/automations/utils.js +2 -2
  219. package/dist/constants/index.js +3 -0
  220. package/dist/db/utils.js +11 -0
  221. package/dist/definitions/openapi.js +6 -0
  222. package/dist/environment.js +1 -0
  223. package/dist/integrations/googlesheets.js +3 -0
  224. package/dist/integrations/microsoftSqlServer.js +35 -29
  225. package/dist/integrations/mysql.js +3 -0
  226. package/dist/integrations/oracle.js +14 -19
  227. package/dist/integrations/postgres.js +34 -28
  228. package/dist/package.json +11 -7
  229. package/dist/tests/utilities/TestConfiguration.js +25 -8
  230. package/dist/threads/query.js +33 -8
  231. package/dist/tsconfig.tsbuildinfo +1 -1
  232. package/dist/utilities/workerRequests.js +50 -15
  233. package/package.json +12 -8
  234. package/scripts/integrations/oracle/oracle.md +2 -2
  235. package/scripts/integrations/postgres/init.sql +5 -3
  236. package/scripts/likeCypress.ts +9 -6
  237. package/specs/generate.js +83 -0
  238. package/specs/openapi.json +2222 -0
  239. package/specs/openapi.yaml +1530 -0
  240. package/specs/parameters.js +59 -0
  241. package/specs/resources/application.js +101 -0
  242. package/specs/resources/index.js +24 -0
  243. package/specs/resources/misc.js +12 -0
  244. package/specs/resources/query.js +189 -0
  245. package/specs/resources/row.js +125 -0
  246. package/specs/resources/table.js +191 -0
  247. package/specs/resources/user.js +126 -0
  248. package/specs/resources/utils/Resource.js +26 -0
  249. package/specs/resources/utils/index.js +11 -0
  250. package/specs/security.js +7 -0
  251. package/src/api/controllers/application.js +1 -0
  252. package/src/api/controllers/public/applications.ts +74 -0
  253. package/src/api/controllers/public/mapping/applications.ts +32 -0
  254. package/src/api/controllers/public/mapping/index.ts +13 -0
  255. package/src/api/controllers/public/mapping/queries.ts +39 -0
  256. package/src/api/controllers/public/mapping/rows.ts +31 -0
  257. package/src/api/controllers/public/mapping/tables.ts +26 -0
  258. package/src/api/controllers/public/mapping/types.ts +13 -0
  259. package/src/api/controllers/public/mapping/users.ts +32 -0
  260. package/src/api/controllers/public/queries.ts +20 -0
  261. package/src/api/controllers/public/rows.ts +77 -0
  262. package/src/api/controllers/public/tables.ts +56 -0
  263. package/src/api/controllers/public/users.ts +82 -0
  264. package/src/api/controllers/public/utils.ts +38 -0
  265. package/src/api/controllers/row/ExternalRequest.ts +1 -1
  266. package/src/api/controllers/row/internal.js +4 -0
  267. package/src/api/controllers/table/index.js +2 -1
  268. package/src/api/controllers/webhook.js +3 -6
  269. package/src/api/index.js +4 -1
  270. package/src/api/routes/automation.js +3 -33
  271. package/src/api/routes/datasource.js +6 -52
  272. package/src/api/routes/index.js +2 -0
  273. package/src/api/routes/permission.js +4 -18
  274. package/src/api/routes/public/applications.ts +156 -0
  275. package/src/api/routes/public/index.ts +118 -0
  276. package/src/api/routes/public/middleware/mapper.ts +81 -0
  277. package/src/api/routes/public/queries.ts +81 -0
  278. package/src/api/routes/public/rows.ts +242 -0
  279. package/src/api/routes/public/tables.ts +169 -0
  280. package/src/api/routes/public/tests/compare.spec.js +184 -0
  281. package/src/api/routes/public/users.ts +144 -0
  282. package/src/api/routes/public/utils/Endpoint.ts +51 -0
  283. package/src/api/routes/role.js +3 -24
  284. package/src/api/routes/row.js +3 -2
  285. package/src/api/routes/screen.js +2 -29
  286. package/src/api/routes/table.js +4 -19
  287. package/src/api/routes/tests/utilities/index.js +24 -0
  288. package/src/api/routes/utils/validators.js +219 -0
  289. package/src/api/routes/webhook.js +2 -18
  290. package/src/automations/steps/filter.js +3 -2
  291. package/src/automations/steps/queryRows.js +1 -1
  292. package/src/automations/utils.js +2 -2
  293. package/src/constants/index.js +4 -0
  294. package/src/db/utils.js +12 -0
  295. package/src/definitions/common.ts +4 -0
  296. package/src/definitions/openapi.ts +943 -0
  297. package/src/environment.js +1 -0
  298. package/src/integrations/base/datasourcePlus.ts +3 -0
  299. package/src/integrations/googlesheets.ts +5 -2
  300. package/src/integrations/microsoftSqlServer.ts +38 -33
  301. package/src/integrations/mysql.ts +4 -0
  302. package/src/integrations/oracle.ts +27 -35
  303. package/src/integrations/postgres.ts +33 -26
  304. package/src/tests/utilities/TestConfiguration.js +23 -2
  305. package/src/threads/query.js +37 -9
  306. package/src/utilities/workerRequests.js +65 -16
  307. package/builder/assets/index.f28c5d54.js +0 -1352
  308. package/scripts/proxy/generateProxyConfig.js +0 -70
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">5.16% </span>
26
+ <span class="strong">60.64% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>8/155</span>
28
+ <span class='fraction'>94/155</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">0% </span>
33
+ <span class="strong">40% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>0/95</span>
35
+ <span class='fraction'>38/95</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">0% </span>
40
+ <span class="strong">54.54% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>0/33</span>
42
+ <span class='fraction'>18/33</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">5.26% </span>
47
+ <span class="strong">61.18% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>8/152</span>
49
+ <span class='fraction'>93/152</span>
50
50
  </div>
51
51
 
52
52
 
@@ -55,7 +55,7 @@
55
55
  Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
56
56
  </p>
57
57
  </div>
58
- <div class='status-line low'></div>
58
+ <div class='status-line medium'></div>
59
59
  <pre><table class="coverage">
60
60
  <tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
61
61
  <a name='L2'></a><a href='#L2'>2</a>
@@ -452,10 +452,10 @@
452
452
  <a name='L393'></a><a href='#L393'>393</a>
453
453
  <a name='L394'></a><a href='#L394'>394</a>
454
454
  <a name='L395'></a><a href='#L395'>395</a>
455
- <a name='L396'></a><a href='#L396'>396</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">38x</span>
456
- <span class="cline-any cline-yes">38x</span>
457
- <span class="cline-any cline-yes">38x</span>
458
- <span class="cline-any cline-yes">38x</span>
455
+ <a name='L396'></a><a href='#L396'>396</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">39x</span>
456
+ <span class="cline-any cline-yes">39x</span>
457
+ <span class="cline-any cline-yes">39x</span>
458
+ <span class="cline-any cline-yes">39x</span>
459
459
  <span class="cline-any cline-neutral">&nbsp;</span>
460
460
  <span class="cline-any cline-neutral">&nbsp;</span>
461
461
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -463,7 +463,7 @@
463
463
  <span class="cline-any cline-neutral">&nbsp;</span>
464
464
  <span class="cline-any cline-neutral">&nbsp;</span>
465
465
  <span class="cline-any cline-neutral">&nbsp;</span>
466
- <span class="cline-any cline-no">&nbsp;</span>
466
+ <span class="cline-any cline-yes">1x</span>
467
467
  <span class="cline-any cline-neutral">&nbsp;</span>
468
468
  <span class="cline-any cline-neutral">&nbsp;</span>
469
469
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -473,54 +473,54 @@
473
473
  <span class="cline-any cline-neutral">&nbsp;</span>
474
474
  <span class="cline-any cline-neutral">&nbsp;</span>
475
475
  <span class="cline-any cline-neutral">&nbsp;</span>
476
- <span class="cline-any cline-no">&nbsp;</span>
477
- <span class="cline-any cline-no">&nbsp;</span>
478
- <span class="cline-any cline-no">&nbsp;</span>
479
- <span class="cline-any cline-no">&nbsp;</span>
480
- <span class="cline-any cline-no">&nbsp;</span>
476
+ <span class="cline-any cline-yes">1x</span>
477
+ <span class="cline-any cline-yes">1x</span>
478
+ <span class="cline-any cline-yes">1x</span>
479
+ <span class="cline-any cline-yes">1x</span>
480
+ <span class="cline-any cline-yes">1x</span>
481
481
  <span class="cline-any cline-neutral">&nbsp;</span>
482
482
  <span class="cline-any cline-neutral">&nbsp;</span>
483
483
  <span class="cline-any cline-neutral">&nbsp;</span>
484
- <span class="cline-any cline-no">&nbsp;</span>
485
- <span class="cline-any cline-no">&nbsp;</span>
484
+ <span class="cline-any cline-yes">1x</span>
485
+ <span class="cline-any cline-yes">1x</span>
486
486
  <span class="cline-any cline-neutral">&nbsp;</span>
487
487
  <span class="cline-any cline-neutral">&nbsp;</span>
488
488
  <span class="cline-any cline-neutral">&nbsp;</span>
489
- <span class="cline-any cline-no">&nbsp;</span>
490
- <span class="cline-any cline-no">&nbsp;</span>
489
+ <span class="cline-any cline-yes">1x</span>
490
+ <span class="cline-any cline-yes">1x</span>
491
491
  <span class="cline-any cline-neutral">&nbsp;</span>
492
492
  <span class="cline-any cline-neutral">&nbsp;</span>
493
493
  <span class="cline-any cline-neutral">&nbsp;</span>
494
- <span class="cline-any cline-no">&nbsp;</span>
495
- <span class="cline-any cline-no">&nbsp;</span>
494
+ <span class="cline-any cline-yes">1x</span>
495
+ <span class="cline-any cline-yes">1x</span>
496
496
  <span class="cline-any cline-neutral">&nbsp;</span>
497
- <span class="cline-any cline-no">&nbsp;</span>
497
+ <span class="cline-any cline-yes">1x</span>
498
498
  <span class="cline-any cline-neutral">&nbsp;</span>
499
499
  <span class="cline-any cline-neutral">&nbsp;</span>
500
500
  <span class="cline-any cline-neutral">&nbsp;</span>
501
- <span class="cline-any cline-no">&nbsp;</span>
501
+ <span class="cline-any cline-yes">1x</span>
502
502
  <span class="cline-any cline-no">&nbsp;</span>
503
503
  <span class="cline-any cline-neutral">&nbsp;</span>
504
- <span class="cline-any cline-no">&nbsp;</span>
504
+ <span class="cline-any cline-yes">1x</span>
505
505
  <span class="cline-any cline-neutral">&nbsp;</span>
506
506
  <span class="cline-any cline-neutral">&nbsp;</span>
507
507
  <span class="cline-any cline-neutral">&nbsp;</span>
508
- <span class="cline-any cline-no">&nbsp;</span>
508
+ <span class="cline-any cline-yes">1x</span>
509
509
  <span class="cline-any cline-no">&nbsp;</span>
510
510
  <span class="cline-any cline-neutral">&nbsp;</span>
511
- <span class="cline-any cline-no">&nbsp;</span>
511
+ <span class="cline-any cline-yes">1x</span>
512
512
  <span class="cline-any cline-neutral">&nbsp;</span>
513
513
  <span class="cline-any cline-neutral">&nbsp;</span>
514
514
  <span class="cline-any cline-neutral">&nbsp;</span>
515
- <span class="cline-any cline-no">&nbsp;</span>
515
+ <span class="cline-any cline-yes">1x</span>
516
516
  <span class="cline-any cline-no">&nbsp;</span>
517
517
  <span class="cline-any cline-neutral">&nbsp;</span>
518
- <span class="cline-any cline-no">&nbsp;</span>
518
+ <span class="cline-any cline-yes">1x</span>
519
519
  <span class="cline-any cline-neutral">&nbsp;</span>
520
520
  <span class="cline-any cline-neutral">&nbsp;</span>
521
521
  <span class="cline-any cline-neutral">&nbsp;</span>
522
- <span class="cline-any cline-no">&nbsp;</span>
523
- <span class="cline-any cline-no">&nbsp;</span>
522
+ <span class="cline-any cline-yes">1x</span>
523
+ <span class="cline-any cline-yes">1x</span>
524
524
  <span class="cline-any cline-neutral">&nbsp;</span>
525
525
  <span class="cline-any cline-neutral">&nbsp;</span>
526
526
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -574,45 +574,45 @@
574
574
  <span class="cline-any cline-neutral">&nbsp;</span>
575
575
  <span class="cline-any cline-neutral">&nbsp;</span>
576
576
  <span class="cline-any cline-neutral">&nbsp;</span>
577
- <span class="cline-any cline-no">&nbsp;</span>
577
+ <span class="cline-any cline-yes">2x</span>
578
578
  <span class="cline-any cline-neutral">&nbsp;</span>
579
- <span class="cline-any cline-no">&nbsp;</span>
579
+ <span class="cline-any cline-yes">2x</span>
580
580
  <span class="cline-any cline-neutral">&nbsp;</span>
581
- <span class="cline-any cline-no">&nbsp;</span>
582
- <span class="cline-any cline-no">&nbsp;</span>
581
+ <span class="cline-any cline-yes">2x</span>
582
+ <span class="cline-any cline-yes">1x</span>
583
583
  <span class="cline-any cline-neutral">&nbsp;</span>
584
584
  <span class="cline-any cline-neutral">&nbsp;</span>
585
- <span class="cline-any cline-no">&nbsp;</span>
586
- <span class="cline-any cline-no">&nbsp;</span>
585
+ <span class="cline-any cline-yes">2x</span>
586
+ <span class="cline-any cline-yes">2x</span>
587
587
  <span class="cline-any cline-neutral">&nbsp;</span>
588
588
  <span class="cline-any cline-neutral">&nbsp;</span>
589
- <span class="cline-any cline-no">&nbsp;</span>
589
+ <span class="cline-any cline-yes">2x</span>
590
590
  <span class="cline-any cline-no">&nbsp;</span>
591
591
  <span class="cline-any cline-neutral">&nbsp;</span>
592
- <span class="cline-any cline-no">&nbsp;</span>
592
+ <span class="cline-any cline-yes">2x</span>
593
593
  <span class="cline-any cline-neutral">&nbsp;</span>
594
594
  <span class="cline-any cline-neutral">&nbsp;</span>
595
595
  <span class="cline-any cline-neutral">&nbsp;</span>
596
- <span class="cline-any cline-no">&nbsp;</span>
597
- <span class="cline-any cline-no">&nbsp;</span>
598
- <span class="cline-any cline-no">&nbsp;</span>
596
+ <span class="cline-any cline-yes">1x</span>
597
+ <span class="cline-any cline-yes">1x</span>
598
+ <span class="cline-any cline-yes">1x</span>
599
599
  <span class="cline-any cline-neutral">&nbsp;</span>
600
600
  <span class="cline-any cline-neutral">&nbsp;</span>
601
- <span class="cline-any cline-no">&nbsp;</span>
602
- <span class="cline-any cline-no">&nbsp;</span>
601
+ <span class="cline-any cline-yes">7x</span>
602
+ <span class="cline-any cline-yes">1x</span>
603
603
  <span class="cline-any cline-neutral">&nbsp;</span>
604
604
  <span class="cline-any cline-neutral">&nbsp;</span>
605
- <span class="cline-any cline-no">&nbsp;</span>
606
- <span class="cline-any cline-no">&nbsp;</span>
605
+ <span class="cline-any cline-yes">1x</span>
606
+ <span class="cline-any cline-yes">1x</span>
607
607
  <span class="cline-any cline-no">&nbsp;</span>
608
608
  <span class="cline-any cline-neutral">&nbsp;</span>
609
- <span class="cline-any cline-no">&nbsp;</span>
609
+ <span class="cline-any cline-yes">1x</span>
610
610
  <span class="cline-any cline-neutral">&nbsp;</span>
611
611
  <span class="cline-any cline-neutral">&nbsp;</span>
612
612
  <span class="cline-any cline-neutral">&nbsp;</span>
613
613
  <span class="cline-any cline-neutral">&nbsp;</span>
614
- <span class="cline-any cline-no">&nbsp;</span>
615
- <span class="cline-any cline-no">&nbsp;</span>
614
+ <span class="cline-any cline-yes">1x</span>
615
+ <span class="cline-any cline-yes">1x</span>
616
616
  <span class="cline-any cline-no">&nbsp;</span>
617
617
  <span class="cline-any cline-no">&nbsp;</span>
618
618
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -623,8 +623,8 @@
623
623
  <span class="cline-any cline-no">&nbsp;</span>
624
624
  <span class="cline-any cline-neutral">&nbsp;</span>
625
625
  <span class="cline-any cline-neutral">&nbsp;</span>
626
- <span class="cline-any cline-no">&nbsp;</span>
627
- <span class="cline-any cline-no">&nbsp;</span>
626
+ <span class="cline-any cline-yes">1x</span>
627
+ <span class="cline-any cline-yes">1x</span>
628
628
  <span class="cline-any cline-no">&nbsp;</span>
629
629
  <span class="cline-any cline-no">&nbsp;</span>
630
630
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -639,8 +639,8 @@
639
639
  <span class="cline-any cline-no">&nbsp;</span>
640
640
  <span class="cline-any cline-neutral">&nbsp;</span>
641
641
  <span class="cline-any cline-neutral">&nbsp;</span>
642
- <span class="cline-any cline-no">&nbsp;</span>
643
- <span class="cline-any cline-no">&nbsp;</span>
642
+ <span class="cline-any cline-yes">1x</span>
643
+ <span class="cline-any cline-yes">1x</span>
644
644
  <span class="cline-any cline-no">&nbsp;</span>
645
645
  <span class="cline-any cline-no">&nbsp;</span>
646
646
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -651,56 +651,56 @@
651
651
  <span class="cline-any cline-no">&nbsp;</span>
652
652
  <span class="cline-any cline-neutral">&nbsp;</span>
653
653
  <span class="cline-any cline-neutral">&nbsp;</span>
654
- <span class="cline-any cline-no">&nbsp;</span>
655
- <span class="cline-any cline-no">&nbsp;</span>
654
+ <span class="cline-any cline-yes">1x</span>
655
+ <span class="cline-any cline-yes">1x</span>
656
656
  <span class="cline-any cline-neutral">&nbsp;</span>
657
- <span class="cline-any cline-no">&nbsp;</span>
657
+ <span class="cline-any cline-yes">1x</span>
658
658
  <span class="cline-any cline-no">&nbsp;</span>
659
659
  <span class="cline-any cline-neutral">&nbsp;</span>
660
- <span class="cline-any cline-no">&nbsp;</span>
660
+ <span class="cline-any cline-yes">1x</span>
661
661
  <span class="cline-any cline-neutral">&nbsp;</span>
662
662
  <span class="cline-any cline-neutral">&nbsp;</span>
663
- <span class="cline-any cline-no">&nbsp;</span>
664
- <span class="cline-any cline-no">&nbsp;</span>
663
+ <span class="cline-any cline-yes">1x</span>
664
+ <span class="cline-any cline-yes">1x</span>
665
665
  <span class="cline-any cline-no">&nbsp;</span>
666
666
  <span class="cline-any cline-no">&nbsp;</span>
667
667
  <span class="cline-any cline-neutral">&nbsp;</span>
668
668
  <span class="cline-any cline-no">&nbsp;</span>
669
669
  <span class="cline-any cline-neutral">&nbsp;</span>
670
670
  <span class="cline-any cline-neutral">&nbsp;</span>
671
- <span class="cline-any cline-no">&nbsp;</span>
672
- <span class="cline-any cline-no">&nbsp;</span>
671
+ <span class="cline-any cline-yes">1x</span>
672
+ <span class="cline-any cline-yes">1x</span>
673
673
  <span class="cline-any cline-neutral">&nbsp;</span>
674
- <span class="cline-any cline-no">&nbsp;</span>
675
- <span class="cline-any cline-no">&nbsp;</span>
674
+ <span class="cline-any cline-yes">1x</span>
675
+ <span class="cline-any cline-yes">1x</span>
676
676
  <span class="cline-any cline-neutral">&nbsp;</span>
677
- <span class="cline-any cline-no">&nbsp;</span>
677
+ <span class="cline-any cline-yes">1x</span>
678
678
  <span class="cline-any cline-neutral">&nbsp;</span>
679
679
  <span class="cline-any cline-neutral">&nbsp;</span>
680
680
  <span class="cline-any cline-neutral">&nbsp;</span>
681
- <span class="cline-any cline-no">&nbsp;</span>
681
+ <span class="cline-any cline-yes">1x</span>
682
682
  <span class="cline-any cline-neutral">&nbsp;</span>
683
683
  <span class="cline-any cline-neutral">&nbsp;</span>
684
684
  <span class="cline-any cline-neutral">&nbsp;</span>
685
685
  <span class="cline-any cline-neutral">&nbsp;</span>
686
- <span class="cline-any cline-no">&nbsp;</span>
686
+ <span class="cline-any cline-yes">1x</span>
687
687
  <span class="cline-any cline-no">&nbsp;</span>
688
688
  <span class="cline-any cline-neutral">&nbsp;</span>
689
- <span class="cline-any cline-no">&nbsp;</span>
689
+ <span class="cline-any cline-yes">1x</span>
690
690
  <span class="cline-any cline-no">&nbsp;</span>
691
691
  <span class="cline-any cline-no">&nbsp;</span>
692
692
  <span class="cline-any cline-no">&nbsp;</span>
693
693
  <span class="cline-any cline-neutral">&nbsp;</span>
694
- <span class="cline-any cline-no">&nbsp;</span>
694
+ <span class="cline-any cline-yes">1x</span>
695
695
  <span class="cline-any cline-neutral">&nbsp;</span>
696
696
  <span class="cline-any cline-neutral">&nbsp;</span>
697
697
  <span class="cline-any cline-neutral">&nbsp;</span>
698
- <span class="cline-any cline-no">&nbsp;</span>
699
- <span class="cline-any cline-no">&nbsp;</span>
698
+ <span class="cline-any cline-yes">1x</span>
699
+ <span class="cline-any cline-yes">1x</span>
700
700
  <span class="cline-any cline-neutral">&nbsp;</span>
701
701
  <span class="cline-any cline-neutral">&nbsp;</span>
702
- <span class="cline-any cline-no">&nbsp;</span>
703
- <span class="cline-any cline-no">&nbsp;</span>
702
+ <span class="cline-any cline-yes">1x</span>
703
+ <span class="cline-any cline-yes">1x</span>
704
704
  <span class="cline-any cline-neutral">&nbsp;</span>
705
705
  <span class="cline-any cline-neutral">&nbsp;</span>
706
706
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -710,23 +710,23 @@
710
710
  <span class="cline-any cline-neutral">&nbsp;</span>
711
711
  <span class="cline-any cline-neutral">&nbsp;</span>
712
712
  <span class="cline-any cline-neutral">&nbsp;</span>
713
- <span class="cline-any cline-yes">38x</span>
714
- <span class="cline-any cline-no">&nbsp;</span>
713
+ <span class="cline-any cline-yes">39x</span>
714
+ <span class="cline-any cline-yes">1x</span>
715
715
  <span class="cline-any cline-neutral">&nbsp;</span>
716
716
  <span class="cline-any cline-neutral">&nbsp;</span>
717
717
  <span class="cline-any cline-neutral">&nbsp;</span>
718
- <span class="cline-any cline-no">&nbsp;</span>
718
+ <span class="cline-any cline-yes">1x</span>
719
719
  <span class="cline-any cline-neutral">&nbsp;</span>
720
- <span class="cline-any cline-no">&nbsp;</span>
720
+ <span class="cline-any cline-yes">1x</span>
721
721
  <span class="cline-any cline-neutral">&nbsp;</span>
722
722
  <span class="cline-any cline-neutral">&nbsp;</span>
723
- <span class="cline-any cline-no">&nbsp;</span>
724
- <span class="cline-any cline-no">&nbsp;</span>
723
+ <span class="cline-any cline-yes">1x</span>
724
+ <span class="cline-any cline-yes">1x</span>
725
725
  <span class="cline-any cline-neutral">&nbsp;</span>
726
- <span class="cline-any cline-no">&nbsp;</span>
727
- <span class="cline-any cline-no">&nbsp;</span>
726
+ <span class="cline-any cline-yes">1x</span>
727
+ <span class="cline-any cline-yes">1x</span>
728
728
  <span class="cline-any cline-neutral">&nbsp;</span>
729
- <span class="cline-any cline-no">&nbsp;</span>
729
+ <span class="cline-any cline-yes">1x</span>
730
730
  <span class="cline-any cline-neutral">&nbsp;</span>
731
731
  <span class="cline-any cline-neutral">&nbsp;</span>
732
732
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -745,17 +745,17 @@
745
745
  <span class="cline-any cline-neutral">&nbsp;</span>
746
746
  <span class="cline-any cline-neutral">&nbsp;</span>
747
747
  <span class="cline-any cline-neutral">&nbsp;</span>
748
- <span class="cline-any cline-yes">38x</span>
749
- <span class="cline-any cline-no">&nbsp;</span>
750
- <span class="cline-any cline-no">&nbsp;</span>
751
- <span class="cline-any cline-no">&nbsp;</span>
748
+ <span class="cline-any cline-yes">39x</span>
749
+ <span class="cline-any cline-yes">1x</span>
750
+ <span class="cline-any cline-yes">1x</span>
751
+ <span class="cline-any cline-yes">1x</span>
752
752
  <span class="cline-any cline-no">&nbsp;</span>
753
753
  <span class="cline-any cline-neutral">&nbsp;</span>
754
- <span class="cline-any cline-no">&nbsp;</span>
755
- <span class="cline-any cline-no">&nbsp;</span>
754
+ <span class="cline-any cline-yes">1x</span>
755
+ <span class="cline-any cline-yes">1x</span>
756
756
  <span class="cline-any cline-no">&nbsp;</span>
757
757
  <span class="cline-any cline-neutral">&nbsp;</span>
758
- <span class="cline-any cline-no">&nbsp;</span>
758
+ <span class="cline-any cline-yes">1x</span>
759
759
  <span class="cline-any cline-neutral">&nbsp;</span>
760
760
  <span class="cline-any cline-neutral">&nbsp;</span>
761
761
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -764,11 +764,11 @@
764
764
  <span class="cline-any cline-neutral">&nbsp;</span>
765
765
  <span class="cline-any cline-neutral">&nbsp;</span>
766
766
  <span class="cline-any cline-neutral">&nbsp;</span>
767
- <span class="cline-any cline-no">&nbsp;</span>
767
+ <span class="cline-any cline-yes">1x</span>
768
768
  <span class="cline-any cline-no">&nbsp;</span>
769
769
  <span class="cline-any cline-neutral">&nbsp;</span>
770
- <span class="cline-any cline-no">&nbsp;</span>
771
- <span class="cline-any cline-no">&nbsp;</span>
770
+ <span class="cline-any cline-yes">1x</span>
771
+ <span class="cline-any cline-yes">1x</span>
772
772
  <span class="cline-any cline-neutral">&nbsp;</span>
773
773
  <span class="cline-any cline-no">&nbsp;</span>
774
774
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -793,7 +793,7 @@
793
793
  <span class="cline-any cline-neutral">&nbsp;</span>
794
794
  <span class="cline-any cline-neutral">&nbsp;</span>
795
795
  <span class="cline-any cline-neutral">&nbsp;</span>
796
- <span class="cline-any cline-yes">38x</span>
796
+ <span class="cline-any cline-yes">39x</span>
797
797
  <span class="cline-any cline-no">&nbsp;</span>
798
798
  <span class="cline-any cline-no">&nbsp;</span>
799
799
  <span class="cline-any cline-no">&nbsp;</span>
@@ -838,14 +838,14 @@
838
838
  <span class="cline-any cline-neutral">&nbsp;</span>
839
839
  <span class="cline-any cline-neutral">&nbsp;</span>
840
840
  <span class="cline-any cline-neutral">&nbsp;</span>
841
- <span class="cline-any cline-yes">38x</span>
842
- <span class="cline-any cline-no">&nbsp;</span>
843
- <span class="cline-any cline-no">&nbsp;</span>
844
- <span class="cline-any cline-no">&nbsp;</span>
841
+ <span class="cline-any cline-yes">39x</span>
842
+ <span class="cline-any cline-yes">1x</span>
843
+ <span class="cline-any cline-yes">1x</span>
844
+ <span class="cline-any cline-yes">1x</span>
845
845
  <span class="cline-any cline-neutral">&nbsp;</span>
846
- <span class="cline-any cline-no">&nbsp;</span>
847
- <span class="cline-any cline-no">&nbsp;</span>
848
- <span class="cline-any cline-no">&nbsp;</span>
846
+ <span class="cline-any cline-yes">1x</span>
847
+ <span class="cline-any cline-yes">1x</span>
848
+ <span class="cline-any cline-yes">1x</span>
849
849
  <span class="cline-any cline-neutral">&nbsp;</span>
850
850
  <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">const { SearchIndexes } = require("../../../db/utils")
851
851
  const fetch = require("node-fetch")
@@ -857,8 +857,8 @@ const { getAppId } = require("@budibase/backend-core/context")
857
857
  * Optionally takes a base lucene query object.
858
858
  */
859
859
  class QueryBuilder {
860
- <span class="fstat-no" title="function not covered" > co</span>nstructor(base) {
861
- <span class="cstat-no" title="statement not covered" > this.query = {</span>
860
+ constructor(base) {
861
+ this.query = {
862
862
  string: {},
863
863
  fuzzy: {},
864
864
  range: {},
@@ -868,54 +868,54 @@ class QueryBuilder {
868
868
  notEmpty: {},
869
869
  ...base,
870
870
  }
871
- <span class="cstat-no" title="statement not covered" > this.limit = 50</span>
872
- <span class="cstat-no" title="statement not covered" > this.sortOrder = "ascending"</span>
873
- <span class="cstat-no" title="statement not covered" > this.sortType = "string"</span>
874
- <span class="cstat-no" title="statement not covered" > this.includeDocs = true</span>
875
- <span class="cstat-no" title="statement not covered" > this.version = null</span>
871
+ this.limit = 50
872
+ this.sortOrder = "ascending"
873
+ this.sortType = "string"
874
+ this.includeDocs = true
875
+ this.version = null
876
876
  }
877
877
  &nbsp;
878
- <span class="fstat-no" title="function not covered" > se</span>tVersion(version) {
879
- <span class="cstat-no" title="statement not covered" > this.version = version</span>
880
- <span class="cstat-no" title="statement not covered" > return this</span>
878
+ setVersion(version) {
879
+ this.version = version
880
+ return this
881
881
  }
882
882
  &nbsp;
883
- <span class="fstat-no" title="function not covered" > se</span>tTable(tableId) {
884
- <span class="cstat-no" title="statement not covered" > this.query.equal.tableId = tableId</span>
885
- <span class="cstat-no" title="statement not covered" > return this</span>
883
+ setTable(tableId) {
884
+ this.query.equal.tableId = tableId
885
+ return this
886
886
  }
887
887
  &nbsp;
888
- <span class="fstat-no" title="function not covered" > se</span>tLimit(limit) {
889
- <span class="cstat-no" title="statement not covered" > if (limit != null) {</span>
890
- <span class="cstat-no" title="statement not covered" > this.limit = limit</span>
888
+ setLimit(limit) {
889
+ if (limit != null) {
890
+ this.limit = limit
891
891
  }
892
- <span class="cstat-no" title="statement not covered" > return this</span>
892
+ return this
893
893
  }
894
894
  &nbsp;
895
- <span class="fstat-no" title="function not covered" > se</span>tSort(sort) {
896
- <span class="cstat-no" title="statement not covered" > if (sort != null) {</span>
895
+ setSort(sort) {
896
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (sort != null) {
897
897
  <span class="cstat-no" title="statement not covered" > this.sort = sort</span>
898
898
  }
899
- <span class="cstat-no" title="statement not covered" > return this</span>
899
+ return this
900
900
  }
901
901
  &nbsp;
902
- <span class="fstat-no" title="function not covered" > se</span>tSortOrder(sortOrder) {
903
- <span class="cstat-no" title="statement not covered" > if (sortOrder != null) {</span>
902
+ setSortOrder(sortOrder) {
903
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (sortOrder != null) {
904
904
  <span class="cstat-no" title="statement not covered" > this.sortOrder = sortOrder</span>
905
905
  }
906
- <span class="cstat-no" title="statement not covered" > return this</span>
906
+ return this
907
907
  }
908
908
  &nbsp;
909
- <span class="fstat-no" title="function not covered" > se</span>tSortType(sortType) {
910
- <span class="cstat-no" title="statement not covered" > if (sortType != null) {</span>
909
+ setSortType(sortType) {
910
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (sortType != null) {
911
911
  <span class="cstat-no" title="statement not covered" > this.sortType = sortType</span>
912
912
  }
913
- <span class="cstat-no" title="statement not covered" > return this</span>
913
+ return this
914
914
  }
915
915
  &nbsp;
916
- <span class="fstat-no" title="function not covered" > se</span>tBookmark(bookmark) {
917
- <span class="cstat-no" title="statement not covered" > this.bookmark = bookmark</span>
918
- <span class="cstat-no" title="statement not covered" > return this</span>
916
+ setBookmark(bookmark) {
917
+ this.bookmark = bookmark
918
+ return this
919
919
  }
920
920
  &nbsp;
921
921
  <span class="fstat-no" title="function not covered" > ex</span>cludeDocs() {
@@ -968,46 +968,46 @@ class QueryBuilder {
968
968
  * @param options The preprocess options
969
969
  * @returns {string|*}
970
970
  */
971
- <span class="fstat-no" title="function not covered" > pr</span>eprocess(value, { escape, lowercase, wrap } = <span class="branch-0 cbranch-no" title="branch not covered" >{})</span> {
972
- const hasVersion = <span class="cstat-no" title="statement not covered" >!!this.version</span>
971
+ preprocess(value, { escape, lowercase, wrap } = <span class="branch-0 cbranch-no" title="branch not covered" >{})</span> {
972
+ const hasVersion = !!this.version
973
973
  // Determine if type needs wrapped
974
- const originalType = <span class="cstat-no" title="statement not covered" >typeof value</span>
974
+ const originalType = typeof value
975
975
  // Convert to lowercase
976
- <span class="cstat-no" title="statement not covered" > if (value &amp;&amp; lowercase) {</span>
977
- <span class="cstat-no" title="statement not covered" > value = value.toLowerCase ? value.toLowerCase() : value</span>
976
+ if (value &amp;&amp; lowercase) {
977
+ value = value.toLowerCase ? value.toLowerCase() : <span class="branch-1 cbranch-no" title="branch not covered" >value</span>
978
978
  }
979
979
  // Escape characters
980
- <span class="cstat-no" title="statement not covered" > if (escape &amp;&amp; originalType === "string") {</span>
981
- <span class="cstat-no" title="statement not covered" > value = `${value}`.replace(/[ #+\-&amp;|!(){}\]^"~*?:\\]/g, "\\$&amp;")</span>
980
+ if (escape &amp;&amp; originalType === "string") {
981
+ value = `${value}`.replace(/[ #+\-&amp;|!(){}\]^"~*?:\\]/g, "\\$&amp;")
982
982
  }
983
983
  // Wrap in quotes
984
- <span class="cstat-no" title="statement not covered" > if (hasVersion &amp;&amp; wrap) {</span>
984
+ <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> {
985
985
  <span class="cstat-no" title="statement not covered" > value = originalType === "number" ? value : `"${value}"`</span>
986
986
  }
987
- <span class="cstat-no" title="statement not covered" > return value</span>
987
+ return value
988
988
  }
989
989
  &nbsp;
990
- <span class="fstat-no" title="function not covered" > bu</span>ildSearchQuery() {
991
- const builder = <span class="cstat-no" title="statement not covered" >this</span>
992
- let query = <span class="cstat-no" title="statement not covered" >"*:*"</span>
993
- const allPreProcessingOpts = <span class="cstat-no" title="statement not covered" >{ escape: true, lowercase: true, wrap: true }</span>
990
+ buildSearchQuery() {
991
+ const builder = this
992
+ let query = "*:*"
993
+ const allPreProcessingOpts = { escape: true, lowercase: true, wrap: true }
994
994
  &nbsp;
995
- function <span class="fstat-no" title="function not covered" >build(</span>structure, queryFn) {
996
- <span class="cstat-no" title="statement not covered" > for (let [key, value] of Object.entries(structure)) {</span>
997
- <span class="cstat-no" title="statement not covered" > key = builder.preprocess(key.replace(/ /, "_"), {</span>
995
+ function build(structure, queryFn) {
996
+ for (let [key, value] of Object.entries(structure)) {
997
+ key = builder.preprocess(key.replace(/ /, "_"), {
998
998
  escape: true,
999
999
  })
1000
- const expression = <span class="cstat-no" title="statement not covered" >queryFn(key, value)</span>
1001
- <span class="cstat-no" title="statement not covered" > if (expression == null) {</span>
1000
+ const expression = queryFn(key, value)
1001
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (expression == null) {
1002
1002
  <span class="cstat-no" title="statement not covered" > continue</span>
1003
1003
  }
1004
- <span class="cstat-no" title="statement not covered" > query += ` AND ${expression}`</span>
1004
+ query += ` AND ${expression}`
1005
1005
  }
1006
1006
  }
1007
1007
  &nbsp;
1008
1008
  // Construct the actual lucene search query string from JSON structure
1009
- <span class="cstat-no" title="statement not covered" > if (this.query.string) {</span>
1010
- <span class="cstat-no" title="statement not covered" > build(this.query.string, <span class="fstat-no" title="function not covered" >(k</span>ey, value) =&gt; {</span>
1009
+ if (this.query.string) {
1010
+ build(this.query.string, <span class="fstat-no" title="function not covered" >(k</span>ey, value) =&gt; {
1011
1011
  <span class="cstat-no" title="statement not covered" > if (!value) {</span>
1012
1012
  <span class="cstat-no" title="statement not covered" > return null</span>
1013
1013
  }
@@ -1018,8 +1018,8 @@ class QueryBuilder {
1018
1018
  <span class="cstat-no" title="statement not covered" > return `${key}:${value}*`</span>
1019
1019
  })
1020
1020
  }
1021
- <span class="cstat-no" title="statement not covered" > if (this.query.range) {</span>
1022
- <span class="cstat-no" title="statement not covered" > build(this.query.range, <span class="fstat-no" title="function not covered" >(k</span>ey, value) =&gt; {</span>
1021
+ if (this.query.range) {
1022
+ build(this.query.range, <span class="fstat-no" title="function not covered" >(k</span>ey, value) =&gt; {
1023
1023
  <span class="cstat-no" title="statement not covered" > if (!value) {</span>
1024
1024
  <span class="cstat-no" title="statement not covered" > return null</span>
1025
1025
  }
@@ -1034,8 +1034,8 @@ class QueryBuilder {
1034
1034
  <span class="cstat-no" title="statement not covered" > return `${key}:[${low} TO ${high}]`</span>
1035
1035
  })
1036
1036
  }
1037
- <span class="cstat-no" title="statement not covered" > if (this.query.fuzzy) {</span>
1038
- <span class="cstat-no" title="statement not covered" > build(this.query.fuzzy, <span class="fstat-no" title="function not covered" >(k</span>ey, value) =&gt; {</span>
1037
+ if (this.query.fuzzy) {
1038
+ build(this.query.fuzzy, <span class="fstat-no" title="function not covered" >(k</span>ey, value) =&gt; {
1039
1039
  <span class="cstat-no" title="statement not covered" > if (!value) {</span>
1040
1040
  <span class="cstat-no" title="statement not covered" > return null</span>
1041
1041
  }
@@ -1046,56 +1046,56 @@ class QueryBuilder {
1046
1046
  <span class="cstat-no" title="statement not covered" > return `${key}:${value}~`</span>
1047
1047
  })
1048
1048
  }
1049
- <span class="cstat-no" title="statement not covered" > if (this.query.equal) {</span>
1050
- <span class="cstat-no" title="statement not covered" > build(this.query.equal, <span class="fstat-no" title="function not covered" >(k</span>ey, value) =&gt; {</span>
1049
+ if (this.query.equal) {
1050
+ build(this.query.equal, (key, value) =&gt; {
1051
1051
  // 0 evaluates to false, which means we would return all rows if we don't check it
1052
- <span class="cstat-no" title="statement not covered" > if (!value &amp;&amp; value !== 0) {</span>
1052
+ <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> {
1053
1053
  <span class="cstat-no" title="statement not covered" > return null</span>
1054
1054
  }
1055
- <span class="cstat-no" title="statement not covered" > return `${key}:${builder.preprocess(value, allPreProcessingOpts)}`</span>
1055
+ return `${key}:${builder.preprocess(value, allPreProcessingOpts)}`
1056
1056
  })
1057
1057
  }
1058
- <span class="cstat-no" title="statement not covered" > if (this.query.notEqual) {</span>
1059
- <span class="cstat-no" title="statement not covered" > build(this.query.notEqual, <span class="fstat-no" title="function not covered" >(k</span>ey, value) =&gt; {</span>
1058
+ if (this.query.notEqual) {
1059
+ build(this.query.notEqual, <span class="fstat-no" title="function not covered" >(k</span>ey, value) =&gt; {
1060
1060
  <span class="cstat-no" title="statement not covered" > if (!value) {</span>
1061
1061
  <span class="cstat-no" title="statement not covered" > return null</span>
1062
1062
  }
1063
1063
  <span class="cstat-no" title="statement not covered" > return `!${key}:${builder.preprocess(value, allPreProcessingOpts)}`</span>
1064
1064
  })
1065
1065
  }
1066
- <span class="cstat-no" title="statement not covered" > if (this.query.empty) {</span>
1067
- <span class="cstat-no" title="statement not covered" > 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></span>
1066
+ if (this.query.empty) {
1067
+ 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>
1068
1068
  }
1069
- <span class="cstat-no" title="statement not covered" > if (this.query.notEmpty) {</span>
1070
- <span class="cstat-no" title="statement not covered" > 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></span>
1069
+ if (this.query.notEmpty) {
1070
+ 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>
1071
1071
  }
1072
- <span class="cstat-no" title="statement not covered" > return query</span>
1072
+ return query
1073
1073
  }
1074
1074
  &nbsp;
1075
- <span class="fstat-no" title="function not covered" > bu</span>ildSearchBody() {
1076
- let body = <span class="cstat-no" title="statement not covered" >{</span>
1075
+ buildSearchBody() {
1076
+ let body = {
1077
1077
  q: this.buildSearchQuery(),
1078
1078
  limit: Math.min(this.limit, 200),
1079
1079
  include_docs: this.includeDocs,
1080
1080
  }
1081
- <span class="cstat-no" title="statement not covered" > if (this.bookmark) {</span>
1081
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (this.bookmark) {
1082
1082
  <span class="cstat-no" title="statement not covered" > body.bookmark = this.bookmark</span>
1083
1083
  }
1084
- <span class="cstat-no" title="statement not covered" > if (this.sort) {</span>
1084
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (this.sort) {
1085
1085
  const order = <span class="cstat-no" title="statement not covered" >this.sortOrder === "descending" ? "-" : ""</span>
1086
1086
  const type = <span class="cstat-no" title="statement not covered" >`&lt;${this.sortType}&gt;`</span>
1087
1087
  <span class="cstat-no" title="statement not covered" > body.sort = `${order}${this.sort.replace(/ /g, "_")}${type}`</span>
1088
1088
  }
1089
- <span class="cstat-no" title="statement not covered" > return body</span>
1089
+ return body
1090
1090
  }
1091
1091
  &nbsp;
1092
- <span class="fstat-no" title="function not covered" > as</span>ync run() {
1093
- const appId = <span class="cstat-no" title="statement not covered" >getAppId()</span>
1094
- const url = <span class="cstat-no" title="statement not covered" >`${getCouchUrl()}/${appId}/_design/database/_search/${</span>
1092
+ async run() {
1093
+ const appId = getAppId()
1094
+ const url = `${getCouchUrl()}/${appId}/_design/database/_search/${
1095
1095
  SearchIndexes.ROWS
1096
1096
  }`
1097
- const body = <span class="cstat-no" title="statement not covered" >this.buildSearchBody()</span>
1098
- <span class="cstat-no" title="statement not covered" > return await runQuery(url, body)</span>
1097
+ const body = this.buildSearchBody()
1098
+ return await runQuery(url, body)
1099
1099
  }
1100
1100
  }
1101
1101
  &nbsp;
@@ -1105,23 +1105,23 @@ class QueryBuilder {
1105
1105
  * @param body The request body defining search criteria
1106
1106
  * @returns {Promise&lt;{rows: []}&gt;}
1107
1107
  */
1108
- const runQuery = <span class="fstat-no" title="function not covered" >as</span>ync (url, body) =&gt; {
1109
- const response = <span class="cstat-no" title="statement not covered" >await fetch(url, {</span>
1108
+ const runQuery = async (url, body) =&gt; {
1109
+ const response = await fetch(url, {
1110
1110
  body: JSON.stringify(body),
1111
1111
  method: "POST",
1112
1112
  })
1113
- const json = <span class="cstat-no" title="statement not covered" >await response.json()</span>
1113
+ const json = await response.json()
1114
1114
  &nbsp;
1115
- let output = <span class="cstat-no" title="statement not covered" >{</span>
1115
+ let output = {
1116
1116
  rows: [],
1117
1117
  }
1118
- <span class="cstat-no" title="statement not covered" > if (json.rows != null &amp;&amp; json.rows.length &gt; 0) {</span>
1119
- <span class="cstat-no" title="statement not covered" > output.rows = json.rows.map(<span class="fstat-no" title="function not covered" >ro</span>w =&gt; <span class="cstat-no" title="statement not covered" >row.doc)</span></span>
1118
+ if (json.rows != null &amp;&amp; json.rows.length &gt; 0) {
1119
+ output.rows = json.rows.map(row =&gt; row.doc)
1120
1120
  }
1121
- <span class="cstat-no" title="statement not covered" > if (json.bookmark) {</span>
1122
- <span class="cstat-no" title="statement not covered" > output.bookmark = json.bookmark</span>
1121
+ if (json.bookmark) {
1122
+ output.bookmark = json.bookmark
1123
1123
  }
1124
- <span class="cstat-no" title="statement not covered" > return output</span>
1124
+ return output
1125
1125
  }
1126
1126
  &nbsp;
1127
1127
  /**
@@ -1140,17 +1140,17 @@ const runQuery = <span class="fstat-no" title="function not covered" >as</span>y
1140
1140
  * rows {array|null} Current results in the recursive search
1141
1141
  * @returns {Promise&lt;*[]|*&gt;}
1142
1142
  */
1143
- const recursiveSearch = <span class="fstat-no" title="function not covered" >as</span>ync (query, params) =&gt; {
1144
- const bookmark = <span class="cstat-no" title="statement not covered" >params.bookmark</span>
1145
- const rows = <span class="cstat-no" title="statement not covered" >params.rows || []</span>
1146
- <span class="cstat-no" title="statement not covered" > if (rows.length &gt;= params.limit) {</span>
1143
+ const recursiveSearch = async (query, params) =&gt; {
1144
+ const bookmark = params.bookmark
1145
+ const rows = params.rows || []
1146
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (rows.length &gt;= params.limit) {
1147
1147
  <span class="cstat-no" title="statement not covered" > return rows</span>
1148
1148
  }
1149
- let pageSize = <span class="cstat-no" title="statement not covered" >200</span>
1150
- <span class="cstat-no" title="statement not covered" > if (rows.length &gt; params.limit - 200) {</span>
1149
+ let pageSize = 200
1150
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (rows.length &gt; params.limit - 200) {
1151
1151
  <span class="cstat-no" title="statement not covered" > pageSize = params.limit - rows.length</span>
1152
1152
  }
1153
- const page = <span class="cstat-no" title="statement not covered" >await new QueryBuilder(query)</span>
1153
+ const page = await new QueryBuilder(query)
1154
1154
  .setVersion(params.version)
1155
1155
  .setTable(params.tableId)
1156
1156
  .setBookmark(bookmark)
@@ -1159,11 +1159,11 @@ const recursiveSearch = <span class="fstat-no" title="function not covered" >as<
1159
1159
  .setSortOrder(params.sortOrder)
1160
1160
  .setSortType(params.sortType)
1161
1161
  .run()
1162
- <span class="cstat-no" title="statement not covered" > if (!page.rows.length) {</span>
1162
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (!page.rows.length) {
1163
1163
  <span class="cstat-no" title="statement not covered" > return rows</span>
1164
1164
  }
1165
- <span class="cstat-no" title="statement not covered" > if (page.rows.length &lt; 200) {</span>
1166
- <span class="cstat-no" title="statement not covered" > return [...rows, ...page.rows]</span>
1165
+ if (page.rows.length &lt; 200) {
1166
+ return [...rows, ...page.rows]
1167
1167
  }
1168
1168
  const newParams = <span class="cstat-no" title="statement not covered" >{</span>
1169
1169
  ...params,
@@ -1233,14 +1233,14 @@ exports.paginatedSearch = <span class="fstat-no" title="function not covered" >a
1233
1233
  * limit {number} The desired number of results
1234
1234
  * @returns {Promise&lt;{rows: *}&gt;}
1235
1235
  */
1236
- exports.fullSearch = <span class="fstat-no" title="function not covered" >as</span>ync (query, params) =&gt; {
1237
- let limit = <span class="cstat-no" title="statement not covered" >params.limit</span>
1238
- <span class="cstat-no" title="statement not covered" > if (limit == null || isNaN(limit) || limit &lt; 0) {</span>
1239
- <span class="cstat-no" title="statement not covered" > limit = 1000</span>
1236
+ exports.fullSearch = async (query, params) =&gt; {
1237
+ let limit = params.limit
1238
+ if (limit == null || <span class="branch-1 cbranch-no" title="branch not covered" >isNaN(limit) </span>|| <span class="branch-2 cbranch-no" title="branch not covered" >limit &lt; 0)</span> {
1239
+ limit = 1000
1240
1240
  }
1241
- <span class="cstat-no" title="statement not covered" > params.limit = Math.min(limit, 1000)</span>
1242
- const rows = <span class="cstat-no" title="statement not covered" >await recursiveSearch(query, params)</span>
1243
- <span class="cstat-no" title="statement not covered" > return { rows }</span>
1241
+ params.limit = Math.min(limit, 1000)
1242
+ const rows = await recursiveSearch(query, params)
1243
+ return { rows }
1244
1244
  }
1245
1245
  &nbsp;</pre></td></tr></table></pre>
1246
1246
 
@@ -1249,7 +1249,7 @@ exports.fullSearch = <span class="fstat-no" title="function not covered" >as</sp
1249
1249
  <div class='footer quiet pad2 space-top1 center small'>
1250
1250
  Code coverage generated by
1251
1251
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
1252
- at Fri Mar 04 2022 10:13:39 GMT+0000 (Coordinated Universal Time)
1252
+ at Fri Mar 04 2022 11:33:15 GMT+0000 (Coordinated Universal Time)
1253
1253
  </div>
1254
1254
  </div>
1255
1255
  <script src="../../../prettify.js"></script>