@budibase/server 2.1.40-alpha.4 → 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.ddf1f73a.js → index.2467ba90.js} +324 -324
  4. package/builder/assets/{index.144dddb2.css → index.534f6c29.css} +2 -2
  5. package/builder/index.html +2 -2
  6. package/coverage/clover.xml +3741 -10731
  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} +87 -246
  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 +6987 -19540
  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 +92 -144
  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} +47 -100
  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 -2032
  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 -571
  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 -649
  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,30 +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
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
26
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
27
- };
28
2
  var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
29
3
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
30
4
  return new (P || (P = Promise))(function (resolve, reject) {
@@ -34,19 +8,111 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
34
8
  step((generator = generator.apply(thisArg, _arguments || [])).next());
35
9
  });
36
10
  };
37
- Object.defineProperty(exports, "__esModule", { value: true });
38
- exports.cleanupAttachments = exports.outputProcessing = exports.inputProcessing = exports.coerce = exports.processAutoColumn = void 0;
39
- const linkRows = __importStar(require("../../db/linkedRows"));
40
- const constants_1 = require("../../constants");
41
- const index_1 = require("../index");
42
- const utils_1 = require("./utils");
43
- const constants_2 = require("../../constants");
44
- const backend_core_1 = require("@budibase/backend-core");
45
- const utils_2 = require("../../db/utils");
46
- const map_1 = require("./map");
11
+ const linkRows = require("../../db/linkedRows");
47
12
  const { cloneDeep } = require("lodash/fp");
48
- __exportStar(require("./utils"), exports);
13
+ const { FieldTypes, AutoFieldSubTypes } = require("../../constants");
14
+ const { attachmentsRelativeURL } = require("../index");
15
+ const { processFormulas, fixAutoColumnSubType } = require("./utils");
16
+ const { deleteFiles } = require("../../utilities/fileSystem/utilities");
17
+ const { ObjectStoreBuckets } = require("../../constants");
18
+ const { isProdAppID, getProdAppID, dbExists, } = require("@budibase/backend-core/db");
19
+ const { getAppId } = require("@budibase/backend-core/context");
20
+ const { InternalTables } = require("../../db/utils");
49
21
  const BASE_AUTO_ID = 1;
22
+ /**
23
+ * A map of how we convert various properties in rows to each other based on the row type.
24
+ */
25
+ const TYPE_TRANSFORM_MAP = {
26
+ [FieldTypes.LINK]: {
27
+ "": [],
28
+ [null]: [],
29
+ [undefined]: undefined,
30
+ parse: link => {
31
+ if (Array.isArray(link) && typeof link[0] === "object") {
32
+ return link.map(el => (el && el._id ? el._id : el));
33
+ }
34
+ if (typeof link === "string") {
35
+ return [link];
36
+ }
37
+ return link;
38
+ },
39
+ },
40
+ [FieldTypes.OPTIONS]: {
41
+ "": null,
42
+ [null]: null,
43
+ [undefined]: undefined,
44
+ },
45
+ [FieldTypes.ARRAY]: {
46
+ "": [],
47
+ [null]: [],
48
+ [undefined]: undefined,
49
+ },
50
+ [FieldTypes.STRING]: {
51
+ "": "",
52
+ [null]: "",
53
+ [undefined]: undefined,
54
+ },
55
+ [FieldTypes.BARCODEQR]: {
56
+ "": "",
57
+ [null]: "",
58
+ [undefined]: undefined,
59
+ },
60
+ [FieldTypes.FORMULA]: {
61
+ "": "",
62
+ [null]: "",
63
+ [undefined]: undefined,
64
+ },
65
+ [FieldTypes.LONGFORM]: {
66
+ "": "",
67
+ [null]: "",
68
+ [undefined]: undefined,
69
+ },
70
+ [FieldTypes.NUMBER]: {
71
+ "": null,
72
+ [null]: null,
73
+ [undefined]: undefined,
74
+ parse: n => parseFloat(n),
75
+ },
76
+ [FieldTypes.DATETIME]: {
77
+ "": null,
78
+ [undefined]: undefined,
79
+ [null]: null,
80
+ parse: date => {
81
+ if (date instanceof Date) {
82
+ return date.toISOString();
83
+ }
84
+ return date;
85
+ },
86
+ },
87
+ [FieldTypes.ATTACHMENT]: {
88
+ "": [],
89
+ [null]: [],
90
+ [undefined]: undefined,
91
+ },
92
+ [FieldTypes.BOOLEAN]: {
93
+ "": null,
94
+ [null]: null,
95
+ [undefined]: undefined,
96
+ true: true,
97
+ false: false,
98
+ },
99
+ [FieldTypes.AUTO]: {
100
+ parse: () => undefined,
101
+ },
102
+ [FieldTypes.JSON]: {
103
+ parse: input => {
104
+ try {
105
+ if (input === "") {
106
+ return undefined;
107
+ }
108
+ return JSON.parse(input);
109
+ }
110
+ catch (err) {
111
+ return input;
112
+ }
113
+ },
114
+ },
115
+ };
50
116
  /**
51
117
  * Given the old state of the row and the new one after an update, this will
52
118
  * find the keys that have been removed in the updated row.
@@ -55,13 +121,13 @@ function getRemovedAttachmentKeys(oldRow, row, attachmentKey) {
55
121
  if (!oldRow[attachmentKey]) {
56
122
  return [];
57
123
  }
58
- const oldKeys = oldRow[attachmentKey].map((attachment) => attachment.key);
124
+ const oldKeys = oldRow[attachmentKey].map(attachment => attachment.key);
59
125
  // no attachments in new row, all removed
60
126
  if (!row[attachmentKey]) {
61
127
  return oldKeys;
62
128
  }
63
- const newKeys = row[attachmentKey].map((attachment) => attachment.key);
64
- return oldKeys.filter((key) => newKeys.indexOf(key) === -1);
129
+ const newKeys = row[attachmentKey].map(attachment => attachment.key);
130
+ return oldKeys.filter(key => newKeys.indexOf(key) === -1);
65
131
  }
66
132
  /**
67
133
  * This will update any auto columns that are found on the row/table with the correct information based on
@@ -73,41 +139,41 @@ function getRemovedAttachmentKeys(oldRow, row, attachmentKey) {
73
139
  * @returns {{row: Object, table: Object}} The updated row and table, the table may need to be updated
74
140
  * for automatic ID purposes.
75
141
  */
76
- function processAutoColumn(user, table, row, opts) {
142
+ function processAutoColumn(user, table, row, opts = { reprocessing: false, noAutoRelationships: false }) {
77
143
  let noUser = !user || !user.userId;
78
- let isUserTable = table._id === utils_2.InternalTables.USER_METADATA;
144
+ let isUserTable = table._id === InternalTables.USER_METADATA;
79
145
  let now = new Date().toISOString();
80
146
  // if a row doesn't have a revision then it doesn't exist yet
81
147
  const creating = !row._rev;
82
148
  // check its not user table, or whether any of the processing options have been disabled
83
- const shouldUpdateUserFields = !isUserTable && !(opts === null || opts === void 0 ? void 0 : opts.reprocessing) && !(opts === null || opts === void 0 ? void 0 : opts.noAutoRelationships) && !noUser;
149
+ const shouldUpdateUserFields = !isUserTable && !opts.reprocessing && !opts.noAutoRelationships && !noUser;
84
150
  for (let [key, schema] of Object.entries(table.schema)) {
85
151
  if (!schema.autocolumn) {
86
152
  continue;
87
153
  }
88
154
  if (!schema.subtype) {
89
- schema = (0, utils_1.fixAutoColumnSubType)(schema);
155
+ schema = fixAutoColumnSubType(schema);
90
156
  }
91
157
  switch (schema.subtype) {
92
- case constants_1.AutoFieldSubTypes.CREATED_BY:
93
- if (creating && shouldUpdateUserFields && user) {
158
+ case AutoFieldSubTypes.CREATED_BY:
159
+ if (creating && shouldUpdateUserFields) {
94
160
  row[key] = [user.userId];
95
161
  }
96
162
  break;
97
- case constants_1.AutoFieldSubTypes.CREATED_AT:
163
+ case AutoFieldSubTypes.CREATED_AT:
98
164
  if (creating) {
99
165
  row[key] = now;
100
166
  }
101
167
  break;
102
- case constants_1.AutoFieldSubTypes.UPDATED_BY:
103
- if (shouldUpdateUserFields && user) {
168
+ case AutoFieldSubTypes.UPDATED_BY:
169
+ if (shouldUpdateUserFields) {
104
170
  row[key] = [user.userId];
105
171
  }
106
172
  break;
107
- case constants_1.AutoFieldSubTypes.UPDATED_AT:
173
+ case AutoFieldSubTypes.UPDATED_AT:
108
174
  row[key] = now;
109
175
  break;
110
- case constants_1.AutoFieldSubTypes.AUTO_ID:
176
+ case AutoFieldSubTypes.AUTO_ID:
111
177
  if (creating) {
112
178
  schema.lastID = !schema.lastID ? BASE_AUTO_ID : schema.lastID + 1;
113
179
  row[key] = schema.lastID;
@@ -118,29 +184,28 @@ function processAutoColumn(user, table, row, opts) {
118
184
  return { table, row };
119
185
  }
120
186
  exports.processAutoColumn = processAutoColumn;
187
+ exports.fixAutoColumnSubType = fixAutoColumnSubType;
188
+ exports.processFormulas = processFormulas;
121
189
  /**
122
190
  * This will coerce a value to the correct types based on the type transform map
123
191
  * @param {object} row The value to coerce
124
192
  * @param {object} type The type fo coerce to
125
193
  * @returns {object} The coerced value
126
194
  */
127
- function coerce(row, type) {
195
+ exports.coerce = (row, type) => {
128
196
  // no coercion specified for type, skip it
129
- if (!map_1.TYPE_TRANSFORM_MAP[type]) {
197
+ if (!TYPE_TRANSFORM_MAP[type]) {
130
198
  return row;
131
199
  }
132
200
  // eslint-disable-next-line no-prototype-builtins
133
- if (map_1.TYPE_TRANSFORM_MAP[type].hasOwnProperty(row)) {
134
- // @ts-ignore
135
- return map_1.TYPE_TRANSFORM_MAP[type][row];
201
+ if (TYPE_TRANSFORM_MAP[type].hasOwnProperty(row)) {
202
+ return TYPE_TRANSFORM_MAP[type][row];
136
203
  }
137
- else if (map_1.TYPE_TRANSFORM_MAP[type].parse) {
138
- // @ts-ignore
139
- return map_1.TYPE_TRANSFORM_MAP[type].parse(row);
204
+ else if (TYPE_TRANSFORM_MAP[type].parse) {
205
+ return TYPE_TRANSFORM_MAP[type].parse(row);
140
206
  }
141
207
  return row;
142
- }
143
- exports.coerce = coerce;
208
+ };
144
209
  /**
145
210
  * Given an input route this function will apply all the necessary pre-processing to it, such as coercion
146
211
  * of column values or adding auto-column values.
@@ -150,7 +215,7 @@ exports.coerce = coerce;
150
215
  * @param {object} opts some input processing options (like disabling auto-column relationships).
151
216
  * @returns {object} the row which has been prepared to be written to the DB.
152
217
  */
153
- function inputProcessing(user, table, row, opts) {
218
+ exports.inputProcessing = (user = {}, table, row, opts = { noAutoRelationships: false }) => {
154
219
  let clonedRow = cloneDeep(row);
155
220
  // need to copy the table so it can be differenced on way out
156
221
  const copiedTable = cloneDeep(table);
@@ -165,12 +230,12 @@ function inputProcessing(user, table, row, opts) {
165
230
  continue;
166
231
  }
167
232
  // remove any formula values, they are to be generated
168
- if (field.type === constants_1.FieldTypes.FORMULA) {
233
+ if (field.type === FieldTypes.FORMULA) {
169
234
  delete clonedRow[key];
170
235
  }
171
236
  // otherwise coerce what is there to correct types
172
237
  else {
173
- clonedRow[key] = coerce(value, field.type);
238
+ clonedRow[key] = exports.coerce(value, field.type);
174
239
  }
175
240
  }
176
241
  if (!clonedRow._id || !clonedRow._rev) {
@@ -179,8 +244,7 @@ function inputProcessing(user, table, row, opts) {
179
244
  }
180
245
  // handle auto columns - this returns an object like {table, row}
181
246
  return processAutoColumn(user, copiedTable, clonedRow, opts);
182
- }
183
- exports.inputProcessing = inputProcessing;
247
+ };
184
248
  /**
185
249
  * This function enriches the input rows with anything they are supposed to contain, for example
186
250
  * link records or attachment links.
@@ -190,37 +254,34 @@ exports.inputProcessing = inputProcessing;
190
254
  * @param {object} opts used to set some options for the output, such as disabling relationship squashing.
191
255
  * @returns {object[]|object} the enriched rows will be returned.
192
256
  */
193
- function outputProcessing(table, rows, opts = { squash: true }) {
194
- return __awaiter(this, void 0, void 0, function* () {
195
- let wasArray = true;
196
- if (!(rows instanceof Array)) {
197
- rows = [rows];
198
- wasArray = false;
199
- }
200
- // attach any linked row information
201
- let enriched = yield linkRows.attachFullLinkedDocs(table, rows);
202
- // process formulas
203
- enriched = (0, utils_1.processFormulas)(table, enriched, { dynamic: true });
204
- // update the attachments URL depending on hosting
205
- for (let [property, column] of Object.entries(table.schema)) {
206
- if (column.type === constants_1.FieldTypes.ATTACHMENT) {
207
- for (let row of enriched) {
208
- if (row[property] == null || !Array.isArray(row[property])) {
209
- continue;
210
- }
211
- row[property].forEach((attachment) => {
212
- attachment.url = (0, index_1.attachmentsRelativeURL)(attachment.key);
213
- });
257
+ exports.outputProcessing = (table, rows, opts = { squash: true }) => __awaiter(void 0, void 0, void 0, function* () {
258
+ let wasArray = true;
259
+ if (!(rows instanceof Array)) {
260
+ rows = [rows];
261
+ wasArray = false;
262
+ }
263
+ // attach any linked row information
264
+ let enriched = yield linkRows.attachFullLinkedDocs(table, rows);
265
+ // process formulas
266
+ enriched = processFormulas(table, enriched, { dynamic: true });
267
+ // update the attachments URL depending on hosting
268
+ for (let [property, column] of Object.entries(table.schema)) {
269
+ if (column.type === FieldTypes.ATTACHMENT) {
270
+ for (let row of enriched) {
271
+ if (row[property] == null || !Array.isArray(row[property])) {
272
+ continue;
214
273
  }
274
+ row[property].forEach(attachment => {
275
+ attachment.url = attachmentsRelativeURL(attachment.key);
276
+ });
215
277
  }
216
278
  }
217
- if (opts.squash) {
218
- enriched = yield linkRows.squashLinksToPrimaryDisplay(table, enriched);
219
- }
220
- return wasArray ? enriched : enriched[0];
221
- });
222
- }
223
- exports.outputProcessing = outputProcessing;
279
+ }
280
+ if (opts.squash) {
281
+ enriched = yield linkRows.squashLinksToPrimaryDisplay(table, enriched);
282
+ }
283
+ return wasArray ? enriched : enriched[0];
284
+ });
224
285
  /**
225
286
  * Clean up any attachments that were attached to a row.
226
287
  * @param {object} table The table from which a row is being removed.
@@ -231,46 +292,43 @@ exports.outputProcessing = outputProcessing;
231
292
  * deleted attachment columns.
232
293
  * @return {Promise<void>} When all attachments have been removed this will return.
233
294
  */
234
- function cleanupAttachments(table, { row, rows, oldRow, oldTable, }) {
235
- return __awaiter(this, void 0, void 0, function* () {
236
- const appId = backend_core_1.context.getAppId();
237
- if (!backend_core_1.db.isProdAppID(appId)) {
238
- const prodAppId = backend_core_1.db.getProdAppID(appId);
239
- // if prod exists, then don't allow deleting
240
- const exists = yield backend_core_1.db.dbExists(prodAppId);
241
- if (exists) {
242
- return;
243
- }
295
+ exports.cleanupAttachments = (table, { row, rows, oldRow, oldTable }) => __awaiter(void 0, void 0, void 0, function* () {
296
+ const appId = getAppId();
297
+ if (!isProdAppID(appId)) {
298
+ const prodAppId = getProdAppID(appId);
299
+ // if prod exists, then don't allow deleting
300
+ const exists = yield dbExists(prodAppId);
301
+ if (exists) {
302
+ return;
244
303
  }
245
- let files = [];
246
- function addFiles(row, key) {
247
- if (row[key]) {
248
- files = files.concat(row[key].map((attachment) => attachment.key));
249
- }
304
+ }
305
+ let files = [];
306
+ function addFiles(row, key) {
307
+ if (row[key]) {
308
+ files = files.concat(row[key].map(attachment => attachment.key));
250
309
  }
251
- const schemaToUse = oldTable ? oldTable.schema : table.schema;
252
- for (let [key, schema] of Object.entries(schemaToUse)) {
253
- if (schema.type !== constants_1.FieldTypes.ATTACHMENT) {
254
- continue;
255
- }
256
- // old table had this column, new table doesn't - delete it
257
- if (rows && oldTable && !table.schema[key]) {
258
- rows.forEach(row => addFiles(row, key));
259
- }
260
- else if (oldRow && row) {
261
- // if updating, need to manage the differences
262
- files = files.concat(getRemovedAttachmentKeys(oldRow, row, key));
263
- }
264
- else if (row) {
265
- addFiles(row, key);
266
- }
267
- else if (rows) {
268
- rows.forEach(row => addFiles(row, key));
269
- }
310
+ }
311
+ const schemaToUse = oldTable ? oldTable.schema : table.schema;
312
+ for (let [key, schema] of Object.entries(schemaToUse)) {
313
+ if (schema.type !== FieldTypes.ATTACHMENT) {
314
+ continue;
270
315
  }
271
- if (files.length > 0) {
272
- return backend_core_1.objectStore.deleteFiles(constants_2.ObjectStoreBuckets.APPS, files);
316
+ // old table had this column, new table doesn't - delete it
317
+ if (oldTable && !table.schema[key]) {
318
+ rows.forEach(row => addFiles(row, key));
273
319
  }
274
- });
275
- }
276
- exports.cleanupAttachments = cleanupAttachments;
320
+ else if (oldRow && row) {
321
+ // if updating, need to manage the differences
322
+ files = files.concat(getRemovedAttachmentKeys(oldRow, row, key));
323
+ }
324
+ else if (row) {
325
+ addFiles(row, key);
326
+ }
327
+ else if (rows) {
328
+ rows.forEach(row => addFiles(row, key));
329
+ }
330
+ }
331
+ if (files.length > 0) {
332
+ return deleteFiles(ObjectStoreBuckets.APPS, files);
333
+ }
334
+ });
@@ -1,75 +1,67 @@
1
1
  "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.processDates = exports.processFormulas = exports.fixAutoColumnSubType = void 0;
4
- const constants_1 = require("../../constants");
5
- const string_templates_1 = require("@budibase/string-templates");
2
+ const { FieldTypes, FormulaTypes, AutoFieldDefaultNames, AutoFieldSubTypes, } = require("../../constants");
3
+ const { processStringSync } = require("@budibase/string-templates");
6
4
  /**
7
5
  * If the subtype has been lost for any reason this works out what
8
6
  * subtype the auto column should be.
9
7
  */
10
- function fixAutoColumnSubType(column) {
8
+ exports.fixAutoColumnSubType = column => {
11
9
  if (!column.autocolumn || !column.name || column.subtype) {
12
10
  return column;
13
11
  }
14
12
  // the columns which get auto generated
15
- if (column.name.endsWith(constants_1.AutoFieldDefaultNames.CREATED_BY)) {
16
- column.subtype = constants_1.AutoFieldSubTypes.CREATED_BY;
13
+ if (column.name.endsWith(AutoFieldDefaultNames.CREATED_BY)) {
14
+ column.subtype = AutoFieldSubTypes.CREATED_BY;
17
15
  }
18
- else if (column.name.endsWith(constants_1.AutoFieldDefaultNames.UPDATED_BY)) {
19
- column.subtype = constants_1.AutoFieldSubTypes.UPDATED_BY;
16
+ else if (column.name.endsWith(AutoFieldDefaultNames.UPDATED_BY)) {
17
+ column.subtype = AutoFieldSubTypes.UPDATED_BY;
20
18
  }
21
- else if (column.name.endsWith(constants_1.AutoFieldDefaultNames.CREATED_AT)) {
22
- column.subtype = constants_1.AutoFieldSubTypes.CREATED_AT;
19
+ else if (column.name.endsWith(AutoFieldDefaultNames.CREATED_AT)) {
20
+ column.subtype = AutoFieldSubTypes.CREATED_AT;
23
21
  }
24
- else if (column.name.endsWith(constants_1.AutoFieldDefaultNames.UPDATED_AT)) {
25
- column.subtype = constants_1.AutoFieldSubTypes.UPDATED_AT;
22
+ else if (column.name.endsWith(AutoFieldDefaultNames.UPDATED_AT)) {
23
+ column.subtype = AutoFieldSubTypes.UPDATED_AT;
26
24
  }
27
- else if (column.name.endsWith(constants_1.AutoFieldDefaultNames.AUTO_ID)) {
28
- column.subtype = constants_1.AutoFieldSubTypes.AUTO_ID;
25
+ else if (column.name.endsWith(AutoFieldDefaultNames.AUTO_ID)) {
26
+ column.subtype = AutoFieldSubTypes.AUTO_ID;
29
27
  }
30
28
  return column;
31
- }
32
- exports.fixAutoColumnSubType = fixAutoColumnSubType;
29
+ };
33
30
  /**
34
31
  * Looks through the rows provided and finds formulas - which it then processes.
35
32
  */
36
- function processFormulas(table, rows, { dynamic, contextRows } = { dynamic: true }) {
33
+ exports.processFormulas = (table, rows, { dynamic, contextRows } = { dynamic: true }) => {
37
34
  const single = !Array.isArray(rows);
38
- let rowArray;
39
35
  if (single) {
40
- rowArray = [rows];
36
+ rows = [rows];
41
37
  contextRows = contextRows ? [contextRows] : contextRows;
42
38
  }
43
- else {
44
- rowArray = rows;
45
- }
46
39
  for (let [column, schema] of Object.entries(table.schema)) {
47
- const isStatic = schema.formulaType === constants_1.FormulaTypes.STATIC;
48
- if (schema.type !== constants_1.FieldTypes.FORMULA ||
40
+ const isStatic = schema.formulaType === FormulaTypes.STATIC;
41
+ if (schema.type !== FieldTypes.FORMULA ||
49
42
  (dynamic && isStatic) ||
50
43
  (!dynamic && !isStatic)) {
51
44
  continue;
52
45
  }
53
46
  // iterate through rows and process formula
54
- for (let i = 0; i < rowArray.length; i++) {
47
+ for (let i = 0; i < rows.length; i++) {
55
48
  if (schema.formula) {
56
- let row = rowArray[i];
49
+ let row = rows[i];
57
50
  let context = contextRows ? contextRows[i] : row;
58
- rowArray[i] = Object.assign(Object.assign({}, row), { [column]: (0, string_templates_1.processStringSync)(schema.formula, context) });
51
+ rows[i] = Object.assign(Object.assign({}, row), { [column]: processStringSync(schema.formula, context) });
59
52
  }
60
53
  }
61
54
  }
62
- return single ? rowArray[0] : rowArray;
63
- }
64
- exports.processFormulas = processFormulas;
55
+ return single ? rows[0] : rows;
56
+ };
65
57
  /**
66
58
  * Processes any date columns and ensures that those without the ignoreTimezones
67
59
  * flag set are parsed as UTC rather than local time.
68
60
  */
69
- function processDates(table, rows) {
61
+ exports.processDates = (table, rows) => {
70
62
  let datesWithTZ = [];
71
63
  for (let [column, schema] of Object.entries(table.schema)) {
72
- if (schema.type !== constants_1.FieldTypes.DATETIME) {
64
+ if (schema.type !== FieldTypes.DATETIME) {
73
65
  continue;
74
66
  }
75
67
  if (!schema.timeOnly && !schema.ignoreTimezones) {
@@ -84,5 +76,4 @@ function processDates(table, rows) {
84
76
  }
85
77
  }
86
78
  return rows;
87
- }
88
- exports.processDates = processDates;
79
+ };
@@ -1,21 +1,18 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- const node_fetch_1 = __importDefault(require("node-fetch"));
6
- const vm2_1 = require("vm2");
2
+ const fetch = require("node-fetch");
3
+ const { VM, VMScript } = require("vm2");
7
4
  const JS_TIMEOUT_MS = 1000;
8
5
  class ScriptRunner {
9
6
  constructor(script, context) {
10
7
  const code = `let fn = () => {\n${script}\n}; results.out = fn();`;
11
- this.vm = new vm2_1.VM({
8
+ this.vm = new VM({
12
9
  timeout: JS_TIMEOUT_MS,
13
10
  });
14
11
  this.results = { out: "" };
15
12
  this.vm.setGlobals(context);
16
- this.vm.setGlobal("fetch", node_fetch_1.default);
13
+ this.vm.setGlobal("fetch", fetch);
17
14
  this.vm.setGlobal("results", this.results);
18
- this.script = new vm2_1.VMScript(code);
15
+ this.script = new VMScript(code);
19
16
  }
20
17
  execute() {
21
18
  this.vm.run(this.script);