@budibase/server 2.1.43-alpha.6 → 2.1.44

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 (809) hide show
  1. package/__mocks__/aws-sdk.ts +0 -14
  2. package/__mocks__/node-fetch.ts +1 -5
  3. package/builder/assets/index.2d05742a.js +1021 -0
  4. package/builder/assets/index.534f6c29.css +6 -0
  5. package/builder/index.html +2 -2
  6. package/coverage/clover.xml +3857 -10913
  7. package/coverage/coverage-final.json +118 -267
  8. package/coverage/lcov-report/{src/api/controllers/apikeys.ts.html → api/controllers/apikeys.js.html} +30 -30
  9. package/coverage/lcov-report/{src/api/controllers/automation.ts.html → api/controllers/automation.js.html} +99 -99
  10. package/coverage/lcov-report/{src/api/controllers/cloud.ts.html → api/controllers/cloud.js.html} +58 -58
  11. package/coverage/lcov-report/{src/api/controllers/datasource.ts.html → api/controllers/datasource.js.html} +107 -287
  12. package/coverage/lcov-report/{src/api/controllers/dev.ts.html → api/controllers/dev.js.html} +87 -69
  13. package/coverage/lcov-report/api/controllers/index.html +326 -0
  14. package/coverage/lcov-report/{src/middleware/selfhost.ts.html → api/controllers/integration.js.html} +28 -22
  15. package/coverage/lcov-report/{src/api/controllers/layout.ts.html → api/controllers/layout.js.html} +31 -31
  16. package/coverage/lcov-report/{src/api/controllers/metadata.ts.html → api/controllers/metadata.js.html} +30 -33
  17. package/coverage/lcov-report/{src/api/controllers/migrations.ts.html → api/controllers/migrations.js.html} +17 -20
  18. package/coverage/lcov-report/{src/api/controllers/permission.ts.html → api/controllers/permission.js.html} +79 -88
  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} +25 -25
  21. package/coverage/lcov-report/{src/api/controllers/role.ts.html → api/controllers/role.js.html} +60 -48
  22. package/coverage/lcov-report/{src/api/controllers/routing.ts.html → api/controllers/routing.js.html} +58 -67
  23. package/coverage/lcov-report/{src/api/controllers/row/external.ts.html → api/controllers/row/external.js.html} +111 -162
  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} +121 -163
  26. package/coverage/lcov-report/{src/api/controllers/row/internalSearch.ts.html → api/controllers/row/internalSearch.js.html} +117 -189
  27. package/coverage/lcov-report/{src/api/controllers/row/staticFormula.ts.html → api/controllers/row/staticFormula.js.html} +58 -73
  28. package/coverage/lcov-report/{src/api/controllers/row/utils.ts.html → api/controllers/row/utils.js.html} +58 -88
  29. package/coverage/lcov-report/{src/api/controllers/script.ts.html → api/controllers/script.js.html} +16 -19
  30. package/coverage/lcov-report/{src/api/controllers/table/bulkFormula.ts.html → api/controllers/table/bulkFormula.js.html} +62 -104
  31. package/coverage/lcov-report/{src/api/controllers/table/external.ts.html → api/controllers/table/external.js.html} +111 -204
  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} +49 -58
  34. package/coverage/lcov-report/{src/api/controllers/templates.ts.html → api/controllers/templates.js.html} +29 -38
  35. package/coverage/lcov-report/{src/api/controllers/user.ts.html → api/controllers/user.js.html} +99 -93
  36. package/coverage/lcov-report/{src/api/controllers/view/exporters.ts.html → api/controllers/view/exporters.js.html} +16 -22
  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} +64 -91
  39. package/coverage/lcov-report/{src/api/controllers/view/utils.ts.html → api/controllers/view/utils.js.html} +54 -72
  40. package/coverage/lcov-report/{src/api/controllers/view/viewBuilder.ts.html → api/controllers/view/viewBuilder.js.html} +36 -78
  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} +76 -55
  43. package/coverage/lcov-report/{src/middleware/utils.ts.html → api/routes/analytics.js.html} +19 -19
  44. package/coverage/lcov-report/api/routes/apikeys.js.html +121 -0
  45. package/coverage/lcov-report/{src/api/routes/automation.ts.html → api/routes/automation.js.html} +47 -53
  46. package/coverage/lcov-report/{src/api/routes/backup.ts.html → api/routes/cloud.js.html} +28 -28
  47. package/coverage/lcov-report/{src/api/routes/component.ts.html → api/routes/component.js.html} +24 -24
  48. package/coverage/lcov-report/{src/definitions/datasource.ts.html → api/routes/datasource.js.html} +64 -61
  49. package/coverage/lcov-report/{src/api/routes/cloud.ts.html → api/routes/deploy.js.html} +28 -31
  50. package/coverage/lcov-report/{src/automations/index.ts.html → api/routes/dev.js.html} +46 -46
  51. package/coverage/lcov-report/{src/api → api}/routes/index.html +47 -167
  52. package/coverage/lcov-report/api/routes/integration.js.html +121 -0
  53. package/coverage/lcov-report/{src/db/index.ts.html → api/routes/layout.js.html} +28 -28
  54. package/coverage/lcov-report/{src/api/routes/metadata.ts.html → api/routes/metadata.js.html} +31 -31
  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} +31 -55
  57. package/coverage/lcov-report/{src/api/routes/query.ts.html → api/routes/query.js.html} +50 -41
  58. package/coverage/lcov-report/api/routes/role.js.html +130 -0
  59. package/coverage/lcov-report/{src/api/routes/routing.ts.html → api/routes/routing.js.html} +24 -24
  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} +41 -32
  63. package/coverage/lcov-report/{src/api/routes/templates.ts.html → api/routes/templates.js.html} +25 -25
  64. package/coverage/lcov-report/{src/api/routes/user.ts.html → api/routes/user.js.html} +41 -35
  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} +98 -86
  67. package/coverage/lcov-report/{src/api/routes/view.ts.html → api/routes/view.js.html} +36 -45
  68. package/coverage/lcov-report/{src/automations/actions.ts.html → automations/actions.js.html} +60 -69
  69. package/coverage/lcov-report/{src/automations/automationUtils.ts.html → automations/automationUtils.js.html} +33 -36
  70. package/coverage/lcov-report/{src/automations/bullboard.ts.html → automations/bullboard.js.html} +42 -39
  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} +30 -45
  74. package/coverage/lcov-report/{src/automations/steps/delay.ts.html → automations/steps/delay.js.html} +19 -34
  75. package/coverage/lcov-report/{src/automations/steps/discord.ts.html → automations/steps/discord.js.html} +28 -43
  76. package/coverage/lcov-report/{src/automations/steps/executeQuery.ts.html → automations/steps/executeQuery.js.html} +30 -45
  77. package/coverage/lcov-report/{src/automations/steps/executeScript.ts.html → automations/steps/executeScript.js.html} +28 -58
  78. package/coverage/lcov-report/{src/automations/steps/filter.ts.html → automations/steps/filter.js.html} +30 -39
  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} +23 -38
  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} +39 -54
  83. package/coverage/lcov-report/{src/automations/steps/queryRows.ts.html → automations/steps/queryRows.js.html} +66 -102
  84. package/coverage/lcov-report/{src/automations/steps/sendSmtpEmail.ts.html → automations/steps/sendSmtpEmail.js.html} +25 -40
  85. package/coverage/lcov-report/{src/automations/steps/serverLog.ts.html → automations/steps/serverLog.js.html} +22 -40
  86. package/coverage/lcov-report/{src/automations/steps/slack.ts.html → automations/steps/slack.js.html} +23 -38
  87. package/coverage/lcov-report/{src/automations/steps/updateRow.ts.html → automations/steps/updateRow.js.html} +25 -40
  88. package/coverage/lcov-report/{src/automations/steps/utils.ts.html → automations/steps/utils.js.html} +27 -45
  89. package/coverage/lcov-report/{src/automations/steps/zapier.ts.html → automations/steps/zapier.js.html} +23 -41
  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/api/routes/layout.ts.html → automations/triggerInfo/index.js.html} +26 -29
  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} +66 -78
  99. package/coverage/lcov-report/{src/constants → constants}/index.html +26 -26
  100. package/coverage/lcov-report/{src/integrations/dynamodb.ts.html → constants/index.js.html} +227 -263
  101. package/coverage/lcov-report/{src/constants/layouts.ts.html → constants/layouts.js.html} +36 -18
  102. package/coverage/lcov-report/{src/constants/screens.ts.html → constants/screens.js.html} +58 -64
  103. package/coverage/lcov-report/{src/db/inMemoryView.ts.html → db/inMemoryView.js.html} +29 -47
  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} +33 -33
  106. package/coverage/lcov-report/{src/db/linkedRows/LinkController.ts.html → db/linkedRows/LinkController.js.html} +160 -97
  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} +78 -93
  109. package/coverage/lcov-report/{src/db/linkedRows/linkUtils.ts.html → db/linkedRows/linkUtils.js.html} +56 -83
  110. package/coverage/lcov-report/{src/db/newid.ts.html → db/newid.js.html} +14 -14
  111. package/coverage/lcov-report/{src/db/utils.ts.html → db/utils.js.html} +211 -163
  112. package/coverage/lcov-report/{src/events/AutomationEmitter.ts.html → events/AutomationEmitter.js.html} +25 -40
  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} +29 -26
  115. package/coverage/lcov-report/{src/api/routes/dev.ts.html → events/utils.js.html} +69 -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} +30 -33
  120. package/coverage/lcov-report/{src/middleware/builder.ts.html → middleware/builder.js.html} +40 -46
  121. package/coverage/lcov-report/{src/middleware/currentapp.ts.html → middleware/currentapp.js.html} +72 -81
  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} +27 -27
  125. package/coverage/lcov-report/{src/middleware/resourceId.ts.html → middleware/resourceId.js.html} +45 -60
  126. package/coverage/lcov-report/{src/tests/utilities/index.ts.html → middleware/selfhost.js.html} +30 -33
  127. package/coverage/lcov-report/{src/events/index.ts.html → middleware/utils.js.html} +24 -18
  128. package/coverage/lcov-report/{src/utilities/budibaseDir.ts.html → utilities/budibaseDir.js.html} +14 -14
  129. package/coverage/lcov-report/{src/utilities/centralPath.ts.html → utilities/centralPath.js.html} +16 -16
  130. package/coverage/lcov-report/{src/utilities/csvParser.ts.html → utilities/csvParser.js.html} +59 -107
  131. package/coverage/lcov-report/{src/utilities/global.ts.html → utilities/global.js.html} +82 -115
  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} +74 -98
  134. package/coverage/lcov-report/{src/utilities/plugins.ts.html → utilities/plugins.js.html} +22 -25
  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/controllers/public/mapping/tables.ts.html → utilities/routing/index.js.html} +43 -46
  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} +359 -128
  141. package/coverage/lcov-report/{src/utilities/rowProcessor/utils.ts.html → utilities/rowProcessor/utils.js.html} +42 -54
  142. package/coverage/lcov-report/{src/utilities/scriptRunner.ts.html → utilities/scriptRunner.js.html} +19 -31
  143. package/coverage/lcov-report/{src/utilities/security.ts.html → utilities/security.js.html} +78 -60
  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} +48 -36
  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} +40 -34
  149. package/coverage/lcov-report/{src/utilities/workerRequests.ts.html → utilities/workerRequests.js.html} +112 -127
  150. package/coverage/lcov.info +7069 -19757
  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 -539
  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/microsoftSqlServer.js +3 -8
  283. package/dist/integrations/oracle.js +1 -8
  284. package/dist/integrations/postgres.js +3 -6
  285. package/dist/integrations/s3.js +1 -157
  286. package/dist/integrations/tests/TestConfiguration.js +1 -0
  287. package/dist/middleware/appInfo.js +9 -14
  288. package/dist/middleware/authorized.js +21 -22
  289. package/dist/middleware/builder.js +40 -41
  290. package/dist/middleware/currentapp.js +37 -39
  291. package/dist/middleware/joi-validator.js +10 -17
  292. package/dist/middleware/publicApi.js +6 -5
  293. package/dist/middleware/resourceId.js +9 -16
  294. package/dist/middleware/selfhost.js +4 -5
  295. package/dist/middleware/utils.js +2 -5
  296. package/dist/migrations/functions/appUrls.js +2 -2
  297. package/dist/migrations/functions/backfill/global.js +1 -1
  298. package/dist/migrations/functions/usageQuotas/syncApps.js +4 -3
  299. package/dist/migrations/functions/usageQuotas/syncRows.js +4 -3
  300. package/dist/migrations/functions/userEmailViewCasing.js +3 -3
  301. package/dist/migrations/index.js +0 -5
  302. package/dist/package.json +45 -11
  303. package/dist/sdk/app/backups/exports.js +2 -1
  304. package/dist/sdk/app/backups/imports.js +3 -2
  305. package/dist/sdk/app/tables/index.js +5 -5
  306. package/dist/startup.js +10 -10
  307. package/dist/tests/utilities/TestConfiguration.js +87 -111
  308. package/dist/tests/utilities/controllers.js +15 -38
  309. package/dist/tests/utilities/structures.js +53 -72
  310. package/dist/threads/automation.js +27 -49
  311. package/dist/threads/query.js +19 -17
  312. package/dist/threads/utils.js +8 -33
  313. package/dist/tsconfig.build.tsbuildinfo +1 -1
  314. package/dist/utilities/budibaseDir.js +2 -4
  315. package/dist/utilities/centralPath.js +7 -14
  316. package/dist/utilities/csvParser.js +21 -27
  317. package/dist/utilities/fileSystem/clientLibrary.js +73 -87
  318. package/dist/utilities/fileSystem/index.js +175 -203
  319. package/dist/utilities/fileSystem/processor.js +3 -8
  320. package/dist/utilities/fileSystem/utilities.js +22 -0
  321. package/dist/utilities/global.js +66 -87
  322. package/dist/utilities/index.js +75 -102
  323. package/dist/utilities/plugins.js +9 -15
  324. package/dist/utilities/queue/inMemoryQueue.js +126 -0
  325. package/dist/utilities/redis.js +65 -100
  326. package/dist/utilities/routing/index.js +23 -27
  327. package/dist/utilities/rowProcessor/index.js +191 -133
  328. package/dist/utilities/rowProcessor/utils.js +26 -35
  329. package/dist/utilities/scriptRunner.js +5 -8
  330. package/dist/utilities/security.js +35 -39
  331. package/dist/utilities/usageQuota/rows.js +49 -56
  332. package/dist/utilities/users.js +28 -31
  333. package/dist/utilities/workerRequests.js +82 -115
  334. package/dist/watch.js +2 -1
  335. package/package.json +46 -12
  336. package/scripts/exportAppTemplate.js +2 -2
  337. package/scripts/integrations/mssql/data/setup.sql +3 -3
  338. package/{src/tests/jestSetup.ts → scripts/jestSetup.js} +2 -11
  339. package/scripts/localdomain.js +6 -34
  340. package/src/api/controllers/{apikeys.ts → apikeys.js} +10 -10
  341. package/src/api/controllers/application.ts +42 -56
  342. package/src/api/controllers/auth.ts +3 -4
  343. package/src/api/controllers/{automation.ts → automation.js} +48 -48
  344. package/src/api/controllers/{cloud.ts → cloud.js} +24 -24
  345. package/src/api/controllers/component.ts +1 -2
  346. package/src/api/controllers/{datasource.ts → datasource.js} +49 -109
  347. package/src/api/controllers/deploy/{Deployment.ts → Deployment.js} +10 -13
  348. package/src/api/controllers/deploy/index.ts +25 -13
  349. package/src/api/controllers/{dev.ts → dev.js} +37 -31
  350. package/src/api/controllers/integration.js +14 -0
  351. package/src/api/controllers/{layout.ts → layout.js} +8 -8
  352. package/src/api/controllers/{metadata.ts → metadata.js} +10 -11
  353. package/src/api/controllers/migrations.js +13 -0
  354. package/src/api/controllers/{permission.ts → permission.js} +46 -49
  355. package/src/api/controllers/plugin/index.ts +5 -4
  356. package/src/api/controllers/plugin/utils.ts +5 -3
  357. package/src/api/controllers/public/applications.ts +9 -15
  358. package/src/api/controllers/public/rows.ts +1 -1
  359. package/src/api/controllers/public/tables.ts +2 -2
  360. package/src/api/controllers/public/utils.ts +2 -2
  361. package/src/api/controllers/query/import/index.ts +3 -2
  362. package/src/api/controllers/query/index.ts +14 -11
  363. package/src/api/controllers/query/{validation.ts → validation.js} +7 -7
  364. package/src/api/controllers/{role.ts → role.js} +25 -21
  365. package/src/api/controllers/{routing.ts → routing.js} +34 -37
  366. package/src/api/controllers/row/ExternalRequest.ts +624 -605
  367. package/src/api/controllers/row/{external.ts → external.js} +62 -79
  368. package/src/api/controllers/row/index.ts +11 -19
  369. package/src/api/controllers/row/{internal.ts → internal.js} +73 -87
  370. package/src/api/controllers/row/{internalSearch.ts → internalSearch.js} +68 -92
  371. package/src/api/controllers/row/{staticFormula.ts → staticFormula.js} +25 -30
  372. package/src/api/controllers/row/{utils.ts → utils.js} +22 -32
  373. package/src/api/controllers/screen.ts +6 -10
  374. package/src/api/controllers/script.js +11 -0
  375. package/src/api/controllers/static/index.ts +16 -14
  376. package/src/api/controllers/table/{bulkFormula.ts → bulkFormula.js} +25 -39
  377. package/src/api/controllers/table/{external.ts → external.js} +55 -86
  378. package/src/api/controllers/table/{index.ts → index.js} +18 -21
  379. package/src/api/controllers/table/internal.ts +6 -5
  380. package/src/api/controllers/table/utils.ts +21 -26
  381. package/src/api/controllers/{templates.ts → templates.js} +7 -10
  382. package/src/api/controllers/{user.ts → user.js} +49 -47
  383. package/src/api/controllers/view/{exporters.ts → exporters.js} +3 -5
  384. package/src/api/controllers/view/{index.ts → index.js} +27 -36
  385. package/src/api/controllers/view/{utils.ts → utils.js} +20 -26
  386. package/src/api/controllers/view/{viewBuilder.ts → viewBuilder.js} +11 -25
  387. package/src/api/controllers/webhook.ts +1 -1
  388. package/src/api/{index.ts → index.js} +22 -15
  389. package/src/api/routes/analytics.js +9 -0
  390. package/src/api/routes/apikeys.js +12 -0
  391. package/src/api/routes/application.ts +9 -17
  392. package/src/api/routes/auth.ts +2 -2
  393. package/src/api/routes/automation.js +85 -0
  394. package/src/api/routes/backup.ts +4 -8
  395. package/src/api/routes/cloud.js +14 -0
  396. package/src/api/routes/component.js +14 -0
  397. package/src/api/routes/datasource.js +51 -0
  398. package/src/api/routes/deploy.js +17 -0
  399. package/src/api/routes/dev.js +26 -0
  400. package/src/api/routes/integration.js +12 -0
  401. package/src/api/routes/layout.js +16 -0
  402. package/src/api/routes/{metadata.ts → metadata.js} +13 -13
  403. package/src/api/routes/migrations.js +14 -0
  404. package/src/api/routes/permission.js +33 -0
  405. package/src/api/routes/plugin.ts +6 -14
  406. package/src/api/routes/public/index.ts +14 -11
  407. package/src/api/routes/public/tests/compare.spec.js +1 -1
  408. package/src/api/routes/{query.ts → query.js} +22 -19
  409. package/src/api/routes/role.js +15 -0
  410. package/src/api/routes/routing.js +14 -0
  411. package/src/api/routes/row.ts +15 -13
  412. package/src/api/routes/screen.js +18 -0
  413. package/src/api/routes/script.js +10 -0
  414. package/src/api/routes/static.ts +10 -7
  415. package/src/api/routes/{table.ts → table.js} +13 -10
  416. package/src/api/routes/templates.js +16 -0
  417. package/src/api/routes/tests/analytics.spec.js +1 -1
  418. package/src/api/routes/tests/backup.spec.js +1 -9
  419. package/src/api/routes/tests/deployment.spec.ts +1 -1
  420. package/src/api/routes/tests/permissions.spec.js +1 -2
  421. package/src/api/routes/tests/query.spec.js +10 -15
  422. package/src/api/routes/tests/role.spec.js +9 -7
  423. package/src/api/routes/tests/routing.spec.js +1 -2
  424. package/src/api/routes/tests/row.spec.js +4 -3
  425. package/src/api/routes/tests/static.spec.js +2 -2
  426. package/src/api/routes/tests/table.spec.js +36 -40
  427. package/src/api/routes/tests/user.spec.js +1 -2
  428. package/src/api/routes/tests/utilities/TestFunctions.ts +8 -6
  429. package/src/api/routes/tests/utilities/{index.ts → index.js} +12 -12
  430. package/src/api/routes/tests/view.spec.js +3 -3
  431. package/src/api/routes/user.js +53 -0
  432. package/src/api/routes/utils/{validators.ts → validators.js} +37 -33
  433. package/src/api/routes/view.js +31 -0
  434. package/src/api/routes/webhook.ts +2 -2
  435. package/src/app.ts +14 -15
  436. package/src/automations/{actions.ts → actions.js} +23 -26
  437. package/src/automations/{automationUtils.ts → automationUtils.js} +12 -13
  438. package/src/automations/bullboard.js +39 -0
  439. package/src/automations/index.js +29 -0
  440. package/src/automations/steps/{bash.ts → bash.js} +8 -13
  441. package/src/automations/steps/createRow.ts +3 -8
  442. package/src/automations/steps/{delay.ts → delay.js} +4 -9
  443. package/src/automations/steps/deleteRow.ts +3 -8
  444. package/src/automations/steps/{discord.ts → discord.js} +5 -10
  445. package/src/automations/steps/{executeQuery.ts → executeQuery.js} +7 -12
  446. package/src/automations/steps/{executeScript.ts → executeScript.js} +7 -17
  447. package/src/automations/steps/{filter.ts → filter.js} +9 -12
  448. package/src/automations/steps/{integromat.ts → integromat.js} +5 -10
  449. package/src/automations/steps/{loop.ts → loop.js} +2 -4
  450. package/src/automations/steps/{outgoingWebhook.ts → outgoingWebhook.js} +13 -18
  451. package/src/automations/steps/{queryRows.ts → queryRows.js} +36 -48
  452. package/src/automations/steps/{sendSmtpEmail.ts → sendSmtpEmail.js} +5 -10
  453. package/src/automations/steps/{serverLog.ts → serverLog.js} +3 -9
  454. package/src/automations/steps/{slack.ts → slack.js} +5 -10
  455. package/src/automations/steps/{updateRow.ts → updateRow.js} +7 -12
  456. package/src/automations/steps/{utils.ts → utils.js} +4 -10
  457. package/src/automations/steps/{zapier.ts → zapier.js} +5 -11
  458. package/src/automations/tests/updateRow.spec.js +1 -0
  459. package/src/automations/tests/utilities/index.js +51 -0
  460. package/src/automations/triggerInfo/{app.ts → app.js} +2 -7
  461. package/src/automations/triggerInfo/{cron.ts → cron.js} +2 -7
  462. package/src/automations/triggerInfo/index.js +15 -0
  463. package/src/automations/triggerInfo/{rowDeleted.ts → rowDeleted.js} +2 -7
  464. package/src/automations/triggerInfo/{rowSaved.ts → rowSaved.js} +2 -7
  465. package/src/automations/triggerInfo/{rowUpdated.ts → rowUpdated.js} +2 -7
  466. package/src/automations/triggerInfo/{webhook.ts → webhook.js} +2 -7
  467. package/src/automations/{triggers.ts → triggers.js} +26 -30
  468. package/src/automations/utils.ts +12 -9
  469. package/src/constants/index.js +208 -0
  470. package/src/constants/{layouts.ts → layouts.js} +9 -3
  471. package/src/constants/screens.js +46 -0
  472. package/src/db/{dynamoClient.ts → dynamoClient.js} +19 -39
  473. package/src/db/{inMemoryView.ts → inMemoryView.js} +9 -15
  474. package/src/db/index.js +16 -0
  475. package/src/db/linkedRows/{LinkController.ts → LinkController.js} +85 -64
  476. package/src/db/linkedRows/{index.ts → index.js} +38 -43
  477. package/src/db/linkedRows/{linkUtils.ts → linkUtils.js} +24 -33
  478. package/src/db/{newid.ts → newid.js} +1 -1
  479. package/src/db/tests/linkController.spec.js +57 -73
  480. package/src/db/tests/linkTests.spec.js +14 -17
  481. package/src/db/{utils.ts → utils.js} +93 -77
  482. package/src/db/views/{staticViews.ts → staticViews.js} +13 -20
  483. package/src/{environment.ts → environment.js} +7 -11
  484. package/src/events/{AutomationEmitter.ts → AutomationEmitter.js} +7 -12
  485. package/src/events/{BudibaseEmitter.ts → index.js} +8 -7
  486. package/src/events/utils.js +38 -0
  487. package/src/integrations/base/sql.ts +1 -1
  488. package/src/integrations/base/sqlTable.ts +1 -1
  489. package/src/integrations/elasticsearch.ts +2 -32
  490. package/src/integrations/googlesheets.ts +7 -5
  491. package/src/integrations/index.ts +41 -45
  492. package/src/integrations/microsoftSqlServer.ts +12 -14
  493. package/src/integrations/mysql.ts +3 -4
  494. package/src/integrations/oracle.ts +46 -17
  495. package/src/integrations/postgres.ts +2 -8
  496. package/src/integrations/s3.ts +3 -179
  497. package/src/integrations/tests/s3.spec.ts +1 -85
  498. package/src/integrations/utils.ts +2 -6
  499. package/src/middleware/appInfo.js +19 -0
  500. package/src/middleware/authorized.ts +28 -21
  501. package/src/middleware/{builder.ts → builder.js} +15 -17
  502. package/src/middleware/{currentapp.ts → currentapp.js} +39 -42
  503. package/src/middleware/{joi-validator.ts → joi-validator.js} +8 -9
  504. package/src/middleware/publicApi.js +21 -0
  505. package/src/middleware/{resourceId.ts → resourceId.js} +11 -16
  506. package/src/middleware/{selfhost.ts → selfhost.js} +2 -4
  507. package/src/middleware/tests/authorized.spec.js +6 -5
  508. package/src/middleware/tests/currentapp.spec.js +63 -118
  509. package/src/middleware/{utils.ts → utils.js} +1 -3
  510. package/src/migrations/functions/appUrls.ts +2 -2
  511. package/src/migrations/functions/backfill/app/tables.ts +5 -2
  512. package/src/migrations/functions/backfill/global.ts +1 -1
  513. package/src/migrations/functions/tests/appUrls.spec.js +4 -4
  514. package/src/migrations/functions/tests/userEmailViewCasing.spec.js +9 -14
  515. package/src/migrations/functions/usageQuotas/syncApps.ts +4 -3
  516. package/src/migrations/functions/usageQuotas/syncRows.ts +5 -4
  517. package/src/migrations/functions/usageQuotas/tests/syncRows.spec.ts +7 -7
  518. package/src/migrations/functions/userEmailViewCasing.ts +3 -3
  519. package/src/migrations/index.ts +0 -9
  520. package/src/migrations/tests/index.spec.ts +1 -1
  521. package/src/module.d.ts +14 -0
  522. package/src/sdk/app/backups/exports.ts +3 -5
  523. package/src/sdk/app/backups/imports.ts +14 -7
  524. package/src/sdk/app/backups/statistics.ts +18 -9
  525. package/src/sdk/app/tables/index.ts +8 -7
  526. package/src/startup.ts +5 -5
  527. package/src/tests/utilities/{TestConfiguration.ts → TestConfiguration.js} +78 -111
  528. package/src/tests/utilities/controllers.js +16 -0
  529. package/src/tests/utilities/{index.ts → index.js} +2 -2
  530. package/src/tests/utilities/{structures.ts → structures.js} +36 -41
  531. package/src/threads/automation.ts +19 -18
  532. package/src/threads/query.ts +16 -11
  533. package/src/threads/utils.ts +5 -4
  534. package/src/utilities/budibaseDir.js +3 -0
  535. package/src/utilities/{centralPath.ts → centralPath.js} +3 -3
  536. package/src/utilities/{csvParser.ts → csvParser.js} +26 -42
  537. package/src/utilities/fileSystem/{clientLibrary.ts → clientLibrary.js} +20 -20
  538. package/src/utilities/fileSystem/{index.ts → index.js} +65 -61
  539. package/src/utilities/fileSystem/{processor.ts → processor.js} +5 -3
  540. package/src/utilities/fileSystem/utilities.js +36 -0
  541. package/src/utilities/global.js +127 -0
  542. package/src/utilities/{index.ts → index.js} +32 -40
  543. package/src/utilities/{plugins.ts → plugins.js} +4 -5
  544. package/src/utilities/queue/inMemoryQueue.js +122 -0
  545. package/src/utilities/{redis.ts → redis.js} +20 -21
  546. package/src/utilities/routing/index.js +25 -0
  547. package/src/utilities/rowProcessor/{index.ts → index.js} +144 -67
  548. package/src/utilities/rowProcessor/{utils.ts → utils.js} +15 -19
  549. package/src/utilities/{scriptRunner.ts → scriptRunner.js} +4 -8
  550. package/src/utilities/security.js +71 -0
  551. package/src/utilities/{statusCodes.ts → statusCodes.js} +1 -1
  552. package/src/utilities/usageQuota/{rows.ts → rows.js} +18 -14
  553. package/src/utilities/usageQuota/{usageQuoteReset.ts → usageQuoteReset.js} +1 -1
  554. package/src/utilities/{users.ts → users.js} +13 -11
  555. package/src/utilities/{workerRequests.ts → workerRequests.js} +38 -43
  556. package/src/watch.ts +3 -2
  557. package/tsconfig.build.json +2 -1
  558. package/tsconfig.json +1 -3
  559. package/builder/assets/index.0c44dac3.css +0 -6
  560. package/builder/assets/index.e19dcc8e.js +0 -1021
  561. package/coverage/lcov-report/src/api/controllers/analytics.ts.html +0 -190
  562. package/coverage/lcov-report/src/api/controllers/application.ts.html +0 -2038
  563. package/coverage/lcov-report/src/api/controllers/auth.ts.html +0 -301
  564. package/coverage/lcov-report/src/api/controllers/backup.ts.html +0 -148
  565. package/coverage/lcov-report/src/api/controllers/component.ts.html +0 -259
  566. package/coverage/lcov-report/src/api/controllers/deploy/Deployment.ts.html +0 -259
  567. package/coverage/lcov-report/src/api/controllers/deploy/index.html +0 -131
  568. package/coverage/lcov-report/src/api/controllers/deploy/index.ts.html +0 -730
  569. package/coverage/lcov-report/src/api/controllers/index.html +0 -431
  570. package/coverage/lcov-report/src/api/controllers/integration.ts.html +0 -124
  571. package/coverage/lcov-report/src/api/controllers/plugin/file.ts.html +0 -130
  572. package/coverage/lcov-report/src/api/controllers/plugin/github.ts.html +0 -310
  573. package/coverage/lcov-report/src/api/controllers/plugin/index.html +0 -206
  574. package/coverage/lcov-report/src/api/controllers/plugin/index.ts.html +0 -484
  575. package/coverage/lcov-report/src/api/controllers/plugin/npm.ts.html +0 -253
  576. package/coverage/lcov-report/src/api/controllers/plugin/uploaders.ts.html +0 -97
  577. package/coverage/lcov-report/src/api/controllers/plugin/url.ts.html +0 -121
  578. package/coverage/lcov-report/src/api/controllers/plugin/utils.ts.html +0 -136
  579. package/coverage/lcov-report/src/api/controllers/public/applications.ts.html +0 -334
  580. package/coverage/lcov-report/src/api/controllers/public/index.html +0 -191
  581. package/coverage/lcov-report/src/api/controllers/public/mapping/applications.ts.html +0 -181
  582. package/coverage/lcov-report/src/api/controllers/public/mapping/index.html +0 -191
  583. package/coverage/lcov-report/src/api/controllers/public/mapping/index.ts.html +0 -124
  584. package/coverage/lcov-report/src/api/controllers/public/mapping/queries.ts.html +0 -202
  585. package/coverage/lcov-report/src/api/controllers/public/mapping/rows.ts.html +0 -178
  586. package/coverage/lcov-report/src/api/controllers/public/mapping/users.ts.html +0 -181
  587. package/coverage/lcov-report/src/api/controllers/public/queries.ts.html +0 -145
  588. package/coverage/lcov-report/src/api/controllers/public/rows.ts.html +0 -328
  589. package/coverage/lcov-report/src/api/controllers/public/tables.ts.html +0 -253
  590. package/coverage/lcov-report/src/api/controllers/public/users.ts.html +0 -268
  591. package/coverage/lcov-report/src/api/controllers/public/utils.ts.html +0 -220
  592. package/coverage/lcov-report/src/api/controllers/query/import/index.html +0 -116
  593. package/coverage/lcov-report/src/api/controllers/query/import/index.ts.html +0 -373
  594. package/coverage/lcov-report/src/api/controllers/query/import/sources/base/index.html +0 -131
  595. package/coverage/lcov-report/src/api/controllers/query/import/sources/base/index.ts.html +0 -379
  596. package/coverage/lcov-report/src/api/controllers/query/import/sources/base/openapi.ts.html +0 -157
  597. package/coverage/lcov-report/src/api/controllers/query/import/sources/curl.ts.html +0 -403
  598. package/coverage/lcov-report/src/api/controllers/query/import/sources/index.html +0 -146
  599. package/coverage/lcov-report/src/api/controllers/query/import/sources/openapi2.ts.html +0 -586
  600. package/coverage/lcov-report/src/api/controllers/query/import/sources/openapi3.ts.html +0 -712
  601. package/coverage/lcov-report/src/api/controllers/query/index.html +0 -131
  602. package/coverage/lcov-report/src/api/controllers/query/index.ts.html +0 -976
  603. package/coverage/lcov-report/src/api/controllers/row/ExternalRequest.ts.html +0 -2269
  604. package/coverage/lcov-report/src/api/controllers/row/index.ts.html +0 -541
  605. package/coverage/lcov-report/src/api/controllers/screen.ts.html +0 -463
  606. package/coverage/lcov-report/src/api/controllers/static/index.html +0 -116
  607. package/coverage/lcov-report/src/api/controllers/static/index.ts.html +0 -694
  608. package/coverage/lcov-report/src/api/controllers/table/index.html +0 -176
  609. package/coverage/lcov-report/src/api/controllers/table/internal.ts.html +0 -661
  610. package/coverage/lcov-report/src/api/controllers/table/utils.ts.html +0 -1255
  611. package/coverage/lcov-report/src/api/controllers/webhook.ts.html +0 -379
  612. package/coverage/lcov-report/src/api/routes/analytics.ts.html +0 -112
  613. package/coverage/lcov-report/src/api/routes/apikeys.ts.html +0 -121
  614. package/coverage/lcov-report/src/api/routes/application.ts.html +0 -223
  615. package/coverage/lcov-report/src/api/routes/auth.ts.html +0 -109
  616. package/coverage/lcov-report/src/api/routes/datasource.ts.html +0 -265
  617. package/coverage/lcov-report/src/api/routes/deploy.ts.html +0 -148
  618. package/coverage/lcov-report/src/api/routes/index.ts.html +0 -289
  619. package/coverage/lcov-report/src/api/routes/migrations.ts.html +0 -127
  620. package/coverage/lcov-report/src/api/routes/plugin.ts.html +0 -151
  621. package/coverage/lcov-report/src/api/routes/public/applications.ts.html +0 -541
  622. package/coverage/lcov-report/src/api/routes/public/index.html +0 -191
  623. package/coverage/lcov-report/src/api/routes/public/index.ts.html +0 -493
  624. package/coverage/lcov-report/src/api/routes/public/middleware/index.html +0 -116
  625. package/coverage/lcov-report/src/api/routes/public/middleware/mapper.ts.html +0 -328
  626. package/coverage/lcov-report/src/api/routes/public/queries.ts.html +0 -313
  627. package/coverage/lcov-report/src/api/routes/public/rows.ts.html +0 -598
  628. package/coverage/lcov-report/src/api/routes/public/tables.ts.html +0 -586
  629. package/coverage/lcov-report/src/api/routes/public/users.ts.html +0 -511
  630. package/coverage/lcov-report/src/api/routes/public/utils/Endpoint.ts.html +0 -238
  631. package/coverage/lcov-report/src/api/routes/public/utils/index.html +0 -116
  632. package/coverage/lcov-report/src/api/routes/role.ts.html +0 -157
  633. package/coverage/lcov-report/src/api/routes/row.ts.html +0 -883
  634. package/coverage/lcov-report/src/api/routes/screen.ts.html +0 -154
  635. package/coverage/lcov-report/src/api/routes/static.ts.html +0 -280
  636. package/coverage/lcov-report/src/api/routes/tests/utilities/TestFunctions.ts.html +0 -550
  637. package/coverage/lcov-report/src/api/routes/tests/utilities/index.html +0 -131
  638. package/coverage/lcov-report/src/api/routes/tests/utilities/index.ts.html +0 -367
  639. package/coverage/lcov-report/src/api/routes/webhook.ts.html +0 -166
  640. package/coverage/lcov-report/src/app.ts.html +0 -406
  641. package/coverage/lcov-report/src/automations/logging/index.html +0 -116
  642. package/coverage/lcov-report/src/automations/logging/index.ts.html +0 -199
  643. package/coverage/lcov-report/src/automations/steps/createRow.ts.html +0 -382
  644. package/coverage/lcov-report/src/automations/steps/deleteRow.ts.html +0 -349
  645. package/coverage/lcov-report/src/automations/steps/index.html +0 -371
  646. package/coverage/lcov-report/src/automations/tests/utilities/index.html +0 -116
  647. package/coverage/lcov-report/src/automations/tests/utilities/index.ts.html +0 -265
  648. package/coverage/lcov-report/src/automations/triggerInfo/app.ts.html +0 -196
  649. package/coverage/lcov-report/src/automations/triggerInfo/index.ts.html +0 -130
  650. package/coverage/lcov-report/src/automations/utils.ts.html +0 -886
  651. package/coverage/lcov-report/src/constants/index.ts.html +0 -697
  652. package/coverage/lcov-report/src/db/defaultData/datasource_bb_default.ts.html +0 -2059
  653. package/coverage/lcov-report/src/db/defaultData/employeeImport.ts.html +0 -541
  654. package/coverage/lcov-report/src/db/defaultData/expensesImport.ts.html +0 -427
  655. package/coverage/lcov-report/src/db/defaultData/index.html +0 -176
  656. package/coverage/lcov-report/src/db/defaultData/inventoryImport.ts.html +0 -403
  657. package/coverage/lcov-report/src/db/defaultData/jobsImport.ts.html +0 -559
  658. package/coverage/lcov-report/src/db/dynamoClient.ts.html +0 -526
  659. package/coverage/lcov-report/src/db/linkedRows/LinkDocument.ts.html +0 -265
  660. package/coverage/lcov-report/src/db/linkedRows/index.html +0 -161
  661. package/coverage/lcov-report/src/environment.ts.html +0 -457
  662. package/coverage/lcov-report/src/events/utils.ts.html +0 -319
  663. package/coverage/lcov-report/src/index.html +0 -191
  664. package/coverage/lcov-report/src/index.ts.html +0 -133
  665. package/coverage/lcov-report/src/integrations/arangodb.ts.html +0 -415
  666. package/coverage/lcov-report/src/integrations/base/index.html +0 -161
  667. package/coverage/lcov-report/src/integrations/base/query.ts.html +0 -133
  668. package/coverage/lcov-report/src/integrations/base/sql.ts.html +0 -1951
  669. package/coverage/lcov-report/src/integrations/base/sqlTable.ts.html +0 -691
  670. package/coverage/lcov-report/src/integrations/base/utils.ts.html +0 -121
  671. package/coverage/lcov-report/src/integrations/couchdb.ts.html +0 -406
  672. package/coverage/lcov-report/src/integrations/elasticsearch.ts.html +0 -634
  673. package/coverage/lcov-report/src/integrations/firebase.ts.html +0 -646
  674. package/coverage/lcov-report/src/integrations/googlesheets.ts.html +0 -1315
  675. package/coverage/lcov-report/src/integrations/index.html +0 -371
  676. package/coverage/lcov-report/src/integrations/index.ts.html +0 -445
  677. package/coverage/lcov-report/src/integrations/microsoftSqlServer.ts.html +0 -1012
  678. package/coverage/lcov-report/src/integrations/mongodb.ts.html +0 -1867
  679. package/coverage/lcov-report/src/integrations/mysql.ts.html +0 -967
  680. package/coverage/lcov-report/src/integrations/oracle.ts.html +0 -1387
  681. package/coverage/lcov-report/src/integrations/postgres.ts.html +0 -1087
  682. package/coverage/lcov-report/src/integrations/queries/index.html +0 -116
  683. package/coverage/lcov-report/src/integrations/queries/sql.ts.html +0 -463
  684. package/coverage/lcov-report/src/integrations/redis.ts.html +0 -550
  685. package/coverage/lcov-report/src/integrations/rest.ts.html +0 -1381
  686. package/coverage/lcov-report/src/integrations/s3.ts.html +0 -862
  687. package/coverage/lcov-report/src/integrations/snowflake.ts.html +0 -376
  688. package/coverage/lcov-report/src/integrations/utils.ts.html +0 -1018
  689. package/coverage/lcov-report/src/middleware/authorized.ts.html +0 -460
  690. package/coverage/lcov-report/src/migrations/functions/appUrls.ts.html +0 -187
  691. package/coverage/lcov-report/src/migrations/functions/backfill/app/automations.ts.html +0 -163
  692. package/coverage/lcov-report/src/migrations/functions/backfill/app/datasources.ts.html +0 -151
  693. package/coverage/lcov-report/src/migrations/functions/backfill/app/index.html +0 -206
  694. package/coverage/lcov-report/src/migrations/functions/backfill/app/layouts.ts.html +0 -172
  695. package/coverage/lcov-report/src/migrations/functions/backfill/app/queries.ts.html +0 -226
  696. package/coverage/lcov-report/src/migrations/functions/backfill/app/roles.ts.html +0 -151
  697. package/coverage/lcov-report/src/migrations/functions/backfill/app/screens.ts.html +0 -151
  698. package/coverage/lcov-report/src/migrations/functions/backfill/app/tables.ts.html +0 -166
  699. package/coverage/lcov-report/src/migrations/functions/backfill/app.ts.html +0 -532
  700. package/coverage/lcov-report/src/migrations/functions/backfill/global/configs.ts.html +0 -283
  701. package/coverage/lcov-report/src/migrations/functions/backfill/global/index.html +0 -146
  702. package/coverage/lcov-report/src/migrations/functions/backfill/global/quotas.ts.html +0 -265
  703. package/coverage/lcov-report/src/migrations/functions/backfill/global/users.ts.html +0 -232
  704. package/coverage/lcov-report/src/migrations/functions/backfill/global.ts.html +0 -724
  705. package/coverage/lcov-report/src/migrations/functions/backfill/index.html +0 -161
  706. package/coverage/lcov-report/src/migrations/functions/backfill/index.ts.html +0 -106
  707. package/coverage/lcov-report/src/migrations/functions/backfill/installation.ts.html +0 -235
  708. package/coverage/lcov-report/src/migrations/functions/index.html +0 -161
  709. package/coverage/lcov-report/src/migrations/functions/syncQuotas.ts.html +0 -130
  710. package/coverage/lcov-report/src/migrations/functions/tableSettings.ts.html +0 -520
  711. package/coverage/lcov-report/src/migrations/functions/usageQuotas/index.html +0 -161
  712. package/coverage/lcov-report/src/migrations/functions/usageQuotas/index.ts.html +0 -94
  713. package/coverage/lcov-report/src/migrations/functions/usageQuotas/syncApps.ts.html +0 -127
  714. package/coverage/lcov-report/src/migrations/functions/usageQuotas/syncPlugins.ts.html +0 -115
  715. package/coverage/lcov-report/src/migrations/functions/usageQuotas/syncRows.ts.html +0 -169
  716. package/coverage/lcov-report/src/migrations/functions/userEmailViewCasing.ts.html +0 -124
  717. package/coverage/lcov-report/src/migrations/index.ts.html +0 -430
  718. package/coverage/lcov-report/src/migrations/tests/helpers.ts.html +0 -205
  719. package/coverage/lcov-report/src/migrations/tests/index.html +0 -131
  720. package/coverage/lcov-report/src/migrations/tests/structures.ts.html +0 -283
  721. package/coverage/lcov-report/src/sdk/app/automations/index.html +0 -131
  722. package/coverage/lcov-report/src/sdk/app/automations/index.ts.html +0 -100
  723. package/coverage/lcov-report/src/sdk/app/automations/webhook.ts.html +0 -214
  724. package/coverage/lcov-report/src/sdk/app/backups/constants.ts.html +0 -91
  725. package/coverage/lcov-report/src/sdk/app/backups/exports.ts.html +0 -604
  726. package/coverage/lcov-report/src/sdk/app/backups/imports.ts.html +0 -682
  727. package/coverage/lcov-report/src/sdk/app/backups/index.html +0 -176
  728. package/coverage/lcov-report/src/sdk/app/backups/index.ts.html +0 -112
  729. package/coverage/lcov-report/src/sdk/app/backups/statistics.ts.html +0 -292
  730. package/coverage/lcov-report/src/sdk/app/tables/index.html +0 -116
  731. package/coverage/lcov-report/src/sdk/app/tables/index.ts.html +0 -265
  732. package/coverage/lcov-report/src/startup.ts.html +0 -499
  733. package/coverage/lcov-report/src/tests/utilities/TestConfiguration.ts.html +0 -1966
  734. package/coverage/lcov-report/src/tests/utilities/controllers.ts.html +0 -127
  735. package/coverage/lcov-report/src/tests/utilities/index.html +0 -161
  736. package/coverage/lcov-report/src/tests/utilities/structures.ts.html +0 -667
  737. package/coverage/lcov-report/src/threads/automation.ts.html +0 -1594
  738. package/coverage/lcov-report/src/threads/index.html +0 -161
  739. package/coverage/lcov-report/src/threads/index.ts.html +0 -418
  740. package/coverage/lcov-report/src/threads/query.ts.html +0 -961
  741. package/coverage/lcov-report/src/threads/utils.ts.html +0 -373
  742. package/coverage/lcov-report/src/utilities/fileSystem/clientLibrary.ts.html +0 -547
  743. package/coverage/lcov-report/src/utilities/fileSystem/index.ts.html +0 -1129
  744. package/coverage/lcov-report/src/utilities/fileSystem/processor.ts.html +0 -142
  745. package/coverage/lcov-report/src/utilities/redis.ts.html +0 -343
  746. package/coverage/lcov-report/src/utilities/routing/index.ts.html +0 -181
  747. package/coverage/lcov-report/src/utilities/rowProcessor/index.html +0 -146
  748. package/coverage/lcov-report/src/utilities/rowProcessor/map.ts.html +0 -373
  749. package/coverage/lcov-report/src/watch.ts.html +0 -196
  750. package/dist/db/defaultData/datasource_bb_default.js +0 -573
  751. package/dist/db/defaultData/employeeImport.js +0 -155
  752. package/dist/db/defaultData/expensesImport.js +0 -117
  753. package/dist/db/defaultData/inventoryImport.js +0 -109
  754. package/dist/db/defaultData/jobsImport.js +0 -152
  755. package/dist/db/linkedRows/LinkDocument.js +0 -32
  756. package/dist/events/BudibaseEmitter.js +0 -24
  757. package/dist/integrations/base/types.js +0 -2
  758. package/dist/migrations/functions/tableSettings.js +0 -130
  759. package/dist/utilities/rowProcessor/map.js +0 -99
  760. package/jest.config.ts +0 -33
  761. package/scripts/integrations/postgres/emp-skill.sql +0 -46
  762. package/src/api/controllers/integration.ts +0 -13
  763. package/src/api/controllers/migrations.ts +0 -14
  764. package/src/api/controllers/script.ts +0 -12
  765. package/src/api/routes/analytics.ts +0 -9
  766. package/src/api/routes/apikeys.ts +0 -12
  767. package/src/api/routes/automation.ts +0 -87
  768. package/src/api/routes/cloud.ts +0 -18
  769. package/src/api/routes/component.ts +0 -14
  770. package/src/api/routes/datasource.ts +0 -60
  771. package/src/api/routes/deploy.ts +0 -21
  772. package/src/api/routes/dev.ts +0 -38
  773. package/src/api/routes/integration.ts +0 -16
  774. package/src/api/routes/layout.ts +0 -16
  775. package/src/api/routes/migrations.ts +0 -14
  776. package/src/api/routes/permission.ts +0 -41
  777. package/src/api/routes/role.ts +0 -24
  778. package/src/api/routes/routing.ts +0 -14
  779. package/src/api/routes/screen.ts +0 -23
  780. package/src/api/routes/script.ts +0 -10
  781. package/src/api/routes/templates.ts +0 -16
  782. package/src/api/routes/user.ts +0 -51
  783. package/src/api/routes/view.ts +0 -34
  784. package/src/automations/bullboard.ts +0 -38
  785. package/src/automations/index.ts +0 -26
  786. package/src/automations/tests/utilities/index.ts +0 -60
  787. package/src/automations/triggerInfo/index.ts +0 -15
  788. package/src/constants/index.ts +0 -204
  789. package/src/constants/screens.ts +0 -48
  790. package/src/db/defaultData/datasource_bb_default.ts +0 -658
  791. package/src/db/defaultData/employeeImport.ts +0 -152
  792. package/src/db/defaultData/expensesImport.ts +0 -114
  793. package/src/db/defaultData/inventoryImport.ts +0 -106
  794. package/src/db/defaultData/jobsImport.ts +0 -158
  795. package/src/db/index.ts +0 -16
  796. package/src/db/linkedRows/LinkDocument.ts +0 -60
  797. package/src/events/index.ts +0 -5
  798. package/src/events/utils.ts +0 -78
  799. package/src/integrations/base/types.ts +0 -134
  800. package/src/middleware/appInfo.ts +0 -20
  801. package/src/middleware/publicApi.ts +0 -21
  802. package/src/migrations/functions/tableSettings.ts +0 -145
  803. package/src/migrations/functions/tests/tableSettings.spec.ts +0 -144
  804. package/src/tests/utilities/controllers.ts +0 -14
  805. package/src/utilities/budibaseDir.ts +0 -3
  806. package/src/utilities/global.ts +0 -138
  807. package/src/utilities/routing/index.ts +0 -32
  808. package/src/utilities/rowProcessor/map.ts +0 -96
  809. package/src/utilities/security.ts +0 -65
@@ -8,54 +8,49 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
8
8
  step((generator = generator.apply(thisArg, _arguments || [])).next());
9
9
  });
10
10
  };
11
- var __importDefault = (this && this.__importDefault) || function (mod) {
12
- return (mod && mod.__esModule) ? mod : { "default": mod };
13
- };
14
- Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.getGlobalUsersFromMetadata = exports.getGlobalUsers = exports.getGlobalUser = exports.getRawGlobalUser = exports.getCachedSelf = exports.updateAppRole = void 0;
16
- const utils_1 = require("../db/utils");
17
- const backend_core_1 = require("@budibase/backend-core");
18
- const environment_1 = __importDefault(require("../environment"));
19
- const pro_1 = require("@budibase/pro");
20
- function updateAppRole(user, { appId } = {}) {
11
+ const { getMultiIDParams, getGlobalIDFromUserMetadataID, } = require("../db/utils");
12
+ const { BUILTIN_ROLE_IDS } = require("@budibase/backend-core/roles");
13
+ const { getProdAppID } = require("@budibase/backend-core/db");
14
+ const { getGlobalUserParams } = require("@budibase/backend-core/db");
15
+ const { user: userCache } = require("@budibase/backend-core/cache");
16
+ const { getGlobalDB, isUserInAppTenant, } = require("@budibase/backend-core/tenancy");
17
+ const env = require("../environment");
18
+ const { getAppId } = require("@budibase/backend-core/context");
19
+ const { groups } = require("@budibase/pro");
20
+ exports.updateAppRole = (user, { appId } = {}) => {
21
21
  var _a, _b;
22
- appId = appId || backend_core_1.context.getAppId();
22
+ appId = appId || getAppId();
23
23
  if (!user || !user.roles) {
24
24
  return user;
25
25
  }
26
26
  // if in an multi-tenancy environment make sure roles are never updated
27
- if (environment_1.default.MULTI_TENANCY && appId && !backend_core_1.tenancy.isUserInAppTenant(appId, user)) {
27
+ if (env.MULTI_TENANCY && !isUserInAppTenant(appId, user)) {
28
28
  delete user.builder;
29
29
  delete user.admin;
30
- user.roleId = backend_core_1.roles.BUILTIN_ROLE_IDS.PUBLIC;
30
+ user.roleId = BUILTIN_ROLE_IDS.PUBLIC;
31
31
  return user;
32
32
  }
33
33
  // always use the deployed app
34
- if (appId) {
35
- user.roleId = user.roles[backend_core_1.db.getProdAppID(appId)];
36
- }
34
+ user.roleId = user.roles[getProdAppID(appId)];
37
35
  // if a role wasn't found then either set as admin (builder) or public (everyone else)
38
36
  if (!user.roleId && user.builder && user.builder.global) {
39
- user.roleId = backend_core_1.roles.BUILTIN_ROLE_IDS.ADMIN;
37
+ user.roleId = BUILTIN_ROLE_IDS.ADMIN;
40
38
  }
41
39
  else if (!user.roleId && !((_a = user === null || user === void 0 ? void 0 : user.userGroups) === null || _a === void 0 ? void 0 : _a.length)) {
42
- user.roleId = backend_core_1.roles.BUILTIN_ROLE_IDS.PUBLIC;
40
+ user.roleId = BUILTIN_ROLE_IDS.PUBLIC;
43
41
  }
44
42
  else if ((_b = user === null || user === void 0 ? void 0 : user.userGroups) === null || _b === void 0 ? void 0 : _b.length) {
45
- user.roleId = undefined;
43
+ user.roleId = null;
46
44
  }
47
45
  delete user.roles;
48
46
  return user;
49
- }
50
- exports.updateAppRole = updateAppRole;
47
+ };
51
48
  function checkGroupRoles(user, { appId } = {}) {
52
49
  return __awaiter(this, void 0, void 0, function* () {
53
- if (user.roleId && user.roleId !== backend_core_1.roles.BUILTIN_ROLE_IDS.PUBLIC) {
50
+ if (user.roleId && user.roleId !== BUILTIN_ROLE_IDS.PUBLIC) {
54
51
  return user;
55
52
  }
56
- if (appId) {
57
- user.roleId = yield pro_1.groups.getGroupRoleId(user, appId);
58
- }
53
+ user.roleId = yield groups.getGroupRoleId(user, appId);
59
54
  return user;
60
55
  });
61
56
  }
@@ -65,73 +60,57 @@ function processUser(user, { appId } = {}) {
65
60
  if (user) {
66
61
  delete user.password;
67
62
  }
68
- user = yield updateAppRole(user, { appId });
63
+ user = yield exports.updateAppRole(user, { appId });
69
64
  if (!user.roleId && ((_a = user === null || user === void 0 ? void 0 : user.userGroups) === null || _a === void 0 ? void 0 : _a.length)) {
70
65
  user = yield checkGroupRoles(user, { appId });
71
66
  }
72
67
  return user;
73
68
  });
74
69
  }
75
- function getCachedSelf(ctx, appId) {
76
- var _a;
77
- return __awaiter(this, void 0, void 0, function* () {
78
- // this has to be tenant aware, can't depend on the context to find it out
79
- // running some middlewares before the tenancy causes context to break
80
- const user = yield backend_core_1.cache.user.getUser((_a = ctx.user) === null || _a === void 0 ? void 0 : _a._id);
81
- return processUser(user, { appId });
82
- });
83
- }
84
- exports.getCachedSelf = getCachedSelf;
85
- function getRawGlobalUser(userId) {
86
- return __awaiter(this, void 0, void 0, function* () {
87
- const db = backend_core_1.tenancy.getGlobalDB();
88
- return db.get((0, utils_1.getGlobalIDFromUserMetadataID)(userId));
89
- });
90
- }
91
- exports.getRawGlobalUser = getRawGlobalUser;
92
- function getGlobalUser(userId) {
93
- return __awaiter(this, void 0, void 0, function* () {
94
- const appId = backend_core_1.context.getAppId();
95
- let user = yield getRawGlobalUser(userId);
96
- return processUser(user, { appId });
97
- });
98
- }
99
- exports.getGlobalUser = getGlobalUser;
100
- function getGlobalUsers(users) {
101
- return __awaiter(this, void 0, void 0, function* () {
102
- const appId = backend_core_1.context.getAppId();
103
- const db = backend_core_1.tenancy.getGlobalDB();
104
- let globalUsers;
105
- if (users) {
106
- const globalIds = users.map(user => (0, utils_1.getGlobalIDFromUserMetadataID)(user._id));
107
- globalUsers = (yield db.allDocs((0, utils_1.getMultiIDParams)(globalIds))).rows.map(row => row.doc);
108
- }
109
- else {
110
- globalUsers = (yield db.allDocs(backend_core_1.db.getGlobalUserParams(null, {
111
- include_docs: true,
112
- }))).rows.map(row => row.doc);
113
- }
114
- globalUsers = globalUsers
115
- .filter(user => user != null)
116
- .map(user => {
117
- delete user.password;
118
- delete user.forceResetPassword;
119
- return user;
120
- });
121
- if (!appId) {
122
- return globalUsers;
123
- }
124
- return globalUsers.map(user => updateAppRole(user));
70
+ exports.getCachedSelf = (ctx, appId) => __awaiter(void 0, void 0, void 0, function* () {
71
+ // this has to be tenant aware, can't depend on the context to find it out
72
+ // running some middlewares before the tenancy causes context to break
73
+ const user = yield userCache.getUser(ctx.user._id);
74
+ return processUser(user, { appId });
75
+ });
76
+ exports.getRawGlobalUser = (userId) => __awaiter(void 0, void 0, void 0, function* () {
77
+ const db = getGlobalDB();
78
+ return db.get(getGlobalIDFromUserMetadataID(userId));
79
+ });
80
+ exports.getGlobalUser = (userId) => __awaiter(void 0, void 0, void 0, function* () {
81
+ const appId = getAppId();
82
+ let user = yield exports.getRawGlobalUser(userId);
83
+ return processUser(user, { appId });
84
+ });
85
+ exports.getGlobalUsers = (users = null) => __awaiter(void 0, void 0, void 0, function* () {
86
+ const appId = getAppId();
87
+ const db = getGlobalDB();
88
+ let globalUsers;
89
+ if (users) {
90
+ const globalIds = users.map(user => getGlobalIDFromUserMetadataID(user._id));
91
+ globalUsers = (yield db.allDocs(getMultiIDParams(globalIds))).rows.map(row => row.doc);
92
+ }
93
+ else {
94
+ globalUsers = (yield db.allDocs(getGlobalUserParams(null, {
95
+ include_docs: true,
96
+ }))).rows.map(row => row.doc);
97
+ }
98
+ globalUsers = globalUsers
99
+ .filter(user => user != null)
100
+ .map(user => {
101
+ delete user.password;
102
+ delete user.forceResetPassword;
103
+ return user;
125
104
  });
126
- }
127
- exports.getGlobalUsers = getGlobalUsers;
128
- function getGlobalUsersFromMetadata(users) {
129
- return __awaiter(this, void 0, void 0, function* () {
130
- const globalUsers = yield getGlobalUsers(users);
131
- return users.map(user => {
132
- const globalUser = globalUsers.find(globalUser => { var _a; return globalUser && ((_a = user._id) === null || _a === void 0 ? void 0 : _a.includes(globalUser._id)); });
133
- return Object.assign(Object.assign({}, globalUser), user);
134
- });
105
+ if (!appId) {
106
+ return globalUsers;
107
+ }
108
+ return globalUsers.map(user => exports.updateAppRole(user));
109
+ });
110
+ exports.getGlobalUsersFromMetadata = (users) => __awaiter(void 0, void 0, void 0, function* () {
111
+ const globalUsers = yield exports.getGlobalUsers(users);
112
+ return users.map(user => {
113
+ const globalUser = globalUsers.find(globalUser => globalUser && user._id.includes(globalUser._id));
114
+ return Object.assign(Object.assign({}, globalUser), user);
135
115
  });
136
- }
137
- exports.getGlobalUsersFromMetadata = getGlobalUsersFromMetadata;
116
+ });
@@ -8,55 +8,44 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
8
8
  step((generator = generator.apply(thisArg, _arguments || [])).next());
9
9
  });
10
10
  };
11
- var __importDefault = (this && this.__importDefault) || function (mod) {
12
- return (mod && mod.__esModule) ? mod : { "default": mod };
13
- };
14
- Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.isQsTrue = exports.convertBookmark = exports.formatBytes = exports.stringToReadStream = exports.escapeDangerousCharacters = exports.deleteEntityMetadata = exports.saveEntityMetadata = exports.updateEntityMetadata = exports.attachmentsRelativeURL = exports.clientLibraryPath = exports.objectStoreUrl = exports.checkSlashesInUrl = exports.removeFromArray = exports.NUMBER_REGEX = exports.isDev = exports.wait = void 0;
16
- const environment_1 = __importDefault(require("../environment"));
17
- const constants_1 = require("../constants");
18
- const backend_core_1 = require("@budibase/backend-core");
19
- const utils_1 = require("../db/utils");
20
- const stream_1 = __importDefault(require("stream"));
21
- const Readable = stream_1.default.Readable;
22
- function wait(ms) {
23
- return new Promise(resolve => setTimeout(resolve, ms));
24
- }
25
- exports.wait = wait;
26
- exports.isDev = environment_1.default.isDev;
11
+ const env = require("../environment");
12
+ const { OBJ_STORE_DIRECTORY } = require("../constants");
13
+ const { sanitizeKey } = require("@budibase/backend-core/objectStore");
14
+ const { generateMetadataID } = require("../db/utils");
15
+ const Readable = require("stream").Readable;
16
+ const { getAppDB } = require("@budibase/backend-core/context");
17
+ exports.wait = ms => new Promise(resolve => setTimeout(resolve, ms));
18
+ exports.isDev = env.isDev;
27
19
  exports.NUMBER_REGEX = /^[+-]?([0-9]*[.])?[0-9]+$/g;
28
- function removeFromArray(array, element) {
20
+ exports.removeFromArray = (array, element) => {
29
21
  const index = array.indexOf(element);
30
22
  if (index !== -1) {
31
23
  array.splice(index, 1);
32
24
  }
33
25
  return array;
34
- }
35
- exports.removeFromArray = removeFromArray;
26
+ };
36
27
  /**
37
28
  * Makes sure that a URL has the correct number of slashes, while maintaining the
38
29
  * http(s):// double slashes.
39
30
  * @param {string} url The URL to test and remove any extra double slashes.
40
31
  * @return {string} The updated url.
41
32
  */
42
- function checkSlashesInUrl(url) {
33
+ exports.checkSlashesInUrl = url => {
43
34
  return url.replace(/(https?:\/\/)|(\/)+/g, "$1$2");
44
- }
45
- exports.checkSlashesInUrl = checkSlashesInUrl;
35
+ };
46
36
  /**
47
37
  * Gets the address of the object store, depending on whether self hosted or in cloud.
48
38
  * @return {string} The base URL of the object store (MinIO or S3).
49
39
  */
50
- function objectStoreUrl() {
51
- if (environment_1.default.SELF_HOSTED || environment_1.default.MINIO_URL) {
40
+ exports.objectStoreUrl = () => {
41
+ if (env.SELF_HOSTED || env.MINIO_URL) {
52
42
  // can use a relative url for this as all goes through the proxy (this is hosted in minio)
53
- return constants_1.OBJ_STORE_DIRECTORY;
43
+ return OBJ_STORE_DIRECTORY;
54
44
  }
55
45
  else {
56
- return environment_1.default.CDN_URL;
46
+ return env.CDN_URL;
57
47
  }
58
- }
59
- exports.objectStoreUrl = objectStoreUrl;
48
+ };
60
49
  /**
61
50
  * In production the client library is stored in the object store, however in development
62
51
  * we use the symlinked version produced by lerna, located in node modules. We link to this
@@ -67,9 +56,9 @@ exports.objectStoreUrl = objectStoreUrl;
67
56
  * @return {string} The URL to be inserted into appPackage response or server rendered
68
57
  * app index file.
69
58
  */
70
- function clientLibraryPath(appId, version) {
71
- if (environment_1.default.isProd()) {
72
- let url = `${objectStoreUrl()}/${backend_core_1.objectStore.sanitizeKey(appId)}/budibase-client.js`;
59
+ exports.clientLibraryPath = (appId, version) => {
60
+ if (env.isProd()) {
61
+ let url = `${exports.objectStoreUrl()}/${sanitizeKey(appId)}/budibase-client.js`;
73
62
  // append app version to bust the cache
74
63
  if (version) {
75
64
  url += `?v=${version}`;
@@ -79,65 +68,54 @@ function clientLibraryPath(appId, version) {
79
68
  else {
80
69
  return `/api/assets/client`;
81
70
  }
82
- }
83
- exports.clientLibraryPath = clientLibraryPath;
84
- function attachmentsRelativeURL(attachmentKey) {
85
- return checkSlashesInUrl(`${objectStoreUrl()}/${attachmentKey}`);
86
- }
87
- exports.attachmentsRelativeURL = attachmentsRelativeURL;
88
- function updateEntityMetadata(type, entityId, updateFn) {
89
- return __awaiter(this, void 0, void 0, function* () {
90
- const db = backend_core_1.context.getAppDB();
91
- const id = (0, utils_1.generateMetadataID)(type, entityId);
92
- // read it to see if it exists, we'll overwrite it no matter what
93
- let rev, metadata;
94
- try {
95
- const oldMetadata = yield db.get(id);
96
- rev = oldMetadata._rev;
97
- metadata = updateFn(oldMetadata);
98
- }
99
- catch (err) {
100
- rev = null;
101
- metadata = updateFn({});
102
- }
103
- metadata._id = id;
104
- if (rev) {
105
- metadata._rev = rev;
106
- }
107
- const response = yield db.put(metadata);
108
- return Object.assign(Object.assign({}, metadata), { _id: id, _rev: response.rev });
109
- });
110
- }
111
- exports.updateEntityMetadata = updateEntityMetadata;
112
- function saveEntityMetadata(type, entityId, metadata) {
113
- return __awaiter(this, void 0, void 0, function* () {
114
- return updateEntityMetadata(type, entityId, () => {
115
- return metadata;
116
- });
71
+ };
72
+ exports.attachmentsRelativeURL = attachmentKey => {
73
+ return exports.checkSlashesInUrl(`${exports.objectStoreUrl()}/${attachmentKey}`);
74
+ };
75
+ exports.updateEntityMetadata = (type, entityId, updateFn) => __awaiter(void 0, void 0, void 0, function* () {
76
+ const db = getAppDB();
77
+ const id = generateMetadataID(type, entityId);
78
+ // read it to see if it exists, we'll overwrite it no matter what
79
+ let rev, metadata = {};
80
+ try {
81
+ const oldMetadata = yield db.get(id);
82
+ rev = oldMetadata._rev;
83
+ metadata = updateFn(oldMetadata);
84
+ }
85
+ catch (err) {
86
+ rev = null;
87
+ metadata = updateFn({});
88
+ }
89
+ metadata._id = id;
90
+ if (rev) {
91
+ metadata._rev = rev;
92
+ }
93
+ const response = yield db.put(metadata);
94
+ return Object.assign(Object.assign({}, metadata), { _id: id, _rev: response.rev });
95
+ });
96
+ exports.saveEntityMetadata = (type, entityId, metadata) => __awaiter(void 0, void 0, void 0, function* () {
97
+ return exports.updateEntityMetadata(type, entityId, () => {
98
+ return metadata;
117
99
  });
118
- }
119
- exports.saveEntityMetadata = saveEntityMetadata;
120
- function deleteEntityMetadata(type, entityId) {
121
- return __awaiter(this, void 0, void 0, function* () {
122
- const db = backend_core_1.context.getAppDB();
123
- const id = (0, utils_1.generateMetadataID)(type, entityId);
124
- let rev;
125
- try {
126
- const metadata = yield db.get(id);
127
- if (metadata) {
128
- rev = metadata._rev;
129
- }
130
- }
131
- catch (err) {
132
- // don't need to error if it doesn't exist
133
- }
134
- if (id && rev) {
135
- yield db.remove(id, rev);
100
+ });
101
+ exports.deleteEntityMetadata = (type, entityId) => __awaiter(void 0, void 0, void 0, function* () {
102
+ const db = getAppDB();
103
+ const id = generateMetadataID(type, entityId);
104
+ let rev;
105
+ try {
106
+ const metadata = yield db.get(id);
107
+ if (metadata) {
108
+ rev = metadata._rev;
136
109
  }
137
- });
138
- }
139
- exports.deleteEntityMetadata = deleteEntityMetadata;
140
- function escapeDangerousCharacters(string) {
110
+ }
111
+ catch (err) {
112
+ // don't need to error if it doesn't exist
113
+ }
114
+ if (id && rev) {
115
+ yield db.remove(id, rev);
116
+ }
117
+ });
118
+ exports.escapeDangerousCharacters = string => {
141
119
  return string
142
120
  .replace(/[\\]/g, "\\\\")
143
121
  .replace(/[\b]/g, "\\b")
@@ -145,18 +123,16 @@ function escapeDangerousCharacters(string) {
145
123
  .replace(/[\n]/g, "\\n")
146
124
  .replace(/[\r]/g, "\\r")
147
125
  .replace(/[\t]/g, "\\t");
148
- }
149
- exports.escapeDangerousCharacters = escapeDangerousCharacters;
150
- function stringToReadStream(string) {
126
+ };
127
+ exports.stringToReadStream = string => {
151
128
  return new Readable({
152
129
  read() {
153
130
  this.push(string);
154
131
  this.push(null);
155
132
  },
156
133
  });
157
- }
158
- exports.stringToReadStream = stringToReadStream;
159
- function formatBytes(bytes) {
134
+ };
135
+ exports.formatBytes = bytes => {
160
136
  const units = ["B", "KB", "MB", "GB", "TB", "PB", "EB", "ZB", "YB"];
161
137
  const byteIncrements = 1024;
162
138
  let unit = 0;
@@ -165,22 +141,19 @@ function formatBytes(bytes) {
165
141
  size /= byteIncrements;
166
142
  }
167
143
  return `${size.toFixed(size < 10 && unit > 0 ? 1 : 0)}${units[unit]}`;
168
- }
169
- exports.formatBytes = formatBytes;
170
- function convertBookmark(bookmark) {
144
+ };
145
+ exports.convertBookmark = bookmark => {
171
146
  const IS_NUMBER = /^\d+\.?\d*$/;
172
147
  if (typeof bookmark === "string" && bookmark.match(IS_NUMBER)) {
173
148
  return parseFloat(bookmark);
174
149
  }
175
150
  return bookmark;
176
- }
177
- exports.convertBookmark = convertBookmark;
178
- function isQsTrue(param) {
151
+ };
152
+ exports.isQsTrue = param => {
179
153
  if (typeof param === "string") {
180
154
  return param.toLowerCase() === "true";
181
155
  }
182
156
  else {
183
157
  return param === true;
184
158
  }
185
- }
186
- exports.isQsTrue = isQsTrue;
159
+ };
@@ -1,26 +1,20 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.enrichPluginURLs = void 0;
7
- const environment_1 = __importDefault(require("../environment"));
8
- const pro_1 = require("@budibase/pro");
9
- const backend_core_1 = require("@budibase/backend-core");
10
- function enrichPluginURLs(plugins) {
2
+ const env = require("../environment");
3
+ const { plugins: ProPlugins } = require("@budibase/pro");
4
+ const { objectStore } = require("@budibase/backend-core");
5
+ exports.enrichPluginURLs = plugins => {
11
6
  if (!plugins || !plugins.length) {
12
7
  return [];
13
8
  }
14
9
  return plugins.map(plugin => {
15
- const cloud = !environment_1.default.SELF_HOSTED;
16
- const bucket = backend_core_1.objectStore.ObjectStoreBuckets.PLUGINS;
10
+ const cloud = !env.SELF_HOSTED;
11
+ const bucket = objectStore.ObjectStoreBuckets.PLUGINS;
17
12
  const jsFileName = "plugin.min.js";
18
13
  // In self host we need to prefix the path, as the bucket name is not part
19
14
  // of the bucket path. In cloud, it's already part of the bucket path.
20
- let jsUrl = cloud ? `${environment_1.default.CDN_URL}/` : `/${bucket}/`;
21
- jsUrl += pro_1.plugins.getBucketPath(plugin.name);
15
+ let jsUrl = cloud ? `${env.CDN_URL}/` : `/${bucket}/`;
16
+ jsUrl += ProPlugins.getBucketPath(plugin.name);
22
17
  jsUrl += jsFileName;
23
18
  return Object.assign(Object.assign({}, plugin), { jsUrl });
24
19
  });
25
- }
26
- exports.enrichPluginURLs = enrichPluginURLs;
20
+ };
@@ -0,0 +1,126 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ let events = require("events");
12
+ /**
13
+ * Bull works with a Job wrapper around all messages that contains a lot more information about
14
+ * the state of the message, this object constructor implements the same schema of Bull jobs
15
+ * for the sake of maintaining API consistency.
16
+ * @param {string} queue The name of the queue which the message will be carried on.
17
+ * @param {object} message The JSON message which will be passed back to the consumer.
18
+ * @returns {Object} A new job which can now be put onto the queue, this is mostly an
19
+ * internal structure so that an in memory queue can be easily swapped for a Bull queue.
20
+ */
21
+ function newJob(queue, message) {
22
+ return {
23
+ timestamp: Date.now(),
24
+ queue: queue,
25
+ data: message,
26
+ };
27
+ }
28
+ /**
29
+ * This is designed to replicate Bull (https://github.com/OptimalBits/bull) in memory as a sort of mock.
30
+ * It is relatively simple, using an event emitter internally to register when messages are available
31
+ * to the consumers - in can support many inputs and many consumers.
32
+ */
33
+ class InMemoryQueue {
34
+ /**
35
+ * The constructor the queue, exactly the same as that of Bulls.
36
+ * @param {string} name The name of the queue which is being configured.
37
+ * @param {object|null} opts This is not used by the in memory queue as there is no real use
38
+ * case when in memory, but is the same API as Bull
39
+ */
40
+ constructor(name, opts = null) {
41
+ this._name = name;
42
+ this._opts = opts;
43
+ this._messages = [];
44
+ this._emitter = new events.EventEmitter();
45
+ }
46
+ /**
47
+ * Same callback API as Bull, each callback passed to this will consume messages as they are
48
+ * available. Please note this is a queue service, not a notification service, so each
49
+ * consumer will receive different messages.
50
+ * @param {function<object>} func The callback function which will return a "Job", the same
51
+ * as the Bull API, within this job the property "data" contains the JSON message. Please
52
+ * note this is incredibly limited compared to Bull as in reality the Job would contain
53
+ * a lot more information about the queue and current status of Bull cluster.
54
+ */
55
+ process(func) {
56
+ this._emitter.on("message", () => __awaiter(this, void 0, void 0, function* () {
57
+ if (this._messages.length <= 0) {
58
+ return;
59
+ }
60
+ let msg = this._messages.shift();
61
+ let resp = func(msg);
62
+ if (resp.then != null) {
63
+ yield resp;
64
+ }
65
+ }));
66
+ }
67
+ // simply puts a message to the queue and emits to the queue for processing
68
+ /**
69
+ * Simple function to replicate the add message functionality of Bull, putting
70
+ * a new message on the queue. This then emits an event which will be used to
71
+ * return the message to a consumer (if one is attached).
72
+ * @param {object} msg A message to be transported over the queue, this should be
73
+ * a JSON message as this is required by Bull.
74
+ */
75
+ // eslint-disable-next-line no-unused-vars
76
+ add(msg, repeat) {
77
+ if (typeof msg !== "object") {
78
+ throw "Queue only supports carrying JSON.";
79
+ }
80
+ this._messages.push(newJob(this._name, msg));
81
+ this._emitter.emit("message");
82
+ }
83
+ /**
84
+ * replicating the close function from bull, which waits for jobs to finish.
85
+ */
86
+ close() {
87
+ return __awaiter(this, void 0, void 0, function* () {
88
+ return [];
89
+ });
90
+ }
91
+ /**
92
+ * This removes a cron which has been implemented, this is part of Bull API.
93
+ * @param {string} cronJobId The cron which is to be removed.
94
+ */
95
+ removeRepeatableByKey(cronJobId) {
96
+ // TODO: implement for testing
97
+ console.log(cronJobId);
98
+ }
99
+ /**
100
+ * Implemented for tests
101
+ */
102
+ getRepeatableJobs() {
103
+ return [];
104
+ }
105
+ // eslint-disable-next-line no-unused-vars
106
+ removeJobs(pattern) {
107
+ // no-op
108
+ }
109
+ /**
110
+ * Implemented for tests
111
+ */
112
+ clean() {
113
+ return __awaiter(this, void 0, void 0, function* () {
114
+ return [];
115
+ });
116
+ }
117
+ getJob() {
118
+ return __awaiter(this, void 0, void 0, function* () {
119
+ return {};
120
+ });
121
+ }
122
+ on() {
123
+ // do nothing
124
+ }
125
+ }
126
+ module.exports = InMemoryQueue;