@budibase/server 2.1.38 → 2.1.40-alpha.0

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 (788) hide show
  1. package/__mocks__/aws-sdk.ts +14 -0
  2. package/__mocks__/node-fetch.ts +5 -1
  3. package/builder/assets/{index.534f6c29.css → index.144dddb2.css} +2 -2
  4. package/builder/assets/{index.28915bf9.js → index.93f18258.js} +308 -308
  5. package/builder/index.html +2 -2
  6. package/coverage/clover.xml +10747 -3757
  7. package/coverage/coverage-final.json +266 -118
  8. package/coverage/lcov-report/index.html +679 -184
  9. package/coverage/lcov-report/src/api/controllers/analytics.ts.html +190 -0
  10. package/coverage/lcov-report/{api/controllers/apikeys.js.html → src/api/controllers/apikeys.ts.html} +26 -26
  11. package/coverage/lcov-report/src/api/controllers/application.ts.html +2038 -0
  12. package/coverage/lcov-report/src/api/controllers/auth.ts.html +301 -0
  13. package/coverage/lcov-report/{api/controllers/automation.js.html → src/api/controllers/automation.ts.html} +75 -75
  14. package/coverage/lcov-report/src/api/controllers/backup.ts.html +148 -0
  15. package/coverage/lcov-report/{api/controllers/cloud.js.html → src/api/controllers/cloud.ts.html} +47 -47
  16. package/coverage/lcov-report/src/api/controllers/component.ts.html +259 -0
  17. package/coverage/lcov-report/{api/controllers/datasource.js.html → src/api/controllers/datasource.ts.html} +246 -87
  18. package/coverage/lcov-report/src/api/controllers/deploy/Deployment.ts.html +259 -0
  19. package/coverage/lcov-report/{utilities/rowProcessor → src/api/controllers/deploy}/index.html +40 -40
  20. package/coverage/lcov-report/src/api/controllers/deploy/index.ts.html +730 -0
  21. package/coverage/lcov-report/{api/controllers/dev.js.html → src/api/controllers/dev.ts.html} +53 -71
  22. package/coverage/lcov-report/src/api/controllers/index.html +431 -0
  23. package/coverage/lcov-report/{api/controllers/integration.js.html → src/api/controllers/integration.ts.html} +19 -22
  24. package/coverage/lcov-report/{api/controllers/layout.js.html → src/api/controllers/layout.ts.html} +26 -26
  25. package/coverage/lcov-report/{api/controllers/metadata.js.html → src/api/controllers/metadata.ts.html} +26 -23
  26. package/coverage/lcov-report/{api/controllers/migrations.js.html → src/api/controllers/migrations.ts.html} +18 -15
  27. package/coverage/lcov-report/{api/controllers/permission.js.html → src/api/controllers/permission.ts.html} +80 -71
  28. package/coverage/lcov-report/src/api/controllers/plugin/file.ts.html +130 -0
  29. package/coverage/lcov-report/src/api/controllers/plugin/github.ts.html +310 -0
  30. package/coverage/lcov-report/src/api/controllers/plugin/index.html +206 -0
  31. package/coverage/lcov-report/src/api/controllers/plugin/index.ts.html +484 -0
  32. package/coverage/lcov-report/src/api/controllers/plugin/npm.ts.html +253 -0
  33. package/coverage/lcov-report/src/api/controllers/plugin/uploaders.ts.html +97 -0
  34. package/coverage/lcov-report/src/api/controllers/plugin/url.ts.html +121 -0
  35. package/coverage/lcov-report/src/api/controllers/plugin/utils.ts.html +136 -0
  36. package/coverage/lcov-report/src/api/controllers/public/applications.ts.html +334 -0
  37. package/coverage/lcov-report/src/api/controllers/public/index.html +191 -0
  38. package/coverage/lcov-report/src/api/controllers/public/mapping/applications.ts.html +181 -0
  39. package/coverage/lcov-report/src/api/controllers/public/mapping/index.html +191 -0
  40. package/coverage/lcov-report/src/api/controllers/public/mapping/index.ts.html +124 -0
  41. package/coverage/lcov-report/src/api/controllers/public/mapping/queries.ts.html +202 -0
  42. package/coverage/lcov-report/src/api/controllers/public/mapping/rows.ts.html +178 -0
  43. package/coverage/lcov-report/src/api/controllers/public/mapping/tables.ts.html +163 -0
  44. package/coverage/lcov-report/src/api/controllers/public/mapping/users.ts.html +181 -0
  45. package/coverage/lcov-report/src/api/controllers/public/queries.ts.html +145 -0
  46. package/coverage/lcov-report/src/api/controllers/public/rows.ts.html +328 -0
  47. package/coverage/lcov-report/src/api/controllers/public/tables.ts.html +253 -0
  48. package/coverage/lcov-report/src/api/controllers/public/users.ts.html +268 -0
  49. package/coverage/lcov-report/src/api/controllers/public/utils.ts.html +220 -0
  50. package/coverage/lcov-report/src/api/controllers/query/import/index.html +116 -0
  51. package/coverage/lcov-report/src/api/controllers/query/import/index.ts.html +373 -0
  52. package/coverage/lcov-report/src/api/controllers/query/import/sources/base/index.html +131 -0
  53. package/coverage/lcov-report/src/api/controllers/query/import/sources/base/index.ts.html +379 -0
  54. package/coverage/lcov-report/src/api/controllers/query/import/sources/base/openapi.ts.html +157 -0
  55. package/coverage/lcov-report/src/api/controllers/query/import/sources/curl.ts.html +403 -0
  56. package/coverage/lcov-report/src/api/controllers/query/import/sources/index.html +146 -0
  57. package/coverage/lcov-report/src/api/controllers/query/import/sources/openapi2.ts.html +586 -0
  58. package/coverage/lcov-report/src/api/controllers/query/import/sources/openapi3.ts.html +712 -0
  59. package/coverage/lcov-report/src/api/controllers/query/index.html +131 -0
  60. package/coverage/lcov-report/src/api/controllers/query/index.ts.html +976 -0
  61. package/coverage/lcov-report/{api/controllers/query/validation.js.html → src/api/controllers/query/validation.ts.html} +17 -17
  62. package/coverage/lcov-report/{api/controllers/role.js.html → src/api/controllers/role.ts.html} +44 -56
  63. package/coverage/lcov-report/{api/controllers/routing.js.html → src/api/controllers/routing.ts.html} +65 -56
  64. package/coverage/lcov-report/src/api/controllers/row/ExternalRequest.ts.html +2260 -0
  65. package/coverage/lcov-report/{api/controllers/row/external.js.html → src/api/controllers/row/external.ts.html} +145 -94
  66. package/coverage/lcov-report/{api → src/api}/controllers/row/index.html +82 -52
  67. package/coverage/lcov-report/src/api/controllers/row/index.ts.html +541 -0
  68. package/coverage/lcov-report/{api/controllers/row/internal.js.html → src/api/controllers/row/internal.ts.html} +137 -95
  69. package/coverage/lcov-report/{api/controllers/row/internalSearch.js.html → src/api/controllers/row/internalSearch.ts.html} +182 -110
  70. package/coverage/lcov-report/{api/controllers/row/staticFormula.js.html → src/api/controllers/row/staticFormula.ts.html} +66 -51
  71. package/coverage/lcov-report/{api/controllers/row/utils.js.html → src/api/controllers/row/utils.ts.html} +77 -47
  72. package/coverage/lcov-report/src/api/controllers/screen.ts.html +463 -0
  73. package/coverage/lcov-report/{api/controllers/script.js.html → src/api/controllers/script.ts.html} +17 -14
  74. package/coverage/lcov-report/src/api/controllers/static/index.html +116 -0
  75. package/coverage/lcov-report/src/api/controllers/static/index.ts.html +694 -0
  76. package/coverage/lcov-report/{api/controllers/table/bulkFormula.js.html → src/api/controllers/table/bulkFormula.ts.html} +96 -54
  77. package/coverage/lcov-report/{api/controllers/table/external.js.html → src/api/controllers/table/external.ts.html} +196 -103
  78. package/coverage/lcov-report/src/api/controllers/table/index.html +176 -0
  79. package/coverage/lcov-report/{api/controllers/table/index.js.html → src/api/controllers/table/index.ts.html} +46 -37
  80. package/coverage/lcov-report/src/api/controllers/table/internal.ts.html +661 -0
  81. package/coverage/lcov-report/src/api/controllers/table/utils.ts.html +1255 -0
  82. package/coverage/lcov-report/{api/controllers/templates.js.html → src/api/controllers/templates.ts.html} +34 -25
  83. package/coverage/lcov-report/{api/controllers/user.js.html → src/api/controllers/user.ts.html} +79 -85
  84. package/coverage/lcov-report/{api/controllers/view/exporters.js.html → src/api/controllers/view/exporters.ts.html} +20 -14
  85. package/coverage/lcov-report/{api → src/api}/controllers/view/index.html +36 -36
  86. package/coverage/lcov-report/{api/controllers/view/index.js.html → src/api/controllers/view/index.ts.html} +75 -48
  87. package/coverage/lcov-report/{api/controllers/view/utils.js.html → src/api/controllers/view/utils.ts.html} +61 -43
  88. package/coverage/lcov-report/{api/controllers/view/viewBuilder.js.html → src/api/controllers/view/viewBuilder.ts.html} +74 -32
  89. package/coverage/lcov-report/src/api/controllers/webhook.ts.html +379 -0
  90. package/coverage/lcov-report/{api → src/api}/index.html +23 -23
  91. package/coverage/lcov-report/{api/index.js.html → src/api/index.ts.html} +35 -56
  92. package/coverage/lcov-report/{api/routes/analytics.js.html → src/api/routes/analytics.ts.html} +14 -14
  93. package/coverage/lcov-report/{api/routes/integration.js.html → src/api/routes/apikeys.ts.html} +18 -18
  94. package/coverage/lcov-report/{constants/screens.js.html → src/api/routes/application.ts.html} +63 -63
  95. package/coverage/lcov-report/src/api/routes/auth.ts.html +109 -0
  96. package/coverage/lcov-report/{api/routes/automation.js.html → src/api/routes/automation.ts.html} +48 -42
  97. package/coverage/lcov-report/{api/routes/cloud.js.html → src/api/routes/backup.ts.html} +21 -21
  98. package/coverage/lcov-report/{api/routes/deploy.js.html → src/api/routes/cloud.ts.html} +25 -22
  99. package/coverage/lcov-report/{api/routes/component.js.html → src/api/routes/component.ts.html} +17 -17
  100. package/coverage/lcov-report/src/api/routes/datasource.ts.html +265 -0
  101. package/coverage/lcov-report/src/api/routes/deploy.ts.html +148 -0
  102. package/coverage/lcov-report/src/api/routes/dev.ts.html +199 -0
  103. package/coverage/lcov-report/{api → src/api}/routes/index.html +167 -47
  104. package/coverage/lcov-report/src/api/routes/index.ts.html +289 -0
  105. package/coverage/lcov-report/src/api/routes/integration.ts.html +133 -0
  106. package/coverage/lcov-report/{api/routes/layout.js.html → src/api/routes/layout.ts.html} +18 -18
  107. package/coverage/lcov-report/{api/routes/metadata.js.html → src/api/routes/metadata.ts.html} +24 -24
  108. package/coverage/lcov-report/src/api/routes/migrations.ts.html +127 -0
  109. package/coverage/lcov-report/{api/routes/permission.js.html → src/api/routes/permission.ts.html} +48 -24
  110. package/coverage/lcov-report/src/api/routes/plugin.ts.html +151 -0
  111. package/coverage/lcov-report/src/api/routes/public/applications.ts.html +541 -0
  112. package/coverage/lcov-report/src/api/routes/public/index.html +191 -0
  113. package/coverage/lcov-report/src/api/routes/public/index.ts.html +493 -0
  114. package/coverage/lcov-report/src/api/routes/public/middleware/index.html +116 -0
  115. package/coverage/lcov-report/src/api/routes/public/middleware/mapper.ts.html +328 -0
  116. package/coverage/lcov-report/src/api/routes/public/queries.ts.html +313 -0
  117. package/coverage/lcov-report/src/api/routes/public/rows.ts.html +598 -0
  118. package/coverage/lcov-report/src/api/routes/public/tables.ts.html +586 -0
  119. package/coverage/lcov-report/src/api/routes/public/users.ts.html +511 -0
  120. package/coverage/lcov-report/src/api/routes/public/utils/Endpoint.ts.html +238 -0
  121. package/coverage/lcov-report/src/api/routes/public/utils/index.html +116 -0
  122. package/coverage/lcov-report/{api/routes/query.js.html → src/api/routes/query.ts.html} +33 -42
  123. package/coverage/lcov-report/{utilities/routing/index.js.html → src/api/routes/role.ts.html} +39 -42
  124. package/coverage/lcov-report/{api/routes/routing.js.html → src/api/routes/routing.ts.html} +17 -17
  125. package/coverage/lcov-report/src/api/routes/row.ts.html +883 -0
  126. package/coverage/lcov-report/{api/routes/screen.js.html → src/api/routes/screen.ts.html} +36 -21
  127. package/coverage/lcov-report/{api/routes/script.js.html → src/api/routes/script.ts.html} +17 -17
  128. package/coverage/lcov-report/src/api/routes/static.ts.html +280 -0
  129. package/coverage/lcov-report/{api/routes/table.js.html → src/api/routes/table.ts.html} +24 -33
  130. package/coverage/lcov-report/{api/routes/templates.js.html → src/api/routes/templates.ts.html} +18 -18
  131. package/coverage/lcov-report/src/api/routes/tests/utilities/TestFunctions.ts.html +550 -0
  132. package/coverage/lcov-report/src/api/routes/tests/utilities/index.html +131 -0
  133. package/coverage/lcov-report/src/api/routes/tests/utilities/index.ts.html +367 -0
  134. package/coverage/lcov-report/{api/routes/user.js.html → src/api/routes/user.ts.html} +29 -35
  135. package/coverage/lcov-report/{api → src/api}/routes/utils/index.html +15 -15
  136. package/coverage/lcov-report/{api/routes/utils/validators.js.html → src/api/routes/utils/validators.ts.html} +46 -58
  137. package/coverage/lcov-report/{api/routes/view.js.html → src/api/routes/view.ts.html} +40 -31
  138. package/coverage/lcov-report/src/api/routes/webhook.ts.html +166 -0
  139. package/coverage/lcov-report/src/app.ts.html +406 -0
  140. package/coverage/lcov-report/{automations/actions.js.html → src/automations/actions.ts.html} +50 -41
  141. package/coverage/lcov-report/{automations/automationUtils.js.html → src/automations/automationUtils.ts.html} +30 -27
  142. package/coverage/lcov-report/{automations/bullboard.js.html → src/automations/bullboard.ts.html} +30 -33
  143. package/coverage/lcov-report/{automations → src/automations}/index.html +63 -48
  144. package/coverage/lcov-report/{api/routes/dev.js.html → src/automations/index.ts.html} +42 -42
  145. package/coverage/lcov-report/src/automations/logging/index.html +116 -0
  146. package/coverage/lcov-report/{events/utils.js.html → src/automations/logging/index.ts.html} +70 -70
  147. package/coverage/lcov-report/{automations/steps/bash.js.html → src/automations/steps/bash.ts.html} +40 -25
  148. package/coverage/lcov-report/src/automations/steps/createRow.ts.html +382 -0
  149. package/coverage/lcov-report/{automations/steps/delay.js.html → src/automations/steps/delay.ts.html} +32 -17
  150. package/coverage/lcov-report/src/automations/steps/deleteRow.ts.html +349 -0
  151. package/coverage/lcov-report/{automations/steps/discord.js.html → src/automations/steps/discord.ts.html} +38 -23
  152. package/coverage/lcov-report/{automations/steps/executeQuery.js.html → src/automations/steps/executeQuery.ts.html} +41 -26
  153. package/coverage/lcov-report/{automations/steps/executeScript.js.html → src/automations/steps/executeScript.ts.html} +54 -24
  154. package/coverage/lcov-report/{automations/steps/filter.js.html → src/automations/steps/filter.ts.html} +36 -27
  155. package/coverage/lcov-report/src/automations/steps/index.html +371 -0
  156. package/coverage/lcov-report/{automations/steps/integromat.js.html → src/automations/steps/integromat.ts.html} +35 -20
  157. package/coverage/lcov-report/{automations/steps/loop.js.html → src/automations/steps/loop.ts.html} +21 -15
  158. package/coverage/lcov-report/{automations/steps/outgoingWebhook.js.html → src/automations/steps/outgoingWebhook.ts.html} +48 -33
  159. package/coverage/lcov-report/{automations/steps/queryRows.js.html → src/automations/steps/queryRows.ts.html} +94 -58
  160. package/coverage/lcov-report/{automations/steps/sendSmtpEmail.js.html → src/automations/steps/sendSmtpEmail.ts.html} +37 -22
  161. package/coverage/lcov-report/{automations/steps/serverLog.js.html → src/automations/steps/serverLog.ts.html} +38 -20
  162. package/coverage/lcov-report/{automations/steps/slack.js.html → src/automations/steps/slack.ts.html} +35 -20
  163. package/coverage/lcov-report/{automations/steps/updateRow.js.html → src/automations/steps/updateRow.ts.html} +36 -21
  164. package/coverage/lcov-report/{automations/steps/utils.js.html → src/automations/steps/utils.ts.html} +44 -26
  165. package/coverage/lcov-report/{automations/steps/zapier.js.html → src/automations/steps/zapier.ts.html} +38 -20
  166. package/coverage/lcov-report/src/automations/tests/utilities/index.html +116 -0
  167. package/coverage/lcov-report/src/automations/tests/utilities/index.ts.html +265 -0
  168. package/coverage/lcov-report/src/automations/triggerInfo/app.ts.html +196 -0
  169. package/coverage/lcov-report/{automations/triggerInfo/cron.js.html → src/automations/triggerInfo/cron.ts.html} +30 -15
  170. package/coverage/lcov-report/{automations → src/automations}/triggerInfo/index.html +31 -31
  171. package/coverage/lcov-report/{automations/triggerInfo/index.js.html → src/automations/triggerInfo/index.ts.html} +17 -17
  172. package/coverage/lcov-report/{automations/triggerInfo/rowDeleted.js.html → src/automations/triggerInfo/rowDeleted.ts.html} +30 -15
  173. package/coverage/lcov-report/{automations/triggerInfo/rowSaved.js.html → src/automations/triggerInfo/rowSaved.ts.html} +30 -15
  174. package/coverage/lcov-report/{automations/triggerInfo/rowUpdated.js.html → src/automations/triggerInfo/rowUpdated.ts.html} +30 -15
  175. package/coverage/lcov-report/{automations/triggerInfo/webhook.js.html → src/automations/triggerInfo/webhook.ts.html} +30 -15
  176. package/coverage/lcov-report/{automations/triggers.js.html → src/automations/triggers.ts.html} +59 -47
  177. package/coverage/lcov-report/src/automations/utils.ts.html +886 -0
  178. package/coverage/lcov-report/{constants → src/constants}/index.html +26 -26
  179. package/coverage/lcov-report/{constants/index.js.html → src/constants/index.ts.html} +173 -185
  180. package/coverage/lcov-report/{constants/layouts.js.html → src/constants/layouts.ts.html} +16 -34
  181. package/coverage/lcov-report/{api/routes/datasource.js.html → src/constants/screens.ts.html} +56 -65
  182. package/coverage/lcov-report/src/db/defaultData/datasource_bb_default.ts.html +2032 -0
  183. package/coverage/lcov-report/src/db/defaultData/employeeImport.ts.html +541 -0
  184. package/coverage/lcov-report/src/db/defaultData/expensesImport.ts.html +427 -0
  185. package/coverage/lcov-report/src/db/defaultData/index.html +176 -0
  186. package/coverage/lcov-report/src/db/defaultData/inventoryImport.ts.html +403 -0
  187. package/coverage/lcov-report/src/db/defaultData/jobsImport.ts.html +559 -0
  188. package/coverage/lcov-report/src/db/dynamoClient.ts.html +526 -0
  189. package/coverage/lcov-report/{db/inMemoryView.js.html → src/db/inMemoryView.ts.html} +44 -26
  190. package/coverage/lcov-report/{db → src/db}/index.html +48 -33
  191. package/coverage/lcov-report/src/db/index.ts.html +133 -0
  192. package/coverage/lcov-report/{db/linkedRows/LinkController.js.html → src/db/linkedRows/LinkController.ts.html} +92 -155
  193. package/coverage/lcov-report/src/db/linkedRows/LinkDocument.ts.html +265 -0
  194. package/coverage/lcov-report/src/db/linkedRows/index.html +161 -0
  195. package/coverage/lcov-report/{db/linkedRows/index.js.html → src/db/linkedRows/index.ts.html} +83 -68
  196. package/coverage/lcov-report/{db/linkedRows/linkUtils.js.html → src/db/linkedRows/linkUtils.ts.html} +73 -46
  197. package/coverage/lcov-report/{db/newid.js.html → src/db/newid.ts.html} +11 -11
  198. package/coverage/lcov-report/{db/utils.js.html → src/db/utils.ts.html} +105 -153
  199. package/coverage/lcov-report/{automations/triggerInfo/app.js.html → src/definitions/automations.ts.html} +42 -42
  200. package/coverage/lcov-report/src/definitions/datasource.ts.html +235 -0
  201. package/coverage/lcov-report/src/definitions/index.html +131 -0
  202. package/coverage/lcov-report/src/environment.ts.html +457 -0
  203. package/coverage/lcov-report/{events/AutomationEmitter.js.html → src/events/AutomationEmitter.ts.html} +36 -21
  204. package/coverage/lcov-report/{events/index.js.html → src/events/BudibaseEmitter.ts.html} +23 -26
  205. package/coverage/lcov-report/{events → src/events}/index.html +48 -33
  206. package/coverage/lcov-report/src/events/index.ts.html +100 -0
  207. package/coverage/lcov-report/src/events/utils.ts.html +319 -0
  208. package/coverage/lcov-report/src/index.html +191 -0
  209. package/coverage/lcov-report/{db/index.js.html → src/index.ts.html} +35 -35
  210. package/coverage/lcov-report/{utilities/queue/inMemoryQueue.js.html → src/integrations/airtable.ts.html} +213 -135
  211. package/coverage/lcov-report/src/integrations/arangodb.ts.html +415 -0
  212. package/coverage/lcov-report/src/integrations/base/index.html +161 -0
  213. package/coverage/lcov-report/src/integrations/base/query.ts.html +133 -0
  214. package/coverage/lcov-report/src/integrations/base/sql.ts.html +1951 -0
  215. package/coverage/lcov-report/src/integrations/base/sqlTable.ts.html +691 -0
  216. package/coverage/lcov-report/src/integrations/base/utils.ts.html +121 -0
  217. package/coverage/lcov-report/src/integrations/couchdb.ts.html +406 -0
  218. package/coverage/lcov-report/src/integrations/dynamodb.ts.html +745 -0
  219. package/coverage/lcov-report/src/integrations/elasticsearch.ts.html +634 -0
  220. package/coverage/lcov-report/src/integrations/firebase.ts.html +646 -0
  221. package/coverage/lcov-report/src/integrations/googlesheets.ts.html +1315 -0
  222. package/coverage/lcov-report/src/integrations/index.html +371 -0
  223. package/coverage/lcov-report/src/integrations/index.ts.html +445 -0
  224. package/coverage/lcov-report/src/integrations/microsoftSqlServer.ts.html +1006 -0
  225. package/coverage/lcov-report/src/integrations/mongodb.ts.html +1867 -0
  226. package/coverage/lcov-report/src/integrations/mysql.ts.html +964 -0
  227. package/coverage/lcov-report/src/integrations/oracle.ts.html +1474 -0
  228. package/coverage/lcov-report/src/integrations/postgres.ts.html +1069 -0
  229. package/coverage/lcov-report/src/integrations/queries/index.html +116 -0
  230. package/coverage/lcov-report/src/integrations/queries/sql.ts.html +463 -0
  231. package/coverage/lcov-report/src/integrations/redis.ts.html +550 -0
  232. package/coverage/lcov-report/src/integrations/rest.ts.html +1381 -0
  233. package/coverage/lcov-report/src/integrations/s3.ts.html +862 -0
  234. package/coverage/lcov-report/src/integrations/snowflake.ts.html +376 -0
  235. package/coverage/lcov-report/{integrations → src/integrations}/tests/TestConfiguration.js.html +10 -10
  236. package/coverage/lcov-report/{integrations → src/integrations}/tests/index.html +10 -10
  237. package/coverage/lcov-report/src/integrations/utils.ts.html +1018 -0
  238. package/coverage/lcov-report/{middleware/appInfo.js.html → src/middleware/appInfo.ts.html} +31 -28
  239. package/coverage/lcov-report/src/middleware/authorized.ts.html +460 -0
  240. package/coverage/lcov-report/{middleware/builder.js.html → src/middleware/builder.ts.html} +43 -37
  241. package/coverage/lcov-report/{middleware/currentapp.js.html → src/middleware/currentapp.ts.html} +77 -68
  242. package/coverage/lcov-report/{middleware → src/middleware}/index.html +78 -63
  243. package/coverage/lcov-report/{middleware/joi-validator.js.html → src/middleware/joi-validator.ts.html} +25 -22
  244. package/coverage/lcov-report/{middleware/publicApi.js.html → src/middleware/publicApi.ts.html} +24 -24
  245. package/coverage/lcov-report/{middleware/resourceId.js.html → src/middleware/resourceId.ts.html} +40 -25
  246. package/coverage/lcov-report/{api/routes/apikeys.js.html → src/middleware/selfhost.ts.html} +27 -27
  247. package/coverage/lcov-report/{middleware/utils.js.html → src/middleware/utils.ts.html} +19 -13
  248. package/coverage/lcov-report/src/migrations/functions/appUrls.ts.html +187 -0
  249. package/coverage/lcov-report/src/migrations/functions/backfill/app/automations.ts.html +163 -0
  250. package/coverage/lcov-report/src/migrations/functions/backfill/app/datasources.ts.html +151 -0
  251. package/coverage/lcov-report/src/migrations/functions/backfill/app/index.html +206 -0
  252. package/coverage/lcov-report/{automations/index.js.html → src/migrations/functions/backfill/app/layouts.ts.html} +53 -53
  253. package/coverage/lcov-report/src/migrations/functions/backfill/app/queries.ts.html +226 -0
  254. package/coverage/lcov-report/src/migrations/functions/backfill/app/roles.ts.html +151 -0
  255. package/coverage/lcov-report/src/migrations/functions/backfill/app/screens.ts.html +151 -0
  256. package/coverage/lcov-report/src/migrations/functions/backfill/app/tables.ts.html +166 -0
  257. package/coverage/lcov-report/src/migrations/functions/backfill/app.ts.html +532 -0
  258. package/coverage/lcov-report/src/migrations/functions/backfill/global/configs.ts.html +283 -0
  259. package/coverage/lcov-report/src/migrations/functions/backfill/global/index.html +146 -0
  260. package/coverage/lcov-report/src/migrations/functions/backfill/global/quotas.ts.html +265 -0
  261. package/coverage/lcov-report/src/migrations/functions/backfill/global/users.ts.html +232 -0
  262. package/coverage/lcov-report/src/migrations/functions/backfill/global.ts.html +724 -0
  263. package/coverage/lcov-report/src/migrations/functions/backfill/index.html +161 -0
  264. package/coverage/lcov-report/src/migrations/functions/backfill/index.ts.html +106 -0
  265. package/coverage/lcov-report/src/migrations/functions/backfill/installation.ts.html +235 -0
  266. package/coverage/lcov-report/src/migrations/functions/index.html +146 -0
  267. package/coverage/lcov-report/{api/routes/role.js.html → src/migrations/functions/syncQuotas.ts.html} +32 -32
  268. package/coverage/lcov-report/src/migrations/functions/usageQuotas/index.html +161 -0
  269. package/coverage/lcov-report/src/migrations/functions/usageQuotas/index.ts.html +94 -0
  270. package/coverage/lcov-report/src/migrations/functions/usageQuotas/syncApps.ts.html +127 -0
  271. package/coverage/lcov-report/src/migrations/functions/usageQuotas/syncPlugins.ts.html +115 -0
  272. package/coverage/lcov-report/src/migrations/functions/usageQuotas/syncRows.ts.html +169 -0
  273. package/coverage/lcov-report/src/migrations/functions/userEmailViewCasing.ts.html +124 -0
  274. package/coverage/lcov-report/{utilities/queue → src/migrations}/index.html +23 -23
  275. package/coverage/lcov-report/src/migrations/index.ts.html +403 -0
  276. package/coverage/lcov-report/src/migrations/tests/helpers.ts.html +205 -0
  277. package/coverage/lcov-report/src/migrations/tests/index.html +131 -0
  278. package/coverage/lcov-report/src/migrations/tests/structures.ts.html +283 -0
  279. package/coverage/lcov-report/src/sdk/app/automations/index.html +131 -0
  280. package/coverage/lcov-report/src/sdk/app/automations/index.ts.html +100 -0
  281. package/coverage/lcov-report/src/sdk/app/automations/webhook.ts.html +214 -0
  282. package/coverage/lcov-report/src/sdk/app/backups/constants.ts.html +91 -0
  283. package/coverage/lcov-report/src/sdk/app/backups/exports.ts.html +604 -0
  284. package/coverage/lcov-report/src/sdk/app/backups/imports.ts.html +682 -0
  285. package/coverage/lcov-report/src/sdk/app/backups/index.html +176 -0
  286. package/coverage/lcov-report/src/sdk/app/backups/index.ts.html +112 -0
  287. package/coverage/lcov-report/src/sdk/app/backups/statistics.ts.html +292 -0
  288. package/coverage/lcov-report/src/sdk/app/tables/index.html +116 -0
  289. package/coverage/lcov-report/src/sdk/app/tables/index.ts.html +265 -0
  290. package/coverage/lcov-report/{utilities/routing → src/sdk}/index.html +10 -10
  291. package/coverage/lcov-report/{api/routes/migrations.js.html → src/sdk/index.ts.html} +24 -21
  292. package/coverage/lcov-report/src/startup.ts.html +499 -0
  293. package/coverage/lcov-report/src/tests/utilities/TestConfiguration.ts.html +1966 -0
  294. package/coverage/lcov-report/src/tests/utilities/controllers.ts.html +127 -0
  295. package/coverage/lcov-report/src/tests/utilities/index.html +161 -0
  296. package/coverage/lcov-report/{middleware/selfhost.js.html → src/tests/utilities/index.ts.html} +33 -30
  297. package/coverage/lcov-report/src/tests/utilities/structures.ts.html +667 -0
  298. package/coverage/lcov-report/src/threads/automation.ts.html +1594 -0
  299. package/coverage/lcov-report/src/threads/index.html +161 -0
  300. package/coverage/lcov-report/src/threads/index.ts.html +418 -0
  301. package/coverage/lcov-report/src/threads/query.ts.html +961 -0
  302. package/coverage/lcov-report/src/threads/utils.ts.html +373 -0
  303. package/coverage/lcov-report/{utilities/budibaseDir.js.html → src/utilities/budibaseDir.ts.html} +12 -12
  304. package/coverage/lcov-report/{utilities/centralPath.js.html → src/utilities/centralPath.ts.html} +13 -13
  305. package/coverage/lcov-report/{utilities/csvParser.js.html → src/utilities/csvParser.ts.html} +104 -56
  306. package/coverage/lcov-report/src/utilities/fileSystem/clientLibrary.ts.html +547 -0
  307. package/coverage/lcov-report/{api/controllers/table → src/utilities/fileSystem}/index.html +43 -43
  308. package/coverage/lcov-report/src/utilities/fileSystem/index.ts.html +1117 -0
  309. package/coverage/lcov-report/src/utilities/fileSystem/processor.ts.html +142 -0
  310. package/coverage/lcov-report/{utilities/global.js.html → src/utilities/global.ts.html} +107 -74
  311. package/coverage/lcov-report/{utilities → src/utilities}/index.html +92 -77
  312. package/coverage/lcov-report/{utilities/index.js.html → src/utilities/index.ts.html} +78 -54
  313. package/coverage/lcov-report/{utilities/plugins.js.html → src/utilities/plugins.ts.html} +22 -19
  314. package/coverage/lcov-report/src/utilities/redis.ts.html +343 -0
  315. package/coverage/lcov-report/{api/controllers/query → src/utilities/routing}/index.html +8 -8
  316. package/coverage/lcov-report/src/utilities/routing/index.ts.html +181 -0
  317. package/coverage/lcov-report/src/utilities/rowProcessor/index.html +146 -0
  318. package/coverage/lcov-report/{utilities/rowProcessor/index.js.html → src/utilities/rowProcessor/index.ts.html} +115 -346
  319. package/coverage/lcov-report/src/utilities/rowProcessor/map.ts.html +373 -0
  320. package/coverage/lcov-report/{utilities/rowProcessor/utils.js.html → src/utilities/rowProcessor/utils.ts.html} +50 -38
  321. package/coverage/lcov-report/{utilities/scriptRunner.js.html → src/utilities/scriptRunner.ts.html} +28 -16
  322. package/coverage/lcov-report/{utilities/security.js.html → src/utilities/security.ts.html} +56 -74
  323. package/coverage/lcov-report/{utilities/statusCodes.js.html → src/utilities/statusCodes.ts.html} +11 -11
  324. package/coverage/lcov-report/{utilities → src/utilities}/usageQuota/index.html +28 -28
  325. package/coverage/lcov-report/{utilities/usageQuota/rows.js.html → src/utilities/usageQuota/rows.ts.html} +34 -46
  326. package/coverage/lcov-report/{utilities/usageQuota/usageQuoteReset.js.html → src/utilities/usageQuota/usageQuoteReset.ts.html} +13 -13
  327. package/coverage/lcov-report/{utilities/users.js.html → src/utilities/users.ts.html} +29 -35
  328. package/coverage/lcov-report/{utilities/workerRequests.js.html → src/utilities/workerRequests.ts.html} +129 -114
  329. package/coverage/lcov-report/src/watch.ts.html +196 -0
  330. package/coverage/lcov-report/src/websocket.ts.html +163 -0
  331. package/coverage/lcov.info +19514 -6962
  332. package/dist/api/controllers/apikeys.js +12 -9
  333. package/dist/api/controllers/application.js +48 -45
  334. package/dist/api/controllers/automation.js +122 -82
  335. package/dist/api/controllers/cloud.js +84 -71
  336. package/dist/api/controllers/component.js +4 -2
  337. package/dist/api/controllers/datasource.js +144 -92
  338. package/dist/api/controllers/deploy/Deployment.js +10 -6
  339. package/dist/api/controllers/deploy/index.js +13 -16
  340. package/dist/api/controllers/dev.js +96 -81
  341. package/dist/api/controllers/integration.js +11 -8
  342. package/dist/api/controllers/layout.js +18 -15
  343. package/dist/api/controllers/metadata.js +51 -37
  344. package/dist/api/controllers/migrations.js +19 -11
  345. package/dist/api/controllers/permission.js +52 -43
  346. package/dist/api/controllers/plugin/index.js +6 -7
  347. package/dist/api/controllers/plugin/utils.js +2 -1
  348. package/dist/api/controllers/public/applications.js +17 -9
  349. package/dist/api/controllers/public/tables.js +29 -9
  350. package/dist/api/controllers/public/utils.js +2 -2
  351. package/dist/api/controllers/query/import/index.js +1 -2
  352. package/dist/api/controllers/query/index.js +10 -13
  353. package/dist/api/controllers/query/validation.js +41 -33
  354. package/dist/api/controllers/role.js +29 -27
  355. package/dist/api/controllers/routing.js +71 -58
  356. package/dist/api/controllers/row/ExternalRequest.js +538 -542
  357. package/dist/api/controllers/row/external.js +258 -190
  358. package/dist/api/controllers/row/index.js +43 -14
  359. package/dist/api/controllers/row/internal.js +354 -295
  360. package/dist/api/controllers/row/internalSearch.js +95 -80
  361. package/dist/api/controllers/row/staticFormula.js +125 -112
  362. package/dist/api/controllers/row/utils.js +122 -84
  363. package/dist/api/controllers/screen.js +81 -66
  364. package/dist/api/controllers/script.js +13 -6
  365. package/dist/api/controllers/static/index.js +11 -14
  366. package/dist/api/controllers/table/bulkFormula.js +47 -35
  367. package/dist/api/controllers/table/external.js +89 -53
  368. package/dist/api/controllers/table/index.js +64 -31
  369. package/dist/api/controllers/table/internal.js +5 -6
  370. package/dist/api/controllers/table/utils.js +39 -35
  371. package/dist/api/controllers/templates.js +17 -10
  372. package/dist/api/controllers/user.js +82 -70
  373. package/dist/api/controllers/view/exporters.js +8 -4
  374. package/dist/api/controllers/view/index.js +201 -153
  375. package/dist/api/controllers/view/utils.js +151 -121
  376. package/dist/api/controllers/view/viewBuilder.js +4 -16
  377. package/dist/api/controllers/webhook.js +25 -2
  378. package/dist/api/index.js +38 -34
  379. package/dist/api/routes/analytics.js +29 -3
  380. package/dist/api/routes/apikeys.js +33 -7
  381. package/dist/api/routes/application.js +8 -9
  382. package/dist/api/routes/auth.js +1 -2
  383. package/dist/api/routes/automation.js +46 -20
  384. package/dist/api/routes/backup.js +3 -4
  385. package/dist/api/routes/cloud.js +32 -6
  386. package/dist/api/routes/component.js +32 -6
  387. package/dist/api/routes/datasource.js +39 -13
  388. package/dist/api/routes/deploy.js +34 -8
  389. package/dist/api/routes/dev.js +36 -10
  390. package/dist/api/routes/integration.js +33 -7
  391. package/dist/api/routes/layout.js +33 -7
  392. package/dist/api/routes/metadata.js +36 -10
  393. package/dist/api/routes/migrations.js +32 -6
  394. package/dist/api/routes/permission.js +38 -12
  395. package/dist/api/routes/plugin.js +5 -5
  396. package/dist/api/routes/public/index.js +11 -11
  397. package/dist/api/routes/query.js +42 -15
  398. package/dist/api/routes/role.js +36 -10
  399. package/dist/api/routes/routing.js +32 -6
  400. package/dist/api/routes/row.js +12 -11
  401. package/dist/api/routes/screen.js +35 -9
  402. package/dist/api/routes/script.js +32 -6
  403. package/dist/api/routes/static.js +9 -9
  404. package/dist/api/routes/table.js +40 -13
  405. package/dist/api/routes/templates.js +33 -7
  406. package/dist/api/routes/tests/utilities/TestFunctions.js +6 -8
  407. package/dist/api/routes/tests/utilities/index.js +69 -32
  408. package/dist/api/routes/user.js +40 -13
  409. package/dist/api/routes/utils/validators.js +142 -126
  410. package/dist/api/routes/view.js +38 -12
  411. package/dist/api/routes/webhook.js +1 -2
  412. package/dist/app.js +22 -22
  413. package/dist/automations/actions.js +53 -24
  414. package/dist/automations/automationUtils.js +31 -19
  415. package/dist/automations/bullboard.js +59 -29
  416. package/dist/automations/index.js +23 -18
  417. package/dist/automations/steps/bash.js +40 -10
  418. package/dist/automations/steps/createRow.js +2 -1
  419. package/dist/automations/steps/delay.js +9 -5
  420. package/dist/automations/steps/deleteRow.js +2 -1
  421. package/dist/automations/steps/discord.js +14 -7
  422. package/dist/automations/steps/executeQuery.js +34 -7
  423. package/dist/automations/steps/executeScript.js +34 -7
  424. package/dist/automations/steps/filter.js +20 -18
  425. package/dist/automations/steps/integromat.js +14 -7
  426. package/dist/automations/steps/loop.js +4 -1
  427. package/dist/automations/steps/outgoingWebhook.js +45 -14
  428. package/dist/automations/steps/queryRows.js +71 -38
  429. package/dist/automations/steps/sendSmtpEmail.js +33 -6
  430. package/dist/automations/steps/serverLog.js +12 -8
  431. package/dist/automations/steps/slack.js +14 -7
  432. package/dist/automations/steps/updateRow.js +34 -7
  433. package/dist/automations/steps/utils.js +22 -16
  434. package/dist/automations/steps/zapier.js +15 -7
  435. package/dist/automations/tests/utilities/index.js +62 -38
  436. package/dist/automations/triggerInfo/app.js +4 -1
  437. package/dist/automations/triggerInfo/cron.js +4 -1
  438. package/dist/automations/triggerInfo/index.js +31 -6
  439. package/dist/automations/triggerInfo/rowDeleted.js +4 -1
  440. package/dist/automations/triggerInfo/rowSaved.js +4 -1
  441. package/dist/automations/triggerInfo/rowUpdated.js +4 -1
  442. package/dist/automations/triggerInfo/webhook.js +4 -1
  443. package/dist/automations/triggers.js +90 -57
  444. package/dist/automations/utils.js +9 -8
  445. package/dist/constants/index.js +118 -104
  446. package/dist/constants/layouts.js +7 -10
  447. package/dist/constants/screens.js +49 -44
  448. package/dist/db/defaultData/datasource_bb_default.js +571 -0
  449. package/dist/db/defaultData/employeeImport.js +155 -0
  450. package/dist/db/defaultData/expensesImport.js +117 -0
  451. package/dist/db/defaultData/inventoryImport.js +109 -0
  452. package/dist/db/defaultData/jobsImport.js +152 -0
  453. package/dist/db/dynamoClient.js +20 -20
  454. package/dist/db/inMemoryView.js +47 -38
  455. package/dist/db/index.js +7 -4
  456. package/dist/db/linkedRows/LinkController.js +51 -70
  457. package/dist/db/linkedRows/LinkDocument.js +32 -0
  458. package/dist/db/linkedRows/index.js +93 -81
  459. package/dist/db/linkedRows/linkUtils.js +42 -32
  460. package/dist/db/utils.js +146 -119
  461. package/dist/db/views/staticViews.js +91 -74
  462. package/dist/environment.js +9 -6
  463. package/dist/events/AutomationEmitter.js +13 -10
  464. package/dist/events/BudibaseEmitter.js +24 -0
  465. package/dist/events/index.js +5 -23
  466. package/dist/events/utils.js +18 -10
  467. package/dist/integrations/elasticsearch.js +26 -2
  468. package/dist/integrations/googlesheets.js +5 -6
  469. package/dist/integrations/index.js +15 -6
  470. package/dist/integrations/mysql.js +3 -1
  471. package/dist/integrations/s3.js +157 -1
  472. package/dist/middleware/appInfo.js +14 -9
  473. package/dist/middleware/authorized.js +22 -21
  474. package/dist/middleware/builder.js +41 -40
  475. package/dist/middleware/currentapp.js +39 -37
  476. package/dist/middleware/joi-validator.js +17 -10
  477. package/dist/middleware/publicApi.js +5 -6
  478. package/dist/middleware/resourceId.js +16 -9
  479. package/dist/middleware/selfhost.js +5 -4
  480. package/dist/middleware/utils.js +5 -2
  481. package/dist/migrations/functions/appUrls.js +2 -2
  482. package/dist/migrations/functions/backfill/global.js +1 -1
  483. package/dist/migrations/functions/usageQuotas/syncApps.js +3 -4
  484. package/dist/migrations/functions/usageQuotas/syncRows.js +3 -4
  485. package/dist/migrations/functions/userEmailViewCasing.js +3 -3
  486. package/dist/package.json +10 -44
  487. package/dist/sdk/app/backups/exports.js +1 -2
  488. package/dist/sdk/app/backups/imports.js +2 -3
  489. package/dist/sdk/app/tables/index.js +5 -5
  490. package/dist/startup.js +10 -10
  491. package/dist/tests/utilities/TestConfiguration.js +111 -87
  492. package/dist/tests/utilities/controllers.js +38 -15
  493. package/dist/tests/utilities/structures.js +72 -53
  494. package/dist/threads/automation.js +49 -27
  495. package/dist/threads/query.js +17 -19
  496. package/dist/threads/utils.js +33 -8
  497. package/dist/tsconfig.build.tsbuildinfo +1 -1
  498. package/dist/utilities/budibaseDir.js +4 -2
  499. package/dist/utilities/centralPath.js +14 -7
  500. package/dist/utilities/csvParser.js +27 -21
  501. package/dist/utilities/fileSystem/clientLibrary.js +87 -73
  502. package/dist/utilities/fileSystem/index.js +202 -175
  503. package/dist/utilities/fileSystem/processor.js +8 -3
  504. package/dist/utilities/global.js +87 -66
  505. package/dist/utilities/index.js +102 -75
  506. package/dist/utilities/plugins.js +15 -9
  507. package/dist/utilities/redis.js +100 -65
  508. package/dist/utilities/routing/index.js +27 -23
  509. package/dist/utilities/rowProcessor/index.js +133 -191
  510. package/dist/utilities/rowProcessor/map.js +99 -0
  511. package/dist/utilities/rowProcessor/utils.js +35 -26
  512. package/dist/utilities/scriptRunner.js +8 -5
  513. package/dist/utilities/security.js +39 -35
  514. package/dist/utilities/usageQuota/rows.js +56 -49
  515. package/dist/utilities/users.js +31 -28
  516. package/dist/utilities/workerRequests.js +115 -82
  517. package/dist/watch.js +1 -2
  518. package/jest.config.ts +33 -0
  519. package/package.json +11 -45
  520. package/scripts/exportAppTemplate.js +2 -2
  521. package/scripts/localdomain.js +34 -6
  522. package/src/api/controllers/{apikeys.js → apikeys.ts} +10 -10
  523. package/src/api/controllers/application.ts +56 -42
  524. package/src/api/controllers/auth.ts +4 -3
  525. package/src/api/controllers/{automation.js → automation.ts} +48 -48
  526. package/src/api/controllers/{cloud.js → cloud.ts} +24 -24
  527. package/src/api/controllers/component.ts +2 -1
  528. package/src/api/controllers/{datasource.js → datasource.ts} +100 -47
  529. package/src/api/controllers/deploy/{Deployment.js → Deployment.ts} +13 -10
  530. package/src/api/controllers/deploy/index.ts +13 -25
  531. package/src/api/controllers/{dev.js → dev.ts} +31 -37
  532. package/src/api/controllers/integration.ts +13 -0
  533. package/src/api/controllers/{layout.js → layout.ts} +8 -8
  534. package/src/api/controllers/{metadata.js → metadata.ts} +11 -10
  535. package/src/api/controllers/migrations.ts +14 -0
  536. package/src/api/controllers/{permission.js → permission.ts} +49 -46
  537. package/src/api/controllers/plugin/index.ts +4 -5
  538. package/src/api/controllers/plugin/utils.ts +3 -5
  539. package/src/api/controllers/public/applications.ts +15 -9
  540. package/src/api/controllers/public/rows.ts +1 -1
  541. package/src/api/controllers/public/tables.ts +2 -2
  542. package/src/api/controllers/public/utils.ts +2 -2
  543. package/src/api/controllers/query/import/index.ts +2 -3
  544. package/src/api/controllers/query/index.ts +11 -14
  545. package/src/api/controllers/query/{validation.js → validation.ts} +7 -7
  546. package/src/api/controllers/{role.js → role.ts} +21 -25
  547. package/src/api/controllers/{routing.js → routing.ts} +37 -34
  548. package/src/api/controllers/row/ExternalRequest.ts +602 -624
  549. package/src/api/controllers/row/{external.js → external.ts} +79 -62
  550. package/src/api/controllers/row/index.ts +19 -11
  551. package/src/api/controllers/row/{internal.js → internal.ts} +87 -73
  552. package/src/api/controllers/row/{internalSearch.js → internalSearch.ts} +92 -68
  553. package/src/api/controllers/row/{staticFormula.js → staticFormula.ts} +30 -25
  554. package/src/api/controllers/row/{utils.js → utils.ts} +32 -22
  555. package/src/api/controllers/screen.ts +10 -6
  556. package/src/api/controllers/script.ts +12 -0
  557. package/src/api/controllers/static/index.ts +14 -16
  558. package/src/api/controllers/table/{bulkFormula.js → bulkFormula.ts} +39 -25
  559. package/src/api/controllers/table/{external.js → external.ts} +86 -55
  560. package/src/api/controllers/table/{index.js → index.ts} +21 -18
  561. package/src/api/controllers/table/internal.ts +5 -6
  562. package/src/api/controllers/table/utils.ts +26 -21
  563. package/src/api/controllers/{templates.js → templates.ts} +10 -7
  564. package/src/api/controllers/{user.js → user.ts} +47 -49
  565. package/src/api/controllers/view/{exporters.js → exporters.ts} +5 -3
  566. package/src/api/controllers/view/{index.js → index.ts} +36 -27
  567. package/src/api/controllers/view/{utils.js → utils.ts} +26 -20
  568. package/src/api/controllers/view/{viewBuilder.js → viewBuilder.ts} +25 -11
  569. package/src/api/controllers/webhook.ts +1 -1
  570. package/src/api/{index.js → index.ts} +15 -22
  571. package/src/api/routes/analytics.ts +9 -0
  572. package/src/api/routes/apikeys.ts +12 -0
  573. package/src/api/routes/application.ts +17 -9
  574. package/src/api/routes/auth.ts +2 -2
  575. package/src/api/routes/automation.ts +87 -0
  576. package/src/api/routes/backup.ts +8 -4
  577. package/src/api/routes/cloud.ts +18 -0
  578. package/src/api/routes/component.ts +14 -0
  579. package/src/api/routes/datasource.ts +60 -0
  580. package/src/api/routes/deploy.ts +21 -0
  581. package/src/api/routes/dev.ts +38 -0
  582. package/src/api/routes/integration.ts +16 -0
  583. package/src/api/routes/layout.ts +16 -0
  584. package/src/api/routes/{metadata.js → metadata.ts} +13 -13
  585. package/src/api/routes/migrations.ts +14 -0
  586. package/src/api/routes/permission.ts +41 -0
  587. package/src/api/routes/plugin.ts +14 -6
  588. package/src/api/routes/public/index.ts +11 -14
  589. package/src/api/routes/public/tests/compare.spec.js +1 -1
  590. package/src/api/routes/{query.js → query.ts} +19 -22
  591. package/src/api/routes/role.ts +24 -0
  592. package/src/api/routes/routing.ts +14 -0
  593. package/src/api/routes/row.ts +13 -15
  594. package/src/api/routes/screen.ts +23 -0
  595. package/src/api/routes/script.ts +10 -0
  596. package/src/api/routes/static.ts +7 -10
  597. package/src/api/routes/{table.js → table.ts} +10 -13
  598. package/src/api/routes/templates.ts +16 -0
  599. package/src/api/routes/tests/analytics.spec.js +1 -1
  600. package/src/api/routes/tests/backup.spec.js +9 -1
  601. package/src/api/routes/tests/deployment.spec.ts +1 -1
  602. package/src/api/routes/tests/permissions.spec.js +2 -1
  603. package/src/api/routes/tests/query.spec.js +15 -10
  604. package/src/api/routes/tests/role.spec.js +7 -9
  605. package/src/api/routes/tests/routing.spec.js +2 -1
  606. package/src/api/routes/tests/row.spec.js +3 -4
  607. package/src/api/routes/tests/static.spec.js +2 -2
  608. package/src/api/routes/tests/table.spec.js +40 -36
  609. package/src/api/routes/tests/user.spec.js +2 -1
  610. package/src/api/routes/tests/utilities/TestFunctions.ts +6 -8
  611. package/src/api/routes/tests/utilities/{index.js → index.ts} +12 -12
  612. package/src/api/routes/user.ts +51 -0
  613. package/src/api/routes/utils/{validators.js → validators.ts} +33 -37
  614. package/src/api/routes/view.ts +34 -0
  615. package/src/api/routes/webhook.ts +2 -2
  616. package/src/app.ts +15 -14
  617. package/src/automations/{actions.js → actions.ts} +26 -23
  618. package/src/automations/{automationUtils.js → automationUtils.ts} +13 -12
  619. package/src/automations/bullboard.ts +38 -0
  620. package/src/automations/index.ts +26 -0
  621. package/src/automations/steps/{bash.js → bash.ts} +13 -8
  622. package/src/automations/steps/createRow.ts +8 -3
  623. package/src/automations/steps/{delay.js → delay.ts} +9 -4
  624. package/src/automations/steps/deleteRow.ts +8 -3
  625. package/src/automations/steps/{discord.js → discord.ts} +10 -5
  626. package/src/automations/steps/{executeQuery.js → executeQuery.ts} +12 -7
  627. package/src/automations/steps/{executeScript.js → executeScript.ts} +17 -7
  628. package/src/automations/steps/{filter.js → filter.ts} +12 -9
  629. package/src/automations/steps/{integromat.js → integromat.ts} +10 -5
  630. package/src/automations/steps/{loop.js → loop.ts} +4 -2
  631. package/src/automations/steps/{outgoingWebhook.js → outgoingWebhook.ts} +18 -13
  632. package/src/automations/steps/{queryRows.js → queryRows.ts} +48 -36
  633. package/src/automations/steps/{sendSmtpEmail.js → sendSmtpEmail.ts} +10 -5
  634. package/src/automations/steps/{serverLog.js → serverLog.ts} +9 -3
  635. package/src/automations/steps/{slack.js → slack.ts} +10 -5
  636. package/src/automations/steps/{updateRow.js → updateRow.ts} +12 -7
  637. package/src/automations/steps/{utils.js → utils.ts} +10 -4
  638. package/src/automations/steps/{zapier.js → zapier.ts} +11 -5
  639. package/src/automations/tests/updateRow.spec.js +0 -1
  640. package/src/automations/tests/utilities/index.ts +60 -0
  641. package/src/automations/triggerInfo/{app.js → app.ts} +7 -2
  642. package/src/automations/triggerInfo/{cron.js → cron.ts} +7 -2
  643. package/src/automations/triggerInfo/index.ts +15 -0
  644. package/src/automations/triggerInfo/{rowDeleted.js → rowDeleted.ts} +7 -2
  645. package/src/automations/triggerInfo/{rowSaved.js → rowSaved.ts} +7 -2
  646. package/src/automations/triggerInfo/{rowUpdated.js → rowUpdated.ts} +7 -2
  647. package/src/automations/triggerInfo/{webhook.js → webhook.ts} +7 -2
  648. package/src/automations/{triggers.js → triggers.ts} +30 -26
  649. package/src/automations/utils.ts +9 -12
  650. package/src/constants/index.ts +204 -0
  651. package/src/constants/{layouts.js → layouts.ts} +3 -9
  652. package/src/constants/screens.ts +48 -0
  653. package/src/db/defaultData/datasource_bb_default.ts +649 -0
  654. package/src/db/defaultData/employeeImport.ts +152 -0
  655. package/src/db/defaultData/expensesImport.ts +114 -0
  656. package/src/db/defaultData/inventoryImport.ts +106 -0
  657. package/src/db/defaultData/jobsImport.ts +158 -0
  658. package/src/db/{dynamoClient.js → dynamoClient.ts} +39 -19
  659. package/src/db/{inMemoryView.js → inMemoryView.ts} +15 -9
  660. package/src/db/index.ts +16 -0
  661. package/src/db/linkedRows/{LinkController.js → LinkController.ts} +64 -85
  662. package/src/db/linkedRows/LinkDocument.ts +60 -0
  663. package/src/db/linkedRows/{index.js → index.ts} +43 -38
  664. package/src/db/linkedRows/{linkUtils.js → linkUtils.ts} +33 -24
  665. package/src/db/{newid.js → newid.ts} +1 -1
  666. package/src/db/tests/linkController.spec.js +73 -57
  667. package/src/db/tests/linkTests.spec.js +17 -14
  668. package/src/db/{utils.js → utils.ts} +77 -93
  669. package/src/db/views/{staticViews.js → staticViews.ts} +20 -13
  670. package/src/{environment.js → environment.ts} +11 -7
  671. package/src/events/{AutomationEmitter.js → AutomationEmitter.ts} +12 -7
  672. package/src/events/{index.js → BudibaseEmitter.ts} +7 -8
  673. package/src/events/index.ts +5 -0
  674. package/src/events/utils.ts +78 -0
  675. package/src/integrations/base/sql.ts +1 -1
  676. package/src/integrations/base/sqlTable.ts +1 -1
  677. package/src/integrations/elasticsearch.ts +32 -2
  678. package/src/integrations/googlesheets.ts +5 -7
  679. package/src/integrations/index.ts +45 -41
  680. package/src/integrations/mysql.ts +5 -1
  681. package/src/integrations/s3.ts +179 -3
  682. package/src/integrations/tests/mysql.spec.ts +57 -0
  683. package/src/integrations/tests/s3.spec.ts +85 -1
  684. package/src/integrations/utils.ts +6 -2
  685. package/src/middleware/appInfo.ts +20 -0
  686. package/src/middleware/authorized.ts +21 -28
  687. package/src/middleware/{builder.js → builder.ts} +17 -15
  688. package/src/middleware/{currentapp.js → currentapp.ts} +42 -39
  689. package/src/middleware/{joi-validator.js → joi-validator.ts} +9 -8
  690. package/src/middleware/publicApi.ts +21 -0
  691. package/src/middleware/{resourceId.js → resourceId.ts} +16 -11
  692. package/src/middleware/{selfhost.js → selfhost.ts} +4 -2
  693. package/src/middleware/tests/authorized.spec.js +5 -6
  694. package/src/middleware/tests/currentapp.spec.js +118 -63
  695. package/src/middleware/{utils.js → utils.ts} +3 -1
  696. package/src/migrations/functions/appUrls.ts +2 -2
  697. package/src/migrations/functions/backfill/app/tables.ts +2 -5
  698. package/src/migrations/functions/backfill/global.ts +1 -1
  699. package/src/migrations/functions/tests/appUrls.spec.js +4 -4
  700. package/src/migrations/functions/tests/userEmailViewCasing.spec.js +14 -9
  701. package/src/migrations/functions/usageQuotas/syncApps.ts +3 -4
  702. package/src/migrations/functions/usageQuotas/syncRows.ts +4 -5
  703. package/src/migrations/functions/usageQuotas/tests/syncRows.spec.ts +7 -7
  704. package/src/migrations/functions/userEmailViewCasing.ts +3 -3
  705. package/src/migrations/tests/index.spec.ts +1 -1
  706. package/src/sdk/app/backups/exports.ts +5 -3
  707. package/src/sdk/app/backups/imports.ts +7 -14
  708. package/src/sdk/app/backups/statistics.ts +9 -18
  709. package/src/sdk/app/tables/index.ts +7 -8
  710. package/src/startup.ts +5 -5
  711. package/{scripts/jestSetup.js → src/tests/jestSetup.ts} +11 -2
  712. package/src/tests/utilities/{TestConfiguration.js → TestConfiguration.ts} +111 -78
  713. package/src/tests/utilities/controllers.ts +14 -0
  714. package/src/tests/utilities/{index.js → index.ts} +2 -2
  715. package/src/tests/utilities/{structures.js → structures.ts} +41 -36
  716. package/src/threads/automation.ts +18 -19
  717. package/src/threads/query.ts +11 -16
  718. package/src/threads/utils.ts +4 -5
  719. package/src/utilities/budibaseDir.ts +3 -0
  720. package/src/utilities/{centralPath.js → centralPath.ts} +3 -3
  721. package/src/utilities/{csvParser.js → csvParser.ts} +42 -26
  722. package/src/utilities/fileSystem/{clientLibrary.js → clientLibrary.ts} +20 -20
  723. package/src/utilities/fileSystem/{index.js → index.ts} +55 -63
  724. package/src/utilities/fileSystem/{processor.js → processor.ts} +3 -5
  725. package/src/utilities/global.ts +138 -0
  726. package/src/utilities/{index.js → index.ts} +40 -32
  727. package/src/utilities/{plugins.js → plugins.ts} +5 -4
  728. package/src/utilities/{redis.js → redis.ts} +21 -20
  729. package/src/utilities/routing/index.ts +32 -0
  730. package/src/utilities/rowProcessor/{index.js → index.ts} +67 -144
  731. package/src/utilities/rowProcessor/map.ts +96 -0
  732. package/src/utilities/rowProcessor/{utils.js → utils.ts} +19 -15
  733. package/src/utilities/{scriptRunner.js → scriptRunner.ts} +8 -4
  734. package/src/utilities/security.ts +65 -0
  735. package/src/utilities/{statusCodes.js → statusCodes.ts} +1 -1
  736. package/src/utilities/usageQuota/{rows.js → rows.ts} +14 -18
  737. package/src/utilities/usageQuota/{usageQuoteReset.js → usageQuoteReset.ts} +1 -1
  738. package/src/utilities/{users.js → users.ts} +11 -13
  739. package/src/utilities/{workerRequests.js → workerRequests.ts} +43 -38
  740. package/src/watch.ts +2 -3
  741. package/tsconfig.build.json +1 -2
  742. package/tsconfig.json +3 -1
  743. package/coverage/lcov-report/api/controllers/index.html +0 -326
  744. package/coverage/lcov-report/automations/steps/index.html +0 -341
  745. package/coverage/lcov-report/db/linkedRows/index.html +0 -146
  746. package/dist/integrations/tests/TestConfiguration.js +0 -1
  747. package/dist/utilities/fileSystem/utilities.js +0 -22
  748. package/dist/utilities/queue/inMemoryQueue.js +0 -126
  749. package/src/api/controllers/integration.js +0 -14
  750. package/src/api/controllers/migrations.js +0 -13
  751. package/src/api/controllers/script.js +0 -11
  752. package/src/api/routes/analytics.js +0 -9
  753. package/src/api/routes/apikeys.js +0 -12
  754. package/src/api/routes/automation.js +0 -85
  755. package/src/api/routes/cloud.js +0 -14
  756. package/src/api/routes/component.js +0 -14
  757. package/src/api/routes/datasource.js +0 -51
  758. package/src/api/routes/deploy.js +0 -17
  759. package/src/api/routes/dev.js +0 -26
  760. package/src/api/routes/integration.js +0 -12
  761. package/src/api/routes/layout.js +0 -16
  762. package/src/api/routes/migrations.js +0 -14
  763. package/src/api/routes/permission.js +0 -33
  764. package/src/api/routes/role.js +0 -15
  765. package/src/api/routes/routing.js +0 -14
  766. package/src/api/routes/screen.js +0 -18
  767. package/src/api/routes/script.js +0 -10
  768. package/src/api/routes/templates.js +0 -16
  769. package/src/api/routes/user.js +0 -53
  770. package/src/api/routes/view.js +0 -31
  771. package/src/automations/bullboard.js +0 -39
  772. package/src/automations/index.js +0 -29
  773. package/src/automations/tests/utilities/index.js +0 -51
  774. package/src/automations/triggerInfo/index.js +0 -15
  775. package/src/constants/index.js +0 -208
  776. package/src/constants/screens.js +0 -46
  777. package/src/db/index.js +0 -16
  778. package/src/events/utils.js +0 -38
  779. package/src/middleware/appInfo.js +0 -19
  780. package/src/middleware/publicApi.js +0 -21
  781. package/src/module.d.ts +0 -14
  782. package/src/tests/utilities/controllers.js +0 -16
  783. package/src/utilities/budibaseDir.js +0 -3
  784. package/src/utilities/fileSystem/utilities.js +0 -36
  785. package/src/utilities/global.js +0 -127
  786. package/src/utilities/queue/inMemoryQueue.js +0 -122
  787. package/src/utilities/routing/index.js +0 -25
  788. package/src/utilities/security.js +0 -71
@@ -3,15 +3,15 @@
3
3
  <html lang="en">
4
4
 
5
5
  <head>
6
- <title>Code coverage report for api/controllers/permission.js</title>
6
+ <title>Code coverage report for src/api/controllers/permission.ts</title>
7
7
  <meta charset="utf-8" />
8
- <link rel="stylesheet" href="../../prettify.css" />
9
- <link rel="stylesheet" href="../../base.css" />
10
- <link rel="shortcut icon" type="image/x-icon" href="../../favicon.png" />
8
+ <link rel="stylesheet" href="../../../prettify.css" />
9
+ <link rel="stylesheet" href="../../../base.css" />
10
+ <link rel="shortcut icon" type="image/x-icon" href="../../../favicon.png" />
11
11
  <meta name="viewport" content="width=device-width, initial-scale=1" />
12
12
  <style type='text/css'>
13
13
  .coverage-summary .sorter {
14
- background-image: url(../../sort-arrow-sprite.png);
14
+ background-image: url(../../../sort-arrow-sprite.png);
15
15
  }
16
16
  </style>
17
17
  </head>
@@ -19,20 +19,20 @@
19
19
  <body>
20
20
  <div class='wrapper'>
21
21
  <div class='pad1'>
22
- <h1><a href="../../index.html">All files</a> / <a href="index.html">api/controllers</a> permission.js</h1>
22
+ <h1><a href="../../../index.html">All files</a> / <a href="index.html">src/api/controllers</a> permission.ts</h1>
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">98.78% </span>
26
+ <span class="strong">97.56% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>81/82</span>
28
+ <span class='fraction'>80/82</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">90.62% </span>
33
+ <span class="strong">80.76% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>29/32</span>
35
+ <span class='fraction'>21/26</span>
36
36
  </div>
37
37
 
38
38
 
@@ -44,9 +44,9 @@
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">98.71% </span>
47
+ <span class="strong">97.43% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>77/78</span>
49
+ <span class='fraction'>76/78</span>
50
50
  </div>
51
51
 
52
52
 
@@ -238,28 +238,29 @@
238
238
  <a name='L173'></a><a href='#L173'>173</a>
239
239
  <a name='L174'></a><a href='#L174'>174</a>
240
240
  <a name='L175'></a><a href='#L175'>175</a>
241
- <a name='L176'></a><a href='#L176'>176</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">44x</span>
242
- <span class="cline-any cline-neutral">&nbsp;</span>
241
+ <a name='L176'></a><a href='#L176'>176</a>
242
+ <a name='L177'></a><a href='#L177'>177</a>
243
+ <a name='L178'></a><a href='#L178'>178</a>
244
+ <a name='L179'></a><a href='#L179'>179</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">44x</span>
245
+ <span class="cline-any cline-yes">44x</span>
246
+ <span class="cline-any cline-yes">44x</span>
243
247
  <span class="cline-any cline-neutral">&nbsp;</span>
244
248
  <span class="cline-any cline-neutral">&nbsp;</span>
245
249
  <span class="cline-any cline-neutral">&nbsp;</span>
250
+ <span class="cline-any cline-yes">44x</span>
246
251
  <span class="cline-any cline-neutral">&nbsp;</span>
247
252
  <span class="cline-any cline-neutral">&nbsp;</span>
248
253
  <span class="cline-any cline-yes">44x</span>
249
- <span class="cline-any cline-yes">44x</span>
250
254
  <span class="cline-any cline-neutral">&nbsp;</span>
251
255
  <span class="cline-any cline-neutral">&nbsp;</span>
252
256
  <span class="cline-any cline-neutral">&nbsp;</span>
253
- <span class="cline-any cline-yes">44x</span>
254
- <span class="cline-any cline-yes">44x</span>
255
- <span class="cline-any cline-yes">44x</span>
256
257
  <span class="cline-any cline-neutral">&nbsp;</span>
257
258
  <span class="cline-any cline-yes">44x</span>
258
259
  <span class="cline-any cline-neutral">&nbsp;</span>
259
260
  <span class="cline-any cline-neutral">&nbsp;</span>
260
261
  <span class="cline-any cline-neutral">&nbsp;</span>
262
+ <span class="cline-any cline-yes">12x</span>
261
263
  <span class="cline-any cline-neutral">&nbsp;</span>
262
- <span class="cline-any cline-yes">44x</span>
263
264
  <span class="cline-any cline-neutral">&nbsp;</span>
264
265
  <span class="cline-any cline-neutral">&nbsp;</span>
265
266
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -268,7 +269,6 @@
268
269
  <span class="cline-any cline-neutral">&nbsp;</span>
269
270
  <span class="cline-any cline-neutral">&nbsp;</span>
270
271
  <span class="cline-any cline-neutral">&nbsp;</span>
271
- <span class="cline-any cline-yes">12x</span>
272
272
  <span class="cline-any cline-neutral">&nbsp;</span>
273
273
  <span class="cline-any cline-neutral">&nbsp;</span>
274
274
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -357,6 +357,9 @@
357
357
  <span class="cline-any cline-neutral">&nbsp;</span>
358
358
  <span class="cline-any cline-yes">2x</span>
359
359
  <span class="cline-any cline-yes">2x</span>
360
+ <span class="cline-any cline-no">&nbsp;</span>
361
+ <span class="cline-any cline-neutral">&nbsp;</span>
362
+ <span class="cline-any cline-yes">2x</span>
360
363
  <span class="cline-any cline-yes">2x</span>
361
364
  <span class="cline-any cline-yes">2x</span>
362
365
  <span class="cline-any cline-yes">2x</span>
@@ -386,6 +389,9 @@
386
389
  <span class="cline-any cline-neutral">&nbsp;</span>
387
390
  <span class="cline-any cline-yes">9x</span>
388
391
  <span class="cline-any cline-yes">12x</span>
392
+ <span class="cline-any cline-neutral">&nbsp;</span>
393
+ <span class="cline-any cline-neutral">&nbsp;</span>
394
+ <span class="cline-any cline-neutral">&nbsp;</span>
389
395
  <span class="cline-any cline-yes">12x</span>
390
396
  <span class="cline-any cline-neutral">&nbsp;</span>
391
397
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -413,21 +419,14 @@
413
419
  <span class="cline-any cline-neutral">&nbsp;</span>
414
420
  <span class="cline-any cline-neutral">&nbsp;</span>
415
421
  <span class="cline-any cline-neutral">&nbsp;</span>
416
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">const { getBuiltinPermissions } = require("@budibase/backend-core/permissions")
417
- const {
418
- isBuiltin,
419
- getDBRoleID,
420
- getExternalRoleID,
421
- getBuiltinRoles,
422
- checkForRoleResourceArray,
423
- } = require("@budibase/backend-core/roles")
424
- const { getRoleParams } = require("../../db/utils")
425
- const {
422
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import { permissions, roles, context } from "@budibase/backend-core"
423
+ import { getRoleParams } from "../../db/utils"
424
+ import {
426
425
  CURRENTLY_SUPPORTED_LEVELS,
427
426
  getBasePermissions,
428
- } = require("../../utilities/security")
429
- const { removeFromArray } = require("../../utilities")
430
- const { getAppDB } = require("@budibase/backend-core/context")
427
+ } from "../../utilities/security"
428
+ import { removeFromArray } from "../../utilities"
429
+ import { BBContext, Database, Role } from "@budibase/types"
431
430
  &nbsp;
432
431
  const PermissionUpdateType = {
433
432
  REMOVE: "remove",
@@ -437,7 +436,7 @@ const PermissionUpdateType = {
437
436
  const SUPPORTED_LEVELS = CURRENTLY_SUPPORTED_LEVELS
438
437
  &nbsp;
439
438
  // utility function to stop this repetition - permissions always stored under roles
440
- async function getAllDBRoles(db) {
439
+ async function getAllDBRoles(db: Database) {
441
440
  const body = await db.allDocs(
442
441
  getRoleParams(null, {
443
442
  include_docs: true,
@@ -447,21 +446,25 @@ async function getAllDBRoles(db) {
447
446
  }
448
447
  &nbsp;
449
448
  async function updatePermissionOnRole(
450
- appId,
451
- { roleId, resourceId, level },
452
- updateType
449
+ appId: string,
450
+ {
451
+ roleId,
452
+ resourceId,
453
+ level,
454
+ }: { roleId: string; resourceId: string; level: string },
455
+ updateType: string
453
456
  ) {
454
- const db = getAppDB()
457
+ const db = context.getAppDB()
455
458
  const remove = updateType === PermissionUpdateType.REMOVE
456
- const isABuiltin = isBuiltin(roleId)
457
- const dbRoleId = getDBRoleID(roleId)
459
+ const isABuiltin = roles.isBuiltin(roleId)
460
+ const dbRoleId = roles.getDBRoleID(roleId)
458
461
  const dbRoles = await getAllDBRoles(db)
459
462
  const docUpdates = []
460
463
  &nbsp;
461
464
  // the permission is for a built in, make sure it exists
462
465
  if (isABuiltin &amp;&amp; !dbRoles.some(role =&gt; role._id === dbRoleId)) {
463
- const builtin = getBuiltinRoles()[roleId]
464
- builtin._id = getDBRoleID(builtin._id)
466
+ const builtin = roles.getBuiltinRoles()[roleId]
467
+ builtin._id = roles.getDBRoleID(builtin._id)
465
468
  dbRoles.push(builtin)
466
469
  }
467
470
  &nbsp;
@@ -469,7 +472,7 @@ async function updatePermissionOnRole(
469
472
  // resource from another role and then adding to the new role
470
473
  for (let role of dbRoles) {
471
474
  let updated = false
472
- const rolePermissions = role.permissions ? role.permissions : {}
475
+ const rolePermissions = role.permissions ? role.permissions : <span class="branch-1 cbranch-no" title="branch not covered" >{}</span>
473
476
  // make sure its an array, also handle migrating
474
477
  if (
475
478
  !rolePermissions[resourceId] ||
@@ -505,41 +508,44 @@ async function updatePermissionOnRole(
505
508
  }
506
509
  &nbsp;
507
510
  const response = await db.bulkDocs(docUpdates)
508
- return response.map(resp =&gt; {
509
- resp._id = getExternalRoleID(resp.id)
511
+ return response.map((resp: any) =&gt; {
512
+ resp._id = roles.getExternalRoleID(resp.id)
510
513
  delete resp.id
511
514
  return resp
512
515
  })
513
516
  }
514
517
  &nbsp;
515
- exports.fetchBuiltin = function (ctx) {
516
- ctx.body = Object.values(getBuiltinPermissions())
518
+ export function fetchBuiltin(ctx: BBContext) {
519
+ ctx.body = Object.values(permissions.getBuiltinPermissions())
517
520
  }
518
521
  &nbsp;
519
- exports.fetchLevels = function (ctx) {
522
+ export function fetchLevels(ctx: BBContext) {
520
523
  // for now only provide the read/write perms externally
521
524
  ctx.body = SUPPORTED_LEVELS
522
525
  }
523
526
  &nbsp;
524
- exports.fetch = async function (ctx) {
525
- const db = getAppDB()
526
- const roles = await getAllDBRoles(db)
527
- let permissions = {}
527
+ export async function fetch(ctx: BBContext) {
528
+ const db = context.getAppDB()
529
+ const dbRoles: Role[] = await getAllDBRoles(db)
530
+ let permissions: any = {}
528
531
  // create an object with structure role ID -&gt; resource ID -&gt; level
529
- for (let role of roles) {
532
+ for (let role of dbRoles) {
530
533
  <span class="missing-if-branch" title="if path not taken" >I</span>if (!role.permissions) {
531
534
  <span class="cstat-no" title="statement not covered" > continue</span>
532
535
  }
533
- const roleId = getExternalRoleID(role._id)
536
+ const roleId = roles.getExternalRoleID(role._id)
537
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (!roleId) {
538
+ <span class="cstat-no" title="statement not covered" > ctx.throw(400, "Unable to retrieve role")</span>
539
+ }
534
540
  for (let [resource, levelArr] of Object.entries(role.permissions)) {
535
- const levels = Array.isArray(levelArr) ? [levelArr] : <span class="branch-1 cbranch-no" title="branch not covered" >levelArr</span>
536
- const perms = {}
537
- levels.forEach(level =&gt; (perms[level] = roleId))
541
+ const levels: string[] = Array.isArray(levelArr) ? levelArr : <span class="branch-1 cbranch-no" title="branch not covered" >[levelArr]</span>
542
+ const perms: Record&lt;string, string&gt; = {}
543
+ levels.forEach(level =&gt; (perms[level] = roleId!))
538
544
  permissions[resource] = perms
539
545
  }
540
546
  }
541
547
  // apply the base permissions
542
- const finalPermissions = {}
548
+ const finalPermissions: Record&lt;string, Record&lt;string, string&gt;&gt; = {}
543
549
  for (let [resource, permission] of Object.entries(permissions)) {
544
550
  const basePerms = getBasePermissions(resource)
545
551
  finalPermissions[resource] = Object.assign(basePerms, permission)
@@ -547,33 +553,36 @@ exports.fetch = async function (ctx) {
547
553
  ctx.body = finalPermissions
548
554
  }
549
555
  &nbsp;
550
- exports.getResourcePerms = async function (ctx) {
556
+ export async function getResourcePerms(ctx: BBContext) {
551
557
  const resourceId = ctx.params.resourceId
552
- const db = getAppDB()
558
+ const db = context.getAppDB()
553
559
  const body = await db.allDocs(
554
560
  getRoleParams(null, {
555
561
  include_docs: true,
556
562
  })
557
563
  )
558
- const roles = body.rows.map(row =&gt; row.doc)
559
- let permissions = {}
564
+ const rolesList = body.rows.map(row =&gt; row.doc)
565
+ let permissions: Record&lt;string, string&gt; = {}
560
566
  for (let level of SUPPORTED_LEVELS) {
561
567
  // update the various roleIds in the resource permissions
562
- for (let role of roles) {
563
- const rolePerms = checkForRoleResourceArray(role.permissions, resourceId)
568
+ for (let role of rolesList) {
569
+ const rolePerms = roles.checkForRoleResourceArray(
570
+ role.permissions,
571
+ resourceId
572
+ )
564
573
  if (
565
574
  rolePerms &amp;&amp;
566
575
  rolePerms[resourceId] &amp;&amp;
567
576
  rolePerms[resourceId].indexOf(level) !== -1
568
577
  ) {
569
- permissions[level] = getExternalRoleID(role._id)
578
+ permissions[level] = roles.getExternalRoleID(role._id)!
570
579
  }
571
580
  }
572
581
  }
573
582
  ctx.body = Object.assign(getBasePermissions(resourceId), permissions)
574
583
  }
575
584
  &nbsp;
576
- exports.addPermission = async function (ctx) {
585
+ export async function addPermission(ctx: BBContext) {
577
586
  ctx.body = await updatePermissionOnRole(
578
587
  ctx.appId,
579
588
  ctx.params,
@@ -581,7 +590,7 @@ exports.addPermission = async function (ctx) {
581
590
  )
582
591
  }
583
592
  &nbsp;
584
- exports.removePermission = async function (ctx) {
593
+ export async function removePermission(ctx: BBContext) {
585
594
  ctx.body = await updatePermissionOnRole(
586
595
  ctx.appId,
587
596
  ctx.params,
@@ -595,16 +604,16 @@ exports.removePermission = async function (ctx) {
595
604
  <div class='footer quiet pad2 space-top1 center small'>
596
605
  Code coverage generated by
597
606
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
598
- at Mon Nov 28 2022 09:35:14 GMT+0000 (Coordinated Universal Time)
607
+ at Tue Nov 29 2022 11:32:32 GMT+0000 (Coordinated Universal Time)
599
608
  </div>
600
- <script src="../../prettify.js"></script>
609
+ <script src="../../../prettify.js"></script>
601
610
  <script>
602
611
  window.onload = function () {
603
612
  prettyPrint();
604
613
  };
605
614
  </script>
606
- <script src="../../sorter.js"></script>
607
- <script src="../../block-navigation.js"></script>
615
+ <script src="../../../sorter.js"></script>
616
+ <script src="../../../block-navigation.js"></script>
608
617
  </body>
609
618
  </html>
610
619
 
@@ -0,0 +1,130 @@
1
+
2
+ <!doctype html>
3
+ <html lang="en">
4
+
5
+ <head>
6
+ <title>Code coverage report for src/api/controllers/plugin/file.ts</title>
7
+ <meta charset="utf-8" />
8
+ <link rel="stylesheet" href="../../../../prettify.css" />
9
+ <link rel="stylesheet" href="../../../../base.css" />
10
+ <link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.png" />
11
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
12
+ <style type='text/css'>
13
+ .coverage-summary .sorter {
14
+ background-image: url(../../../../sort-arrow-sprite.png);
15
+ }
16
+ </style>
17
+ </head>
18
+
19
+ <body>
20
+ <div class='wrapper'>
21
+ <div class='pad1'>
22
+ <h1><a href="../../../../index.html">All files</a> / <a href="index.html">src/api/controllers/plugin</a> file.ts</h1>
23
+ <div class='clearfix'>
24
+
25
+ <div class='fl pad1y space-right2'>
26
+ <span class="strong">28.57% </span>
27
+ <span class="quiet">Statements</span>
28
+ <span class='fraction'>2/7</span>
29
+ </div>
30
+
31
+
32
+ <div class='fl pad1y space-right2'>
33
+ <span class="strong">0% </span>
34
+ <span class="quiet">Branches</span>
35
+ <span class='fraction'>0/1</span>
36
+ </div>
37
+
38
+
39
+ <div class='fl pad1y space-right2'>
40
+ <span class="strong">0% </span>
41
+ <span class="quiet">Functions</span>
42
+ <span class='fraction'>0/1</span>
43
+ </div>
44
+
45
+
46
+ <div class='fl pad1y space-right2'>
47
+ <span class="strong">28.57% </span>
48
+ <span class="quiet">Lines</span>
49
+ <span class='fraction'>2/7</span>
50
+ </div>
51
+
52
+
53
+ </div>
54
+ <p class="quiet">
55
+ Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
56
+ </p>
57
+ <template id="filterTemplate">
58
+ <div class="quiet">
59
+ Filter:
60
+ <input oninput="onInput()" type="search" id="fileSearch">
61
+ </div>
62
+ </template>
63
+ </div>
64
+ <div class='status-line low'></div>
65
+ <pre><table class="coverage">
66
+ <tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
67
+ <a name='L2'></a><a href='#L2'>2</a>
68
+ <a name='L3'></a><a href='#L3'>3</a>
69
+ <a name='L4'></a><a href='#L4'>4</a>
70
+ <a name='L5'></a><a href='#L5'>5</a>
71
+ <a name='L6'></a><a href='#L6'>6</a>
72
+ <a name='L7'></a><a href='#L7'>7</a>
73
+ <a name='L8'></a><a href='#L8'>8</a>
74
+ <a name='L9'></a><a href='#L9'>9</a>
75
+ <a name='L10'></a><a href='#L10'>10</a>
76
+ <a name='L11'></a><a href='#L11'>11</a>
77
+ <a name='L12'></a><a href='#L12'>12</a>
78
+ <a name='L13'></a><a href='#L13'>13</a>
79
+ <a name='L14'></a><a href='#L14'>14</a>
80
+ <a name='L15'></a><a href='#L15'>15</a>
81
+ <a name='L16'></a><a href='#L16'>16</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">46x</span>
82
+ <span class="cline-any cline-neutral">&nbsp;</span>
83
+ <span class="cline-any cline-neutral">&nbsp;</span>
84
+ <span class="cline-any cline-neutral">&nbsp;</span>
85
+ <span class="cline-any cline-neutral">&nbsp;</span>
86
+ <span class="cline-any cline-neutral">&nbsp;</span>
87
+ <span class="cline-any cline-yes">46x</span>
88
+ <span class="cline-any cline-no">&nbsp;</span>
89
+ <span class="cline-any cline-no">&nbsp;</span>
90
+ <span class="cline-any cline-neutral">&nbsp;</span>
91
+ <span class="cline-any cline-no">&nbsp;</span>
92
+ <span class="cline-any cline-no">&nbsp;</span>
93
+ <span class="cline-any cline-neutral">&nbsp;</span>
94
+ <span class="cline-any cline-no">&nbsp;</span>
95
+ <span class="cline-any cline-neutral">&nbsp;</span>
96
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import {
97
+ createTempFolder,
98
+ getPluginMetadata,
99
+ extractTarball,
100
+ } from "../../../utilities/fileSystem"
101
+ &nbsp;
102
+ export async function <span class="fstat-no" title="function not covered" >fileUpload(</span>file: { name: string; path: string }) {
103
+ <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (!file.name.endsWith(".tar.gz")) {</span>
104
+ <span class="cstat-no" title="statement not covered" > throw new Error("Plugin must be compressed into a gzipped tarball.")</span>
105
+ }
106
+ const path = <span class="cstat-no" title="statement not covered" >createTempFolder(file.name.split(".tar.gz")[0])</span>
107
+ <span class="cstat-no" title="statement not covered" > await extractTarball(file.path, path)</span>
108
+ &nbsp;
109
+ <span class="cstat-no" title="statement not covered" > return await getPluginMetadata(path)</span>
110
+ }
111
+ &nbsp;</pre></td></tr></table></pre>
112
+
113
+ <div class='push'></div><!-- for sticky footer -->
114
+ </div><!-- /wrapper -->
115
+ <div class='footer quiet pad2 space-top1 center small'>
116
+ Code coverage generated by
117
+ <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
118
+ at Tue Nov 29 2022 11:32:32 GMT+0000 (Coordinated Universal Time)
119
+ </div>
120
+ <script src="../../../../prettify.js"></script>
121
+ <script>
122
+ window.onload = function () {
123
+ prettyPrint();
124
+ };
125
+ </script>
126
+ <script src="../../../../sorter.js"></script>
127
+ <script src="../../../../block-navigation.js"></script>
128
+ </body>
129
+ </html>
130
+