@budibase/server 2.1.40-alpha.5 → 2.1.41

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 (787) hide show
  1. package/__mocks__/aws-sdk.ts +0 -14
  2. package/__mocks__/node-fetch.ts +1 -5
  3. package/builder/assets/{index.8170ae19.js → index.2467ba90.js} +327 -327
  4. package/builder/assets/{index.144dddb2.css → index.534f6c29.css} +2 -2
  5. package/builder/index.html +2 -2
  6. package/coverage/clover.xml +3740 -10734
  7. package/coverage/coverage-final.json +118 -266
  8. package/coverage/lcov-report/{src/api/controllers/apikeys.ts.html → api/controllers/apikeys.js.html} +26 -26
  9. package/coverage/lcov-report/{src/api/controllers/automation.ts.html → api/controllers/automation.js.html} +75 -75
  10. package/coverage/lcov-report/{src/api/controllers/cloud.ts.html → api/controllers/cloud.js.html} +47 -47
  11. package/coverage/lcov-report/{src/api/controllers/datasource.ts.html → api/controllers/datasource.js.html} +88 -268
  12. package/coverage/lcov-report/{src/api/controllers/dev.ts.html → api/controllers/dev.js.html} +71 -53
  13. package/coverage/lcov-report/api/controllers/index.html +326 -0
  14. package/coverage/lcov-report/{src/api/controllers/integration.ts.html → api/controllers/integration.js.html} +22 -19
  15. package/coverage/lcov-report/{src/api/controllers/layout.ts.html → api/controllers/layout.js.html} +26 -26
  16. package/coverage/lcov-report/{src/api/controllers/metadata.ts.html → api/controllers/metadata.js.html} +23 -26
  17. package/coverage/lcov-report/{src/api/controllers/migrations.ts.html → api/controllers/migrations.js.html} +15 -18
  18. package/coverage/lcov-report/{src/api/controllers/permission.ts.html → api/controllers/permission.js.html} +71 -80
  19. package/coverage/lcov-report/{src/utilities/routing → api/controllers/query}/index.html +8 -8
  20. package/coverage/lcov-report/{src/api/controllers/query/validation.ts.html → api/controllers/query/validation.js.html} +17 -17
  21. package/coverage/lcov-report/{src/api/controllers/role.ts.html → api/controllers/role.js.html} +56 -44
  22. package/coverage/lcov-report/{src/api/controllers/routing.ts.html → api/controllers/routing.js.html} +56 -65
  23. package/coverage/lcov-report/{src/api/controllers/row/external.ts.html → api/controllers/row/external.js.html} +94 -145
  24. package/coverage/lcov-report/{src/api → api}/controllers/row/index.html +52 -82
  25. package/coverage/lcov-report/{src/api/controllers/row/internal.ts.html → api/controllers/row/internal.js.html} +95 -137
  26. package/coverage/lcov-report/{src/api/controllers/row/internalSearch.ts.html → api/controllers/row/internalSearch.js.html} +110 -182
  27. package/coverage/lcov-report/{src/api/controllers/row/staticFormula.ts.html → api/controllers/row/staticFormula.js.html} +51 -66
  28. package/coverage/lcov-report/{src/api/controllers/row/utils.ts.html → api/controllers/row/utils.js.html} +47 -77
  29. package/coverage/lcov-report/{src/api/controllers/script.ts.html → api/controllers/script.js.html} +14 -17
  30. package/coverage/lcov-report/{src/api/controllers/table/bulkFormula.ts.html → api/controllers/table/bulkFormula.js.html} +54 -96
  31. package/coverage/lcov-report/{src/api/controllers/table/external.ts.html → api/controllers/table/external.js.html} +103 -196
  32. package/coverage/lcov-report/{src/utilities/fileSystem → api/controllers/table}/index.html +44 -44
  33. package/coverage/lcov-report/{src/api/controllers/table/index.ts.html → api/controllers/table/index.js.html} +37 -46
  34. package/coverage/lcov-report/{src/api/controllers/templates.ts.html → api/controllers/templates.js.html} +25 -34
  35. package/coverage/lcov-report/{src/api/controllers/user.ts.html → api/controllers/user.js.html} +85 -79
  36. package/coverage/lcov-report/{src/api/controllers/view/exporters.ts.html → api/controllers/view/exporters.js.html} +14 -20
  37. package/coverage/lcov-report/{src/api → api}/controllers/view/index.html +36 -36
  38. package/coverage/lcov-report/{src/api/controllers/view/index.ts.html → api/controllers/view/index.js.html} +48 -75
  39. package/coverage/lcov-report/{src/api/controllers/view/utils.ts.html → api/controllers/view/utils.js.html} +43 -61
  40. package/coverage/lcov-report/{src/api/controllers/view/viewBuilder.ts.html → api/controllers/view/viewBuilder.js.html} +32 -74
  41. package/coverage/lcov-report/{src/api → api}/index.html +23 -23
  42. package/coverage/lcov-report/{src/api/index.ts.html → api/index.js.html} +56 -35
  43. package/coverage/lcov-report/{src/api/routes/analytics.ts.html → api/routes/analytics.js.html} +14 -14
  44. package/coverage/lcov-report/{src/middleware/selfhost.ts.html → api/routes/apikeys.js.html} +27 -27
  45. package/coverage/lcov-report/{src/api/routes/automation.ts.html → api/routes/automation.js.html} +42 -48
  46. package/coverage/lcov-report/{src/api/routes/backup.ts.html → api/routes/cloud.js.html} +21 -21
  47. package/coverage/lcov-report/{src/api/routes/component.ts.html → api/routes/component.js.html} +17 -17
  48. package/coverage/lcov-report/{src/constants/screens.ts.html → api/routes/datasource.js.html} +65 -56
  49. package/coverage/lcov-report/{src/api/routes/cloud.ts.html → api/routes/deploy.js.html} +22 -25
  50. package/coverage/lcov-report/{src/automations/index.ts.html → api/routes/dev.js.html} +42 -42
  51. package/coverage/lcov-report/{src/api → api}/routes/index.html +47 -167
  52. package/coverage/lcov-report/{src/api/routes/apikeys.ts.html → api/routes/integration.js.html} +18 -18
  53. package/coverage/lcov-report/{src/api/routes/layout.ts.html → api/routes/layout.js.html} +18 -18
  54. package/coverage/lcov-report/{src/api/routes/metadata.ts.html → api/routes/metadata.js.html} +24 -24
  55. package/coverage/lcov-report/{src/sdk/index.ts.html → api/routes/migrations.js.html} +21 -24
  56. package/coverage/lcov-report/{src/api/routes/permission.ts.html → api/routes/permission.js.html} +24 -48
  57. package/coverage/lcov-report/{src/api/routes/query.ts.html → api/routes/query.js.html} +42 -33
  58. package/coverage/lcov-report/{src/db/index.ts.html → api/routes/role.js.html} +25 -28
  59. package/coverage/lcov-report/{src/api/routes/routing.ts.html → api/routes/routing.js.html} +17 -17
  60. package/coverage/lcov-report/api/routes/screen.js.html +139 -0
  61. package/coverage/lcov-report/{src/api/routes/script.ts.html → api/routes/script.js.html} +17 -17
  62. package/coverage/lcov-report/{src/api/routes/table.ts.html → api/routes/table.js.html} +33 -24
  63. package/coverage/lcov-report/{src/api/routes/templates.ts.html → api/routes/templates.js.html} +18 -18
  64. package/coverage/lcov-report/{src/api/routes/user.ts.html → api/routes/user.js.html} +35 -29
  65. package/coverage/lcov-report/{src/api → api}/routes/utils/index.html +15 -15
  66. package/coverage/lcov-report/{src/api/routes/utils/validators.ts.html → api/routes/utils/validators.js.html} +58 -46
  67. package/coverage/lcov-report/{src/api/routes/view.ts.html → api/routes/view.js.html} +31 -40
  68. package/coverage/lcov-report/{src/automations/actions.ts.html → automations/actions.js.html} +41 -50
  69. package/coverage/lcov-report/{src/automations/automationUtils.ts.html → automations/automationUtils.js.html} +27 -30
  70. package/coverage/lcov-report/{src/automations/bullboard.ts.html → automations/bullboard.js.html} +33 -30
  71. package/coverage/lcov-report/{src/automations → automations}/index.html +48 -63
  72. package/coverage/lcov-report/{src/websocket.ts.html → automations/index.js.html} +50 -41
  73. package/coverage/lcov-report/{src/automations/steps/bash.ts.html → automations/steps/bash.js.html} +25 -40
  74. package/coverage/lcov-report/{src/automations/steps/delay.ts.html → automations/steps/delay.js.html} +17 -32
  75. package/coverage/lcov-report/{src/automations/steps/discord.ts.html → automations/steps/discord.js.html} +23 -38
  76. package/coverage/lcov-report/{src/automations/steps/executeQuery.ts.html → automations/steps/executeQuery.js.html} +26 -41
  77. package/coverage/lcov-report/{src/automations/steps/executeScript.ts.html → automations/steps/executeScript.js.html} +24 -54
  78. package/coverage/lcov-report/{src/automations/steps/filter.ts.html → automations/steps/filter.js.html} +27 -36
  79. package/coverage/lcov-report/automations/steps/index.html +341 -0
  80. package/coverage/lcov-report/{src/automations/steps/integromat.ts.html → automations/steps/integromat.js.html} +20 -35
  81. package/coverage/lcov-report/{src/automations/steps/loop.ts.html → automations/steps/loop.js.html} +15 -21
  82. package/coverage/lcov-report/{src/automations/steps/outgoingWebhook.ts.html → automations/steps/outgoingWebhook.js.html} +33 -48
  83. package/coverage/lcov-report/{src/automations/steps/queryRows.ts.html → automations/steps/queryRows.js.html} +58 -94
  84. package/coverage/lcov-report/{src/automations/steps/sendSmtpEmail.ts.html → automations/steps/sendSmtpEmail.js.html} +22 -37
  85. package/coverage/lcov-report/{src/automations/steps/serverLog.ts.html → automations/steps/serverLog.js.html} +20 -38
  86. package/coverage/lcov-report/{src/automations/steps/slack.ts.html → automations/steps/slack.js.html} +20 -35
  87. package/coverage/lcov-report/{src/automations/steps/updateRow.ts.html → automations/steps/updateRow.js.html} +21 -36
  88. package/coverage/lcov-report/{src/automations/steps/utils.ts.html → automations/steps/utils.js.html} +26 -44
  89. package/coverage/lcov-report/{src/automations/steps/zapier.ts.html → automations/steps/zapier.js.html} +20 -38
  90. package/coverage/lcov-report/{src/definitions/automations.ts.html → automations/triggerInfo/app.js.html} +42 -42
  91. package/coverage/lcov-report/{src/automations/triggerInfo/cron.ts.html → automations/triggerInfo/cron.js.html} +15 -30
  92. package/coverage/lcov-report/{src/automations → automations}/triggerInfo/index.html +31 -31
  93. package/coverage/lcov-report/{src/automations/triggerInfo/index.ts.html → automations/triggerInfo/index.js.html} +17 -17
  94. package/coverage/lcov-report/{src/automations/triggerInfo/rowDeleted.ts.html → automations/triggerInfo/rowDeleted.js.html} +15 -30
  95. package/coverage/lcov-report/{src/automations/triggerInfo/rowSaved.ts.html → automations/triggerInfo/rowSaved.js.html} +15 -30
  96. package/coverage/lcov-report/{src/automations/triggerInfo/rowUpdated.ts.html → automations/triggerInfo/rowUpdated.js.html} +15 -30
  97. package/coverage/lcov-report/{src/automations/triggerInfo/webhook.ts.html → automations/triggerInfo/webhook.js.html} +15 -30
  98. package/coverage/lcov-report/{src/automations/triggers.ts.html → automations/triggers.js.html} +47 -59
  99. package/coverage/lcov-report/{src/constants → constants}/index.html +26 -26
  100. package/coverage/lcov-report/{src/constants/index.ts.html → constants/index.js.html} +185 -173
  101. package/coverage/lcov-report/{src/constants/layouts.ts.html → constants/layouts.js.html} +34 -16
  102. package/coverage/lcov-report/{src/definitions/datasource.ts.html → constants/screens.js.html} +60 -72
  103. package/coverage/lcov-report/{src/db/inMemoryView.ts.html → db/inMemoryView.js.html} +26 -44
  104. package/coverage/lcov-report/{src/db → db}/index.html +33 -48
  105. package/coverage/lcov-report/{src/api/routes/integration.ts.html → db/index.js.html} +36 -36
  106. package/coverage/lcov-report/{src/db/linkedRows/LinkController.ts.html → db/linkedRows/LinkController.js.html} +155 -92
  107. package/coverage/lcov-report/db/linkedRows/index.html +146 -0
  108. package/coverage/lcov-report/{src/db/linkedRows/index.ts.html → db/linkedRows/index.js.html} +68 -83
  109. package/coverage/lcov-report/{src/db/linkedRows/linkUtils.ts.html → db/linkedRows/linkUtils.js.html} +46 -73
  110. package/coverage/lcov-report/{src/db/newid.ts.html → db/newid.js.html} +11 -11
  111. package/coverage/lcov-report/{src/db/utils.ts.html → db/utils.js.html} +153 -105
  112. package/coverage/lcov-report/{src/events/AutomationEmitter.ts.html → events/AutomationEmitter.js.html} +21 -36
  113. package/coverage/lcov-report/{src/events → events}/index.html +33 -48
  114. package/coverage/lcov-report/{src/events/BudibaseEmitter.ts.html → events/index.js.html} +26 -23
  115. package/coverage/lcov-report/{src/automations/triggerInfo/app.ts.html → events/utils.js.html} +72 -69
  116. package/coverage/lcov-report/index.html +184 -679
  117. package/coverage/lcov-report/{src/integrations → integrations}/tests/TestConfiguration.js.html +10 -10
  118. package/coverage/lcov-report/{src/integrations → integrations}/tests/index.html +10 -10
  119. package/coverage/lcov-report/{src/middleware/appInfo.ts.html → middleware/appInfo.js.html} +28 -31
  120. package/coverage/lcov-report/{src/middleware/builder.ts.html → middleware/builder.js.html} +37 -43
  121. package/coverage/lcov-report/{src/middleware/currentapp.ts.html → middleware/currentapp.js.html} +68 -77
  122. package/coverage/lcov-report/{src/middleware → middleware}/index.html +63 -78
  123. package/coverage/lcov-report/{src/middleware/joi-validator.ts.html → middleware/joi-validator.js.html} +22 -25
  124. package/coverage/lcov-report/{src/middleware/publicApi.ts.html → middleware/publicApi.js.html} +24 -24
  125. package/coverage/lcov-report/{src/middleware/resourceId.ts.html → middleware/resourceId.js.html} +25 -40
  126. package/coverage/lcov-report/{src/tests/utilities/index.ts.html → middleware/selfhost.js.html} +30 -33
  127. package/coverage/lcov-report/{src/middleware/utils.ts.html → middleware/utils.js.html} +13 -19
  128. package/coverage/lcov-report/{src/utilities/budibaseDir.ts.html → utilities/budibaseDir.js.html} +12 -12
  129. package/coverage/lcov-report/{src/utilities/centralPath.ts.html → utilities/centralPath.js.html} +13 -13
  130. package/coverage/lcov-report/{src/utilities/csvParser.ts.html → utilities/csvParser.js.html} +56 -104
  131. package/coverage/lcov-report/{src/utilities/global.ts.html → utilities/global.js.html} +74 -107
  132. package/coverage/lcov-report/{src/utilities → utilities}/index.html +77 -92
  133. package/coverage/lcov-report/{src/utilities/index.ts.html → utilities/index.js.html} +54 -78
  134. package/coverage/lcov-report/{src/utilities/plugins.ts.html → utilities/plugins.js.html} +19 -22
  135. package/coverage/lcov-report/{src/integrations/airtable.ts.html → utilities/queue/inMemoryQueue.js.html} +135 -213
  136. package/coverage/lcov-report/{src/migrations → utilities/queue}/index.html +23 -23
  137. package/coverage/lcov-report/{src/sdk → utilities/routing}/index.html +10 -10
  138. package/coverage/lcov-report/{src/api/routes/role.ts.html → utilities/routing/index.js.html} +42 -39
  139. package/coverage/lcov-report/{src/definitions → utilities/rowProcessor}/index.html +34 -34
  140. package/coverage/lcov-report/{src/utilities/rowProcessor/index.ts.html → utilities/rowProcessor/index.js.html} +346 -115
  141. package/coverage/lcov-report/{src/utilities/rowProcessor/utils.ts.html → utilities/rowProcessor/utils.js.html} +38 -50
  142. package/coverage/lcov-report/{src/utilities/scriptRunner.ts.html → utilities/scriptRunner.js.html} +16 -28
  143. package/coverage/lcov-report/{src/utilities/security.ts.html → utilities/security.js.html} +74 -56
  144. package/coverage/lcov-report/{src/utilities/statusCodes.ts.html → utilities/statusCodes.js.html} +11 -11
  145. package/coverage/lcov-report/{src/utilities → utilities}/usageQuota/index.html +28 -28
  146. package/coverage/lcov-report/{src/utilities/usageQuota/rows.ts.html → utilities/usageQuota/rows.js.html} +46 -34
  147. package/coverage/lcov-report/{src/utilities/usageQuota/usageQuoteReset.ts.html → utilities/usageQuota/usageQuoteReset.js.html} +13 -13
  148. package/coverage/lcov-report/{src/utilities/users.ts.html → utilities/users.js.html} +35 -29
  149. package/coverage/lcov-report/{src/utilities/workerRequests.ts.html → utilities/workerRequests.js.html} +114 -129
  150. package/coverage/lcov.info +6967 -19532
  151. package/dist/api/controllers/apikeys.js +9 -12
  152. package/dist/api/controllers/application.js +45 -48
  153. package/dist/api/controllers/automation.js +82 -122
  154. package/dist/api/controllers/cloud.js +71 -84
  155. package/dist/api/controllers/component.js +2 -4
  156. package/dist/api/controllers/datasource.js +94 -151
  157. package/dist/api/controllers/deploy/Deployment.js +6 -10
  158. package/dist/api/controllers/deploy/index.js +16 -13
  159. package/dist/api/controllers/dev.js +81 -96
  160. package/dist/api/controllers/integration.js +8 -11
  161. package/dist/api/controllers/layout.js +15 -18
  162. package/dist/api/controllers/metadata.js +37 -51
  163. package/dist/api/controllers/migrations.js +11 -19
  164. package/dist/api/controllers/permission.js +43 -52
  165. package/dist/api/controllers/plugin/index.js +7 -6
  166. package/dist/api/controllers/plugin/utils.js +1 -2
  167. package/dist/api/controllers/public/applications.js +9 -17
  168. package/dist/api/controllers/public/tables.js +9 -29
  169. package/dist/api/controllers/public/utils.js +2 -2
  170. package/dist/api/controllers/query/import/index.js +2 -1
  171. package/dist/api/controllers/query/index.js +13 -10
  172. package/dist/api/controllers/query/validation.js +33 -41
  173. package/dist/api/controllers/role.js +27 -29
  174. package/dist/api/controllers/routing.js +58 -71
  175. package/dist/api/controllers/row/ExternalRequest.js +542 -538
  176. package/dist/api/controllers/row/external.js +190 -258
  177. package/dist/api/controllers/row/index.js +14 -43
  178. package/dist/api/controllers/row/internal.js +295 -354
  179. package/dist/api/controllers/row/internalSearch.js +80 -95
  180. package/dist/api/controllers/row/staticFormula.js +112 -125
  181. package/dist/api/controllers/row/utils.js +84 -122
  182. package/dist/api/controllers/screen.js +66 -81
  183. package/dist/api/controllers/script.js +6 -13
  184. package/dist/api/controllers/static/index.js +14 -11
  185. package/dist/api/controllers/table/bulkFormula.js +35 -47
  186. package/dist/api/controllers/table/external.js +53 -89
  187. package/dist/api/controllers/table/index.js +31 -64
  188. package/dist/api/controllers/table/internal.js +6 -5
  189. package/dist/api/controllers/table/utils.js +35 -39
  190. package/dist/api/controllers/templates.js +10 -17
  191. package/dist/api/controllers/user.js +70 -82
  192. package/dist/api/controllers/view/exporters.js +4 -8
  193. package/dist/api/controllers/view/index.js +153 -201
  194. package/dist/api/controllers/view/utils.js +121 -151
  195. package/dist/api/controllers/view/viewBuilder.js +16 -4
  196. package/dist/api/controllers/webhook.js +2 -25
  197. package/dist/api/index.js +34 -38
  198. package/dist/api/routes/analytics.js +3 -29
  199. package/dist/api/routes/apikeys.js +7 -33
  200. package/dist/api/routes/application.js +9 -8
  201. package/dist/api/routes/auth.js +2 -1
  202. package/dist/api/routes/automation.js +20 -46
  203. package/dist/api/routes/backup.js +4 -3
  204. package/dist/api/routes/cloud.js +6 -32
  205. package/dist/api/routes/component.js +6 -32
  206. package/dist/api/routes/datasource.js +13 -39
  207. package/dist/api/routes/deploy.js +8 -34
  208. package/dist/api/routes/dev.js +10 -36
  209. package/dist/api/routes/integration.js +7 -33
  210. package/dist/api/routes/layout.js +7 -33
  211. package/dist/api/routes/metadata.js +10 -36
  212. package/dist/api/routes/migrations.js +6 -32
  213. package/dist/api/routes/permission.js +12 -38
  214. package/dist/api/routes/plugin.js +5 -5
  215. package/dist/api/routes/public/index.js +11 -11
  216. package/dist/api/routes/query.js +15 -42
  217. package/dist/api/routes/role.js +10 -36
  218. package/dist/api/routes/routing.js +6 -32
  219. package/dist/api/routes/row.js +11 -12
  220. package/dist/api/routes/screen.js +9 -35
  221. package/dist/api/routes/script.js +6 -32
  222. package/dist/api/routes/static.js +9 -9
  223. package/dist/api/routes/table.js +13 -40
  224. package/dist/api/routes/templates.js +7 -33
  225. package/dist/api/routes/tests/utilities/TestFunctions.js +8 -6
  226. package/dist/api/routes/tests/utilities/index.js +32 -69
  227. package/dist/api/routes/user.js +13 -40
  228. package/dist/api/routes/utils/validators.js +126 -142
  229. package/dist/api/routes/view.js +12 -38
  230. package/dist/api/routes/webhook.js +2 -1
  231. package/dist/app.js +22 -22
  232. package/dist/automations/actions.js +24 -53
  233. package/dist/automations/automationUtils.js +19 -31
  234. package/dist/automations/bullboard.js +29 -59
  235. package/dist/automations/index.js +18 -23
  236. package/dist/automations/steps/bash.js +10 -40
  237. package/dist/automations/steps/createRow.js +1 -2
  238. package/dist/automations/steps/delay.js +5 -9
  239. package/dist/automations/steps/deleteRow.js +1 -2
  240. package/dist/automations/steps/discord.js +7 -14
  241. package/dist/automations/steps/executeQuery.js +7 -34
  242. package/dist/automations/steps/executeScript.js +7 -34
  243. package/dist/automations/steps/filter.js +18 -20
  244. package/dist/automations/steps/integromat.js +7 -14
  245. package/dist/automations/steps/loop.js +1 -4
  246. package/dist/automations/steps/outgoingWebhook.js +14 -45
  247. package/dist/automations/steps/queryRows.js +38 -71
  248. package/dist/automations/steps/sendSmtpEmail.js +6 -33
  249. package/dist/automations/steps/serverLog.js +8 -12
  250. package/dist/automations/steps/slack.js +7 -14
  251. package/dist/automations/steps/updateRow.js +7 -34
  252. package/dist/automations/steps/utils.js +16 -22
  253. package/dist/automations/steps/zapier.js +7 -15
  254. package/dist/automations/tests/utilities/index.js +38 -62
  255. package/dist/automations/triggerInfo/app.js +1 -4
  256. package/dist/automations/triggerInfo/cron.js +1 -4
  257. package/dist/automations/triggerInfo/index.js +6 -31
  258. package/dist/automations/triggerInfo/rowDeleted.js +1 -4
  259. package/dist/automations/triggerInfo/rowSaved.js +1 -4
  260. package/dist/automations/triggerInfo/rowUpdated.js +1 -4
  261. package/dist/automations/triggerInfo/webhook.js +1 -4
  262. package/dist/automations/triggers.js +57 -90
  263. package/dist/automations/utils.js +8 -9
  264. package/dist/constants/index.js +104 -118
  265. package/dist/constants/layouts.js +10 -7
  266. package/dist/constants/screens.js +44 -49
  267. package/dist/db/dynamoClient.js +20 -20
  268. package/dist/db/inMemoryView.js +38 -47
  269. package/dist/db/index.js +4 -7
  270. package/dist/db/linkedRows/LinkController.js +70 -51
  271. package/dist/db/linkedRows/index.js +81 -93
  272. package/dist/db/linkedRows/linkUtils.js +32 -42
  273. package/dist/db/utils.js +119 -146
  274. package/dist/db/views/staticViews.js +74 -91
  275. package/dist/environment.js +6 -9
  276. package/dist/events/AutomationEmitter.js +10 -13
  277. package/dist/events/index.js +23 -5
  278. package/dist/events/utils.js +10 -18
  279. package/dist/integrations/elasticsearch.js +2 -26
  280. package/dist/integrations/googlesheets.js +6 -5
  281. package/dist/integrations/index.js +6 -15
  282. package/dist/integrations/s3.js +1 -157
  283. package/dist/integrations/tests/TestConfiguration.js +1 -0
  284. package/dist/middleware/appInfo.js +9 -14
  285. package/dist/middleware/authorized.js +21 -22
  286. package/dist/middleware/builder.js +40 -41
  287. package/dist/middleware/currentapp.js +37 -39
  288. package/dist/middleware/joi-validator.js +10 -17
  289. package/dist/middleware/publicApi.js +6 -5
  290. package/dist/middleware/resourceId.js +9 -16
  291. package/dist/middleware/selfhost.js +4 -5
  292. package/dist/middleware/utils.js +2 -5
  293. package/dist/migrations/functions/appUrls.js +2 -2
  294. package/dist/migrations/functions/backfill/global.js +1 -1
  295. package/dist/migrations/functions/usageQuotas/syncApps.js +4 -3
  296. package/dist/migrations/functions/usageQuotas/syncRows.js +4 -3
  297. package/dist/migrations/functions/userEmailViewCasing.js +3 -3
  298. package/dist/package.json +45 -11
  299. package/dist/sdk/app/backups/exports.js +2 -1
  300. package/dist/sdk/app/backups/imports.js +3 -2
  301. package/dist/sdk/app/tables/index.js +5 -5
  302. package/dist/startup.js +10 -10
  303. package/dist/tests/utilities/TestConfiguration.js +87 -111
  304. package/dist/tests/utilities/controllers.js +15 -38
  305. package/dist/tests/utilities/structures.js +53 -72
  306. package/dist/threads/automation.js +27 -49
  307. package/dist/threads/query.js +19 -17
  308. package/dist/threads/utils.js +8 -33
  309. package/dist/tsconfig.build.tsbuildinfo +1 -1
  310. package/dist/utilities/budibaseDir.js +2 -4
  311. package/dist/utilities/centralPath.js +7 -14
  312. package/dist/utilities/csvParser.js +21 -27
  313. package/dist/utilities/fileSystem/clientLibrary.js +73 -87
  314. package/dist/utilities/fileSystem/index.js +175 -203
  315. package/dist/utilities/fileSystem/processor.js +3 -8
  316. package/dist/utilities/fileSystem/utilities.js +22 -0
  317. package/dist/utilities/global.js +66 -87
  318. package/dist/utilities/index.js +75 -102
  319. package/dist/utilities/plugins.js +9 -15
  320. package/dist/utilities/queue/inMemoryQueue.js +126 -0
  321. package/dist/utilities/redis.js +65 -100
  322. package/dist/utilities/routing/index.js +23 -27
  323. package/dist/utilities/rowProcessor/index.js +191 -133
  324. package/dist/utilities/rowProcessor/utils.js +26 -35
  325. package/dist/utilities/scriptRunner.js +5 -8
  326. package/dist/utilities/security.js +35 -39
  327. package/dist/utilities/usageQuota/rows.js +49 -56
  328. package/dist/utilities/users.js +28 -31
  329. package/dist/utilities/workerRequests.js +82 -115
  330. package/dist/watch.js +2 -1
  331. package/package.json +46 -12
  332. package/scripts/exportAppTemplate.js +2 -2
  333. package/{src/tests/jestSetup.ts → scripts/jestSetup.js} +2 -11
  334. package/scripts/localdomain.js +6 -34
  335. package/src/api/controllers/{apikeys.ts → apikeys.js} +10 -10
  336. package/src/api/controllers/application.ts +42 -56
  337. package/src/api/controllers/auth.ts +3 -4
  338. package/src/api/controllers/{automation.ts → automation.js} +48 -48
  339. package/src/api/controllers/{cloud.ts → cloud.js} +24 -24
  340. package/src/api/controllers/component.ts +1 -2
  341. package/src/api/controllers/{datasource.ts → datasource.js} +49 -109
  342. package/src/api/controllers/deploy/{Deployment.ts → Deployment.js} +10 -13
  343. package/src/api/controllers/deploy/index.ts +25 -13
  344. package/src/api/controllers/{dev.ts → dev.js} +37 -31
  345. package/src/api/controllers/integration.js +14 -0
  346. package/src/api/controllers/{layout.ts → layout.js} +8 -8
  347. package/src/api/controllers/{metadata.ts → metadata.js} +10 -11
  348. package/src/api/controllers/migrations.js +13 -0
  349. package/src/api/controllers/{permission.ts → permission.js} +46 -49
  350. package/src/api/controllers/plugin/index.ts +5 -4
  351. package/src/api/controllers/plugin/utils.ts +5 -3
  352. package/src/api/controllers/public/applications.ts +9 -15
  353. package/src/api/controllers/public/rows.ts +1 -1
  354. package/src/api/controllers/public/tables.ts +2 -2
  355. package/src/api/controllers/public/utils.ts +2 -2
  356. package/src/api/controllers/query/import/index.ts +3 -2
  357. package/src/api/controllers/query/index.ts +14 -11
  358. package/src/api/controllers/query/{validation.ts → validation.js} +7 -7
  359. package/src/api/controllers/{role.ts → role.js} +25 -21
  360. package/src/api/controllers/{routing.ts → routing.js} +34 -37
  361. package/src/api/controllers/row/ExternalRequest.ts +624 -602
  362. package/src/api/controllers/row/{external.ts → external.js} +62 -79
  363. package/src/api/controllers/row/index.ts +11 -19
  364. package/src/api/controllers/row/{internal.ts → internal.js} +73 -87
  365. package/src/api/controllers/row/{internalSearch.ts → internalSearch.js} +68 -92
  366. package/src/api/controllers/row/{staticFormula.ts → staticFormula.js} +25 -30
  367. package/src/api/controllers/row/{utils.ts → utils.js} +22 -32
  368. package/src/api/controllers/screen.ts +6 -10
  369. package/src/api/controllers/script.js +11 -0
  370. package/src/api/controllers/static/index.ts +16 -14
  371. package/src/api/controllers/table/{bulkFormula.ts → bulkFormula.js} +25 -39
  372. package/src/api/controllers/table/{external.ts → external.js} +55 -86
  373. package/src/api/controllers/table/{index.ts → index.js} +18 -21
  374. package/src/api/controllers/table/internal.ts +6 -5
  375. package/src/api/controllers/table/utils.ts +21 -26
  376. package/src/api/controllers/{templates.ts → templates.js} +7 -10
  377. package/src/api/controllers/{user.ts → user.js} +49 -47
  378. package/src/api/controllers/view/{exporters.ts → exporters.js} +3 -5
  379. package/src/api/controllers/view/{index.ts → index.js} +27 -36
  380. package/src/api/controllers/view/{utils.ts → utils.js} +20 -26
  381. package/src/api/controllers/view/{viewBuilder.ts → viewBuilder.js} +11 -25
  382. package/src/api/controllers/webhook.ts +1 -1
  383. package/src/api/{index.ts → index.js} +22 -15
  384. package/src/api/routes/analytics.js +9 -0
  385. package/src/api/routes/apikeys.js +12 -0
  386. package/src/api/routes/application.ts +9 -17
  387. package/src/api/routes/auth.ts +2 -2
  388. package/src/api/routes/automation.js +85 -0
  389. package/src/api/routes/backup.ts +4 -8
  390. package/src/api/routes/cloud.js +14 -0
  391. package/src/api/routes/component.js +14 -0
  392. package/src/api/routes/datasource.js +51 -0
  393. package/src/api/routes/deploy.js +17 -0
  394. package/src/api/routes/dev.js +26 -0
  395. package/src/api/routes/integration.js +12 -0
  396. package/src/api/routes/layout.js +16 -0
  397. package/src/api/routes/{metadata.ts → metadata.js} +13 -13
  398. package/src/api/routes/migrations.js +14 -0
  399. package/src/api/routes/permission.js +33 -0
  400. package/src/api/routes/plugin.ts +6 -14
  401. package/src/api/routes/public/index.ts +14 -11
  402. package/src/api/routes/public/tests/compare.spec.js +1 -1
  403. package/src/api/routes/{query.ts → query.js} +22 -19
  404. package/src/api/routes/role.js +15 -0
  405. package/src/api/routes/routing.js +14 -0
  406. package/src/api/routes/row.ts +15 -13
  407. package/src/api/routes/screen.js +18 -0
  408. package/src/api/routes/script.js +10 -0
  409. package/src/api/routes/static.ts +10 -7
  410. package/src/api/routes/{table.ts → table.js} +13 -10
  411. package/src/api/routes/templates.js +16 -0
  412. package/src/api/routes/tests/analytics.spec.js +1 -1
  413. package/src/api/routes/tests/backup.spec.js +1 -9
  414. package/src/api/routes/tests/deployment.spec.ts +1 -1
  415. package/src/api/routes/tests/permissions.spec.js +1 -2
  416. package/src/api/routes/tests/query.spec.js +10 -15
  417. package/src/api/routes/tests/role.spec.js +9 -7
  418. package/src/api/routes/tests/routing.spec.js +1 -2
  419. package/src/api/routes/tests/row.spec.js +4 -3
  420. package/src/api/routes/tests/static.spec.js +2 -2
  421. package/src/api/routes/tests/table.spec.js +36 -40
  422. package/src/api/routes/tests/user.spec.js +1 -2
  423. package/src/api/routes/tests/utilities/TestFunctions.ts +8 -6
  424. package/src/api/routes/tests/utilities/{index.ts → index.js} +12 -12
  425. package/src/api/routes/tests/view.spec.js +3 -3
  426. package/src/api/routes/user.js +53 -0
  427. package/src/api/routes/utils/{validators.ts → validators.js} +37 -33
  428. package/src/api/routes/view.js +31 -0
  429. package/src/api/routes/webhook.ts +2 -2
  430. package/src/app.ts +14 -15
  431. package/src/automations/{actions.ts → actions.js} +23 -26
  432. package/src/automations/{automationUtils.ts → automationUtils.js} +12 -13
  433. package/src/automations/bullboard.js +39 -0
  434. package/src/automations/index.js +29 -0
  435. package/src/automations/steps/{bash.ts → bash.js} +8 -13
  436. package/src/automations/steps/createRow.ts +3 -8
  437. package/src/automations/steps/{delay.ts → delay.js} +4 -9
  438. package/src/automations/steps/deleteRow.ts +3 -8
  439. package/src/automations/steps/{discord.ts → discord.js} +5 -10
  440. package/src/automations/steps/{executeQuery.ts → executeQuery.js} +7 -12
  441. package/src/automations/steps/{executeScript.ts → executeScript.js} +7 -17
  442. package/src/automations/steps/{filter.ts → filter.js} +9 -12
  443. package/src/automations/steps/{integromat.ts → integromat.js} +5 -10
  444. package/src/automations/steps/{loop.ts → loop.js} +2 -4
  445. package/src/automations/steps/{outgoingWebhook.ts → outgoingWebhook.js} +13 -18
  446. package/src/automations/steps/{queryRows.ts → queryRows.js} +36 -48
  447. package/src/automations/steps/{sendSmtpEmail.ts → sendSmtpEmail.js} +5 -10
  448. package/src/automations/steps/{serverLog.ts → serverLog.js} +3 -9
  449. package/src/automations/steps/{slack.ts → slack.js} +5 -10
  450. package/src/automations/steps/{updateRow.ts → updateRow.js} +7 -12
  451. package/src/automations/steps/{utils.ts → utils.js} +4 -10
  452. package/src/automations/steps/{zapier.ts → zapier.js} +5 -11
  453. package/src/automations/tests/updateRow.spec.js +1 -0
  454. package/src/automations/tests/utilities/index.js +51 -0
  455. package/src/automations/triggerInfo/{app.ts → app.js} +2 -7
  456. package/src/automations/triggerInfo/{cron.ts → cron.js} +2 -7
  457. package/src/automations/triggerInfo/index.js +15 -0
  458. package/src/automations/triggerInfo/{rowDeleted.ts → rowDeleted.js} +2 -7
  459. package/src/automations/triggerInfo/{rowSaved.ts → rowSaved.js} +2 -7
  460. package/src/automations/triggerInfo/{rowUpdated.ts → rowUpdated.js} +2 -7
  461. package/src/automations/triggerInfo/{webhook.ts → webhook.js} +2 -7
  462. package/src/automations/{triggers.ts → triggers.js} +26 -30
  463. package/src/automations/utils.ts +12 -9
  464. package/src/constants/index.js +208 -0
  465. package/src/constants/{layouts.ts → layouts.js} +9 -3
  466. package/src/constants/screens.js +46 -0
  467. package/src/db/{dynamoClient.ts → dynamoClient.js} +19 -39
  468. package/src/db/{inMemoryView.ts → inMemoryView.js} +9 -15
  469. package/src/db/index.js +16 -0
  470. package/src/db/linkedRows/{LinkController.ts → LinkController.js} +85 -64
  471. package/src/db/linkedRows/{index.ts → index.js} +38 -43
  472. package/src/db/linkedRows/{linkUtils.ts → linkUtils.js} +24 -33
  473. package/src/db/{newid.ts → newid.js} +1 -1
  474. package/src/db/tests/linkController.spec.js +57 -73
  475. package/src/db/tests/linkTests.spec.js +14 -17
  476. package/src/db/{utils.ts → utils.js} +93 -77
  477. package/src/db/views/{staticViews.ts → staticViews.js} +13 -20
  478. package/src/{environment.ts → environment.js} +7 -11
  479. package/src/events/{AutomationEmitter.ts → AutomationEmitter.js} +7 -12
  480. package/src/events/{BudibaseEmitter.ts → index.js} +8 -7
  481. package/src/events/utils.js +38 -0
  482. package/src/integrations/base/sql.ts +1 -1
  483. package/src/integrations/base/sqlTable.ts +1 -1
  484. package/src/integrations/elasticsearch.ts +2 -32
  485. package/src/integrations/googlesheets.ts +7 -5
  486. package/src/integrations/index.ts +41 -45
  487. package/src/integrations/s3.ts +3 -179
  488. package/src/integrations/tests/s3.spec.ts +1 -85
  489. package/src/integrations/utils.ts +2 -6
  490. package/src/middleware/appInfo.js +19 -0
  491. package/src/middleware/authorized.ts +28 -21
  492. package/src/middleware/{builder.ts → builder.js} +15 -17
  493. package/src/middleware/{currentapp.ts → currentapp.js} +39 -42
  494. package/src/middleware/{joi-validator.ts → joi-validator.js} +8 -9
  495. package/src/middleware/publicApi.js +21 -0
  496. package/src/middleware/{resourceId.ts → resourceId.js} +11 -16
  497. package/src/middleware/{selfhost.ts → selfhost.js} +2 -4
  498. package/src/middleware/tests/authorized.spec.js +6 -5
  499. package/src/middleware/tests/currentapp.spec.js +63 -118
  500. package/src/middleware/{utils.ts → utils.js} +1 -3
  501. package/src/migrations/functions/appUrls.ts +2 -2
  502. package/src/migrations/functions/backfill/app/tables.ts +5 -2
  503. package/src/migrations/functions/backfill/global.ts +1 -1
  504. package/src/migrations/functions/tests/appUrls.spec.js +4 -4
  505. package/src/migrations/functions/tests/userEmailViewCasing.spec.js +9 -14
  506. package/src/migrations/functions/usageQuotas/syncApps.ts +4 -3
  507. package/src/migrations/functions/usageQuotas/syncRows.ts +5 -4
  508. package/src/migrations/functions/usageQuotas/tests/syncRows.spec.ts +7 -7
  509. package/src/migrations/functions/userEmailViewCasing.ts +3 -3
  510. package/src/migrations/tests/index.spec.ts +1 -1
  511. package/src/module.d.ts +14 -0
  512. package/src/sdk/app/backups/exports.ts +3 -5
  513. package/src/sdk/app/backups/imports.ts +14 -7
  514. package/src/sdk/app/backups/statistics.ts +18 -9
  515. package/src/sdk/app/tables/index.ts +8 -7
  516. package/src/startup.ts +5 -5
  517. package/src/tests/utilities/{TestConfiguration.ts → TestConfiguration.js} +78 -111
  518. package/src/tests/utilities/controllers.js +16 -0
  519. package/src/tests/utilities/{index.ts → index.js} +2 -2
  520. package/src/tests/utilities/{structures.ts → structures.js} +36 -41
  521. package/src/threads/automation.ts +19 -18
  522. package/src/threads/query.ts +16 -11
  523. package/src/threads/utils.ts +5 -4
  524. package/src/utilities/budibaseDir.js +3 -0
  525. package/src/utilities/{centralPath.ts → centralPath.js} +3 -3
  526. package/src/utilities/{csvParser.ts → csvParser.js} +26 -42
  527. package/src/utilities/fileSystem/{clientLibrary.ts → clientLibrary.js} +20 -20
  528. package/src/utilities/fileSystem/{index.ts → index.js} +65 -61
  529. package/src/utilities/fileSystem/{processor.ts → processor.js} +5 -3
  530. package/src/utilities/fileSystem/utilities.js +36 -0
  531. package/src/utilities/global.js +127 -0
  532. package/src/utilities/{index.ts → index.js} +32 -40
  533. package/src/utilities/{plugins.ts → plugins.js} +4 -5
  534. package/src/utilities/queue/inMemoryQueue.js +122 -0
  535. package/src/utilities/{redis.ts → redis.js} +20 -21
  536. package/src/utilities/routing/index.js +25 -0
  537. package/src/utilities/rowProcessor/{index.ts → index.js} +144 -67
  538. package/src/utilities/rowProcessor/{utils.ts → utils.js} +15 -19
  539. package/src/utilities/{scriptRunner.ts → scriptRunner.js} +4 -8
  540. package/src/utilities/security.js +71 -0
  541. package/src/utilities/{statusCodes.ts → statusCodes.js} +1 -1
  542. package/src/utilities/usageQuota/{rows.ts → rows.js} +18 -14
  543. package/src/utilities/usageQuota/{usageQuoteReset.ts → usageQuoteReset.js} +1 -1
  544. package/src/utilities/{users.ts → users.js} +13 -11
  545. package/src/utilities/{workerRequests.ts → workerRequests.js} +38 -43
  546. package/src/watch.ts +3 -2
  547. package/tsconfig.build.json +2 -1
  548. package/tsconfig.json +1 -3
  549. package/coverage/lcov-report/src/api/controllers/analytics.ts.html +0 -190
  550. package/coverage/lcov-report/src/api/controllers/application.ts.html +0 -2038
  551. package/coverage/lcov-report/src/api/controllers/auth.ts.html +0 -301
  552. package/coverage/lcov-report/src/api/controllers/backup.ts.html +0 -148
  553. package/coverage/lcov-report/src/api/controllers/component.ts.html +0 -259
  554. package/coverage/lcov-report/src/api/controllers/deploy/Deployment.ts.html +0 -259
  555. package/coverage/lcov-report/src/api/controllers/deploy/index.html +0 -131
  556. package/coverage/lcov-report/src/api/controllers/deploy/index.ts.html +0 -730
  557. package/coverage/lcov-report/src/api/controllers/index.html +0 -431
  558. package/coverage/lcov-report/src/api/controllers/plugin/file.ts.html +0 -130
  559. package/coverage/lcov-report/src/api/controllers/plugin/github.ts.html +0 -310
  560. package/coverage/lcov-report/src/api/controllers/plugin/index.html +0 -206
  561. package/coverage/lcov-report/src/api/controllers/plugin/index.ts.html +0 -484
  562. package/coverage/lcov-report/src/api/controllers/plugin/npm.ts.html +0 -253
  563. package/coverage/lcov-report/src/api/controllers/plugin/uploaders.ts.html +0 -97
  564. package/coverage/lcov-report/src/api/controllers/plugin/url.ts.html +0 -121
  565. package/coverage/lcov-report/src/api/controllers/plugin/utils.ts.html +0 -136
  566. package/coverage/lcov-report/src/api/controllers/public/applications.ts.html +0 -334
  567. package/coverage/lcov-report/src/api/controllers/public/index.html +0 -191
  568. package/coverage/lcov-report/src/api/controllers/public/mapping/applications.ts.html +0 -181
  569. package/coverage/lcov-report/src/api/controllers/public/mapping/index.html +0 -191
  570. package/coverage/lcov-report/src/api/controllers/public/mapping/index.ts.html +0 -124
  571. package/coverage/lcov-report/src/api/controllers/public/mapping/queries.ts.html +0 -202
  572. package/coverage/lcov-report/src/api/controllers/public/mapping/rows.ts.html +0 -178
  573. package/coverage/lcov-report/src/api/controllers/public/mapping/tables.ts.html +0 -163
  574. package/coverage/lcov-report/src/api/controllers/public/mapping/users.ts.html +0 -181
  575. package/coverage/lcov-report/src/api/controllers/public/queries.ts.html +0 -145
  576. package/coverage/lcov-report/src/api/controllers/public/rows.ts.html +0 -328
  577. package/coverage/lcov-report/src/api/controllers/public/tables.ts.html +0 -253
  578. package/coverage/lcov-report/src/api/controllers/public/users.ts.html +0 -268
  579. package/coverage/lcov-report/src/api/controllers/public/utils.ts.html +0 -220
  580. package/coverage/lcov-report/src/api/controllers/query/import/index.html +0 -116
  581. package/coverage/lcov-report/src/api/controllers/query/import/index.ts.html +0 -373
  582. package/coverage/lcov-report/src/api/controllers/query/import/sources/base/index.html +0 -131
  583. package/coverage/lcov-report/src/api/controllers/query/import/sources/base/index.ts.html +0 -379
  584. package/coverage/lcov-report/src/api/controllers/query/import/sources/base/openapi.ts.html +0 -157
  585. package/coverage/lcov-report/src/api/controllers/query/import/sources/curl.ts.html +0 -403
  586. package/coverage/lcov-report/src/api/controllers/query/import/sources/index.html +0 -146
  587. package/coverage/lcov-report/src/api/controllers/query/import/sources/openapi2.ts.html +0 -586
  588. package/coverage/lcov-report/src/api/controllers/query/import/sources/openapi3.ts.html +0 -712
  589. package/coverage/lcov-report/src/api/controllers/query/index.html +0 -131
  590. package/coverage/lcov-report/src/api/controllers/query/index.ts.html +0 -976
  591. package/coverage/lcov-report/src/api/controllers/row/ExternalRequest.ts.html +0 -2260
  592. package/coverage/lcov-report/src/api/controllers/row/index.ts.html +0 -541
  593. package/coverage/lcov-report/src/api/controllers/screen.ts.html +0 -463
  594. package/coverage/lcov-report/src/api/controllers/static/index.html +0 -116
  595. package/coverage/lcov-report/src/api/controllers/static/index.ts.html +0 -694
  596. package/coverage/lcov-report/src/api/controllers/table/index.html +0 -176
  597. package/coverage/lcov-report/src/api/controllers/table/internal.ts.html +0 -661
  598. package/coverage/lcov-report/src/api/controllers/table/utils.ts.html +0 -1255
  599. package/coverage/lcov-report/src/api/controllers/webhook.ts.html +0 -379
  600. package/coverage/lcov-report/src/api/routes/application.ts.html +0 -223
  601. package/coverage/lcov-report/src/api/routes/auth.ts.html +0 -109
  602. package/coverage/lcov-report/src/api/routes/datasource.ts.html +0 -265
  603. package/coverage/lcov-report/src/api/routes/deploy.ts.html +0 -148
  604. package/coverage/lcov-report/src/api/routes/dev.ts.html +0 -199
  605. package/coverage/lcov-report/src/api/routes/index.ts.html +0 -289
  606. package/coverage/lcov-report/src/api/routes/migrations.ts.html +0 -127
  607. package/coverage/lcov-report/src/api/routes/plugin.ts.html +0 -151
  608. package/coverage/lcov-report/src/api/routes/public/applications.ts.html +0 -541
  609. package/coverage/lcov-report/src/api/routes/public/index.html +0 -191
  610. package/coverage/lcov-report/src/api/routes/public/index.ts.html +0 -493
  611. package/coverage/lcov-report/src/api/routes/public/middleware/index.html +0 -116
  612. package/coverage/lcov-report/src/api/routes/public/middleware/mapper.ts.html +0 -328
  613. package/coverage/lcov-report/src/api/routes/public/queries.ts.html +0 -313
  614. package/coverage/lcov-report/src/api/routes/public/rows.ts.html +0 -598
  615. package/coverage/lcov-report/src/api/routes/public/tables.ts.html +0 -586
  616. package/coverage/lcov-report/src/api/routes/public/users.ts.html +0 -511
  617. package/coverage/lcov-report/src/api/routes/public/utils/Endpoint.ts.html +0 -238
  618. package/coverage/lcov-report/src/api/routes/public/utils/index.html +0 -116
  619. package/coverage/lcov-report/src/api/routes/row.ts.html +0 -883
  620. package/coverage/lcov-report/src/api/routes/screen.ts.html +0 -154
  621. package/coverage/lcov-report/src/api/routes/static.ts.html +0 -280
  622. package/coverage/lcov-report/src/api/routes/tests/utilities/TestFunctions.ts.html +0 -550
  623. package/coverage/lcov-report/src/api/routes/tests/utilities/index.html +0 -131
  624. package/coverage/lcov-report/src/api/routes/tests/utilities/index.ts.html +0 -367
  625. package/coverage/lcov-report/src/api/routes/webhook.ts.html +0 -166
  626. package/coverage/lcov-report/src/app.ts.html +0 -406
  627. package/coverage/lcov-report/src/automations/logging/index.html +0 -116
  628. package/coverage/lcov-report/src/automations/logging/index.ts.html +0 -199
  629. package/coverage/lcov-report/src/automations/steps/createRow.ts.html +0 -382
  630. package/coverage/lcov-report/src/automations/steps/deleteRow.ts.html +0 -349
  631. package/coverage/lcov-report/src/automations/steps/index.html +0 -371
  632. package/coverage/lcov-report/src/automations/tests/utilities/index.html +0 -116
  633. package/coverage/lcov-report/src/automations/tests/utilities/index.ts.html +0 -265
  634. package/coverage/lcov-report/src/automations/utils.ts.html +0 -886
  635. package/coverage/lcov-report/src/db/defaultData/datasource_bb_default.ts.html +0 -2059
  636. package/coverage/lcov-report/src/db/defaultData/employeeImport.ts.html +0 -541
  637. package/coverage/lcov-report/src/db/defaultData/expensesImport.ts.html +0 -427
  638. package/coverage/lcov-report/src/db/defaultData/index.html +0 -176
  639. package/coverage/lcov-report/src/db/defaultData/inventoryImport.ts.html +0 -403
  640. package/coverage/lcov-report/src/db/defaultData/jobsImport.ts.html +0 -559
  641. package/coverage/lcov-report/src/db/dynamoClient.ts.html +0 -526
  642. package/coverage/lcov-report/src/db/linkedRows/LinkDocument.ts.html +0 -265
  643. package/coverage/lcov-report/src/db/linkedRows/index.html +0 -161
  644. package/coverage/lcov-report/src/environment.ts.html +0 -457
  645. package/coverage/lcov-report/src/events/index.ts.html +0 -100
  646. package/coverage/lcov-report/src/events/utils.ts.html +0 -319
  647. package/coverage/lcov-report/src/index.html +0 -191
  648. package/coverage/lcov-report/src/index.ts.html +0 -133
  649. package/coverage/lcov-report/src/integrations/arangodb.ts.html +0 -415
  650. package/coverage/lcov-report/src/integrations/base/index.html +0 -161
  651. package/coverage/lcov-report/src/integrations/base/query.ts.html +0 -133
  652. package/coverage/lcov-report/src/integrations/base/sql.ts.html +0 -1951
  653. package/coverage/lcov-report/src/integrations/base/sqlTable.ts.html +0 -691
  654. package/coverage/lcov-report/src/integrations/base/utils.ts.html +0 -121
  655. package/coverage/lcov-report/src/integrations/couchdb.ts.html +0 -406
  656. package/coverage/lcov-report/src/integrations/dynamodb.ts.html +0 -745
  657. package/coverage/lcov-report/src/integrations/elasticsearch.ts.html +0 -634
  658. package/coverage/lcov-report/src/integrations/firebase.ts.html +0 -646
  659. package/coverage/lcov-report/src/integrations/googlesheets.ts.html +0 -1315
  660. package/coverage/lcov-report/src/integrations/index.html +0 -371
  661. package/coverage/lcov-report/src/integrations/index.ts.html +0 -445
  662. package/coverage/lcov-report/src/integrations/microsoftSqlServer.ts.html +0 -1006
  663. package/coverage/lcov-report/src/integrations/mongodb.ts.html +0 -1867
  664. package/coverage/lcov-report/src/integrations/mysql.ts.html +0 -964
  665. package/coverage/lcov-report/src/integrations/oracle.ts.html +0 -1474
  666. package/coverage/lcov-report/src/integrations/postgres.ts.html +0 -1069
  667. package/coverage/lcov-report/src/integrations/queries/index.html +0 -116
  668. package/coverage/lcov-report/src/integrations/queries/sql.ts.html +0 -463
  669. package/coverage/lcov-report/src/integrations/redis.ts.html +0 -550
  670. package/coverage/lcov-report/src/integrations/rest.ts.html +0 -1381
  671. package/coverage/lcov-report/src/integrations/s3.ts.html +0 -862
  672. package/coverage/lcov-report/src/integrations/snowflake.ts.html +0 -376
  673. package/coverage/lcov-report/src/integrations/utils.ts.html +0 -1018
  674. package/coverage/lcov-report/src/middleware/authorized.ts.html +0 -460
  675. package/coverage/lcov-report/src/migrations/functions/appUrls.ts.html +0 -187
  676. package/coverage/lcov-report/src/migrations/functions/backfill/app/automations.ts.html +0 -163
  677. package/coverage/lcov-report/src/migrations/functions/backfill/app/datasources.ts.html +0 -151
  678. package/coverage/lcov-report/src/migrations/functions/backfill/app/index.html +0 -206
  679. package/coverage/lcov-report/src/migrations/functions/backfill/app/layouts.ts.html +0 -172
  680. package/coverage/lcov-report/src/migrations/functions/backfill/app/queries.ts.html +0 -226
  681. package/coverage/lcov-report/src/migrations/functions/backfill/app/roles.ts.html +0 -151
  682. package/coverage/lcov-report/src/migrations/functions/backfill/app/screens.ts.html +0 -151
  683. package/coverage/lcov-report/src/migrations/functions/backfill/app/tables.ts.html +0 -166
  684. package/coverage/lcov-report/src/migrations/functions/backfill/app.ts.html +0 -532
  685. package/coverage/lcov-report/src/migrations/functions/backfill/global/configs.ts.html +0 -283
  686. package/coverage/lcov-report/src/migrations/functions/backfill/global/index.html +0 -146
  687. package/coverage/lcov-report/src/migrations/functions/backfill/global/quotas.ts.html +0 -265
  688. package/coverage/lcov-report/src/migrations/functions/backfill/global/users.ts.html +0 -232
  689. package/coverage/lcov-report/src/migrations/functions/backfill/global.ts.html +0 -724
  690. package/coverage/lcov-report/src/migrations/functions/backfill/index.html +0 -161
  691. package/coverage/lcov-report/src/migrations/functions/backfill/index.ts.html +0 -106
  692. package/coverage/lcov-report/src/migrations/functions/backfill/installation.ts.html +0 -235
  693. package/coverage/lcov-report/src/migrations/functions/index.html +0 -146
  694. package/coverage/lcov-report/src/migrations/functions/syncQuotas.ts.html +0 -130
  695. package/coverage/lcov-report/src/migrations/functions/usageQuotas/index.html +0 -161
  696. package/coverage/lcov-report/src/migrations/functions/usageQuotas/index.ts.html +0 -94
  697. package/coverage/lcov-report/src/migrations/functions/usageQuotas/syncApps.ts.html +0 -127
  698. package/coverage/lcov-report/src/migrations/functions/usageQuotas/syncPlugins.ts.html +0 -115
  699. package/coverage/lcov-report/src/migrations/functions/usageQuotas/syncRows.ts.html +0 -169
  700. package/coverage/lcov-report/src/migrations/functions/userEmailViewCasing.ts.html +0 -124
  701. package/coverage/lcov-report/src/migrations/index.ts.html +0 -403
  702. package/coverage/lcov-report/src/migrations/tests/helpers.ts.html +0 -205
  703. package/coverage/lcov-report/src/migrations/tests/index.html +0 -131
  704. package/coverage/lcov-report/src/migrations/tests/structures.ts.html +0 -283
  705. package/coverage/lcov-report/src/sdk/app/automations/index.html +0 -131
  706. package/coverage/lcov-report/src/sdk/app/automations/index.ts.html +0 -100
  707. package/coverage/lcov-report/src/sdk/app/automations/webhook.ts.html +0 -214
  708. package/coverage/lcov-report/src/sdk/app/backups/constants.ts.html +0 -91
  709. package/coverage/lcov-report/src/sdk/app/backups/exports.ts.html +0 -604
  710. package/coverage/lcov-report/src/sdk/app/backups/imports.ts.html +0 -682
  711. package/coverage/lcov-report/src/sdk/app/backups/index.html +0 -176
  712. package/coverage/lcov-report/src/sdk/app/backups/index.ts.html +0 -112
  713. package/coverage/lcov-report/src/sdk/app/backups/statistics.ts.html +0 -292
  714. package/coverage/lcov-report/src/sdk/app/tables/index.html +0 -116
  715. package/coverage/lcov-report/src/sdk/app/tables/index.ts.html +0 -265
  716. package/coverage/lcov-report/src/startup.ts.html +0 -499
  717. package/coverage/lcov-report/src/tests/utilities/TestConfiguration.ts.html +0 -1966
  718. package/coverage/lcov-report/src/tests/utilities/controllers.ts.html +0 -127
  719. package/coverage/lcov-report/src/tests/utilities/index.html +0 -161
  720. package/coverage/lcov-report/src/tests/utilities/structures.ts.html +0 -667
  721. package/coverage/lcov-report/src/threads/automation.ts.html +0 -1594
  722. package/coverage/lcov-report/src/threads/index.html +0 -161
  723. package/coverage/lcov-report/src/threads/index.ts.html +0 -418
  724. package/coverage/lcov-report/src/threads/query.ts.html +0 -961
  725. package/coverage/lcov-report/src/threads/utils.ts.html +0 -373
  726. package/coverage/lcov-report/src/utilities/fileSystem/clientLibrary.ts.html +0 -547
  727. package/coverage/lcov-report/src/utilities/fileSystem/index.ts.html +0 -1129
  728. package/coverage/lcov-report/src/utilities/fileSystem/processor.ts.html +0 -142
  729. package/coverage/lcov-report/src/utilities/redis.ts.html +0 -343
  730. package/coverage/lcov-report/src/utilities/routing/index.ts.html +0 -181
  731. package/coverage/lcov-report/src/utilities/rowProcessor/index.html +0 -146
  732. package/coverage/lcov-report/src/utilities/rowProcessor/map.ts.html +0 -373
  733. package/coverage/lcov-report/src/watch.ts.html +0 -196
  734. package/dist/db/defaultData/datasource_bb_default.js +0 -573
  735. package/dist/db/defaultData/employeeImport.js +0 -155
  736. package/dist/db/defaultData/expensesImport.js +0 -117
  737. package/dist/db/defaultData/inventoryImport.js +0 -109
  738. package/dist/db/defaultData/jobsImport.js +0 -152
  739. package/dist/db/linkedRows/LinkDocument.js +0 -32
  740. package/dist/events/BudibaseEmitter.js +0 -24
  741. package/dist/utilities/rowProcessor/map.js +0 -99
  742. package/jest.config.ts +0 -33
  743. package/src/api/controllers/integration.ts +0 -13
  744. package/src/api/controllers/migrations.ts +0 -14
  745. package/src/api/controllers/script.ts +0 -12
  746. package/src/api/routes/analytics.ts +0 -9
  747. package/src/api/routes/apikeys.ts +0 -12
  748. package/src/api/routes/automation.ts +0 -87
  749. package/src/api/routes/cloud.ts +0 -18
  750. package/src/api/routes/component.ts +0 -14
  751. package/src/api/routes/datasource.ts +0 -60
  752. package/src/api/routes/deploy.ts +0 -21
  753. package/src/api/routes/dev.ts +0 -38
  754. package/src/api/routes/integration.ts +0 -16
  755. package/src/api/routes/layout.ts +0 -16
  756. package/src/api/routes/migrations.ts +0 -14
  757. package/src/api/routes/permission.ts +0 -41
  758. package/src/api/routes/role.ts +0 -24
  759. package/src/api/routes/routing.ts +0 -14
  760. package/src/api/routes/screen.ts +0 -23
  761. package/src/api/routes/script.ts +0 -10
  762. package/src/api/routes/templates.ts +0 -16
  763. package/src/api/routes/user.ts +0 -51
  764. package/src/api/routes/view.ts +0 -34
  765. package/src/automations/bullboard.ts +0 -38
  766. package/src/automations/index.ts +0 -26
  767. package/src/automations/tests/utilities/index.ts +0 -60
  768. package/src/automations/triggerInfo/index.ts +0 -15
  769. package/src/constants/index.ts +0 -204
  770. package/src/constants/screens.ts +0 -48
  771. package/src/db/defaultData/datasource_bb_default.ts +0 -658
  772. package/src/db/defaultData/employeeImport.ts +0 -152
  773. package/src/db/defaultData/expensesImport.ts +0 -114
  774. package/src/db/defaultData/inventoryImport.ts +0 -106
  775. package/src/db/defaultData/jobsImport.ts +0 -158
  776. package/src/db/index.ts +0 -16
  777. package/src/db/linkedRows/LinkDocument.ts +0 -60
  778. package/src/events/index.ts +0 -5
  779. package/src/events/utils.ts +0 -78
  780. package/src/middleware/appInfo.ts +0 -20
  781. package/src/middleware/publicApi.ts +0 -21
  782. package/src/tests/utilities/controllers.ts +0 -14
  783. package/src/utilities/budibaseDir.ts +0 -3
  784. package/src/utilities/global.ts +0 -138
  785. package/src/utilities/routing/index.ts +0 -32
  786. package/src/utilities/rowProcessor/map.ts +0 -96
  787. package/src/utilities/security.ts +0 -65
@@ -14,14 +14,19 @@ const {
14
14
  } = require("../../../utilities/fileSystem")
15
15
  const env = require("../../../environment")
16
16
  const { clientLibraryPath } = require("../../../utilities")
17
+ const { upload, deleteFiles } = require("../../../utilities/fileSystem")
17
18
  const { attachmentsRelativeURL } = require("../../../utilities")
18
19
  const { DocumentType } = require("../../../db/utils")
19
- const { context, objectStore, utils } = require("@budibase/backend-core")
20
+ const { getAppDB, getAppId } = require("@budibase/backend-core/context")
21
+ const { setCookie, clearCookie } = require("@budibase/backend-core/utils")
20
22
  const AWS = require("aws-sdk")
21
23
  const fs = require("fs")
24
+ const {
25
+ downloadTarballDirect,
26
+ } = require("../../../utilities/fileSystem/utilities")
22
27
 
23
28
  async function prepareUpload({ s3Key, bucket, metadata, file }: any) {
24
- const response = await objectStore.upload({
29
+ const response = await upload({
25
30
  bucket,
26
31
  metadata,
27
32
  filename: s3Key,
@@ -43,7 +48,7 @@ export const toggleBetaUiFeature = async function (ctx: any) {
43
48
  const cookieName = `beta:${ctx.params.feature}`
44
49
 
45
50
  if (ctx.cookies.get(cookieName)) {
46
- utils.clearCookie(ctx, cookieName)
51
+ clearCookie(ctx, cookieName)
47
52
  ctx.body = {
48
53
  message: `${ctx.params.feature} disabled`,
49
54
  }
@@ -56,11 +61,11 @@ export const toggleBetaUiFeature = async function (ctx: any) {
56
61
  if (!fs.existsSync(builderPath)) {
57
62
  fs.mkdirSync(builderPath)
58
63
  }
59
- await objectStore.downloadTarballDirect(
64
+ await downloadTarballDirect(
60
65
  "https://cdn.budi.live/beta:design_ui/new_ui.tar.gz",
61
66
  builderPath
62
67
  )
63
- utils.setCookie(ctx, {}, cookieName)
68
+ setCookie(ctx, {}, cookieName)
64
69
 
65
70
  ctx.body = {
66
71
  message: `${ctx.params.feature} enabled`,
@@ -94,16 +99,13 @@ export const uploadFile = async function (ctx: any) {
94
99
  }
95
100
 
96
101
  export const deleteObjects = async function (ctx: any) {
97
- ctx.body = await objectStore.deleteFiles(
98
- ObjectStoreBuckets.APPS,
99
- ctx.request.body.keys
100
- )
102
+ ctx.body = await deleteFiles(ObjectStoreBuckets.APPS, ctx.request.body.keys)
101
103
  }
102
104
 
103
105
  export const serveApp = async function (ctx: any) {
104
- const db = context.getAppDB({ skip_setup: true })
106
+ const db = getAppDB({ skip_setup: true })
105
107
  const appInfo = await db.get(DocumentType.APP_METADATA)
106
- let appId = context.getAppId()
108
+ let appId = getAppId()
107
109
 
108
110
  if (!env.isJest()) {
109
111
  const App = require("./templates/BudibaseApp.svelte").default
@@ -132,11 +134,11 @@ export const serveApp = async function (ctx: any) {
132
134
  }
133
135
 
134
136
  export const serveBuilderPreview = async function (ctx: any) {
135
- const db = context.getAppDB({ skip_setup: true })
137
+ const db = getAppDB({ skip_setup: true })
136
138
  const appInfo = await db.get(DocumentType.APP_METADATA)
137
139
 
138
140
  if (!env.isJest()) {
139
- let appId = context.getAppId()
141
+ let appId = getAppId()
140
142
  const previewHbs = loadHandlebarsFile(`${__dirname}/templates/preview.hbs`)
141
143
  ctx.body = await processString(previewHbs, {
142
144
  clientLibPath: clientLibraryPath(appId, appInfo.version, ctx),
@@ -154,7 +156,7 @@ export const serveClientLibrary = async function (ctx: any) {
154
156
  }
155
157
 
156
158
  export const getSignedUploadURL = async function (ctx: any) {
157
- const database = context.getAppDB()
159
+ const database = getAppDB()
158
160
 
159
161
  // Ensure datasource is valid
160
162
  let datasource
@@ -1,14 +1,13 @@
1
- import { FieldTypes, FormulaTypes } from "../../../constants"
2
- import { clearColumns } from "./utils"
3
- import { doesContainStrings } from "@budibase/string-templates"
4
- import { cloneDeep } from "lodash/fp"
5
- import { isEqual, uniq } from "lodash"
6
- import { updateAllFormulasInTable } from "../row/staticFormula"
7
- import { context } from "@budibase/backend-core"
8
- import { FieldSchema, Table } from "@budibase/types"
9
- import sdk from "../../../sdk"
1
+ const { FieldTypes, FormulaTypes } = require("../../../constants")
2
+ const { clearColumns } = require("./utils")
3
+ const { doesContainStrings } = require("@budibase/string-templates")
4
+ const { cloneDeep } = require("lodash/fp")
5
+ const { isEqual, uniq } = require("lodash")
6
+ const { updateAllFormulasInTable } = require("../row/staticFormula")
7
+ const { getAppDB } = require("@budibase/backend-core/context")
8
+ const sdk = require("../../../sdk")
10
9
 
11
- function isStaticFormula(column: FieldSchema) {
10
+ function isStaticFormula(column) {
12
11
  return (
13
12
  column.type === FieldTypes.FORMULA &&
14
13
  column.formulaType === FormulaTypes.STATIC
@@ -19,8 +18,8 @@ function isStaticFormula(column: FieldSchema) {
19
18
  * This retrieves the formula columns from a table schema that use a specified column name
20
19
  * in the formula.
21
20
  */
22
- function getFormulaThatUseColumn(table: Table, columnNames: string[] | string) {
23
- let formula: string[] = []
21
+ function getFormulaThatUseColumn(table, columnNames) {
22
+ let formula = []
24
23
  columnNames = Array.isArray(columnNames) ? columnNames : [columnNames]
25
24
  for (let column of Object.values(table.schema)) {
26
25
  // not a static formula, or doesn't contain a relationship
@@ -39,10 +38,7 @@ function getFormulaThatUseColumn(table: Table, columnNames: string[] | string) {
39
38
  * This functions checks for when a related table, column or related column is deleted, if any
40
39
  * tables need to have the formula column removed.
41
40
  */
42
- async function checkIfFormulaNeedsCleared(
43
- table: Table,
44
- { oldTable, deletion }: { oldTable?: Table; deletion?: boolean }
45
- ) {
41
+ async function checkIfFormulaNeedsCleared(table, { oldTable, deletion }) {
46
42
  // start by retrieving all tables, remove the current table from the list
47
43
  const tables = (await sdk.tables.getAllInternalTables()).filter(
48
44
  tbl => tbl._id !== table._id
@@ -53,14 +49,11 @@ async function checkIfFormulaNeedsCleared(
53
49
  )
54
50
  // remove any formula columns that used related columns
55
51
  for (let removed of removedColumns) {
56
- let tableToUse: Table | undefined = table
52
+ let tableToUse = table
57
53
  // if relationship, get the related table
58
54
  if (removed.type === FieldTypes.LINK) {
59
55
  tableToUse = tables.find(table => table._id === removed.tableId)
60
56
  }
61
- if (!tableToUse) {
62
- continue
63
- }
64
57
  const columnsToDelete = getFormulaThatUseColumn(tableToUse, removed.name)
65
58
  if (columnsToDelete.length > 0) {
66
59
  await clearColumns(table, columnsToDelete)
@@ -78,11 +71,11 @@ async function checkIfFormulaNeedsCleared(
78
71
  // look to see if the column was used in a relationship formula,
79
72
  // relationships won't be used for this
80
73
  if (relatedTable && relatedColumns && removed.type !== FieldTypes.LINK) {
81
- let relatedFormulaToRemove: string[] = []
74
+ let relatedFormulaToRemove = []
82
75
  for (let column of relatedColumns) {
83
76
  relatedFormulaToRemove = relatedFormulaToRemove.concat(
84
77
  getFormulaThatUseColumn(relatedTable, [
85
- column.fieldName!,
78
+ column.fieldName,
86
79
  removed.name,
87
80
  ])
88
81
  )
@@ -102,14 +95,13 @@ async function checkIfFormulaNeedsCleared(
102
95
  * specifically only for static formula.
103
96
  */
104
97
  async function updateRelatedFormulaLinksOnTables(
105
- table: Table,
106
- { deletion }: { deletion?: boolean } = {}
98
+ table,
99
+ { deletion } = { deletion: false }
107
100
  ) {
108
- const tableId: string = table._id!
109
- const db = context.getAppDB()
101
+ const db = getAppDB()
110
102
  // start by retrieving all tables, remove the current table from the list
111
103
  const tables = (await sdk.tables.getAllInternalTables()).filter(
112
- tbl => tbl._id !== tableId
104
+ tbl => tbl._id !== table._id
113
105
  )
114
106
  // clone the tables, so we can compare at end
115
107
  const initialTables = cloneDeep(tables)
@@ -122,7 +114,7 @@ async function updateRelatedFormulaLinksOnTables(
122
114
  if (!otherTable.relatedFormula) {
123
115
  continue
124
116
  }
125
- const index = otherTable.relatedFormula.indexOf(tableId)
117
+ const index = otherTable.relatedFormula.indexOf(table._id)
126
118
  if (index !== -1) {
127
119
  otherTable.relatedFormula.splice(index, 1)
128
120
  }
@@ -141,11 +133,11 @@ async function updateRelatedFormulaLinksOnTables(
141
133
  if (
142
134
  relatedTable &&
143
135
  (!relatedTable.relatedFormula ||
144
- !relatedTable.relatedFormula.includes(tableId))
136
+ !relatedTable.relatedFormula.includes(table._id))
145
137
  ) {
146
138
  relatedTable.relatedFormula = relatedTable.relatedFormula
147
- ? [...relatedTable.relatedFormula, tableId]
148
- : [tableId]
139
+ ? [...relatedTable.relatedFormula, table._id]
140
+ : [table._id]
149
141
  }
150
142
  }
151
143
  }
@@ -158,10 +150,7 @@ async function updateRelatedFormulaLinksOnTables(
158
150
  }
159
151
  }
160
152
 
161
- async function checkIfFormulaUpdated(
162
- table: Table,
163
- { oldTable }: { oldTable?: Table }
164
- ) {
153
+ async function checkIfFormulaUpdated(table, { oldTable }) {
165
154
  // look to see if any formula values have changed
166
155
  const shouldUpdate = Object.values(table.schema).find(
167
156
  column =>
@@ -176,10 +165,7 @@ async function checkIfFormulaUpdated(
176
165
  }
177
166
  }
178
167
 
179
- export async function runStaticFormulaChecks(
180
- table: Table,
181
- { oldTable, deletion }: { oldTable?: Table; deletion?: boolean }
182
- ) {
168
+ exports.runStaticFormulaChecks = async (table, { oldTable, deletion }) => {
183
169
  await updateRelatedFormulaLinksOnTables(table, { deletion })
184
170
  await checkIfFormulaNeedsCleared(table, { oldTable, deletion })
185
171
  if (!deletion) {
@@ -1,43 +1,38 @@
1
- import {
1
+ const {
2
2
  buildExternalTableId,
3
3
  breakExternalTableId,
4
- } from "../../../integrations/utils"
5
- import {
4
+ } = require("../../../integrations/utils")
5
+ const {
6
6
  generateForeignKey,
7
7
  generateJunctionTableName,
8
8
  foreignKeyStructure,
9
9
  hasTypeChanged,
10
- } from "./utils"
11
- import { FieldTypes, RelationshipTypes } from "../../../constants"
12
- import { makeExternalQuery } from "../../../integrations/base/query"
13
- import * as csvParser from "../../../utilities/csvParser"
14
- import { handleRequest } from "../row/external"
15
- import { events, context } from "@budibase/backend-core"
16
- import {
17
- Datasource,
18
- Table,
19
- QueryJson,
20
- Operation,
21
- RenameColumn,
22
- FieldSchema,
23
- BBContext,
24
- TableRequest,
25
- } from "@budibase/types"
26
- import sdk from "../../../sdk"
10
+ } = require("./utils")
11
+ const {
12
+ DataSourceOperation,
13
+ FieldTypes,
14
+ RelationshipTypes,
15
+ } = require("../../../constants")
16
+ const { makeExternalQuery } = require("../../../integrations/base/query")
27
17
  const { cloneDeep } = require("lodash/fp")
18
+ const csvParser = require("../../../utilities/csvParser")
19
+ const { handleRequest } = require("../row/external")
20
+ const { getAppDB } = require("@budibase/backend-core/context")
21
+ const { events } = require("@budibase/backend-core")
22
+ const sdk = require("../../../sdk")
28
23
 
29
24
  async function makeTableRequest(
30
- datasource: Datasource,
31
- operation: Operation,
32
- table: Table,
33
- tables: Record<string, Table>,
34
- oldTable?: Table,
35
- renamed?: RenameColumn
25
+ datasource,
26
+ operation,
27
+ table,
28
+ tables,
29
+ oldTable = null,
30
+ renamed = null
36
31
  ) {
37
- const json: QueryJson = {
32
+ const json = {
38
33
  endpoint: {
39
- datasourceId: datasource._id!,
40
- entityId: table._id!,
34
+ datasourceId: datasource._id,
35
+ entityId: table._id,
41
36
  operation,
42
37
  },
43
38
  meta: {
@@ -46,19 +41,15 @@ async function makeTableRequest(
46
41
  table,
47
42
  }
48
43
  if (oldTable) {
49
- json.meta!.table = oldTable
44
+ json.meta.table = oldTable
50
45
  }
51
46
  if (renamed) {
52
- json.meta!.renamed = renamed
47
+ json.meta.renamed = renamed
53
48
  }
54
49
  return makeExternalQuery(datasource, json)
55
50
  }
56
51
 
57
- function cleanupRelationships(
58
- table: Table,
59
- tables: Record<string, Table>,
60
- oldTable?: Table
61
- ) {
52
+ function cleanupRelationships(table, tables, oldTable = null) {
62
53
  const tableToIterate = oldTable ? oldTable : table
63
54
  // clean up relationships in couch table schemas
64
55
  for (let [key, schema] of Object.entries(tableToIterate.schema)) {
@@ -87,7 +78,7 @@ function cleanupRelationships(
87
78
  }
88
79
  }
89
80
 
90
- function getDatasourceId(table: Table) {
81
+ function getDatasourceId(table) {
91
82
  if (!table) {
92
83
  throw "No table supplied"
93
84
  }
@@ -97,7 +88,7 @@ function getDatasourceId(table: Table) {
97
88
  return breakExternalTableId(table._id).datasourceId
98
89
  }
99
90
 
100
- function otherRelationshipType(type?: string) {
91
+ function otherRelationshipType(type) {
101
92
  if (type === RelationshipTypes.MANY_TO_MANY) {
102
93
  return RelationshipTypes.MANY_TO_MANY
103
94
  }
@@ -106,21 +97,13 @@ function otherRelationshipType(type?: string) {
106
97
  : RelationshipTypes.ONE_TO_MANY
107
98
  }
108
99
 
109
- function generateManyLinkSchema(
110
- datasource: Datasource,
111
- column: FieldSchema,
112
- table: Table,
113
- relatedTable: Table
114
- ): Table {
115
- if (!table.primary || !relatedTable.primary) {
116
- throw new Error("Unable to generate many link schema, no primary keys")
117
- }
100
+ function generateManyLinkSchema(datasource, column, table, relatedTable) {
118
101
  const primary = table.name + table.primary[0]
119
102
  const relatedPrimary = relatedTable.name + relatedTable.primary[0]
120
103
  const jcTblName = generateJunctionTableName(column, table, relatedTable)
121
104
  // first create the new table
122
105
  const junctionTable = {
123
- _id: buildExternalTableId(datasource._id!, jcTblName),
106
+ _id: buildExternalTableId(datasource._id, jcTblName),
124
107
  name: jcTblName,
125
108
  primary: [primary, relatedPrimary],
126
109
  constrained: [primary, relatedPrimary],
@@ -142,15 +125,7 @@ function generateManyLinkSchema(
142
125
  return junctionTable
143
126
  }
144
127
 
145
- function generateLinkSchema(
146
- column: FieldSchema,
147
- table: Table,
148
- relatedTable: Table,
149
- type: string
150
- ) {
151
- if (!table.primary || !relatedTable.primary) {
152
- throw new Error("Unable to generate link schema, no primary keys")
153
- }
128
+ function generateLinkSchema(column, table, relatedTable, type) {
154
129
  const isOneSide = type === RelationshipTypes.ONE_TO_MANY
155
130
  const primary = isOneSide ? relatedTable.primary[0] : table.primary[0]
156
131
  // generate a foreign key
@@ -161,12 +136,7 @@ function generateLinkSchema(
161
136
  return foreignKey
162
137
  }
163
138
 
164
- function generateRelatedSchema(
165
- linkColumn: FieldSchema,
166
- table: Table,
167
- relatedTable: Table,
168
- columnName: string
169
- ) {
139
+ function generateRelatedSchema(linkColumn, table, relatedTable, columnName) {
170
140
  // generate column for other table
171
141
  const relatedSchema = cloneDeep(linkColumn)
172
142
  // swap them from the main link
@@ -189,21 +159,21 @@ function generateRelatedSchema(
189
159
  table.schema[columnName] = relatedSchema
190
160
  }
191
161
 
192
- function isRelationshipSetup(column: FieldSchema) {
162
+ function isRelationshipSetup(column) {
193
163
  return column.foreignKey || column.through
194
164
  }
195
165
 
196
- export async function save(ctx: BBContext) {
197
- const table: TableRequest = ctx.request.body
198
- const renamed = table?._rename
166
+ exports.save = async function (ctx) {
167
+ const table = ctx.request.body
168
+ const { _rename: renamed } = table
199
169
  // can't do this right now
200
170
  delete table.dataImport
201
- const datasourceId = getDatasourceId(ctx.request.body)!
171
+ const datasourceId = getDatasourceId(ctx.request.body)
202
172
  // table doesn't exist already, note that it is created
203
173
  if (!table._id) {
204
174
  table.created = true
205
175
  }
206
- let tableToSave: TableRequest = {
176
+ let tableToSave = {
207
177
  type: "table",
208
178
  _id: buildExternalTableId(datasourceId, table.name),
209
179
  ...table,
@@ -218,13 +188,13 @@ export async function save(ctx: BBContext) {
218
188
  ctx.throw(400, "A column type has changed.")
219
189
  }
220
190
 
221
- const db = context.getAppDB()
191
+ const db = getAppDB()
222
192
  const datasource = await db.get(datasourceId)
223
193
  if (!datasource.entities) {
224
194
  datasource.entities = {}
225
195
  }
226
196
  const oldTables = cloneDeep(datasource.entities)
227
- const tables: Record<string, Table> = datasource.entities
197
+ const tables = datasource.entities
228
198
 
229
199
  const extraTablesToUpdate = []
230
200
 
@@ -236,11 +206,8 @@ export async function save(ctx: BBContext) {
236
206
  const relatedTable = Object.values(tables).find(
237
207
  table => table._id === schema.tableId
238
208
  )
239
- if (!relatedTable) {
240
- continue
241
- }
242
- const relatedColumnName = schema.fieldName!
243
- const relationType = schema.relationshipType!
209
+ const relatedColumnName = schema.fieldName
210
+ const relationType = schema.relationshipType
244
211
  if (relationType === RelationshipTypes.MANY_TO_MANY) {
245
212
  const junctionTable = generateManyLinkSchema(
246
213
  datasource,
@@ -280,7 +247,9 @@ export async function save(ctx: BBContext) {
280
247
 
281
248
  cleanupRelationships(tableToSave, tables, oldTable)
282
249
 
283
- const operation = oldTable ? Operation.UPDATE_TABLE : Operation.CREATE_TABLE
250
+ const operation = oldTable
251
+ ? DataSourceOperation.UPDATE_TABLE
252
+ : DataSourceOperation.CREATE_TABLE
284
253
  await makeTableRequest(
285
254
  datasource,
286
255
  operation,
@@ -292,7 +261,9 @@ export async function save(ctx: BBContext) {
292
261
  // update any extra tables (like foreign keys in other tables)
293
262
  for (let extraTable of extraTablesToUpdate) {
294
263
  const oldExtraTable = oldTables[extraTable.name]
295
- let op = oldExtraTable ? Operation.UPDATE_TABLE : Operation.CREATE_TABLE
264
+ let op = oldExtraTable
265
+ ? DataSourceOperation.UPDATE_TABLE
266
+ : DataSourceOperation.CREATE_TABLE
296
267
  await makeTableRequest(datasource, op, extraTable, tables, oldExtraTable)
297
268
  }
298
269
 
@@ -312,20 +283,18 @@ export async function save(ctx: BBContext) {
312
283
  return tableToSave
313
284
  }
314
285
 
315
- export async function destroy(ctx: BBContext) {
316
- const tableToDelete: TableRequest = await sdk.tables.getTable(
317
- ctx.params.tableId
318
- )
286
+ exports.destroy = async function (ctx) {
287
+ const tableToDelete = await sdk.tables.getTable(ctx.params.tableId)
319
288
  if (!tableToDelete || !tableToDelete.created) {
320
289
  ctx.throw(400, "Cannot delete tables which weren't created in Budibase.")
321
290
  }
322
291
  const datasourceId = getDatasourceId(tableToDelete)
323
292
 
324
- const db = context.getAppDB()
293
+ const db = getAppDB()
325
294
  const datasource = await db.get(datasourceId)
326
295
  const tables = datasource.entities
327
296
 
328
- const operation = Operation.DELETE_TABLE
297
+ const operation = DataSourceOperation.DELETE_TABLE
329
298
  await makeTableRequest(datasource, operation, tableToDelete, tables)
330
299
 
331
300
  cleanupRelationships(tableToDelete, tables)
@@ -336,7 +305,7 @@ export async function destroy(ctx: BBContext) {
336
305
  return tableToDelete
337
306
  }
338
307
 
339
- export async function bulkImport(ctx: BBContext) {
308
+ exports.bulkImport = async function (ctx) {
340
309
  const table = await sdk.tables.getTable(ctx.params.tableId)
341
310
  const { dataImport } = ctx.request.body
342
311
  if (!dataImport || !dataImport.schema || !dataImport.csvString) {
@@ -346,7 +315,7 @@ export async function bulkImport(ctx: BBContext) {
346
315
  ...dataImport,
347
316
  existingTable: table,
348
317
  })
349
- await handleRequest(Operation.BULK_CREATE, table._id!, {
318
+ await handleRequest(DataSourceOperation.BULK_CREATE, table._id, {
350
319
  rows,
351
320
  })
352
321
  await events.rows.imported(table, "csv", rows.length)
@@ -1,13 +1,13 @@
1
- import * as internal from "./internal"
2
- import * as external from "./external"
3
- import * as csvParser from "../../../utilities/csvParser"
4
- import { isExternalTable, isSQL } from "../../../integrations/utils"
5
- import { getDatasourceParams } from "../../../db/utils"
6
- import { context, events } from "@budibase/backend-core"
7
- import { Table, BBContext } from "@budibase/types"
8
- import sdk from "../../../sdk"
1
+ const internal = require("./internal")
2
+ const external = require("./external")
3
+ const csvParser = require("../../../utilities/csvParser")
4
+ const { isExternalTable, isSQL } = require("../../../integrations/utils")
5
+ const { getDatasourceParams } = require("../../../db/utils")
6
+ const { getAppDB } = require("@budibase/backend-core/context")
7
+ const { events } = require("@budibase/backend-core")
8
+ const sdk = require("../../../sdk")
9
9
 
10
- function pickApi({ tableId, table }: { tableId?: string; table?: Table }) {
10
+ function pickApi({ tableId, table }) {
11
11
  if (table && !tableId) {
12
12
  tableId = table._id
13
13
  }
@@ -20,8 +20,8 @@ function pickApi({ tableId, table }: { tableId?: string; table?: Table }) {
20
20
  }
21
21
 
22
22
  // covers both internal and external
23
- export async function fetch(ctx: BBContext) {
24
- const db = context.getAppDB()
23
+ exports.fetch = async function (ctx) {
24
+ const db = getAppDB()
25
25
 
26
26
  const internal = await sdk.tables.getAllInternalTables()
27
27
 
@@ -34,7 +34,7 @@ export async function fetch(ctx: BBContext) {
34
34
  const external = externalTables.rows.flatMap(tableDoc => {
35
35
  let entities = tableDoc.doc.entities
36
36
  if (entities) {
37
- return Object.values(entities).map((entity: any) => ({
37
+ return Object.values(entities).map(entity => ({
38
38
  ...entity,
39
39
  type: "external",
40
40
  sourceId: tableDoc.doc._id,
@@ -48,12 +48,12 @@ export async function fetch(ctx: BBContext) {
48
48
  ctx.body = [...internal, ...external]
49
49
  }
50
50
 
51
- export async function find(ctx: BBContext) {
51
+ exports.find = async function (ctx) {
52
52
  const tableId = ctx.params.tableId
53
53
  ctx.body = await sdk.tables.getTable(tableId)
54
54
  }
55
55
 
56
- export async function save(ctx: BBContext) {
56
+ exports.save = async function (ctx) {
57
57
  const appId = ctx.appId
58
58
  const table = ctx.request.body
59
59
  const importFormat =
@@ -74,7 +74,7 @@ export async function save(ctx: BBContext) {
74
74
  ctx.body = savedTable
75
75
  }
76
76
 
77
- export async function destroy(ctx: BBContext) {
77
+ exports.destroy = async function (ctx) {
78
78
  const appId = ctx.appId
79
79
  const tableId = ctx.params.tableId
80
80
  const deletedTable = await pickApi({ tableId }).destroy(ctx)
@@ -86,7 +86,7 @@ export async function destroy(ctx: BBContext) {
86
86
  ctx.body = { message: `Table ${tableId} deleted.` }
87
87
  }
88
88
 
89
- export async function bulkImport(ctx: BBContext) {
89
+ exports.bulkImport = async function (ctx) {
90
90
  const tableId = ctx.params.tableId
91
91
  await pickApi({ tableId }).bulkImport(ctx)
92
92
  // right now we don't trigger anything for bulk import because it
@@ -96,17 +96,14 @@ export async function bulkImport(ctx: BBContext) {
96
96
  ctx.body = { message: `Bulk rows created.` }
97
97
  }
98
98
 
99
- export async function validateCSVSchema(ctx: BBContext) {
99
+ exports.validateCSVSchema = async function (ctx) {
100
100
  // tableId being specified means its an import to an existing table
101
101
  const { csvString, schema = {}, tableId } = ctx.request.body
102
102
  let existingTable
103
103
  if (tableId) {
104
104
  existingTable = await sdk.tables.getTable(tableId)
105
105
  }
106
- let result: Record<string, any> | undefined = await csvParser.parse(
107
- csvString,
108
- schema
109
- )
106
+ let result = await csvParser.parse(csvString, schema)
110
107
  if (existingTable) {
111
108
  result = csvParser.updateSchema({ schema: result, existingTable })
112
109
  }
@@ -2,7 +2,7 @@ import { updateLinks, EventType } from "../../../db/linkedRows"
2
2
  import { getRowParams, generateTableID } from "../../../db/utils"
3
3
  import { FieldTypes } from "../../../constants"
4
4
  import { TableSaveFunctions, hasTypeChanged, handleDataImport } from "./utils"
5
- import { context } from "@budibase/backend-core"
5
+ const { getAppDB } = require("@budibase/backend-core/context")
6
6
  import { isTest } from "../../../environment"
7
7
  import {
8
8
  cleanupAttachments,
@@ -35,7 +35,7 @@ function checkAutoColumns(table: Table, oldTable: Table) {
35
35
  }
36
36
 
37
37
  export async function save(ctx: any) {
38
- const db = context.getAppDB()
38
+ const db = getAppDB()
39
39
  const { dataImport, ...rest } = ctx.request.body
40
40
  let tableToSave = {
41
41
  type: "table",
@@ -133,12 +133,12 @@ export async function save(ctx: any) {
133
133
  tableToSave._rev = result.rev
134
134
  }
135
135
  // has to run after, make sure it has _id
136
- await runStaticFormulaChecks(tableToSave, { oldTable, deletion: false })
136
+ await runStaticFormulaChecks(tableToSave, { oldTable, deletion: null })
137
137
  return tableToSave
138
138
  }
139
139
 
140
140
  export async function destroy(ctx: any) {
141
- const db = context.getAppDB()
141
+ const db = getAppDB()
142
142
  const tableToDelete = await db.get(ctx.params.tableId)
143
143
 
144
144
  // Delete all rows for that table
@@ -161,7 +161,7 @@ export async function destroy(ctx: any) {
161
161
  })
162
162
 
163
163
  // don't remove the table itself until very end
164
- await db.remove(tableToDelete._id, tableToDelete._rev)
164
+ await db.remove(tableToDelete)
165
165
 
166
166
  // remove table search index
167
167
  if (!isTest() || env.COUCH_DB_URL) {
@@ -176,6 +176,7 @@ export async function destroy(ctx: any) {
176
176
 
177
177
  // has to run after, make sure it has _id
178
178
  await runStaticFormulaChecks(tableToDelete, {
179
+ oldTable: null,
179
180
  deletion: true,
180
181
  })
181
182
  await cleanupAttachments(tableToDelete, {