@budibase/server 2.1.45 → 2.1.46-alpha.1

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 (832) hide show
  1. package/__mocks__/aws-sdk.ts +14 -0
  2. package/__mocks__/node-fetch.ts +5 -1
  3. package/builder/assets/index.156490b5.js +1020 -0
  4. package/builder/assets/index.538092be.css +6 -0
  5. package/builder/index.html +2 -2
  6. package/coverage/clover.xml +11101 -3980
  7. package/coverage/coverage-final.json +273 -118
  8. package/coverage/lcov-report/index.html +727 -187
  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 +1891 -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} +61 -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 +748 -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/src/api/controllers/plugin/file.ts.html +130 -0
  29. package/coverage/lcov-report/src/api/controllers/plugin/github.ts.html +310 -0
  30. package/coverage/lcov-report/src/api/controllers/plugin/index.html +206 -0
  31. package/coverage/lcov-report/src/api/controllers/plugin/index.ts.html +484 -0
  32. package/coverage/lcov-report/src/api/controllers/plugin/npm.ts.html +253 -0
  33. package/coverage/lcov-report/src/api/controllers/plugin/uploaders.ts.html +97 -0
  34. package/coverage/lcov-report/src/api/controllers/plugin/url.ts.html +121 -0
  35. package/coverage/lcov-report/src/api/controllers/plugin/utils.ts.html +136 -0
  36. package/coverage/lcov-report/src/api/controllers/public/applications.ts.html +334 -0
  37. package/coverage/lcov-report/src/api/controllers/public/index.html +191 -0
  38. package/coverage/lcov-report/src/api/controllers/public/mapping/applications.ts.html +181 -0
  39. package/coverage/lcov-report/src/api/controllers/public/mapping/index.html +191 -0
  40. package/coverage/lcov-report/src/api/controllers/public/mapping/index.ts.html +124 -0
  41. package/coverage/lcov-report/src/api/controllers/public/mapping/queries.ts.html +202 -0
  42. package/coverage/lcov-report/src/api/controllers/public/mapping/rows.ts.html +178 -0
  43. package/coverage/lcov-report/{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 +325 -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} +26 -26
  62. package/coverage/lcov-report/{api/controllers/role.js.html → src/api/controllers/role.ts.html} +51 -63
  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 +2269 -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} +78 -255
  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} +63 -84
  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/src/api/routes/application.ts.html +223 -0
  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/src/api/routes/layout.ts.html +133 -0
  107. package/coverage/lcov-report/{api/routes/metadata.js.html → src/api/routes/metadata.ts.html} +31 -31
  108. package/coverage/lcov-report/{api/routes/migrations.js.html → src/api/routes/migrations.ts.html} +24 -24
  109. package/coverage/lcov-report/{api/routes/permission.js.html → src/api/routes/permission.ts.html} +55 -31
  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/tests/index.html +116 -0
  120. package/coverage/lcov-report/src/api/routes/public/tests/utils.ts.html +169 -0
  121. package/coverage/lcov-report/src/api/routes/public/users.ts.html +511 -0
  122. package/coverage/lcov-report/src/api/routes/public/utils/Endpoint.ts.html +238 -0
  123. package/coverage/lcov-report/src/api/routes/public/utils/index.html +116 -0
  124. package/coverage/lcov-report/{api/routes/query.js.html → src/api/routes/query.ts.html} +41 -50
  125. package/coverage/lcov-report/src/api/routes/role.ts.html +157 -0
  126. package/coverage/lcov-report/{api/routes/routing.js.html → src/api/routes/routing.ts.html} +24 -24
  127. package/coverage/lcov-report/src/api/routes/row.ts.html +883 -0
  128. package/coverage/lcov-report/{api/routes/screen.js.html → src/api/routes/screen.ts.html} +43 -28
  129. package/coverage/lcov-report/{api/routes/script.js.html → src/api/routes/script.ts.html} +17 -17
  130. package/coverage/lcov-report/src/api/routes/static.ts.html +280 -0
  131. package/coverage/lcov-report/{api/routes/table.js.html → src/api/routes/table.ts.html} +32 -41
  132. package/coverage/lcov-report/src/api/routes/templates.ts.html +133 -0
  133. package/coverage/lcov-report/src/api/routes/tests/utilities/TestFunctions.ts.html +550 -0
  134. package/coverage/lcov-report/src/api/routes/tests/utilities/index.html +131 -0
  135. package/coverage/lcov-report/src/api/routes/tests/utilities/index.ts.html +367 -0
  136. package/coverage/lcov-report/{api/routes/user.js.html → src/api/routes/user.ts.html} +35 -41
  137. package/coverage/lcov-report/{api → src/api}/routes/utils/index.html +15 -15
  138. package/coverage/lcov-report/{api/routes/utils/validators.js.html → src/api/routes/utils/validators.ts.html} +86 -98
  139. package/coverage/lcov-report/{api/routes/view.js.html → src/api/routes/view.ts.html} +45 -36
  140. package/coverage/lcov-report/src/api/routes/webhook.ts.html +166 -0
  141. package/coverage/lcov-report/src/app.ts.html +406 -0
  142. package/coverage/lcov-report/{automations/actions.js.html → src/automations/actions.ts.html} +69 -60
  143. package/coverage/lcov-report/{automations/automationUtils.js.html → src/automations/automationUtils.ts.html} +36 -33
  144. package/coverage/lcov-report/{automations/bullboard.js.html → src/automations/bullboard.ts.html} +39 -42
  145. package/coverage/lcov-report/{automations → src/automations}/index.html +63 -48
  146. package/coverage/lcov-report/{api/routes/dev.js.html → src/automations/index.ts.html} +46 -46
  147. package/coverage/lcov-report/src/automations/logging/index.html +116 -0
  148. package/coverage/lcov-report/src/automations/logging/index.ts.html +199 -0
  149. package/coverage/lcov-report/{automations/steps/bash.js.html → src/automations/steps/bash.ts.html} +45 -30
  150. package/coverage/lcov-report/src/automations/steps/createRow.ts.html +382 -0
  151. package/coverage/lcov-report/{automations/steps/delay.js.html → src/automations/steps/delay.ts.html} +34 -19
  152. package/coverage/lcov-report/src/automations/steps/deleteRow.ts.html +349 -0
  153. package/coverage/lcov-report/{automations/steps/discord.js.html → src/automations/steps/discord.ts.html} +43 -28
  154. package/coverage/lcov-report/{automations/steps/executeQuery.js.html → src/automations/steps/executeQuery.ts.html} +45 -30
  155. package/coverage/lcov-report/{automations/steps/executeScript.js.html → src/automations/steps/executeScript.ts.html} +58 -28
  156. package/coverage/lcov-report/{automations/steps/filter.js.html → src/automations/steps/filter.ts.html} +39 -30
  157. package/coverage/lcov-report/src/automations/steps/index.html +371 -0
  158. package/coverage/lcov-report/{automations/steps/integromat.js.html → src/automations/steps/integromat.ts.html} +38 -23
  159. package/coverage/lcov-report/{automations/steps/loop.js.html → src/automations/steps/loop.ts.html} +21 -15
  160. package/coverage/lcov-report/{automations/steps/outgoingWebhook.js.html → src/automations/steps/outgoingWebhook.ts.html} +54 -39
  161. package/coverage/lcov-report/{automations/steps/queryRows.js.html → src/automations/steps/queryRows.ts.html} +102 -66
  162. package/coverage/lcov-report/{automations/steps/sendSmtpEmail.js.html → src/automations/steps/sendSmtpEmail.ts.html} +40 -25
  163. package/coverage/lcov-report/{automations/steps/serverLog.js.html → src/automations/steps/serverLog.ts.html} +40 -22
  164. package/coverage/lcov-report/{automations/steps/slack.js.html → src/automations/steps/slack.ts.html} +38 -23
  165. package/coverage/lcov-report/{automations/steps/updateRow.js.html → src/automations/steps/updateRow.ts.html} +40 -25
  166. package/coverage/lcov-report/{automations/steps/utils.js.html → src/automations/steps/utils.ts.html} +45 -27
  167. package/coverage/lcov-report/{automations/steps/zapier.js.html → src/automations/steps/zapier.ts.html} +41 -23
  168. package/coverage/lcov-report/src/automations/tests/utilities/index.html +116 -0
  169. package/coverage/lcov-report/src/automations/tests/utilities/index.ts.html +265 -0
  170. package/coverage/lcov-report/src/automations/triggerInfo/app.ts.html +196 -0
  171. package/coverage/lcov-report/{automations/triggerInfo/cron.js.html → src/automations/triggerInfo/cron.ts.html} +30 -15
  172. package/coverage/lcov-report/{automations → src/automations}/triggerInfo/index.html +31 -31
  173. package/coverage/lcov-report/{automations/triggerInfo/index.js.html → src/automations/triggerInfo/index.ts.html} +24 -24
  174. package/coverage/lcov-report/{automations/triggerInfo/rowDeleted.js.html → src/automations/triggerInfo/rowDeleted.ts.html} +30 -15
  175. package/coverage/lcov-report/{automations/triggerInfo/rowSaved.js.html → src/automations/triggerInfo/rowSaved.ts.html} +30 -15
  176. package/coverage/lcov-report/{automations/triggerInfo/rowUpdated.js.html → src/automations/triggerInfo/rowUpdated.ts.html} +30 -15
  177. package/coverage/lcov-report/{automations/triggerInfo/webhook.js.html → src/automations/triggerInfo/webhook.ts.html} +30 -15
  178. package/coverage/lcov-report/{automations/triggers.js.html → src/automations/triggers.ts.html} +78 -66
  179. package/coverage/lcov-report/src/automations/utils.ts.html +886 -0
  180. package/coverage/lcov-report/{constants → src/constants}/index.html +26 -26
  181. package/coverage/lcov-report/src/constants/index.ts.html +697 -0
  182. package/coverage/lcov-report/{constants/layouts.js.html → src/constants/layouts.ts.html} +18 -36
  183. package/coverage/lcov-report/{constants/screens.js.html → src/constants/screens.ts.html} +64 -58
  184. package/coverage/lcov-report/src/db/defaultData/datasource_bb_default.ts.html +2059 -0
  185. package/coverage/lcov-report/src/db/defaultData/employeeImport.ts.html +541 -0
  186. package/coverage/lcov-report/src/db/defaultData/expensesImport.ts.html +427 -0
  187. package/coverage/lcov-report/src/db/defaultData/index.html +176 -0
  188. package/coverage/lcov-report/src/db/defaultData/inventoryImport.ts.html +403 -0
  189. package/coverage/lcov-report/src/db/defaultData/jobsImport.ts.html +559 -0
  190. package/coverage/lcov-report/src/db/dynamoClient.ts.html +526 -0
  191. package/coverage/lcov-report/{db/inMemoryView.js.html → src/db/inMemoryView.ts.html} +47 -29
  192. package/coverage/lcov-report/{db → src/db}/index.html +48 -33
  193. package/coverage/lcov-report/{api/routes/templates.js.html → src/db/index.ts.html} +28 -28
  194. package/coverage/lcov-report/{db/linkedRows/LinkController.js.html → src/db/linkedRows/LinkController.ts.html} +97 -160
  195. package/coverage/lcov-report/src/db/linkedRows/LinkDocument.ts.html +265 -0
  196. package/coverage/lcov-report/src/db/linkedRows/index.html +161 -0
  197. package/coverage/lcov-report/{db/linkedRows/index.js.html → src/db/linkedRows/index.ts.html} +93 -78
  198. package/coverage/lcov-report/{db/linkedRows/linkUtils.js.html → src/db/linkedRows/linkUtils.ts.html} +83 -56
  199. package/coverage/lcov-report/{db/newid.js.html → src/db/newid.ts.html} +14 -14
  200. package/coverage/lcov-report/{db/utils.js.html → src/db/utils.ts.html} +163 -211
  201. package/coverage/lcov-report/{automations/triggerInfo/app.js.html → src/definitions/automations.ts.html} +42 -42
  202. package/coverage/lcov-report/{api/routes/datasource.js.html → src/definitions/datasource.ts.html} +61 -64
  203. package/coverage/lcov-report/src/definitions/index.html +131 -0
  204. package/coverage/lcov-report/src/environment.ts.html +457 -0
  205. package/coverage/lcov-report/{events/AutomationEmitter.js.html → src/events/AutomationEmitter.ts.html} +40 -25
  206. package/coverage/lcov-report/{events/index.js.html → src/events/BudibaseEmitter.ts.html} +26 -29
  207. package/coverage/lcov-report/{events → src/events}/index.html +48 -33
  208. package/coverage/lcov-report/src/events/index.ts.html +100 -0
  209. package/coverage/lcov-report/src/events/utils.ts.html +319 -0
  210. package/coverage/lcov-report/src/index.html +191 -0
  211. package/coverage/lcov-report/{db/index.js.html → src/index.ts.html} +35 -35
  212. package/coverage/lcov-report/{utilities/queue/inMemoryQueue.js.html → src/integrations/airtable.ts.html} +213 -135
  213. package/coverage/lcov-report/src/integrations/arangodb.ts.html +415 -0
  214. package/coverage/lcov-report/src/integrations/base/index.html +161 -0
  215. package/coverage/lcov-report/src/integrations/base/query.ts.html +133 -0
  216. package/coverage/lcov-report/src/integrations/base/sql.ts.html +1951 -0
  217. package/coverage/lcov-report/src/integrations/base/sqlTable.ts.html +691 -0
  218. package/coverage/lcov-report/{api/routes/apikeys.js.html → src/integrations/base/utils.ts.html} +30 -30
  219. package/coverage/lcov-report/src/integrations/couchdb.ts.html +406 -0
  220. package/coverage/lcov-report/{constants/index.js.html → src/integrations/dynamodb.ts.html} +263 -227
  221. package/coverage/lcov-report/src/integrations/elasticsearch.ts.html +634 -0
  222. package/coverage/lcov-report/src/integrations/firebase.ts.html +646 -0
  223. package/coverage/lcov-report/src/integrations/googlesheets.ts.html +1315 -0
  224. package/coverage/lcov-report/src/integrations/index.html +371 -0
  225. package/coverage/lcov-report/src/integrations/index.ts.html +445 -0
  226. package/coverage/lcov-report/src/integrations/microsoftSqlServer.ts.html +1012 -0
  227. package/coverage/lcov-report/src/integrations/mongodb.ts.html +1867 -0
  228. package/coverage/lcov-report/src/integrations/mysql.ts.html +967 -0
  229. package/coverage/lcov-report/src/integrations/oracle.ts.html +1387 -0
  230. package/coverage/lcov-report/src/integrations/postgres.ts.html +1087 -0
  231. package/coverage/lcov-report/src/integrations/queries/index.html +116 -0
  232. package/coverage/lcov-report/src/integrations/queries/sql.ts.html +463 -0
  233. package/coverage/lcov-report/src/integrations/redis.ts.html +550 -0
  234. package/coverage/lcov-report/src/integrations/rest.ts.html +1381 -0
  235. package/coverage/lcov-report/src/integrations/s3.ts.html +862 -0
  236. package/coverage/lcov-report/src/integrations/snowflake.ts.html +376 -0
  237. package/coverage/lcov-report/{integrations → src/integrations}/tests/TestConfiguration.js.html +10 -10
  238. package/coverage/lcov-report/{integrations → src/integrations}/tests/index.html +10 -10
  239. package/coverage/lcov-report/src/integrations/utils.ts.html +1018 -0
  240. package/coverage/lcov-report/{middleware/appInfo.js.html → src/middleware/appInfo.ts.html} +33 -30
  241. package/coverage/lcov-report/src/middleware/authorized.ts.html +460 -0
  242. package/coverage/lcov-report/{middleware/builder.js.html → src/middleware/builder.ts.html} +57 -51
  243. package/coverage/lcov-report/{middleware/currentapp.js.html → src/middleware/currentapp.ts.html} +116 -107
  244. package/coverage/lcov-report/{middleware → src/middleware}/index.html +78 -63
  245. package/coverage/lcov-report/{middleware/joi-validator.js.html → src/middleware/joi-validator.ts.html} +25 -22
  246. package/coverage/lcov-report/{middleware/publicApi.js.html → src/middleware/publicApi.ts.html} +31 -31
  247. package/coverage/lcov-report/{middleware/resourceId.js.html → src/middleware/resourceId.ts.html} +66 -51
  248. package/coverage/lcov-report/{api/controllers/integration.js.html → src/middleware/selfhost.ts.html} +22 -28
  249. package/coverage/lcov-report/{api/routes/analytics.js.html → src/middleware/utils.ts.html} +19 -19
  250. package/coverage/lcov-report/src/migrations/functions/appUrls.ts.html +166 -0
  251. package/coverage/lcov-report/src/migrations/functions/backfill/app/automations.ts.html +163 -0
  252. package/coverage/lcov-report/src/migrations/functions/backfill/app/datasources.ts.html +151 -0
  253. package/coverage/lcov-report/src/migrations/functions/backfill/app/index.html +206 -0
  254. package/coverage/lcov-report/src/migrations/functions/backfill/app/layouts.ts.html +172 -0
  255. package/coverage/lcov-report/src/migrations/functions/backfill/app/queries.ts.html +226 -0
  256. package/coverage/lcov-report/src/migrations/functions/backfill/app/roles.ts.html +151 -0
  257. package/coverage/lcov-report/src/migrations/functions/backfill/app/screens.ts.html +151 -0
  258. package/coverage/lcov-report/src/migrations/functions/backfill/app/tables.ts.html +166 -0
  259. package/coverage/lcov-report/src/migrations/functions/backfill/app.ts.html +532 -0
  260. package/coverage/lcov-report/src/migrations/functions/backfill/global/configs.ts.html +283 -0
  261. package/coverage/lcov-report/src/migrations/functions/backfill/global/index.html +146 -0
  262. package/coverage/lcov-report/src/migrations/functions/backfill/global/quotas.ts.html +265 -0
  263. package/coverage/lcov-report/src/migrations/functions/backfill/global/users.ts.html +232 -0
  264. package/coverage/lcov-report/src/migrations/functions/backfill/global.ts.html +724 -0
  265. package/coverage/lcov-report/src/migrations/functions/backfill/index.html +161 -0
  266. package/coverage/lcov-report/src/migrations/functions/backfill/index.ts.html +106 -0
  267. package/coverage/lcov-report/src/migrations/functions/backfill/installation.ts.html +235 -0
  268. package/coverage/lcov-report/src/migrations/functions/index.html +161 -0
  269. package/coverage/lcov-report/{api/routes/role.js.html → src/migrations/functions/syncQuotas.ts.html} +36 -36
  270. package/coverage/lcov-report/src/migrations/functions/tableSettings.ts.html +520 -0
  271. package/coverage/lcov-report/src/migrations/functions/usageQuotas/index.html +161 -0
  272. package/coverage/lcov-report/src/migrations/functions/usageQuotas/index.ts.html +94 -0
  273. package/coverage/lcov-report/src/migrations/functions/usageQuotas/syncApps.ts.html +127 -0
  274. package/coverage/lcov-report/src/migrations/functions/usageQuotas/syncPlugins.ts.html +115 -0
  275. package/coverage/lcov-report/{automations/index.js.html → src/migrations/functions/usageQuotas/syncRows.ts.html} +58 -61
  276. package/coverage/lcov-report/src/migrations/functions/userEmailViewCasing.ts.html +124 -0
  277. package/coverage/lcov-report/{utilities/queue → src/migrations}/index.html +23 -23
  278. package/coverage/lcov-report/src/migrations/index.ts.html +430 -0
  279. package/coverage/lcov-report/src/migrations/tests/helpers.ts.html +205 -0
  280. package/coverage/lcov-report/src/migrations/tests/index.html +131 -0
  281. package/coverage/lcov-report/src/migrations/tests/structures.ts.html +283 -0
  282. package/coverage/lcov-report/src/sdk/app/applications/index.html +146 -0
  283. package/coverage/lcov-report/{middleware/utils.js.html → src/sdk/app/applications/index.ts.html} +19 -19
  284. package/coverage/lcov-report/src/sdk/app/applications/sync.ts.html +268 -0
  285. package/coverage/lcov-report/src/sdk/app/applications/utils.ts.html +136 -0
  286. package/coverage/lcov-report/src/sdk/app/automations/index.html +131 -0
  287. package/coverage/lcov-report/src/sdk/app/automations/index.ts.html +100 -0
  288. package/coverage/lcov-report/src/sdk/app/automations/webhook.ts.html +214 -0
  289. package/coverage/lcov-report/src/sdk/app/backups/constants.ts.html +91 -0
  290. package/coverage/lcov-report/src/sdk/app/backups/exports.ts.html +604 -0
  291. package/coverage/lcov-report/src/sdk/app/backups/imports.ts.html +682 -0
  292. package/coverage/lcov-report/src/sdk/app/backups/index.html +176 -0
  293. package/coverage/lcov-report/src/sdk/app/backups/index.ts.html +112 -0
  294. package/coverage/lcov-report/src/sdk/app/backups/statistics.ts.html +292 -0
  295. package/coverage/lcov-report/src/sdk/app/tables/index.html +116 -0
  296. package/coverage/lcov-report/src/sdk/app/tables/index.ts.html +265 -0
  297. package/coverage/lcov-report/{utilities/routing → src/sdk}/index.html +10 -10
  298. package/coverage/lcov-report/{api/routes/layout.js.html → src/sdk/index.ts.html} +24 -24
  299. package/coverage/lcov-report/src/sdk/users/index.html +131 -0
  300. package/coverage/lcov-report/src/sdk/users/index.ts.html +100 -0
  301. package/coverage/lcov-report/src/sdk/users/utils.ts.html +277 -0
  302. package/coverage/lcov-report/src/startup.ts.html +499 -0
  303. package/coverage/lcov-report/src/tests/utilities/TestConfiguration.ts.html +1966 -0
  304. package/coverage/lcov-report/src/tests/utilities/controllers.ts.html +127 -0
  305. package/coverage/lcov-report/src/tests/utilities/index.html +161 -0
  306. package/coverage/lcov-report/{middleware/selfhost.js.html → src/tests/utilities/index.ts.html} +33 -30
  307. package/coverage/lcov-report/src/tests/utilities/structures.ts.html +667 -0
  308. package/coverage/lcov-report/src/threads/automation.ts.html +1594 -0
  309. package/coverage/lcov-report/src/threads/index.html +161 -0
  310. package/coverage/lcov-report/src/threads/index.ts.html +418 -0
  311. package/coverage/lcov-report/src/threads/query.ts.html +961 -0
  312. package/coverage/lcov-report/src/threads/utils.ts.html +373 -0
  313. package/coverage/lcov-report/{utilities/budibaseDir.js.html → src/utilities/budibaseDir.ts.html} +14 -14
  314. package/coverage/lcov-report/{utilities/centralPath.js.html → src/utilities/centralPath.ts.html} +16 -16
  315. package/coverage/lcov-report/{utilities/csvParser.js.html → src/utilities/csvParser.ts.html} +107 -59
  316. package/coverage/lcov-report/src/utilities/fileSystem/clientLibrary.ts.html +547 -0
  317. package/coverage/lcov-report/{api/controllers/table → src/utilities/fileSystem}/index.html +44 -44
  318. package/coverage/lcov-report/src/utilities/fileSystem/index.ts.html +1129 -0
  319. package/coverage/lcov-report/src/utilities/fileSystem/processor.ts.html +142 -0
  320. package/coverage/lcov-report/{utilities/global.js.html → src/utilities/global.ts.html} +144 -111
  321. package/coverage/lcov-report/{utilities → src/utilities}/index.html +92 -77
  322. package/coverage/lcov-report/{utilities/index.js.html → src/utilities/index.ts.html} +98 -74
  323. package/coverage/lcov-report/{utilities/plugins.js.html → src/utilities/plugins.ts.html} +25 -22
  324. package/coverage/lcov-report/src/utilities/redis.ts.html +343 -0
  325. package/coverage/lcov-report/{api/controllers/query → src/utilities/routing}/index.html +8 -8
  326. package/coverage/lcov-report/src/utilities/routing/index.ts.html +181 -0
  327. package/coverage/lcov-report/src/utilities/rowProcessor/index.html +146 -0
  328. package/coverage/lcov-report/{utilities/rowProcessor/index.js.html → src/utilities/rowProcessor/index.ts.html} +128 -359
  329. package/coverage/lcov-report/src/utilities/rowProcessor/map.ts.html +373 -0
  330. package/coverage/lcov-report/{utilities/rowProcessor/utils.js.html → src/utilities/rowProcessor/utils.ts.html} +54 -42
  331. package/coverage/lcov-report/{utilities/scriptRunner.js.html → src/utilities/scriptRunner.ts.html} +31 -19
  332. package/coverage/lcov-report/{utilities/security.js.html → src/utilities/security.ts.html} +60 -78
  333. package/coverage/lcov-report/{utilities/statusCodes.js.html → src/utilities/statusCodes.ts.html} +11 -11
  334. package/coverage/lcov-report/{utilities → src/utilities}/usageQuota/index.html +30 -30
  335. package/coverage/lcov-report/{utilities/usageQuota/rows.js.html → src/utilities/usageQuota/rows.ts.html} +42 -54
  336. package/coverage/lcov-report/{utilities/usageQuota/usageQuoteReset.js.html → src/utilities/usageQuota/usageQuoteReset.ts.html} +13 -13
  337. package/coverage/lcov-report/{utilities/users.js.html → src/utilities/users.ts.html} +44 -50
  338. package/coverage/lcov-report/{utilities/workerRequests.js.html → src/utilities/workerRequests.ts.html} +127 -112
  339. package/coverage/lcov-report/{events/utils.js.html → src/watch.ts.html} +68 -71
  340. package/coverage/lcov-report/src/websocket.ts.html +163 -0
  341. package/coverage/lcov.info +19994 -7196
  342. package/dist/api/controllers/apikeys.js +12 -9
  343. package/dist/api/controllers/application.js +430 -446
  344. package/dist/api/controllers/automation.js +122 -82
  345. package/dist/api/controllers/cloud.js +85 -71
  346. package/dist/api/controllers/component.js +4 -2
  347. package/dist/api/controllers/datasource.js +151 -94
  348. package/dist/api/controllers/deploy/Deployment.js +10 -6
  349. package/dist/api/controllers/deploy/index.js +19 -16
  350. package/dist/api/controllers/dev.js +96 -81
  351. package/dist/api/controllers/integration.js +11 -8
  352. package/dist/api/controllers/layout.js +18 -15
  353. package/dist/api/controllers/metadata.js +51 -37
  354. package/dist/api/controllers/migrations.js +19 -11
  355. package/dist/api/controllers/permission.js +52 -43
  356. package/dist/api/controllers/plugin/index.js +6 -7
  357. package/dist/api/controllers/plugin/utils.js +2 -1
  358. package/dist/api/controllers/public/applications.js +17 -9
  359. package/dist/api/controllers/public/tables.js +29 -9
  360. package/dist/api/controllers/public/users.js +18 -0
  361. package/dist/api/controllers/public/utils.js +2 -2
  362. package/dist/api/controllers/query/import/index.js +1 -2
  363. package/dist/api/controllers/query/index.js +10 -13
  364. package/dist/api/controllers/query/validation.js +41 -33
  365. package/dist/api/controllers/role.js +29 -27
  366. package/dist/api/controllers/routing.js +71 -58
  367. package/dist/api/controllers/row/ExternalRequest.js +539 -542
  368. package/dist/api/controllers/row/external.js +258 -190
  369. package/dist/api/controllers/row/index.js +43 -14
  370. package/dist/api/controllers/row/internal.js +354 -295
  371. package/dist/api/controllers/row/internalSearch.js +95 -80
  372. package/dist/api/controllers/row/staticFormula.js +125 -112
  373. package/dist/api/controllers/row/utils.js +122 -84
  374. package/dist/api/controllers/screen.js +81 -66
  375. package/dist/api/controllers/script.js +13 -6
  376. package/dist/api/controllers/static/index.js +11 -14
  377. package/dist/api/controllers/table/bulkFormula.js +47 -35
  378. package/dist/api/controllers/table/external.js +89 -53
  379. package/dist/api/controllers/table/index.js +64 -31
  380. package/dist/api/controllers/table/internal.js +5 -6
  381. package/dist/api/controllers/table/utils.js +39 -35
  382. package/dist/api/controllers/templates.js +17 -10
  383. package/dist/api/controllers/user.js +65 -94
  384. package/dist/api/controllers/view/exporters.js +8 -4
  385. package/dist/api/controllers/view/index.js +201 -153
  386. package/dist/api/controllers/view/utils.js +151 -121
  387. package/dist/api/controllers/view/viewBuilder.js +4 -16
  388. package/dist/api/controllers/webhook.js +25 -2
  389. package/dist/api/index.js +38 -34
  390. package/dist/api/routes/analytics.js +29 -3
  391. package/dist/api/routes/apikeys.js +33 -7
  392. package/dist/api/routes/application.js +8 -9
  393. package/dist/api/routes/auth.js +1 -2
  394. package/dist/api/routes/automation.js +46 -20
  395. package/dist/api/routes/backup.js +3 -4
  396. package/dist/api/routes/cloud.js +32 -6
  397. package/dist/api/routes/component.js +32 -6
  398. package/dist/api/routes/datasource.js +39 -13
  399. package/dist/api/routes/deploy.js +34 -8
  400. package/dist/api/routes/dev.js +36 -10
  401. package/dist/api/routes/integration.js +33 -7
  402. package/dist/api/routes/layout.js +33 -7
  403. package/dist/api/routes/metadata.js +36 -10
  404. package/dist/api/routes/migrations.js +32 -6
  405. package/dist/api/routes/permission.js +38 -12
  406. package/dist/api/routes/plugin.js +5 -5
  407. package/dist/api/routes/public/index.js +11 -11
  408. package/dist/api/routes/public/tests/utils.js +33 -0
  409. package/dist/api/routes/query.js +42 -15
  410. package/dist/api/routes/role.js +36 -10
  411. package/dist/api/routes/routing.js +32 -6
  412. package/dist/api/routes/row.js +12 -11
  413. package/dist/api/routes/screen.js +35 -9
  414. package/dist/api/routes/script.js +32 -6
  415. package/dist/api/routes/static.js +9 -9
  416. package/dist/api/routes/table.js +40 -13
  417. package/dist/api/routes/templates.js +33 -7
  418. package/dist/api/routes/tests/utilities/TestFunctions.js +6 -8
  419. package/dist/api/routes/tests/utilities/index.js +69 -32
  420. package/dist/api/routes/user.js +40 -13
  421. package/dist/api/routes/utils/validators.js +142 -126
  422. package/dist/api/routes/view.js +38 -12
  423. package/dist/api/routes/webhook.js +1 -2
  424. package/dist/app.js +22 -22
  425. package/dist/automations/actions.js +53 -24
  426. package/dist/automations/automationUtils.js +31 -19
  427. package/dist/automations/bullboard.js +59 -29
  428. package/dist/automations/index.js +23 -18
  429. package/dist/automations/steps/bash.js +40 -10
  430. package/dist/automations/steps/createRow.js +2 -1
  431. package/dist/automations/steps/delay.js +9 -5
  432. package/dist/automations/steps/deleteRow.js +2 -1
  433. package/dist/automations/steps/discord.js +14 -7
  434. package/dist/automations/steps/executeQuery.js +34 -7
  435. package/dist/automations/steps/executeScript.js +34 -7
  436. package/dist/automations/steps/filter.js +20 -18
  437. package/dist/automations/steps/integromat.js +14 -7
  438. package/dist/automations/steps/loop.js +4 -1
  439. package/dist/automations/steps/outgoingWebhook.js +45 -14
  440. package/dist/automations/steps/queryRows.js +71 -38
  441. package/dist/automations/steps/sendSmtpEmail.js +33 -6
  442. package/dist/automations/steps/serverLog.js +12 -8
  443. package/dist/automations/steps/slack.js +14 -7
  444. package/dist/automations/steps/updateRow.js +34 -7
  445. package/dist/automations/steps/utils.js +22 -16
  446. package/dist/automations/steps/zapier.js +15 -7
  447. package/dist/automations/tests/utilities/index.js +62 -38
  448. package/dist/automations/triggerInfo/app.js +4 -1
  449. package/dist/automations/triggerInfo/cron.js +4 -1
  450. package/dist/automations/triggerInfo/index.js +31 -6
  451. package/dist/automations/triggerInfo/rowDeleted.js +4 -1
  452. package/dist/automations/triggerInfo/rowSaved.js +4 -1
  453. package/dist/automations/triggerInfo/rowUpdated.js +4 -1
  454. package/dist/automations/triggerInfo/webhook.js +4 -1
  455. package/dist/automations/triggers.js +90 -57
  456. package/dist/automations/utils.js +9 -8
  457. package/dist/constants/index.js +118 -104
  458. package/dist/constants/layouts.js +7 -10
  459. package/dist/constants/screens.js +49 -44
  460. package/dist/db/defaultData/datasource_bb_default.js +573 -0
  461. package/dist/db/defaultData/employeeImport.js +155 -0
  462. package/dist/db/defaultData/expensesImport.js +117 -0
  463. package/dist/db/defaultData/inventoryImport.js +109 -0
  464. package/dist/db/defaultData/jobsImport.js +152 -0
  465. package/dist/db/dynamoClient.js +20 -20
  466. package/dist/db/inMemoryView.js +47 -38
  467. package/dist/db/index.js +7 -4
  468. package/dist/db/linkedRows/LinkController.js +51 -70
  469. package/dist/db/linkedRows/LinkDocument.js +32 -0
  470. package/dist/db/linkedRows/index.js +93 -81
  471. package/dist/db/linkedRows/linkUtils.js +42 -32
  472. package/dist/db/utils.js +146 -119
  473. package/dist/db/views/staticViews.js +91 -74
  474. package/dist/environment.js +9 -6
  475. package/dist/events/AutomationEmitter.js +13 -10
  476. package/dist/events/BudibaseEmitter.js +24 -0
  477. package/dist/events/index.js +5 -23
  478. package/dist/events/utils.js +18 -10
  479. package/dist/integrations/base/types.js +2 -0
  480. package/dist/integrations/elasticsearch.js +26 -2
  481. package/dist/integrations/googlesheets.js +5 -6
  482. package/dist/integrations/index.js +15 -6
  483. package/dist/integrations/microsoftSqlServer.js +8 -3
  484. package/dist/integrations/oracle.js +8 -1
  485. package/dist/integrations/postgres.js +6 -3
  486. package/dist/integrations/s3.js +157 -1
  487. package/dist/middleware/appInfo.js +14 -9
  488. package/dist/middleware/authorized.js +22 -21
  489. package/dist/middleware/builder.js +41 -40
  490. package/dist/middleware/currentapp.js +39 -37
  491. package/dist/middleware/joi-validator.js +17 -10
  492. package/dist/middleware/publicApi.js +5 -6
  493. package/dist/middleware/resourceId.js +16 -9
  494. package/dist/middleware/selfhost.js +5 -4
  495. package/dist/middleware/utils.js +5 -2
  496. package/dist/migrations/functions/appUrls.js +7 -11
  497. package/dist/migrations/functions/backfill/global.js +1 -1
  498. package/dist/migrations/functions/tableSettings.js +130 -0
  499. package/dist/migrations/functions/usageQuotas/syncApps.js +3 -4
  500. package/dist/migrations/functions/usageQuotas/syncRows.js +3 -4
  501. package/dist/migrations/functions/userEmailViewCasing.js +3 -3
  502. package/dist/migrations/index.js +5 -0
  503. package/dist/package.json +11 -45
  504. package/dist/sdk/app/applications/index.js +28 -0
  505. package/dist/sdk/app/applications/sync.js +70 -0
  506. package/dist/sdk/app/applications/utils.js +21 -0
  507. package/dist/sdk/app/backups/exports.js +1 -2
  508. package/dist/sdk/app/backups/imports.js +2 -3
  509. package/dist/sdk/app/tables/index.js +5 -5
  510. package/dist/sdk/index.js +4 -2
  511. package/dist/sdk/users/index.js +27 -0
  512. package/dist/sdk/users/utils.js +65 -0
  513. package/dist/startup.js +10 -10
  514. package/dist/tests/utilities/TestConfiguration.js +111 -87
  515. package/dist/tests/utilities/controllers.js +38 -15
  516. package/dist/tests/utilities/structures.js +72 -53
  517. package/dist/threads/automation.js +49 -27
  518. package/dist/threads/query.js +17 -19
  519. package/dist/threads/utils.js +33 -8
  520. package/dist/tsconfig.build.tsbuildinfo +1 -1
  521. package/dist/utilities/budibaseDir.js +4 -2
  522. package/dist/utilities/centralPath.js +14 -7
  523. package/dist/utilities/csvParser.js +27 -21
  524. package/dist/utilities/fileSystem/clientLibrary.js +87 -73
  525. package/dist/utilities/fileSystem/index.js +203 -175
  526. package/dist/utilities/fileSystem/processor.js +8 -3
  527. package/dist/utilities/global.js +87 -66
  528. package/dist/utilities/index.js +102 -75
  529. package/dist/utilities/plugins.js +15 -9
  530. package/dist/utilities/redis.js +100 -65
  531. package/dist/utilities/routing/index.js +27 -23
  532. package/dist/utilities/rowProcessor/index.js +133 -191
  533. package/dist/utilities/rowProcessor/map.js +99 -0
  534. package/dist/utilities/rowProcessor/utils.js +35 -26
  535. package/dist/utilities/scriptRunner.js +8 -5
  536. package/dist/utilities/security.js +39 -35
  537. package/dist/utilities/usageQuota/rows.js +56 -49
  538. package/dist/utilities/users.js +31 -28
  539. package/dist/utilities/workerRequests.js +115 -82
  540. package/dist/watch.js +1 -2
  541. package/jest.config.ts +33 -0
  542. package/package.json +12 -46
  543. package/scripts/exportAppTemplate.js +2 -2
  544. package/scripts/integrations/mssql/data/setup.sql +3 -3
  545. package/scripts/integrations/postgres/emp-skill.sql +46 -0
  546. package/scripts/localdomain.js +34 -6
  547. package/src/api/controllers/{apikeys.js → apikeys.ts} +10 -10
  548. package/src/api/controllers/application.ts +100 -135
  549. package/src/api/controllers/auth.ts +4 -3
  550. package/src/api/controllers/{automation.js → automation.ts} +48 -48
  551. package/src/api/controllers/{cloud.js → cloud.ts} +25 -24
  552. package/src/api/controllers/component.ts +2 -1
  553. package/src/api/controllers/{datasource.js → datasource.ts} +109 -49
  554. package/src/api/controllers/deploy/{Deployment.js → Deployment.ts} +13 -10
  555. package/src/api/controllers/deploy/index.ts +19 -25
  556. package/src/api/controllers/{dev.js → dev.ts} +31 -37
  557. package/src/api/controllers/integration.ts +13 -0
  558. package/src/api/controllers/{layout.js → layout.ts} +8 -8
  559. package/src/api/controllers/{metadata.js → metadata.ts} +11 -10
  560. package/src/api/controllers/migrations.ts +14 -0
  561. package/src/api/controllers/{permission.js → permission.ts} +49 -46
  562. package/src/api/controllers/plugin/index.ts +4 -5
  563. package/src/api/controllers/plugin/utils.ts +3 -5
  564. package/src/api/controllers/public/applications.ts +15 -9
  565. package/src/api/controllers/public/rows.ts +1 -1
  566. package/src/api/controllers/public/tables.ts +2 -2
  567. package/src/api/controllers/public/users.ts +25 -6
  568. package/src/api/controllers/public/utils.ts +2 -2
  569. package/src/api/controllers/query/import/index.ts +2 -3
  570. package/src/api/controllers/query/index.ts +11 -14
  571. package/src/api/controllers/query/{validation.js → validation.ts} +7 -7
  572. package/src/api/controllers/{role.js → role.ts} +21 -25
  573. package/src/api/controllers/{routing.js → routing.ts} +37 -34
  574. package/src/api/controllers/row/ExternalRequest.ts +605 -624
  575. package/src/api/controllers/row/{external.js → external.ts} +79 -62
  576. package/src/api/controllers/row/index.ts +19 -11
  577. package/src/api/controllers/row/{internal.js → internal.ts} +87 -73
  578. package/src/api/controllers/row/{internalSearch.js → internalSearch.ts} +92 -68
  579. package/src/api/controllers/row/{staticFormula.js → staticFormula.ts} +30 -25
  580. package/src/api/controllers/row/{utils.js → utils.ts} +32 -22
  581. package/src/api/controllers/screen.ts +10 -6
  582. package/src/api/controllers/script.ts +12 -0
  583. package/src/api/controllers/static/index.ts +14 -16
  584. package/src/api/controllers/table/{bulkFormula.js → bulkFormula.ts} +39 -25
  585. package/src/api/controllers/table/{external.js → external.ts} +86 -55
  586. package/src/api/controllers/table/{index.js → index.ts} +21 -18
  587. package/src/api/controllers/table/internal.ts +5 -6
  588. package/src/api/controllers/table/utils.ts +26 -21
  589. package/src/api/controllers/{templates.js → templates.ts} +10 -7
  590. package/src/api/controllers/{user.js → user.ts} +42 -101
  591. package/src/api/controllers/view/{exporters.js → exporters.ts} +5 -3
  592. package/src/api/controllers/view/{index.js → index.ts} +36 -27
  593. package/src/api/controllers/view/{utils.js → utils.ts} +26 -20
  594. package/src/api/controllers/view/{viewBuilder.js → viewBuilder.ts} +25 -11
  595. package/src/api/controllers/webhook.ts +1 -1
  596. package/src/api/{index.js → index.ts} +15 -22
  597. package/src/api/routes/analytics.ts +9 -0
  598. package/src/api/routes/apikeys.ts +12 -0
  599. package/src/api/routes/application.ts +17 -9
  600. package/src/api/routes/auth.ts +2 -2
  601. package/src/api/routes/automation.ts +87 -0
  602. package/src/api/routes/backup.ts +8 -4
  603. package/src/api/routes/cloud.ts +18 -0
  604. package/src/api/routes/component.ts +14 -0
  605. package/src/api/routes/datasource.ts +60 -0
  606. package/src/api/routes/deploy.ts +21 -0
  607. package/src/api/routes/dev.ts +38 -0
  608. package/src/api/routes/integration.ts +16 -0
  609. package/src/api/routes/layout.ts +16 -0
  610. package/src/api/routes/{metadata.js → metadata.ts} +13 -13
  611. package/src/api/routes/migrations.ts +14 -0
  612. package/src/api/routes/permission.ts +41 -0
  613. package/src/api/routes/plugin.ts +14 -6
  614. package/src/api/routes/public/index.ts +11 -14
  615. package/src/api/routes/public/tests/compare.spec.js +3 -21
  616. package/src/api/routes/public/tests/users.spec.js +38 -0
  617. package/src/api/routes/public/tests/utils.ts +28 -0
  618. package/src/api/routes/{query.js → query.ts} +19 -22
  619. package/src/api/routes/role.ts +24 -0
  620. package/src/api/routes/routing.ts +14 -0
  621. package/src/api/routes/row.ts +13 -15
  622. package/src/api/routes/screen.ts +23 -0
  623. package/src/api/routes/script.ts +10 -0
  624. package/src/api/routes/static.ts +7 -10
  625. package/src/api/routes/{table.js → table.ts} +10 -13
  626. package/src/api/routes/templates.ts +16 -0
  627. package/src/api/routes/tests/analytics.spec.js +1 -1
  628. package/src/api/routes/tests/application.spec.js +0 -1
  629. package/src/api/routes/tests/backup.spec.js +9 -1
  630. package/src/api/routes/tests/deployment.spec.ts +1 -1
  631. package/src/api/routes/tests/permissions.spec.js +2 -1
  632. package/src/api/routes/tests/query.spec.js +15 -10
  633. package/src/api/routes/tests/role.spec.js +7 -9
  634. package/src/api/routes/tests/routing.spec.js +2 -1
  635. package/src/api/routes/tests/row.spec.js +3 -4
  636. package/src/api/routes/tests/static.spec.js +2 -2
  637. package/src/api/routes/tests/table.spec.js +40 -36
  638. package/src/api/routes/tests/user.spec.js +2 -1
  639. package/src/api/routes/tests/utilities/TestFunctions.ts +6 -8
  640. package/src/api/routes/tests/utilities/{index.js → index.ts} +12 -12
  641. package/src/api/routes/tests/view.spec.js +3 -3
  642. package/src/api/routes/user.ts +51 -0
  643. package/src/api/routes/utils/{validators.js → validators.ts} +33 -37
  644. package/src/api/routes/view.ts +34 -0
  645. package/src/api/routes/webhook.ts +2 -2
  646. package/src/app.ts +15 -14
  647. package/src/automations/{actions.js → actions.ts} +26 -23
  648. package/src/automations/{automationUtils.js → automationUtils.ts} +13 -12
  649. package/src/automations/bullboard.ts +38 -0
  650. package/src/automations/index.ts +26 -0
  651. package/src/automations/steps/{bash.js → bash.ts} +13 -8
  652. package/src/automations/steps/createRow.ts +8 -3
  653. package/src/automations/steps/{delay.js → delay.ts} +9 -4
  654. package/src/automations/steps/deleteRow.ts +8 -3
  655. package/src/automations/steps/{discord.js → discord.ts} +10 -5
  656. package/src/automations/steps/{executeQuery.js → executeQuery.ts} +12 -7
  657. package/src/automations/steps/{executeScript.js → executeScript.ts} +17 -7
  658. package/src/automations/steps/{filter.js → filter.ts} +12 -9
  659. package/src/automations/steps/{integromat.js → integromat.ts} +10 -5
  660. package/src/automations/steps/{loop.js → loop.ts} +4 -2
  661. package/src/automations/steps/{outgoingWebhook.js → outgoingWebhook.ts} +18 -13
  662. package/src/automations/steps/{queryRows.js → queryRows.ts} +48 -36
  663. package/src/automations/steps/{sendSmtpEmail.js → sendSmtpEmail.ts} +10 -5
  664. package/src/automations/steps/{serverLog.js → serverLog.ts} +9 -3
  665. package/src/automations/steps/{slack.js → slack.ts} +10 -5
  666. package/src/automations/steps/{updateRow.js → updateRow.ts} +12 -7
  667. package/src/automations/steps/{utils.js → utils.ts} +10 -4
  668. package/src/automations/steps/{zapier.js → zapier.ts} +11 -5
  669. package/src/automations/tests/updateRow.spec.js +0 -1
  670. package/src/automations/tests/utilities/index.ts +60 -0
  671. package/src/automations/triggerInfo/{app.js → app.ts} +7 -2
  672. package/src/automations/triggerInfo/{cron.js → cron.ts} +7 -2
  673. package/src/automations/triggerInfo/index.ts +15 -0
  674. package/src/automations/triggerInfo/{rowDeleted.js → rowDeleted.ts} +7 -2
  675. package/src/automations/triggerInfo/{rowSaved.js → rowSaved.ts} +7 -2
  676. package/src/automations/triggerInfo/{rowUpdated.js → rowUpdated.ts} +7 -2
  677. package/src/automations/triggerInfo/{webhook.js → webhook.ts} +7 -2
  678. package/src/automations/{triggers.js → triggers.ts} +30 -26
  679. package/src/automations/utils.ts +9 -12
  680. package/src/constants/index.ts +204 -0
  681. package/src/constants/{layouts.js → layouts.ts} +3 -9
  682. package/src/constants/screens.ts +48 -0
  683. package/src/db/defaultData/datasource_bb_default.ts +658 -0
  684. package/src/db/defaultData/employeeImport.ts +152 -0
  685. package/src/db/defaultData/expensesImport.ts +114 -0
  686. package/src/db/defaultData/inventoryImport.ts +106 -0
  687. package/src/db/defaultData/jobsImport.ts +158 -0
  688. package/src/db/{dynamoClient.js → dynamoClient.ts} +39 -19
  689. package/src/db/{inMemoryView.js → inMemoryView.ts} +15 -9
  690. package/src/db/index.ts +16 -0
  691. package/src/db/linkedRows/{LinkController.js → LinkController.ts} +64 -85
  692. package/src/db/linkedRows/LinkDocument.ts +60 -0
  693. package/src/db/linkedRows/{index.js → index.ts} +43 -38
  694. package/src/db/linkedRows/{linkUtils.js → linkUtils.ts} +33 -24
  695. package/src/db/{newid.js → newid.ts} +1 -1
  696. package/src/db/tests/linkController.spec.js +73 -57
  697. package/src/db/tests/linkTests.spec.js +17 -14
  698. package/src/db/{utils.js → utils.ts} +77 -93
  699. package/src/db/views/{staticViews.js → staticViews.ts} +20 -13
  700. package/src/{environment.js → environment.ts} +11 -7
  701. package/src/events/{AutomationEmitter.js → AutomationEmitter.ts} +12 -7
  702. package/src/events/{index.js → BudibaseEmitter.ts} +7 -8
  703. package/src/events/index.ts +5 -0
  704. package/src/events/utils.ts +78 -0
  705. package/src/integrations/base/sql.ts +1 -1
  706. package/src/integrations/base/sqlTable.ts +1 -1
  707. package/src/integrations/base/types.ts +134 -0
  708. package/src/integrations/elasticsearch.ts +32 -2
  709. package/src/integrations/googlesheets.ts +5 -7
  710. package/src/integrations/index.ts +45 -41
  711. package/src/integrations/microsoftSqlServer.ts +14 -12
  712. package/src/integrations/mysql.ts +4 -3
  713. package/src/integrations/oracle.ts +17 -46
  714. package/src/integrations/postgres.ts +8 -2
  715. package/src/integrations/s3.ts +179 -3
  716. package/src/integrations/tests/s3.spec.ts +85 -1
  717. package/src/integrations/utils.ts +6 -2
  718. package/src/middleware/appInfo.ts +20 -0
  719. package/src/middleware/authorized.ts +21 -28
  720. package/src/middleware/{builder.js → builder.ts} +17 -15
  721. package/src/middleware/{currentapp.js → currentapp.ts} +42 -39
  722. package/src/middleware/{joi-validator.js → joi-validator.ts} +9 -8
  723. package/src/middleware/publicApi.ts +21 -0
  724. package/src/middleware/{resourceId.js → resourceId.ts} +16 -11
  725. package/src/middleware/{selfhost.js → selfhost.ts} +4 -2
  726. package/src/middleware/tests/authorized.spec.js +5 -6
  727. package/src/middleware/tests/currentapp.spec.js +118 -63
  728. package/src/middleware/{utils.js → utils.ts} +3 -1
  729. package/src/migrations/functions/appUrls.ts +4 -11
  730. package/src/migrations/functions/backfill/app/tables.ts +2 -5
  731. package/src/migrations/functions/backfill/global.ts +1 -1
  732. package/src/migrations/functions/tableSettings.ts +145 -0
  733. package/src/migrations/functions/tests/appUrls.spec.js +4 -4
  734. package/src/migrations/functions/tests/tableSettings.spec.ts +144 -0
  735. package/src/migrations/functions/tests/userEmailViewCasing.spec.js +14 -9
  736. package/src/migrations/functions/usageQuotas/syncApps.ts +3 -4
  737. package/src/migrations/functions/usageQuotas/syncRows.ts +4 -5
  738. package/src/migrations/functions/usageQuotas/tests/syncRows.spec.ts +7 -7
  739. package/src/migrations/functions/userEmailViewCasing.ts +3 -3
  740. package/src/migrations/index.ts +9 -0
  741. package/src/migrations/tests/index.spec.ts +1 -1
  742. package/src/sdk/app/applications/index.ts +7 -0
  743. package/src/sdk/app/applications/sync.ts +61 -0
  744. package/src/sdk/app/applications/utils.ts +17 -0
  745. package/src/sdk/app/backups/exports.ts +5 -3
  746. package/src/sdk/app/backups/imports.ts +7 -14
  747. package/src/sdk/app/backups/statistics.ts +9 -18
  748. package/src/sdk/app/tables/index.ts +7 -8
  749. package/src/sdk/index.ts +4 -3
  750. package/src/sdk/users/index.ts +5 -0
  751. package/src/sdk/users/utils.ts +64 -0
  752. package/src/startup.ts +5 -5
  753. package/{scripts/jestSetup.js → src/tests/jestSetup.ts} +11 -2
  754. package/src/tests/utilities/{TestConfiguration.js → TestConfiguration.ts} +111 -78
  755. package/src/tests/utilities/controllers.ts +14 -0
  756. package/src/tests/utilities/{index.js → index.ts} +2 -2
  757. package/src/tests/utilities/{structures.js → structures.ts} +41 -36
  758. package/src/threads/automation.ts +18 -19
  759. package/src/threads/query.ts +11 -16
  760. package/src/threads/utils.ts +4 -5
  761. package/src/utilities/budibaseDir.ts +3 -0
  762. package/src/utilities/{centralPath.js → centralPath.ts} +3 -3
  763. package/src/utilities/{csvParser.js → csvParser.ts} +42 -26
  764. package/src/utilities/fileSystem/{clientLibrary.js → clientLibrary.ts} +20 -20
  765. package/src/utilities/fileSystem/{index.js → index.ts} +61 -65
  766. package/src/utilities/fileSystem/{processor.js → processor.ts} +3 -5
  767. package/src/utilities/global.ts +138 -0
  768. package/src/utilities/{index.js → index.ts} +40 -32
  769. package/src/utilities/{plugins.js → plugins.ts} +5 -4
  770. package/src/utilities/{redis.js → redis.ts} +21 -20
  771. package/src/utilities/routing/index.ts +32 -0
  772. package/src/utilities/rowProcessor/{index.js → index.ts} +67 -144
  773. package/src/utilities/rowProcessor/map.ts +96 -0
  774. package/src/utilities/rowProcessor/{utils.js → utils.ts} +19 -15
  775. package/src/utilities/{scriptRunner.js → scriptRunner.ts} +8 -4
  776. package/src/utilities/security.ts +65 -0
  777. package/src/utilities/{statusCodes.js → statusCodes.ts} +1 -1
  778. package/src/utilities/usageQuota/{rows.js → rows.ts} +14 -18
  779. package/src/utilities/usageQuota/{usageQuoteReset.js → usageQuoteReset.ts} +1 -1
  780. package/src/utilities/{users.js → users.ts} +11 -13
  781. package/src/utilities/{workerRequests.js → workerRequests.ts} +43 -38
  782. package/src/watch.ts +2 -3
  783. package/tsconfig.build.json +1 -2
  784. package/tsconfig.json +3 -1
  785. package/builder/assets/index.534f6c29.css +0 -6
  786. package/builder/assets/index.f1f9afd2.js +0 -1021
  787. package/coverage/lcov-report/api/controllers/index.html +0 -326
  788. package/coverage/lcov-report/automations/steps/index.html +0 -341
  789. package/coverage/lcov-report/db/linkedRows/index.html +0 -146
  790. package/dist/integrations/tests/TestConfiguration.js +0 -1
  791. package/dist/utilities/fileSystem/utilities.js +0 -22
  792. package/dist/utilities/queue/inMemoryQueue.js +0 -126
  793. package/src/api/controllers/integration.js +0 -14
  794. package/src/api/controllers/migrations.js +0 -13
  795. package/src/api/controllers/script.js +0 -11
  796. package/src/api/routes/analytics.js +0 -9
  797. package/src/api/routes/apikeys.js +0 -12
  798. package/src/api/routes/automation.js +0 -85
  799. package/src/api/routes/cloud.js +0 -14
  800. package/src/api/routes/component.js +0 -14
  801. package/src/api/routes/datasource.js +0 -51
  802. package/src/api/routes/deploy.js +0 -17
  803. package/src/api/routes/dev.js +0 -26
  804. package/src/api/routes/integration.js +0 -12
  805. package/src/api/routes/layout.js +0 -16
  806. package/src/api/routes/migrations.js +0 -14
  807. package/src/api/routes/permission.js +0 -33
  808. package/src/api/routes/role.js +0 -15
  809. package/src/api/routes/routing.js +0 -14
  810. package/src/api/routes/screen.js +0 -18
  811. package/src/api/routes/script.js +0 -10
  812. package/src/api/routes/templates.js +0 -16
  813. package/src/api/routes/user.js +0 -53
  814. package/src/api/routes/view.js +0 -31
  815. package/src/automations/bullboard.js +0 -39
  816. package/src/automations/index.js +0 -29
  817. package/src/automations/tests/utilities/index.js +0 -51
  818. package/src/automations/triggerInfo/index.js +0 -15
  819. package/src/constants/index.js +0 -208
  820. package/src/constants/screens.js +0 -46
  821. package/src/db/index.js +0 -16
  822. package/src/events/utils.js +0 -38
  823. package/src/middleware/appInfo.js +0 -19
  824. package/src/middleware/publicApi.js +0 -21
  825. package/src/module.d.ts +0 -14
  826. package/src/tests/utilities/controllers.js +0 -16
  827. package/src/utilities/budibaseDir.js +0 -3
  828. package/src/utilities/fileSystem/utilities.js +0 -36
  829. package/src/utilities/global.js +0 -127
  830. package/src/utilities/queue/inMemoryQueue.js +0 -122
  831. package/src/utilities/routing/index.js +0 -25
  832. 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/row/internal.js</title>
6
+ <title>Code coverage report for src/api/controllers/row/internal.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/row</a> internal.js</h1>
22
+ <h1><a href="../../../../index.html">All files</a> / <a href="index.html">src/api/controllers/row</a> internal.ts</h1>
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">86.84% </span>
26
+ <span class="strong">86.89% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>198/228</span>
28
+ <span class='fraction'>199/229</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">65.71% </span>
33
+ <span class="strong">58.49% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>46/70</span>
35
+ <span class='fraction'>31/53</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">86.87% </span>
47
+ <span class="strong">86.81% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>192/221</span>
49
+ <span class='fraction'>191/220</span>
50
50
  </div>
51
51
 
52
52
 
@@ -532,40 +532,60 @@
532
532
  <a name='L467'></a><a href='#L467'>467</a>
533
533
  <a name='L468'></a><a href='#L468'>468</a>
534
534
  <a name='L469'></a><a href='#L469'>469</a>
535
- <a name='L470'></a><a href='#L470'>470</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">45x</span>
535
+ <a name='L470'></a><a href='#L470'>470</a>
536
+ <a name='L471'></a><a href='#L471'>471</a>
537
+ <a name='L472'></a><a href='#L472'>472</a>
538
+ <a name='L473'></a><a href='#L473'>473</a>
539
+ <a name='L474'></a><a href='#L474'>474</a>
540
+ <a name='L475'></a><a href='#L475'>475</a>
541
+ <a name='L476'></a><a href='#L476'>476</a>
542
+ <a name='L477'></a><a href='#L477'>477</a>
543
+ <a name='L478'></a><a href='#L478'>478</a>
544
+ <a name='L479'></a><a href='#L479'>479</a>
545
+ <a name='L480'></a><a href='#L480'>480</a>
546
+ <a name='L481'></a><a href='#L481'>481</a>
547
+ <a name='L482'></a><a href='#L482'>482</a>
548
+ <a name='L483'></a><a href='#L483'>483</a>
549
+ <a name='L484'></a><a href='#L484'>484</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">47x</span>
550
+ <span class="cline-any cline-yes">47x</span>
536
551
  <span class="cline-any cline-neutral">&nbsp;</span>
537
552
  <span class="cline-any cline-neutral">&nbsp;</span>
538
553
  <span class="cline-any cline-neutral">&nbsp;</span>
539
554
  <span class="cline-any cline-neutral">&nbsp;</span>
540
555
  <span class="cline-any cline-neutral">&nbsp;</span>
541
556
  <span class="cline-any cline-neutral">&nbsp;</span>
542
- <span class="cline-any cline-yes">45x</span>
543
- <span class="cline-any cline-yes">45x</span>
544
- <span class="cline-any cline-yes">45x</span>
557
+ <span class="cline-any cline-yes">47x</span>
558
+ <span class="cline-any cline-yes">47x</span>
545
559
  <span class="cline-any cline-neutral">&nbsp;</span>
546
560
  <span class="cline-any cline-neutral">&nbsp;</span>
547
561
  <span class="cline-any cline-neutral">&nbsp;</span>
548
562
  <span class="cline-any cline-neutral">&nbsp;</span>
549
- <span class="cline-any cline-yes">45x</span>
550
- <span class="cline-any cline-yes">45x</span>
551
- <span class="cline-any cline-yes">45x</span>
552
- <span class="cline-any cline-yes">45x</span>
553
- <span class="cline-any cline-yes">45x</span>
554
- <span class="cline-any cline-yes">45x</span>
555
- <span class="cline-any cline-yes">45x</span>
563
+ <span class="cline-any cline-yes">47x</span>
564
+ <span class="cline-any cline-yes">47x</span>
565
+ <span class="cline-any cline-yes">47x</span>
566
+ <span class="cline-any cline-yes">47x</span>
567
+ <span class="cline-any cline-yes">47x</span>
568
+ <span class="cline-any cline-yes">47x</span>
569
+ <span class="cline-any cline-yes">47x</span>
556
570
  <span class="cline-any cline-neutral">&nbsp;</span>
557
571
  <span class="cline-any cline-neutral">&nbsp;</span>
558
572
  <span class="cline-any cline-neutral">&nbsp;</span>
559
573
  <span class="cline-any cline-neutral">&nbsp;</span>
560
574
  <span class="cline-any cline-neutral">&nbsp;</span>
561
- <span class="cline-any cline-yes">45x</span>
562
- <span class="cline-any cline-yes">45x</span>
563
- <span class="cline-any cline-yes">45x</span>
564
- <span class="cline-any cline-yes">45x</span>
565
- <span class="cline-any cline-yes">45x</span>
566
- <span class="cline-any cline-yes">45x</span>
575
+ <span class="cline-any cline-yes">47x</span>
576
+ <span class="cline-any cline-yes">47x</span>
577
+ <span class="cline-any cline-yes">47x</span>
578
+ <span class="cline-any cline-yes">47x</span>
579
+ <span class="cline-any cline-yes">47x</span>
567
580
  <span class="cline-any cline-neutral">&nbsp;</span>
568
- <span class="cline-any cline-yes">45x</span>
581
+ <span class="cline-any cline-neutral">&nbsp;</span>
582
+ <span class="cline-any cline-neutral">&nbsp;</span>
583
+ <span class="cline-any cline-neutral">&nbsp;</span>
584
+ <span class="cline-any cline-neutral">&nbsp;</span>
585
+ <span class="cline-any cline-neutral">&nbsp;</span>
586
+ <span class="cline-any cline-neutral">&nbsp;</span>
587
+ <span class="cline-any cline-neutral">&nbsp;</span>
588
+ <span class="cline-any cline-yes">47x</span>
569
589
  <span class="cline-any cline-neutral">&nbsp;</span>
570
590
  <span class="cline-any cline-neutral">&nbsp;</span>
571
591
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -613,7 +633,7 @@
613
633
  <span class="cline-any cline-yes">7x</span>
614
634
  <span class="cline-any cline-neutral">&nbsp;</span>
615
635
  <span class="cline-any cline-neutral">&nbsp;</span>
616
- <span class="cline-any cline-yes">45x</span>
636
+ <span class="cline-any cline-yes">47x</span>
617
637
  <span class="cline-any cline-yes">6x</span>
618
638
  <span class="cline-any cline-yes">6x</span>
619
639
  <span class="cline-any cline-yes">6x</span>
@@ -678,7 +698,7 @@
678
698
  <span class="cline-any cline-neutral">&nbsp;</span>
679
699
  <span class="cline-any cline-neutral">&nbsp;</span>
680
700
  <span class="cline-any cline-neutral">&nbsp;</span>
681
- <span class="cline-any cline-yes">45x</span>
701
+ <span class="cline-any cline-yes">47x</span>
682
702
  <span class="cline-any cline-yes">77x</span>
683
703
  <span class="cline-any cline-yes">77x</span>
684
704
  <span class="cline-any cline-yes">77x</span>
@@ -713,7 +733,7 @@
713
733
  <span class="cline-any cline-neutral">&nbsp;</span>
714
734
  <span class="cline-any cline-neutral">&nbsp;</span>
715
735
  <span class="cline-any cline-neutral">&nbsp;</span>
716
- <span class="cline-any cline-yes">45x</span>
736
+ <span class="cline-any cline-yes">47x</span>
717
737
  <span class="cline-any cline-yes">9x</span>
718
738
  <span class="cline-any cline-neutral">&nbsp;</span>
719
739
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -738,6 +758,11 @@
738
758
  <span class="cline-any cline-neutral">&nbsp;</span>
739
759
  <span class="cline-any cline-neutral">&nbsp;</span>
740
760
  <span class="cline-any cline-neutral">&nbsp;</span>
761
+ <span class="cline-any cline-neutral">&nbsp;</span>
762
+ <span class="cline-any cline-neutral">&nbsp;</span>
763
+ <span class="cline-any cline-neutral">&nbsp;</span>
764
+ <span class="cline-any cline-neutral">&nbsp;</span>
765
+ <span class="cline-any cline-neutral">&nbsp;</span>
741
766
  <span class="cline-any cline-yes">5x</span>
742
767
  <span class="cline-any cline-yes">3x</span>
743
768
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -775,7 +800,7 @@
775
800
  <span class="cline-any cline-yes">5x</span>
776
801
  <span class="cline-any cline-neutral">&nbsp;</span>
777
802
  <span class="cline-any cline-neutral">&nbsp;</span>
778
- <span class="cline-any cline-yes">45x</span>
803
+ <span class="cline-any cline-yes">47x</span>
779
804
  <span class="cline-any cline-yes">7x</span>
780
805
  <span class="cline-any cline-neutral">&nbsp;</span>
781
806
  <span class="cline-any cline-yes">7x</span>
@@ -784,7 +809,7 @@
784
809
  <span class="cline-any cline-yes">7x</span>
785
810
  <span class="cline-any cline-neutral">&nbsp;</span>
786
811
  <span class="cline-any cline-neutral">&nbsp;</span>
787
- <span class="cline-any cline-yes">45x</span>
812
+ <span class="cline-any cline-yes">47x</span>
788
813
  <span class="cline-any cline-yes">18x</span>
789
814
  <span class="cline-any cline-yes">18x</span>
790
815
  <span class="cline-any cline-yes">18x</span>
@@ -792,7 +817,7 @@
792
817
  <span class="cline-any cline-yes">15x</span>
793
818
  <span class="cline-any cline-neutral">&nbsp;</span>
794
819
  <span class="cline-any cline-neutral">&nbsp;</span>
795
- <span class="cline-any cline-yes">45x</span>
820
+ <span class="cline-any cline-yes">47x</span>
796
821
  <span class="cline-any cline-yes">4x</span>
797
822
  <span class="cline-any cline-yes">4x</span>
798
823
  <span class="cline-any cline-yes">4x</span>
@@ -828,7 +853,7 @@
828
853
  <span class="cline-any cline-yes">3x</span>
829
854
  <span class="cline-any cline-neutral">&nbsp;</span>
830
855
  <span class="cline-any cline-neutral">&nbsp;</span>
831
- <span class="cline-any cline-yes">45x</span>
856
+ <span class="cline-any cline-yes">47x</span>
832
857
  <span class="cline-any cline-yes">2x</span>
833
858
  <span class="cline-any cline-yes">2x</span>
834
859
  <span class="cline-any cline-yes">2x</span>
@@ -839,6 +864,8 @@
839
864
  <span class="cline-any cline-yes">2x</span>
840
865
  <span class="cline-any cline-neutral">&nbsp;</span>
841
866
  <span class="cline-any cline-neutral">&nbsp;</span>
867
+ <span class="cline-any cline-neutral">&nbsp;</span>
868
+ <span class="cline-any cline-neutral">&nbsp;</span>
842
869
  <span class="cline-any cline-yes">2x</span>
843
870
  <span class="cline-any cline-yes">3x</span>
844
871
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -865,7 +892,7 @@
865
892
  <span class="cline-any cline-yes">2x</span>
866
893
  <span class="cline-any cline-neutral">&nbsp;</span>
867
894
  <span class="cline-any cline-neutral">&nbsp;</span>
868
- <span class="cline-any cline-yes">45x</span>
895
+ <span class="cline-any cline-yes">47x</span>
869
896
  <span class="cline-any cline-neutral">&nbsp;</span>
870
897
  <span class="cline-any cline-yes">4x</span>
871
898
  <span class="cline-any cline-no">&nbsp;</span>
@@ -897,14 +924,14 @@
897
924
  <span class="cline-any cline-yes">4x</span>
898
925
  <span class="cline-any cline-neutral">&nbsp;</span>
899
926
  <span class="cline-any cline-neutral">&nbsp;</span>
900
- <span class="cline-any cline-yes">45x</span>
927
+ <span class="cline-any cline-yes">47x</span>
901
928
  <span class="cline-any cline-yes">2x</span>
902
929
  <span class="cline-any cline-neutral">&nbsp;</span>
903
930
  <span class="cline-any cline-neutral">&nbsp;</span>
904
931
  <span class="cline-any cline-neutral">&nbsp;</span>
905
932
  <span class="cline-any cline-neutral">&nbsp;</span>
906
933
  <span class="cline-any cline-neutral">&nbsp;</span>
907
- <span class="cline-any cline-yes">45x</span>
934
+ <span class="cline-any cline-yes">47x</span>
908
935
  <span class="cline-any cline-yes">2x</span>
909
936
  <span class="cline-any cline-yes">2x</span>
910
937
  <span class="cline-any cline-yes">2x</span>
@@ -933,6 +960,7 @@
933
960
  <span class="cline-any cline-neutral">&nbsp;</span>
934
961
  <span class="cline-any cline-neutral">&nbsp;</span>
935
962
  <span class="cline-any cline-yes">2x</span>
963
+ <span class="cline-any cline-neutral">&nbsp;</span>
936
964
  <span class="cline-any cline-yes">2x</span>
937
965
  <span class="cline-any cline-yes">2x</span>
938
966
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -941,7 +969,7 @@
941
969
  <span class="cline-any cline-yes">2x</span>
942
970
  <span class="cline-any cline-neutral">&nbsp;</span>
943
971
  <span class="cline-any cline-neutral">&nbsp;</span>
944
- <span class="cline-any cline-yes">45x</span>
972
+ <span class="cline-any cline-yes">47x</span>
945
973
  <span class="cline-any cline-yes">2x</span>
946
974
  <span class="cline-any cline-yes">2x</span>
947
975
  <span class="cline-any cline-yes">2x</span>
@@ -1001,38 +1029,44 @@
1001
1029
  <span class="cline-any cline-neutral">&nbsp;</span>
1002
1030
  <span class="cline-any cline-yes">2x</span>
1003
1031
  <span class="cline-any cline-neutral">&nbsp;</span>
1004
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">const linkRows = require("../../../db/linkedRows")
1005
- const {
1032
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import * as linkRows from "../../../db/linkedRows"
1033
+ import {
1006
1034
  generateRowID,
1007
1035
  getRowParams,
1008
1036
  getTableIDFromRowID,
1009
1037
  DocumentType,
1010
1038
  InternalTables,
1011
- } = require("../../../db/utils")
1012
- const { dangerousGetDB } = require("@budibase/backend-core/db")
1013
- const userController = require("../user")
1014
- const {
1039
+ } from "../../../db/utils"
1040
+ import * as userController from "../user"
1041
+ import {
1015
1042
  inputProcessing,
1016
1043
  outputProcessing,
1017
1044
  cleanupAttachments,
1018
- } = require("../../../utilities/rowProcessor")
1019
- const { FieldTypes } = require("../../../constants")
1020
- const { validate, findRow } = require("./utils")
1021
- const { fullSearch, paginatedSearch } = require("./internalSearch")
1022
- const { getGlobalUsersFromMetadata } = require("../../../utilities/global")
1023
- const inMemoryViews = require("../../../db/inMemoryView")
1024
- const env = require("../../../environment")
1025
- const {
1045
+ } from "../../../utilities/rowProcessor"
1046
+ import { FieldTypes } from "../../../constants"
1047
+ import { validate as rowValidate, findRow } from "./utils"
1048
+ import { fullSearch, paginatedSearch } from "./internalSearch"
1049
+ import { getGlobalUsersFromMetadata } from "../../../utilities/global"
1050
+ import * as inMemoryViews from "../../../db/inMemoryView"
1051
+ import env from "../../../environment"
1052
+ import {
1026
1053
  migrateToInMemoryView,
1027
1054
  migrateToDesignView,
1028
1055
  getFromDesignDoc,
1029
1056
  getFromMemoryDoc,
1030
- } = require("../view/utils")
1031
- const { cloneDeep } = require("lodash/fp")
1032
- const { getAppDB } = require("@budibase/backend-core/context")
1033
- const { finaliseRow, updateRelatedFormula } = require("./staticFormula")
1034
- const exporters = require("../view/exporters")
1035
- const { apiFileReturn } = require("../../../utilities/fileSystem")
1057
+ } from "../view/utils"
1058
+ import { cloneDeep } from "lodash/fp"
1059
+ import { context, db as dbCore } from "@budibase/backend-core"
1060
+ import { finaliseRow, updateRelatedFormula } from "./staticFormula"
1061
+ import * as exporters from "../view/exporters"
1062
+ import { apiFileReturn } from "../../../utilities/fileSystem"
1063
+ import {
1064
+ BBContext,
1065
+ Database,
1066
+ LinkDocumentValue,
1067
+ Row,
1068
+ Table,
1069
+ } from "@budibase/types"
1036
1070
  &nbsp;
1037
1071
  const CALCULATION_TYPES = {
1038
1072
  SUM: "sum",
@@ -1040,7 +1074,7 @@ const CALCULATION_TYPES = {
1040
1074
  STATS: "stats",
1041
1075
  }
1042
1076
  &nbsp;
1043
- async function getView(db, viewName) {
1077
+ async function getView(db: Database, viewName: string) {
1044
1078
  let mainGetter = env.SELF_HOSTED ? getFromDesignDoc : <span class="branch-1 cbranch-no" title="branch not covered" >getFromMemoryDoc</span>
1045
1079
  let secondaryGetter = env.SELF_HOSTED ? getFromMemoryDoc : <span class="branch-1 cbranch-no" title="branch not covered" >getFromDesignDoc</span>
1046
1080
  let migration = env.SELF_HOSTED ? migrateToDesignView : <span class="branch-1 cbranch-no" title="branch not covered" >migrateToInMemoryView</span>
@@ -1048,7 +1082,7 @@ async function getView(db, viewName) {
1048
1082
  migrate = false
1049
1083
  try {
1050
1084
  viewInfo = await mainGetter(db, viewName)
1051
- } catch (err) {
1085
+ } catch (err: any) {
1052
1086
  // check if it can be retrieved from design doc (needs migrated)
1053
1087
  <span class="missing-if-branch" title="if path not taken" >I</span>if (err.status !== 404) {
1054
1088
  <span class="cstat-no" title="statement not covered" > viewInfo = null</span>
@@ -1066,7 +1100,7 @@ async function getView(db, viewName) {
1066
1100
  return viewInfo
1067
1101
  }
1068
1102
  &nbsp;
1069
- async function getRawTableData(ctx, db, tableId) {
1103
+ async function getRawTableData(ctx: BBContext, db: Database, tableId: string) {
1070
1104
  let rows
1071
1105
  <span class="missing-if-branch" title="if path not taken" >I</span>if (tableId === InternalTables.USER_METADATA) {
1072
1106
  <span class="cstat-no" title="statement not covered" > await userController.fetchMetadata(ctx)</span>
@@ -1079,11 +1113,11 @@ async function getRawTableData(ctx, db, tableId) {
1079
1113
  )
1080
1114
  rows = response.rows.map(row =&gt; row.doc)
1081
1115
  }
1082
- return rows
1116
+ return rows as Row[]
1083
1117
  }
1084
1118
  &nbsp;
1085
- exports.patch = async ctx =&gt; {
1086
- const db = getAppDB()
1119
+ export async function patch(ctx: BBContext) {
1120
+ const db = context.getAppDB()
1087
1121
  const inputs = ctx.request.body
1088
1122
  const tableId = inputs.tableId
1089
1123
  const isUserTable = tableId === InternalTables.USER_METADATA
@@ -1107,15 +1141,15 @@ exports.patch = async ctx =&gt; {
1107
1141
  }
1108
1142
  let dbTable = await db.get(tableId)
1109
1143
  // need to build up full patch fields before coerce
1110
- let combinedRow = cloneDeep(oldRow)
1144
+ let combinedRow: any = cloneDeep(oldRow)
1111
1145
  for (let key of Object.keys(inputs)) {
1112
1146
  if (!dbTable.schema[key]) continue
1113
1147
  combinedRow[key] = inputs[key]
1114
1148
  }
1115
1149
  &nbsp;
1116
1150
  // this returns the table and row incase they have been updated
1117
- let { table, row } = inputProcessing(ctx.user, dbTable, combinedRow)
1118
- const validateResult = await validate({
1151
+ let { table, row } = inputProcessing(ctx.user!, dbTable, combinedRow)
1152
+ const validateResult = await rowValidate({
1119
1153
  row,
1120
1154
  table,
1121
1155
  })
@@ -1125,12 +1159,12 @@ exports.patch = async ctx =&gt; {
1125
1159
  }
1126
1160
  &nbsp;
1127
1161
  // returned row is cleaned and prepared for writing to DB
1128
- row = await linkRows.updateLinks({
1162
+ row = (await linkRows.updateLinks({
1129
1163
  eventType: linkRows.EventType.ROW_UPDATE,
1130
1164
  row,
1131
1165
  tableId: row.tableId,
1132
1166
  table,
1133
- })
1167
+ })) as Row
1134
1168
  // check if any attachments removed
1135
1169
  await cleanupAttachments(table, { oldRow, row })
1136
1170
  &nbsp;
@@ -1147,19 +1181,19 @@ exports.patch = async ctx =&gt; {
1147
1181
  })
1148
1182
  }
1149
1183
  &nbsp;
1150
- exports.save = async function (ctx) {
1151
- const db = getAppDB()
1184
+ export async function save(ctx: BBContext) {
1185
+ const db = context.getAppDB()
1152
1186
  let inputs = ctx.request.body
1153
1187
  inputs.tableId = ctx.params.tableId
1154
1188
  &nbsp;
1155
- <span class="missing-if-branch" title="else path not taken" >E</span>if (!inputs._rev &amp;&amp; !inputs._id) {
1189
+ if (!inputs._rev &amp;&amp; !inputs._id) {
1156
1190
  inputs._id = generateRowID(inputs.tableId)
1157
1191
  }
1158
1192
  &nbsp;
1159
1193
  // this returns the table and row incase they have been updated
1160
1194
  const dbTable = await db.get(inputs.tableId)
1161
- let { table, row } = inputProcessing(ctx.user, dbTable, inputs)
1162
- const validateResult = await validate({
1195
+ let { table, row } = inputProcessing(ctx.user!, dbTable, inputs)
1196
+ const validateResult = await rowValidate({
1163
1197
  row,
1164
1198
  table,
1165
1199
  })
@@ -1169,12 +1203,12 @@ exports.save = async function (ctx) {
1169
1203
  }
1170
1204
  &nbsp;
1171
1205
  // make sure link rows are up to date
1172
- row = await linkRows.updateLinks({
1206
+ row = (await linkRows.updateLinks({
1173
1207
  eventType: linkRows.EventType.ROW_SAVE,
1174
1208
  row,
1175
1209
  tableId: row.tableId,
1176
1210
  table,
1177
- })
1211
+ })) as Row
1178
1212
  &nbsp;
1179
1213
  return finaliseRow(table, row, {
1180
1214
  oldTable: dbTable,
@@ -1182,16 +1216,16 @@ exports.save = async function (ctx) {
1182
1216
  })
1183
1217
  }
1184
1218
  &nbsp;
1185
- exports.fetchView = async ctx =&gt; {
1219
+ export async function fetchView(ctx: BBContext) {
1186
1220
  const viewName = ctx.params.viewName
1187
1221
  &nbsp;
1188
1222
  // if this is a table view being looked for just transfer to that
1189
1223
  if (viewName.startsWith(DocumentType.TABLE)) {
1190
1224
  ctx.params.tableId = viewName
1191
- return exports.fetch(ctx)
1225
+ return fetch(ctx)
1192
1226
  }
1193
1227
  &nbsp;
1194
- const db = getAppDB()
1228
+ const db = context.getAppDB()
1195
1229
  const { calculation, group, field } = ctx.query
1196
1230
  const viewInfo = await getView(db, viewName)
1197
1231
  let response
@@ -1203,7 +1237,12 @@ exports.fetchView = async ctx =&gt; {
1203
1237
  } else <span class="missing-if-branch" title="else path not taken" >E</span>{
1204
1238
  const tableId = <span class="cstat-no" title="statement not covered" >viewInfo.meta.tableId</span>
1205
1239
  const data = <span class="cstat-no" title="statement not covered" >await getRawTableData(ctx, db, tableId)</span>
1206
- <span class="cstat-no" title="statement not covered" > response = await inMemoryViews.runView(viewInfo, calculation, group, data)</span>
1240
+ <span class="cstat-no" title="statement not covered" > response = await inMemoryViews.runView(</span>
1241
+ viewInfo,
1242
+ calculation as string,
1243
+ !!group,
1244
+ data
1245
+ )
1207
1246
  }
1208
1247
  &nbsp;
1209
1248
  let rows
@@ -1235,7 +1274,7 @@ exports.fetchView = async ctx =&gt; {
1235
1274
  calculation === CALCULATION_TYPES.COUNT ||
1236
1275
  calculation === CALCULATION_TYPES.SUM
1237
1276
  ) {
1238
- <span class="cstat-no" title="statement not covered" > rows = response.rows.map(<span class="fstat-no" title="function not covered" >ro</span>w =&gt; (<span class="cstat-no" title="statement not covered" >{</span></span>
1277
+ <span class="cstat-no" title="statement not covered" > rows = response.rows.map(<span class="fstat-no" title="function not covered" >row </span>=&gt; (<span class="cstat-no" title="statement not covered" >{</span></span>
1239
1278
  group: row.key,
1240
1279
  field,
1241
1280
  value: row.value,
@@ -1244,8 +1283,8 @@ exports.fetchView = async ctx =&gt; {
1244
1283
  return rows
1245
1284
  }
1246
1285
  &nbsp;
1247
- exports.fetch = async ctx =&gt; {
1248
- const db = getAppDB()
1286
+ export async function fetch(ctx: BBContext) {
1287
+ const db = context.getAppDB()
1249
1288
  &nbsp;
1250
1289
  const tableId = ctx.params.tableId
1251
1290
  let table = await db.get(tableId)
@@ -1253,16 +1292,16 @@ exports.fetch = async ctx =&gt; {
1253
1292
  return outputProcessing(table, rows)
1254
1293
  }
1255
1294
  &nbsp;
1256
- exports.find = async ctx =&gt; {
1257
- const db = dangerousGetDB(ctx.appId)
1295
+ export async function find(ctx: BBContext) {
1296
+ const db = dbCore.getDB(ctx.appId)
1258
1297
  const table = await db.get(ctx.params.tableId)
1259
1298
  let row = await findRow(ctx, ctx.params.tableId, ctx.params.rowId)
1260
1299
  row = await outputProcessing(table, row)
1261
1300
  return row
1262
1301
  }
1263
1302
  &nbsp;
1264
- exports.destroy = async function (ctx) {
1265
- const db = getAppDB()
1303
+ export async function destroy(ctx: BBContext) {
1304
+ const db = context.getAppDB()
1266
1305
  const { _id } = ctx.request.body
1267
1306
  let row = await db.get(_id)
1268
1307
  let _rev = ctx.request.body._rev || <span class="branch-1 cbranch-no" title="branch not covered" >row._rev</span>
@@ -1297,18 +1336,20 @@ exports.destroy = async function (ctx) {
1297
1336
  return { response, row }
1298
1337
  }
1299
1338
  &nbsp;
1300
- exports.bulkDestroy = async ctx =&gt; {
1301
- const db = getAppDB()
1339
+ export async function bulkDestroy(ctx: BBContext) {
1340
+ const db = context.getAppDB()
1302
1341
  const tableId = ctx.params.tableId
1303
1342
  const table = await db.get(tableId)
1304
1343
  let { rows } = ctx.request.body
1305
1344
  &nbsp;
1306
1345
  // before carrying out any updates, make sure the rows are ready to be returned
1307
1346
  // they need to be the full rows (including previous relationships) for automations
1308
- rows = await outputProcessing(table, rows, { squash: false })
1347
+ const processedRows = (await outputProcessing(table, rows, {
1348
+ squash: false,
1349
+ })) as Row[]
1309
1350
  &nbsp;
1310
1351
  // remove the relationships first
1311
- let updates = rows.map(row =&gt;
1352
+ let updates: Promise&lt;any&gt;[] = processedRows.map(row =&gt;
1312
1353
  linkRows.updateLinks({
1313
1354
  eventType: linkRows.EventType.ROW_DELETE,
1314
1355
  row,
@@ -1317,7 +1358,7 @@ exports.bulkDestroy = async ctx =&gt; {
1317
1358
  )
1318
1359
  <span class="missing-if-branch" title="if path not taken" >I</span>if (tableId === InternalTables.USER_METADATA) {
1319
1360
  <span class="cstat-no" title="statement not covered" > updates = updates.concat(</span>
1320
- rows.map(<span class="fstat-no" title="function not covered" >ro</span>w =&gt; {
1361
+ processedRows.map(<span class="fstat-no" title="function not covered" >row </span>=&gt; {
1321
1362
  <span class="cstat-no" title="statement not covered" > ctx.params = {</span>
1322
1363
  id: row._id,
1323
1364
  }
@@ -1325,23 +1366,23 @@ exports.bulkDestroy = async ctx =&gt; {
1325
1366
  })
1326
1367
  )
1327
1368
  } else {
1328
- await db.bulkDocs(rows.map(row =&gt; ({ ...row, _deleted: true })))
1369
+ await db.bulkDocs(processedRows.map(row =&gt; ({ ...row, _deleted: true })))
1329
1370
  }
1330
1371
  // remove any attachments that were on the rows from object storage
1331
- await cleanupAttachments(table, { rows })
1332
- await updateRelatedFormula(table, rows)
1372
+ await cleanupAttachments(table, { rows: processedRows })
1373
+ await updateRelatedFormula(table, processedRows)
1333
1374
  await Promise.all(updates)
1334
- return { response: { ok: true }, rows }
1375
+ return { response: { ok: true }, rows: processedRows }
1335
1376
  }
1336
1377
  &nbsp;
1337
- exports.search = async ctx =&gt; {
1378
+ export async function search(ctx: BBContext) {
1338
1379
  // Fetch the whole table when running in cypress, as search doesn't work
1339
1380
  <span class="missing-if-branch" title="if path not taken" >I</span>if (!env.COUCH_DB_URL &amp;&amp; env.isCypress()) {
1340
- <span class="cstat-no" title="statement not covered" > return { rows: await exports.fetch(ctx) }</span>
1381
+ <span class="cstat-no" title="statement not covered" > return { rows: await fetch(ctx) }</span>
1341
1382
  }
1342
1383
  &nbsp;
1343
1384
  const { tableId } = ctx.params
1344
- const db = getAppDB()
1385
+ const db = context.getAppDB()
1345
1386
  const { paginate, query, ...params } = ctx.request.body
1346
1387
  params.version = ctx.version
1347
1388
  params.tableId = tableId
@@ -1354,7 +1395,7 @@ exports.search = async ctx =&gt; {
1354
1395
  }
1355
1396
  &nbsp;
1356
1397
  // Enrich search results with relationships
1357
- <span class="missing-if-branch" title="else path not taken" >E</span>if (response.rows &amp;&amp; response.rows.length) {
1398
+ if (response.rows &amp;&amp; response.rows.length) {
1358
1399
  // enrich with global users if from users table
1359
1400
  <span class="missing-if-branch" title="if path not taken" >I</span>if (tableId === InternalTables.USER_METADATA) {
1360
1401
  <span class="cstat-no" title="statement not covered" > response.rows = await getGlobalUsersFromMetadata(response.rows)</span>
@@ -1366,15 +1407,15 @@ exports.search = async ctx =&gt; {
1366
1407
  return response
1367
1408
  }
1368
1409
  &nbsp;
1369
- exports.validate = async ctx =&gt; {
1370
- return validate({
1410
+ export async function validate(ctx: BBContext) {
1411
+ return rowValidate({
1371
1412
  tableId: ctx.params.tableId,
1372
1413
  row: ctx.request.body,
1373
1414
  })
1374
1415
  }
1375
1416
  &nbsp;
1376
- exports.exportRows = async ctx =&gt; {
1377
- const db = getAppDB()
1417
+ export async function exportRows(ctx: BBContext) {
1418
+ const db = context.getAppDB()
1378
1419
  const table = await db.get(ctx.params.tableId)
1379
1420
  const rowIds = ctx.request.body.rows
1380
1421
  let format = ctx.query.format
@@ -1386,8 +1427,8 @@ exports.exportRows = async ctx =&gt; {
1386
1427
  })
1387
1428
  ).rows.map(row =&gt; row.doc)
1388
1429
  &nbsp;
1389
- let result = await outputProcessing(table, response)
1390
- let rows = []
1430
+ let result = (await outputProcessing(table, response)) as Row[]
1431
+ let rows: Row[] = []
1391
1432
  &nbsp;
1392
1433
  // Filter data to only specified columns if required
1393
1434
  if (columns &amp;&amp; columns.length) {
@@ -1402,6 +1443,7 @@ exports.exportRows = async ctx =&gt; {
1402
1443
  }
1403
1444
  &nbsp;
1404
1445
  let headers = Object.keys(rows[0])
1446
+ // @ts-ignore
1405
1447
  const exporter = exporters[format]
1406
1448
  const filename = `export.${format}`
1407
1449
  &nbsp;
@@ -1410,8 +1452,8 @@ exports.exportRows = async ctx =&gt; {
1410
1452
  return apiFileReturn(exporter(headers, rows))
1411
1453
  }
1412
1454
  &nbsp;
1413
- exports.fetchEnrichedRow = async ctx =&gt; {
1414
- const db = getAppDB()
1455
+ export async function fetchEnrichedRow(ctx: BBContext) {
1456
+ const db = context.getAppDB()
1415
1457
  const tableId = ctx.params.tableId
1416
1458
  const rowId = ctx.params.rowId
1417
1459
  // need table to work out where links go in row
@@ -1420,10 +1462,10 @@ exports.fetchEnrichedRow = async ctx =&gt; {
1420
1462
  findRow(ctx, tableId, rowId),
1421
1463
  ])
1422
1464
  // get the link docs
1423
- const linkVals = await linkRows.getLinkDocuments({
1465
+ const linkVals = (await linkRows.getLinkDocuments({
1424
1466
  tableId,
1425
1467
  rowId,
1426
- })
1468
+ })) as LinkDocumentValue[]
1427
1469
  // look up the actual rows based on the ids
1428
1470
  let response = (
1429
1471
  await db.allDocs({
@@ -1432,8 +1474,8 @@ exports.fetchEnrichedRow = async ctx =&gt; {
1432
1474
  })
1433
1475
  ).rows.map(row =&gt; row.doc)
1434
1476
  // group responses by table
1435
- let groups = {},
1436
- tables = {}
1477
+ let groups: any = {},
1478
+ tables: Record&lt;string, Table&gt; = {}
1437
1479
  for (let row of response) {
1438
1480
  <span class="missing-if-branch" title="if path not taken" >I</span>if (!row.tableId) {
1439
1481
  <span class="cstat-no" title="statement not covered" > row.tableId = getTableIDFromRowID(row._id)</span>
@@ -1446,11 +1488,11 @@ exports.fetchEnrichedRow = async ctx =&gt; {
1446
1488
  <span class="cstat-no" title="statement not covered" > groups[linkedTableId].push(row)</span>
1447
1489
  }
1448
1490
  }
1449
- let linkedRows = []
1491
+ let linkedRows: Row[] = []
1450
1492
  for (let [tableId, rows] of Object.entries(groups)) {
1451
1493
  // need to include the IDs in these rows for any links they may have
1452
1494
  linkedRows = linkedRows.concat(
1453
- await outputProcessing(tables[tableId], rows)
1495
+ await outputProcessing(tables[tableId], rows as Row[])
1454
1496
  )
1455
1497
  }
1456
1498
  &nbsp;
@@ -1477,16 +1519,16 @@ exports.fetchEnrichedRow = async ctx =&gt; {
1477
1519
  <div class='footer quiet pad2 space-top1 center small'>
1478
1520
  Code coverage generated by
1479
1521
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
1480
- at Tue Dec 06 2022 14:43:08 GMT+0000 (Coordinated Universal Time)
1522
+ at Fri Dec 09 2022 14:41:04 GMT+0000 (Coordinated Universal Time)
1481
1523
  </div>
1482
- <script src="../../../prettify.js"></script>
1524
+ <script src="../../../../prettify.js"></script>
1483
1525
  <script>
1484
1526
  window.onload = function () {
1485
1527
  prettyPrint();
1486
1528
  };
1487
1529
  </script>
1488
- <script src="../../../sorter.js"></script>
1489
- <script src="../../../block-navigation.js"></script>
1530
+ <script src="../../../../sorter.js"></script>
1531
+ <script src="../../../../block-navigation.js"></script>
1490
1532
  </body>
1491
1533
  </html>
1492
1534