@budibase/server 1.0.49-alpha.9 → 1.0.49

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 (379) hide show
  1. package/__mocks__/arangojs.ts +1 -1
  2. package/__mocks__/aws-sdk.ts +4 -4
  3. package/__mocks__/mongodb.ts +5 -4
  4. package/__mocks__/mssql.ts +3 -3
  5. package/__mocks__/node-fetch.ts +1 -2
  6. package/__mocks__/pg.ts +5 -3
  7. package/builder/assets/{index.ad5370ae.js → index.2c37968e.js} +246 -249
  8. package/builder/assets/index.39e01193.css +1 -0
  9. package/builder/assets/{vendor.d526bfe8.js → vendor.f9faf6ab.js} +12 -12
  10. package/builder/index.html +3 -3
  11. package/coverage/clover.xml +2827 -3117
  12. package/coverage/coverage-final.json +101 -106
  13. package/coverage/lcov-report/api/controllers/analytics.js.html +1 -1
  14. package/coverage/lcov-report/api/controllers/apikeys.js.html +1 -1
  15. package/coverage/lcov-report/api/controllers/application.js.html +152 -257
  16. package/coverage/lcov-report/api/controllers/auth.js.html +13 -22
  17. package/coverage/lcov-report/api/controllers/automation.js.html +69 -39
  18. package/coverage/lcov-report/api/controllers/backup.js.html +1 -1
  19. package/coverage/lcov-report/api/controllers/cloud.js.html +11 -8
  20. package/coverage/lcov-report/api/controllers/component.js.html +16 -13
  21. package/coverage/lcov-report/api/controllers/datasource.js.html +51 -81
  22. package/coverage/lcov-report/api/controllers/dev.js.html +6 -6
  23. package/coverage/lcov-report/{utilities/usageQuota/usageQuoteReset.js.html → api/controllers/hosting.js.html} +48 -36
  24. package/coverage/lcov-report/api/controllers/index.html +76 -76
  25. package/coverage/lcov-report/api/controllers/integration.js.html +1 -1
  26. package/coverage/lcov-report/api/controllers/layout.js.html +9 -9
  27. package/coverage/lcov-report/api/controllers/metadata.js.html +21 -6
  28. package/coverage/lcov-report/api/controllers/permission.js.html +19 -19
  29. package/coverage/lcov-report/api/controllers/query/index.html +10 -10
  30. package/coverage/lcov-report/api/controllers/query/index.js.html +35 -38
  31. package/coverage/lcov-report/api/controllers/query/validation.js.html +6 -6
  32. package/coverage/lcov-report/api/controllers/role.js.html +16 -16
  33. package/coverage/lcov-report/api/controllers/routing.js.html +10 -7
  34. package/coverage/lcov-report/api/controllers/row/external.js.html +141 -48
  35. package/coverage/lcov-report/api/controllers/row/index.html +40 -55
  36. package/coverage/lcov-report/api/controllers/row/index.js.html +26 -26
  37. package/coverage/lcov-report/api/controllers/row/internal.js.html +226 -118
  38. package/coverage/lcov-report/api/controllers/row/internalSearch.js.html +34 -52
  39. package/coverage/lcov-report/api/controllers/row/utils.js.html +62 -47
  40. package/coverage/lcov-report/api/controllers/screen.js.html +21 -15
  41. package/coverage/lcov-report/api/controllers/script.js.html +4 -4
  42. package/coverage/lcov-report/api/controllers/table/external.js.html +34 -25
  43. package/coverage/lcov-report/api/controllers/table/index.html +43 -58
  44. package/coverage/lcov-report/api/controllers/table/index.js.html +82 -58
  45. package/coverage/lcov-report/api/controllers/table/internal.js.html +66 -81
  46. package/coverage/lcov-report/api/controllers/table/utils.js.html +110 -218
  47. package/coverage/lcov-report/api/controllers/templates.js.html +1 -1
  48. package/coverage/lcov-report/api/controllers/user.js.html +50 -47
  49. package/coverage/lcov-report/api/controllers/view/exporters.js.html +4 -4
  50. package/coverage/lcov-report/api/controllers/view/index.html +16 -16
  51. package/coverage/lcov-report/api/controllers/view/index.js.html +33 -27
  52. package/coverage/lcov-report/api/controllers/view/utils.js.html +20 -35
  53. package/coverage/lcov-report/api/controllers/view/viewBuilder.js.html +7 -7
  54. package/coverage/lcov-report/api/controllers/webhook.js.html +28 -34
  55. package/coverage/lcov-report/api/index.html +1 -1
  56. package/coverage/lcov-report/api/index.js.html +8 -8
  57. package/coverage/lcov-report/api/routes/analytics.js.html +1 -1
  58. package/coverage/lcov-report/api/routes/apikeys.js.html +1 -1
  59. package/coverage/lcov-report/api/routes/application.js.html +1 -1
  60. package/coverage/lcov-report/api/routes/auth.js.html +1 -1
  61. package/coverage/lcov-report/api/routes/automation.js.html +1 -1
  62. package/coverage/lcov-report/api/routes/backup.js.html +1 -1
  63. package/coverage/lcov-report/api/routes/cloud.js.html +1 -1
  64. package/coverage/lcov-report/api/routes/component.js.html +1 -1
  65. package/coverage/lcov-report/api/routes/datasource.js.html +1 -1
  66. package/coverage/lcov-report/api/routes/deploy.js.html +1 -1
  67. package/coverage/lcov-report/api/routes/dev.js.html +1 -1
  68. package/coverage/lcov-report/api/routes/{migrations.js.html → hosting.js.html} +14 -17
  69. package/coverage/lcov-report/api/routes/index.html +18 -18
  70. package/coverage/lcov-report/api/routes/index.js.html +3 -3
  71. package/coverage/lcov-report/api/routes/integration.js.html +1 -1
  72. package/coverage/lcov-report/api/routes/layout.js.html +1 -1
  73. package/coverage/lcov-report/api/routes/metadata.js.html +1 -1
  74. package/coverage/lcov-report/api/routes/permission.js.html +1 -1
  75. package/coverage/lcov-report/api/routes/query.js.html +1 -1
  76. package/coverage/lcov-report/api/routes/role.js.html +1 -1
  77. package/coverage/lcov-report/api/routes/routing.js.html +1 -1
  78. package/coverage/lcov-report/api/routes/row.js.html +1 -1
  79. package/coverage/lcov-report/api/routes/screen.js.html +1 -1
  80. package/coverage/lcov-report/api/routes/script.js.html +1 -1
  81. package/coverage/lcov-report/api/routes/static.js.html +2 -17
  82. package/coverage/lcov-report/api/routes/table.js.html +1 -1
  83. package/coverage/lcov-report/api/routes/templates.js.html +1 -1
  84. package/coverage/lcov-report/api/routes/user.js.html +1 -1
  85. package/coverage/lcov-report/api/routes/view.js.html +1 -1
  86. package/coverage/lcov-report/api/routes/webhook.js.html +1 -1
  87. package/coverage/lcov-report/automations/actions.js.html +24 -24
  88. package/coverage/lcov-report/automations/automationUtils.js.html +10 -7
  89. package/coverage/lcov-report/automations/bullboard.js.html +16 -16
  90. package/coverage/lcov-report/automations/index.html +18 -18
  91. package/coverage/lcov-report/automations/index.js.html +1 -1
  92. package/coverage/lcov-report/automations/steps/bash.js.html +6 -6
  93. package/coverage/lcov-report/automations/steps/createRow.js.html +22 -13
  94. package/coverage/lcov-report/automations/steps/delay.js.html +4 -4
  95. package/coverage/lcov-report/automations/steps/deleteRow.js.html +20 -11
  96. package/coverage/lcov-report/automations/steps/discord.js.html +7 -7
  97. package/coverage/lcov-report/automations/steps/executeQuery.js.html +6 -6
  98. package/coverage/lcov-report/automations/steps/executeScript.js.html +6 -6
  99. package/coverage/lcov-report/automations/steps/filter.js.html +7 -7
  100. package/coverage/lcov-report/automations/steps/index.html +13 -13
  101. package/coverage/lcov-report/automations/steps/integromat.js.html +5 -5
  102. package/coverage/lcov-report/automations/steps/outgoingWebhook.js.html +8 -8
  103. package/coverage/lcov-report/automations/steps/queryRows.js.html +10 -10
  104. package/coverage/lcov-report/automations/steps/sendSmtpEmail.js.html +5 -5
  105. package/coverage/lcov-report/automations/steps/serverLog.js.html +3 -3
  106. package/coverage/lcov-report/automations/steps/slack.js.html +5 -5
  107. package/coverage/lcov-report/automations/steps/updateRow.js.html +7 -7
  108. package/coverage/lcov-report/automations/steps/utils.js.html +3 -3
  109. package/coverage/lcov-report/automations/steps/zapier.js.html +5 -5
  110. package/coverage/lcov-report/automations/triggerInfo/app.js.html +2 -2
  111. package/coverage/lcov-report/automations/triggerInfo/cron.js.html +2 -2
  112. package/coverage/lcov-report/automations/triggerInfo/index.html +1 -1
  113. package/coverage/lcov-report/automations/triggerInfo/index.js.html +8 -8
  114. package/coverage/lcov-report/automations/triggerInfo/rowDeleted.js.html +2 -2
  115. package/coverage/lcov-report/automations/triggerInfo/rowSaved.js.html +2 -2
  116. package/coverage/lcov-report/automations/triggerInfo/rowUpdated.js.html +2 -2
  117. package/coverage/lcov-report/automations/triggerInfo/webhook.js.html +2 -2
  118. package/coverage/lcov-report/automations/triggers.js.html +55 -61
  119. package/coverage/lcov-report/automations/utils.js.html +42 -54
  120. package/coverage/lcov-report/constants/index.html +5 -5
  121. package/coverage/lcov-report/constants/index.js.html +26 -53
  122. package/coverage/lcov-report/constants/layouts.js.html +5 -5
  123. package/coverage/lcov-report/constants/screens.js.html +4 -4
  124. package/coverage/lcov-report/db/client.js.html +18 -18
  125. package/coverage/lcov-report/db/inMemoryView.js.html +7 -7
  126. package/coverage/lcov-report/db/index.html +15 -15
  127. package/coverage/lcov-report/db/index.js.html +3 -3
  128. package/coverage/lcov-report/db/linkedRows/LinkController.js.html +37 -25
  129. package/coverage/lcov-report/db/linkedRows/index.html +27 -27
  130. package/coverage/lcov-report/db/linkedRows/index.js.html +96 -51
  131. package/coverage/lcov-report/db/linkedRows/linkUtils.js.html +42 -42
  132. package/coverage/lcov-report/db/newid.js.html +4 -4
  133. package/coverage/lcov-report/db/utils.js.html +87 -87
  134. package/coverage/lcov-report/events/AutomationEmitter.js.html +1 -1
  135. package/coverage/lcov-report/events/index.html +1 -1
  136. package/coverage/lcov-report/events/index.js.html +5 -5
  137. package/coverage/lcov-report/events/utils.js.html +3 -3
  138. package/coverage/lcov-report/index.html +120 -135
  139. package/coverage/lcov-report/integrations/tests/TestConfiguration.js.html +1 -1
  140. package/coverage/lcov-report/integrations/tests/index.html +1 -1
  141. package/coverage/lcov-report/middleware/appInfo.js.html +1 -1
  142. package/coverage/lcov-report/middleware/authorized.js.html +65 -173
  143. package/coverage/lcov-report/middleware/builder.js.html +10 -10
  144. package/coverage/lcov-report/middleware/currentapp.js.html +83 -95
  145. package/coverage/lcov-report/middleware/index.html +38 -38
  146. package/coverage/lcov-report/middleware/joi-validator.js.html +3 -3
  147. package/coverage/lcov-report/middleware/resourceId.js.html +1 -1
  148. package/coverage/lcov-report/middleware/selfhost.js.html +1 -1
  149. package/coverage/lcov-report/middleware/usageQuota.js.html +53 -281
  150. package/coverage/lcov-report/middleware/utils.js.html +2 -2
  151. package/coverage/lcov-report/threads/automation.js.html +24 -30
  152. package/coverage/lcov-report/threads/index.html +26 -26
  153. package/coverage/lcov-report/threads/index.js.html +10 -10
  154. package/coverage/lcov-report/threads/query.js.html +24 -39
  155. package/coverage/lcov-report/threads/utils.js.html +14 -14
  156. package/coverage/lcov-report/utilities/bcrypt.js.html +1 -1
  157. package/coverage/lcov-report/utilities/budibaseDir.js.html +7 -7
  158. package/coverage/lcov-report/utilities/centralPath.js.html +4 -4
  159. package/coverage/lcov-report/utilities/csvParser.js.html +6 -6
  160. package/coverage/lcov-report/utilities/global.js.html +49 -58
  161. package/coverage/lcov-report/utilities/index.html +37 -37
  162. package/coverage/lcov-report/utilities/index.js.html +73 -43
  163. package/coverage/lcov-report/utilities/queue/inMemoryQueue.js.html +8 -8
  164. package/coverage/lcov-report/utilities/queue/index.html +1 -1
  165. package/coverage/lcov-report/utilities/routing/index.html +1 -1
  166. package/coverage/lcov-report/utilities/routing/index.js.html +7 -7
  167. package/coverage/lcov-report/utilities/rowProcessor/index.html +27 -27
  168. package/coverage/lcov-report/utilities/rowProcessor/index.js.html +103 -97
  169. package/coverage/lcov-report/utilities/rowProcessor/utils.js.html +27 -75
  170. package/coverage/lcov-report/utilities/scriptRunner.js.html +5 -5
  171. package/coverage/lcov-report/utilities/security.js.html +8 -8
  172. package/coverage/lcov-report/utilities/statusCodes.js.html +1 -1
  173. package/coverage/lcov-report/utilities/users.js.html +9 -9
  174. package/coverage/lcov-report/utilities/workerRequests.js.html +112 -43
  175. package/coverage/lcov.info +4431 -5013
  176. package/dist/api/controllers/application.js +60 -90
  177. package/dist/api/controllers/auth.js +5 -8
  178. package/dist/api/controllers/automation.js +19 -14
  179. package/dist/api/controllers/cloud.js +3 -2
  180. package/dist/api/controllers/component.js +4 -3
  181. package/dist/api/controllers/datasource.js +10 -20
  182. package/dist/api/controllers/deploy/Deployment.js +6 -3
  183. package/dist/api/controllers/deploy/index.js +13 -12
  184. package/dist/api/controllers/dev.js +5 -5
  185. package/dist/api/controllers/hosting.js +30 -0
  186. package/dist/api/controllers/layout.js +3 -3
  187. package/dist/api/controllers/metadata.js +4 -4
  188. package/dist/api/controllers/permission.js +4 -4
  189. package/dist/api/controllers/query/import/index.js +6 -4
  190. package/dist/api/controllers/query/index.js +10 -11
  191. package/dist/api/controllers/role.js +5 -5
  192. package/dist/api/controllers/routing.js +6 -5
  193. package/dist/api/controllers/row/ExternalRequest.js +67 -90
  194. package/dist/api/controllers/row/external.js +22 -14
  195. package/dist/api/controllers/row/internal.js +93 -55
  196. package/dist/api/controllers/row/internalSearch.js +17 -23
  197. package/dist/api/controllers/row/utils.js +14 -13
  198. package/dist/api/controllers/screen.js +7 -5
  199. package/dist/api/controllers/static/index.js +12 -61
  200. package/dist/api/controllers/table/external.js +10 -7
  201. package/dist/api/controllers/table/index.js +13 -16
  202. package/dist/api/controllers/table/internal.js +16 -22
  203. package/dist/api/controllers/table/utils.js +35 -62
  204. package/dist/api/controllers/user.js +20 -18
  205. package/dist/api/controllers/view/index.js +10 -8
  206. package/dist/api/controllers/view/utils.js +4 -9
  207. package/dist/api/controllers/webhook.js +8 -10
  208. package/dist/api/routes/hosting.js +11 -0
  209. package/dist/api/routes/index.js +2 -2
  210. package/dist/api/routes/static.js +1 -2
  211. package/dist/api/routes/tests/utilities/TestFunctions.js +17 -37
  212. package/dist/app.js +5 -35
  213. package/dist/automations/automationUtils.js +3 -2
  214. package/dist/automations/steps/createRow.js +5 -3
  215. package/dist/automations/steps/deleteRow.js +4 -1
  216. package/dist/automations/steps/updateRow.js +1 -1
  217. package/dist/automations/triggers.js +25 -27
  218. package/dist/automations/utils.js +5 -10
  219. package/dist/constants/index.js +0 -7
  220. package/dist/db/linkedRows/LinkController.js +7 -3
  221. package/dist/db/linkedRows/index.js +27 -16
  222. package/dist/db/linkedRows/linkUtils.js +6 -6
  223. package/dist/db/views/staticViews.js +10 -9
  224. package/dist/definitions/datasource.js +0 -1
  225. package/dist/environment.js +1 -4
  226. package/dist/integrations/base/sql.js +14 -56
  227. package/dist/integrations/index.js +0 -3
  228. package/dist/integrations/utils.js +9 -60
  229. package/dist/middleware/authorized.js +30 -57
  230. package/dist/middleware/builder.js +2 -2
  231. package/dist/middleware/currentapp.js +37 -41
  232. package/dist/middleware/usageQuota.js +15 -82
  233. package/dist/package.json +5 -8
  234. package/dist/tests/utilities/TestConfiguration.js +50 -80
  235. package/dist/threads/automation.js +11 -13
  236. package/dist/threads/query.js +11 -15
  237. package/dist/tsconfig.tsbuildinfo +1 -1
  238. package/dist/utilities/fileSystem/index.js +3 -4
  239. package/dist/utilities/global.js +12 -15
  240. package/dist/utilities/index.js +17 -7
  241. package/dist/utilities/routing/index.js +5 -5
  242. package/dist/utilities/rowProcessor/index.js +17 -23
  243. package/dist/utilities/rowProcessor/utils.js +4 -14
  244. package/dist/utilities/{usageQuota/index.js → usageQuota.js} +31 -45
  245. package/dist/utilities/users.js +3 -3
  246. package/dist/utilities/workerRequests.js +24 -4
  247. package/nodemon.json +1 -1
  248. package/package.json +6 -9
  249. package/scripts/integrations/postgres/init.sql +6 -11
  250. package/scripts/likeCypress.ts +1 -1
  251. package/src/api/controllers/application.js +50 -85
  252. package/src/api/controllers/auth.js +5 -8
  253. package/src/api/controllers/automation.js +23 -13
  254. package/src/api/controllers/cloud.js +3 -2
  255. package/src/api/controllers/component.js +4 -3
  256. package/src/api/controllers/datasource.js +11 -21
  257. package/src/api/controllers/deploy/Deployment.js +7 -3
  258. package/src/api/controllers/deploy/index.js +13 -20
  259. package/src/api/controllers/dev.js +5 -5
  260. package/src/api/controllers/hosting.js +22 -0
  261. package/src/api/controllers/layout.js +3 -3
  262. package/src/api/controllers/metadata.js +9 -4
  263. package/src/api/controllers/permission.js +4 -4
  264. package/src/api/controllers/query/import/index.ts +6 -4
  265. package/src/api/controllers/query/import/tests/index.spec.js +1 -2
  266. package/src/api/controllers/query/index.js +10 -11
  267. package/src/api/controllers/role.js +5 -5
  268. package/src/api/controllers/routing.js +6 -5
  269. package/src/api/controllers/row/ExternalRequest.ts +43 -67
  270. package/src/api/controllers/row/external.js +58 -27
  271. package/src/api/controllers/row/internal.js +90 -54
  272. package/src/api/controllers/row/internalSearch.js +17 -23
  273. package/src/api/controllers/row/utils.js +18 -13
  274. package/src/api/controllers/screen.js +7 -5
  275. package/src/api/controllers/static/index.js +12 -65
  276. package/src/api/controllers/table/external.js +10 -7
  277. package/src/api/controllers/table/index.js +28 -20
  278. package/src/api/controllers/table/internal.js +19 -24
  279. package/src/api/controllers/table/utils.js +42 -78
  280. package/src/api/controllers/user.js +20 -19
  281. package/src/api/controllers/view/index.js +10 -8
  282. package/src/api/controllers/view/utils.js +4 -9
  283. package/src/api/controllers/webhook.js +8 -10
  284. package/src/api/routes/hosting.js +13 -0
  285. package/src/api/routes/index.js +2 -2
  286. package/src/api/routes/static.js +0 -5
  287. package/src/api/routes/tests/application.spec.js +2 -2
  288. package/src/api/routes/tests/auth.spec.js +2 -1
  289. package/src/api/routes/tests/automation.spec.js +0 -1
  290. package/src/api/routes/tests/hosting.spec.js +36 -0
  291. package/src/api/routes/tests/misc.spec.js +1 -0
  292. package/src/api/routes/tests/routing.spec.js +12 -21
  293. package/src/api/routes/tests/row.spec.js +4 -7
  294. package/src/api/routes/tests/utilities/TestFunctions.js +17 -39
  295. package/src/app.ts +5 -18
  296. package/src/automations/automationUtils.js +3 -2
  297. package/src/automations/steps/createRow.js +5 -2
  298. package/src/automations/steps/deleteRow.js +4 -1
  299. package/src/automations/steps/updateRow.js +1 -1
  300. package/src/automations/triggers.js +31 -33
  301. package/src/automations/utils.js +5 -9
  302. package/src/constants/index.js +0 -9
  303. package/src/db/linkedRows/LinkController.js +7 -3
  304. package/src/db/linkedRows/index.js +31 -16
  305. package/src/db/linkedRows/linkUtils.js +6 -6
  306. package/src/db/tests/linkController.spec.js +1 -0
  307. package/src/db/tests/linkTests.spec.js +6 -5
  308. package/src/db/views/staticViews.js +10 -8
  309. package/src/definitions/common.ts +0 -3
  310. package/src/definitions/datasource.ts +0 -3
  311. package/src/environment.js +1 -4
  312. package/src/integrations/base/sql.ts +21 -69
  313. package/src/integrations/index.ts +0 -3
  314. package/src/integrations/tests/sql.spec.js +0 -16
  315. package/src/integrations/utils.ts +12 -75
  316. package/src/middleware/authorized.js +30 -66
  317. package/src/middleware/builder.js +2 -2
  318. package/src/middleware/currentapp.js +46 -50
  319. package/src/middleware/tests/authorized.spec.js +6 -13
  320. package/src/middleware/tests/currentapp.spec.js +0 -6
  321. package/src/middleware/tests/usageQuota.spec.js +24 -18
  322. package/src/middleware/usageQuota.js +17 -93
  323. package/src/tests/utilities/TestConfiguration.js +55 -82
  324. package/src/threads/automation.js +15 -17
  325. package/src/threads/query.js +12 -17
  326. package/src/utilities/fileSystem/index.js +3 -4
  327. package/src/utilities/global.js +12 -15
  328. package/src/utilities/index.js +17 -7
  329. package/src/utilities/routing/index.js +5 -5
  330. package/src/utilities/rowProcessor/index.js +27 -25
  331. package/src/utilities/rowProcessor/utils.js +7 -23
  332. package/src/utilities/usageQuota.js +73 -0
  333. package/src/utilities/users.js +3 -3
  334. package/src/utilities/workerRequests.js +27 -4
  335. package/tsconfig.json +1 -2
  336. package/builder/assets/index.83c0944f.css +0 -1
  337. package/coverage/lcov-report/api/controllers/migrations.js.html +0 -119
  338. package/coverage/lcov-report/api/controllers/row/staticFormula.js.html +0 -548
  339. package/coverage/lcov-report/api/controllers/table/bulkFormula.js.html +0 -599
  340. package/coverage/lcov-report/utilities/usageQuota/index.html +0 -141
  341. package/coverage/lcov-report/utilities/usageQuota/index.js.html +0 -359
  342. package/coverage/lcov-report/utilities/usageQuota/rows.js.html +0 -305
  343. package/dist/api/controllers/migrations.js +0 -21
  344. package/dist/api/controllers/row/staticFormula.js +0 -147
  345. package/dist/api/controllers/table/bulkFormula.js +0 -159
  346. package/dist/api/routes/migrations.js +0 -9
  347. package/dist/integrations/googlesheets.js +0 -340
  348. package/dist/migrations/functions/appUrls.js +0 -46
  349. package/dist/migrations/functions/quotas1.js +0 -50
  350. package/dist/migrations/functions/usageQuotas/index.js +0 -20
  351. package/dist/migrations/functions/usageQuotas/syncApps.js +0 -29
  352. package/dist/migrations/functions/usageQuotas/syncRows.js +0 -33
  353. package/dist/migrations/functions/userEmailViewCasing.js +0 -24
  354. package/dist/migrations/index.js +0 -62
  355. package/dist/utilities/usageQuota/rows.js +0 -78
  356. package/dist/utilities/usageQuota/usageQuoteReset.js +0 -16
  357. package/src/api/controllers/migrations.js +0 -13
  358. package/src/api/controllers/row/staticFormula.js +0 -156
  359. package/src/api/controllers/table/bulkFormula.js +0 -173
  360. package/src/api/routes/migrations.js +0 -14
  361. package/src/api/routes/tests/static.spec.js +0 -98
  362. package/src/integrations/googlesheets.ts +0 -353
  363. package/src/migrations/functions/appUrls.ts +0 -34
  364. package/src/migrations/functions/quotas1.ts +0 -20
  365. package/src/migrations/functions/tests/appUrls.spec.js +0 -29
  366. package/src/migrations/functions/tests/quotas1.spec.js +0 -27
  367. package/src/migrations/functions/tests/userEmailViewCasing.spec.js +0 -25
  368. package/src/migrations/functions/usageQuotas/index.ts +0 -8
  369. package/src/migrations/functions/usageQuotas/syncApps.ts +0 -18
  370. package/src/migrations/functions/usageQuotas/syncRows.ts +0 -22
  371. package/src/migrations/functions/usageQuotas/tests/syncApps.spec.js +0 -37
  372. package/src/migrations/functions/usageQuotas/tests/syncRows.spec.js +0 -43
  373. package/src/migrations/functions/userEmailViewCasing.ts +0 -13
  374. package/src/migrations/index.ts +0 -56
  375. package/src/module.d.ts +0 -3
  376. package/src/utilities/tests/usageQuota/usageQuota.spec.js +0 -72
  377. package/src/utilities/usageQuota/index.js +0 -93
  378. package/src/utilities/usageQuota/rows.js +0 -75
  379. package/src/utilities/usageQuota/usageQuoteReset.js +0 -18
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">58.01% </span>
26
+ <span class="strong">59.52% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>76/131</span>
28
+ <span class='fraction'>75/126</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">43% </span>
33
+ <span class="strong">45.74% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>43/100</span>
35
+ <span class='fraction'>43/94</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">50% </span>
40
+ <span class="strong">52.63% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>10/20</span>
42
+ <span class='fraction'>10/19</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">60.48% </span>
47
+ <span class="strong">61.66% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>75/124</span>
49
+ <span class='fraction'>74/120</span>
50
50
  </div>
51
51
 
52
52
 
@@ -396,26 +396,28 @@
396
396
  <a name='L337'></a><a href='#L337'>337</a>
397
397
  <a name='L338'></a><a href='#L338'>338</a>
398
398
  <a name='L339'></a><a href='#L339'>339</a>
399
- <a name='L340'></a><a href='#L340'>340</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">39x</span>
400
- <span class="cline-any cline-yes">39x</span>
401
- <span class="cline-any cline-yes">39x</span>
402
- <span class="cline-any cline-yes">39x</span>
403
- <span class="cline-any cline-yes">39x</span>
404
- <span class="cline-any cline-yes">39x</span>
405
- <span class="cline-any cline-yes">39x</span>
399
+ <a name='L340'></a><a href='#L340'>340</a>
400
+ <a name='L341'></a><a href='#L341'>341</a>
401
+ <a name='L342'></a><a href='#L342'>342</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">34x</span>
402
+ <span class="cline-any cline-yes">34x</span>
403
+ <span class="cline-any cline-yes">34x</span>
404
+ <span class="cline-any cline-yes">34x</span>
405
+ <span class="cline-any cline-yes">34x</span>
406
+ <span class="cline-any cline-yes">34x</span>
407
+ <span class="cline-any cline-yes">34x</span>
406
408
  <span class="cline-any cline-neutral">&nbsp;</span>
407
409
  <span class="cline-any cline-neutral">&nbsp;</span>
408
410
  <span class="cline-any cline-neutral">&nbsp;</span>
409
411
  <span class="cline-any cline-neutral">&nbsp;</span>
410
- <span class="cline-any cline-yes">39x</span>
411
- <span class="cline-any cline-yes">39x</span>
412
+ <span class="cline-any cline-yes">34x</span>
413
+ <span class="cline-any cline-yes">34x</span>
412
414
  <span class="cline-any cline-neutral">&nbsp;</span>
413
- <span class="cline-any cline-yes">39x</span>
415
+ <span class="cline-any cline-yes">34x</span>
414
416
  <span class="cline-any cline-neutral">&nbsp;</span>
415
417
  <span class="cline-any cline-neutral">&nbsp;</span>
416
418
  <span class="cline-any cline-neutral">&nbsp;</span>
417
419
  <span class="cline-any cline-neutral">&nbsp;</span>
418
- <span class="cline-any cline-yes">39x</span>
420
+ <span class="cline-any cline-yes">34x</span>
419
421
  <span class="cline-any cline-neutral">&nbsp;</span>
420
422
  <span class="cline-any cline-neutral">&nbsp;</span>
421
423
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -534,13 +536,13 @@
534
536
  <span class="cline-any cline-neutral">&nbsp;</span>
535
537
  <span class="cline-any cline-neutral">&nbsp;</span>
536
538
  <span class="cline-any cline-neutral">&nbsp;</span>
537
- <span class="cline-any cline-yes">76x</span>
538
- <span class="cline-any cline-yes">76x</span>
539
+ <span class="cline-any cline-yes">73x</span>
540
+ <span class="cline-any cline-yes">73x</span>
539
541
  <span class="cline-any cline-neutral">&nbsp;</span>
540
- <span class="cline-any cline-yes">76x</span>
541
- <span class="cline-any cline-yes">76x</span>
542
- <span class="cline-any cline-yes">212x</span>
543
- <span class="cline-any cline-yes">212x</span>
542
+ <span class="cline-any cline-yes">73x</span>
543
+ <span class="cline-any cline-yes">73x</span>
544
+ <span class="cline-any cline-yes">206x</span>
545
+ <span class="cline-any cline-yes">206x</span>
544
546
  <span class="cline-any cline-neutral">&nbsp;</span>
545
547
  <span class="cline-any cline-no">&nbsp;</span>
546
548
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -574,31 +576,29 @@
574
576
  <span class="cline-any cline-no">&nbsp;</span>
575
577
  <span class="cline-any cline-neutral">&nbsp;</span>
576
578
  <span class="cline-any cline-neutral">&nbsp;</span>
577
- <span class="cline-any cline-yes">76x</span>
579
+ <span class="cline-any cline-yes">73x</span>
578
580
  <span class="cline-any cline-neutral">&nbsp;</span>
579
- <span class="cline-any cline-yes">39x</span>
581
+ <span class="cline-any cline-yes">34x</span>
580
582
  <span class="cline-any cline-neutral">&nbsp;</span>
581
- <span class="cline-any cline-yes">39x</span>
582
583
  <span class="cline-any cline-neutral">&nbsp;</span>
583
584
  <span class="cline-any cline-neutral">&nbsp;</span>
584
585
  <span class="cline-any cline-neutral">&nbsp;</span>
585
586
  <span class="cline-any cline-neutral">&nbsp;</span>
586
587
  <span class="cline-any cline-neutral">&nbsp;</span>
587
588
  <span class="cline-any cline-neutral">&nbsp;</span>
589
+ <span class="cline-any cline-yes">34x</span>
588
590
  <span class="cline-any cline-neutral">&nbsp;</span>
589
- <span class="cline-any cline-yes">39x</span>
590
- <span class="cline-any cline-neutral">&nbsp;</span>
591
- <span class="cline-any cline-yes">180x</span>
591
+ <span class="cline-any cline-yes">174x</span>
592
592
  <span class="cline-any cline-no">&nbsp;</span>
593
593
  <span class="cline-any cline-neutral">&nbsp;</span>
594
594
  <span class="cline-any cline-neutral">&nbsp;</span>
595
- <span class="cline-any cline-yes">180x</span>
595
+ <span class="cline-any cline-yes">174x</span>
596
596
  <span class="cline-any cline-yes">16x</span>
597
- <span class="cline-any cline-yes">164x</span>
597
+ <span class="cline-any cline-yes">158x</span>
598
598
  <span class="cline-any cline-yes">22x</span>
599
599
  <span class="cline-any cline-neutral">&nbsp;</span>
600
600
  <span class="cline-any cline-neutral">&nbsp;</span>
601
- <span class="cline-any cline-yes">142x</span>
601
+ <span class="cline-any cline-yes">136x</span>
602
602
  <span class="cline-any cline-neutral">&nbsp;</span>
603
603
  <span class="cline-any cline-neutral">&nbsp;</span>
604
604
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -610,42 +610,45 @@
610
610
  <span class="cline-any cline-neutral">&nbsp;</span>
611
611
  <span class="cline-any cline-neutral">&nbsp;</span>
612
612
  <span class="cline-any cline-neutral">&nbsp;</span>
613
- <span class="cline-any cline-yes">39x</span>
613
+ <span class="cline-any cline-yes">34x</span>
614
614
  <span class="cline-any cline-neutral">&nbsp;</span>
615
615
  <span class="cline-any cline-neutral">&nbsp;</span>
616
616
  <span class="cline-any cline-neutral">&nbsp;</span>
617
617
  <span class="cline-any cline-neutral">&nbsp;</span>
618
618
  <span class="cline-any cline-neutral">&nbsp;</span>
619
- <span class="cline-any cline-yes">76x</span>
619
+ <span class="cline-any cline-yes">73x</span>
620
620
  <span class="cline-any cline-neutral">&nbsp;</span>
621
- <span class="cline-any cline-yes">76x</span>
622
- <span class="cline-any cline-yes">76x</span>
623
- <span class="cline-any cline-yes">76x</span>
624
- <span class="cline-any cline-yes">344x</span>
621
+ <span class="cline-any cline-yes">73x</span>
622
+ <span class="cline-any cline-yes">73x</span>
623
+ <span class="cline-any cline-yes">73x</span>
624
+ <span class="cline-any cline-yes">332x</span>
625
625
  <span class="cline-any cline-neutral">&nbsp;</span>
626
- <span class="cline-any cline-yes">344x</span>
627
- <span class="cline-any cline-yes">165x</span>
626
+ <span class="cline-any cline-yes">332x</span>
627
+ <span class="cline-any cline-yes">159x</span>
628
628
  <span class="cline-any cline-yes">3x</span>
629
629
  <span class="cline-any cline-neutral">&nbsp;</span>
630
- <span class="cline-any cline-yes">165x</span>
630
+ <span class="cline-any cline-yes">159x</span>
631
+ <span class="cline-any cline-neutral">&nbsp;</span>
631
632
  <span class="cline-any cline-neutral">&nbsp;</span>
632
633
  <span class="cline-any cline-neutral">&nbsp;</span>
633
- <span class="cline-any cline-yes">179x</span>
634
+ <span class="cline-any cline-yes">173x</span>
634
635
  <span class="cline-any cline-no">&nbsp;</span>
635
636
  <span class="cline-any cline-neutral">&nbsp;</span>
637
+ <span class="cline-any cline-yes">173x</span>
638
+ <span class="cline-any cline-neutral">&nbsp;</span>
639
+ <span class="cline-any cline-neutral">&nbsp;</span>
636
640
  <span class="cline-any cline-neutral">&nbsp;</span>
641
+ <span class="cline-any cline-yes">73x</span>
642
+ <span class="cline-any cline-yes">68x</span>
643
+ <span class="cline-any cline-yes">68x</span>
637
644
  <span class="cline-any cline-neutral">&nbsp;</span>
638
- <span class="cline-any cline-yes">179x</span>
639
645
  <span class="cline-any cline-neutral">&nbsp;</span>
640
646
  <span class="cline-any cline-neutral">&nbsp;</span>
647
+ <span class="cline-any cline-yes">73x</span>
641
648
  <span class="cline-any cline-neutral">&nbsp;</span>
642
- <span class="cline-any cline-yes">76x</span>
643
- <span class="cline-any cline-yes">71x</span>
644
- <span class="cline-any cline-yes">71x</span>
645
649
  <span class="cline-any cline-neutral">&nbsp;</span>
646
650
  <span class="cline-any cline-neutral">&nbsp;</span>
647
651
  <span class="cline-any cline-neutral">&nbsp;</span>
648
- <span class="cline-any cline-yes">76x</span>
649
652
  <span class="cline-any cline-neutral">&nbsp;</span>
650
653
  <span class="cline-any cline-neutral">&nbsp;</span>
651
654
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -654,24 +657,27 @@
654
657
  <span class="cline-any cline-neutral">&nbsp;</span>
655
658
  <span class="cline-any cline-neutral">&nbsp;</span>
656
659
  <span class="cline-any cline-neutral">&nbsp;</span>
660
+ <span class="cline-any cline-yes">34x</span>
657
661
  <span class="cline-any cline-neutral">&nbsp;</span>
658
662
  <span class="cline-any cline-neutral">&nbsp;</span>
659
663
  <span class="cline-any cline-neutral">&nbsp;</span>
660
- <span class="cline-any cline-yes">39x</span>
661
- <span class="cline-any cline-yes">103x</span>
662
- <span class="cline-any cline-yes">103x</span>
663
- <span class="cline-any cline-yes">90x</span>
664
- <span class="cline-any cline-yes">90x</span>
665
664
  <span class="cline-any cline-neutral">&nbsp;</span>
666
665
  <span class="cline-any cline-neutral">&nbsp;</span>
667
- <span class="cline-any cline-yes">103x</span>
666
+ <span class="cline-any cline-yes">100x</span>
667
+ <span class="cline-any cline-yes">100x</span>
668
+ <span class="cline-any cline-yes">100x</span>
669
+ <span class="cline-any cline-yes">87x</span>
670
+ <span class="cline-any cline-yes">87x</span>
668
671
  <span class="cline-any cline-neutral">&nbsp;</span>
669
672
  <span class="cline-any cline-neutral">&nbsp;</span>
670
- <span class="cline-any cline-yes">103x</span>
673
+ <span class="cline-any cline-yes">100x</span>
671
674
  <span class="cline-any cline-neutral">&nbsp;</span>
672
675
  <span class="cline-any cline-neutral">&nbsp;</span>
673
- <span class="cline-any cline-yes">103x</span>
674
- <span class="cline-any cline-yes">302x</span>
676
+ <span class="cline-any cline-yes">100x</span>
677
+ <span class="cline-any cline-neutral">&nbsp;</span>
678
+ <span class="cline-any cline-neutral">&nbsp;</span>
679
+ <span class="cline-any cline-yes">100x</span>
680
+ <span class="cline-any cline-yes">296x</span>
675
681
  <span class="cline-any cline-yes">8x</span>
676
682
  <span class="cline-any cline-yes">8x</span>
677
683
  <span class="cline-any cline-yes">6x</span>
@@ -682,14 +688,14 @@
682
688
  <span class="cline-any cline-neutral">&nbsp;</span>
683
689
  <span class="cline-any cline-neutral">&nbsp;</span>
684
690
  <span class="cline-any cline-neutral">&nbsp;</span>
685
- <span class="cline-any cline-yes">103x</span>
691
+ <span class="cline-any cline-yes">100x</span>
686
692
  <span class="cline-any cline-yes">26x</span>
687
693
  <span class="cline-any cline-neutral">&nbsp;</span>
688
- <span class="cline-any cline-yes">103x</span>
689
694
  <span class="cline-any cline-neutral">&nbsp;</span>
690
695
  <span class="cline-any cline-neutral">&nbsp;</span>
691
696
  <span class="cline-any cline-neutral">&nbsp;</span>
692
697
  <span class="cline-any cline-neutral">&nbsp;</span>
698
+ <span class="cline-any cline-yes">100x</span>
693
699
  <span class="cline-any cline-neutral">&nbsp;</span>
694
700
  <span class="cline-any cline-neutral">&nbsp;</span>
695
701
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -698,24 +704,20 @@
698
704
  <span class="cline-any cline-neutral">&nbsp;</span>
699
705
  <span class="cline-any cline-neutral">&nbsp;</span>
700
706
  <span class="cline-any cline-neutral">&nbsp;</span>
701
- <span class="cline-any cline-yes">39x</span>
702
- <span class="cline-any cline-yes">11x</span>
703
- <span class="cline-any cline-yes">11x</span>
704
- <span class="cline-any cline-yes">11x</span>
705
707
  <span class="cline-any cline-neutral">&nbsp;</span>
706
- <span class="cline-any cline-yes">11x</span>
707
- <span class="cline-any cline-yes">11x</span>
708
- <span class="cline-any cline-yes">11x</span>
709
708
  <span class="cline-any cline-neutral">&nbsp;</span>
710
709
  <span class="cline-any cline-neutral">&nbsp;</span>
711
- <span class="cline-any cline-no">&nbsp;</span>
710
+ <span class="cline-any cline-yes">34x</span>
711
+ <span class="cline-any cline-yes">8x</span>
712
+ <span class="cline-any cline-yes">8x</span>
712
713
  <span class="cline-any cline-neutral">&nbsp;</span>
713
- <span class="cline-any cline-no">&nbsp;</span>
714
- <span class="cline-any cline-no">&nbsp;</span>
714
+ <span class="cline-any cline-yes">8x</span>
715
+ <span class="cline-any cline-yes">8x</span>
716
+ <span class="cline-any cline-yes">8x</span>
715
717
  <span class="cline-any cline-neutral">&nbsp;</span>
716
718
  <span class="cline-any cline-neutral">&nbsp;</span>
717
719
  <span class="cline-any cline-no">&nbsp;</span>
718
- <span class="cline-any cline-no">&nbsp;</span>
720
+ <span class="cline-any cline-neutral">&nbsp;</span>
719
721
  <span class="cline-any cline-no">&nbsp;</span>
720
722
  <span class="cline-any cline-no">&nbsp;</span>
721
723
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -724,6 +726,8 @@
724
726
  <span class="cline-any cline-no">&nbsp;</span>
725
727
  <span class="cline-any cline-no">&nbsp;</span>
726
728
  <span class="cline-any cline-neutral">&nbsp;</span>
729
+ <span class="cline-any cline-neutral">&nbsp;</span>
730
+ <span class="cline-any cline-no">&nbsp;</span>
727
731
  <span class="cline-any cline-no">&nbsp;</span>
728
732
  <span class="cline-any cline-no">&nbsp;</span>
729
733
  <span class="cline-any cline-no">&nbsp;</span>
@@ -744,10 +748,10 @@ const { deleteFiles } = require("../../utilities/fileSystem/utilities")
744
748
  const { ObjectStoreBuckets } = require("../../constants")
745
749
  const {
746
750
  isProdAppID,
747
- getProdAppID,
751
+ getDeployedAppID,
748
752
  dbExists,
749
753
  } = require("@budibase/backend-core/db")
750
- const { getAppId } = require("@budibase/backend-core/context")
754
+ const CouchDB = require("../../db")
751
755
  &nbsp;
752
756
  const BASE_AUTO_ID = 1
753
757
  &nbsp;
@@ -917,8 +921,6 @@ function processAutoColumn(
917
921
  }
918
922
  exports.processAutoColumn = processAutoColumn
919
923
  &nbsp;
920
- exports.processFormulas = processFormulas
921
- &nbsp;
922
924
  /**
923
925
  * This will coerce a value to the correct types based on the type transform map
924
926
  * @param {object} row The value to coerce
@@ -968,12 +970,11 @@ exports.inputProcessing = (
968
970
  }
969
971
  continue
970
972
  }
971
- // remove any formula values, they are to be generated
973
+ // specific case to delete formula values if they get saved
974
+ // type coercion cannot completely remove the field, so have to do it here
972
975
  <span class="missing-if-branch" title="if path not taken" >I</span>if (field.type === FieldTypes.FORMULA) {
973
976
  <span class="cstat-no" title="statement not covered" > delete clonedRow[key]</span>
974
- }
975
- // otherwise coerce what is there to correct types
976
- else {
977
+ } else {
977
978
  clonedRow[key] = exports.coerce(value, field.type)
978
979
  }
979
980
  }
@@ -990,23 +991,30 @@ exports.inputProcessing = (
990
991
  /**
991
992
  * This function enriches the input rows with anything they are supposed to contain, for example
992
993
  * link records or attachment links.
994
+ * @param {object} ctx the request which is looking for enriched rows.
993
995
  * @param {object} table the table from which these rows came from originally, this is used to determine
994
996
  * the schema of the rows and then enrich.
995
997
  * @param {object[]|object} rows the rows which are to be enriched.
996
998
  * @param {object} opts used to set some options for the output, such as disabling relationship squashing.
997
999
  * @returns {object[]|object} the enriched rows will be returned.
998
1000
  */
999
- exports.outputProcessing = async (table, rows, opts = { squash: true }) =&gt; {
1001
+ exports.outputProcessing = async (
1002
+ ctx,
1003
+ table,
1004
+ rows,
1005
+ opts = { squash: true }
1006
+ ) =&gt; {
1007
+ const appId = ctx.appId
1000
1008
  let wasArray = true
1001
1009
  if (!(rows instanceof Array)) {
1002
1010
  rows = [rows]
1003
1011
  wasArray = false
1004
1012
  }
1005
1013
  // attach any linked row information
1006
- let enriched = await linkRows.attachFullLinkedDocs(table, rows)
1014
+ let enriched = await linkRows.attachFullLinkedDocs(ctx, table, rows)
1007
1015
  &nbsp;
1008
1016
  // process formulas
1009
- enriched = processFormulas(table, enriched, { dynamic: true })
1017
+ enriched = processFormulas(table, enriched)
1010
1018
  &nbsp;
1011
1019
  // update the attachments URL depending on hosting
1012
1020
  for (let [property, column] of Object.entries(table.schema)) {
@@ -1022,27 +1030,29 @@ exports.outputProcessing = async (table, rows, opts = { squash: true }) =&gt; {
1022
1030
  }
1023
1031
  }
1024
1032
  if (opts.squash) {
1025
- enriched = await linkRows.squashLinksToPrimaryDisplay(table, enriched)
1033
+ enriched = await linkRows.squashLinksToPrimaryDisplay(
1034
+ appId,
1035
+ table,
1036
+ enriched
1037
+ )
1026
1038
  }
1027
1039
  return wasArray ? enriched : enriched[0]
1028
1040
  }
1029
1041
  &nbsp;
1030
1042
  /**
1031
1043
  * Clean up any attachments that were attached to a row.
1044
+ * @param {string} appId The ID of the app from which a row is being deleted.
1032
1045
  * @param {object} table The table from which a row is being removed.
1033
1046
  * @param {any} row optional - the row being removed.
1034
1047
  * @param {any} rows optional - if multiple rows being deleted can do this in bulk.
1035
1048
  * @param {any} oldRow optional - if updating a row this will determine the difference.
1036
- * @param {any} oldTable optional - if updating a table, can supply the old table to look for
1037
- * deleted attachment columns.
1038
1049
  * @return {Promise&lt;void&gt;} When all attachments have been removed this will return.
1039
1050
  */
1040
- exports.cleanupAttachments = async (table, { row, rows, oldRow, oldTable }) =&gt; {
1041
- const appId = getAppId()
1051
+ exports.cleanupAttachments = async (appId, table, { row, rows, oldRow }) =&gt; {
1042
1052
  if (!isProdAppID(appId)) {
1043
- const prodAppId = getProdAppID(appId)
1053
+ const prodAppId = getDeployedAppID(appId)
1044
1054
  // if prod exists, then don't allow deleting
1045
- const exists = await dbExists(prodAppId)
1055
+ const exists = await dbExists(CouchDB, prodAppId)
1046
1056
  if (exists) {
1047
1057
  return
1048
1058
  }
@@ -1053,16 +1063,12 @@ exports.cleanupAttachments = async (table, { row, rows, oldRow, oldTable }) =&gt
1053
1063
  <span class="cstat-no" title="statement not covered" > files = files.concat(row[key].map(<span class="fstat-no" title="function not covered" >at</span>tachment =&gt; <span class="cstat-no" title="statement not covered" >attachment.key)</span>)</span>
1054
1064
  }
1055
1065
  }
1056
- const schemaToUse = <span class="cstat-no" title="statement not covered" >oldTable ? oldTable.schema : table.schema</span>
1057
- <span class="cstat-no" title="statement not covered" > for (let [key, schema] of Object.entries(schemaToUse)) {</span>
1066
+ <span class="cstat-no" title="statement not covered" > for (let [key, schema] of Object.entries(table.schema)) {</span>
1058
1067
  <span class="cstat-no" title="statement not covered" > if (schema.type !== FieldTypes.ATTACHMENT) {</span>
1059
1068
  <span class="cstat-no" title="statement not covered" > continue</span>
1060
1069
  }
1061
- // old table had this column, new table doesn't - delete it
1062
- <span class="cstat-no" title="statement not covered" > if (oldTable &amp;&amp; !table.schema[key]) {</span>
1063
- <span class="cstat-no" title="statement not covered" > rows.forEach(<span class="fstat-no" title="function not covered" >ro</span>w =&gt; <span class="cstat-no" title="statement not covered" >addFiles(row, key))</span></span>
1064
- } else <span class="cstat-no" title="statement not covered" >if (oldRow &amp;&amp; row) {</span>
1065
- // if updating, need to manage the differences
1070
+ // if updating, need to manage the differences
1071
+ <span class="cstat-no" title="statement not covered" > if (oldRow &amp;&amp; row) {</span>
1066
1072
  <span class="cstat-no" title="statement not covered" > files = files.concat(getRemovedAttachmentKeys(oldRow, row, key))</span>
1067
1073
  } else <span class="cstat-no" title="statement not covered" >if (row) {</span>
1068
1074
  <span class="cstat-no" title="statement not covered" > addFiles(row, key)</span>
@@ -1081,7 +1087,7 @@ exports.cleanupAttachments = async (table, { row, rows, oldRow, oldTable }) =&gt
1081
1087
  <div class='footer quiet pad2 space-top1 center small'>
1082
1088
  Code coverage generated by
1083
1089
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
1084
- at Thu Feb 03 2022 20:58:15 GMT+0000 (Coordinated Universal Time)
1090
+ at Fri Feb 04 2022 12:19:28 GMT+0000 (Coordinated Universal Time)
1085
1091
  </div>
1086
1092
  </div>
1087
1093
  <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">66.66% </span>
26
+ <span class="strong">83.33% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>12/18</span>
28
+ <span class='fraction'>10/12</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">50% </span>
33
+ <span class="strong">83.33% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>9/18</span>
35
+ <span class='fraction'>5/6</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">100% </span>
40
+ <span class="strong">50% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>1/1</span>
42
+ <span class='fraction'>1/2</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">70.58% </span>
47
+ <span class="strong">90.9% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>12/17</span>
49
+ <span class='fraction'>10/11</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 medium'></div>
58
+ <div class='status-line high'></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>
@@ -80,97 +80,49 @@
80
80
  <a name='L21'></a><a href='#L21'>21</a>
81
81
  <a name='L22'></a><a href='#L22'>22</a>
82
82
  <a name='L23'></a><a href='#L23'>23</a>
83
- <a name='L24'></a><a href='#L24'>24</a>
84
- <a name='L25'></a><a href='#L25'>25</a>
85
- <a name='L26'></a><a href='#L26'>26</a>
86
- <a name='L27'></a><a href='#L27'>27</a>
87
- <a name='L28'></a><a href='#L28'>28</a>
88
- <a name='L29'></a><a href='#L29'>29</a>
89
- <a name='L30'></a><a href='#L30'>30</a>
90
- <a name='L31'></a><a href='#L31'>31</a>
91
- <a name='L32'></a><a href='#L32'>32</a>
92
- <a name='L33'></a><a href='#L33'>33</a>
93
- <a name='L34'></a><a href='#L34'>34</a>
94
- <a name='L35'></a><a href='#L35'>35</a>
95
- <a name='L36'></a><a href='#L36'>36</a>
96
- <a name='L37'></a><a href='#L37'>37</a>
97
- <a name='L38'></a><a href='#L38'>38</a>
98
- <a name='L39'></a><a href='#L39'>39</a>
99
- <a name='L40'></a><a href='#L40'>40</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">39x</span>
100
- <span class="cline-any cline-yes">39x</span>
101
- <span class="cline-any cline-neutral">&nbsp;</span>
102
- <span class="cline-any cline-neutral">&nbsp;</span>
103
- <span class="cline-any cline-neutral">&nbsp;</span>
104
- <span class="cline-any cline-neutral">&nbsp;</span>
105
- <span class="cline-any cline-yes">39x</span>
106
- <span class="cline-any cline-neutral">&nbsp;</span>
107
- <span class="cline-any cline-neutral">&nbsp;</span>
108
- <span class="cline-any cline-neutral">&nbsp;</span>
83
+ <a name='L24'></a><a href='#L24'>24</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">34x</span>
84
+ <span class="cline-any cline-yes">34x</span>
109
85
  <span class="cline-any cline-neutral">&nbsp;</span>
110
- <span class="cline-any cline-yes">267x</span>
111
- <span class="cline-any cline-yes">267x</span>
112
- <span class="cline-any cline-yes">164x</span>
113
- <span class="cline-any cline-yes">164x</span>
114
86
  <span class="cline-any cline-neutral">&nbsp;</span>
115
- <span class="cline-any cline-yes">267x</span>
116
- <span class="cline-any cline-yes">776x</span>
117
- <span class="cline-any cline-yes">776x</span>
118
87
  <span class="cline-any cline-neutral">&nbsp;</span>
119
88
  <span class="cline-any cline-neutral">&nbsp;</span>
89
+ <span class="cline-any cline-yes">34x</span>
90
+ <span class="cline-any cline-yes">118x</span>
91
+ <span class="cline-any cline-yes">118x</span>
92
+ <span class="cline-any cline-yes">18x</span>
120
93
  <span class="cline-any cline-neutral">&nbsp;</span>
94
+ <span class="cline-any cline-yes">118x</span>
95
+ <span class="cline-any cline-yes">364x</span>
96
+ <span class="cline-any cline-yes">364x</span>
121
97
  <span class="cline-any cline-neutral">&nbsp;</span>
122
- <span class="cline-any cline-yes">776x</span>
123
98
  <span class="cline-any cline-neutral">&nbsp;</span>
124
- <span class="cline-any cline-neutral">&nbsp;</span>
125
- <span class="cline-any cline-no">&nbsp;</span>
126
- <span class="cline-any cline-no">&nbsp;</span>
127
- <span class="cline-any cline-no">&nbsp;</span>
128
- <span class="cline-any cline-no">&nbsp;</span>
129
99
  <span class="cline-any cline-no">&nbsp;</span>
130
100
  <span class="cline-any cline-neutral">&nbsp;</span>
131
101
  <span class="cline-any cline-neutral">&nbsp;</span>
132
102
  <span class="cline-any cline-neutral">&nbsp;</span>
133
103
  <span class="cline-any cline-neutral">&nbsp;</span>
104
+ <span class="cline-any cline-yes">118x</span>
134
105
  <span class="cline-any cline-neutral">&nbsp;</span>
135
- <span class="cline-any cline-neutral">&nbsp;</span>
136
- <span class="cline-any cline-yes">267x</span>
137
- <span class="cline-any cline-neutral">&nbsp;</span>
138
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">const { FieldTypes, FormulaTypes } = require("../../constants")
106
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">const { FieldTypes } = require("../../constants")
139
107
  const { processStringSync } = require("@budibase/string-templates")
140
108
  &nbsp;
141
109
  /**
142
110
  * Looks through the rows provided and finds formulas - which it then processes.
143
111
  */
144
- exports.processFormulas = (
145
- table,
146
- rows,
147
- { dynamic, contextRows } = { dynamic: true }
148
- ) =&gt; {
112
+ exports.processFormulas = (table, rows) =&gt; {
149
113
  const single = !Array.isArray(rows)
150
114
  if (single) {
151
115
  rows = [rows]
152
- contextRows = contextRows ? [contextRows] : contextRows
153
116
  }
154
117
  for (let [column, schema] of Object.entries(table.schema)) {
155
- const isStatic = schema.formulaType === FormulaTypes.STATIC
156
- if (
157
- schema.type !== FieldTypes.FORMULA ||
158
- (<span class="branch-1 cbranch-no" title="branch not covered" >dynamic </span>&amp;&amp; <span class="branch-2 cbranch-no" title="branch not covered" >isStatic)</span> ||
159
- (<span class="branch-3 cbranch-no" title="branch not covered" >!dynamic </span>&amp;&amp; <span class="branch-4 cbranch-no" title="branch not covered" >!isStatic)</span>
160
- ) {
118
+ if (schema.type !== FieldTypes.FORMULA) {
161
119
  continue
162
120
  }
163
121
  // iterate through rows and process formula
164
- <span class="cstat-no" title="statement not covered" > for (let i = <span class="cstat-no" title="statement not covered" >0;</span> i &lt; rows.length; i++) {</span>
165
- <span class="cstat-no" title="statement not covered" > if (schema.formula) {</span>
166
- let row = <span class="cstat-no" title="statement not covered" >rows[i]</span>
167
- let context = <span class="cstat-no" title="statement not covered" >contextRows ? contextRows[i] : row</span>
168
- <span class="cstat-no" title="statement not covered" > rows[i] = {</span>
169
- ...row,
170
- [column]: processStringSync(schema.formula, context),
171
- }
172
- }
173
- }
122
+ <span class="cstat-no" title="statement not covered" > rows = rows.map(<span class="fstat-no" title="function not covered" >ro</span>w =&gt; (<span class="cstat-no" title="statement not covered" >{</span></span>
123
+ ...row,
124
+ [column]: processStringSync(schema.formula, row),
125
+ }))
174
126
  }
175
127
  return single ? rows[0] : rows
176
128
  }
@@ -181,7 +133,7 @@ exports.processFormulas = (
181
133
  <div class='footer quiet pad2 space-top1 center small'>
182
134
  Code coverage generated by
183
135
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
184
- at Thu Feb 03 2022 20:58:15 GMT+0000 (Coordinated Universal Time)
136
+ at Fri Feb 04 2022 12:19:28 GMT+0000 (Coordinated Universal Time)
185
137
  </div>
186
138
  </div>
187
139
  <script src="../../prettify.js"></script>
@@ -81,9 +81,9 @@
81
81
  <a name='L22'></a><a href='#L22'>22</a>
82
82
  <a name='L23'></a><a href='#L23'>23</a>
83
83
  <a name='L24'></a><a href='#L24'>24</a>
84
- <a name='L25'></a><a href='#L25'>25</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">39x</span>
85
- <span class="cline-any cline-yes">39x</span>
86
- <span class="cline-any cline-yes">39x</span>
84
+ <a name='L25'></a><a href='#L25'>25</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">34x</span>
85
+ <span class="cline-any cline-yes">34x</span>
86
+ <span class="cline-any cline-yes">34x</span>
87
87
  <span class="cline-any cline-neutral">&nbsp;</span>
88
88
  <span class="cline-any cline-neutral">&nbsp;</span>
89
89
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -104,7 +104,7 @@
104
104
  <span class="cline-any cline-neutral">&nbsp;</span>
105
105
  <span class="cline-any cline-neutral">&nbsp;</span>
106
106
  <span class="cline-any cline-neutral">&nbsp;</span>
107
- <span class="cline-any cline-yes">39x</span>
107
+ <span class="cline-any cline-yes">34x</span>
108
108
  <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">const fetch = require("node-fetch")
109
109
  const { VM, VMScript } = require("vm2")
110
110
  const JS_TIMEOUT_MS = 1000
@@ -136,7 +136,7 @@ module.exports = ScriptRunner
136
136
  <div class='footer quiet pad2 space-top1 center small'>
137
137
  Code coverage generated by
138
138
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
139
- at Thu Feb 03 2022 20:58:15 GMT+0000 (Coordinated Universal Time)
139
+ at Fri Feb 04 2022 12:19:28 GMT+0000 (Coordinated Universal Time)
140
140
  </div>
141
141
  </div>
142
142
  <script src="../prettify.js"></script>