@budibase/server 1.0.211 → 1.0.212-alpha.10

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 (240) hide show
  1. package/builder/assets/index.88005d52.js +978 -0
  2. package/builder/assets/index.c6912819.css +6 -0
  3. package/builder/index.html +2 -2
  4. package/coverage/clover.xml +438 -383
  5. package/coverage/coverage-final.json +11 -11
  6. package/coverage/lcov-report/api/controllers/apikeys.js.html +1 -1
  7. package/coverage/lcov-report/api/controllers/auth.js.html +1 -1
  8. package/coverage/lcov-report/api/controllers/automation.js.html +1 -1
  9. package/coverage/lcov-report/api/controllers/backup.js.html +9 -6
  10. package/coverage/lcov-report/api/controllers/cloud.js.html +1 -1
  11. package/coverage/lcov-report/api/controllers/component.js.html +1 -1
  12. package/coverage/lcov-report/api/controllers/datasource.js.html +1 -1
  13. package/coverage/lcov-report/api/controllers/dev.js.html +166 -13
  14. package/coverage/lcov-report/api/controllers/index.html +22 -22
  15. package/coverage/lcov-report/api/controllers/integration.js.html +1 -1
  16. package/coverage/lcov-report/api/controllers/layout.js.html +1 -1
  17. package/coverage/lcov-report/api/controllers/metadata.js.html +1 -1
  18. package/coverage/lcov-report/api/controllers/migrations.js.html +1 -1
  19. package/coverage/lcov-report/api/controllers/permission.js.html +1 -1
  20. package/coverage/lcov-report/api/controllers/query/index.html +1 -1
  21. package/coverage/lcov-report/api/controllers/query/validation.js.html +1 -1
  22. package/coverage/lcov-report/api/controllers/role.js.html +1 -1
  23. package/coverage/lcov-report/api/controllers/routing.js.html +1 -1
  24. package/coverage/lcov-report/api/controllers/row/external.js.html +47 -17
  25. package/coverage/lcov-report/api/controllers/row/index.html +34 -34
  26. package/coverage/lcov-report/api/controllers/row/internal.js.html +1 -1
  27. package/coverage/lcov-report/api/controllers/row/internalSearch.js.html +95 -11
  28. package/coverage/lcov-report/api/controllers/row/staticFormula.js.html +1 -1
  29. package/coverage/lcov-report/api/controllers/row/utils.js.html +17 -8
  30. package/coverage/lcov-report/api/controllers/screen.js.html +1 -1
  31. package/coverage/lcov-report/api/controllers/script.js.html +1 -1
  32. package/coverage/lcov-report/api/controllers/table/bulkFormula.js.html +1 -1
  33. package/coverage/lcov-report/api/controllers/table/external.js.html +1 -1
  34. package/coverage/lcov-report/api/controllers/table/index.html +1 -1
  35. package/coverage/lcov-report/api/controllers/table/index.js.html +1 -1
  36. package/coverage/lcov-report/api/controllers/templates.js.html +1 -1
  37. package/coverage/lcov-report/api/controllers/user.js.html +1 -1
  38. package/coverage/lcov-report/api/controllers/view/exporters.js.html +1 -1
  39. package/coverage/lcov-report/api/controllers/view/index.html +1 -1
  40. package/coverage/lcov-report/api/controllers/view/index.js.html +1 -1
  41. package/coverage/lcov-report/api/controllers/view/utils.js.html +1 -1
  42. package/coverage/lcov-report/api/controllers/view/viewBuilder.js.html +1 -1
  43. package/coverage/lcov-report/api/controllers/webhook.js.html +1 -1
  44. package/coverage/lcov-report/api/index.html +1 -1
  45. package/coverage/lcov-report/api/index.js.html +1 -1
  46. package/coverage/lcov-report/api/routes/analytics.js.html +1 -1
  47. package/coverage/lcov-report/api/routes/apikeys.js.html +1 -1
  48. package/coverage/lcov-report/api/routes/auth.js.html +1 -1
  49. package/coverage/lcov-report/api/routes/automation.js.html +1 -1
  50. package/coverage/lcov-report/api/routes/backup.js.html +1 -1
  51. package/coverage/lcov-report/api/routes/cloud.js.html +1 -1
  52. package/coverage/lcov-report/api/routes/component.js.html +1 -1
  53. package/coverage/lcov-report/api/routes/datasource.js.html +1 -1
  54. package/coverage/lcov-report/api/routes/deploy.js.html +1 -1
  55. package/coverage/lcov-report/api/routes/dev.js.html +5 -2
  56. package/coverage/lcov-report/api/routes/index.html +1 -1
  57. package/coverage/lcov-report/api/routes/integration.js.html +1 -1
  58. package/coverage/lcov-report/api/routes/layout.js.html +1 -1
  59. package/coverage/lcov-report/api/routes/metadata.js.html +1 -1
  60. package/coverage/lcov-report/api/routes/migrations.js.html +1 -1
  61. package/coverage/lcov-report/api/routes/permission.js.html +1 -1
  62. package/coverage/lcov-report/api/routes/query.js.html +1 -1
  63. package/coverage/lcov-report/api/routes/role.js.html +1 -1
  64. package/coverage/lcov-report/api/routes/routing.js.html +1 -1
  65. package/coverage/lcov-report/api/routes/screen.js.html +1 -1
  66. package/coverage/lcov-report/api/routes/script.js.html +1 -1
  67. package/coverage/lcov-report/api/routes/table.js.html +1 -1
  68. package/coverage/lcov-report/api/routes/templates.js.html +1 -1
  69. package/coverage/lcov-report/api/routes/user.js.html +1 -1
  70. package/coverage/lcov-report/api/routes/utils/index.html +1 -1
  71. package/coverage/lcov-report/api/routes/utils/validators.js.html +1 -1
  72. package/coverage/lcov-report/api/routes/view.js.html +1 -1
  73. package/coverage/lcov-report/api/routes/webhook.js.html +1 -1
  74. package/coverage/lcov-report/automations/actions.js.html +1 -1
  75. package/coverage/lcov-report/automations/automationUtils.js.html +57 -12
  76. package/coverage/lcov-report/automations/bullboard.js.html +1 -1
  77. package/coverage/lcov-report/automations/index.html +17 -17
  78. package/coverage/lcov-report/automations/index.js.html +1 -1
  79. package/coverage/lcov-report/automations/steps/bash.js.html +1 -1
  80. package/coverage/lcov-report/automations/steps/delay.js.html +1 -1
  81. package/coverage/lcov-report/automations/steps/discord.js.html +1 -1
  82. package/coverage/lcov-report/automations/steps/executeQuery.js.html +1 -1
  83. package/coverage/lcov-report/automations/steps/executeScript.js.html +1 -1
  84. package/coverage/lcov-report/automations/steps/filter.js.html +1 -1
  85. package/coverage/lcov-report/automations/steps/index.html +1 -1
  86. package/coverage/lcov-report/automations/steps/integromat.js.html +1 -1
  87. package/coverage/lcov-report/automations/steps/loop.js.html +1 -1
  88. package/coverage/lcov-report/automations/steps/outgoingWebhook.js.html +1 -1
  89. package/coverage/lcov-report/automations/steps/queryRows.js.html +1 -1
  90. package/coverage/lcov-report/automations/steps/sendSmtpEmail.js.html +1 -1
  91. package/coverage/lcov-report/automations/steps/serverLog.js.html +1 -1
  92. package/coverage/lcov-report/automations/steps/slack.js.html +1 -1
  93. package/coverage/lcov-report/automations/steps/updateRow.js.html +1 -1
  94. package/coverage/lcov-report/automations/steps/utils.js.html +1 -1
  95. package/coverage/lcov-report/automations/steps/zapier.js.html +1 -1
  96. package/coverage/lcov-report/automations/triggerInfo/app.js.html +1 -1
  97. package/coverage/lcov-report/automations/triggerInfo/cron.js.html +1 -1
  98. package/coverage/lcov-report/automations/triggerInfo/index.html +1 -1
  99. package/coverage/lcov-report/automations/triggerInfo/index.js.html +1 -1
  100. package/coverage/lcov-report/automations/triggerInfo/rowDeleted.js.html +1 -1
  101. package/coverage/lcov-report/automations/triggerInfo/rowSaved.js.html +1 -1
  102. package/coverage/lcov-report/automations/triggerInfo/rowUpdated.js.html +1 -1
  103. package/coverage/lcov-report/automations/triggerInfo/webhook.js.html +1 -1
  104. package/coverage/lcov-report/automations/triggers.js.html +4 -4
  105. package/coverage/lcov-report/constants/index.html +1 -1
  106. package/coverage/lcov-report/constants/index.js.html +1 -1
  107. package/coverage/lcov-report/constants/layouts.js.html +1 -1
  108. package/coverage/lcov-report/constants/screens.js.html +1 -1
  109. package/coverage/lcov-report/db/inMemoryView.js.html +1 -1
  110. package/coverage/lcov-report/db/index.html +10 -10
  111. package/coverage/lcov-report/db/index.js.html +1 -1
  112. package/coverage/lcov-report/db/linkedRows/LinkController.js.html +1 -1
  113. package/coverage/lcov-report/db/linkedRows/index.html +1 -1
  114. package/coverage/lcov-report/db/linkedRows/index.js.html +1 -1
  115. package/coverage/lcov-report/db/linkedRows/linkUtils.js.html +1 -1
  116. package/coverage/lcov-report/db/newid.js.html +1 -1
  117. package/coverage/lcov-report/db/utils.js.html +9 -6
  118. package/coverage/lcov-report/events/AutomationEmitter.js.html +1 -1
  119. package/coverage/lcov-report/events/index.html +1 -1
  120. package/coverage/lcov-report/events/index.js.html +1 -1
  121. package/coverage/lcov-report/events/utils.js.html +1 -1
  122. package/coverage/lcov-report/index.html +51 -51
  123. package/coverage/lcov-report/integrations/tests/TestConfiguration.js.html +1 -1
  124. package/coverage/lcov-report/integrations/tests/index.html +1 -1
  125. package/coverage/lcov-report/middleware/appInfo.js.html +1 -1
  126. package/coverage/lcov-report/middleware/builder.js.html +1 -1
  127. package/coverage/lcov-report/middleware/currentapp.js.html +1 -1
  128. package/coverage/lcov-report/middleware/index.html +1 -1
  129. package/coverage/lcov-report/middleware/joi-validator.js.html +1 -1
  130. package/coverage/lcov-report/middleware/publicApi.js.html +1 -1
  131. package/coverage/lcov-report/middleware/resourceId.js.html +1 -1
  132. package/coverage/lcov-report/middleware/selfhost.js.html +1 -1
  133. package/coverage/lcov-report/middleware/utils.js.html +1 -1
  134. package/coverage/lcov-report/threads/automation.js.html +2 -2
  135. package/coverage/lcov-report/threads/index.html +1 -1
  136. package/coverage/lcov-report/threads/query.js.html +1 -1
  137. package/coverage/lcov-report/threads/utils.js.html +1 -1
  138. package/coverage/lcov-report/utilities/budibaseDir.js.html +1 -1
  139. package/coverage/lcov-report/utilities/centralPath.js.html +1 -1
  140. package/coverage/lcov-report/utilities/csvParser.js.html +1 -1
  141. package/coverage/lcov-report/utilities/global.js.html +1 -1
  142. package/coverage/lcov-report/utilities/index.html +15 -15
  143. package/coverage/lcov-report/utilities/index.js.html +27 -9
  144. package/coverage/lcov-report/utilities/queue/inMemoryQueue.js.html +1 -1
  145. package/coverage/lcov-report/utilities/queue/index.html +1 -1
  146. package/coverage/lcov-report/utilities/routing/index.html +1 -1
  147. package/coverage/lcov-report/utilities/routing/index.js.html +1 -1
  148. package/coverage/lcov-report/utilities/rowProcessor/index.html +1 -1
  149. package/coverage/lcov-report/utilities/rowProcessor/index.js.html +1 -1
  150. package/coverage/lcov-report/utilities/rowProcessor/utils.js.html +1 -1
  151. package/coverage/lcov-report/utilities/scriptRunner.js.html +1 -1
  152. package/coverage/lcov-report/utilities/security.js.html +1 -1
  153. package/coverage/lcov-report/utilities/statusCodes.js.html +1 -1
  154. package/coverage/lcov-report/utilities/usageQuota/index.html +1 -1
  155. package/coverage/lcov-report/utilities/usageQuota/rows.js.html +1 -1
  156. package/coverage/lcov-report/utilities/usageQuota/usageQuoteReset.js.html +1 -1
  157. package/coverage/lcov-report/utilities/users.js.html +1 -1
  158. package/coverage/lcov-report/utilities/workerRequests.js.html +1 -1
  159. package/coverage/lcov.info +787 -694
  160. package/dist/api/controllers/application.js +1 -1
  161. package/dist/api/controllers/backup.js +3 -2
  162. package/dist/api/controllers/dev.js +40 -2
  163. package/dist/api/controllers/row/external.js +19 -7
  164. package/dist/api/controllers/row/internalSearch.js +22 -1
  165. package/dist/api/controllers/row/utils.js +3 -0
  166. package/dist/api/controllers/static/index.js +31 -2
  167. package/dist/api/routes/dev.js +2 -1
  168. package/dist/api/routes/static.js +1 -0
  169. package/dist/automations/automationUtils.js +16 -4
  170. package/dist/automations/triggers.js +1 -1
  171. package/dist/db/utils.js +1 -0
  172. package/dist/definitions/datasource.js +1 -0
  173. package/dist/environment.js +2 -1
  174. package/dist/integrations/airtable.js +1 -0
  175. package/dist/integrations/arangodb.js +1 -0
  176. package/dist/integrations/base/sql.js +20 -3
  177. package/dist/integrations/couchdb.js +1 -0
  178. package/dist/integrations/dynamodb.js +1 -0
  179. package/dist/integrations/elasticsearch.js +1 -0
  180. package/dist/integrations/firebase.js +1 -0
  181. package/dist/integrations/googlesheets.js +1 -0
  182. package/dist/integrations/index.js +4 -0
  183. package/dist/integrations/microsoftSqlServer.js +2 -1
  184. package/dist/integrations/mongodb.js +1 -0
  185. package/dist/integrations/mysql.js +2 -1
  186. package/dist/integrations/oracle.js +1 -0
  187. package/dist/integrations/postgres.js +2 -1
  188. package/dist/integrations/redis.js +1 -0
  189. package/dist/integrations/rest.js +1 -0
  190. package/dist/integrations/s3.js +1 -0
  191. package/dist/integrations/snowflake.js +102 -0
  192. package/dist/package.json +7 -6
  193. package/dist/threads/automation.js +1 -1
  194. package/dist/tsconfig.build.tsbuildinfo +1 -1
  195. package/dist/utilities/fileSystem/index.js +16 -6
  196. package/dist/utilities/fileSystem/utilities.js +2 -1
  197. package/dist/utilities/index.js +5 -1
  198. package/package.json +8 -7
  199. package/scripts/integrations/oracle/instantclient/linux/arm64/basiclite-19.10.zip +0 -0
  200. package/scripts/integrations/oracle/instantclient/linux/arm64/install.sh +23 -0
  201. package/scripts/integrations/oracle/instantclient/linux/install.sh +10 -0
  202. package/src/api/controllers/application.ts +5 -1
  203. package/src/api/controllers/backup.js +3 -2
  204. package/src/api/controllers/dev.js +53 -2
  205. package/src/api/controllers/row/external.js +19 -9
  206. package/src/api/controllers/row/internalSearch.js +28 -0
  207. package/src/api/controllers/row/utils.js +3 -0
  208. package/src/api/controllers/static/index.js +41 -2
  209. package/src/api/routes/dev.js +1 -0
  210. package/src/api/routes/static.ts +1 -0
  211. package/src/automations/automationUtils.js +19 -4
  212. package/src/automations/triggers.js +1 -1
  213. package/src/db/utils.js +1 -0
  214. package/src/definitions/common.ts +1 -0
  215. package/src/definitions/datasource.ts +2 -0
  216. package/src/environment.js +3 -1
  217. package/src/integrations/airtable.ts +1 -0
  218. package/src/integrations/arangodb.ts +1 -0
  219. package/src/integrations/base/sql.ts +25 -11
  220. package/src/integrations/couchdb.ts +1 -0
  221. package/src/integrations/dynamodb.ts +1 -0
  222. package/src/integrations/elasticsearch.ts +1 -0
  223. package/src/integrations/firebase.ts +1 -0
  224. package/src/integrations/googlesheets.ts +1 -0
  225. package/src/integrations/index.ts +4 -0
  226. package/src/integrations/microsoftSqlServer.ts +2 -0
  227. package/src/integrations/mongodb.ts +1 -0
  228. package/src/integrations/mysql.ts +2 -0
  229. package/src/integrations/oracle.ts +1 -0
  230. package/src/integrations/postgres.ts +2 -0
  231. package/src/integrations/redis.ts +1 -0
  232. package/src/integrations/rest.ts +1 -0
  233. package/src/integrations/s3.ts +1 -0
  234. package/src/integrations/snowflake.ts +99 -0
  235. package/src/threads/automation.js +1 -1
  236. package/src/utilities/fileSystem/index.js +22 -8
  237. package/src/utilities/fileSystem/utilities.js +2 -0
  238. package/src/utilities/index.js +7 -1
  239. package/builder/assets/index.24307ca0.css +0 -6
  240. package/builder/assets/index.4c5e5a40.js +0 -1315
@@ -23,16 +23,16 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">16.07% </span>
26
+ <span class="strong">15.12% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>18/112</span>
28
+ <span class='fraction'>18/119</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/46</span>
35
+ <span class='fraction'>0/50</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">16.36% </span>
47
+ <span class="strong">15.51% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>18/110</span>
49
+ <span class='fraction'>18/116</span>
50
50
  </div>
51
51
 
52
52
 
@@ -296,7 +296,17 @@
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></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
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>
300
310
  <span class="cline-any cline-neutral">&nbsp;</span>
301
311
  <span class="cline-any cline-neutral">&nbsp;</span>
302
312
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -459,21 +469,31 @@
459
469
  <span class="cline-any cline-no">&nbsp;</span>
460
470
  <span class="cline-any cline-no">&nbsp;</span>
461
471
  <span class="cline-any cline-no">&nbsp;</span>
462
- <span class="cline-any cline-neutral">&nbsp;</span>
463
472
  <span class="cline-any cline-no">&nbsp;</span>
473
+ <span class="cline-any cline-neutral">&nbsp;</span>
464
474
  <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>
465
477
  <span class="cline-any cline-no">&nbsp;</span>
466
478
  <span class="cline-any cline-neutral">&nbsp;</span>
467
479
  <span class="cline-any cline-neutral">&nbsp;</span>
468
480
  <span class="cline-any cline-neutral">&nbsp;</span>
481
+ <span class="cline-any cline-neutral">&nbsp;</span>
482
+ <span class="cline-any cline-no">&nbsp;</span>
469
483
  <span class="cline-any cline-no">&nbsp;</span>
470
484
  <span class="cline-any cline-neutral">&nbsp;</span>
471
485
  <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>
472
491
  <span class="cline-any cline-neutral">&nbsp;</span>
473
492
  <span class="cline-any cline-neutral">&nbsp;</span>
474
493
  <span class="cline-any cline-neutral">&nbsp;</span>
475
494
  <span class="cline-any cline-no">&nbsp;</span>
476
495
  <span class="cline-any cline-neutral">&nbsp;</span>
496
+ <span class="cline-any cline-neutral">&nbsp;</span>
477
497
  <span class="cline-any cline-no">&nbsp;</span>
478
498
  <span class="cline-any cline-no">&nbsp;</span>
479
499
  <span class="cline-any cline-no">&nbsp;</span>
@@ -686,34 +706,44 @@ exports.validate = <span class="fstat-no" title="function not covered" >as</span
686
706
  }
687
707
  &nbsp;
688
708
  exports.exportRows = <span class="fstat-no" title="function not covered" >as</span>ync ctx =&gt; {
689
- const { datasourceId, tableName } = <span class="cstat-no" title="statement not covered" >breakExternalTableId(ctx.params.tableId)</span>
709
+ const { datasourceId } = <span class="cstat-no" title="statement not covered" >breakExternalTableId(ctx.params.tableId)</span>
690
710
  const db = <span class="cstat-no" title="statement not covered" >getAppDB()</span>
691
- let format = <span class="cstat-no" title="statement not covered" >ctx.query.format</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>
692
713
  const datasource = <span class="cstat-no" title="statement not covered" >await db.get(datasourceId)</span>
693
714
  <span class="cstat-no" title="statement not covered" > if (!datasource || !datasource.entities) {</span>
694
715
  <span class="cstat-no" title="statement not covered" > ctx.throw(400, "Datasource has not been configured for plus API.")</span>
695
716
  }
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>
698
717
  <span class="cstat-no" title="statement not covered" > ctx.request.body = {</span>
699
718
  query: {
700
719
  oneOf: {
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
- ),
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>,
704
721
  },
705
722
  },
706
723
  }
707
724
  &nbsp;
708
725
  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
+ }
709
739
  &nbsp;
710
- let headers = <span class="cstat-no" title="statement not covered" >Object.keys(result.rows[0])</span>
740
+ let headers = <span class="cstat-no" title="statement not covered" >Object.keys(rows[0])</span>
711
741
  const exporter = <span class="cstat-no" title="statement not covered" >exporters[format]</span>
712
742
  const filename = <span class="cstat-no" title="statement not covered" >`export.${format}`</span>
713
743
  &nbsp;
714
744
  // send down the file
715
745
  <span class="cstat-no" title="statement not covered" > ctx.attachment(filename)</span>
716
- <span class="cstat-no" title="statement not covered" > return apiFileReturn(exporter(headers, result.rows))</span>
746
+ <span class="cstat-no" title="statement not covered" > return apiFileReturn(exporter(headers, rows))</span>
717
747
  }
718
748
  &nbsp;
719
749
  exports.fetchEnrichedRow = <span class="fstat-no" title="function not covered" >as</span>ync ctx =&gt; {
@@ -769,7 +799,7 @@ exports.fetchEnrichedRow = <span class="fstat-no" title="function not covered" >
769
799
  <div class='footer quiet pad2 space-top1 center small'>
770
800
  Code coverage generated by
771
801
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
772
- at Fri Jun 24 2022 15:04:09 GMT+0000 (Coordinated Universal Time)
802
+ at Fri Jul 01 2022 10:11:26 GMT+0000 (Coordinated Universal Time)
773
803
  </div>
774
804
  <script src="../../../prettify.js"></script>
775
805
  <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.87% </span>
26
+ <span class="strong">56.16% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>349/603</span>
28
+ <span class='fraction'>351/625</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">35.82% </span>
33
+ <span class="strong">34.64% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>96/268</span>
35
+ <span class='fraction'>97/280</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">53.48% </span>
40
+ <span class="strong">52.27% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>46/86</span>
42
+ <span class='fraction'>46/88</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">57.96% </span>
47
+ <span class="strong">56.39% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>342/590</span>
49
+ <span class='fraction'>344/610</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="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>
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>
85
85
  </td>
86
- <td data-value="16.07" class="pct low">16.07%</td>
87
- <td data-value="112" class="abs low">18/112</td>
86
+ <td data-value="15.12" class="pct low">15.12%</td>
87
+ <td data-value="119" class="abs low">18/119</td>
88
88
  <td data-value="0" class="pct low">0%</td>
89
- <td data-value="46" class="abs low">0/46</td>
89
+ <td data-value="50" class="abs low">0/50</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="16.36" class="pct low">16.36%</td>
93
- <td data-value="110" class="abs low">18/110</td>
92
+ <td data-value="15.51" class="pct low">15.51%</td>
93
+ <td data-value="116" class="abs low">18/116</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="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>
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>
115
115
  </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>
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>
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="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>
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>
145
145
  </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>
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>
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="68.62" class="pct medium">68.62%</td>
153
- <td data-value="51" class="abs medium">35/51</td>
152
+ <td data-value="66.03" class="pct medium">66.03%</td>
153
+ <td data-value="53" class="abs medium">35/53</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 Fri Jun 24 2022 15:04:09 GMT+0000 (Coordinated Universal Time)
164
+ at Fri Jul 01 2022 10:11:26 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 Fri Jun 24 2022 15:04:09 GMT+0000 (Coordinated Universal Time)
1438
+ at Fri Jul 01 2022 10:11:26 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">60.89% </span>
26
+ <span class="strong">57.39% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>95/156</span>
28
+ <span class='fraction'>97/169</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">40% </span>
33
+ <span class="strong">38.61% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>38/95</span>
35
+ <span class='fraction'>39/101</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">54.54% </span>
40
+ <span class="strong">51.42% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>18/33</span>
42
+ <span class='fraction'>18/35</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">61.43% </span>
47
+ <span class="strong">58.18% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>94/153</span>
49
+ <span class='fraction'>96/165</span>
50
50
  </div>
51
51
 
52
52
 
@@ -461,7 +461,35 @@
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></td><td class="line-coverage quiet"><span class="cline-any cline-yes">43x</span>
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>
465
493
  <span class="cline-any cline-yes">43x</span>
466
494
  <span class="cline-any cline-yes">43x</span>
467
495
  <span class="cline-any cline-yes">43x</span>
@@ -482,6 +510,7 @@
482
510
  <span class="cline-any cline-neutral">&nbsp;</span>
483
511
  <span class="cline-any cline-neutral">&nbsp;</span>
484
512
  <span class="cline-any cline-neutral">&nbsp;</span>
513
+ <span class="cline-any cline-neutral">&nbsp;</span>
485
514
  <span class="cline-any cline-yes">1x</span>
486
515
  <span class="cline-any cline-yes">1x</span>
487
516
  <span class="cline-any cline-yes">1x</span>
@@ -576,6 +605,11 @@
576
605
  <span class="cline-any cline-neutral">&nbsp;</span>
577
606
  <span class="cline-any cline-neutral">&nbsp;</span>
578
607
  <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>
579
613
  <span class="cline-any cline-neutral">&nbsp;</span>
580
614
  <span class="cline-any cline-neutral">&nbsp;</span>
581
615
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -607,7 +641,7 @@
607
641
  <span class="cline-any cline-yes">1x</span>
608
642
  <span class="cline-any cline-neutral">&nbsp;</span>
609
643
  <span class="cline-any cline-neutral">&nbsp;</span>
610
- <span class="cline-any cline-yes">7x</span>
644
+ <span class="cline-any cline-yes">8x</span>
611
645
  <span class="cline-any cline-yes">1x</span>
612
646
  <span class="cline-any cline-neutral">&nbsp;</span>
613
647
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -684,6 +718,28 @@
684
718
  <span class="cline-any cline-yes">1x</span>
685
719
  <span class="cline-any cline-neutral">&nbsp;</span>
686
720
  <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>
687
743
  <span class="cline-any cline-neutral">&nbsp;</span>
688
744
  <span class="cline-any cline-neutral">&nbsp;</span>
689
745
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -878,6 +934,7 @@ class QueryBuilder {
878
934
  notEqual: {},
879
935
  empty: {},
880
936
  notEmpty: {},
937
+ oneOf: {},
881
938
  ...base,
882
939
  }
883
940
  this.limit = 50
@@ -970,6 +1027,11 @@ class QueryBuilder {
970
1027
  &nbsp;
971
1028
  <span class="fstat-no" title="function not covered" > ad</span>dNotEmpty(key, value) {
972
1029
  <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>
973
1035
  <span class="cstat-no" title="statement not covered" > return this</span>
974
1036
  }
975
1037
  &nbsp;
@@ -1081,6 +1143,28 @@ class QueryBuilder {
1081
1143
  <span class="missing-if-branch" title="else path not taken" >E</span>if (this.query.notEmpty) {
1082
1144
  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>
1083
1145
  }
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
+ }
1084
1168
  return query
1085
1169
  }
1086
1170
  &nbsp;
@@ -1264,7 +1348,7 @@ exports.fullSearch = async (query, params) =&gt; {
1264
1348
  <div class='footer quiet pad2 space-top1 center small'>
1265
1349
  Code coverage generated by
1266
1350
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
1267
- at Fri Jun 24 2022 15:04:09 GMT+0000 (Coordinated Universal Time)
1351
+ at Fri Jul 01 2022 10:11:26 GMT+0000 (Coordinated Universal Time)
1268
1352
  </div>
1269
1353
  <script src="../../../prettify.js"></script>
1270
1354
  <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 Fri Jun 24 2022 15:04:09 GMT+0000 (Coordinated Universal Time)
541
+ at Fri Jul 01 2022 10:11:26 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">69.23% </span>
26
+ <span class="strong">66.66% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>36/52</span>
28
+ <span class='fraction'>36/54</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">40.62% </span>
33
+ <span class="strong">38.23% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>13/32</span>
35
+ <span class='fraction'>13/34</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">68.62% </span>
47
+ <span class="strong">66.03% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>35/51</span>
49
+ <span class='fraction'>35/53</span>
50
50
  </div>
51
51
 
52
52
 
@@ -155,7 +155,10 @@
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></td><td class="line-coverage quiet"><span class="cline-any cline-yes">44x</span>
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>
159
162
  <span class="cline-any cline-yes">44x</span>
160
163
  <span class="cline-any cline-yes">44x</span>
161
164
  <span class="cline-any cline-yes">44x</span>
@@ -224,6 +227,9 @@
224
227
  <span class="cline-any cline-no">&nbsp;</span>
225
228
  <span class="cline-any cline-no">&nbsp;</span>
226
229
  <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>
227
233
  <span class="cline-any cline-neutral">&nbsp;</span>
228
234
  <span class="cline-any cline-neutral">&nbsp;</span>
229
235
  <span class="cline-any cline-no">&nbsp;</span>
@@ -313,6 +319,9 @@ exports.validate = async ({ tableId, row, table }) =&gt; {
313
319
  // Validate.js doesn't seem to handle array
314
320
  <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> {
315
321
  <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
+ }
316
325
  <span class="cstat-no" title="statement not covered" > row[fieldName].map(<span class="fstat-no" title="function not covered" >va</span>l =&gt; {</span>
317
326
  <span class="cstat-no" title="statement not covered" > if (</span>
318
327
  !constraints.inclusion.includes(val) &amp;&amp;
@@ -346,7 +355,7 @@ exports.validate = async ({ tableId, row, table }) =&gt; {
346
355
  <div class='footer quiet pad2 space-top1 center small'>
347
356
  Code coverage generated by
348
357
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
349
- at Fri Jun 24 2022 15:04:09 GMT+0000 (Coordinated Universal Time)
358
+ at Fri Jul 01 2022 10:11:26 GMT+0000 (Coordinated Universal Time)
350
359
  </div>
351
360
  <script src="../../../prettify.js"></script>
352
361
  <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 Fri Jun 24 2022 15:04:09 GMT+0000 (Coordinated Universal Time)
247
+ at Fri Jul 01 2022 10:11:26 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 Fri Jun 24 2022 15:04:09 GMT+0000 (Coordinated Universal Time)
106
+ at Fri Jul 01 2022 10:11:26 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 Fri Jun 24 2022 15:04:09 GMT+0000 (Coordinated Universal Time)
592
+ at Fri Jul 01 2022 10:11:26 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 Fri Jun 24 2022 15:04:09 GMT+0000 (Coordinated Universal Time)
1033
+ at Fri Jul 01 2022 10:11:26 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 Fri Jun 24 2022 15:04:09 GMT+0000 (Coordinated Universal Time)
134
+ at Fri Jul 01 2022 10:11:26 GMT+0000 (Coordinated Universal Time)
135
135
  </div>
136
136
  <script src="../../../prettify.js"></script>
137
137
  <script>