@budibase/server 2.0.38 → 2.0.40-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (295) hide show
  1. package/__mocks__/mongodb.ts +1 -1
  2. package/__mocks__/node-fetch.ts +12 -2
  3. package/builder/assets/backups-default.8c011f1b.png +0 -0
  4. package/builder/assets/{index.e0ddd30b.css → index.442de33f.css} +2 -2
  5. package/builder/assets/{index.598a950c.js → index.d7b4247d.js} +342 -334
  6. package/builder/index.html +2 -2
  7. package/coverage/clover.xml +1125 -1250
  8. package/coverage/coverage-final.json +73 -77
  9. package/coverage/lcov-report/api/controllers/apikeys.js.html +6 -6
  10. package/coverage/lcov-report/api/controllers/automation.js.html +1 -1
  11. package/coverage/lcov-report/api/controllers/cloud.js.html +79 -67
  12. package/coverage/lcov-report/api/controllers/datasource.js.html +1 -1
  13. package/coverage/lcov-report/api/controllers/dev.js.html +21 -21
  14. package/coverage/lcov-report/api/controllers/index.html +17 -47
  15. package/coverage/lcov-report/api/controllers/integration.js.html +4 -4
  16. package/coverage/lcov-report/api/controllers/layout.js.html +1 -1
  17. package/coverage/lcov-report/api/controllers/metadata.js.html +9 -9
  18. package/coverage/lcov-report/api/controllers/migrations.js.html +4 -4
  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 +4 -4
  22. package/coverage/lcov-report/api/controllers/role.js.html +1 -1
  23. package/coverage/lcov-report/api/controllers/routing.js.html +9 -9
  24. package/coverage/lcov-report/api/controllers/row/external.js.html +1 -1
  25. package/coverage/lcov-report/api/controllers/row/index.html +1 -1
  26. package/coverage/lcov-report/api/controllers/row/internal.js.html +13 -13
  27. package/coverage/lcov-report/api/controllers/row/internalSearch.js.html +1 -1
  28. package/coverage/lcov-report/api/controllers/row/staticFormula.js.html +15 -15
  29. package/coverage/lcov-report/api/controllers/row/utils.js.html +13 -13
  30. package/coverage/lcov-report/api/controllers/script.js.html +1 -1
  31. package/coverage/lcov-report/api/controllers/table/bulkFormula.js.html +12 -9
  32. package/coverage/lcov-report/api/controllers/table/external.js.html +10 -10
  33. package/coverage/lcov-report/api/controllers/table/index.html +16 -16
  34. package/coverage/lcov-report/api/controllers/table/index.js.html +5 -5
  35. package/coverage/lcov-report/api/controllers/templates.js.html +6 -6
  36. package/coverage/lcov-report/api/controllers/user.js.html +1 -1
  37. package/coverage/lcov-report/api/controllers/view/exporters.js.html +1 -1
  38. package/coverage/lcov-report/api/controllers/view/index.html +1 -1
  39. package/coverage/lcov-report/api/controllers/view/index.js.html +3 -3
  40. package/coverage/lcov-report/api/controllers/view/utils.js.html +13 -13
  41. package/coverage/lcov-report/api/controllers/view/viewBuilder.js.html +8 -8
  42. package/coverage/lcov-report/api/index.html +1 -1
  43. package/coverage/lcov-report/api/index.js.html +30 -30
  44. package/coverage/lcov-report/api/routes/analytics.js.html +7 -7
  45. package/coverage/lcov-report/api/routes/apikeys.js.html +8 -8
  46. package/coverage/lcov-report/api/routes/automation.js.html +11 -11
  47. package/coverage/lcov-report/api/routes/cloud.js.html +8 -8
  48. package/coverage/lcov-report/api/routes/component.js.html +8 -8
  49. package/coverage/lcov-report/api/routes/datasource.js.html +9 -9
  50. package/coverage/lcov-report/api/routes/deploy.js.html +8 -8
  51. package/coverage/lcov-report/api/routes/dev.js.html +13 -13
  52. package/coverage/lcov-report/api/routes/index.html +5 -35
  53. package/coverage/lcov-report/api/routes/integration.js.html +8 -8
  54. package/coverage/lcov-report/api/routes/layout.js.html +8 -8
  55. package/coverage/lcov-report/api/routes/metadata.js.html +9 -9
  56. package/coverage/lcov-report/api/routes/migrations.js.html +7 -7
  57. package/coverage/lcov-report/api/routes/permission.js.html +9 -9
  58. package/coverage/lcov-report/api/routes/query.js.html +10 -10
  59. package/coverage/lcov-report/api/routes/role.js.html +9 -9
  60. package/coverage/lcov-report/api/routes/routing.js.html +8 -8
  61. package/coverage/lcov-report/api/routes/screen.js.html +9 -9
  62. package/coverage/lcov-report/api/routes/script.js.html +1 -1
  63. package/coverage/lcov-report/api/routes/table.js.html +10 -10
  64. package/coverage/lcov-report/api/routes/templates.js.html +8 -8
  65. package/coverage/lcov-report/api/routes/user.js.html +8 -8
  66. package/coverage/lcov-report/api/routes/utils/index.html +1 -1
  67. package/coverage/lcov-report/api/routes/utils/validators.js.html +45 -45
  68. package/coverage/lcov-report/api/routes/view.js.html +10 -10
  69. package/coverage/lcov-report/automations/actions.js.html +1 -1
  70. package/coverage/lcov-report/automations/automationUtils.js.html +6 -6
  71. package/coverage/lcov-report/automations/bullboard.js.html +24 -84
  72. package/coverage/lcov-report/automations/index.html +21 -21
  73. package/coverage/lcov-report/automations/index.js.html +9 -9
  74. package/coverage/lcov-report/automations/steps/bash.js.html +1 -1
  75. package/coverage/lcov-report/automations/steps/delay.js.html +1 -1
  76. package/coverage/lcov-report/automations/steps/discord.js.html +1 -1
  77. package/coverage/lcov-report/automations/steps/executeQuery.js.html +1 -1
  78. package/coverage/lcov-report/automations/steps/executeScript.js.html +1 -1
  79. package/coverage/lcov-report/automations/steps/filter.js.html +1 -1
  80. package/coverage/lcov-report/automations/steps/index.html +15 -15
  81. package/coverage/lcov-report/automations/steps/integromat.js.html +1 -1
  82. package/coverage/lcov-report/automations/steps/loop.js.html +1 -1
  83. package/coverage/lcov-report/automations/steps/outgoingWebhook.js.html +1 -1
  84. package/coverage/lcov-report/automations/steps/queryRows.js.html +1 -1
  85. package/coverage/lcov-report/automations/steps/sendSmtpEmail.js.html +1 -1
  86. package/coverage/lcov-report/automations/steps/serverLog.js.html +1 -1
  87. package/coverage/lcov-report/automations/steps/slack.js.html +1 -1
  88. package/coverage/lcov-report/automations/steps/updateRow.js.html +3 -3
  89. package/coverage/lcov-report/automations/steps/utils.js.html +10 -10
  90. package/coverage/lcov-report/automations/steps/zapier.js.html +1 -1
  91. package/coverage/lcov-report/automations/triggerInfo/app.js.html +1 -1
  92. package/coverage/lcov-report/automations/triggerInfo/cron.js.html +1 -1
  93. package/coverage/lcov-report/automations/triggerInfo/index.html +1 -1
  94. package/coverage/lcov-report/automations/triggerInfo/index.js.html +1 -1
  95. package/coverage/lcov-report/automations/triggerInfo/rowDeleted.js.html +1 -1
  96. package/coverage/lcov-report/automations/triggerInfo/rowSaved.js.html +1 -1
  97. package/coverage/lcov-report/automations/triggerInfo/rowUpdated.js.html +1 -1
  98. package/coverage/lcov-report/automations/triggerInfo/webhook.js.html +1 -1
  99. package/coverage/lcov-report/automations/triggers.js.html +49 -49
  100. package/coverage/lcov-report/constants/index.html +5 -5
  101. package/coverage/lcov-report/constants/index.js.html +10 -28
  102. package/coverage/lcov-report/constants/layouts.js.html +1 -1
  103. package/coverage/lcov-report/constants/screens.js.html +1 -1
  104. package/coverage/lcov-report/db/inMemoryView.js.html +1 -1
  105. package/coverage/lcov-report/db/index.html +19 -19
  106. package/coverage/lcov-report/db/index.js.html +1 -1
  107. package/coverage/lcov-report/db/linkedRows/LinkController.js.html +17 -17
  108. package/coverage/lcov-report/db/linkedRows/index.html +1 -1
  109. package/coverage/lcov-report/db/linkedRows/index.js.html +28 -28
  110. package/coverage/lcov-report/db/linkedRows/linkUtils.js.html +15 -15
  111. package/coverage/lcov-report/db/newid.js.html +2 -2
  112. package/coverage/lcov-report/db/utils.js.html +37 -316
  113. package/coverage/lcov-report/events/AutomationEmitter.js.html +1 -1
  114. package/coverage/lcov-report/events/index.html +1 -1
  115. package/coverage/lcov-report/events/index.js.html +3 -3
  116. package/coverage/lcov-report/events/utils.js.html +9 -9
  117. package/coverage/lcov-report/index.html +88 -88
  118. package/coverage/lcov-report/integrations/tests/TestConfiguration.js.html +1 -1
  119. package/coverage/lcov-report/integrations/tests/index.html +1 -1
  120. package/coverage/lcov-report/middleware/appInfo.js.html +5 -5
  121. package/coverage/lcov-report/middleware/builder.js.html +19 -19
  122. package/coverage/lcov-report/middleware/currentapp.js.html +49 -49
  123. package/coverage/lcov-report/middleware/index.html +1 -1
  124. package/coverage/lcov-report/middleware/joi-validator.js.html +1 -1
  125. package/coverage/lcov-report/middleware/publicApi.js.html +5 -5
  126. package/coverage/lcov-report/middleware/resourceId.js.html +28 -28
  127. package/coverage/lcov-report/middleware/selfhost.js.html +1 -1
  128. package/coverage/lcov-report/middleware/utils.js.html +4 -4
  129. package/coverage/lcov-report/utilities/budibaseDir.js.html +3 -3
  130. package/coverage/lcov-report/utilities/centralPath.js.html +4 -4
  131. package/coverage/lcov-report/utilities/csvParser.js.html +15 -12
  132. package/coverage/lcov-report/utilities/global.js.html +31 -31
  133. package/coverage/lcov-report/utilities/index.html +28 -28
  134. package/coverage/lcov-report/utilities/index.js.html +8 -8
  135. package/coverage/lcov-report/utilities/plugins.js.html +1 -1
  136. package/coverage/lcov-report/utilities/queue/inMemoryQueue.js.html +52 -52
  137. package/coverage/lcov-report/utilities/queue/index.html +21 -21
  138. package/coverage/lcov-report/utilities/routing/index.html +1 -1
  139. package/coverage/lcov-report/utilities/routing/index.js.html +6 -6
  140. package/coverage/lcov-report/utilities/rowProcessor/index.html +1 -1
  141. package/coverage/lcov-report/utilities/rowProcessor/index.js.html +72 -57
  142. package/coverage/lcov-report/utilities/rowProcessor/utils.js.html +15 -15
  143. package/coverage/lcov-report/utilities/scriptRunner.js.html +1 -1
  144. package/coverage/lcov-report/utilities/security.js.html +2 -2
  145. package/coverage/lcov-report/utilities/statusCodes.js.html +1 -1
  146. package/coverage/lcov-report/utilities/usageQuota/index.html +14 -14
  147. package/coverage/lcov-report/utilities/usageQuota/rows.js.html +23 -11
  148. package/coverage/lcov-report/utilities/usageQuota/usageQuoteReset.js.html +1 -1
  149. package/coverage/lcov-report/utilities/users.js.html +1 -1
  150. package/coverage/lcov-report/utilities/workerRequests.js.html +46 -46
  151. package/coverage/lcov.info +1691 -1899
  152. package/dist/api/controllers/application.js +4 -7
  153. package/dist/api/controllers/backup.js +19 -13
  154. package/dist/api/controllers/cloud.js +38 -35
  155. package/dist/api/controllers/deploy/index.js +11 -2
  156. package/dist/api/controllers/dev.js +1 -1
  157. package/dist/api/controllers/query/index.js +7 -2
  158. package/dist/api/controllers/row/index.js +40 -66
  159. package/dist/api/controllers/row/internal.js +1 -1
  160. package/dist/api/controllers/static/index.js +3 -2
  161. package/dist/api/controllers/static/templates/BudibaseApp.svelte +11 -0
  162. package/dist/api/controllers/static/templates/preview.hbs +10 -0
  163. package/dist/api/controllers/table/bulkFormula.js +4 -3
  164. package/dist/api/controllers/table/external.js +5 -4
  165. package/dist/api/controllers/table/index.js +4 -4
  166. package/dist/api/controllers/table/internal.js +10 -3
  167. package/dist/api/controllers/table/utils.js +7 -49
  168. package/dist/api/controllers/view/index.js +2 -2
  169. package/dist/api/controllers/webhook.js +88 -89
  170. package/dist/api/routes/backup.js +34 -7
  171. package/dist/api/routes/index.js +9 -4
  172. package/dist/api/routes/utils/validators.js +2 -2
  173. package/dist/api/routes/webhook.js +39 -11
  174. package/dist/app.js +2 -68
  175. package/dist/automations/automationUtils.js +2 -2
  176. package/dist/automations/bullboard.js +12 -35
  177. package/dist/automations/index.js +4 -4
  178. package/dist/automations/steps/updateRow.js +2 -2
  179. package/dist/automations/triggers.js +6 -6
  180. package/dist/automations/utils.js +23 -49
  181. package/dist/constants/index.js +4 -8
  182. package/dist/db/utils.js +10 -75
  183. package/dist/index.js +1 -0
  184. package/dist/integrations/arangodb.js +2 -0
  185. package/dist/integrations/base/sqlTable.js +1 -0
  186. package/dist/integrations/mongodb.js +300 -11
  187. package/dist/integrations/rest.js +38 -5
  188. package/dist/migrations/functions/backfill/app/tables.js +5 -8
  189. package/dist/migrations/functions/{quotas1.js → syncQuotas.js} +3 -7
  190. package/dist/migrations/functions/usageQuotas/syncApps.js +0 -1
  191. package/dist/migrations/functions/{pluginCount.js → usageQuotas/syncPlugins.js} +1 -3
  192. package/dist/migrations/functions/usageQuotas/syncRows.js +9 -5
  193. package/dist/migrations/index.js +10 -38
  194. package/dist/package.json +14 -14
  195. package/dist/sdk/app/automations/index.js +29 -0
  196. package/dist/sdk/app/automations/webhook.js +54 -0
  197. package/dist/sdk/app/backups/constants.js +5 -0
  198. package/dist/sdk/app/backups/exports.js +172 -0
  199. package/dist/sdk/app/backups/imports.js +190 -0
  200. package/dist/sdk/app/backups/index.js +29 -0
  201. package/dist/sdk/app/backups/statistics.js +73 -0
  202. package/dist/sdk/app/tables/index.js +61 -0
  203. package/dist/sdk/index.js +17 -0
  204. package/dist/startup.js +152 -0
  205. package/dist/tests/utilities/TestConfiguration.js +12 -2
  206. package/dist/threads/automation.js +12 -17
  207. package/dist/tsconfig.build.tsbuildinfo +1 -1
  208. package/dist/utilities/csvParser.js +1 -0
  209. package/dist/utilities/fileSystem/index.js +3 -95
  210. package/dist/utilities/fileSystem/utilities.js +2 -1
  211. package/dist/utilities/rowProcessor/index.js +5 -0
  212. package/dist/utilities/usageQuota/rows.js +6 -4
  213. package/package.json +15 -15
  214. package/specs/openapi.json +3 -0
  215. package/specs/openapi.yaml +3 -0
  216. package/src/api/controllers/application.ts +5 -12
  217. package/src/api/controllers/{backup.js → backup.ts} +7 -7
  218. package/src/api/controllers/cloud.js +44 -40
  219. package/src/api/controllers/deploy/index.ts +20 -8
  220. package/src/api/controllers/dev.js +1 -1
  221. package/src/api/controllers/query/index.ts +8 -2
  222. package/src/api/controllers/row/index.ts +50 -65
  223. package/src/api/controllers/row/internal.js +1 -1
  224. package/src/api/controllers/static/index.ts +4 -2
  225. package/src/api/controllers/static/templates/BudibaseApp.svelte +11 -0
  226. package/src/api/controllers/static/templates/preview.hbs +10 -0
  227. package/src/api/controllers/table/bulkFormula.js +4 -3
  228. package/src/api/controllers/table/external.js +4 -4
  229. package/src/api/controllers/table/index.js +4 -4
  230. package/src/api/controllers/table/internal.ts +8 -9
  231. package/src/api/controllers/table/utils.ts +4 -53
  232. package/src/api/controllers/view/index.js +2 -2
  233. package/src/api/controllers/{webhook.js → webhook.ts} +33 -48
  234. package/src/api/routes/backup.ts +10 -0
  235. package/src/api/routes/index.ts +11 -5
  236. package/src/api/routes/tests/backup.spec.js +1 -1
  237. package/src/api/routes/tests/{deployment.spec.js → deployment.spec.ts} +4 -4
  238. package/src/api/routes/tests/row.spec.js +22 -27
  239. package/src/api/routes/utils/validators.js +2 -2
  240. package/src/api/routes/{webhook.js → webhook.ts} +7 -6
  241. package/src/app.ts +3 -91
  242. package/src/automations/automationUtils.js +2 -2
  243. package/src/automations/bullboard.js +14 -34
  244. package/src/automations/index.js +4 -4
  245. package/src/automations/steps/updateRow.js +2 -2
  246. package/src/automations/tests/automation.spec.js +1 -6
  247. package/src/automations/triggers.js +6 -6
  248. package/src/automations/utils.ts +30 -32
  249. package/src/constants/index.js +4 -10
  250. package/src/db/utils.js +17 -110
  251. package/src/definitions/automations.ts +1 -18
  252. package/src/definitions/datasource.ts +1 -0
  253. package/src/index.ts +1 -0
  254. package/src/integrations/arangodb.ts +2 -0
  255. package/src/integrations/base/sqlTable.ts +1 -0
  256. package/src/integrations/mongodb.ts +290 -27
  257. package/src/integrations/rest.ts +17 -5
  258. package/src/integrations/tests/mongo.spec.ts +19 -19
  259. package/src/integrations/tests/rest.spec.ts +38 -22
  260. package/src/migrations/functions/backfill/app/tables.ts +7 -13
  261. package/src/migrations/functions/backfill/global.ts +1 -1
  262. package/src/migrations/functions/{quotas1.ts → syncQuotas.ts} +3 -8
  263. package/src/migrations/functions/tests/{quotas1.spec.js → syncQuotas.spec.js} +6 -5
  264. package/src/migrations/functions/tests/userEmailViewCasing.spec.js +6 -4
  265. package/src/migrations/functions/usageQuotas/syncApps.ts +0 -1
  266. package/src/migrations/functions/usageQuotas/syncPlugins.ts +10 -0
  267. package/src/migrations/functions/usageQuotas/syncRows.ts +15 -6
  268. package/src/migrations/functions/usageQuotas/tests/syncRows.spec.ts +9 -1
  269. package/src/migrations/index.ts +21 -45
  270. package/src/migrations/tests/index.spec.ts +0 -1
  271. package/src/sdk/app/automations/index.ts +5 -0
  272. package/src/sdk/app/automations/webhook.ts +43 -0
  273. package/src/sdk/app/backups/constants.ts +2 -0
  274. package/src/sdk/app/backups/exports.ts +171 -0
  275. package/src/sdk/app/backups/imports.ts +206 -0
  276. package/src/sdk/app/backups/index.ts +9 -0
  277. package/src/sdk/app/backups/statistics.ts +78 -0
  278. package/src/sdk/app/tables/index.ts +61 -0
  279. package/src/sdk/index.ts +15 -0
  280. package/src/startup.ts +138 -0
  281. package/src/tests/utilities/TestConfiguration.js +12 -2
  282. package/src/threads/automation.ts +20 -27
  283. package/src/utilities/csvParser.js +1 -0
  284. package/src/utilities/fileSystem/index.js +2 -119
  285. package/src/utilities/fileSystem/utilities.js +2 -0
  286. package/src/utilities/rowProcessor/index.js +5 -0
  287. package/src/utilities/usageQuota/rows.js +7 -3
  288. package/coverage/lcov-report/api/controllers/backup.js.html +0 -142
  289. package/coverage/lcov-report/api/controllers/webhook.js.html +0 -424
  290. package/coverage/lcov-report/api/routes/backup.js.html +0 -115
  291. package/coverage/lcov-report/api/routes/webhook.js.html +0 -163
  292. package/dist/automations/listeners.js +0 -102
  293. package/src/api/routes/backup.js +0 -10
  294. package/src/automations/listeners.ts +0 -78
  295. package/src/migrations/functions/pluginCount.ts +0 -12
@@ -405,27 +405,32 @@
405
405
  <a name='L340'></a><a href='#L340'>340</a>
406
406
  <a name='L341'></a><a href='#L341'>341</a>
407
407
  <a name='L342'></a><a href='#L342'>342</a>
408
- <a name='L343'></a><a href='#L343'>343</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">46x</span>
409
- <span class="cline-any cline-yes">46x</span>
410
- <span class="cline-any cline-yes">46x</span>
411
- <span class="cline-any cline-yes">46x</span>
412
- <span class="cline-any cline-yes">46x</span>
413
- <span class="cline-any cline-yes">46x</span>
414
- <span class="cline-any cline-yes">46x</span>
408
+ <a name='L343'></a><a href='#L343'>343</a>
409
+ <a name='L344'></a><a href='#L344'>344</a>
410
+ <a name='L345'></a><a href='#L345'>345</a>
411
+ <a name='L346'></a><a href='#L346'>346</a>
412
+ <a name='L347'></a><a href='#L347'>347</a>
413
+ <a name='L348'></a><a href='#L348'>348</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">45x</span>
414
+ <span class="cline-any cline-yes">45x</span>
415
+ <span class="cline-any cline-yes">45x</span>
416
+ <span class="cline-any cline-yes">45x</span>
417
+ <span class="cline-any cline-yes">45x</span>
418
+ <span class="cline-any cline-yes">45x</span>
419
+ <span class="cline-any cline-yes">45x</span>
415
420
  <span class="cline-any cline-neutral">&nbsp;</span>
416
421
  <span class="cline-any cline-neutral">&nbsp;</span>
417
422
  <span class="cline-any cline-neutral">&nbsp;</span>
418
423
  <span class="cline-any cline-neutral">&nbsp;</span>
419
- <span class="cline-any cline-yes">46x</span>
420
- <span class="cline-any cline-yes">46x</span>
421
- <span class="cline-any cline-yes">46x</span>
424
+ <span class="cline-any cline-yes">45x</span>
425
+ <span class="cline-any cline-yes">45x</span>
426
+ <span class="cline-any cline-yes">45x</span>
422
427
  <span class="cline-any cline-neutral">&nbsp;</span>
423
- <span class="cline-any cline-yes">46x</span>
428
+ <span class="cline-any cline-yes">45x</span>
424
429
  <span class="cline-any cline-neutral">&nbsp;</span>
425
430
  <span class="cline-any cline-neutral">&nbsp;</span>
426
431
  <span class="cline-any cline-neutral">&nbsp;</span>
427
432
  <span class="cline-any cline-neutral">&nbsp;</span>
428
- <span class="cline-any cline-yes">46x</span>
433
+ <span class="cline-any cline-yes">45x</span>
429
434
  <span class="cline-any cline-neutral">&nbsp;</span>
430
435
  <span class="cline-any cline-neutral">&nbsp;</span>
431
436
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -469,6 +474,11 @@
469
474
  <span class="cline-any cline-neutral">&nbsp;</span>
470
475
  <span class="cline-any cline-neutral">&nbsp;</span>
471
476
  <span class="cline-any cline-neutral">&nbsp;</span>
477
+ <span class="cline-any cline-neutral">&nbsp;</span>
478
+ <span class="cline-any cline-neutral">&nbsp;</span>
479
+ <span class="cline-any cline-neutral">&nbsp;</span>
480
+ <span class="cline-any cline-neutral">&nbsp;</span>
481
+ <span class="cline-any cline-neutral">&nbsp;</span>
472
482
  <span class="cline-any cline-yes">9x</span>
473
483
  <span class="cline-any cline-neutral">&nbsp;</span>
474
484
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -544,17 +554,17 @@
544
554
  <span class="cline-any cline-neutral">&nbsp;</span>
545
555
  <span class="cline-any cline-neutral">&nbsp;</span>
546
556
  <span class="cline-any cline-neutral">&nbsp;</span>
547
- <span class="cline-any cline-yes">85x</span>
548
- <span class="cline-any cline-yes">85x</span>
549
- <span class="cline-any cline-yes">85x</span>
557
+ <span class="cline-any cline-yes">86x</span>
558
+ <span class="cline-any cline-yes">86x</span>
559
+ <span class="cline-any cline-yes">86x</span>
550
560
  <span class="cline-any cline-neutral">&nbsp;</span>
551
- <span class="cline-any cline-yes">85x</span>
561
+ <span class="cline-any cline-yes">86x</span>
552
562
  <span class="cline-any cline-neutral">&nbsp;</span>
553
563
  <span class="cline-any cline-neutral">&nbsp;</span>
554
- <span class="cline-any cline-yes">85x</span>
555
- <span class="cline-any cline-yes">85x</span>
556
- <span class="cline-any cline-yes">230x</span>
557
- <span class="cline-any cline-yes">230x</span>
564
+ <span class="cline-any cline-yes">86x</span>
565
+ <span class="cline-any cline-yes">86x</span>
566
+ <span class="cline-any cline-yes">232x</span>
567
+ <span class="cline-any cline-yes">232x</span>
558
568
  <span class="cline-any cline-neutral">&nbsp;</span>
559
569
  <span class="cline-any cline-no">&nbsp;</span>
560
570
  <span class="cline-any cline-no">&nbsp;</span>
@@ -586,11 +596,11 @@
586
596
  <span class="cline-any cline-no">&nbsp;</span>
587
597
  <span class="cline-any cline-neutral">&nbsp;</span>
588
598
  <span class="cline-any cline-neutral">&nbsp;</span>
589
- <span class="cline-any cline-yes">85x</span>
599
+ <span class="cline-any cline-yes">86x</span>
590
600
  <span class="cline-any cline-neutral">&nbsp;</span>
591
- <span class="cline-any cline-yes">46x</span>
592
- <span class="cline-any cline-yes">46x</span>
593
- <span class="cline-any cline-yes">46x</span>
601
+ <span class="cline-any cline-yes">45x</span>
602
+ <span class="cline-any cline-yes">45x</span>
603
+ <span class="cline-any cline-yes">45x</span>
594
604
  <span class="cline-any cline-neutral">&nbsp;</span>
595
605
  <span class="cline-any cline-neutral">&nbsp;</span>
596
606
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -598,19 +608,19 @@
598
608
  <span class="cline-any cline-neutral">&nbsp;</span>
599
609
  <span class="cline-any cline-neutral">&nbsp;</span>
600
610
  <span class="cline-any cline-neutral">&nbsp;</span>
601
- <span class="cline-any cline-yes">46x</span>
611
+ <span class="cline-any cline-yes">45x</span>
602
612
  <span class="cline-any cline-neutral">&nbsp;</span>
603
- <span class="cline-any cline-yes">198x</span>
613
+ <span class="cline-any cline-yes">200x</span>
604
614
  <span class="cline-any cline-no">&nbsp;</span>
605
615
  <span class="cline-any cline-neutral">&nbsp;</span>
606
616
  <span class="cline-any cline-neutral">&nbsp;</span>
607
- <span class="cline-any cline-yes">198x</span>
617
+ <span class="cline-any cline-yes">200x</span>
608
618
  <span class="cline-any cline-yes">16x</span>
609
- <span class="cline-any cline-yes">182x</span>
619
+ <span class="cline-any cline-yes">184x</span>
610
620
  <span class="cline-any cline-yes">22x</span>
611
621
  <span class="cline-any cline-neutral">&nbsp;</span>
612
622
  <span class="cline-any cline-neutral">&nbsp;</span>
613
- <span class="cline-any cline-yes">160x</span>
623
+ <span class="cline-any cline-yes">162x</span>
614
624
  <span class="cline-any cline-neutral">&nbsp;</span>
615
625
  <span class="cline-any cline-neutral">&nbsp;</span>
616
626
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -622,42 +632,42 @@
622
632
  <span class="cline-any cline-neutral">&nbsp;</span>
623
633
  <span class="cline-any cline-neutral">&nbsp;</span>
624
634
  <span class="cline-any cline-neutral">&nbsp;</span>
625
- <span class="cline-any cline-yes">46x</span>
635
+ <span class="cline-any cline-yes">45x</span>
626
636
  <span class="cline-any cline-neutral">&nbsp;</span>
627
637
  <span class="cline-any cline-neutral">&nbsp;</span>
628
638
  <span class="cline-any cline-neutral">&nbsp;</span>
629
639
  <span class="cline-any cline-neutral">&nbsp;</span>
630
640
  <span class="cline-any cline-neutral">&nbsp;</span>
631
- <span class="cline-any cline-yes">85x</span>
641
+ <span class="cline-any cline-yes">86x</span>
632
642
  <span class="cline-any cline-neutral">&nbsp;</span>
633
- <span class="cline-any cline-yes">85x</span>
634
- <span class="cline-any cline-yes">85x</span>
635
- <span class="cline-any cline-yes">85x</span>
636
- <span class="cline-any cline-yes">393x</span>
643
+ <span class="cline-any cline-yes">86x</span>
644
+ <span class="cline-any cline-yes">86x</span>
645
+ <span class="cline-any cline-yes">86x</span>
646
+ <span class="cline-any cline-yes">397x</span>
637
647
  <span class="cline-any cline-neutral">&nbsp;</span>
638
- <span class="cline-any cline-yes">393x</span>
639
- <span class="cline-any cline-yes">196x</span>
648
+ <span class="cline-any cline-yes">397x</span>
649
+ <span class="cline-any cline-yes">198x</span>
640
650
  <span class="cline-any cline-yes">13x</span>
641
651
  <span class="cline-any cline-neutral">&nbsp;</span>
642
- <span class="cline-any cline-yes">196x</span>
652
+ <span class="cline-any cline-yes">198x</span>
643
653
  <span class="cline-any cline-neutral">&nbsp;</span>
644
654
  <span class="cline-any cline-neutral">&nbsp;</span>
645
- <span class="cline-any cline-yes">197x</span>
655
+ <span class="cline-any cline-yes">199x</span>
646
656
  <span class="cline-any cline-no">&nbsp;</span>
647
657
  <span class="cline-any cline-neutral">&nbsp;</span>
648
658
  <span class="cline-any cline-neutral">&nbsp;</span>
649
659
  <span class="cline-any cline-neutral">&nbsp;</span>
650
- <span class="cline-any cline-yes">197x</span>
660
+ <span class="cline-any cline-yes">199x</span>
651
661
  <span class="cline-any cline-neutral">&nbsp;</span>
652
662
  <span class="cline-any cline-neutral">&nbsp;</span>
653
663
  <span class="cline-any cline-neutral">&nbsp;</span>
654
- <span class="cline-any cline-yes">85x</span>
655
- <span class="cline-any cline-yes">79x</span>
656
- <span class="cline-any cline-yes">79x</span>
664
+ <span class="cline-any cline-yes">86x</span>
665
+ <span class="cline-any cline-yes">80x</span>
666
+ <span class="cline-any cline-yes">80x</span>
657
667
  <span class="cline-any cline-neutral">&nbsp;</span>
658
668
  <span class="cline-any cline-neutral">&nbsp;</span>
659
669
  <span class="cline-any cline-neutral">&nbsp;</span>
660
- <span class="cline-any cline-yes">85x</span>
670
+ <span class="cline-any cline-yes">86x</span>
661
671
  <span class="cline-any cline-neutral">&nbsp;</span>
662
672
  <span class="cline-any cline-neutral">&nbsp;</span>
663
673
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -669,21 +679,21 @@
669
679
  <span class="cline-any cline-neutral">&nbsp;</span>
670
680
  <span class="cline-any cline-neutral">&nbsp;</span>
671
681
  <span class="cline-any cline-neutral">&nbsp;</span>
672
- <span class="cline-any cline-yes">46x</span>
673
- <span class="cline-any cline-yes">125x</span>
674
- <span class="cline-any cline-yes">125x</span>
675
- <span class="cline-any cline-yes">105x</span>
676
- <span class="cline-any cline-yes">105x</span>
682
+ <span class="cline-any cline-yes">45x</span>
683
+ <span class="cline-any cline-yes">126x</span>
684
+ <span class="cline-any cline-yes">126x</span>
685
+ <span class="cline-any cline-yes">106x</span>
686
+ <span class="cline-any cline-yes">106x</span>
677
687
  <span class="cline-any cline-neutral">&nbsp;</span>
678
688
  <span class="cline-any cline-neutral">&nbsp;</span>
679
- <span class="cline-any cline-yes">125x</span>
689
+ <span class="cline-any cline-yes">126x</span>
680
690
  <span class="cline-any cline-neutral">&nbsp;</span>
681
691
  <span class="cline-any cline-neutral">&nbsp;</span>
682
- <span class="cline-any cline-yes">125x</span>
692
+ <span class="cline-any cline-yes">126x</span>
683
693
  <span class="cline-any cline-neutral">&nbsp;</span>
684
694
  <span class="cline-any cline-neutral">&nbsp;</span>
685
- <span class="cline-any cline-yes">125x</span>
686
- <span class="cline-any cline-yes">349x</span>
695
+ <span class="cline-any cline-yes">126x</span>
696
+ <span class="cline-any cline-yes">351x</span>
687
697
  <span class="cline-any cline-yes">8x</span>
688
698
  <span class="cline-any cline-yes">8x</span>
689
699
  <span class="cline-any cline-yes">2x</span>
@@ -694,10 +704,10 @@
694
704
  <span class="cline-any cline-neutral">&nbsp;</span>
695
705
  <span class="cline-any cline-neutral">&nbsp;</span>
696
706
  <span class="cline-any cline-neutral">&nbsp;</span>
697
- <span class="cline-any cline-yes">125x</span>
707
+ <span class="cline-any cline-yes">126x</span>
698
708
  <span class="cline-any cline-yes">40x</span>
699
709
  <span class="cline-any cline-neutral">&nbsp;</span>
700
- <span class="cline-any cline-yes">125x</span>
710
+ <span class="cline-any cline-yes">126x</span>
701
711
  <span class="cline-any cline-neutral">&nbsp;</span>
702
712
  <span class="cline-any cline-neutral">&nbsp;</span>
703
713
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -710,7 +720,7 @@
710
720
  <span class="cline-any cline-neutral">&nbsp;</span>
711
721
  <span class="cline-any cline-neutral">&nbsp;</span>
712
722
  <span class="cline-any cline-neutral">&nbsp;</span>
713
- <span class="cline-any cline-yes">46x</span>
723
+ <span class="cline-any cline-yes">45x</span>
714
724
  <span class="cline-any cline-yes">14x</span>
715
725
  <span class="cline-any cline-yes">14x</span>
716
726
  <span class="cline-any cline-yes">14x</span>
@@ -797,6 +807,11 @@ const TYPE_TRANSFORM_MAP = {
797
807
  [null]: "",
798
808
  [undefined]: undefined,
799
809
  },
810
+ [FieldTypes.BARCODEQR]: {
811
+ "": "",
812
+ [null]: "",
813
+ [undefined]: undefined,
814
+ },
800
815
  [FieldTypes.FORMULA]: {
801
816
  "": "",
802
817
  [null]: "",
@@ -1096,7 +1111,7 @@ exports.cleanupAttachments = async (table, { row, rows, oldRow, oldTable }) =&gt
1096
1111
  <div class='footer quiet pad2 space-top1 center small'>
1097
1112
  Code coverage generated by
1098
1113
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
1099
- at Tue Oct 25 2022 15:42:56 GMT+0000 (Coordinated Universal Time)
1114
+ at Mon Oct 31 2022 14:00:24 GMT+0000 (Coordinated Universal Time)
1100
1115
  </div>
1101
1116
  <script src="../../prettify.js"></script>
1102
1117
  <script>
@@ -160,14 +160,14 @@
160
160
  <span class="cline-any cline-neutral">&nbsp;</span>
161
161
  <span class="cline-any cline-neutral">&nbsp;</span>
162
162
  <span class="cline-any cline-neutral">&nbsp;</span>
163
- <span class="cline-any cline-yes">46x</span>
164
- <span class="cline-any cline-yes">46x</span>
163
+ <span class="cline-any cline-yes">45x</span>
164
+ <span class="cline-any cline-yes">45x</span>
165
165
  <span class="cline-any cline-neutral">&nbsp;</span>
166
166
  <span class="cline-any cline-neutral">&nbsp;</span>
167
167
  <span class="cline-any cline-neutral">&nbsp;</span>
168
168
  <span class="cline-any cline-neutral">&nbsp;</span>
169
169
  <span class="cline-any cline-neutral">&nbsp;</span>
170
- <span class="cline-any cline-yes">46x</span>
170
+ <span class="cline-any cline-yes">45x</span>
171
171
  <span class="cline-any cline-yes">2x</span>
172
172
  <span class="cline-any cline-no">&nbsp;</span>
173
173
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -189,24 +189,24 @@
189
189
  <span class="cline-any cline-neutral">&nbsp;</span>
190
190
  <span class="cline-any cline-neutral">&nbsp;</span>
191
191
  <span class="cline-any cline-neutral">&nbsp;</span>
192
- <span class="cline-any cline-yes">46x</span>
192
+ <span class="cline-any cline-yes">45x</span>
193
193
  <span class="cline-any cline-neutral">&nbsp;</span>
194
194
  <span class="cline-any cline-neutral">&nbsp;</span>
195
195
  <span class="cline-any cline-neutral">&nbsp;</span>
196
196
  <span class="cline-any cline-neutral">&nbsp;</span>
197
- <span class="cline-any cline-yes">303x</span>
198
- <span class="cline-any cline-yes">303x</span>
199
- <span class="cline-any cline-yes">178x</span>
200
- <span class="cline-any cline-yes">178x</span>
197
+ <span class="cline-any cline-yes">306x</span>
198
+ <span class="cline-any cline-yes">306x</span>
199
+ <span class="cline-any cline-yes">180x</span>
200
+ <span class="cline-any cline-yes">180x</span>
201
201
  <span class="cline-any cline-neutral">&nbsp;</span>
202
- <span class="cline-any cline-yes">303x</span>
203
- <span class="cline-any cline-yes">851x</span>
204
- <span class="cline-any cline-yes">851x</span>
202
+ <span class="cline-any cline-yes">306x</span>
203
+ <span class="cline-any cline-yes">857x</span>
204
+ <span class="cline-any cline-yes">857x</span>
205
205
  <span class="cline-any cline-neutral">&nbsp;</span>
206
206
  <span class="cline-any cline-neutral">&nbsp;</span>
207
207
  <span class="cline-any cline-neutral">&nbsp;</span>
208
208
  <span class="cline-any cline-neutral">&nbsp;</span>
209
- <span class="cline-any cline-yes">851x</span>
209
+ <span class="cline-any cline-yes">857x</span>
210
210
  <span class="cline-any cline-neutral">&nbsp;</span>
211
211
  <span class="cline-any cline-neutral">&nbsp;</span>
212
212
  <span class="cline-any cline-no">&nbsp;</span>
@@ -220,14 +220,14 @@
220
220
  <span class="cline-any cline-neutral">&nbsp;</span>
221
221
  <span class="cline-any cline-neutral">&nbsp;</span>
222
222
  <span class="cline-any cline-neutral">&nbsp;</span>
223
- <span class="cline-any cline-yes">303x</span>
223
+ <span class="cline-any cline-yes">306x</span>
224
224
  <span class="cline-any cline-neutral">&nbsp;</span>
225
225
  <span class="cline-any cline-neutral">&nbsp;</span>
226
226
  <span class="cline-any cline-neutral">&nbsp;</span>
227
227
  <span class="cline-any cline-neutral">&nbsp;</span>
228
228
  <span class="cline-any cline-neutral">&nbsp;</span>
229
229
  <span class="cline-any cline-neutral">&nbsp;</span>
230
- <span class="cline-any cline-yes">46x</span>
230
+ <span class="cline-any cline-yes">45x</span>
231
231
  <span class="cline-any cline-no">&nbsp;</span>
232
232
  <span class="cline-any cline-no">&nbsp;</span>
233
233
  <span class="cline-any cline-no">&nbsp;</span>
@@ -346,7 +346,7 @@ exports.processDates = <span class="fstat-no" title="function not covered" >(t</
346
346
  <div class='footer quiet pad2 space-top1 center small'>
347
347
  Code coverage generated by
348
348
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
349
- at Tue Oct 25 2022 15:42:56 GMT+0000 (Coordinated Universal Time)
349
+ at Mon Oct 31 2022 14:00:24 GMT+0000 (Coordinated Universal Time)
350
350
  </div>
351
351
  <script src="../../prettify.js"></script>
352
352
  <script>
@@ -142,7 +142,7 @@ module.exports = ScriptRunner
142
142
  <div class='footer quiet pad2 space-top1 center small'>
143
143
  Code coverage generated by
144
144
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
145
- at Tue Oct 25 2022 15:42:56 GMT+0000 (Coordinated Universal Time)
145
+ at Mon Oct 31 2022 14:00:24 GMT+0000 (Coordinated Universal Time)
146
146
  </div>
147
147
  <script src="../prettify.js"></script>
148
148
  <script>
@@ -154,7 +154,7 @@
154
154
  <span class="cline-any cline-neutral">&nbsp;</span>
155
155
  <span class="cline-any cline-yes">44x</span>
156
156
  <span class="cline-any cline-yes">4x</span>
157
- <span class="cline-any cline-yes">124x</span>
157
+ <span class="cline-any cline-yes">128x</span>
158
158
  <span class="cline-any cline-neutral">&nbsp;</span>
159
159
  <span class="cline-any cline-yes">4x</span>
160
160
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -283,7 +283,7 @@ exports.CURRENTLY_SUPPORTED_LEVELS = CURRENTLY_SUPPORTED_LEVELS
283
283
  <div class='footer quiet pad2 space-top1 center small'>
284
284
  Code coverage generated by
285
285
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
286
- at Tue Oct 25 2022 15:42:56 GMT+0000 (Coordinated Universal Time)
286
+ at Mon Oct 31 2022 14:00:24 GMT+0000 (Coordinated Universal Time)
287
287
  </div>
288
288
  <script src="../prettify.js"></script>
289
289
  <script>
@@ -91,7 +91,7 @@
91
91
  <div class='footer quiet pad2 space-top1 center small'>
92
92
  Code coverage generated by
93
93
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
94
- at Tue Oct 25 2022 15:42:56 GMT+0000 (Coordinated Universal Time)
94
+ at Mon Oct 31 2022 14:00:24 GMT+0000 (Coordinated Universal Time)
95
95
  </div>
96
96
  <script src="../prettify.js"></script>
97
97
  <script>
@@ -23,16 +23,16 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">82.5% </span>
26
+ <span class="strong">83.72% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>33/40</span>
28
+ <span class='fraction'>36/43</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">70% </span>
33
+ <span class="strong">75% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>7/10</span>
35
+ <span class='fraction'>9/12</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">82.5% </span>
47
+ <span class="strong">83.72% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>33/40</span>
49
+ <span class='fraction'>36/43</span>
50
50
  </div>
51
51
 
52
52
 
@@ -80,17 +80,17 @@
80
80
  </thead>
81
81
  <tbody><tr>
82
82
  <td class="file high" data-value="rows.js"><a href="rows.js.html">rows.js</a></td>
83
- <td data-value="94.28" class="pic high">
83
+ <td data-value="94.73" class="pic high">
84
84
  <div class="chart"><div class="cover-fill" style="width: 94%"></div><div class="cover-empty" style="width: 6%"></div></div>
85
85
  </td>
86
- <td data-value="94.28" class="pct high">94.28%</td>
87
- <td data-value="35" class="abs high">33/35</td>
88
- <td data-value="87.5" class="pct high">87.5%</td>
89
- <td data-value="8" class="abs high">7/8</td>
86
+ <td data-value="94.73" class="pct high">94.73%</td>
87
+ <td data-value="38" class="abs high">36/38</td>
88
+ <td data-value="90" class="pct high">90%</td>
89
+ <td data-value="10" class="abs high">9/10</td>
90
90
  <td data-value="100" class="pct high">100%</td>
91
91
  <td data-value="6" class="abs high">6/6</td>
92
- <td data-value="94.28" class="pct high">94.28%</td>
93
- <td data-value="35" class="abs high">33/35</td>
92
+ <td data-value="94.73" class="pct high">94.73%</td>
93
+ <td data-value="38" class="abs high">36/38</td>
94
94
  </tr>
95
95
 
96
96
  <tr>
@@ -116,7 +116,7 @@
116
116
  <div class='footer quiet pad2 space-top1 center small'>
117
117
  Code coverage generated by
118
118
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
119
- at Tue Oct 25 2022 15:42:56 GMT+0000 (Coordinated Universal Time)
119
+ at Mon Oct 31 2022 14:00:24 GMT+0000 (Coordinated Universal Time)
120
120
  </div>
121
121
  <script src="../../prettify.js"></script>
122
122
  <script>
@@ -23,16 +23,16 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">94.28% </span>
26
+ <span class="strong">94.73% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>33/35</span>
28
+ <span class='fraction'>36/38</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">87.5% </span>
33
+ <span class="strong">90% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>7/8</span>
35
+ <span class='fraction'>9/10</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">94.28% </span>
47
+ <span class="strong">94.73% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>33/35</span>
49
+ <span class='fraction'>36/38</span>
50
50
  </div>
51
51
 
52
52
 
@@ -143,7 +143,12 @@
143
143
  <a name='L78'></a><a href='#L78'>78</a>
144
144
  <a name='L79'></a><a href='#L79'>79</a>
145
145
  <a name='L80'></a><a href='#L80'>80</a>
146
- <a name='L81'></a><a href='#L81'>81</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">44x</span>
146
+ <a name='L81'></a><a href='#L81'>81</a>
147
+ <a name='L82'></a><a href='#L82'>82</a>
148
+ <a name='L83'></a><a href='#L83'>83</a>
149
+ <a name='L84'></a><a href='#L84'>84</a>
150
+ <a name='L85'></a><a href='#L85'>85</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">44x</span>
151
+ <span class="cline-any cline-neutral">&nbsp;</span>
147
152
  <span class="cline-any cline-neutral">&nbsp;</span>
148
153
  <span class="cline-any cline-neutral">&nbsp;</span>
149
154
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -199,6 +204,7 @@
199
204
  <span class="cline-any cline-yes">44x</span>
200
205
  <span class="cline-any cline-yes">27x</span>
201
206
  <span class="cline-any cline-yes">27x</span>
207
+ <span class="cline-any cline-yes">27x</span>
202
208
  <span class="cline-any cline-neutral">&nbsp;</span>
203
209
  <span class="cline-any cline-yes">27x</span>
204
210
  <span class="cline-any cline-yes">28x</span>
@@ -219,6 +225,8 @@
219
225
  <span class="cline-any cline-neutral">&nbsp;</span>
220
226
  <span class="cline-any cline-neutral">&nbsp;</span>
221
227
  <span class="cline-any cline-yes">28x</span>
228
+ <span class="cline-any cline-yes">28x</span>
229
+ <span class="cline-any cline-yes">28x</span>
222
230
  <span class="cline-any cline-neutral">&nbsp;</span>
223
231
  <span class="cline-any cline-neutral">&nbsp;</span>
224
232
  <span class="cline-any cline-yes">27x</span>
@@ -227,6 +235,7 @@
227
235
  const {
228
236
  isDevAppID,
229
237
  getDevelopmentAppID,
238
+ getProdAppID,
230
239
  doWithDB,
231
240
  } = require("@budibase/backend-core/db")
232
241
  &nbsp;
@@ -277,7 +286,8 @@ const getAppRows = async appId =&gt; {
277
286
  * Rows duplicates may exist across apps due to data import so they are not filtered out.
278
287
  */
279
288
  exports.getUniqueRows = async appIds =&gt; {
280
- let uniqueRows = []
289
+ let uniqueRows = [],
290
+ rowsByApp = {}
281
291
  const pairs = getAppPairs(appIds)
282
292
  &nbsp;
283
293
  for (let pair of Object.values(pairs)) {
@@ -298,10 +308,12 @@ exports.getUniqueRows = async appIds =&gt; {
298
308
  // this can't be done on all rows because app import results in
299
309
  // duplicate row ids across apps
300
310
  // the array pre-concat is important to avoid stack overflow
301
- uniqueRows = uniqueRows.concat([...new Set(appRows)])
311
+ const prodId = getProdAppID(pair.devId || pair.prodId)
312
+ rowsByApp[prodId] = [...new Set(appRows)]
313
+ uniqueRows = uniqueRows.concat(rowsByApp[prodId])
302
314
  }
303
315
  &nbsp;
304
- return uniqueRows
316
+ return { rows: uniqueRows, appRows: rowsByApp }
305
317
  }
306
318
  &nbsp;</pre></td></tr></table></pre>
307
319
 
@@ -310,7 +322,7 @@ exports.getUniqueRows = async appIds =&gt; {
310
322
  <div class='footer quiet pad2 space-top1 center small'>
311
323
  Code coverage generated by
312
324
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
313
- at Tue Oct 25 2022 15:42:56 GMT+0000 (Coordinated Universal Time)
325
+ at Mon Oct 31 2022 14:00:24 GMT+0000 (Coordinated Universal Time)
314
326
  </div>
315
327
  <script src="../../prettify.js"></script>
316
328
  <script>
@@ -124,7 +124,7 @@ function <span class="fstat-no" title="function not covered" >resetQuotasIfRequi
124
124
  <div class='footer quiet pad2 space-top1 center small'>
125
125
  Code coverage generated by
126
126
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
127
- at Tue Oct 25 2022 15:42:56 GMT+0000 (Coordinated Universal Time)
127
+ at Mon Oct 31 2022 14:00:24 GMT+0000 (Coordinated Universal Time)
128
128
  </div>
129
129
  <script src="../../prettify.js"></script>
130
130
  <script>
@@ -223,7 +223,7 @@ exports.publicApiUserFix = ctx =&gt; {
223
223
  <div class='footer quiet pad2 space-top1 center small'>
224
224
  Code coverage generated by
225
225
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
226
- at Tue Oct 25 2022 15:42:56 GMT+0000 (Coordinated Universal Time)
226
+ at Mon Oct 31 2022 14:00:24 GMT+0000 (Coordinated Universal Time)
227
227
  </div>
228
228
  <script src="../prettify.js"></script>
229
229
  <script>