@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
@@ -1,27 +1,4 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
2
  var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
26
3
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
27
4
  return new (P || (P = Promise))(function (resolve, reject) {
@@ -42,27 +19,23 @@ var __rest = (this && this.__rest) || function (s, e) {
42
19
  }
43
20
  return t;
44
21
  };
45
- var __importDefault = (this && this.__importDefault) || function (mod) {
46
- return (mod && mod.__esModule) ? mod : { "default": mod };
47
- };
48
- Object.defineProperty(exports, "__esModule", { value: true });
49
- exports.fetchEnrichedRow = exports.exportRows = exports.validate = exports.search = exports.bulkDestroy = exports.destroy = exports.find = exports.fetch = exports.fetchView = exports.save = exports.patch = void 0;
50
- const linkRows = __importStar(require("../../../db/linkedRows"));
51
- const utils_1 = require("../../../db/utils");
52
- const userController = __importStar(require("../user"));
53
- const rowProcessor_1 = require("../../../utilities/rowProcessor");
54
- const constants_1 = require("../../../constants");
55
- const utils_2 = require("./utils");
56
- const internalSearch_1 = require("./internalSearch");
57
- const global_1 = require("../../../utilities/global");
58
- const inMemoryViews = __importStar(require("../../../db/inMemoryView"));
59
- const environment_1 = __importDefault(require("../../../environment"));
60
- const utils_3 = require("../view/utils");
61
- const fp_1 = require("lodash/fp");
62
- const backend_core_1 = require("@budibase/backend-core");
63
- const staticFormula_1 = require("./staticFormula");
64
- const exporters = __importStar(require("../view/exporters"));
65
- const fileSystem_1 = require("../../../utilities/fileSystem");
22
+ const linkRows = require("../../../db/linkedRows");
23
+ const { generateRowID, getRowParams, getTableIDFromRowID, DocumentType, InternalTables, } = require("../../../db/utils");
24
+ const { dangerousGetDB } = require("@budibase/backend-core/db");
25
+ const userController = require("../user");
26
+ const { inputProcessing, outputProcessing, cleanupAttachments, } = require("../../../utilities/rowProcessor");
27
+ const { FieldTypes } = require("../../../constants");
28
+ const { validate, findRow } = require("./utils");
29
+ const { fullSearch, paginatedSearch } = require("./internalSearch");
30
+ const { getGlobalUsersFromMetadata } = require("../../../utilities/global");
31
+ const inMemoryViews = require("../../../db/inMemoryView");
32
+ const env = require("../../../environment");
33
+ const { migrateToInMemoryView, migrateToDesignView, getFromDesignDoc, getFromMemoryDoc, } = require("../view/utils");
34
+ const { cloneDeep } = require("lodash/fp");
35
+ const { getAppDB } = require("@budibase/backend-core/context");
36
+ const { finaliseRow, updateRelatedFormula } = require("./staticFormula");
37
+ const exporters = require("../view/exporters");
38
+ const { apiFileReturn } = require("../../../utilities/fileSystem");
66
39
  const CALCULATION_TYPES = {
67
40
  SUM: "sum",
68
41
  COUNT: "count",
@@ -70,9 +43,9 @@ const CALCULATION_TYPES = {
70
43
  };
71
44
  function getView(db, viewName) {
72
45
  return __awaiter(this, void 0, void 0, function* () {
73
- let mainGetter = environment_1.default.SELF_HOSTED ? utils_3.getFromDesignDoc : utils_3.getFromMemoryDoc;
74
- let secondaryGetter = environment_1.default.SELF_HOSTED ? utils_3.getFromMemoryDoc : utils_3.getFromDesignDoc;
75
- let migration = environment_1.default.SELF_HOSTED ? utils_3.migrateToDesignView : utils_3.migrateToInMemoryView;
46
+ let mainGetter = env.SELF_HOSTED ? getFromDesignDoc : getFromMemoryDoc;
47
+ let secondaryGetter = env.SELF_HOSTED ? getFromMemoryDoc : getFromDesignDoc;
48
+ let migration = env.SELF_HOSTED ? migrateToDesignView : migrateToInMemoryView;
76
49
  let viewInfo, migrate = false;
77
50
  try {
78
51
  viewInfo = yield mainGetter(db, viewName);
@@ -99,12 +72,12 @@ function getView(db, viewName) {
99
72
  function getRawTableData(ctx, db, tableId) {
100
73
  return __awaiter(this, void 0, void 0, function* () {
101
74
  let rows;
102
- if (tableId === utils_1.InternalTables.USER_METADATA) {
75
+ if (tableId === InternalTables.USER_METADATA) {
103
76
  yield userController.fetchMetadata(ctx);
104
77
  rows = ctx.body;
105
78
  }
106
79
  else {
107
- const response = yield db.allDocs((0, utils_1.getRowParams)(tableId, null, {
80
+ const response = yield db.allDocs(getRowParams(tableId, null, {
108
81
  include_docs: true,
109
82
  }));
110
83
  rows = response.rows.map(row => row.doc);
@@ -112,80 +85,77 @@ function getRawTableData(ctx, db, tableId) {
112
85
  return rows;
113
86
  });
114
87
  }
115
- function patch(ctx) {
116
- return __awaiter(this, void 0, void 0, function* () {
117
- const db = backend_core_1.context.getAppDB();
118
- const inputs = ctx.request.body;
119
- const tableId = inputs.tableId;
120
- const isUserTable = tableId === utils_1.InternalTables.USER_METADATA;
121
- let oldRow;
122
- try {
123
- let dbTable = yield db.get(tableId);
124
- oldRow = yield (0, rowProcessor_1.outputProcessing)(dbTable, yield (0, utils_2.findRow)(ctx, tableId, inputs._id));
125
- }
126
- catch (err) {
127
- if (isUserTable) {
128
- // don't include the rev, it'll be the global rev
129
- // this time
130
- oldRow = {
131
- _id: inputs._id,
132
- };
133
- }
134
- else {
135
- throw "Row does not exist";
136
- }
137
- }
88
+ exports.patch = (ctx) => __awaiter(void 0, void 0, void 0, function* () {
89
+ const db = getAppDB();
90
+ const inputs = ctx.request.body;
91
+ const tableId = inputs.tableId;
92
+ const isUserTable = tableId === InternalTables.USER_METADATA;
93
+ let oldRow;
94
+ try {
138
95
  let dbTable = yield db.get(tableId);
139
- // need to build up full patch fields before coerce
140
- let combinedRow = (0, fp_1.cloneDeep)(oldRow);
141
- for (let key of Object.keys(inputs)) {
142
- if (!dbTable.schema[key])
143
- continue;
144
- combinedRow[key] = inputs[key];
145
- }
146
- // this returns the table and row incase they have been updated
147
- let { table, row } = (0, rowProcessor_1.inputProcessing)(ctx.user, dbTable, combinedRow);
148
- const validateResult = yield (0, utils_2.validate)({
149
- row,
150
- table,
151
- });
152
- if (!validateResult.valid) {
153
- ctx.throw(400, { validation: validateResult.errors });
154
- }
155
- // returned row is cleaned and prepared for writing to DB
156
- row = (yield linkRows.updateLinks({
157
- eventType: linkRows.EventType.ROW_UPDATE,
158
- row,
159
- tableId: row.tableId,
160
- table,
161
- }));
162
- // check if any attachments removed
163
- yield (0, rowProcessor_1.cleanupAttachments)(table, { oldRow, row });
96
+ oldRow = yield outputProcessing(dbTable, yield findRow(ctx, tableId, inputs._id));
97
+ }
98
+ catch (err) {
164
99
  if (isUserTable) {
165
- // the row has been updated, need to put it into the ctx
166
- ctx.request.body = row;
167
- yield userController.updateMetadata(ctx);
168
- return { row: ctx.body, table };
100
+ // don't include the rev, it'll be the global rev
101
+ // this time
102
+ oldRow = {
103
+ _id: inputs._id,
104
+ };
169
105
  }
170
- return (0, staticFormula_1.finaliseRow)(table, row, {
171
- oldTable: dbTable,
172
- updateFormula: true,
173
- });
106
+ else {
107
+ throw "Row does not exist";
108
+ }
109
+ }
110
+ let dbTable = yield db.get(tableId);
111
+ // need to build up full patch fields before coerce
112
+ let combinedRow = cloneDeep(oldRow);
113
+ for (let key of Object.keys(inputs)) {
114
+ if (!dbTable.schema[key])
115
+ continue;
116
+ combinedRow[key] = inputs[key];
117
+ }
118
+ // this returns the table and row incase they have been updated
119
+ let { table, row } = inputProcessing(ctx.user, dbTable, combinedRow);
120
+ const validateResult = yield validate({
121
+ row,
122
+ table,
174
123
  });
175
- }
176
- exports.patch = patch;
177
- function save(ctx) {
124
+ if (!validateResult.valid) {
125
+ ctx.throw(400, { validation: validateResult.errors });
126
+ }
127
+ // returned row is cleaned and prepared for writing to DB
128
+ row = yield linkRows.updateLinks({
129
+ eventType: linkRows.EventType.ROW_UPDATE,
130
+ row,
131
+ tableId: row.tableId,
132
+ table,
133
+ });
134
+ // check if any attachments removed
135
+ yield cleanupAttachments(table, { oldRow, row });
136
+ if (isUserTable) {
137
+ // the row has been updated, need to put it into the ctx
138
+ ctx.request.body = row;
139
+ yield userController.updateMetadata(ctx);
140
+ return { row: ctx.body, table };
141
+ }
142
+ return finaliseRow(table, row, {
143
+ oldTable: dbTable,
144
+ updateFormula: true,
145
+ });
146
+ });
147
+ exports.save = function (ctx) {
178
148
  return __awaiter(this, void 0, void 0, function* () {
179
- const db = backend_core_1.context.getAppDB();
149
+ const db = getAppDB();
180
150
  let inputs = ctx.request.body;
181
151
  inputs.tableId = ctx.params.tableId;
182
152
  if (!inputs._rev && !inputs._id) {
183
- inputs._id = (0, utils_1.generateRowID)(inputs.tableId);
153
+ inputs._id = generateRowID(inputs.tableId);
184
154
  }
185
155
  // this returns the table and row incase they have been updated
186
156
  const dbTable = yield db.get(inputs.tableId);
187
- let { table, row } = (0, rowProcessor_1.inputProcessing)(ctx.user, dbTable, inputs);
188
- const validateResult = yield (0, utils_2.validate)({
157
+ let { table, row } = inputProcessing(ctx.user, dbTable, inputs);
158
+ const validateResult = yield validate({
189
159
  row,
190
160
  table,
191
161
  });
@@ -193,96 +163,86 @@ function save(ctx) {
193
163
  throw { validation: validateResult.errors };
194
164
  }
195
165
  // make sure link rows are up to date
196
- row = (yield linkRows.updateLinks({
166
+ row = yield linkRows.updateLinks({
197
167
  eventType: linkRows.EventType.ROW_SAVE,
198
168
  row,
199
169
  tableId: row.tableId,
200
170
  table,
201
- }));
202
- return (0, staticFormula_1.finaliseRow)(table, row, {
171
+ });
172
+ return finaliseRow(table, row, {
203
173
  oldTable: dbTable,
204
174
  updateFormula: true,
205
175
  });
206
176
  });
207
- }
208
- exports.save = save;
209
- function fetchView(ctx) {
210
- return __awaiter(this, void 0, void 0, function* () {
211
- const viewName = ctx.params.viewName;
212
- // if this is a table view being looked for just transfer to that
213
- if (viewName.startsWith(utils_1.DocumentType.TABLE)) {
214
- ctx.params.tableId = viewName;
215
- return fetch(ctx);
216
- }
217
- const db = backend_core_1.context.getAppDB();
218
- const { calculation, group, field } = ctx.query;
219
- const viewInfo = yield getView(db, viewName);
220
- let response;
221
- if (environment_1.default.SELF_HOSTED) {
222
- response = yield db.query(`database/${viewName}`, {
223
- include_docs: !calculation,
224
- group: !!group,
225
- });
226
- }
227
- else {
228
- const tableId = viewInfo.meta.tableId;
229
- const data = yield getRawTableData(ctx, db, tableId);
230
- response = yield inMemoryViews.runView(viewInfo, calculation, !!group, data);
231
- }
232
- let rows;
233
- if (!calculation) {
234
- response.rows = response.rows.map(row => row.doc);
235
- let table;
236
- try {
237
- table = yield db.get(viewInfo.meta.tableId);
238
- }
239
- catch (err) {
240
- /* istanbul ignore next */
241
- table = {
242
- schema: {},
243
- };
244
- }
245
- rows = yield (0, rowProcessor_1.outputProcessing)(table, response.rows);
246
- }
247
- if (calculation === CALCULATION_TYPES.STATS) {
248
- response.rows = response.rows.map(row => (Object.assign(Object.assign({ group: row.key, field }, row.value), { avg: row.value.sum / row.value.count })));
249
- rows = response.rows;
177
+ };
178
+ exports.fetchView = (ctx) => __awaiter(void 0, void 0, void 0, function* () {
179
+ const viewName = ctx.params.viewName;
180
+ // if this is a table view being looked for just transfer to that
181
+ if (viewName.startsWith(DocumentType.TABLE)) {
182
+ ctx.params.tableId = viewName;
183
+ return exports.fetch(ctx);
184
+ }
185
+ const db = getAppDB();
186
+ const { calculation, group, field } = ctx.query;
187
+ const viewInfo = yield getView(db, viewName);
188
+ let response;
189
+ if (env.SELF_HOSTED) {
190
+ response = yield db.query(`database/${viewName}`, {
191
+ include_docs: !calculation,
192
+ group: !!group,
193
+ });
194
+ }
195
+ else {
196
+ const tableId = viewInfo.meta.tableId;
197
+ const data = yield getRawTableData(ctx, db, tableId);
198
+ response = yield inMemoryViews.runView(viewInfo, calculation, group, data);
199
+ }
200
+ let rows;
201
+ if (!calculation) {
202
+ response.rows = response.rows.map(row => row.doc);
203
+ let table;
204
+ try {
205
+ table = yield db.get(viewInfo.meta.tableId);
250
206
  }
251
- if (calculation === CALCULATION_TYPES.COUNT ||
252
- calculation === CALCULATION_TYPES.SUM) {
253
- rows = response.rows.map(row => ({
254
- group: row.key,
255
- field,
256
- value: row.value,
257
- }));
207
+ catch (err) {
208
+ /* istanbul ignore next */
209
+ table = {
210
+ schema: {},
211
+ };
258
212
  }
259
- return rows;
260
- });
261
- }
262
- exports.fetchView = fetchView;
263
- function fetch(ctx) {
264
- return __awaiter(this, void 0, void 0, function* () {
265
- const db = backend_core_1.context.getAppDB();
266
- const tableId = ctx.params.tableId;
267
- let table = yield db.get(tableId);
268
- let rows = yield getRawTableData(ctx, db, tableId);
269
- return (0, rowProcessor_1.outputProcessing)(table, rows);
270
- });
271
- }
272
- exports.fetch = fetch;
273
- function find(ctx) {
274
- return __awaiter(this, void 0, void 0, function* () {
275
- const db = backend_core_1.db.getDB(ctx.appId);
276
- const table = yield db.get(ctx.params.tableId);
277
- let row = yield (0, utils_2.findRow)(ctx, ctx.params.tableId, ctx.params.rowId);
278
- row = yield (0, rowProcessor_1.outputProcessing)(table, row);
279
- return row;
280
- });
281
- }
282
- exports.find = find;
283
- function destroy(ctx) {
213
+ rows = yield outputProcessing(table, response.rows);
214
+ }
215
+ if (calculation === CALCULATION_TYPES.STATS) {
216
+ response.rows = response.rows.map(row => (Object.assign(Object.assign({ group: row.key, field }, row.value), { avg: row.value.sum / row.value.count })));
217
+ rows = response.rows;
218
+ }
219
+ if (calculation === CALCULATION_TYPES.COUNT ||
220
+ calculation === CALCULATION_TYPES.SUM) {
221
+ rows = response.rows.map(row => ({
222
+ group: row.key,
223
+ field,
224
+ value: row.value,
225
+ }));
226
+ }
227
+ return rows;
228
+ });
229
+ exports.fetch = (ctx) => __awaiter(void 0, void 0, void 0, function* () {
230
+ const db = getAppDB();
231
+ const tableId = ctx.params.tableId;
232
+ let table = yield db.get(tableId);
233
+ let rows = yield getRawTableData(ctx, db, tableId);
234
+ return outputProcessing(table, rows);
235
+ });
236
+ exports.find = (ctx) => __awaiter(void 0, void 0, void 0, function* () {
237
+ const db = dangerousGetDB(ctx.appId);
238
+ const table = yield db.get(ctx.params.tableId);
239
+ let row = yield findRow(ctx, ctx.params.tableId, ctx.params.rowId);
240
+ row = yield outputProcessing(table, row);
241
+ return row;
242
+ });
243
+ exports.destroy = function (ctx) {
284
244
  return __awaiter(this, void 0, void 0, function* () {
285
- const db = backend_core_1.context.getAppDB();
245
+ const db = getAppDB();
286
246
  const { _id } = ctx.request.body;
287
247
  let row = yield db.get(_id);
288
248
  let _rev = ctx.request.body._rev || row._rev;
@@ -291,7 +251,7 @@ function destroy(ctx) {
291
251
  }
292
252
  const table = yield db.get(row.tableId);
293
253
  // update the row to include full relationships before deleting them
294
- row = yield (0, rowProcessor_1.outputProcessing)(table, row, { squash: false });
254
+ row = yield outputProcessing(table, row, { squash: false });
295
255
  // now remove the relationships
296
256
  yield linkRows.updateLinks({
297
257
  eventType: linkRows.EventType.ROW_DELETE,
@@ -299,11 +259,11 @@ function destroy(ctx) {
299
259
  tableId: row.tableId,
300
260
  });
301
261
  // remove any attachments that were on the row from object storage
302
- yield (0, rowProcessor_1.cleanupAttachments)(table, { row });
262
+ yield cleanupAttachments(table, { row });
303
263
  // remove any static formula
304
- yield (0, staticFormula_1.updateRelatedFormula)(table, row);
264
+ yield updateRelatedFormula(table, row);
305
265
  let response;
306
- if (ctx.params.tableId === utils_1.InternalTables.USER_METADATA) {
266
+ if (ctx.params.tableId === InternalTables.USER_METADATA) {
307
267
  ctx.params = {
308
268
  id: _id,
309
269
  };
@@ -315,172 +275,153 @@ function destroy(ctx) {
315
275
  }
316
276
  return { response, row };
317
277
  });
318
- }
319
- exports.destroy = destroy;
320
- function bulkDestroy(ctx) {
321
- return __awaiter(this, void 0, void 0, function* () {
322
- const db = backend_core_1.context.getAppDB();
323
- const tableId = ctx.params.tableId;
324
- const table = yield db.get(tableId);
325
- let { rows } = ctx.request.body;
326
- // before carrying out any updates, make sure the rows are ready to be returned
327
- // they need to be the full rows (including previous relationships) for automations
328
- const processedRows = (yield (0, rowProcessor_1.outputProcessing)(table, rows, {
329
- squash: false,
330
- }));
331
- // remove the relationships first
332
- let updates = processedRows.map(row => linkRows.updateLinks({
333
- eventType: linkRows.EventType.ROW_DELETE,
334
- row,
335
- tableId: row.tableId,
278
+ };
279
+ exports.bulkDestroy = (ctx) => __awaiter(void 0, void 0, void 0, function* () {
280
+ const db = getAppDB();
281
+ const tableId = ctx.params.tableId;
282
+ const table = yield db.get(tableId);
283
+ let { rows } = ctx.request.body;
284
+ // before carrying out any updates, make sure the rows are ready to be returned
285
+ // they need to be the full rows (including previous relationships) for automations
286
+ rows = yield outputProcessing(table, rows, { squash: false });
287
+ // remove the relationships first
288
+ let updates = rows.map(row => linkRows.updateLinks({
289
+ eventType: linkRows.EventType.ROW_DELETE,
290
+ row,
291
+ tableId: row.tableId,
292
+ }));
293
+ if (tableId === InternalTables.USER_METADATA) {
294
+ updates = updates.concat(rows.map(row => {
295
+ ctx.params = {
296
+ id: row._id,
297
+ };
298
+ return userController.destroyMetadata(ctx);
336
299
  }));
337
- if (tableId === utils_1.InternalTables.USER_METADATA) {
338
- updates = updates.concat(processedRows.map(row => {
339
- ctx.params = {
340
- id: row._id,
341
- };
342
- return userController.destroyMetadata(ctx);
343
- }));
344
- }
345
- else {
346
- yield db.bulkDocs(processedRows.map(row => (Object.assign(Object.assign({}, row), { _deleted: true }))));
300
+ }
301
+ else {
302
+ yield db.bulkDocs(rows.map(row => (Object.assign(Object.assign({}, row), { _deleted: true }))));
303
+ }
304
+ // remove any attachments that were on the rows from object storage
305
+ yield cleanupAttachments(table, { rows });
306
+ yield updateRelatedFormula(table, rows);
307
+ yield Promise.all(updates);
308
+ return { response: { ok: true }, rows };
309
+ });
310
+ exports.search = (ctx) => __awaiter(void 0, void 0, void 0, function* () {
311
+ // Fetch the whole table when running in cypress, as search doesn't work
312
+ if (!env.COUCH_DB_URL && env.isCypress()) {
313
+ return { rows: yield exports.fetch(ctx) };
314
+ }
315
+ const { tableId } = ctx.params;
316
+ const db = getAppDB();
317
+ const _a = ctx.request.body, { paginate, query } = _a, params = __rest(_a, ["paginate", "query"]);
318
+ params.version = ctx.version;
319
+ params.tableId = tableId;
320
+ let response;
321
+ if (paginate) {
322
+ response = yield paginatedSearch(query, params);
323
+ }
324
+ else {
325
+ response = yield fullSearch(query, params);
326
+ }
327
+ // Enrich search results with relationships
328
+ if (response.rows && response.rows.length) {
329
+ // enrich with global users if from users table
330
+ if (tableId === InternalTables.USER_METADATA) {
331
+ response.rows = yield getGlobalUsersFromMetadata(response.rows);
347
332
  }
348
- // remove any attachments that were on the rows from object storage
349
- yield (0, rowProcessor_1.cleanupAttachments)(table, { rows: processedRows });
350
- yield (0, staticFormula_1.updateRelatedFormula)(table, processedRows);
351
- yield Promise.all(updates);
352
- return { response: { ok: true }, rows: processedRows };
333
+ const table = yield db.get(tableId);
334
+ response.rows = yield outputProcessing(table, response.rows);
335
+ }
336
+ return response;
337
+ });
338
+ exports.validate = (ctx) => __awaiter(void 0, void 0, void 0, function* () {
339
+ return validate({
340
+ tableId: ctx.params.tableId,
341
+ row: ctx.request.body,
353
342
  });
354
- }
355
- exports.bulkDestroy = bulkDestroy;
356
- function search(ctx) {
357
- return __awaiter(this, void 0, void 0, function* () {
358
- // Fetch the whole table when running in cypress, as search doesn't work
359
- if (!environment_1.default.COUCH_DB_URL && environment_1.default.isCypress()) {
360
- return { rows: yield fetch(ctx) };
361
- }
362
- const { tableId } = ctx.params;
363
- const db = backend_core_1.context.getAppDB();
364
- const _a = ctx.request.body, { paginate, query } = _a, params = __rest(_a, ["paginate", "query"]);
365
- params.version = ctx.version;
366
- params.tableId = tableId;
367
- let response;
368
- if (paginate) {
369
- response = yield (0, internalSearch_1.paginatedSearch)(query, params);
370
- }
371
- else {
372
- response = yield (0, internalSearch_1.fullSearch)(query, params);
373
- }
374
- // Enrich search results with relationships
375
- if (response.rows && response.rows.length) {
376
- // enrich with global users if from users table
377
- if (tableId === utils_1.InternalTables.USER_METADATA) {
378
- response.rows = yield (0, global_1.getGlobalUsersFromMetadata)(response.rows);
343
+ });
344
+ exports.exportRows = (ctx) => __awaiter(void 0, void 0, void 0, function* () {
345
+ const db = getAppDB();
346
+ const table = yield db.get(ctx.params.tableId);
347
+ const rowIds = ctx.request.body.rows;
348
+ let format = ctx.query.format;
349
+ const { columns } = ctx.request.body;
350
+ let response = (yield db.allDocs({
351
+ include_docs: true,
352
+ keys: rowIds,
353
+ })).rows.map(row => row.doc);
354
+ let result = yield outputProcessing(table, response);
355
+ let rows = [];
356
+ // Filter data to only specified columns if required
357
+ if (columns && columns.length) {
358
+ for (let i = 0; i < result.length; i++) {
359
+ rows[i] = {};
360
+ for (let column of columns) {
361
+ rows[i][column] = result[i][column];
379
362
  }
380
- const table = yield db.get(tableId);
381
- response.rows = yield (0, rowProcessor_1.outputProcessing)(table, response.rows);
382
363
  }
383
- return response;
384
- });
385
- }
386
- exports.search = search;
387
- function validate(ctx) {
388
- return __awaiter(this, void 0, void 0, function* () {
389
- return (0, utils_2.validate)({
390
- tableId: ctx.params.tableId,
391
- row: ctx.request.body,
392
- });
364
+ }
365
+ else {
366
+ rows = result;
367
+ }
368
+ let headers = Object.keys(rows[0]);
369
+ const exporter = exporters[format];
370
+ const filename = `export.${format}`;
371
+ // send down the file
372
+ ctx.attachment(filename);
373
+ return apiFileReturn(exporter(headers, rows));
374
+ });
375
+ exports.fetchEnrichedRow = (ctx) => __awaiter(void 0, void 0, void 0, function* () {
376
+ const db = getAppDB();
377
+ const tableId = ctx.params.tableId;
378
+ const rowId = ctx.params.rowId;
379
+ // need table to work out where links go in row
380
+ let [table, row] = yield Promise.all([
381
+ db.get(tableId),
382
+ findRow(ctx, tableId, rowId),
383
+ ]);
384
+ // get the link docs
385
+ const linkVals = yield linkRows.getLinkDocuments({
386
+ tableId,
387
+ rowId,
393
388
  });
394
- }
395
- exports.validate = validate;
396
- function exportRows(ctx) {
397
- return __awaiter(this, void 0, void 0, function* () {
398
- const db = backend_core_1.context.getAppDB();
399
- const table = yield db.get(ctx.params.tableId);
400
- const rowIds = ctx.request.body.rows;
401
- let format = ctx.query.format;
402
- const { columns } = ctx.request.body;
403
- let response = (yield db.allDocs({
404
- include_docs: true,
405
- keys: rowIds,
406
- })).rows.map(row => row.doc);
407
- let result = (yield (0, rowProcessor_1.outputProcessing)(table, response));
408
- let rows = [];
409
- // Filter data to only specified columns if required
410
- if (columns && columns.length) {
411
- for (let i = 0; i < result.length; i++) {
412
- rows[i] = {};
413
- for (let column of columns) {
414
- rows[i][column] = result[i][column];
415
- }
416
- }
389
+ // look up the actual rows based on the ids
390
+ let response = (yield db.allDocs({
391
+ include_docs: true,
392
+ keys: linkVals.map(linkVal => linkVal.id),
393
+ })).rows.map(row => row.doc);
394
+ // group responses by table
395
+ let groups = {}, tables = {};
396
+ for (let row of response) {
397
+ if (!row.tableId) {
398
+ row.tableId = getTableIDFromRowID(row._id);
399
+ }
400
+ const linkedTableId = row.tableId;
401
+ if (groups[linkedTableId] == null) {
402
+ groups[linkedTableId] = [row];
403
+ tables[linkedTableId] = yield db.get(linkedTableId);
417
404
  }
418
405
  else {
419
- rows = result;
406
+ groups[linkedTableId].push(row);
420
407
  }
421
- let headers = Object.keys(rows[0]);
422
- // @ts-ignore
423
- const exporter = exporters[format];
424
- const filename = `export.${format}`;
425
- // send down the file
426
- ctx.attachment(filename);
427
- return (0, fileSystem_1.apiFileReturn)(exporter(headers, rows));
428
- });
429
- }
430
- exports.exportRows = exportRows;
431
- function fetchEnrichedRow(ctx) {
432
- return __awaiter(this, void 0, void 0, function* () {
433
- const db = backend_core_1.context.getAppDB();
434
- const tableId = ctx.params.tableId;
435
- const rowId = ctx.params.rowId;
436
- // need table to work out where links go in row
437
- let [table, row] = yield Promise.all([
438
- db.get(tableId),
439
- (0, utils_2.findRow)(ctx, tableId, rowId),
440
- ]);
441
- // get the link docs
442
- const linkVals = (yield linkRows.getLinkDocuments({
443
- tableId,
444
- rowId,
445
- }));
446
- // look up the actual rows based on the ids
447
- let response = (yield db.allDocs({
448
- include_docs: true,
449
- keys: linkVals.map(linkVal => linkVal.id),
450
- })).rows.map(row => row.doc);
451
- // group responses by table
452
- let groups = {}, tables = {};
453
- for (let row of response) {
454
- if (!row.tableId) {
455
- row.tableId = (0, utils_1.getTableIDFromRowID)(row._id);
456
- }
457
- const linkedTableId = row.tableId;
458
- if (groups[linkedTableId] == null) {
459
- groups[linkedTableId] = [row];
460
- tables[linkedTableId] = yield db.get(linkedTableId);
461
- }
462
- else {
463
- groups[linkedTableId].push(row);
464
- }
465
- }
466
- let linkedRows = [];
467
- for (let [tableId, rows] of Object.entries(groups)) {
468
- // need to include the IDs in these rows for any links they may have
469
- linkedRows = linkedRows.concat(yield (0, rowProcessor_1.outputProcessing)(tables[tableId], rows));
470
- }
471
- // insert the link rows in the correct place throughout the main row
472
- for (let fieldName of Object.keys(table.schema)) {
473
- let field = table.schema[fieldName];
474
- if (field.type === constants_1.FieldTypes.LINK) {
475
- // find the links that pertain to this field, get their indexes
476
- const linkIndexes = linkVals
477
- .filter(link => link.fieldName === fieldName)
478
- .map(link => linkVals.indexOf(link));
479
- // find the rows that the links state are linked to this field
480
- row[fieldName] = linkedRows.filter((linkRow, index) => linkIndexes.includes(index));
481
- }
408
+ }
409
+ let linkedRows = [];
410
+ for (let [tableId, rows] of Object.entries(groups)) {
411
+ // need to include the IDs in these rows for any links they may have
412
+ linkedRows = linkedRows.concat(yield outputProcessing(tables[tableId], rows));
413
+ }
414
+ // insert the link rows in the correct place throughout the main row
415
+ for (let fieldName of Object.keys(table.schema)) {
416
+ let field = table.schema[fieldName];
417
+ if (field.type === FieldTypes.LINK) {
418
+ // find the links that pertain to this field, get their indexes
419
+ const linkIndexes = linkVals
420
+ .filter(link => link.fieldName === fieldName)
421
+ .map(link => linkVals.indexOf(link));
422
+ // find the rows that the links state are linked to this field
423
+ row[fieldName] = linkedRows.filter((linkRow, index) => linkIndexes.includes(index));
482
424
  }
483
- return row;
484
- });
485
- }
486
- exports.fetchEnrichedRow = fetchEnrichedRow;
425
+ }
426
+ return row;
427
+ });