@budibase/server 1.0.219-alpha.9 → 1.0.219

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 (257) hide show
  1. package/__mocks__/node-fetch.ts +0 -9
  2. package/builder/assets/index.1c640a53.js +1316 -0
  3. package/builder/assets/index.24307ca0.css +6 -0
  4. package/builder/assets/{vendor.001dcf8c.js → vendor.9bf2fcb4.js} +163 -163
  5. package/builder/index.html +3 -3
  6. package/coverage/clover.xml +794 -868
  7. package/coverage/coverage-final.json +26 -26
  8. package/coverage/lcov-report/api/controllers/apikeys.js.html +1 -1
  9. package/coverage/lcov-report/api/controllers/auth.js.html +1 -1
  10. package/coverage/lcov-report/api/controllers/automation.js.html +12 -111
  11. package/coverage/lcov-report/api/controllers/backup.js.html +6 -9
  12. package/coverage/lcov-report/api/controllers/cloud.js.html +1 -1
  13. package/coverage/lcov-report/api/controllers/component.js.html +1 -1
  14. package/coverage/lcov-report/api/controllers/datasource.js.html +16 -16
  15. package/coverage/lcov-report/api/controllers/dev.js.html +1 -1
  16. package/coverage/lcov-report/api/controllers/index.html +21 -21
  17. package/coverage/lcov-report/api/controllers/integration.js.html +1 -1
  18. package/coverage/lcov-report/api/controllers/layout.js.html +1 -1
  19. package/coverage/lcov-report/api/controllers/metadata.js.html +1 -1
  20. package/coverage/lcov-report/api/controllers/migrations.js.html +1 -1
  21. package/coverage/lcov-report/api/controllers/permission.js.html +1 -1
  22. package/coverage/lcov-report/api/controllers/query/index.html +1 -1
  23. package/coverage/lcov-report/api/controllers/query/validation.js.html +1 -1
  24. package/coverage/lcov-report/api/controllers/role.js.html +1 -1
  25. package/coverage/lcov-report/api/controllers/routing.js.html +1 -1
  26. package/coverage/lcov-report/api/controllers/row/external.js.html +17 -47
  27. package/coverage/lcov-report/api/controllers/row/index.html +34 -34
  28. package/coverage/lcov-report/api/controllers/row/internal.js.html +1 -1
  29. package/coverage/lcov-report/api/controllers/row/internalSearch.js.html +11 -95
  30. package/coverage/lcov-report/api/controllers/row/staticFormula.js.html +1 -1
  31. package/coverage/lcov-report/api/controllers/row/utils.js.html +8 -17
  32. package/coverage/lcov-report/api/controllers/screen.js.html +1 -1
  33. package/coverage/lcov-report/api/controllers/script.js.html +1 -1
  34. package/coverage/lcov-report/api/controllers/table/bulkFormula.js.html +1 -1
  35. package/coverage/lcov-report/api/controllers/table/external.js.html +1 -1
  36. package/coverage/lcov-report/api/controllers/table/index.html +1 -1
  37. package/coverage/lcov-report/api/controllers/table/index.js.html +1 -1
  38. package/coverage/lcov-report/api/controllers/templates.js.html +1 -1
  39. package/coverage/lcov-report/api/controllers/user.js.html +1 -1
  40. package/coverage/lcov-report/api/controllers/view/exporters.js.html +1 -1
  41. package/coverage/lcov-report/api/controllers/view/index.html +1 -1
  42. package/coverage/lcov-report/api/controllers/view/index.js.html +1 -1
  43. package/coverage/lcov-report/api/controllers/view/utils.js.html +1 -1
  44. package/coverage/lcov-report/api/controllers/view/viewBuilder.js.html +1 -1
  45. package/coverage/lcov-report/api/controllers/webhook.js.html +1 -1
  46. package/coverage/lcov-report/api/index.html +15 -15
  47. package/coverage/lcov-report/api/index.js.html +13 -22
  48. package/coverage/lcov-report/api/routes/analytics.js.html +1 -1
  49. package/coverage/lcov-report/api/routes/apikeys.js.html +1 -1
  50. package/coverage/lcov-report/api/routes/auth.js.html +1 -1
  51. package/coverage/lcov-report/api/routes/automation.js.html +2 -32
  52. package/coverage/lcov-report/api/routes/backup.js.html +1 -1
  53. package/coverage/lcov-report/api/routes/cloud.js.html +1 -1
  54. package/coverage/lcov-report/api/routes/component.js.html +1 -1
  55. package/coverage/lcov-report/api/routes/datasource.js.html +1 -1
  56. package/coverage/lcov-report/api/routes/deploy.js.html +1 -1
  57. package/coverage/lcov-report/api/routes/dev.js.html +1 -1
  58. package/coverage/lcov-report/api/routes/index.html +1 -1
  59. package/coverage/lcov-report/api/routes/integration.js.html +1 -1
  60. package/coverage/lcov-report/api/routes/layout.js.html +1 -1
  61. package/coverage/lcov-report/api/routes/metadata.js.html +1 -1
  62. package/coverage/lcov-report/api/routes/migrations.js.html +1 -1
  63. package/coverage/lcov-report/api/routes/permission.js.html +1 -1
  64. package/coverage/lcov-report/api/routes/query.js.html +1 -1
  65. package/coverage/lcov-report/api/routes/role.js.html +1 -1
  66. package/coverage/lcov-report/api/routes/routing.js.html +1 -1
  67. package/coverage/lcov-report/api/routes/screen.js.html +1 -1
  68. package/coverage/lcov-report/api/routes/script.js.html +1 -1
  69. package/coverage/lcov-report/api/routes/table.js.html +1 -1
  70. package/coverage/lcov-report/api/routes/templates.js.html +1 -1
  71. package/coverage/lcov-report/api/routes/user.js.html +1 -1
  72. package/coverage/lcov-report/api/routes/utils/index.html +1 -1
  73. package/coverage/lcov-report/api/routes/utils/validators.js.html +1 -1
  74. package/coverage/lcov-report/api/routes/view.js.html +1 -1
  75. package/coverage/lcov-report/api/routes/webhook.js.html +1 -1
  76. package/coverage/lcov-report/automations/actions.js.html +1 -1
  77. package/coverage/lcov-report/automations/automationUtils.js.html +12 -57
  78. package/coverage/lcov-report/automations/bullboard.js.html +1 -1
  79. package/coverage/lcov-report/automations/index.html +17 -17
  80. package/coverage/lcov-report/automations/index.js.html +1 -1
  81. package/coverage/lcov-report/automations/steps/bash.js.html +1 -1
  82. package/coverage/lcov-report/automations/steps/delay.js.html +1 -1
  83. package/coverage/lcov-report/automations/steps/discord.js.html +1 -1
  84. package/coverage/lcov-report/automations/steps/executeQuery.js.html +1 -1
  85. package/coverage/lcov-report/automations/steps/executeScript.js.html +1 -1
  86. package/coverage/lcov-report/automations/steps/filter.js.html +34 -58
  87. package/coverage/lcov-report/automations/steps/index.html +11 -11
  88. package/coverage/lcov-report/automations/steps/integromat.js.html +1 -1
  89. package/coverage/lcov-report/automations/steps/loop.js.html +1 -1
  90. package/coverage/lcov-report/automations/steps/outgoingWebhook.js.html +1 -1
  91. package/coverage/lcov-report/automations/steps/queryRows.js.html +1 -1
  92. package/coverage/lcov-report/automations/steps/sendSmtpEmail.js.html +1 -1
  93. package/coverage/lcov-report/automations/steps/serverLog.js.html +1 -1
  94. package/coverage/lcov-report/automations/steps/slack.js.html +1 -1
  95. package/coverage/lcov-report/automations/steps/updateRow.js.html +1 -1
  96. package/coverage/lcov-report/automations/steps/utils.js.html +1 -1
  97. package/coverage/lcov-report/automations/steps/zapier.js.html +1 -1
  98. package/coverage/lcov-report/automations/triggerInfo/app.js.html +1 -1
  99. package/coverage/lcov-report/automations/triggerInfo/cron.js.html +1 -1
  100. package/coverage/lcov-report/automations/triggerInfo/index.html +1 -1
  101. package/coverage/lcov-report/automations/triggerInfo/index.js.html +1 -1
  102. package/coverage/lcov-report/automations/triggerInfo/rowDeleted.js.html +1 -1
  103. package/coverage/lcov-report/automations/triggerInfo/rowSaved.js.html +1 -1
  104. package/coverage/lcov-report/automations/triggerInfo/rowUpdated.js.html +1 -1
  105. package/coverage/lcov-report/automations/triggerInfo/webhook.js.html +1 -1
  106. package/coverage/lcov-report/automations/triggers.js.html +4 -4
  107. package/coverage/lcov-report/constants/index.html +1 -1
  108. package/coverage/lcov-report/constants/index.js.html +1 -1
  109. package/coverage/lcov-report/constants/layouts.js.html +1 -1
  110. package/coverage/lcov-report/constants/screens.js.html +1 -1
  111. package/coverage/lcov-report/db/inMemoryView.js.html +1 -1
  112. package/coverage/lcov-report/db/index.html +14 -14
  113. package/coverage/lcov-report/db/index.js.html +1 -1
  114. package/coverage/lcov-report/db/linkedRows/LinkController.js.html +1 -1
  115. package/coverage/lcov-report/db/linkedRows/index.html +13 -13
  116. package/coverage/lcov-report/db/linkedRows/index.js.html +7 -10
  117. package/coverage/lcov-report/db/linkedRows/linkUtils.js.html +1 -1
  118. package/coverage/lcov-report/db/newid.js.html +2 -2
  119. package/coverage/lcov-report/db/utils.js.html +51 -27
  120. package/coverage/lcov-report/events/AutomationEmitter.js.html +1 -1
  121. package/coverage/lcov-report/events/index.html +1 -1
  122. package/coverage/lcov-report/events/index.js.html +1 -1
  123. package/coverage/lcov-report/events/utils.js.html +1 -1
  124. package/coverage/lcov-report/index.html +74 -74
  125. package/coverage/lcov-report/integrations/tests/TestConfiguration.js.html +1 -1
  126. package/coverage/lcov-report/integrations/tests/index.html +1 -1
  127. package/coverage/lcov-report/middleware/appInfo.js.html +1 -1
  128. package/coverage/lcov-report/middleware/builder.js.html +12 -12
  129. package/coverage/lcov-report/middleware/currentapp.js.html +33 -33
  130. package/coverage/lcov-report/middleware/index.html +1 -1
  131. package/coverage/lcov-report/middleware/joi-validator.js.html +10 -10
  132. package/coverage/lcov-report/middleware/publicApi.js.html +1 -1
  133. package/coverage/lcov-report/middleware/resourceId.js.html +7 -7
  134. package/coverage/lcov-report/middleware/selfhost.js.html +1 -1
  135. package/coverage/lcov-report/middleware/utils.js.html +2 -2
  136. package/coverage/lcov-report/threads/automation.js.html +9 -18
  137. package/coverage/lcov-report/threads/index.html +25 -25
  138. package/coverage/lcov-report/threads/query.js.html +76 -283
  139. package/coverage/lcov-report/threads/utils.js.html +4 -4
  140. package/coverage/lcov-report/utilities/budibaseDir.js.html +1 -1
  141. package/coverage/lcov-report/utilities/centralPath.js.html +1 -1
  142. package/coverage/lcov-report/utilities/csvParser.js.html +1 -1
  143. package/coverage/lcov-report/utilities/global.js.html +14 -14
  144. package/coverage/lcov-report/utilities/index.html +1 -1
  145. package/coverage/lcov-report/utilities/index.js.html +9 -9
  146. package/coverage/lcov-report/utilities/queue/inMemoryQueue.js.html +2 -2
  147. package/coverage/lcov-report/utilities/queue/index.html +1 -1
  148. package/coverage/lcov-report/utilities/routing/index.html +1 -1
  149. package/coverage/lcov-report/utilities/routing/index.js.html +1 -1
  150. package/coverage/lcov-report/utilities/rowProcessor/index.html +1 -1
  151. package/coverage/lcov-report/utilities/rowProcessor/index.js.html +1 -1
  152. package/coverage/lcov-report/utilities/rowProcessor/utils.js.html +1 -1
  153. package/coverage/lcov-report/utilities/scriptRunner.js.html +1 -1
  154. package/coverage/lcov-report/utilities/security.js.html +2 -2
  155. package/coverage/lcov-report/utilities/statusCodes.js.html +1 -1
  156. package/coverage/lcov-report/utilities/usageQuota/index.html +1 -1
  157. package/coverage/lcov-report/utilities/usageQuota/rows.js.html +1 -1
  158. package/coverage/lcov-report/utilities/usageQuota/usageQuoteReset.js.html +1 -1
  159. package/coverage/lcov-report/utilities/users.js.html +1 -1
  160. package/coverage/lcov-report/utilities/workerRequests.js.html +1 -1
  161. package/coverage/lcov.info +1425 -1553
  162. package/dist/api/controllers/application.js +15 -18
  163. package/dist/api/controllers/automation.js +2 -28
  164. package/dist/api/controllers/backup.js +2 -3
  165. package/dist/api/controllers/query/index.js +0 -25
  166. package/dist/api/controllers/row/external.js +7 -19
  167. package/dist/api/controllers/row/internalSearch.js +1 -22
  168. package/dist/api/controllers/row/utils.js +0 -3
  169. package/dist/api/index.js +1 -4
  170. package/dist/api/routes/automation.js +0 -2
  171. package/dist/automations/automationUtils.js +4 -16
  172. package/dist/automations/steps/filter.js +29 -38
  173. package/dist/automations/triggers.js +1 -1
  174. package/dist/db/linkedRows/index.js +0 -1
  175. package/dist/db/utils.js +31 -4
  176. package/dist/definitions/datasource.js +0 -1
  177. package/dist/environment.js +0 -1
  178. package/dist/integrations/airtable.js +0 -1
  179. package/dist/integrations/arangodb.js +0 -1
  180. package/dist/integrations/base/sql.js +3 -20
  181. package/dist/integrations/couchdb.js +0 -1
  182. package/dist/integrations/dynamodb.js +0 -1
  183. package/dist/integrations/elasticsearch.js +0 -1
  184. package/dist/integrations/firebase.js +0 -1
  185. package/dist/integrations/googlesheets.js +0 -1
  186. package/dist/integrations/index.js +0 -4
  187. package/dist/integrations/microsoftSqlServer.js +1 -2
  188. package/dist/integrations/mongodb.js +0 -1
  189. package/dist/integrations/mysql.js +1 -2
  190. package/dist/integrations/oracle.js +0 -1
  191. package/dist/integrations/postgres.js +1 -2
  192. package/dist/integrations/queries/sql.js +0 -3
  193. package/dist/integrations/redis.js +0 -1
  194. package/dist/integrations/rest.js +1 -2
  195. package/dist/integrations/s3.js +0 -1
  196. package/dist/package.json +6 -7
  197. package/dist/tests/utilities/TestConfiguration.js +6 -19
  198. package/dist/threads/automation.js +3 -6
  199. package/dist/threads/index.js +1 -15
  200. package/dist/threads/query.js +8 -54
  201. package/dist/tsconfig.build.tsbuildinfo +1 -1
  202. package/dist/utilities/fileSystem/index.js +6 -16
  203. package/package.json +7 -8
  204. package/src/api/controllers/application.ts +14 -18
  205. package/src/api/controllers/automation.js +2 -35
  206. package/src/api/controllers/backup.js +2 -3
  207. package/src/api/controllers/query/index.ts +1 -29
  208. package/src/api/controllers/row/external.js +9 -19
  209. package/src/api/controllers/row/internalSearch.js +0 -28
  210. package/src/api/controllers/row/utils.js +0 -3
  211. package/src/api/index.js +1 -4
  212. package/src/api/routes/automation.js +0 -10
  213. package/src/api/routes/tests/query.spec.js +0 -166
  214. package/src/automations/automationUtils.js +4 -19
  215. package/src/automations/steps/filter.js +28 -36
  216. package/src/automations/tests/filter.spec.js +1 -2
  217. package/src/automations/triggers.js +1 -1
  218. package/src/db/linkedRows/index.js +0 -1
  219. package/src/db/utils.js +13 -5
  220. package/src/definitions/common.ts +0 -1
  221. package/src/definitions/datasource.ts +0 -2
  222. package/src/environment.js +0 -1
  223. package/src/integrations/airtable.ts +0 -1
  224. package/src/integrations/arangodb.ts +0 -1
  225. package/src/integrations/base/sql.ts +11 -25
  226. package/src/integrations/couchdb.ts +0 -1
  227. package/src/integrations/dynamodb.ts +0 -1
  228. package/src/integrations/elasticsearch.ts +0 -1
  229. package/src/integrations/firebase.ts +0 -1
  230. package/src/integrations/googlesheets.ts +0 -1
  231. package/src/integrations/index.ts +0 -4
  232. package/src/integrations/microsoftSqlServer.ts +0 -2
  233. package/src/integrations/mongodb.ts +0 -1
  234. package/src/integrations/mysql.ts +0 -2
  235. package/src/integrations/oracle.ts +0 -1
  236. package/src/integrations/postgres.ts +0 -2
  237. package/src/integrations/queries/sql.ts +1 -3
  238. package/src/integrations/redis.ts +0 -1
  239. package/src/integrations/rest.ts +1 -2
  240. package/src/integrations/s3.ts +0 -1
  241. package/src/integrations/tests/rest.spec.js +1 -16
  242. package/src/migrations/tests/index.spec.ts +2 -18
  243. package/src/module.d.ts +0 -2
  244. package/src/tests/utilities/TestConfiguration.js +3 -22
  245. package/src/threads/automation.js +3 -6
  246. package/src/threads/index.ts +1 -5
  247. package/src/threads/query.js +10 -79
  248. package/src/utilities/fileSystem/index.js +8 -22
  249. package/builder/assets/index.40715052.js +0 -977
  250. package/builder/assets/index.7786f497.css +0 -6
  251. package/dist/automations/logging/index.js +0 -70
  252. package/dist/integrations/snowflake.js +0 -102
  253. package/scripts/integrations/oracle/instantclient/linux/arm64/basiclite-19.10.zip +0 -0
  254. package/scripts/integrations/oracle/instantclient/linux/arm64/install.sh +0 -23
  255. package/scripts/integrations/oracle/instantclient/linux/install.sh +0 -10
  256. package/src/automations/logging/index.ts +0 -35
  257. package/src/integrations/snowflake.ts +0 -99
@@ -23,16 +23,16 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">15.12% </span>
26
+ <span class="strong">16.07% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>18/119</span>
28
+ <span class='fraction'>18/112</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
33
  <span class="strong">0% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>0/50</span>
35
+ <span class='fraction'>0/46</span>
36
36
  </div>
37
37
 
38
38
 
@@ -44,9 +44,9 @@
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">15.51% </span>
47
+ <span class="strong">16.36% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>18/116</span>
49
+ <span class='fraction'>18/110</span>
50
50
  </div>
51
51
 
52
52
 
@@ -296,17 +296,7 @@
296
296
  <a name='L231'></a><a href='#L231'>231</a>
297
297
  <a name='L232'></a><a href='#L232'>232</a>
298
298
  <a name='L233'></a><a href='#L233'>233</a>
299
- <a name='L234'></a><a href='#L234'>234</a>
300
- <a name='L235'></a><a href='#L235'>235</a>
301
- <a name='L236'></a><a href='#L236'>236</a>
302
- <a name='L237'></a><a href='#L237'>237</a>
303
- <a name='L238'></a><a href='#L238'>238</a>
304
- <a name='L239'></a><a href='#L239'>239</a>
305
- <a name='L240'></a><a href='#L240'>240</a>
306
- <a name='L241'></a><a href='#L241'>241</a>
307
- <a name='L242'></a><a href='#L242'>242</a>
308
- <a name='L243'></a><a href='#L243'>243</a>
309
- <a name='L244'></a><a href='#L244'>244</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
299
+ <a name='L234'></a><a href='#L234'>234</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
310
300
  <span class="cline-any cline-neutral">&nbsp;</span>
311
301
  <span class="cline-any cline-neutral">&nbsp;</span>
312
302
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -469,31 +459,21 @@
469
459
  <span class="cline-any cline-no">&nbsp;</span>
470
460
  <span class="cline-any cline-no">&nbsp;</span>
471
461
  <span class="cline-any cline-no">&nbsp;</span>
472
- <span class="cline-any cline-no">&nbsp;</span>
473
462
  <span class="cline-any cline-neutral">&nbsp;</span>
474
463
  <span class="cline-any cline-no">&nbsp;</span>
475
- <span class="cline-any cline-neutral">&nbsp;</span>
476
- <span class="cline-any cline-neutral">&nbsp;</span>
477
464
  <span class="cline-any cline-no">&nbsp;</span>
478
- <span class="cline-any cline-neutral">&nbsp;</span>
465
+ <span class="cline-any cline-no">&nbsp;</span>
479
466
  <span class="cline-any cline-neutral">&nbsp;</span>
480
467
  <span class="cline-any cline-neutral">&nbsp;</span>
481
468
  <span class="cline-any cline-neutral">&nbsp;</span>
482
469
  <span class="cline-any cline-no">&nbsp;</span>
483
- <span class="cline-any cline-no">&nbsp;</span>
484
470
  <span class="cline-any cline-neutral">&nbsp;</span>
485
471
  <span class="cline-any cline-neutral">&nbsp;</span>
486
- <span class="cline-any cline-no">&nbsp;</span>
487
- <span class="cline-any cline-no">&nbsp;</span>
488
- <span class="cline-any cline-no">&nbsp;</span>
489
- <span class="cline-any cline-no">&nbsp;</span>
490
- <span class="cline-any cline-no">&nbsp;</span>
491
472
  <span class="cline-any cline-neutral">&nbsp;</span>
492
473
  <span class="cline-any cline-neutral">&nbsp;</span>
493
474
  <span class="cline-any cline-neutral">&nbsp;</span>
494
475
  <span class="cline-any cline-no">&nbsp;</span>
495
476
  <span class="cline-any cline-neutral">&nbsp;</span>
496
- <span class="cline-any cline-neutral">&nbsp;</span>
497
477
  <span class="cline-any cline-no">&nbsp;</span>
498
478
  <span class="cline-any cline-no">&nbsp;</span>
499
479
  <span class="cline-any cline-no">&nbsp;</span>
@@ -706,44 +686,34 @@ exports.validate = <span class="fstat-no" title="function not covered" >as</span
706
686
  }
707
687
  &nbsp;
708
688
  exports.exportRows = <span class="fstat-no" title="function not covered" >as</span>ync ctx =&gt; {
709
- const { datasourceId } = <span class="cstat-no" title="statement not covered" >breakExternalTableId(ctx.params.tableId)</span>
689
+ const { datasourceId, tableName } = <span class="cstat-no" title="statement not covered" >breakExternalTableId(ctx.params.tableId)</span>
710
690
  const db = <span class="cstat-no" title="statement not covered" >getAppDB()</span>
711
- const format = <span class="cstat-no" title="statement not covered" >ctx.query.format</span>
712
- const { columns } = <span class="cstat-no" title="statement not covered" >ctx.request.body</span>
691
+ let format = <span class="cstat-no" title="statement not covered" >ctx.query.format</span>
713
692
  const datasource = <span class="cstat-no" title="statement not covered" >await db.get(datasourceId)</span>
714
693
  <span class="cstat-no" title="statement not covered" > if (!datasource || !datasource.entities) {</span>
715
694
  <span class="cstat-no" title="statement not covered" > ctx.throw(400, "Datasource has not been configured for plus API.")</span>
716
695
  }
696
+ const tables = <span class="cstat-no" title="statement not covered" >datasource.entities</span>
697
+ const table = <span class="cstat-no" title="statement not covered" >tables[tableName]</span>
717
698
  <span class="cstat-no" title="statement not covered" > ctx.request.body = {</span>
718
699
  query: {
719
700
  oneOf: {
720
- _id: ctx.request.body.rows.map(<span class="fstat-no" title="function not covered" >ro</span>w =&gt; <span class="cstat-no" title="statement not covered" >JSON.parse(decodeURI(row))[0])</span>,
701
+ [table.primaryDisplay]: ctx.request.body.rows.map(
702
+ <span class="fstat-no" title="function not covered" > id</span> =&gt; <span class="cstat-no" title="statement not covered" >breakRowIdField(id)[0]</span>
703
+ ),
721
704
  },
722
705
  },
723
706
  }
724
707
  &nbsp;
725
708
  let result = <span class="cstat-no" title="statement not covered" >await exports.search(ctx)</span>
726
- let rows = <span class="cstat-no" title="statement not covered" >[]</span>
727
- &nbsp;
728
- // Filter data to only specified columns if required
729
- <span class="cstat-no" title="statement not covered" > if (columns &amp;&amp; columns.length) {</span>
730
- <span class="cstat-no" title="statement not covered" > for (let i = <span class="cstat-no" title="statement not covered" >0;</span> i &lt; result.rows.length; i++) {</span>
731
- <span class="cstat-no" title="statement not covered" > rows[i] = {}</span>
732
- <span class="cstat-no" title="statement not covered" > for (let column of columns) {</span>
733
- <span class="cstat-no" title="statement not covered" > rows[i][column] = result.rows[i][column]</span>
734
- }
735
- }
736
- } else {
737
- <span class="cstat-no" title="statement not covered" > rows = result.rows</span>
738
- }
739
709
  &nbsp;
740
- let headers = <span class="cstat-no" title="statement not covered" >Object.keys(rows[0])</span>
710
+ let headers = <span class="cstat-no" title="statement not covered" >Object.keys(result.rows[0])</span>
741
711
  const exporter = <span class="cstat-no" title="statement not covered" >exporters[format]</span>
742
712
  const filename = <span class="cstat-no" title="statement not covered" >`export.${format}`</span>
743
713
  &nbsp;
744
714
  // send down the file
745
715
  <span class="cstat-no" title="statement not covered" > ctx.attachment(filename)</span>
746
- <span class="cstat-no" title="statement not covered" > return apiFileReturn(exporter(headers, rows))</span>
716
+ <span class="cstat-no" title="statement not covered" > return apiFileReturn(exporter(headers, result.rows))</span>
747
717
  }
748
718
  &nbsp;
749
719
  exports.fetchEnrichedRow = <span class="fstat-no" title="function not covered" >as</span>ync ctx =&gt; {
@@ -799,7 +769,7 @@ exports.fetchEnrichedRow = <span class="fstat-no" title="function not covered" >
799
769
  <div class='footer quiet pad2 space-top1 center small'>
800
770
  Code coverage generated by
801
771
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
802
- at Thu Jul 07 2022 11:12:26 GMT+0000 (Coordinated Universal Time)
772
+ at Fri Jul 08 2022 12:33:10 GMT+0000 (Coordinated Universal Time)
803
773
  </div>
804
774
  <script src="../../../prettify.js"></script>
805
775
  <script>
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">56.16% </span>
26
+ <span class="strong">57.87% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>351/625</span>
28
+ <span class='fraction'>349/603</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">34.64% </span>
33
+ <span class="strong">35.82% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>97/280</span>
35
+ <span class='fraction'>96/268</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">52.27% </span>
40
+ <span class="strong">53.48% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>46/88</span>
42
+ <span class='fraction'>46/86</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">56.39% </span>
47
+ <span class="strong">57.96% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>344/610</span>
49
+ <span class='fraction'>342/590</span>
50
50
  </div>
51
51
 
52
52
 
@@ -80,17 +80,17 @@
80
80
  </thead>
81
81
  <tbody><tr>
82
82
  <td class="file low" data-value="external.js"><a href="external.js.html">external.js</a></td>
83
- <td data-value="15.12" class="pic low">
84
- <div class="chart"><div class="cover-fill" style="width: 15%"></div><div class="cover-empty" style="width: 85%"></div></div>
83
+ <td data-value="16.07" class="pic low">
84
+ <div class="chart"><div class="cover-fill" style="width: 16%"></div><div class="cover-empty" style="width: 84%"></div></div>
85
85
  </td>
86
- <td data-value="15.12" class="pct low">15.12%</td>
87
- <td data-value="119" class="abs low">18/119</td>
86
+ <td data-value="16.07" class="pct low">16.07%</td>
87
+ <td data-value="112" class="abs low">18/112</td>
88
88
  <td data-value="0" class="pct low">0%</td>
89
- <td data-value="50" class="abs low">0/50</td>
89
+ <td data-value="46" class="abs low">0/46</td>
90
90
  <td data-value="0" class="pct low">0%</td>
91
91
  <td data-value="15" class="abs low">0/15</td>
92
- <td data-value="15.51" class="pct low">15.51%</td>
93
- <td data-value="116" class="abs low">18/116</td>
92
+ <td data-value="16.36" class="pct low">16.36%</td>
93
+ <td data-value="110" class="abs low">18/110</td>
94
94
  </tr>
95
95
 
96
96
  <tr>
@@ -110,17 +110,17 @@
110
110
 
111
111
  <tr>
112
112
  <td class="file medium" data-value="internalSearch.js"><a href="internalSearch.js.html">internalSearch.js</a></td>
113
- <td data-value="57.39" class="pic medium">
114
- <div class="chart"><div class="cover-fill" style="width: 57%"></div><div class="cover-empty" style="width: 43%"></div></div>
113
+ <td data-value="60.89" class="pic medium">
114
+ <div class="chart"><div class="cover-fill" style="width: 60%"></div><div class="cover-empty" style="width: 40%"></div></div>
115
115
  </td>
116
- <td data-value="57.39" class="pct medium">57.39%</td>
117
- <td data-value="169" class="abs medium">97/169</td>
118
- <td data-value="38.61" class="pct low">38.61%</td>
119
- <td data-value="101" class="abs low">39/101</td>
120
- <td data-value="51.42" class="pct medium">51.42%</td>
121
- <td data-value="35" class="abs medium">18/35</td>
122
- <td data-value="58.18" class="pct medium">58.18%</td>
123
- <td data-value="165" class="abs medium">96/165</td>
116
+ <td data-value="60.89" class="pct medium">60.89%</td>
117
+ <td data-value="156" class="abs medium">95/156</td>
118
+ <td data-value="40" class="pct low">40%</td>
119
+ <td data-value="95" class="abs low">38/95</td>
120
+ <td data-value="54.54" class="pct medium">54.54%</td>
121
+ <td data-value="33" class="abs medium">18/33</td>
122
+ <td data-value="61.43" class="pct medium">61.43%</td>
123
+ <td data-value="153" class="abs medium">94/153</td>
124
124
  </tr>
125
125
 
126
126
  <tr>
@@ -140,17 +140,17 @@
140
140
 
141
141
  <tr>
142
142
  <td class="file medium" data-value="utils.js"><a href="utils.js.html">utils.js</a></td>
143
- <td data-value="66.66" class="pic medium">
144
- <div class="chart"><div class="cover-fill" style="width: 66%"></div><div class="cover-empty" style="width: 34%"></div></div>
143
+ <td data-value="69.23" class="pic medium">
144
+ <div class="chart"><div class="cover-fill" style="width: 69%"></div><div class="cover-empty" style="width: 31%"></div></div>
145
145
  </td>
146
- <td data-value="66.66" class="pct medium">66.66%</td>
147
- <td data-value="54" class="abs medium">36/54</td>
148
- <td data-value="38.23" class="pct low">38.23%</td>
149
- <td data-value="34" class="abs low">13/34</td>
146
+ <td data-value="69.23" class="pct medium">69.23%</td>
147
+ <td data-value="52" class="abs medium">36/52</td>
148
+ <td data-value="40.62" class="pct low">40.62%</td>
149
+ <td data-value="32" class="abs low">13/32</td>
150
150
  <td data-value="66.66" class="pct medium">66.66%</td>
151
151
  <td data-value="6" class="abs medium">4/6</td>
152
- <td data-value="66.03" class="pct medium">66.03%</td>
153
- <td data-value="53" class="abs medium">35/53</td>
152
+ <td data-value="68.62" class="pct medium">68.62%</td>
153
+ <td data-value="51" class="abs medium">35/51</td>
154
154
  </tr>
155
155
 
156
156
  </tbody>
@@ -161,7 +161,7 @@
161
161
  <div class='footer quiet pad2 space-top1 center small'>
162
162
  Code coverage generated by
163
163
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
164
- at Thu Jul 07 2022 11:12:26 GMT+0000 (Coordinated Universal Time)
164
+ at Fri Jul 08 2022 12:33:10 GMT+0000 (Coordinated Universal Time)
165
165
  </div>
166
166
  <script src="../../../prettify.js"></script>
167
167
  <script>
@@ -1435,7 +1435,7 @@ exports.fetchEnrichedRow = async ctx =&gt; {
1435
1435
  <div class='footer quiet pad2 space-top1 center small'>
1436
1436
  Code coverage generated by
1437
1437
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
1438
- at Thu Jul 07 2022 11:12:26 GMT+0000 (Coordinated Universal Time)
1438
+ at Fri Jul 08 2022 12:33:10 GMT+0000 (Coordinated Universal Time)
1439
1439
  </div>
1440
1440
  <script src="../../../prettify.js"></script>
1441
1441
  <script>
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">57.39% </span>
26
+ <span class="strong">60.89% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>97/169</span>
28
+ <span class='fraction'>95/156</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">38.61% </span>
33
+ <span class="strong">40% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>39/101</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">51.42% </span>
40
+ <span class="strong">54.54% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>18/35</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">58.18% </span>
47
+ <span class="strong">61.43% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>96/165</span>
49
+ <span class='fraction'>94/153</span>
50
50
  </div>
51
51
 
52
52
 
@@ -461,35 +461,7 @@
461
461
  <a name='L396'></a><a href='#L396'>396</a>
462
462
  <a name='L397'></a><a href='#L397'>397</a>
463
463
  <a name='L398'></a><a href='#L398'>398</a>
464
- <a name='L399'></a><a href='#L399'>399</a>
465
- <a name='L400'></a><a href='#L400'>400</a>
466
- <a name='L401'></a><a href='#L401'>401</a>
467
- <a name='L402'></a><a href='#L402'>402</a>
468
- <a name='L403'></a><a href='#L403'>403</a>
469
- <a name='L404'></a><a href='#L404'>404</a>
470
- <a name='L405'></a><a href='#L405'>405</a>
471
- <a name='L406'></a><a href='#L406'>406</a>
472
- <a name='L407'></a><a href='#L407'>407</a>
473
- <a name='L408'></a><a href='#L408'>408</a>
474
- <a name='L409'></a><a href='#L409'>409</a>
475
- <a name='L410'></a><a href='#L410'>410</a>
476
- <a name='L411'></a><a href='#L411'>411</a>
477
- <a name='L412'></a><a href='#L412'>412</a>
478
- <a name='L413'></a><a href='#L413'>413</a>
479
- <a name='L414'></a><a href='#L414'>414</a>
480
- <a name='L415'></a><a href='#L415'>415</a>
481
- <a name='L416'></a><a href='#L416'>416</a>
482
- <a name='L417'></a><a href='#L417'>417</a>
483
- <a name='L418'></a><a href='#L418'>418</a>
484
- <a name='L419'></a><a href='#L419'>419</a>
485
- <a name='L420'></a><a href='#L420'>420</a>
486
- <a name='L421'></a><a href='#L421'>421</a>
487
- <a name='L422'></a><a href='#L422'>422</a>
488
- <a name='L423'></a><a href='#L423'>423</a>
489
- <a name='L424'></a><a href='#L424'>424</a>
490
- <a name='L425'></a><a href='#L425'>425</a>
491
- <a name='L426'></a><a href='#L426'>426</a>
492
- <a name='L427'></a><a href='#L427'>427</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">43x</span>
464
+ <a name='L399'></a><a href='#L399'>399</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">43x</span>
493
465
  <span class="cline-any cline-yes">43x</span>
494
466
  <span class="cline-any cline-yes">43x</span>
495
467
  <span class="cline-any cline-yes">43x</span>
@@ -510,7 +482,6 @@
510
482
  <span class="cline-any cline-neutral">&nbsp;</span>
511
483
  <span class="cline-any cline-neutral">&nbsp;</span>
512
484
  <span class="cline-any cline-neutral">&nbsp;</span>
513
- <span class="cline-any cline-neutral">&nbsp;</span>
514
485
  <span class="cline-any cline-yes">1x</span>
515
486
  <span class="cline-any cline-yes">1x</span>
516
487
  <span class="cline-any cline-yes">1x</span>
@@ -605,11 +576,6 @@
605
576
  <span class="cline-any cline-neutral">&nbsp;</span>
606
577
  <span class="cline-any cline-neutral">&nbsp;</span>
607
578
  <span class="cline-any cline-neutral">&nbsp;</span>
608
- <span class="cline-any cline-no">&nbsp;</span>
609
- <span class="cline-any cline-no">&nbsp;</span>
610
- <span class="cline-any cline-neutral">&nbsp;</span>
611
- <span class="cline-any cline-neutral">&nbsp;</span>
612
- <span class="cline-any cline-neutral">&nbsp;</span>
613
579
  <span class="cline-any cline-neutral">&nbsp;</span>
614
580
  <span class="cline-any cline-neutral">&nbsp;</span>
615
581
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -641,7 +607,7 @@
641
607
  <span class="cline-any cline-yes">1x</span>
642
608
  <span class="cline-any cline-neutral">&nbsp;</span>
643
609
  <span class="cline-any cline-neutral">&nbsp;</span>
644
- <span class="cline-any cline-yes">8x</span>
610
+ <span class="cline-any cline-yes">7x</span>
645
611
  <span class="cline-any cline-yes">1x</span>
646
612
  <span class="cline-any cline-neutral">&nbsp;</span>
647
613
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -718,28 +684,6 @@
718
684
  <span class="cline-any cline-yes">1x</span>
719
685
  <span class="cline-any cline-neutral">&nbsp;</span>
720
686
  <span class="cline-any cline-yes">1x</span>
721
- <span class="cline-any cline-yes">1x</span>
722
- <span class="cline-any cline-no">&nbsp;</span>
723
- <span class="cline-any cline-no">&nbsp;</span>
724
- <span class="cline-any cline-no">&nbsp;</span>
725
- <span class="cline-any cline-neutral">&nbsp;</span>
726
- <span class="cline-any cline-no">&nbsp;</span>
727
- <span class="cline-any cline-neutral">&nbsp;</span>
728
- <span class="cline-any cline-neutral">&nbsp;</span>
729
- <span class="cline-any cline-no">&nbsp;</span>
730
- <span class="cline-any cline-neutral">&nbsp;</span>
731
- <span class="cline-any cline-neutral">&nbsp;</span>
732
- <span class="cline-any cline-neutral">&nbsp;</span>
733
- <span class="cline-any cline-no">&nbsp;</span>
734
- <span class="cline-any cline-no">&nbsp;</span>
735
- <span class="cline-any cline-neutral">&nbsp;</span>
736
- <span class="cline-any cline-neutral">&nbsp;</span>
737
- <span class="cline-any cline-neutral">&nbsp;</span>
738
- <span class="cline-any cline-neutral">&nbsp;</span>
739
- <span class="cline-any cline-no">&nbsp;</span>
740
- <span class="cline-any cline-neutral">&nbsp;</span>
741
- <span class="cline-any cline-neutral">&nbsp;</span>
742
- <span class="cline-any cline-yes">1x</span>
743
687
  <span class="cline-any cline-neutral">&nbsp;</span>
744
688
  <span class="cline-any cline-neutral">&nbsp;</span>
745
689
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -934,7 +878,6 @@ class QueryBuilder {
934
878
  notEqual: {},
935
879
  empty: {},
936
880
  notEmpty: {},
937
- oneOf: {},
938
881
  ...base,
939
882
  }
940
883
  this.limit = 50
@@ -1027,11 +970,6 @@ class QueryBuilder {
1027
970
  &nbsp;
1028
971
  <span class="fstat-no" title="function not covered" > ad</span>dNotEmpty(key, value) {
1029
972
  <span class="cstat-no" title="statement not covered" > this.query.notEmpty[key] = value</span>
1030
- <span class="cstat-no" title="statement not covered" > return this</span>
1031
- }
1032
- &nbsp;
1033
- <span class="fstat-no" title="function not covered" > ad</span>dOneOf(key, value) {
1034
- <span class="cstat-no" title="statement not covered" > this.query.oneOf[key] = value</span>
1035
973
  <span class="cstat-no" title="statement not covered" > return this</span>
1036
974
  }
1037
975
  &nbsp;
@@ -1143,28 +1081,6 @@ class QueryBuilder {
1143
1081
  <span class="missing-if-branch" title="else path not taken" >E</span>if (this.query.notEmpty) {
1144
1082
  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>
1145
1083
  }
1146
- <span class="missing-if-branch" title="else path not taken" >E</span>if (this.query.oneOf) {
1147
- build(this.query.oneOf, <span class="fstat-no" title="function not covered" >(k</span>ey, value) =&gt; {
1148
- <span class="cstat-no" title="statement not covered" > if (!Array.isArray(value)) {</span>
1149
- <span class="cstat-no" title="statement not covered" > if (typeof value === "string") {</span>
1150
- <span class="cstat-no" title="statement not covered" > value = value.split(",")</span>
1151
- } else {
1152
- <span class="cstat-no" title="statement not covered" > return ""</span>
1153
- }
1154
- }
1155
- let orStatement = <span class="cstat-no" title="statement not covered" >`${builder.preprocess(</span>
1156
- value[0],
1157
- allPreProcessingOpts
1158
- )}`
1159
- <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>
1160
- <span class="cstat-no" title="statement not covered" > orStatement += ` OR ${builder.preprocess(</span>
1161
- value[i],
1162
- allPreProcessingOpts
1163
- )}`
1164
- }
1165
- <span class="cstat-no" title="statement not covered" > return `${key}:(${orStatement})`</span>
1166
- })
1167
- }
1168
1084
  return query
1169
1085
  }
1170
1086
  &nbsp;
@@ -1348,7 +1264,7 @@ exports.fullSearch = async (query, params) =&gt; {
1348
1264
  <div class='footer quiet pad2 space-top1 center small'>
1349
1265
  Code coverage generated by
1350
1266
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
1351
- at Thu Jul 07 2022 11:12:26 GMT+0000 (Coordinated Universal Time)
1267
+ at Fri Jul 08 2022 12:33:10 GMT+0000 (Coordinated Universal Time)
1352
1268
  </div>
1353
1269
  <script src="../../../prettify.js"></script>
1354
1270
  <script>
@@ -538,7 +538,7 @@ exports.finaliseRow = async (
538
538
  <div class='footer quiet pad2 space-top1 center small'>
539
539
  Code coverage generated by
540
540
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
541
- at Thu Jul 07 2022 11:12:26 GMT+0000 (Coordinated Universal Time)
541
+ at Fri Jul 08 2022 12:33:10 GMT+0000 (Coordinated Universal Time)
542
542
  </div>
543
543
  <script src="../../../prettify.js"></script>
544
544
  <script>
@@ -23,16 +23,16 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">66.66% </span>
26
+ <span class="strong">69.23% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>36/54</span>
28
+ <span class='fraction'>36/52</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">38.23% </span>
33
+ <span class="strong">40.62% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>13/34</span>
35
+ <span class='fraction'>13/32</span>
36
36
  </div>
37
37
 
38
38
 
@@ -44,9 +44,9 @@
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">66.03% </span>
47
+ <span class="strong">68.62% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>35/53</span>
49
+ <span class='fraction'>35/51</span>
50
50
  </div>
51
51
 
52
52
 
@@ -155,10 +155,7 @@
155
155
  <a name='L90'></a><a href='#L90'>90</a>
156
156
  <a name='L91'></a><a href='#L91'>91</a>
157
157
  <a name='L92'></a><a href='#L92'>92</a>
158
- <a name='L93'></a><a href='#L93'>93</a>
159
- <a name='L94'></a><a href='#L94'>94</a>
160
- <a name='L95'></a><a href='#L95'>95</a>
161
- <a name='L96'></a><a href='#L96'>96</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">44x</span>
158
+ <a name='L93'></a><a href='#L93'>93</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">44x</span>
162
159
  <span class="cline-any cline-yes">44x</span>
163
160
  <span class="cline-any cline-yes">44x</span>
164
161
  <span class="cline-any cline-yes">44x</span>
@@ -227,9 +224,6 @@
227
224
  <span class="cline-any cline-no">&nbsp;</span>
228
225
  <span class="cline-any cline-no">&nbsp;</span>
229
226
  <span class="cline-any cline-neutral">&nbsp;</span>
230
- <span class="cline-any cline-no">&nbsp;</span>
231
- <span class="cline-any cline-no">&nbsp;</span>
232
- <span class="cline-any cline-neutral">&nbsp;</span>
233
227
  <span class="cline-any cline-neutral">&nbsp;</span>
234
228
  <span class="cline-any cline-neutral">&nbsp;</span>
235
229
  <span class="cline-any cline-no">&nbsp;</span>
@@ -319,9 +313,6 @@ exports.validate = async ({ tableId, row, table }) =&gt; {
319
313
  // Validate.js doesn't seem to handle array
320
314
  <span class="missing-if-branch" title="if path not taken" >I</span>if (type === FieldTypes.ARRAY &amp;&amp; <span class="branch-1 cbranch-no" title="branch not covered" >row[fieldName])</span> {
321
315
  <span class="cstat-no" title="statement not covered" > if (row[fieldName].length) {</span>
322
- <span class="cstat-no" title="statement not covered" > if (!Array.isArray(row[fieldName])) {</span>
323
- <span class="cstat-no" title="statement not covered" > row[fieldName] = row[fieldName].split(",")</span>
324
- }
325
316
  <span class="cstat-no" title="statement not covered" > row[fieldName].map(<span class="fstat-no" title="function not covered" >va</span>l =&gt; {</span>
326
317
  <span class="cstat-no" title="statement not covered" > if (</span>
327
318
  !constraints.inclusion.includes(val) &amp;&amp;
@@ -355,7 +346,7 @@ exports.validate = async ({ tableId, row, table }) =&gt; {
355
346
  <div class='footer quiet pad2 space-top1 center small'>
356
347
  Code coverage generated by
357
348
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
358
- at Thu Jul 07 2022 11:12:26 GMT+0000 (Coordinated Universal Time)
349
+ at Fri Jul 08 2022 12:33:10 GMT+0000 (Coordinated Universal Time)
359
350
  </div>
360
351
  <script src="../../../prettify.js"></script>
361
352
  <script>
@@ -244,7 +244,7 @@ exports.destroy = async ctx =&gt; {
244
244
  <div class='footer quiet pad2 space-top1 center small'>
245
245
  Code coverage generated by
246
246
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
247
- at Thu Jul 07 2022 11:12:26 GMT+0000 (Coordinated Universal Time)
247
+ at Fri Jul 08 2022 12:33:10 GMT+0000 (Coordinated Universal Time)
248
248
  </div>
249
249
  <script src="../../prettify.js"></script>
250
250
  <script>
@@ -103,7 +103,7 @@ exports.save = <span class="fstat-no" title="function not covered" >as</span>ync
103
103
  <div class='footer quiet pad2 space-top1 center small'>
104
104
  Code coverage generated by
105
105
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
106
- at Thu Jul 07 2022 11:12:26 GMT+0000 (Coordinated Universal Time)
106
+ at Fri Jul 08 2022 12:33:10 GMT+0000 (Coordinated Universal Time)
107
107
  </div>
108
108
  <script src="../../prettify.js"></script>
109
109
  <script>
@@ -589,7 +589,7 @@ exports.runStaticFormulaChecks = async (table, { oldTable, deletion }) =&gt; {
589
589
  <div class='footer quiet pad2 space-top1 center small'>
590
590
  Code coverage generated by
591
591
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
592
- at Thu Jul 07 2022 11:12:26 GMT+0000 (Coordinated Universal Time)
592
+ at Fri Jul 08 2022 12:33:10 GMT+0000 (Coordinated Universal Time)
593
593
  </div>
594
594
  <script src="../../../prettify.js"></script>
595
595
  <script>
@@ -1030,7 +1030,7 @@ exports.bulkImport = <span class="fstat-no" title="function not covered" >as</sp
1030
1030
  <div class='footer quiet pad2 space-top1 center small'>
1031
1031
  Code coverage generated by
1032
1032
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
1033
- at Thu Jul 07 2022 11:12:26 GMT+0000 (Coordinated Universal Time)
1033
+ at Fri Jul 08 2022 12:33:10 GMT+0000 (Coordinated Universal Time)
1034
1034
  </div>
1035
1035
  <script src="../../../prettify.js"></script>
1036
1036
  <script>
@@ -131,7 +131,7 @@
131
131
  <div class='footer quiet pad2 space-top1 center small'>
132
132
  Code coverage generated by
133
133
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
134
- at Thu Jul 07 2022 11:12:26 GMT+0000 (Coordinated Universal Time)
134
+ at Fri Jul 08 2022 12:33:10 GMT+0000 (Coordinated Universal Time)
135
135
  </div>
136
136
  <script src="../../../prettify.js"></script>
137
137
  <script>