@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 middleware/builder.js</title>
6
+ <title>Code coverage report for src/middleware/builder.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">middleware</a> builder.js</h1>
22
+ <h1><a href="../../index.html">All files</a> / <a href="index.html">src/middleware</a> builder.ts</h1>
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">88.09% </span>
26
+ <span class="strong">87.5% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>37/42</span>
28
+ <span class='fraction'>35/40</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">78.57% </span>
33
+ <span class="strong">63.63% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>22/28</span>
35
+ <span class='fraction'>21/33</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
40
  <span class="strong">100% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>4/4</span>
42
+ <span class='fraction'>5/5</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">88.09% </span>
47
+ <span class="strong">87.17% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>37/42</span>
49
+ <span class='fraction'>34/39</span>
50
50
  </div>
51
51
 
52
52
 
@@ -153,19 +153,23 @@
153
153
  <a name='L88'></a><a href='#L88'>88</a>
154
154
  <a name='L89'></a><a href='#L89'>89</a>
155
155
  <a name='L90'></a><a href='#L90'>90</a>
156
- <a name='L91'></a><a href='#L91'>91</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">45x</span>
156
+ <a name='L91'></a><a href='#L91'>91</a>
157
+ <a name='L92'></a><a href='#L92'>92</a>
158
+ <a name='L93'></a><a href='#L93'>93</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">46x</span>
157
159
  <span class="cline-any cline-neutral">&nbsp;</span>
158
160
  <span class="cline-any cline-neutral">&nbsp;</span>
159
161
  <span class="cline-any cline-neutral">&nbsp;</span>
160
162
  <span class="cline-any cline-neutral">&nbsp;</span>
163
+ <span class="cline-any cline-yes">46x</span>
161
164
  <span class="cline-any cline-neutral">&nbsp;</span>
162
- <span class="cline-any cline-yes">45x</span>
163
- <span class="cline-any cline-yes">45x</span>
164
- <span class="cline-any cline-yes">45x</span>
165
- <span class="cline-any cline-yes">45x</span>
166
- <span class="cline-any cline-yes">45x</span>
167
165
  <span class="cline-any cline-neutral">&nbsp;</span>
168
- <span class="cline-any cline-yes">45x</span>
166
+ <span class="cline-any cline-neutral">&nbsp;</span>
167
+ <span class="cline-any cline-neutral">&nbsp;</span>
168
+ <span class="cline-any cline-neutral">&nbsp;</span>
169
+ <span class="cline-any cline-yes">46x</span>
170
+ <span class="cline-any cline-neutral">&nbsp;</span>
171
+ <span class="cline-any cline-neutral">&nbsp;</span>
172
+ <span class="cline-any cline-yes">46x</span>
169
173
  <span class="cline-any cline-neutral">&nbsp;</span>
170
174
  <span class="cline-any cline-neutral">&nbsp;</span>
171
175
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -217,7 +221,7 @@
217
221
  <span class="cline-any cline-neutral">&nbsp;</span>
218
222
  <span class="cline-any cline-neutral">&nbsp;</span>
219
223
  <span class="cline-any cline-neutral">&nbsp;</span>
220
- <span class="cline-any cline-yes">45x</span>
224
+ <span class="cline-any cline-yes">46x</span>
221
225
  <span class="cline-any cline-yes">224x</span>
222
226
  <span class="cline-any cline-neutral">&nbsp;</span>
223
227
  <span class="cline-any cline-yes">224x</span>
@@ -243,17 +247,19 @@
243
247
  <span class="cline-any cline-neutral">&nbsp;</span>
244
248
  <span class="cline-any cline-yes">1x</span>
245
249
  <span class="cline-any cline-neutral">&nbsp;</span>
246
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">const { APP_DEV_PREFIX } = require("../db/utils")
247
- const {
250
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import {
251
+ APP_DEV_PREFIX,
252
+ DocumentType,
253
+ getGlobalIDFromUserMetadataID,
254
+ } from "../db/utils"
255
+ import {
248
256
  doesUserHaveLock,
249
257
  updateLock,
250
258
  checkDebounce,
251
259
  setDebounce,
252
- } = require("../utilities/redis")
253
- const { doWithDB } = require("@budibase/backend-core/db")
254
- const { DocumentType, getGlobalIDFromUserMetadataID } = require("../db/utils")
255
- const { PermissionTypes } = require("@budibase/backend-core/permissions")
256
- const { app: appCache } = require("@budibase/backend-core/cache")
260
+ } from "../utilities/redis"
261
+ import { db as dbCore, cache, permissions } from "@budibase/backend-core"
262
+ import { BBContext, Database } from "@budibase/types"
257
263
  &nbsp;
258
264
  const DEBOUNCE_TIME_SEC = 30
259
265
  &nbsp;
@@ -266,11 +272,11 @@ const DEBOUNCE_TIME_SEC = 30
266
272
  * through the authorized middleware *
267
273
  ****************************************************/
268
274
  &nbsp;
269
- async function checkDevAppLocks(ctx) {
275
+ async function checkDevAppLocks(ctx: BBContext) {
270
276
  const appId = ctx.appId
271
277
  &nbsp;
272
278
  // if any public usage, don't proceed
273
- <span class="missing-if-branch" title="if path not taken" >I</span>if (!ctx.user._id &amp;&amp; <span class="branch-1 cbranch-no" title="branch not covered" >!ctx.user.userId)</span> {
279
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (!ctx.user<span class="branch-0 cbranch-no" title="branch not covered" >?._</span>id &amp;&amp; <span class="branch-1 cbranch-no" title="branch not covered" >!ctx.user?.userId) {</span>
274
280
  <span class="cstat-no" title="statement not covered" > return</span>
275
281
  }
276
282
  &nbsp;
@@ -286,34 +292,34 @@ async function checkDevAppLocks(ctx) {
286
292
  await updateLock(appId, ctx.user)
287
293
  }
288
294
  &nbsp;
289
- async function updateAppUpdatedAt(ctx) {
295
+ async function updateAppUpdatedAt(ctx: BBContext) {
290
296
  const appId = ctx.appId
291
297
  // if debouncing skip this update
292
298
  // get methods also aren't updating
293
299
  <span class="missing-if-branch" title="if path not taken" >I</span>if (ctx.method === "GET" || (await checkDebounce(appId))) {
294
300
  <span class="cstat-no" title="statement not covered" > return</span>
295
301
  }
296
- await doWithDB(appId, async db =&gt; {
302
+ await dbCore.doWithDB(appId, async (db: Database) =&gt; {
297
303
  const metadata = await db.get(DocumentType.APP_METADATA)
298
304
  metadata.updatedAt = new Date().toISOString()
299
305
  &nbsp;
300
- metadata.updatedBy = getGlobalIDFromUserMetadataID(ctx.user.userId)
306
+ metadata.updatedBy = getGlobalIDFromUserMetadataID(ctx.user<span class="branch-0 cbranch-no" title="branch not covered" >?.u</span>serId!)
301
307
  &nbsp;
302
308
  const response = await db.put(metadata)
303
309
  metadata._rev = response.rev
304
- await appCache.invalidateAppMetadata(appId, metadata)
310
+ await cache.app.invalidateAppMetadata(appId, metadata)
305
311
  // set a new debounce record with a short TTL
306
312
  await setDebounce(appId, DEBOUNCE_TIME_SEC)
307
313
  })
308
314
  }
309
315
  &nbsp;
310
- module.exports = async (ctx, permType) =&gt; {
316
+ export = async function builder(ctx: BBContext, permType: string) {
311
317
  const appId = ctx.appId
312
318
  // this only functions within an app context
313
319
  if (!appId) {
314
320
  return
315
321
  }
316
- const isBuilderApi = permType === PermissionTypes.BUILDER
322
+ const isBuilderApi = permType === permissions.PermissionType.BUILDER
317
323
  const referer = ctx.headers["referer"]
318
324
  &nbsp;
319
325
  const overviewPath = "/builder/portal/overview/"
@@ -340,16 +346,16 @@ module.exports = async (ctx, permType) =&gt; {
340
346
  <div class='footer quiet pad2 space-top1 center small'>
341
347
  Code coverage generated by
342
348
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
343
- at Wed Nov 30 2022 16:24:21 GMT+0000 (Coordinated Universal Time)
349
+ at Fri Dec 02 2022 11:07:31 GMT+0000 (Coordinated Universal Time)
344
350
  </div>
345
- <script src="../prettify.js"></script>
351
+ <script src="../../prettify.js"></script>
346
352
  <script>
347
353
  window.onload = function () {
348
354
  prettyPrint();
349
355
  };
350
356
  </script>
351
- <script src="../sorter.js"></script>
352
- <script src="../block-navigation.js"></script>
357
+ <script src="../../sorter.js"></script>
358
+ <script src="../../block-navigation.js"></script>
353
359
  </body>
354
360
  </html>
355
361
 
@@ -3,15 +3,15 @@
3
3
  <html lang="en">
4
4
 
5
5
  <head>
6
- <title>Code coverage report for middleware/currentapp.js</title>
6
+ <title>Code coverage report for src/middleware/currentapp.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">middleware</a> currentapp.js</h1>
22
+ <h1><a href="../../index.html">All files</a> / <a href="index.html">src/middleware</a> currentapp.ts</h1>
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">77.27% </span>
26
+ <span class="strong">74.19% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>51/66</span>
28
+ <span class='fraction'>46/62</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">80.7% </span>
33
+ <span class="strong">80.85% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>46/57</span>
35
+ <span class='fraction'>38/47</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
40
  <span class="strong">100% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>2/2</span>
42
+ <span class='fraction'>4/4</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">77.27% </span>
47
+ <span class="strong">73.33% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>51/66</span>
49
+ <span class='fraction'>44/60</span>
50
50
  </div>
51
51
 
52
52
 
@@ -200,28 +200,28 @@
200
200
  <a name='L135'></a><a href='#L135'>135</a>
201
201
  <a name='L136'></a><a href='#L136'>136</a>
202
202
  <a name='L137'></a><a href='#L137'>137</a>
203
- <a name='L138'></a><a href='#L138'>138</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
203
+ <a name='L138'></a><a href='#L138'>138</a>
204
+ <a name='L139'></a><a href='#L139'>139</a>
205
+ <a name='L140'></a><a href='#L140'>140</a>
206
+ <a name='L141'></a><a href='#L141'>141</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">50x</span>
204
207
  <span class="cline-any cline-neutral">&nbsp;</span>
205
208
  <span class="cline-any cline-neutral">&nbsp;</span>
206
209
  <span class="cline-any cline-neutral">&nbsp;</span>
207
210
  <span class="cline-any cline-neutral">&nbsp;</span>
208
- <span class="cline-any cline-yes">49x</span>
209
- <span class="cline-any cline-yes">49x</span>
210
- <span class="cline-any cline-yes">49x</span>
211
- <span class="cline-any cline-yes">49x</span>
212
- <span class="cline-any cline-yes">49x</span>
213
- <span class="cline-any cline-yes">49x</span>
214
- <span class="cline-any cline-yes">49x</span>
215
- <span class="cline-any cline-yes">49x</span>
216
- <span class="cline-any cline-yes">49x</span>
217
- <span class="cline-any cline-yes">49x</span>
218
- <span class="cline-any cline-yes">49x</span>
219
211
  <span class="cline-any cline-neutral">&nbsp;</span>
220
- <span class="cline-any cline-yes">49x</span>
212
+ <span class="cline-any cline-neutral">&nbsp;</span>
213
+ <span class="cline-any cline-neutral">&nbsp;</span>
214
+ <span class="cline-any cline-yes">50x</span>
215
+ <span class="cline-any cline-yes">50x</span>
216
+ <span class="cline-any cline-yes">50x</span>
217
+ <span class="cline-any cline-yes">50x</span>
218
+ <span class="cline-any cline-neutral">&nbsp;</span>
221
219
  <span class="cline-any cline-neutral">&nbsp;</span>
222
220
  <span class="cline-any cline-yes">243x</span>
223
221
  <span class="cline-any cline-neutral">&nbsp;</span>
224
222
  <span class="cline-any cline-yes">243x</span>
223
+ <span class="cline-any cline-neutral">&nbsp;</span>
224
+ <span class="cline-any cline-neutral">&nbsp;</span>
225
225
  <span class="cline-any cline-yes">243x</span>
226
226
  <span class="cline-any cline-yes">243x</span>
227
227
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -270,12 +270,15 @@
270
270
  <span class="cline-any cline-neutral">&nbsp;</span>
271
271
  <span class="cline-any cline-yes">235x</span>
272
272
  <span class="cline-any cline-yes">235x</span>
273
+ <span class="cline-any cline-neutral">&nbsp;</span>
273
274
  <span class="cline-any cline-yes">235x</span>
275
+ <span class="cline-any cline-neutral">&nbsp;</span>
274
276
  <span class="cline-any cline-yes">235x</span>
275
277
  <span class="cline-any cline-neutral">&nbsp;</span>
276
278
  <span class="cline-any cline-no">&nbsp;</span>
277
279
  <span class="cline-any cline-no">&nbsp;</span>
278
280
  <span class="cline-any cline-no">&nbsp;</span>
281
+ <span class="cline-any cline-no">&nbsp;</span>
279
282
  <span class="cline-any cline-neutral">&nbsp;</span>
280
283
  <span class="cline-any cline-neutral">&nbsp;</span>
281
284
  <span class="cline-any cline-no">&nbsp;</span>
@@ -287,6 +290,7 @@
287
290
  <span class="cline-any cline-neutral">&nbsp;</span>
288
291
  <span class="cline-any cline-neutral">&nbsp;</span>
289
292
  <span class="cline-any cline-neutral">&nbsp;</span>
293
+ <span class="cline-any cline-neutral">&nbsp;</span>
290
294
  <span class="cline-any cline-yes">240x</span>
291
295
  <span class="cline-any cline-no">&nbsp;</span>
292
296
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -315,6 +319,8 @@
315
319
  <span class="cline-any cline-yes">240x</span>
316
320
  <span class="cline-any cline-yes">240x</span>
317
321
  <span class="cline-any cline-yes">240x</span>
322
+ <span class="cline-any cline-neutral">&nbsp;</span>
323
+ <span class="cline-any cline-neutral">&nbsp;</span>
318
324
  <span class="cline-any cline-yes">240x</span>
319
325
  <span class="cline-any cline-neutral">&nbsp;</span>
320
326
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -337,32 +343,29 @@
337
343
  <span class="cline-any cline-yes">240x</span>
338
344
  <span class="cline-any cline-neutral">&nbsp;</span>
339
345
  <span class="cline-any cline-neutral">&nbsp;</span>
340
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">const {
341
- getAppIdFromCtx,
342
- setCookie,
343
- getCookie,
344
- clearCookie,
345
- } = require("@budibase/backend-core/utils")
346
- const { Cookies, Headers } = require("@budibase/backend-core/constants")
347
- const { getRole } = require("@budibase/backend-core/roles")
348
- const { BUILTIN_ROLE_IDS } = require("@budibase/backend-core/roles")
349
- const { generateUserMetadataID, isDevAppID } = require("../db/utils")
350
- const { dbExists } = require("@budibase/backend-core/db")
351
- const { isUserInAppTenant } = require("@budibase/backend-core/tenancy")
352
- const { getCachedSelf } = require("../utilities/global")
353
- const env = require("../environment")
354
- const { isWebhookEndpoint } = require("./utils")
355
- const { doInAppContext } = require("@budibase/backend-core/context")
346
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import {
347
+ utils,
348
+ constants,
349
+ roles,
350
+ db as dbCore,
351
+ tenancy,
352
+ context,
353
+ } from "@budibase/backend-core"
354
+ import { generateUserMetadataID, isDevAppID } from "../db/utils"
355
+ import { getCachedSelf } from "../utilities/global"
356
+ import env from "../environment"
357
+ import { isWebhookEndpoint } from "./utils"
358
+ import { BBContext } from "@budibase/types"
356
359
  &nbsp;
357
- module.exports = async (ctx, next) =&gt; {
360
+ export = async (ctx: BBContext, next: any) =&gt; {
358
361
  // try to get the appID from the request
359
- let requestAppId = await getAppIdFromCtx(ctx)
362
+ let requestAppId = await utils.getAppIdFromCtx(ctx)
360
363
  // get app cookie if it exists
361
- let appCookie = null
364
+ let appCookie: { appId?: string } | undefined
362
365
  try {
363
- appCookie = getCookie(ctx, Cookies.CurrentApp)
366
+ appCookie = utils.getCookie(ctx, constants.Cookie.CurrentApp)
364
367
  } catch (err) {
365
- <span class="cstat-no" title="statement not covered" > clearCookie(ctx, Cookies.CurrentApp)</span>
368
+ <span class="cstat-no" title="statement not covered" > utils.clearCookie(ctx, constants.Cookie.CurrentApp)</span>
366
369
  }
367
370
  if (!appCookie &amp;&amp; !requestAppId) {
368
371
  return next()
@@ -370,9 +373,9 @@ module.exports = async (ctx, next) =&gt; {
370
373
  // check the app exists referenced in cookie
371
374
  if (appCookie) {
372
375
  const appId = appCookie.appId
373
- const exists = await dbExists(appId)
376
+ const exists = await dbCore.dbExists(appId)
374
377
  <span class="missing-if-branch" title="if path not taken" >I</span>if (!exists) {
375
- <span class="cstat-no" title="statement not covered" > clearCookie(ctx, Cookies.CurrentApp)</span>
378
+ <span class="cstat-no" title="statement not covered" > utils.clearCookie(ctx, constants.Cookie.CurrentApp)</span>
376
379
  <span class="cstat-no" title="statement not covered" > return next()</span>
377
380
  }
378
381
  // if the request app ID wasn't set, update it with the cookie
@@ -381,22 +384,22 @@ module.exports = async (ctx, next) =&gt; {
381
384
  &nbsp;
382
385
  // deny access to application preview
383
386
  if (!env.isTest()) {
384
- <span class="missing-if-branch" title="else path not taken" >E</span>if (
387
+ if (
385
388
  isDevAppID(requestAppId) &amp;&amp;
386
389
  !isWebhookEndpoint(ctx) &amp;&amp;
387
390
  (!ctx.user || !ctx.user.builder || !ctx.user.builder.global)
388
391
  ) {
389
- clearCookie(ctx, Cookies.CurrentApp)
392
+ utils.clearCookie(ctx, constants.Cookie.CurrentApp)
390
393
  return ctx.redirect("/")
391
394
  }
392
395
  }
393
396
  &nbsp;
394
- let appId,
395
- roleId = BUILTIN_ROLE_IDS.PUBLIC
397
+ let appId: string | undefined,
398
+ roleId = roles.BUILTIN_ROLE_IDS.PUBLIC
396
399
  if (!ctx.user) {
397
400
  // not logged in, try to set a cookie for public apps
398
401
  appId = requestAppId
399
- } else <span class="missing-if-branch" title="else path not taken" >E</span>if (requestAppId != null) {
402
+ } else if (requestAppId != null) {
400
403
  // Different App ID means cookie needs reset, or if the same public user has logged in
401
404
  const globalUser = await getCachedSelf(ctx, requestAppId)
402
405
  appId = requestAppId
@@ -407,16 +410,20 @@ module.exports = async (ctx, next) =&gt; {
407
410
  const isBuilder =
408
411
  globalUser &amp;&amp; globalUser.builder &amp;&amp; globalUser.builder.global
409
412
  const isDevApp = appId &amp;&amp; isDevAppID(appId)
410
- const roleHeader = ctx.request &amp;&amp; ctx.request.headers[Headers.PREVIEW_ROLE]
413
+ const roleHeader =
414
+ ctx.request &amp;&amp;
415
+ (ctx.request.headers[constants.Header.PREVIEW_ROLE] as string)
411
416
  <span class="missing-if-branch" title="if path not taken" >I</span>if (isBuilder &amp;&amp; isDevApp &amp;&amp; roleHeader) {
412
417
  // Ensure the role is valid by ensuring a definition exists
413
418
  <span class="cstat-no" title="statement not covered" > try {</span>
414
- <span class="cstat-no" title="statement not covered" > await getRole(roleHeader)</span>
415
- <span class="cstat-no" title="statement not covered" > roleId = roleHeader</span>
419
+ <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (roleHeader) {</span>
420
+ <span class="cstat-no" title="statement not covered" > await roles.getRole(roleHeader)</span>
421
+ <span class="cstat-no" title="statement not covered" > roleId = roleHeader</span>
416
422
  &nbsp;
417
- // Delete admin and builder flags so that the specified role is honoured
418
- <span class="cstat-no" title="statement not covered" > delete ctx.user.builder</span>
419
- <span class="cstat-no" title="statement not covered" > delete ctx.user.admin</span>
423
+ // Delete admin and builder flags so that the specified role is honoured
424
+ <span class="cstat-no" title="statement not covered" > delete ctx.user.builder</span>
425
+ <span class="cstat-no" title="statement not covered" > delete ctx.user.admin</span>
426
+ }
420
427
  } catch (error) {
421
428
  // Swallow error and do nothing
422
429
  }
@@ -428,7 +435,7 @@ module.exports = async (ctx, next) =&gt; {
428
435
  <span class="cstat-no" title="statement not covered" > return next()</span>
429
436
  }
430
437
  &nbsp;
431
- return doInAppContext(appId, async () =&gt; {
438
+ return context.doInAppContext(appId, async () =&gt; {
432
439
  let skipCookie = false
433
440
  // if the user not in the right tenant then make sure they have no permissions
434
441
  // need to judge this only based on the request app ID,
@@ -436,30 +443,32 @@ module.exports = async (ctx, next) =&gt; {
436
443
  env.MULTI_TENANCY &amp;&amp;
437
444
  <span class="branch-1 cbranch-no" title="branch not covered" > ctx.user </span>&amp;&amp;
438
445
  <span class="branch-2 cbranch-no" title="branch not covered" > requestAppId </span>&amp;&amp;
439
- <span class="branch-3 cbranch-no" title="branch not covered" > !isUserInAppTenant(requestAppId, ctx.user)</span>
446
+ <span class="branch-3 cbranch-no" title="branch not covered" > !tenancy.isUserInAppTenant(requestAppId, ctx.user)</span>
440
447
  ) {
441
448
  // don't error, simply remove the users rights (they are a public user)
442
449
  <span class="cstat-no" title="statement not covered" > delete ctx.user.builder</span>
443
450
  <span class="cstat-no" title="statement not covered" > delete ctx.user.admin</span>
444
451
  <span class="cstat-no" title="statement not covered" > delete ctx.user.roles</span>
445
452
  <span class="cstat-no" title="statement not covered" > ctx.isAuthenticated = false</span>
446
- <span class="cstat-no" title="statement not covered" > roleId = BUILTIN_ROLE_IDS.PUBLIC</span>
453
+ <span class="cstat-no" title="statement not covered" > roleId = roles.BUILTIN_ROLE_IDS.PUBLIC</span>
447
454
  <span class="cstat-no" title="statement not covered" > skipCookie = true</span>
448
455
  }
449
456
  &nbsp;
450
457
  ctx.appId = appId
451
- <span class="missing-if-branch" title="else path not taken" >E</span>if (roleId) {
458
+ if (roleId) {
452
459
  ctx.roleId = roleId
453
460
  const globalId = ctx.user ? ctx.user._id : undefined
454
- const userId = ctx.user ? generateUserMetadataID(ctx.user._id) : null
461
+ const userId = ctx.user
462
+ ? generateUserMetadataID(ctx.user._id!)
463
+ : undefined
455
464
  ctx.user = {
456
- ...ctx.user,
465
+ ...ctx.user!,
457
466
  // override userID with metadata one
458
467
  _id: userId,
459
468
  userId,
460
469
  globalId,
461
470
  roleId,
462
- role: await getRole(roleId),
471
+ role: await roles.getRole(roleId),
463
472
  }
464
473
  }
465
474
  if (
@@ -468,7 +477,7 @@ module.exports = async (ctx, next) =&gt; {
468
477
  appCookie.appId !== requestAppId) &amp;&amp;
469
478
  !skipCookie
470
479
  ) {
471
- setCookie(ctx, { appId }, Cookies.CurrentApp)
480
+ utils.setCookie(ctx, { appId }, constants.Cookie.CurrentApp)
472
481
  }
473
482
  &nbsp;
474
483
  return next()
@@ -481,16 +490,16 @@ module.exports = async (ctx, next) =&gt; {
481
490
  <div class='footer quiet pad2 space-top1 center small'>
482
491
  Code coverage generated by
483
492
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
484
- at Wed Nov 30 2022 16:24:21 GMT+0000 (Coordinated Universal Time)
493
+ at Fri Dec 02 2022 11:07:31 GMT+0000 (Coordinated Universal Time)
485
494
  </div>
486
- <script src="../prettify.js"></script>
495
+ <script src="../../prettify.js"></script>
487
496
  <script>
488
497
  window.onload = function () {
489
498
  prettyPrint();
490
499
  };
491
500
  </script>
492
- <script src="../sorter.js"></script>
493
- <script src="../block-navigation.js"></script>
501
+ <script src="../../sorter.js"></script>
502
+ <script src="../../block-navigation.js"></script>
494
503
  </body>
495
504
  </html>
496
505