@budibase/server 1.0.48 → 1.0.49-alpha.3

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 (289) hide show
  1. package/builder/assets/{index.e083dcaf.js → index.21e57eb4.js} +234 -231
  2. package/builder/assets/index.83c0944f.css +1 -0
  3. package/builder/assets/{vendor.f9faf6ab.js → vendor.d526bfe8.js} +12 -12
  4. package/builder/index.html +3 -3
  5. package/coverage/clover.xml +2338 -2028
  6. package/coverage/coverage-final.json +100 -95
  7. package/coverage/lcov-report/api/controllers/analytics.js.html +1 -1
  8. package/coverage/lcov-report/api/controllers/apikeys.js.html +1 -1
  9. package/coverage/lcov-report/api/controllers/application.js.html +210 -126
  10. package/coverage/lcov-report/api/controllers/auth.js.html +18 -6
  11. package/coverage/lcov-report/api/controllers/automation.js.html +21 -21
  12. package/coverage/lcov-report/api/controllers/backup.js.html +1 -1
  13. package/coverage/lcov-report/api/controllers/cloud.js.html +1 -1
  14. package/coverage/lcov-report/api/controllers/component.js.html +4 -4
  15. package/coverage/lcov-report/api/controllers/datasource.js.html +72 -36
  16. package/coverage/lcov-report/api/controllers/dev.js.html +1 -1
  17. package/coverage/lcov-report/api/controllers/index.html +53 -53
  18. package/coverage/lcov-report/api/controllers/integration.js.html +1 -1
  19. package/coverage/lcov-report/api/controllers/layout.js.html +6 -6
  20. package/coverage/lcov-report/api/controllers/metadata.js.html +1 -1
  21. package/coverage/lcov-report/api/controllers/migrations.js.html +119 -0
  22. package/coverage/lcov-report/api/controllers/permission.js.html +15 -15
  23. package/coverage/lcov-report/api/controllers/query/index.html +1 -1
  24. package/coverage/lcov-report/api/controllers/query/index.js.html +19 -19
  25. package/coverage/lcov-report/api/controllers/query/validation.js.html +6 -6
  26. package/coverage/lcov-report/api/controllers/role.js.html +9 -9
  27. package/coverage/lcov-report/api/controllers/routing.js.html +1 -1
  28. package/coverage/lcov-report/api/controllers/row/external.js.html +16 -16
  29. package/coverage/lcov-report/api/controllers/row/index.html +48 -33
  30. package/coverage/lcov-report/api/controllers/row/index.js.html +26 -26
  31. package/coverage/lcov-report/api/controllers/row/internal.js.html +95 -158
  32. package/coverage/lcov-report/api/controllers/row/internalSearch.js.html +41 -17
  33. package/coverage/lcov-report/api/controllers/row/staticFormula.js.html +551 -0
  34. package/coverage/lcov-report/api/controllers/row/utils.js.html +39 -57
  35. package/coverage/lcov-report/api/controllers/screen.js.html +7 -7
  36. package/coverage/lcov-report/api/controllers/script.js.html +4 -4
  37. package/coverage/lcov-report/api/controllers/table/bulkFormula.js.html +629 -0
  38. package/coverage/lcov-report/api/controllers/table/external.js.html +12 -12
  39. package/coverage/lcov-report/api/controllers/table/index.html +46 -31
  40. package/coverage/lcov-report/api/controllers/table/index.js.html +53 -77
  41. package/coverage/lcov-report/api/controllers/table/internal.js.html +59 -35
  42. package/coverage/lcov-report/api/controllers/table/utils.js.html +217 -73
  43. package/coverage/lcov-report/api/controllers/templates.js.html +1 -1
  44. package/coverage/lcov-report/api/controllers/user.js.html +30 -24
  45. package/coverage/lcov-report/api/controllers/view/exporters.js.html +4 -4
  46. package/coverage/lcov-report/api/controllers/view/index.html +1 -1
  47. package/coverage/lcov-report/api/controllers/view/index.js.html +14 -14
  48. package/coverage/lcov-report/api/controllers/view/utils.js.html +11 -11
  49. package/coverage/lcov-report/api/controllers/view/viewBuilder.js.html +7 -7
  50. package/coverage/lcov-report/api/controllers/webhook.js.html +15 -15
  51. package/coverage/lcov-report/api/index.html +1 -1
  52. package/coverage/lcov-report/api/index.js.html +8 -8
  53. package/coverage/lcov-report/api/routes/analytics.js.html +1 -1
  54. package/coverage/lcov-report/api/routes/apikeys.js.html +1 -1
  55. package/coverage/lcov-report/api/routes/application.js.html +1 -1
  56. package/coverage/lcov-report/api/routes/auth.js.html +1 -1
  57. package/coverage/lcov-report/api/routes/automation.js.html +1 -1
  58. package/coverage/lcov-report/api/routes/backup.js.html +1 -1
  59. package/coverage/lcov-report/api/routes/cloud.js.html +1 -1
  60. package/coverage/lcov-report/api/routes/component.js.html +1 -1
  61. package/coverage/lcov-report/api/routes/datasource.js.html +1 -1
  62. package/coverage/lcov-report/api/routes/deploy.js.html +1 -1
  63. package/coverage/lcov-report/api/routes/dev.js.html +1 -1
  64. package/coverage/lcov-report/api/routes/index.html +18 -18
  65. package/coverage/lcov-report/api/routes/index.js.html +3 -3
  66. package/coverage/lcov-report/api/routes/integration.js.html +1 -1
  67. package/coverage/lcov-report/api/routes/layout.js.html +1 -1
  68. package/coverage/lcov-report/api/routes/metadata.js.html +1 -1
  69. package/coverage/lcov-report/api/routes/{hosting.js.html → migrations.js.html} +17 -14
  70. package/coverage/lcov-report/api/routes/permission.js.html +1 -1
  71. package/coverage/lcov-report/api/routes/query.js.html +1 -1
  72. package/coverage/lcov-report/api/routes/role.js.html +1 -1
  73. package/coverage/lcov-report/api/routes/routing.js.html +1 -1
  74. package/coverage/lcov-report/api/routes/row.js.html +1 -1
  75. package/coverage/lcov-report/api/routes/screen.js.html +1 -1
  76. package/coverage/lcov-report/api/routes/script.js.html +1 -1
  77. package/coverage/lcov-report/api/routes/static.js.html +17 -2
  78. package/coverage/lcov-report/api/routes/table.js.html +1 -1
  79. package/coverage/lcov-report/api/routes/templates.js.html +1 -1
  80. package/coverage/lcov-report/api/routes/user.js.html +1 -1
  81. package/coverage/lcov-report/api/routes/view.js.html +1 -1
  82. package/coverage/lcov-report/api/routes/webhook.js.html +1 -1
  83. package/coverage/lcov-report/automations/actions.js.html +24 -24
  84. package/coverage/lcov-report/automations/automationUtils.js.html +5 -5
  85. package/coverage/lcov-report/automations/bullboard.js.html +16 -16
  86. package/coverage/lcov-report/automations/index.html +1 -1
  87. package/coverage/lcov-report/automations/index.js.html +1 -1
  88. package/coverage/lcov-report/automations/steps/bash.js.html +6 -6
  89. package/coverage/lcov-report/automations/steps/createRow.js.html +13 -19
  90. package/coverage/lcov-report/automations/steps/delay.js.html +4 -4
  91. package/coverage/lcov-report/automations/steps/deleteRow.js.html +11 -20
  92. package/coverage/lcov-report/automations/steps/discord.js.html +7 -7
  93. package/coverage/lcov-report/automations/steps/executeQuery.js.html +6 -6
  94. package/coverage/lcov-report/automations/steps/executeScript.js.html +6 -6
  95. package/coverage/lcov-report/automations/steps/filter.js.html +7 -7
  96. package/coverage/lcov-report/automations/steps/index.html +13 -13
  97. package/coverage/lcov-report/automations/steps/integromat.js.html +5 -5
  98. package/coverage/lcov-report/automations/steps/outgoingWebhook.js.html +8 -8
  99. package/coverage/lcov-report/automations/steps/queryRows.js.html +10 -10
  100. package/coverage/lcov-report/automations/steps/sendSmtpEmail.js.html +5 -5
  101. package/coverage/lcov-report/automations/steps/serverLog.js.html +3 -3
  102. package/coverage/lcov-report/automations/steps/slack.js.html +5 -5
  103. package/coverage/lcov-report/automations/steps/updateRow.js.html +6 -6
  104. package/coverage/lcov-report/automations/steps/utils.js.html +3 -3
  105. package/coverage/lcov-report/automations/steps/zapier.js.html +5 -5
  106. package/coverage/lcov-report/automations/triggerInfo/app.js.html +2 -2
  107. package/coverage/lcov-report/automations/triggerInfo/cron.js.html +2 -2
  108. package/coverage/lcov-report/automations/triggerInfo/index.html +1 -1
  109. package/coverage/lcov-report/automations/triggerInfo/index.js.html +8 -8
  110. package/coverage/lcov-report/automations/triggerInfo/rowDeleted.js.html +2 -2
  111. package/coverage/lcov-report/automations/triggerInfo/rowSaved.js.html +2 -2
  112. package/coverage/lcov-report/automations/triggerInfo/rowUpdated.js.html +2 -2
  113. package/coverage/lcov-report/automations/triggerInfo/webhook.js.html +2 -2
  114. package/coverage/lcov-report/automations/triggers.js.html +18 -18
  115. package/coverage/lcov-report/automations/utils.js.html +32 -32
  116. package/coverage/lcov-report/constants/index.html +5 -5
  117. package/coverage/lcov-report/constants/index.js.html +53 -26
  118. package/coverage/lcov-report/constants/layouts.js.html +5 -5
  119. package/coverage/lcov-report/constants/screens.js.html +4 -4
  120. package/coverage/lcov-report/db/client.js.html +18 -18
  121. package/coverage/lcov-report/db/inMemoryView.js.html +7 -7
  122. package/coverage/lcov-report/db/index.html +15 -15
  123. package/coverage/lcov-report/db/index.js.html +3 -3
  124. package/coverage/lcov-report/db/linkedRows/LinkController.js.html +18 -18
  125. package/coverage/lcov-report/db/linkedRows/index.html +10 -10
  126. package/coverage/lcov-report/db/linkedRows/index.js.html +38 -41
  127. package/coverage/lcov-report/db/linkedRows/linkUtils.js.html +15 -15
  128. package/coverage/lcov-report/db/newid.js.html +4 -4
  129. package/coverage/lcov-report/db/utils.js.html +86 -86
  130. package/coverage/lcov-report/events/AutomationEmitter.js.html +1 -1
  131. package/coverage/lcov-report/events/index.html +1 -1
  132. package/coverage/lcov-report/events/index.js.html +5 -5
  133. package/coverage/lcov-report/events/utils.js.html +3 -3
  134. package/coverage/lcov-report/index.html +114 -99
  135. package/coverage/lcov-report/integrations/tests/TestConfiguration.js.html +1 -1
  136. package/coverage/lcov-report/integrations/tests/index.html +1 -1
  137. package/coverage/lcov-report/middleware/appInfo.js.html +1 -1
  138. package/coverage/lcov-report/middleware/authorized.js.html +166 -64
  139. package/coverage/lcov-report/middleware/builder.js.html +8 -8
  140. package/coverage/lcov-report/middleware/currentapp.js.html +29 -29
  141. package/coverage/lcov-report/middleware/index.html +30 -30
  142. package/coverage/lcov-report/middleware/joi-validator.js.html +3 -3
  143. package/coverage/lcov-report/middleware/resourceId.js.html +1 -1
  144. package/coverage/lcov-report/middleware/selfhost.js.html +1 -1
  145. package/coverage/lcov-report/middleware/usageQuota.js.html +270 -42
  146. package/coverage/lcov-report/middleware/utils.js.html +2 -2
  147. package/coverage/lcov-report/threads/automation.js.html +1 -1
  148. package/coverage/lcov-report/threads/index.html +15 -15
  149. package/coverage/lcov-report/threads/index.js.html +10 -10
  150. package/coverage/lcov-report/threads/query.js.html +23 -8
  151. package/coverage/lcov-report/threads/utils.js.html +14 -14
  152. package/coverage/lcov-report/utilities/bcrypt.js.html +1 -1
  153. package/coverage/lcov-report/utilities/budibaseDir.js.html +7 -7
  154. package/coverage/lcov-report/utilities/centralPath.js.html +4 -4
  155. package/coverage/lcov-report/utilities/csvParser.js.html +6 -6
  156. package/coverage/lcov-report/utilities/global.js.html +26 -26
  157. package/coverage/lcov-report/utilities/index.html +19 -19
  158. package/coverage/lcov-report/utilities/index.js.html +25 -25
  159. package/coverage/lcov-report/utilities/queue/inMemoryQueue.js.html +8 -8
  160. package/coverage/lcov-report/utilities/queue/index.html +1 -1
  161. package/coverage/lcov-report/utilities/routing/index.html +1 -1
  162. package/coverage/lcov-report/utilities/routing/index.js.html +1 -1
  163. package/coverage/lcov-report/utilities/rowProcessor/index.html +27 -27
  164. package/coverage/lcov-report/utilities/rowProcessor/index.js.html +115 -79
  165. package/coverage/lcov-report/utilities/rowProcessor/utils.js.html +75 -27
  166. package/coverage/lcov-report/utilities/scriptRunner.js.html +5 -5
  167. package/coverage/lcov-report/utilities/security.js.html +8 -8
  168. package/coverage/lcov-report/utilities/statusCodes.js.html +1 -1
  169. package/coverage/lcov-report/utilities/usageQuota/index.html +141 -0
  170. package/coverage/lcov-report/utilities/usageQuota/index.js.html +356 -0
  171. package/coverage/lcov-report/utilities/usageQuota/rows.js.html +302 -0
  172. package/coverage/lcov-report/{api/controllers/hosting.js.html → utilities/usageQuota/usageQuoteReset.js.html} +36 -48
  173. package/coverage/lcov-report/utilities/users.js.html +5 -5
  174. package/coverage/lcov-report/utilities/workerRequests.js.html +39 -108
  175. package/coverage/lcov.info +3656 -3057
  176. package/dist/api/controllers/application.js +61 -34
  177. package/dist/api/controllers/auth.js +4 -0
  178. package/dist/api/controllers/datasource.js +11 -0
  179. package/dist/api/controllers/migrations.js +21 -0
  180. package/dist/api/controllers/row/internal.js +30 -53
  181. package/dist/api/controllers/row/internalSearch.js +12 -4
  182. package/dist/api/controllers/row/staticFormula.js +147 -0
  183. package/dist/api/controllers/row/utils.js +6 -8
  184. package/dist/api/controllers/static/index.js +59 -10
  185. package/dist/api/controllers/table/bulkFormula.js +160 -0
  186. package/dist/api/controllers/table/index.js +12 -9
  187. package/dist/api/controllers/table/internal.js +9 -0
  188. package/dist/api/controllers/table/utils.js +41 -12
  189. package/dist/api/controllers/user.js +2 -0
  190. package/dist/api/routes/index.js +2 -2
  191. package/dist/api/routes/migrations.js +9 -0
  192. package/dist/api/routes/static.js +2 -1
  193. package/dist/app.js +35 -5
  194. package/dist/automations/steps/createRow.js +2 -4
  195. package/dist/automations/steps/deleteRow.js +1 -4
  196. package/dist/constants/index.js +7 -0
  197. package/dist/db/linkedRows/index.js +4 -5
  198. package/dist/definitions/datasource.js +1 -0
  199. package/dist/environment.js +2 -0
  200. package/dist/integrations/base/sql.js +13 -6
  201. package/dist/integrations/googlesheets.js +340 -0
  202. package/dist/integrations/index.js +3 -0
  203. package/dist/integrations/utils.js +57 -9
  204. package/dist/middleware/authorized.js +55 -30
  205. package/dist/middleware/usageQuota.js +80 -13
  206. package/dist/migrations/functions/appUrls.js +46 -0
  207. package/dist/migrations/functions/quotas1.js +50 -0
  208. package/dist/migrations/functions/usageQuotas/index.js +20 -0
  209. package/dist/migrations/functions/usageQuotas/syncApps.js +32 -0
  210. package/dist/migrations/functions/usageQuotas/syncRows.js +35 -0
  211. package/dist/migrations/functions/userEmailViewCasing.js +24 -0
  212. package/dist/migrations/index.js +62 -0
  213. package/dist/package.json +8 -5
  214. package/dist/tests/utilities/TestConfiguration.js +13 -6
  215. package/dist/threads/query.js +4 -0
  216. package/dist/tsconfig.tsbuildinfo +1 -1
  217. package/dist/utilities/rowProcessor/index.js +18 -11
  218. package/dist/utilities/rowProcessor/utils.js +14 -4
  219. package/dist/utilities/{usageQuota.js → usageQuota/index.js} +44 -31
  220. package/dist/utilities/usageQuota/rows.js +77 -0
  221. package/dist/utilities/usageQuota/usageQuoteReset.js +16 -0
  222. package/dist/utilities/workerRequests.js +0 -20
  223. package/nodemon.json +1 -1
  224. package/package.json +9 -6
  225. package/src/api/controllers/application.js +52 -24
  226. package/src/api/controllers/auth.js +4 -0
  227. package/src/api/controllers/datasource.js +12 -0
  228. package/src/api/controllers/migrations.js +13 -0
  229. package/src/api/controllers/row/internal.js +29 -50
  230. package/src/api/controllers/row/internalSearch.js +12 -4
  231. package/src/api/controllers/row/staticFormula.js +157 -0
  232. package/src/api/controllers/row/utils.js +6 -12
  233. package/src/api/controllers/static/index.js +63 -10
  234. package/src/api/controllers/table/bulkFormula.js +183 -0
  235. package/src/api/controllers/table/index.js +16 -24
  236. package/src/api/controllers/table/internal.js +9 -1
  237. package/src/api/controllers/table/utils.js +57 -9
  238. package/src/api/controllers/user.js +2 -0
  239. package/src/api/routes/index.js +2 -2
  240. package/src/api/routes/migrations.js +14 -0
  241. package/src/api/routes/static.js +5 -0
  242. package/src/api/routes/tests/application.spec.js +2 -2
  243. package/src/api/routes/tests/auth.spec.js +1 -2
  244. package/src/api/routes/tests/static.spec.js +98 -0
  245. package/src/app.ts +18 -5
  246. package/src/automations/steps/createRow.js +2 -4
  247. package/src/automations/steps/deleteRow.js +1 -4
  248. package/src/constants/index.js +9 -0
  249. package/src/db/linkedRows/index.js +4 -5
  250. package/src/definitions/common.ts +3 -0
  251. package/src/definitions/datasource.ts +3 -0
  252. package/src/environment.js +2 -0
  253. package/src/integrations/base/sql.ts +14 -7
  254. package/src/integrations/googlesheets.ts +353 -0
  255. package/src/integrations/index.ts +3 -0
  256. package/src/integrations/tests/sql.spec.js +16 -0
  257. package/src/integrations/utils.ts +71 -11
  258. package/src/middleware/authorized.js +64 -30
  259. package/src/middleware/tests/authorized.spec.js +6 -4
  260. package/src/middleware/tests/usageQuota.spec.js +18 -24
  261. package/src/middleware/usageQuota.js +91 -15
  262. package/src/migrations/functions/appUrls.ts +34 -0
  263. package/src/migrations/functions/quotas1.ts +20 -0
  264. package/src/migrations/functions/tests/appUrls.spec.js +29 -0
  265. package/src/migrations/functions/tests/quotas1.spec.js +27 -0
  266. package/src/migrations/functions/tests/userEmailViewCasing.spec.js +25 -0
  267. package/src/migrations/functions/usageQuotas/index.ts +8 -0
  268. package/src/migrations/functions/usageQuotas/syncApps.ts +18 -0
  269. package/src/migrations/functions/usageQuotas/syncRows.ts +21 -0
  270. package/src/migrations/functions/usageQuotas/tests/syncApps.spec.js +37 -0
  271. package/src/migrations/functions/usageQuotas/tests/syncRows.spec.js +43 -0
  272. package/src/migrations/functions/userEmailViewCasing.ts +13 -0
  273. package/src/migrations/index.ts +56 -0
  274. package/src/tests/utilities/TestConfiguration.js +14 -6
  275. package/src/threads/query.js +5 -0
  276. package/src/utilities/rowProcessor/index.js +24 -12
  277. package/src/utilities/rowProcessor/utils.js +23 -7
  278. package/src/utilities/tests/usageQuota/usageQuota.spec.js +72 -0
  279. package/src/utilities/usageQuota/index.js +92 -0
  280. package/src/utilities/usageQuota/rows.js +74 -0
  281. package/src/utilities/usageQuota/usageQuoteReset.js +18 -0
  282. package/src/utilities/workerRequests.js +0 -23
  283. package/builder/assets/index.39e01193.css +0 -1
  284. package/dist/api/controllers/hosting.js +0 -30
  285. package/dist/api/routes/hosting.js +0 -11
  286. package/src/api/controllers/hosting.js +0 -22
  287. package/src/api/routes/hosting.js +0 -13
  288. package/src/api/routes/tests/hosting.spec.js +0 -36
  289. package/src/utilities/usageQuota.js +0 -73
@@ -364,27 +364,27 @@
364
364
  <a name='L305'></a><a href='#L305'>305</a>
365
365
  <a name='L306'></a><a href='#L306'>306</a>
366
366
  <a name='L307'></a><a href='#L307'>307</a>
367
- <a name='L308'></a><a href='#L308'>308</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">34x</span>
367
+ <a name='L308'></a><a href='#L308'>308</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">39x</span>
368
368
  <span class="cline-any cline-neutral">&nbsp;</span>
369
369
  <span class="cline-any cline-neutral">&nbsp;</span>
370
370
  <span class="cline-any cline-neutral">&nbsp;</span>
371
- <span class="cline-any cline-yes">34x</span>
371
+ <span class="cline-any cline-yes">39x</span>
372
372
  <span class="cline-any cline-neutral">&nbsp;</span>
373
373
  <span class="cline-any cline-neutral">&nbsp;</span>
374
374
  <span class="cline-any cline-neutral">&nbsp;</span>
375
375
  <span class="cline-any cline-neutral">&nbsp;</span>
376
376
  <span class="cline-any cline-neutral">&nbsp;</span>
377
377
  <span class="cline-any cline-neutral">&nbsp;</span>
378
- <span class="cline-any cline-yes">34x</span>
378
+ <span class="cline-any cline-yes">39x</span>
379
379
  <span class="cline-any cline-neutral">&nbsp;</span>
380
380
  <span class="cline-any cline-neutral">&nbsp;</span>
381
381
  <span class="cline-any cline-neutral">&nbsp;</span>
382
382
  <span class="cline-any cline-neutral">&nbsp;</span>
383
- <span class="cline-any cline-yes">34x</span>
384
- <span class="cline-any cline-yes">34x</span>
385
- <span class="cline-any cline-yes">34x</span>
386
- <span class="cline-any cline-yes">34x</span>
387
- <span class="cline-any cline-yes">34x</span>
383
+ <span class="cline-any cline-yes">39x</span>
384
+ <span class="cline-any cline-yes">39x</span>
385
+ <span class="cline-any cline-yes">39x</span>
386
+ <span class="cline-any cline-yes">39x</span>
387
+ <span class="cline-any cline-yes">39x</span>
388
388
  <span class="cline-any cline-neutral">&nbsp;</span>
389
389
  <span class="cline-any cline-neutral">&nbsp;</span>
390
390
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -524,7 +524,7 @@
524
524
  <span class="cline-any cline-no">&nbsp;</span>
525
525
  <span class="cline-any cline-neutral">&nbsp;</span>
526
526
  <span class="cline-any cline-neutral">&nbsp;</span>
527
- <span class="cline-any cline-yes">34x</span>
527
+ <span class="cline-any cline-yes">39x</span>
528
528
  <span class="cline-any cline-no">&nbsp;</span>
529
529
  <span class="cline-any cline-no">&nbsp;</span>
530
530
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -632,7 +632,7 @@
632
632
  <span class="cline-any cline-no">&nbsp;</span>
633
633
  <span class="cline-any cline-neutral">&nbsp;</span>
634
634
  <span class="cline-any cline-neutral">&nbsp;</span>
635
- <span class="cline-any cline-yes">34x</span>
635
+ <span class="cline-any cline-yes">39x</span>
636
636
  <span class="cline-any cline-no">&nbsp;</span>
637
637
  <span class="cline-any cline-no">&nbsp;</span>
638
638
  <span class="cline-any cline-no">&nbsp;</span>
@@ -655,7 +655,7 @@
655
655
  <span class="cline-any cline-no">&nbsp;</span>
656
656
  <span class="cline-any cline-neutral">&nbsp;</span>
657
657
  <span class="cline-any cline-neutral">&nbsp;</span>
658
- <span class="cline-any cline-yes">34x</span>
658
+ <span class="cline-any cline-yes">39x</span>
659
659
  <span class="cline-any cline-no">&nbsp;</span>
660
660
  <span class="cline-any cline-no">&nbsp;</span>
661
661
  <span class="cline-any cline-no">&nbsp;</span>
@@ -985,7 +985,7 @@ exports.bulkImport = <span class="fstat-no" title="function not covered" >as</sp
985
985
  <div class='footer quiet pad2 space-top1 center small'>
986
986
  Code coverage generated by
987
987
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
988
- at Mon Jan 31 2022 13:42:59 GMT+0000 (Coordinated Universal Time)
988
+ at Mon Jan 31 2022 17:55:41 GMT+0000 (Coordinated Universal Time)
989
989
  </div>
990
990
  </div>
991
991
  <script src="../../../prettify.js"></script>
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">50.34% </span>
26
+ <span class="strong">53.83% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>221/439</span>
28
+ <span class='fraction'>295/548</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">35.21% </span>
33
+ <span class="strong">36.84% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>81/230</span>
35
+ <span class='fraction'>105/285</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">47.36% </span>
40
+ <span class="strong">53.84% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>27/57</span>
42
+ <span class='fraction'>42/78</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">50.81% </span>
47
+ <span class="strong">54.2% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>219/431</span>
49
+ <span class='fraction'>290/535</span>
50
50
  </div>
51
51
 
52
52
 
@@ -73,6 +73,21 @@
73
73
  </tr>
74
74
  </thead>
75
75
  <tbody><tr>
76
+ <td class="file medium" data-value="bulkFormula.js"><a href="bulkFormula.js.html">bulkFormula.js</a></td>
77
+ <td data-value="69.62" class="pic medium">
78
+ <div class="chart"><div class="cover-fill" style="width: 69%"></div><div class="cover-empty" style="width: 31%"></div></div>
79
+ </td>
80
+ <td data-value="69.62" class="pct medium">69.62%</td>
81
+ <td data-value="79" class="abs medium">55/79</td>
82
+ <td data-value="43.63" class="pct low">43.63%</td>
83
+ <td data-value="55" class="abs low">24/55</td>
84
+ <td data-value="81.25" class="pct high">81.25%</td>
85
+ <td data-value="16" class="abs high">13/16</td>
86
+ <td data-value="69.73" class="pct medium">69.73%</td>
87
+ <td data-value="76" class="abs medium">53/76</td>
88
+ </tr>
89
+
90
+ <tr>
76
91
  <td class="file low" data-value="external.js"><a href="external.js.html">external.js</a></td>
77
92
  <td data-value="8.02" class="pic low">
78
93
  <div class="chart"><div class="cover-fill" style="width: 8%"></div><div class="cover-empty" style="width: 92%"></div></div>
@@ -88,48 +103,48 @@
88
103
  </tr>
89
104
 
90
105
  <tr>
91
- <td class="file high" data-value="index.js"><a href="index.js.html">index.js</a></td>
92
- <td data-value="81.81" class="pic high">
93
- <div class="chart"><div class="cover-fill" style="width: 81%"></div><div class="cover-empty" style="width: 19%"></div></div>
106
+ <td class="file medium" data-value="index.js"><a href="index.js.html">index.js</a></td>
107
+ <td data-value="76.78" class="pic medium">
108
+ <div class="chart"><div class="cover-fill" style="width: 76%"></div><div class="cover-empty" style="width: 24%"></div></div>
94
109
  </td>
95
- <td data-value="81.81" class="pct high">81.81%</td>
96
- <td data-value="55" class="abs high">45/55</td>
110
+ <td data-value="76.78" class="pct medium">76.78%</td>
111
+ <td data-value="56" class="abs medium">43/56</td>
97
112
  <td data-value="73.91" class="pct medium">73.91%</td>
98
113
  <td data-value="23" class="abs medium">17/23</td>
99
- <td data-value="70" class="pct medium">70%</td>
100
- <td data-value="10" class="abs medium">7/10</td>
101
- <td data-value="83.01" class="pct high">83.01%</td>
102
- <td data-value="53" class="abs high">44/53</td>
114
+ <td data-value="66.66" class="pct medium">66.66%</td>
115
+ <td data-value="9" class="abs medium">6/9</td>
116
+ <td data-value="78.18" class="pct medium">78.18%</td>
117
+ <td data-value="55" class="abs medium">43/55</td>
103
118
  </tr>
104
119
 
105
120
  <tr>
106
121
  <td class="file medium" data-value="internal.js"><a href="internal.js.html">internal.js</a></td>
107
- <td data-value="74.6" class="pic medium">
108
- <div class="chart"><div class="cover-fill" style="width: 74%"></div><div class="cover-empty" style="width: 26%"></div></div>
122
+ <td data-value="77.14" class="pic medium">
123
+ <div class="chart"><div class="cover-fill" style="width: 77%"></div><div class="cover-empty" style="width: 23%"></div></div>
109
124
  </td>
110
- <td data-value="74.6" class="pct medium">74.6%</td>
111
- <td data-value="63" class="abs medium">47/63</td>
125
+ <td data-value="77.14" class="pct medium">77.14%</td>
126
+ <td data-value="70" class="abs medium">54/70</td>
112
127
  <td data-value="71.87" class="pct medium">71.87%</td>
113
128
  <td data-value="32" class="abs medium">23/32</td>
114
129
  <td data-value="60" class="pct medium">60%</td>
115
130
  <td data-value="5" class="abs medium">3/5</td>
116
- <td data-value="78.33" class="pct medium">78.33%</td>
117
- <td data-value="60" class="abs medium">47/60</td>
131
+ <td data-value="80.59" class="pct high">80.59%</td>
132
+ <td data-value="67" class="abs high">54/67</td>
118
133
  </tr>
119
134
 
120
135
  <tr>
121
136
  <td class="file medium" data-value="utils.js"><a href="utils.js.html">utils.js</a></td>
122
- <td data-value="64.13" class="pic medium">
137
+ <td data-value="64.07" class="pic medium">
123
138
  <div class="chart"><div class="cover-fill" style="width: 64%"></div><div class="cover-empty" style="width: 36%"></div></div>
124
139
  </td>
125
- <td data-value="64.13" class="pct medium">64.13%</td>
126
- <td data-value="184" class="abs medium">118/184</td>
140
+ <td data-value="64.07" class="pct medium">64.07%</td>
141
+ <td data-value="206" class="abs medium">132/206</td>
127
142
  <td data-value="41.41" class="pct low">41.41%</td>
128
143
  <td data-value="99" class="abs low">41/99</td>
129
- <td data-value="60.71" class="pct medium">60.71%</td>
130
- <td data-value="28" class="abs medium">17/28</td>
131
- <td data-value="64.64" class="pct medium">64.64%</td>
132
- <td data-value="181" class="abs medium">117/181</td>
144
+ <td data-value="58.82" class="pct medium">58.82%</td>
145
+ <td data-value="34" class="abs medium">20/34</td>
146
+ <td data-value="64.5" class="pct medium">64.5%</td>
147
+ <td data-value="200" class="abs medium">129/200</td>
133
148
  </tr>
134
149
 
135
150
  </tbody>
@@ -140,7 +155,7 @@
140
155
  <div class='footer quiet pad2 space-top1 center small'>
141
156
  Code coverage generated by
142
157
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
143
- at Mon Jan 31 2022 13:42:59 GMT+0000 (Coordinated Universal Time)
158
+ at Mon Jan 31 2022 17:55:41 GMT+0000 (Coordinated Universal Time)
144
159
  </div>
145
160
  </div>
146
161
  <script src="../../../prettify.js"></script>
@@ -23,9 +23,9 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">81.81% </span>
26
+ <span class="strong">76.78% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>45/55</span>
28
+ <span class='fraction'>43/56</span>
29
29
  </div>
30
30
 
31
31
 
@@ -37,16 +37,16 @@
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">70% </span>
40
+ <span class="strong">66.66% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>7/10</span>
42
+ <span class='fraction'>6/9</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">83.01% </span>
47
+ <span class="strong">78.18% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>44/53</span>
49
+ <span class='fraction'>43/55</span>
50
50
  </div>
51
51
 
52
52
 
@@ -55,7 +55,7 @@
55
55
  Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
56
56
  </p>
57
57
  </div>
58
- <div class='status-line high'></div>
58
+ <div class='status-line medium'></div>
59
59
  <pre><table class="coverage">
60
60
  <tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
61
61
  <a name='L2'></a><a href='#L2'>2</a>
@@ -155,88 +155,72 @@
155
155
  <a name='L96'></a><a href='#L96'>96</a>
156
156
  <a name='L97'></a><a href='#L97'>97</a>
157
157
  <a name='L98'></a><a href='#L98'>98</a>
158
- <a name='L99'></a><a href='#L99'>99</a>
159
- <a name='L100'></a><a href='#L100'>100</a>
160
- <a name='L101'></a><a href='#L101'>101</a>
161
- <a name='L102'></a><a href='#L102'>102</a>
162
- <a name='L103'></a><a href='#L103'>103</a>
163
- <a name='L104'></a><a href='#L104'>104</a>
164
- <a name='L105'></a><a href='#L105'>105</a>
165
- <a name='L106'></a><a href='#L106'>106</a>
166
- <a name='L107'></a><a href='#L107'>107</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">34x</span>
167
- <span class="cline-any cline-yes">34x</span>
168
- <span class="cline-any cline-yes">34x</span>
169
- <span class="cline-any cline-yes">34x</span>
170
- <span class="cline-any cline-yes">34x</span>
171
- <span class="cline-any cline-neutral">&nbsp;</span>
172
- <span class="cline-any cline-neutral">&nbsp;</span>
173
- <span class="cline-any cline-neutral">&nbsp;</span>
174
- <span class="cline-any cline-neutral">&nbsp;</span>
175
- <span class="cline-any cline-yes">34x</span>
176
- <span class="cline-any cline-yes">34x</span>
158
+ <a name='L99'></a><a href='#L99'>99</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">39x</span>
159
+ <span class="cline-any cline-yes">39x</span>
160
+ <span class="cline-any cline-yes">39x</span>
161
+ <span class="cline-any cline-yes">39x</span>
162
+ <span class="cline-any cline-yes">39x</span>
163
+ <span class="cline-any cline-yes">39x</span>
164
+ <span class="cline-any cline-yes">39x</span>
177
165
  <span class="cline-any cline-neutral">&nbsp;</span>
178
166
  <span class="cline-any cline-neutral">&nbsp;</span>
167
+ <span class="cline-any cline-yes">103x</span>
179
168
  <span class="cline-any cline-yes">101x</span>
180
- <span class="cline-any cline-yes">99x</span>
181
169
  <span class="cline-any cline-neutral">&nbsp;</span>
182
- <span class="cline-any cline-yes">101x</span>
170
+ <span class="cline-any cline-yes">103x</span>
183
171
  <span class="cline-any cline-no">&nbsp;</span>
184
- <span class="cline-any cline-yes">101x</span>
172
+ <span class="cline-any cline-yes">103x</span>
185
173
  <span class="cline-any cline-no">&nbsp;</span>
186
174
  <span class="cline-any cline-neutral">&nbsp;</span>
187
- <span class="cline-any cline-yes">101x</span>
175
+ <span class="cline-any cline-yes">103x</span>
188
176
  <span class="cline-any cline-neutral">&nbsp;</span>
189
177
  <span class="cline-any cline-neutral">&nbsp;</span>
190
178
  <span class="cline-any cline-neutral">&nbsp;</span>
191
- <span class="cline-any cline-yes">34x</span>
179
+ <span class="cline-any cline-yes">39x</span>
192
180
  <span class="cline-any cline-yes">1x</span>
193
181
  <span class="cline-any cline-neutral">&nbsp;</span>
194
182
  <span class="cline-any cline-yes">1x</span>
195
183
  <span class="cline-any cline-neutral">&nbsp;</span>
196
- <span class="cline-any cline-neutral">&nbsp;</span>
197
- <span class="cline-any cline-neutral">&nbsp;</span>
198
- <span class="cline-any cline-neutral">&nbsp;</span>
199
- <span class="cline-any cline-neutral">&nbsp;</span>
200
- <span class="cline-any cline-yes">2x</span>
184
+ <span class="cline-any cline-yes">1x</span>
201
185
  <span class="cline-any cline-neutral">&nbsp;</span>
202
186
  <span class="cline-any cline-neutral">&nbsp;</span>
203
187
  <span class="cline-any cline-neutral">&nbsp;</span>
204
188
  <span class="cline-any cline-neutral">&nbsp;</span>
205
189
  <span class="cline-any cline-neutral">&nbsp;</span>
206
190
  <span class="cline-any cline-yes">1x</span>
191
+ <span class="cline-any cline-no">&nbsp;</span>
192
+ <span class="cline-any cline-no">&nbsp;</span>
193
+ <span class="cline-any cline-no">&nbsp;</span>
207
194
  <span class="cline-any cline-neutral">&nbsp;</span>
208
195
  <span class="cline-any cline-neutral">&nbsp;</span>
209
196
  <span class="cline-any cline-neutral">&nbsp;</span>
210
197
  <span class="cline-any cline-neutral">&nbsp;</span>
211
198
  <span class="cline-any cline-neutral">&nbsp;</span>
212
- <span class="cline-any cline-yes">1x</span>
213
- <span class="cline-any cline-no">&nbsp;</span>
214
- <span class="cline-any cline-neutral">&nbsp;</span>
215
- <span class="cline-any cline-neutral">&nbsp;</span>
216
199
  <span class="cline-any cline-neutral">&nbsp;</span>
200
+ <span class="cline-any cline-no">&nbsp;</span>
217
201
  <span class="cline-any cline-neutral">&nbsp;</span>
218
202
  <span class="cline-any cline-neutral">&nbsp;</span>
219
203
  <span class="cline-any cline-neutral">&nbsp;</span>
220
204
  <span class="cline-any cline-yes">1x</span>
221
205
  <span class="cline-any cline-neutral">&nbsp;</span>
222
206
  <span class="cline-any cline-neutral">&nbsp;</span>
223
- <span class="cline-any cline-yes">34x</span>
207
+ <span class="cline-any cline-yes">39x</span>
224
208
  <span class="cline-any cline-yes">19x</span>
225
209
  <span class="cline-any cline-yes">19x</span>
226
210
  <span class="cline-any cline-neutral">&nbsp;</span>
227
211
  <span class="cline-any cline-neutral">&nbsp;</span>
228
- <span class="cline-any cline-yes">34x</span>
229
- <span class="cline-any cline-yes">99x</span>
230
- <span class="cline-any cline-yes">99x</span>
231
- <span class="cline-any cline-yes">99x</span>
232
- <span class="cline-any cline-yes">99x</span>
233
- <span class="cline-any cline-yes">99x</span>
234
- <span class="cline-any cline-yes">99x</span>
212
+ <span class="cline-any cline-yes">39x</span>
213
+ <span class="cline-any cline-yes">101x</span>
214
+ <span class="cline-any cline-yes">101x</span>
215
+ <span class="cline-any cline-yes">101x</span>
216
+ <span class="cline-any cline-yes">101x</span>
217
+ <span class="cline-any cline-yes">101x</span>
218
+ <span class="cline-any cline-yes">101x</span>
235
219
  <span class="cline-any cline-neutral">&nbsp;</span>
236
- <span class="cline-any cline-yes">99x</span>
220
+ <span class="cline-any cline-yes">101x</span>
237
221
  <span class="cline-any cline-neutral">&nbsp;</span>
238
222
  <span class="cline-any cline-neutral">&nbsp;</span>
239
- <span class="cline-any cline-yes">34x</span>
223
+ <span class="cline-any cline-yes">39x</span>
240
224
  <span class="cline-any cline-yes">2x</span>
241
225
  <span class="cline-any cline-yes">2x</span>
242
226
  <span class="cline-any cline-yes">2x</span>
@@ -246,7 +230,7 @@
246
230
  <span class="cline-any cline-yes">2x</span>
247
231
  <span class="cline-any cline-neutral">&nbsp;</span>
248
232
  <span class="cline-any cline-neutral">&nbsp;</span>
249
- <span class="cline-any cline-yes">34x</span>
233
+ <span class="cline-any cline-yes">39x</span>
250
234
  <span class="cline-any cline-no">&nbsp;</span>
251
235
  <span class="cline-any cline-no">&nbsp;</span>
252
236
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -256,7 +240,7 @@
256
240
  <span class="cline-any cline-no">&nbsp;</span>
257
241
  <span class="cline-any cline-neutral">&nbsp;</span>
258
242
  <span class="cline-any cline-neutral">&nbsp;</span>
259
- <span class="cline-any cline-yes">34x</span>
243
+ <span class="cline-any cline-yes">39x</span>
260
244
  <span class="cline-any cline-neutral">&nbsp;</span>
261
245
  <span class="cline-any cline-yes">1x</span>
262
246
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -273,13 +257,9 @@
273
257
  const internal = require("./internal")
274
258
  const external = require("./external")
275
259
  const csvParser = require("../../../utilities/csvParser")
276
- const { isExternalTable } = require("../../../integrations/utils")
277
- const {
278
- getTableParams,
279
- getDatasourceParams,
280
- BudibaseInternalDB,
281
- } = require("../../../db/utils")
282
- const { getTable } = require("./utils")
260
+ const { isExternalTable, isSQL } = require("../../../integrations/utils")
261
+ const { getDatasourceParams } = require("../../../db/utils")
262
+ const { getTable, getAllInternalTables } = require("./utils")
283
263
  &nbsp;
284
264
  function pickApi({ tableId, table }) {
285
265
  if (table &amp;&amp; !tableId) {
@@ -297,17 +277,7 @@ function pickApi({ tableId, table }) {
297
277
  exports.fetch = async function (ctx) {
298
278
  const db = new CouchDB(ctx.appId)
299
279
  &nbsp;
300
- const internalTables = await db.allDocs(
301
- getTableParams(null, {
302
- include_docs: true,
303
- })
304
- )
305
- &nbsp;
306
- const internal = internalTables.rows.map(row =&gt; ({
307
- ...row.doc,
308
- type: "internal",
309
- sourceId: BudibaseInternalDB._id,
310
- }))
280
+ const internal = await getAllInternalTables(ctx.appId)
311
281
  &nbsp;
312
282
  const externalTables = await db.allDocs(
313
283
  getDatasourceParams("plus", {
@@ -315,12 +285,18 @@ exports.fetch = async function (ctx) {
315
285
  })
316
286
  )
317
287
  &nbsp;
318
- const external = externalTables.rows.flatMap(<span class="fstat-no" title="function not covered" >ro</span>w =&gt; {
319
- <span class="cstat-no" title="statement not covered" > return Object.values(row.doc.entities || {}).map(<span class="fstat-no" title="function not covered" >en</span>tity =&gt; (<span class="cstat-no" title="statement not covered" >{</span></span>
320
- ...entity,
321
- type: "external",
322
- sourceId: row.doc._id,
323
- }))
288
+ const external = externalTables.rows.flatMap(<span class="fstat-no" title="function not covered" >ta</span>bleDoc =&gt; {
289
+ let entities = <span class="cstat-no" title="statement not covered" >tableDoc.doc.entities</span>
290
+ <span class="cstat-no" title="statement not covered" > if (entities) {</span>
291
+ <span class="cstat-no" title="statement not covered" > return Object.values(entities).map(<span class="fstat-no" title="function not covered" >en</span>tity =&gt; (<span class="cstat-no" title="statement not covered" >{</span></span>
292
+ ...entity,
293
+ type: "external",
294
+ sourceId: tableDoc.doc._id,
295
+ sql: isSQL(tableDoc.doc),
296
+ }))
297
+ } else {
298
+ <span class="cstat-no" title="statement not covered" > return []</span>
299
+ }
324
300
  })
325
301
  &nbsp;
326
302
  ctx.body = [...internal, ...external]
@@ -382,7 +358,7 @@ exports.validateCSVSchema = async function (ctx) {
382
358
  <div class='footer quiet pad2 space-top1 center small'>
383
359
  Code coverage generated by
384
360
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
385
- at Mon Jan 31 2022 13:42:59 GMT+0000 (Coordinated Universal Time)
361
+ at Mon Jan 31 2022 17:55:41 GMT+0000 (Coordinated Universal Time)
386
362
  </div>
387
363
  </div>
388
364
  <script src="../../../prettify.js"></script>