@budibase/server 2.1.42 → 2.1.43-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 (794) hide show
  1. package/__mocks__/aws-sdk.ts +14 -0
  2. package/__mocks__/node-fetch.ts +5 -1
  3. package/builder/assets/index.0c44dac3.css +6 -0
  4. package/builder/assets/{index.843230be.js → index.17a2178b.js} +310 -310
  5. package/builder/index.html +2 -2
  6. package/coverage/clover.xml +10910 -3861
  7. package/coverage/coverage-final.json +267 -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} +30 -30
  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} +99 -99
  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} +58 -58
  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} +287 -107
  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} +69 -87
  22. package/coverage/lcov-report/src/api/controllers/index.html +431 -0
  23. package/coverage/lcov-report/src/api/controllers/integration.ts.html +124 -0
  24. package/coverage/lcov-report/{api/controllers/layout.js.html → src/api/controllers/layout.ts.html} +31 -31
  25. package/coverage/lcov-report/{api/controllers/metadata.js.html → src/api/controllers/metadata.ts.html} +33 -30
  26. package/coverage/lcov-report/{api/controllers/migrations.js.html → src/api/controllers/migrations.ts.html} +20 -17
  27. package/coverage/lcov-report/{api/controllers/permission.js.html → src/api/controllers/permission.ts.html} +88 -79
  28. package/coverage/lcov-report/{api/routes/role.js.html → src/api/controllers/plugin/file.ts.html} +40 -40
  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/{utilities/routing/index.js.html → src/api/controllers/public/mapping/tables.ts.html} +46 -43
  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} +25 -25
  62. package/coverage/lcov-report/{api/controllers/role.js.html → src/api/controllers/role.ts.html} +48 -60
  63. package/coverage/lcov-report/{api/controllers/routing.js.html → src/api/controllers/routing.ts.html} +67 -58
  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} +162 -111
  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} +163 -121
  69. package/coverage/lcov-report/{api/controllers/row/internalSearch.js.html → src/api/controllers/row/internalSearch.ts.html} +189 -117
  70. package/coverage/lcov-report/{api/controllers/row/staticFormula.js.html → src/api/controllers/row/staticFormula.ts.html} +73 -58
  71. package/coverage/lcov-report/{api/controllers/row/utils.js.html → src/api/controllers/row/utils.ts.html} +88 -58
  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} +19 -16
  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} +104 -62
  77. package/coverage/lcov-report/{api/controllers/table/external.js.html → src/api/controllers/table/external.ts.html} +204 -111
  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} +58 -49
  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} +38 -29
  83. package/coverage/lcov-report/{api/controllers/user.js.html → src/api/controllers/user.ts.html} +93 -99
  84. package/coverage/lcov-report/{api/controllers/view/exporters.js.html → src/api/controllers/view/exporters.ts.html} +22 -16
  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} +91 -64
  87. package/coverage/lcov-report/{api/controllers/view/utils.js.html → src/api/controllers/view/utils.ts.html} +72 -54
  88. package/coverage/lcov-report/{api/controllers/view/viewBuilder.js.html → src/api/controllers/view/viewBuilder.ts.html} +78 -36
  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} +55 -76
  92. package/coverage/lcov-report/src/api/routes/analytics.ts.html +112 -0
  93. package/coverage/lcov-report/{api/routes/integration.js.html → src/api/routes/apikeys.ts.html} +25 -25
  94. package/coverage/lcov-report/{constants/screens.js.html → src/api/routes/application.ts.html} +66 -66
  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} +53 -47
  97. package/coverage/lcov-report/{api/routes/cloud.js.html → src/api/routes/backup.ts.html} +28 -28
  98. package/coverage/lcov-report/{api/routes/deploy.js.html → src/api/routes/cloud.ts.html} +31 -28
  99. package/coverage/lcov-report/{api/routes/component.js.html → src/api/routes/component.ts.html} +24 -24
  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/{automations/triggerInfo/index.js.html → src/api/routes/layout.ts.html} +29 -26
  107. package/coverage/lcov-report/{api/routes/metadata.js.html → src/api/routes/metadata.ts.html} +31 -31
  108. package/coverage/lcov-report/src/api/routes/migrations.ts.html +127 -0
  109. package/coverage/lcov-report/src/api/routes/permission.ts.html +208 -0
  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} +41 -50
  123. package/coverage/lcov-report/src/api/routes/role.ts.html +157 -0
  124. package/coverage/lcov-report/{api/routes/routing.js.html → src/api/routes/routing.ts.html} +24 -24
  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} +43 -28
  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} +32 -41
  130. package/coverage/lcov-report/{api/routes/templates.js.html → src/api/routes/templates.ts.html} +25 -25
  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} +35 -41
  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} +86 -98
  137. package/coverage/lcov-report/{api/routes/view.js.html → src/api/routes/view.ts.html} +45 -36
  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} +69 -60
  141. package/coverage/lcov-report/{automations/automationUtils.js.html → src/automations/automationUtils.ts.html} +36 -33
  142. package/coverage/lcov-report/{automations/bullboard.js.html → src/automations/bullboard.ts.html} +39 -42
  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} +46 -46
  145. package/coverage/lcov-report/src/automations/logging/index.html +116 -0
  146. package/coverage/lcov-report/src/automations/logging/index.ts.html +199 -0
  147. package/coverage/lcov-report/{automations/steps/bash.js.html → src/automations/steps/bash.ts.html} +45 -30
  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} +34 -19
  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} +43 -28
  152. package/coverage/lcov-report/{automations/steps/executeQuery.js.html → src/automations/steps/executeQuery.ts.html} +45 -30
  153. package/coverage/lcov-report/{automations/steps/executeScript.js.html → src/automations/steps/executeScript.ts.html} +58 -28
  154. package/coverage/lcov-report/{automations/steps/filter.js.html → src/automations/steps/filter.ts.html} +39 -30
  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} +38 -23
  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} +54 -39
  159. package/coverage/lcov-report/{automations/steps/queryRows.js.html → src/automations/steps/queryRows.ts.html} +102 -66
  160. package/coverage/lcov-report/{automations/steps/sendSmtpEmail.js.html → src/automations/steps/sendSmtpEmail.ts.html} +40 -25
  161. package/coverage/lcov-report/{automations/steps/serverLog.js.html → src/automations/steps/serverLog.ts.html} +40 -22
  162. package/coverage/lcov-report/{automations/steps/slack.js.html → src/automations/steps/slack.ts.html} +38 -23
  163. package/coverage/lcov-report/{automations/steps/updateRow.js.html → src/automations/steps/updateRow.ts.html} +40 -25
  164. package/coverage/lcov-report/{automations/steps/utils.js.html → src/automations/steps/utils.ts.html} +45 -27
  165. package/coverage/lcov-report/{automations/steps/zapier.js.html → src/automations/steps/zapier.ts.html} +41 -23
  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/src/automations/triggerInfo/index.ts.html +130 -0
  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} +78 -66
  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/src/constants/index.ts.html +697 -0
  180. package/coverage/lcov-report/{constants/layouts.js.html → src/constants/layouts.ts.html} +18 -36
  181. package/coverage/lcov-report/src/constants/screens.ts.html +229 -0
  182. package/coverage/lcov-report/src/db/defaultData/datasource_bb_default.ts.html +2059 -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} +47 -29
  190. package/coverage/lcov-report/{db → src/db}/index.html +48 -33
  191. package/coverage/lcov-report/{api/routes/layout.js.html → src/db/index.ts.html} +28 -28
  192. package/coverage/lcov-report/{db/linkedRows/LinkController.js.html → src/db/linkedRows/LinkController.ts.html} +97 -160
  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} +93 -78
  196. package/coverage/lcov-report/{db/linkedRows/linkUtils.js.html → src/db/linkedRows/linkUtils.ts.html} +83 -56
  197. package/coverage/lcov-report/{db/newid.js.html → src/db/newid.ts.html} +14 -14
  198. package/coverage/lcov-report/{db/utils.js.html → src/db/utils.ts.html} +163 -211
  199. package/coverage/lcov-report/{automations/triggerInfo/app.js.html → src/definitions/automations.ts.html} +42 -42
  200. package/coverage/lcov-report/{api/routes/datasource.js.html → src/definitions/datasource.ts.html} +61 -64
  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} +40 -25
  204. package/coverage/lcov-report/{events/index.js.html → src/events/BudibaseEmitter.ts.html} +26 -29
  205. package/coverage/lcov-report/{events → src/events}/index.html +48 -33
  206. package/coverage/lcov-report/{middleware/utils.js.html → src/events/index.ts.html} +18 -24
  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/src/index.ts.html +133 -0
  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/{api/routes/apikeys.js.html → src/integrations/base/utils.ts.html} +30 -30
  217. package/coverage/lcov-report/src/integrations/couchdb.ts.html +406 -0
  218. package/coverage/lcov-report/{constants/index.js.html → src/integrations/dynamodb.ts.html} +263 -227
  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} +33 -30
  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} +46 -40
  241. package/coverage/lcov-report/{middleware/currentapp.js.html → src/middleware/currentapp.ts.html} +81 -72
  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} +27 -27
  245. package/coverage/lcov-report/{middleware/resourceId.js.html → src/middleware/resourceId.ts.html} +60 -45
  246. package/coverage/lcov-report/{api/controllers/integration.js.html → src/middleware/selfhost.ts.html} +22 -28
  247. package/coverage/lcov-report/{api/routes/analytics.js.html → src/middleware/utils.ts.html} +19 -19
  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} +56 -56
  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 +161 -0
  267. package/coverage/lcov-report/{db/index.js.html → src/migrations/functions/syncQuotas.ts.html} +35 -38
  268. package/coverage/lcov-report/src/migrations/functions/tableSettings.ts.html +520 -0
  269. package/coverage/lcov-report/src/migrations/functions/usageQuotas/index.html +161 -0
  270. package/coverage/lcov-report/src/migrations/functions/usageQuotas/index.ts.html +94 -0
  271. package/coverage/lcov-report/src/migrations/functions/usageQuotas/syncApps.ts.html +127 -0
  272. package/coverage/lcov-report/src/migrations/functions/usageQuotas/syncPlugins.ts.html +115 -0
  273. package/coverage/lcov-report/src/migrations/functions/usageQuotas/syncRows.ts.html +169 -0
  274. package/coverage/lcov-report/src/migrations/functions/userEmailViewCasing.ts.html +124 -0
  275. package/coverage/lcov-report/{utilities/queue → src/migrations}/index.html +23 -23
  276. package/coverage/lcov-report/src/migrations/index.ts.html +430 -0
  277. package/coverage/lcov-report/src/migrations/tests/helpers.ts.html +205 -0
  278. package/coverage/lcov-report/src/migrations/tests/index.html +131 -0
  279. package/coverage/lcov-report/src/migrations/tests/structures.ts.html +283 -0
  280. package/coverage/lcov-report/src/sdk/app/automations/index.html +131 -0
  281. package/coverage/lcov-report/src/sdk/app/automations/index.ts.html +100 -0
  282. package/coverage/lcov-report/src/sdk/app/automations/webhook.ts.html +214 -0
  283. package/coverage/lcov-report/src/sdk/app/backups/constants.ts.html +91 -0
  284. package/coverage/lcov-report/src/sdk/app/backups/exports.ts.html +604 -0
  285. package/coverage/lcov-report/src/sdk/app/backups/imports.ts.html +682 -0
  286. package/coverage/lcov-report/src/sdk/app/backups/index.html +176 -0
  287. package/coverage/lcov-report/src/sdk/app/backups/index.ts.html +112 -0
  288. package/coverage/lcov-report/src/sdk/app/backups/statistics.ts.html +292 -0
  289. package/coverage/lcov-report/src/sdk/app/tables/index.html +116 -0
  290. package/coverage/lcov-report/src/sdk/app/tables/index.ts.html +265 -0
  291. package/coverage/lcov-report/{utilities/routing → src/sdk}/index.html +10 -10
  292. package/coverage/lcov-report/{api/routes/migrations.js.html → src/sdk/index.ts.html} +24 -21
  293. package/coverage/lcov-report/src/startup.ts.html +499 -0
  294. package/coverage/lcov-report/src/tests/utilities/TestConfiguration.ts.html +1966 -0
  295. package/coverage/lcov-report/src/tests/utilities/controllers.ts.html +127 -0
  296. package/coverage/lcov-report/src/tests/utilities/index.html +161 -0
  297. package/coverage/lcov-report/{middleware/selfhost.js.html → src/tests/utilities/index.ts.html} +33 -30
  298. package/coverage/lcov-report/src/tests/utilities/structures.ts.html +667 -0
  299. package/coverage/lcov-report/src/threads/automation.ts.html +1594 -0
  300. package/coverage/lcov-report/src/threads/index.html +161 -0
  301. package/coverage/lcov-report/src/threads/index.ts.html +418 -0
  302. package/coverage/lcov-report/src/threads/query.ts.html +961 -0
  303. package/coverage/lcov-report/src/threads/utils.ts.html +373 -0
  304. package/coverage/lcov-report/{utilities/budibaseDir.js.html → src/utilities/budibaseDir.ts.html} +14 -14
  305. package/coverage/lcov-report/{utilities/centralPath.js.html → src/utilities/centralPath.ts.html} +16 -16
  306. package/coverage/lcov-report/{utilities/csvParser.js.html → src/utilities/csvParser.ts.html} +107 -59
  307. package/coverage/lcov-report/src/utilities/fileSystem/clientLibrary.ts.html +547 -0
  308. package/coverage/lcov-report/{api/controllers/table → src/utilities/fileSystem}/index.html +44 -44
  309. package/coverage/lcov-report/src/utilities/fileSystem/index.ts.html +1129 -0
  310. package/coverage/lcov-report/src/utilities/fileSystem/processor.ts.html +142 -0
  311. package/coverage/lcov-report/{utilities/global.js.html → src/utilities/global.ts.html} +115 -82
  312. package/coverage/lcov-report/{utilities → src/utilities}/index.html +92 -77
  313. package/coverage/lcov-report/{utilities/index.js.html → src/utilities/index.ts.html} +98 -74
  314. package/coverage/lcov-report/{utilities/plugins.js.html → src/utilities/plugins.ts.html} +25 -22
  315. package/coverage/lcov-report/src/utilities/redis.ts.html +343 -0
  316. package/coverage/lcov-report/{api/controllers/query → src/utilities/routing}/index.html +8 -8
  317. package/coverage/lcov-report/src/utilities/routing/index.ts.html +181 -0
  318. package/coverage/lcov-report/src/utilities/rowProcessor/index.html +146 -0
  319. package/coverage/lcov-report/{utilities/rowProcessor/index.js.html → src/utilities/rowProcessor/index.ts.html} +128 -359
  320. package/coverage/lcov-report/src/utilities/rowProcessor/map.ts.html +373 -0
  321. package/coverage/lcov-report/{utilities/rowProcessor/utils.js.html → src/utilities/rowProcessor/utils.ts.html} +54 -42
  322. package/coverage/lcov-report/{utilities/scriptRunner.js.html → src/utilities/scriptRunner.ts.html} +31 -19
  323. package/coverage/lcov-report/{utilities/security.js.html → src/utilities/security.ts.html} +60 -78
  324. package/coverage/lcov-report/{utilities/statusCodes.js.html → src/utilities/statusCodes.ts.html} +11 -11
  325. package/coverage/lcov-report/{utilities → src/utilities}/usageQuota/index.html +28 -28
  326. package/coverage/lcov-report/{utilities/usageQuota/rows.js.html → src/utilities/usageQuota/rows.ts.html} +36 -48
  327. package/coverage/lcov-report/{utilities/usageQuota/usageQuoteReset.js.html → src/utilities/usageQuota/usageQuoteReset.ts.html} +13 -13
  328. package/coverage/lcov-report/{utilities/users.js.html → src/utilities/users.ts.html} +34 -40
  329. package/coverage/lcov-report/{utilities/workerRequests.js.html → src/utilities/workerRequests.ts.html} +127 -112
  330. package/coverage/lcov-report/{events/utils.js.html → src/watch.ts.html} +67 -70
  331. package/coverage/lcov-report/src/websocket.ts.html +163 -0
  332. package/coverage/lcov.info +19754 -7082
  333. package/dist/api/controllers/apikeys.js +12 -9
  334. package/dist/api/controllers/application.js +48 -45
  335. package/dist/api/controllers/automation.js +122 -82
  336. package/dist/api/controllers/cloud.js +84 -71
  337. package/dist/api/controllers/component.js +4 -2
  338. package/dist/api/controllers/datasource.js +151 -94
  339. package/dist/api/controllers/deploy/Deployment.js +10 -6
  340. package/dist/api/controllers/deploy/index.js +13 -16
  341. package/dist/api/controllers/dev.js +96 -81
  342. package/dist/api/controllers/integration.js +11 -8
  343. package/dist/api/controllers/layout.js +18 -15
  344. package/dist/api/controllers/metadata.js +51 -37
  345. package/dist/api/controllers/migrations.js +19 -11
  346. package/dist/api/controllers/permission.js +52 -43
  347. package/dist/api/controllers/plugin/index.js +6 -7
  348. package/dist/api/controllers/plugin/utils.js +2 -1
  349. package/dist/api/controllers/public/applications.js +17 -9
  350. package/dist/api/controllers/public/tables.js +29 -9
  351. package/dist/api/controllers/public/utils.js +2 -2
  352. package/dist/api/controllers/query/import/index.js +1 -2
  353. package/dist/api/controllers/query/index.js +10 -13
  354. package/dist/api/controllers/query/validation.js +41 -33
  355. package/dist/api/controllers/role.js +29 -27
  356. package/dist/api/controllers/routing.js +71 -58
  357. package/dist/api/controllers/row/ExternalRequest.js +538 -542
  358. package/dist/api/controllers/row/external.js +258 -190
  359. package/dist/api/controllers/row/index.js +43 -14
  360. package/dist/api/controllers/row/internal.js +354 -295
  361. package/dist/api/controllers/row/internalSearch.js +95 -80
  362. package/dist/api/controllers/row/staticFormula.js +125 -112
  363. package/dist/api/controllers/row/utils.js +122 -84
  364. package/dist/api/controllers/screen.js +81 -66
  365. package/dist/api/controllers/script.js +13 -6
  366. package/dist/api/controllers/static/index.js +11 -14
  367. package/dist/api/controllers/table/bulkFormula.js +47 -35
  368. package/dist/api/controllers/table/external.js +89 -53
  369. package/dist/api/controllers/table/index.js +64 -31
  370. package/dist/api/controllers/table/internal.js +5 -6
  371. package/dist/api/controllers/table/utils.js +39 -35
  372. package/dist/api/controllers/templates.js +17 -10
  373. package/dist/api/controllers/user.js +82 -70
  374. package/dist/api/controllers/view/exporters.js +8 -4
  375. package/dist/api/controllers/view/index.js +201 -153
  376. package/dist/api/controllers/view/utils.js +151 -121
  377. package/dist/api/controllers/view/viewBuilder.js +4 -16
  378. package/dist/api/controllers/webhook.js +25 -2
  379. package/dist/api/index.js +38 -34
  380. package/dist/api/routes/analytics.js +29 -3
  381. package/dist/api/routes/apikeys.js +33 -7
  382. package/dist/api/routes/application.js +8 -9
  383. package/dist/api/routes/auth.js +1 -2
  384. package/dist/api/routes/automation.js +46 -20
  385. package/dist/api/routes/backup.js +3 -4
  386. package/dist/api/routes/cloud.js +32 -6
  387. package/dist/api/routes/component.js +32 -6
  388. package/dist/api/routes/datasource.js +39 -13
  389. package/dist/api/routes/deploy.js +34 -8
  390. package/dist/api/routes/dev.js +36 -10
  391. package/dist/api/routes/integration.js +33 -7
  392. package/dist/api/routes/layout.js +33 -7
  393. package/dist/api/routes/metadata.js +36 -10
  394. package/dist/api/routes/migrations.js +32 -6
  395. package/dist/api/routes/permission.js +38 -12
  396. package/dist/api/routes/plugin.js +5 -5
  397. package/dist/api/routes/public/index.js +11 -11
  398. package/dist/api/routes/query.js +42 -15
  399. package/dist/api/routes/role.js +36 -10
  400. package/dist/api/routes/routing.js +32 -6
  401. package/dist/api/routes/row.js +12 -11
  402. package/dist/api/routes/screen.js +35 -9
  403. package/dist/api/routes/script.js +32 -6
  404. package/dist/api/routes/static.js +9 -9
  405. package/dist/api/routes/table.js +40 -13
  406. package/dist/api/routes/templates.js +33 -7
  407. package/dist/api/routes/tests/utilities/TestFunctions.js +6 -8
  408. package/dist/api/routes/tests/utilities/index.js +69 -32
  409. package/dist/api/routes/user.js +40 -13
  410. package/dist/api/routes/utils/validators.js +142 -126
  411. package/dist/api/routes/view.js +38 -12
  412. package/dist/api/routes/webhook.js +1 -2
  413. package/dist/app.js +22 -22
  414. package/dist/automations/actions.js +53 -24
  415. package/dist/automations/automationUtils.js +31 -19
  416. package/dist/automations/bullboard.js +59 -29
  417. package/dist/automations/index.js +23 -18
  418. package/dist/automations/steps/bash.js +40 -10
  419. package/dist/automations/steps/createRow.js +2 -1
  420. package/dist/automations/steps/delay.js +9 -5
  421. package/dist/automations/steps/deleteRow.js +2 -1
  422. package/dist/automations/steps/discord.js +14 -7
  423. package/dist/automations/steps/executeQuery.js +34 -7
  424. package/dist/automations/steps/executeScript.js +34 -7
  425. package/dist/automations/steps/filter.js +20 -18
  426. package/dist/automations/steps/integromat.js +14 -7
  427. package/dist/automations/steps/loop.js +4 -1
  428. package/dist/automations/steps/outgoingWebhook.js +45 -14
  429. package/dist/automations/steps/queryRows.js +71 -38
  430. package/dist/automations/steps/sendSmtpEmail.js +33 -6
  431. package/dist/automations/steps/serverLog.js +12 -8
  432. package/dist/automations/steps/slack.js +14 -7
  433. package/dist/automations/steps/updateRow.js +34 -7
  434. package/dist/automations/steps/utils.js +22 -16
  435. package/dist/automations/steps/zapier.js +15 -7
  436. package/dist/automations/tests/utilities/index.js +62 -38
  437. package/dist/automations/triggerInfo/app.js +4 -1
  438. package/dist/automations/triggerInfo/cron.js +4 -1
  439. package/dist/automations/triggerInfo/index.js +31 -6
  440. package/dist/automations/triggerInfo/rowDeleted.js +4 -1
  441. package/dist/automations/triggerInfo/rowSaved.js +4 -1
  442. package/dist/automations/triggerInfo/rowUpdated.js +4 -1
  443. package/dist/automations/triggerInfo/webhook.js +4 -1
  444. package/dist/automations/triggers.js +90 -57
  445. package/dist/automations/utils.js +9 -8
  446. package/dist/constants/index.js +118 -104
  447. package/dist/constants/layouts.js +7 -10
  448. package/dist/constants/screens.js +49 -44
  449. package/dist/db/defaultData/datasource_bb_default.js +573 -0
  450. package/dist/db/defaultData/employeeImport.js +155 -0
  451. package/dist/db/defaultData/expensesImport.js +117 -0
  452. package/dist/db/defaultData/inventoryImport.js +109 -0
  453. package/dist/db/defaultData/jobsImport.js +152 -0
  454. package/dist/db/dynamoClient.js +20 -20
  455. package/dist/db/inMemoryView.js +47 -38
  456. package/dist/db/index.js +7 -4
  457. package/dist/db/linkedRows/LinkController.js +51 -70
  458. package/dist/db/linkedRows/LinkDocument.js +32 -0
  459. package/dist/db/linkedRows/index.js +93 -81
  460. package/dist/db/linkedRows/linkUtils.js +42 -32
  461. package/dist/db/utils.js +146 -119
  462. package/dist/db/views/staticViews.js +91 -74
  463. package/dist/environment.js +9 -6
  464. package/dist/events/AutomationEmitter.js +13 -10
  465. package/dist/events/BudibaseEmitter.js +24 -0
  466. package/dist/events/index.js +5 -23
  467. package/dist/events/utils.js +18 -10
  468. package/dist/integrations/elasticsearch.js +26 -2
  469. package/dist/integrations/googlesheets.js +5 -6
  470. package/dist/integrations/index.js +15 -6
  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/tableSettings.js +130 -0
  484. package/dist/migrations/functions/usageQuotas/syncApps.js +3 -4
  485. package/dist/migrations/functions/usageQuotas/syncRows.js +3 -4
  486. package/dist/migrations/functions/userEmailViewCasing.js +3 -3
  487. package/dist/migrations/index.js +5 -0
  488. package/dist/package.json +11 -45
  489. package/dist/sdk/app/backups/exports.js +1 -2
  490. package/dist/sdk/app/backups/imports.js +2 -3
  491. package/dist/sdk/app/tables/index.js +5 -5
  492. package/dist/startup.js +10 -10
  493. package/dist/tests/utilities/TestConfiguration.js +111 -87
  494. package/dist/tests/utilities/controllers.js +38 -15
  495. package/dist/tests/utilities/structures.js +72 -53
  496. package/dist/threads/automation.js +49 -27
  497. package/dist/threads/query.js +17 -19
  498. package/dist/threads/utils.js +33 -8
  499. package/dist/tsconfig.build.tsbuildinfo +1 -1
  500. package/dist/utilities/budibaseDir.js +4 -2
  501. package/dist/utilities/centralPath.js +14 -7
  502. package/dist/utilities/csvParser.js +27 -21
  503. package/dist/utilities/fileSystem/clientLibrary.js +87 -73
  504. package/dist/utilities/fileSystem/index.js +203 -175
  505. package/dist/utilities/fileSystem/processor.js +8 -3
  506. package/dist/utilities/global.js +87 -66
  507. package/dist/utilities/index.js +102 -75
  508. package/dist/utilities/plugins.js +15 -9
  509. package/dist/utilities/redis.js +100 -65
  510. package/dist/utilities/routing/index.js +27 -23
  511. package/dist/utilities/rowProcessor/index.js +133 -191
  512. package/dist/utilities/rowProcessor/map.js +99 -0
  513. package/dist/utilities/rowProcessor/utils.js +35 -26
  514. package/dist/utilities/scriptRunner.js +8 -5
  515. package/dist/utilities/security.js +39 -35
  516. package/dist/utilities/usageQuota/rows.js +56 -49
  517. package/dist/utilities/users.js +31 -28
  518. package/dist/utilities/workerRequests.js +115 -82
  519. package/dist/watch.js +1 -2
  520. package/jest.config.ts +33 -0
  521. package/package.json +12 -46
  522. package/scripts/exportAppTemplate.js +2 -2
  523. package/scripts/localdomain.js +34 -6
  524. package/src/api/controllers/{apikeys.js → apikeys.ts} +10 -10
  525. package/src/api/controllers/application.ts +56 -42
  526. package/src/api/controllers/auth.ts +4 -3
  527. package/src/api/controllers/{automation.js → automation.ts} +48 -48
  528. package/src/api/controllers/{cloud.js → cloud.ts} +24 -24
  529. package/src/api/controllers/component.ts +2 -1
  530. package/src/api/controllers/{datasource.js → datasource.ts} +109 -49
  531. package/src/api/controllers/deploy/{Deployment.js → Deployment.ts} +13 -10
  532. package/src/api/controllers/deploy/index.ts +13 -25
  533. package/src/api/controllers/{dev.js → dev.ts} +31 -37
  534. package/src/api/controllers/integration.ts +13 -0
  535. package/src/api/controllers/{layout.js → layout.ts} +8 -8
  536. package/src/api/controllers/{metadata.js → metadata.ts} +11 -10
  537. package/src/api/controllers/migrations.ts +14 -0
  538. package/src/api/controllers/{permission.js → permission.ts} +49 -46
  539. package/src/api/controllers/plugin/index.ts +4 -5
  540. package/src/api/controllers/plugin/utils.ts +3 -5
  541. package/src/api/controllers/public/applications.ts +15 -9
  542. package/src/api/controllers/public/rows.ts +1 -1
  543. package/src/api/controllers/public/tables.ts +2 -2
  544. package/src/api/controllers/public/utils.ts +2 -2
  545. package/src/api/controllers/query/import/index.ts +2 -3
  546. package/src/api/controllers/query/index.ts +11 -14
  547. package/src/api/controllers/query/{validation.js → validation.ts} +7 -7
  548. package/src/api/controllers/{role.js → role.ts} +21 -25
  549. package/src/api/controllers/{routing.js → routing.ts} +37 -34
  550. package/src/api/controllers/row/ExternalRequest.ts +602 -624
  551. package/src/api/controllers/row/{external.js → external.ts} +79 -62
  552. package/src/api/controllers/row/index.ts +19 -11
  553. package/src/api/controllers/row/{internal.js → internal.ts} +87 -73
  554. package/src/api/controllers/row/{internalSearch.js → internalSearch.ts} +92 -68
  555. package/src/api/controllers/row/{staticFormula.js → staticFormula.ts} +30 -25
  556. package/src/api/controllers/row/{utils.js → utils.ts} +32 -22
  557. package/src/api/controllers/screen.ts +10 -6
  558. package/src/api/controllers/script.ts +12 -0
  559. package/src/api/controllers/static/index.ts +14 -16
  560. package/src/api/controllers/table/{bulkFormula.js → bulkFormula.ts} +39 -25
  561. package/src/api/controllers/table/{external.js → external.ts} +86 -55
  562. package/src/api/controllers/table/{index.js → index.ts} +21 -18
  563. package/src/api/controllers/table/internal.ts +5 -6
  564. package/src/api/controllers/table/utils.ts +26 -21
  565. package/src/api/controllers/{templates.js → templates.ts} +10 -7
  566. package/src/api/controllers/{user.js → user.ts} +47 -49
  567. package/src/api/controllers/view/{exporters.js → exporters.ts} +5 -3
  568. package/src/api/controllers/view/{index.js → index.ts} +36 -27
  569. package/src/api/controllers/view/{utils.js → utils.ts} +26 -20
  570. package/src/api/controllers/view/{viewBuilder.js → viewBuilder.ts} +25 -11
  571. package/src/api/controllers/webhook.ts +1 -1
  572. package/src/api/{index.js → index.ts} +15 -22
  573. package/src/api/routes/analytics.ts +9 -0
  574. package/src/api/routes/apikeys.ts +12 -0
  575. package/src/api/routes/application.ts +17 -9
  576. package/src/api/routes/auth.ts +2 -2
  577. package/src/api/routes/automation.ts +87 -0
  578. package/src/api/routes/backup.ts +8 -4
  579. package/src/api/routes/cloud.ts +18 -0
  580. package/src/api/routes/component.ts +14 -0
  581. package/src/api/routes/datasource.ts +60 -0
  582. package/src/api/routes/deploy.ts +21 -0
  583. package/src/api/routes/dev.ts +38 -0
  584. package/src/api/routes/integration.ts +16 -0
  585. package/src/api/routes/layout.ts +16 -0
  586. package/src/api/routes/{metadata.js → metadata.ts} +13 -13
  587. package/src/api/routes/migrations.ts +14 -0
  588. package/src/api/routes/permission.ts +41 -0
  589. package/src/api/routes/plugin.ts +14 -6
  590. package/src/api/routes/public/index.ts +11 -14
  591. package/src/api/routes/public/tests/compare.spec.js +1 -1
  592. package/src/api/routes/{query.js → query.ts} +19 -22
  593. package/src/api/routes/role.ts +24 -0
  594. package/src/api/routes/routing.ts +14 -0
  595. package/src/api/routes/row.ts +13 -15
  596. package/src/api/routes/screen.ts +23 -0
  597. package/src/api/routes/script.ts +10 -0
  598. package/src/api/routes/static.ts +7 -10
  599. package/src/api/routes/{table.js → table.ts} +10 -13
  600. package/src/api/routes/templates.ts +16 -0
  601. package/src/api/routes/tests/analytics.spec.js +1 -1
  602. package/src/api/routes/tests/backup.spec.js +9 -1
  603. package/src/api/routes/tests/deployment.spec.ts +1 -1
  604. package/src/api/routes/tests/permissions.spec.js +2 -1
  605. package/src/api/routes/tests/query.spec.js +15 -10
  606. package/src/api/routes/tests/role.spec.js +7 -9
  607. package/src/api/routes/tests/routing.spec.js +2 -1
  608. package/src/api/routes/tests/row.spec.js +3 -4
  609. package/src/api/routes/tests/static.spec.js +2 -2
  610. package/src/api/routes/tests/table.spec.js +40 -36
  611. package/src/api/routes/tests/user.spec.js +2 -1
  612. package/src/api/routes/tests/utilities/TestFunctions.ts +6 -8
  613. package/src/api/routes/tests/utilities/{index.js → index.ts} +12 -12
  614. package/src/api/routes/tests/view.spec.js +3 -3
  615. package/src/api/routes/user.ts +51 -0
  616. package/src/api/routes/utils/{validators.js → validators.ts} +33 -37
  617. package/src/api/routes/view.ts +34 -0
  618. package/src/api/routes/webhook.ts +2 -2
  619. package/src/app.ts +15 -14
  620. package/src/automations/{actions.js → actions.ts} +26 -23
  621. package/src/automations/{automationUtils.js → automationUtils.ts} +13 -12
  622. package/src/automations/bullboard.ts +38 -0
  623. package/src/automations/index.ts +26 -0
  624. package/src/automations/steps/{bash.js → bash.ts} +13 -8
  625. package/src/automations/steps/createRow.ts +8 -3
  626. package/src/automations/steps/{delay.js → delay.ts} +9 -4
  627. package/src/automations/steps/deleteRow.ts +8 -3
  628. package/src/automations/steps/{discord.js → discord.ts} +10 -5
  629. package/src/automations/steps/{executeQuery.js → executeQuery.ts} +12 -7
  630. package/src/automations/steps/{executeScript.js → executeScript.ts} +17 -7
  631. package/src/automations/steps/{filter.js → filter.ts} +12 -9
  632. package/src/automations/steps/{integromat.js → integromat.ts} +10 -5
  633. package/src/automations/steps/{loop.js → loop.ts} +4 -2
  634. package/src/automations/steps/{outgoingWebhook.js → outgoingWebhook.ts} +18 -13
  635. package/src/automations/steps/{queryRows.js → queryRows.ts} +48 -36
  636. package/src/automations/steps/{sendSmtpEmail.js → sendSmtpEmail.ts} +10 -5
  637. package/src/automations/steps/{serverLog.js → serverLog.ts} +9 -3
  638. package/src/automations/steps/{slack.js → slack.ts} +10 -5
  639. package/src/automations/steps/{updateRow.js → updateRow.ts} +12 -7
  640. package/src/automations/steps/{utils.js → utils.ts} +10 -4
  641. package/src/automations/steps/{zapier.js → zapier.ts} +11 -5
  642. package/src/automations/tests/updateRow.spec.js +0 -1
  643. package/src/automations/tests/utilities/index.ts +60 -0
  644. package/src/automations/triggerInfo/{app.js → app.ts} +7 -2
  645. package/src/automations/triggerInfo/{cron.js → cron.ts} +7 -2
  646. package/src/automations/triggerInfo/index.ts +15 -0
  647. package/src/automations/triggerInfo/{rowDeleted.js → rowDeleted.ts} +7 -2
  648. package/src/automations/triggerInfo/{rowSaved.js → rowSaved.ts} +7 -2
  649. package/src/automations/triggerInfo/{rowUpdated.js → rowUpdated.ts} +7 -2
  650. package/src/automations/triggerInfo/{webhook.js → webhook.ts} +7 -2
  651. package/src/automations/{triggers.js → triggers.ts} +30 -26
  652. package/src/automations/utils.ts +9 -12
  653. package/src/constants/index.ts +204 -0
  654. package/src/constants/{layouts.js → layouts.ts} +3 -9
  655. package/src/constants/screens.ts +48 -0
  656. package/src/db/defaultData/datasource_bb_default.ts +658 -0
  657. package/src/db/defaultData/employeeImport.ts +152 -0
  658. package/src/db/defaultData/expensesImport.ts +114 -0
  659. package/src/db/defaultData/inventoryImport.ts +106 -0
  660. package/src/db/defaultData/jobsImport.ts +158 -0
  661. package/src/db/{dynamoClient.js → dynamoClient.ts} +39 -19
  662. package/src/db/{inMemoryView.js → inMemoryView.ts} +15 -9
  663. package/src/db/index.ts +16 -0
  664. package/src/db/linkedRows/{LinkController.js → LinkController.ts} +64 -85
  665. package/src/db/linkedRows/LinkDocument.ts +60 -0
  666. package/src/db/linkedRows/{index.js → index.ts} +43 -38
  667. package/src/db/linkedRows/{linkUtils.js → linkUtils.ts} +33 -24
  668. package/src/db/{newid.js → newid.ts} +1 -1
  669. package/src/db/tests/linkController.spec.js +73 -57
  670. package/src/db/tests/linkTests.spec.js +17 -14
  671. package/src/db/{utils.js → utils.ts} +77 -93
  672. package/src/db/views/{staticViews.js → staticViews.ts} +20 -13
  673. package/src/{environment.js → environment.ts} +11 -7
  674. package/src/events/{AutomationEmitter.js → AutomationEmitter.ts} +12 -7
  675. package/src/events/{index.js → BudibaseEmitter.ts} +7 -8
  676. package/src/events/index.ts +5 -0
  677. package/src/events/utils.ts +78 -0
  678. package/src/integrations/base/sql.ts +1 -1
  679. package/src/integrations/base/sqlTable.ts +1 -1
  680. package/src/integrations/elasticsearch.ts +32 -2
  681. package/src/integrations/googlesheets.ts +5 -7
  682. package/src/integrations/index.ts +45 -41
  683. package/src/integrations/s3.ts +179 -3
  684. package/src/integrations/tests/s3.spec.ts +85 -1
  685. package/src/integrations/utils.ts +6 -2
  686. package/src/middleware/appInfo.ts +20 -0
  687. package/src/middleware/authorized.ts +21 -28
  688. package/src/middleware/{builder.js → builder.ts} +17 -15
  689. package/src/middleware/{currentapp.js → currentapp.ts} +42 -39
  690. package/src/middleware/{joi-validator.js → joi-validator.ts} +9 -8
  691. package/src/middleware/publicApi.ts +21 -0
  692. package/src/middleware/{resourceId.js → resourceId.ts} +16 -11
  693. package/src/middleware/{selfhost.js → selfhost.ts} +4 -2
  694. package/src/middleware/tests/authorized.spec.js +5 -6
  695. package/src/middleware/tests/currentapp.spec.js +118 -63
  696. package/src/middleware/{utils.js → utils.ts} +3 -1
  697. package/src/migrations/functions/appUrls.ts +2 -2
  698. package/src/migrations/functions/backfill/app/tables.ts +2 -5
  699. package/src/migrations/functions/backfill/global.ts +1 -1
  700. package/src/migrations/functions/tableSettings.ts +145 -0
  701. package/src/migrations/functions/tests/appUrls.spec.js +4 -4
  702. package/src/migrations/functions/tests/tableSettings.spec.ts +144 -0
  703. package/src/migrations/functions/tests/userEmailViewCasing.spec.js +14 -9
  704. package/src/migrations/functions/usageQuotas/syncApps.ts +3 -4
  705. package/src/migrations/functions/usageQuotas/syncRows.ts +4 -5
  706. package/src/migrations/functions/usageQuotas/tests/syncRows.spec.ts +7 -7
  707. package/src/migrations/functions/userEmailViewCasing.ts +3 -3
  708. package/src/migrations/index.ts +9 -0
  709. package/src/migrations/tests/index.spec.ts +1 -1
  710. package/src/sdk/app/backups/exports.ts +5 -3
  711. package/src/sdk/app/backups/imports.ts +7 -14
  712. package/src/sdk/app/backups/statistics.ts +9 -18
  713. package/src/sdk/app/tables/index.ts +7 -8
  714. package/src/startup.ts +5 -5
  715. package/{scripts/jestSetup.js → src/tests/jestSetup.ts} +11 -2
  716. package/src/tests/utilities/{TestConfiguration.js → TestConfiguration.ts} +111 -78
  717. package/src/tests/utilities/controllers.ts +14 -0
  718. package/src/tests/utilities/{index.js → index.ts} +2 -2
  719. package/src/tests/utilities/{structures.js → structures.ts} +41 -36
  720. package/src/threads/automation.ts +18 -19
  721. package/src/threads/query.ts +11 -16
  722. package/src/threads/utils.ts +4 -5
  723. package/src/utilities/budibaseDir.ts +3 -0
  724. package/src/utilities/{centralPath.js → centralPath.ts} +3 -3
  725. package/src/utilities/{csvParser.js → csvParser.ts} +42 -26
  726. package/src/utilities/fileSystem/{clientLibrary.js → clientLibrary.ts} +20 -20
  727. package/src/utilities/fileSystem/{index.js → index.ts} +61 -65
  728. package/src/utilities/fileSystem/{processor.js → processor.ts} +3 -5
  729. package/src/utilities/global.ts +138 -0
  730. package/src/utilities/{index.js → index.ts} +40 -32
  731. package/src/utilities/{plugins.js → plugins.ts} +5 -4
  732. package/src/utilities/{redis.js → redis.ts} +21 -20
  733. package/src/utilities/routing/index.ts +32 -0
  734. package/src/utilities/rowProcessor/{index.js → index.ts} +67 -144
  735. package/src/utilities/rowProcessor/map.ts +96 -0
  736. package/src/utilities/rowProcessor/{utils.js → utils.ts} +19 -15
  737. package/src/utilities/{scriptRunner.js → scriptRunner.ts} +8 -4
  738. package/src/utilities/security.ts +65 -0
  739. package/src/utilities/{statusCodes.js → statusCodes.ts} +1 -1
  740. package/src/utilities/usageQuota/{rows.js → rows.ts} +14 -18
  741. package/src/utilities/usageQuota/{usageQuoteReset.js → usageQuoteReset.ts} +1 -1
  742. package/src/utilities/{users.js → users.ts} +11 -13
  743. package/src/utilities/{workerRequests.js → workerRequests.ts} +43 -38
  744. package/src/watch.ts +2 -3
  745. package/tsconfig.build.json +1 -2
  746. package/tsconfig.json +3 -1
  747. package/builder/assets/index.534f6c29.css +0 -6
  748. package/coverage/lcov-report/api/controllers/index.html +0 -326
  749. package/coverage/lcov-report/api/routes/permission.js.html +0 -184
  750. package/coverage/lcov-report/automations/steps/index.html +0 -341
  751. package/coverage/lcov-report/db/linkedRows/index.html +0 -146
  752. package/dist/integrations/tests/TestConfiguration.js +0 -1
  753. package/dist/utilities/fileSystem/utilities.js +0 -22
  754. package/dist/utilities/queue/inMemoryQueue.js +0 -126
  755. package/src/api/controllers/integration.js +0 -14
  756. package/src/api/controllers/migrations.js +0 -13
  757. package/src/api/controllers/script.js +0 -11
  758. package/src/api/routes/analytics.js +0 -9
  759. package/src/api/routes/apikeys.js +0 -12
  760. package/src/api/routes/automation.js +0 -85
  761. package/src/api/routes/cloud.js +0 -14
  762. package/src/api/routes/component.js +0 -14
  763. package/src/api/routes/datasource.js +0 -51
  764. package/src/api/routes/deploy.js +0 -17
  765. package/src/api/routes/dev.js +0 -26
  766. package/src/api/routes/integration.js +0 -12
  767. package/src/api/routes/layout.js +0 -16
  768. package/src/api/routes/migrations.js +0 -14
  769. package/src/api/routes/permission.js +0 -33
  770. package/src/api/routes/role.js +0 -15
  771. package/src/api/routes/routing.js +0 -14
  772. package/src/api/routes/screen.js +0 -18
  773. package/src/api/routes/script.js +0 -10
  774. package/src/api/routes/templates.js +0 -16
  775. package/src/api/routes/user.js +0 -53
  776. package/src/api/routes/view.js +0 -31
  777. package/src/automations/bullboard.js +0 -39
  778. package/src/automations/index.js +0 -29
  779. package/src/automations/tests/utilities/index.js +0 -51
  780. package/src/automations/triggerInfo/index.js +0 -15
  781. package/src/constants/index.js +0 -208
  782. package/src/constants/screens.js +0 -46
  783. package/src/db/index.js +0 -16
  784. package/src/events/utils.js +0 -38
  785. package/src/middleware/appInfo.js +0 -19
  786. package/src/middleware/publicApi.js +0 -21
  787. package/src/module.d.ts +0 -14
  788. package/src/tests/utilities/controllers.js +0 -16
  789. package/src/utilities/budibaseDir.js +0 -3
  790. package/src/utilities/fileSystem/utilities.js +0 -36
  791. package/src/utilities/global.js +0 -127
  792. package/src/utilities/queue/inMemoryQueue.js +0 -122
  793. package/src/utilities/routing/index.js +0 -25
  794. 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>
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">45x</span>
245
+ <span class="cline-any cline-yes">45x</span>
246
+ <span class="cline-any cline-yes">45x</span>
242
247
  <span class="cline-any cline-neutral">&nbsp;</span>
243
248
  <span class="cline-any cline-neutral">&nbsp;</span>
244
249
  <span class="cline-any cline-neutral">&nbsp;</span>
250
+ <span class="cline-any cline-yes">45x</span>
245
251
  <span class="cline-any cline-neutral">&nbsp;</span>
246
252
  <span class="cline-any cline-neutral">&nbsp;</span>
253
+ <span class="cline-any cline-yes">45x</span>
247
254
  <span class="cline-any cline-neutral">&nbsp;</span>
248
- <span class="cline-any cline-yes">44x</span>
249
- <span class="cline-any cline-yes">44x</span>
250
255
  <span class="cline-any cline-neutral">&nbsp;</span>
251
256
  <span class="cline-any cline-neutral">&nbsp;</span>
252
257
  <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
- <span class="cline-any cline-neutral">&nbsp;</span>
257
- <span class="cline-any cline-yes">44x</span>
258
+ <span class="cline-any cline-yes">45x</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>
@@ -337,16 +337,16 @@
337
337
  <span class="cline-any cline-neutral">&nbsp;</span>
338
338
  <span class="cline-any cline-neutral">&nbsp;</span>
339
339
  <span class="cline-any cline-neutral">&nbsp;</span>
340
- <span class="cline-any cline-yes">44x</span>
340
+ <span class="cline-any cline-yes">45x</span>
341
341
  <span class="cline-any cline-yes">1x</span>
342
342
  <span class="cline-any cline-neutral">&nbsp;</span>
343
343
  <span class="cline-any cline-neutral">&nbsp;</span>
344
- <span class="cline-any cline-yes">44x</span>
344
+ <span class="cline-any cline-yes">45x</span>
345
345
  <span class="cline-any cline-neutral">&nbsp;</span>
346
346
  <span class="cline-any cline-yes">1x</span>
347
347
  <span class="cline-any cline-neutral">&nbsp;</span>
348
348
  <span class="cline-any cline-neutral">&nbsp;</span>
349
- <span class="cline-any cline-yes">44x</span>
349
+ <span class="cline-any cline-yes">45x</span>
350
350
  <span class="cline-any cline-yes">1x</span>
351
351
  <span class="cline-any cline-yes">1x</span>
352
352
  <span class="cline-any cline-yes">1x</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>
@@ -372,7 +375,7 @@
372
375
  <span class="cline-any cline-yes">1x</span>
373
376
  <span class="cline-any cline-neutral">&nbsp;</span>
374
377
  <span class="cline-any cline-neutral">&nbsp;</span>
375
- <span class="cline-any cline-yes">44x</span>
378
+ <span class="cline-any cline-yes">45x</span>
376
379
  <span class="cline-any cline-yes">3x</span>
377
380
  <span class="cline-any cline-yes">3x</span>
378
381
  <span class="cline-any cline-yes">3x</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>
@@ -398,7 +404,7 @@
398
404
  <span class="cline-any cline-yes">3x</span>
399
405
  <span class="cline-any cline-neutral">&nbsp;</span>
400
406
  <span class="cline-any cline-neutral">&nbsp;</span>
401
- <span class="cline-any cline-yes">44x</span>
407
+ <span class="cline-any cline-yes">45x</span>
402
408
  <span class="cline-any cline-yes">10x</span>
403
409
  <span class="cline-any cline-neutral">&nbsp;</span>
404
410
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -406,28 +412,21 @@
406
412
  <span class="cline-any cline-neutral">&nbsp;</span>
407
413
  <span class="cline-any cline-neutral">&nbsp;</span>
408
414
  <span class="cline-any cline-neutral">&nbsp;</span>
409
- <span class="cline-any cline-yes">44x</span>
415
+ <span class="cline-any cline-yes">45x</span>
410
416
  <span class="cline-any cline-yes">1x</span>
411
417
  <span class="cline-any cline-neutral">&nbsp;</span>
412
418
  <span class="cline-any cline-neutral">&nbsp;</span>
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 Wed Nov 30 2022 16:24:21 GMT+0000 (Coordinated Universal Time)
607
+ at Fri Dec 02 2022 11:07:31 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
 
@@ -3,15 +3,15 @@
3
3
  <html lang="en">
4
4
 
5
5
  <head>
6
- <title>Code coverage report for api/routes/role.js</title>
6
+ <title>Code coverage report for src/api/controllers/plugin/file.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,34 +19,34 @@
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/routes</a> role.js</h1>
22
+ <h1><a href="../../../../index.html">All files</a> / <a href="index.html">src/api/controllers/plugin</a> file.ts</h1>
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">100% </span>
26
+ <span class="strong">28.57% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>8/8</span>
28
+ <span class='fraction'>2/7</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">100% </span>
33
+ <span class="strong">0% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>0/0</span>
35
+ <span class='fraction'>0/1</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">100% </span>
40
+ <span class="strong">0% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>0/0</span>
42
+ <span class='fraction'>0/1</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">100% </span>
47
+ <span class="strong">28.57% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>8/8</span>
49
+ <span class='fraction'>2/7</span>
50
50
  </div>
51
51
 
52
52
 
@@ -61,7 +61,7 @@
61
61
  </div>
62
62
  </template>
63
63
  </div>
64
- <div class='status-line high'></div>
64
+ <div class='status-line low'></div>
65
65
  <pre><table class="coverage">
66
66
  <tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
67
67
  <a name='L2'></a><a href='#L2'>2</a>
@@ -78,36 +78,36 @@
78
78
  <a name='L13'></a><a href='#L13'>13</a>
79
79
  <a name='L14'></a><a href='#L14'>14</a>
80
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">44x</span>
82
- <span class="cline-any cline-yes">44x</span>
83
- <span class="cline-any cline-yes">44x</span>
84
- <span class="cline-any cline-yes">44x</span>
85
- <span class="cline-any cline-yes">44x</span>
81
+ <a name='L16'></a><a href='#L16'>16</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">47x</span>
86
82
  <span class="cline-any cline-neutral">&nbsp;</span>
87
- <span class="cline-any cline-yes">44x</span>
88
83
  <span class="cline-any cline-neutral">&nbsp;</span>
89
- <span class="cline-any cline-yes">44x</span>
90
84
  <span class="cline-any cline-neutral">&nbsp;</span>
91
85
  <span class="cline-any cline-neutral">&nbsp;</span>
92
86
  <span class="cline-any cline-neutral">&nbsp;</span>
87
+ <span class="cline-any cline-yes">47x</span>
88
+ <span class="cline-any cline-no">&nbsp;</span>
89
+ <span class="cline-any cline-no">&nbsp;</span>
93
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>
94
93
  <span class="cline-any cline-neutral">&nbsp;</span>
95
- <span class="cline-any cline-yes">44x</span>
96
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">const Router = require("@koa/router")
97
- const controller = require("../controllers/role")
98
- const authorized = require("../../middleware/authorized")
99
- const { BUILDER } = require("@budibase/backend-core/permissions")
100
- const { roleValidator } = require("./utils/validators")
101
- &nbsp;
102
- const router = new Router()
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"
103
101
  &nbsp;
104
- router
105
- .post("/api/roles", authorized(BUILDER), roleValidator(), controller.save)
106
- .get("/api/roles", authorized(BUILDER), controller.fetch)
107
- .get("/api/roles/:roleId", authorized(BUILDER), controller.find)
108
- .delete("/api/roles/:roleId/:rev", authorized(BUILDER), controller.destroy)
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>
109
108
  &nbsp;
110
- module.exports = router
109
+ <span class="cstat-no" title="statement not covered" > return await getPluginMetadata(path)</span>
110
+ }
111
111
  &nbsp;</pre></td></tr></table></pre>
112
112
 
113
113
  <div class='push'></div><!-- for sticky footer -->
@@ -115,16 +115,16 @@ module.exports = router
115
115
  <div class='footer quiet pad2 space-top1 center small'>
116
116
  Code coverage generated by
117
117
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
118
- at Wed Nov 30 2022 16:24:21 GMT+0000 (Coordinated Universal Time)
118
+ at Fri Dec 02 2022 11:07:31 GMT+0000 (Coordinated Universal Time)
119
119
  </div>
120
- <script src="../../prettify.js"></script>
120
+ <script src="../../../../prettify.js"></script>
121
121
  <script>
122
122
  window.onload = function () {
123
123
  prettyPrint();
124
124
  };
125
125
  </script>
126
- <script src="../../sorter.js"></script>
127
- <script src="../../block-navigation.js"></script>
126
+ <script src="../../../../sorter.js"></script>
127
+ <script src="../../../../block-navigation.js"></script>
128
128
  </body>
129
129
  </html>
130
130