@budibase/server 2.1.32-alpha.5 → 2.1.32-alpha.7

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 (583) hide show
  1. package/builder/assets/{index.192baaa3.js → index.e0fdcf54.js} +184 -184
  2. package/builder/index.html +1 -1
  3. package/coverage/clover.xml +3112 -3177
  4. package/coverage/coverage-final.json +105 -106
  5. package/coverage/lcov-report/index.html +145 -145
  6. package/coverage/lcov-report/src/api/controllers/analytics.ts.html +1 -1
  7. package/coverage/lcov-report/src/api/controllers/{apikeys.js.html → apikeys.ts.html} +19 -19
  8. package/coverage/lcov-report/src/api/controllers/application.ts.html +1 -1
  9. package/coverage/lcov-report/src/api/controllers/auth.ts.html +3 -3
  10. package/coverage/lcov-report/src/api/controllers/{automation.js.html → automation.ts.html} +68 -68
  11. package/coverage/lcov-report/src/api/controllers/backup.ts.html +1 -1
  12. package/coverage/lcov-report/src/api/controllers/{cloud.js.html → cloud.ts.html} +40 -40
  13. package/coverage/lcov-report/src/api/controllers/component.ts.html +6 -3
  14. package/coverage/lcov-report/src/api/controllers/{datasource.js.html → datasource.ts.html} +100 -79
  15. package/coverage/lcov-report/src/api/controllers/deploy/{Deployment.js.html → Deployment.ts.html} +30 -21
  16. package/coverage/lcov-report/src/api/controllers/deploy/index.html +6 -6
  17. package/coverage/lcov-report/src/api/controllers/deploy/index.ts.html +1 -1
  18. package/coverage/lcov-report/src/api/controllers/dev.ts.html +1 -1
  19. package/coverage/lcov-report/src/api/controllers/index.html +108 -108
  20. package/coverage/lcov-report/src/api/controllers/integration.js.html +1 -1
  21. package/coverage/lcov-report/src/api/controllers/{layout.js.html → layout.ts.html} +19 -19
  22. package/coverage/lcov-report/src/api/controllers/{metadata.js.html → metadata.ts.html} +19 -16
  23. package/coverage/lcov-report/src/api/controllers/migrations.js.html +1 -1
  24. package/coverage/lcov-report/src/api/controllers/{permission.js.html → permission.ts.html} +73 -64
  25. package/coverage/lcov-report/src/api/controllers/plugin/file.ts.html +1 -1
  26. package/coverage/lcov-report/src/api/controllers/plugin/github.ts.html +1 -1
  27. package/coverage/lcov-report/src/api/controllers/plugin/index.html +11 -11
  28. package/coverage/lcov-report/src/api/controllers/plugin/index.ts.html +10 -13
  29. package/coverage/lcov-report/src/api/controllers/plugin/npm.ts.html +1 -1
  30. package/coverage/lcov-report/src/api/controllers/plugin/uploaders.ts.html +1 -1
  31. package/coverage/lcov-report/src/api/controllers/plugin/url.ts.html +1 -1
  32. package/coverage/lcov-report/src/api/controllers/plugin/utils.ts.html +1 -1
  33. package/coverage/lcov-report/src/api/controllers/public/applications.ts.html +1 -1
  34. package/coverage/lcov-report/src/api/controllers/public/index.html +1 -1
  35. package/coverage/lcov-report/src/api/controllers/public/mapping/applications.ts.html +1 -1
  36. package/coverage/lcov-report/src/api/controllers/public/mapping/index.html +1 -1
  37. package/coverage/lcov-report/src/api/controllers/public/mapping/index.ts.html +1 -1
  38. package/coverage/lcov-report/src/api/controllers/public/mapping/queries.ts.html +1 -1
  39. package/coverage/lcov-report/src/api/controllers/public/mapping/rows.ts.html +1 -1
  40. package/coverage/lcov-report/src/api/controllers/public/mapping/tables.ts.html +1 -1
  41. package/coverage/lcov-report/src/api/controllers/public/mapping/users.ts.html +1 -1
  42. package/coverage/lcov-report/src/api/controllers/public/queries.ts.html +1 -1
  43. package/coverage/lcov-report/src/api/controllers/public/rows.ts.html +1 -1
  44. package/coverage/lcov-report/src/api/controllers/public/tables.ts.html +3 -3
  45. package/coverage/lcov-report/src/api/controllers/public/users.ts.html +1 -1
  46. package/coverage/lcov-report/src/api/controllers/public/utils.ts.html +1 -1
  47. package/coverage/lcov-report/src/api/controllers/query/import/index.html +11 -11
  48. package/coverage/lcov-report/src/api/controllers/query/import/index.ts.html +8 -11
  49. package/coverage/lcov-report/src/api/controllers/query/import/sources/base/index.html +1 -1
  50. package/coverage/lcov-report/src/api/controllers/query/import/sources/base/index.ts.html +1 -1
  51. package/coverage/lcov-report/src/api/controllers/query/import/sources/base/openapi.ts.html +1 -1
  52. package/coverage/lcov-report/src/api/controllers/query/import/sources/curl.ts.html +1 -1
  53. package/coverage/lcov-report/src/api/controllers/query/import/sources/index.html +1 -1
  54. package/coverage/lcov-report/src/api/controllers/query/import/sources/openapi2.ts.html +1 -1
  55. package/coverage/lcov-report/src/api/controllers/query/import/sources/openapi3.ts.html +1 -1
  56. package/coverage/lcov-report/src/api/controllers/query/index.html +2 -2
  57. package/coverage/lcov-report/src/api/controllers/query/index.ts.html +1 -1
  58. package/coverage/lcov-report/src/api/controllers/query/{validation.js.html → validation.ts.html} +10 -10
  59. package/coverage/lcov-report/src/api/controllers/{role.js.html → role.ts.html} +37 -49
  60. package/coverage/lcov-report/src/api/controllers/{routing.js.html → routing.ts.html} +58 -49
  61. package/coverage/lcov-report/src/api/controllers/row/ExternalRequest.ts.html +6 -18
  62. package/coverage/lcov-report/src/api/controllers/row/external.js.html +4 -4
  63. package/coverage/lcov-report/src/api/controllers/row/index.html +35 -35
  64. package/coverage/lcov-report/src/api/controllers/row/index.ts.html +1 -1
  65. package/coverage/lcov-report/src/api/controllers/row/internal.js.html +17 -20
  66. package/coverage/lcov-report/src/api/controllers/row/{internalSearch.js.html → internalSearch.ts.html} +175 -103
  67. package/coverage/lcov-report/src/api/controllers/row/{staticFormula.js.html → staticFormula.ts.html} +62 -47
  68. package/coverage/lcov-report/src/api/controllers/row/{utils.js.html → utils.ts.html} +57 -36
  69. package/coverage/lcov-report/src/api/controllers/screen.ts.html +29 -17
  70. package/coverage/lcov-report/src/api/controllers/{script.js.html → script.ts.html} +10 -7
  71. package/coverage/lcov-report/src/api/controllers/static/index.html +10 -10
  72. package/coverage/lcov-report/src/api/controllers/static/index.ts.html +15 -27
  73. package/coverage/lcov-report/src/api/controllers/table/{bulkFormula.js.html → bulkFormula.ts.html} +89 -47
  74. package/coverage/lcov-report/src/api/controllers/table/{external.js.html → external.ts.html} +192 -87
  75. package/coverage/lcov-report/src/api/controllers/table/index.html +39 -39
  76. package/coverage/lcov-report/src/api/controllers/table/{index.js.html → index.ts.html} +28 -28
  77. package/coverage/lcov-report/src/api/controllers/table/internal.ts.html +3 -6
  78. package/coverage/lcov-report/src/api/controllers/table/utils.ts.html +18 -18
  79. package/coverage/lcov-report/src/api/controllers/{templates.js.html → templates.ts.html} +27 -18
  80. package/coverage/lcov-report/src/api/controllers/{user.js.html → user.ts.html} +72 -78
  81. package/coverage/lcov-report/src/api/controllers/view/{exporters.js.html → exporters.ts.html} +13 -7
  82. package/coverage/lcov-report/src/api/controllers/view/index.html +21 -21
  83. package/coverage/lcov-report/src/api/controllers/view/{index.js.html → index.ts.html} +68 -41
  84. package/coverage/lcov-report/src/api/controllers/view/{utils.js.html → utils.ts.html} +54 -36
  85. package/coverage/lcov-report/src/api/controllers/view/viewBuilder.js.html +1 -1
  86. package/coverage/lcov-report/src/api/controllers/webhook.ts.html +1 -1
  87. package/coverage/lcov-report/src/api/index.html +14 -14
  88. package/coverage/lcov-report/src/api/{index.js.html → index.ts.html} +28 -49
  89. package/coverage/lcov-report/src/api/routes/{analytics.js.html → analytics.ts.html} +7 -7
  90. package/coverage/lcov-report/src/api/routes/{apikeys.js.html → apikeys.ts.html} +11 -11
  91. package/coverage/lcov-report/src/api/routes/application.ts.html +35 -11
  92. package/coverage/lcov-report/src/api/routes/auth.ts.html +3 -3
  93. package/coverage/lcov-report/src/api/routes/{automation.js.html → automation.ts.html} +41 -35
  94. package/coverage/lcov-report/src/api/routes/backup.ts.html +18 -6
  95. package/coverage/lcov-report/src/api/routes/{deploy.js.html → cloud.ts.html} +18 -15
  96. package/coverage/lcov-report/src/api/routes/{component.js.html → component.ts.html} +10 -10
  97. package/coverage/lcov-report/src/api/routes/{datasource.js.html → datasource.ts.html} +53 -26
  98. package/coverage/lcov-report/src/api/routes/deploy.ts.html +148 -0
  99. package/coverage/lcov-report/src/api/routes/{dev.js.html → dev.ts.html} +54 -18
  100. package/coverage/lcov-report/src/api/routes/index.html +41 -41
  101. package/coverage/lcov-report/src/api/routes/index.ts.html +3 -3
  102. package/coverage/lcov-report/src/api/routes/integration.ts.html +133 -0
  103. package/coverage/lcov-report/src/api/routes/{layout.js.html → layout.ts.html} +11 -11
  104. package/coverage/lcov-report/src/api/routes/{metadata.js.html → metadata.ts.html} +17 -17
  105. package/coverage/lcov-report/src/api/routes/{migrations.js.html → migrations.ts.html} +12 -12
  106. package/coverage/lcov-report/src/api/routes/{permission.js.html → permission.ts.html} +41 -17
  107. package/coverage/lcov-report/src/api/routes/plugin.ts.html +32 -8
  108. package/coverage/lcov-report/src/api/routes/public/applications.ts.html +1 -1
  109. package/coverage/lcov-report/src/api/routes/public/index.html +1 -1
  110. package/coverage/lcov-report/src/api/routes/public/index.ts.html +1 -1
  111. package/coverage/lcov-report/src/api/routes/public/middleware/index.html +1 -1
  112. package/coverage/lcov-report/src/api/routes/public/middleware/mapper.ts.html +1 -1
  113. package/coverage/lcov-report/src/api/routes/public/queries.ts.html +1 -1
  114. package/coverage/lcov-report/src/api/routes/public/rows.ts.html +1 -1
  115. package/coverage/lcov-report/src/api/routes/public/tables.ts.html +1 -1
  116. package/coverage/lcov-report/src/api/routes/public/users.ts.html +1 -1
  117. package/coverage/lcov-report/src/api/routes/public/utils/Endpoint.ts.html +1 -1
  118. package/coverage/lcov-report/src/api/routes/public/utils/index.html +1 -1
  119. package/coverage/lcov-report/src/api/routes/{query.js.html → query.ts.html} +24 -33
  120. package/coverage/lcov-report/src/{utilities/routing/index.js.html → api/routes/role.ts.html} +32 -35
  121. package/coverage/lcov-report/src/api/routes/{routing.js.html → routing.ts.html} +10 -10
  122. package/coverage/lcov-report/src/api/routes/row.ts.html +8 -14
  123. package/coverage/lcov-report/src/api/routes/{screen.js.html → screen.ts.html} +29 -14
  124. package/coverage/lcov-report/src/api/routes/{script.js.html → script.ts.html} +10 -10
  125. package/coverage/lcov-report/src/api/routes/static.ts.html +9 -18
  126. package/coverage/lcov-report/src/api/routes/{table.js.html → table.ts.html} +16 -25
  127. package/coverage/lcov-report/src/api/routes/{templates.js.html → templates.ts.html} +11 -11
  128. package/coverage/lcov-report/src/api/routes/tests/utilities/TestFunctions.ts.html +12 -18
  129. package/coverage/lcov-report/src/api/routes/tests/utilities/index.html +10 -10
  130. package/coverage/lcov-report/src/api/routes/tests/utilities/index.js.html +1 -1
  131. package/coverage/lcov-report/src/api/routes/{user.js.html → user.ts.html} +14 -20
  132. package/coverage/lcov-report/src/api/routes/utils/index.html +6 -6
  133. package/coverage/lcov-report/src/api/routes/utils/{validators.js.html → validators.ts.html} +39 -51
  134. package/coverage/lcov-report/src/api/routes/{view.js.html → view.ts.html} +33 -24
  135. package/coverage/lcov-report/src/api/routes/webhook.ts.html +3 -3
  136. package/coverage/lcov-report/src/app.ts.html +9 -12
  137. package/coverage/lcov-report/src/automations/actions.js.html +1 -1
  138. package/coverage/lcov-report/src/automations/automationUtils.js.html +1 -1
  139. package/coverage/lcov-report/src/automations/bullboard.js.html +1 -1
  140. package/coverage/lcov-report/src/automations/index.html +10 -10
  141. package/coverage/lcov-report/src/automations/index.js.html +1 -1
  142. package/coverage/lcov-report/src/automations/logging/index.html +1 -1
  143. package/coverage/lcov-report/src/automations/logging/index.ts.html +1 -1
  144. package/coverage/lcov-report/src/automations/steps/bash.js.html +1 -1
  145. package/coverage/lcov-report/src/automations/steps/createRow.ts.html +1 -1
  146. package/coverage/lcov-report/src/automations/steps/delay.js.html +1 -1
  147. package/coverage/lcov-report/src/automations/steps/deleteRow.ts.html +1 -1
  148. package/coverage/lcov-report/src/automations/steps/discord.js.html +1 -1
  149. package/coverage/lcov-report/src/automations/steps/executeQuery.js.html +1 -1
  150. package/coverage/lcov-report/src/automations/steps/executeScript.js.html +1 -1
  151. package/coverage/lcov-report/src/automations/steps/filter.js.html +1 -1
  152. package/coverage/lcov-report/src/automations/steps/index.html +1 -1
  153. package/coverage/lcov-report/src/automations/steps/integromat.js.html +1 -1
  154. package/coverage/lcov-report/src/automations/steps/loop.js.html +1 -1
  155. package/coverage/lcov-report/src/automations/steps/outgoingWebhook.js.html +1 -1
  156. package/coverage/lcov-report/src/automations/steps/queryRows.js.html +1 -1
  157. package/coverage/lcov-report/src/automations/steps/sendSmtpEmail.js.html +1 -1
  158. package/coverage/lcov-report/src/automations/steps/serverLog.js.html +1 -1
  159. package/coverage/lcov-report/src/automations/steps/slack.js.html +1 -1
  160. package/coverage/lcov-report/src/automations/steps/updateRow.js.html +1 -1
  161. package/coverage/lcov-report/src/automations/steps/utils.js.html +1 -1
  162. package/coverage/lcov-report/src/automations/steps/zapier.js.html +1 -1
  163. package/coverage/lcov-report/src/automations/tests/utilities/index.html +1 -1
  164. package/coverage/lcov-report/src/automations/tests/utilities/index.js.html +1 -1
  165. package/coverage/lcov-report/src/automations/triggerInfo/app.js.html +1 -1
  166. package/coverage/lcov-report/src/automations/triggerInfo/cron.js.html +1 -1
  167. package/coverage/lcov-report/src/automations/triggerInfo/index.html +1 -1
  168. package/coverage/lcov-report/src/automations/triggerInfo/index.js.html +1 -1
  169. package/coverage/lcov-report/src/automations/triggerInfo/rowDeleted.js.html +1 -1
  170. package/coverage/lcov-report/src/automations/triggerInfo/rowSaved.js.html +1 -1
  171. package/coverage/lcov-report/src/automations/triggerInfo/rowUpdated.js.html +1 -1
  172. package/coverage/lcov-report/src/automations/triggerInfo/webhook.js.html +1 -1
  173. package/coverage/lcov-report/src/automations/triggers.js.html +11 -14
  174. package/coverage/lcov-report/src/automations/utils.ts.html +1 -1
  175. package/coverage/lcov-report/src/constants/index.html +5 -5
  176. package/coverage/lcov-report/src/constants/index.js.html +7 -13
  177. package/coverage/lcov-report/src/constants/layouts.js.html +1 -1
  178. package/coverage/lcov-report/src/constants/screens.js.html +3 -3
  179. package/coverage/lcov-report/src/db/defaultData/datasource_bb_default.js.html +1 -1
  180. package/coverage/lcov-report/src/db/defaultData/employeeImport.js.html +1 -1
  181. package/coverage/lcov-report/src/db/defaultData/expensesImport.js.html +1 -1
  182. package/coverage/lcov-report/src/db/defaultData/index.html +1 -1
  183. package/coverage/lcov-report/src/db/defaultData/inventoryImport.js.html +1 -1
  184. package/coverage/lcov-report/src/db/defaultData/jobsImport.js.html +1 -1
  185. package/coverage/lcov-report/src/db/dynamoClient.js.html +1 -1
  186. package/coverage/lcov-report/src/db/inMemoryView.js.html +4 -4
  187. package/coverage/lcov-report/src/db/index.html +1 -1
  188. package/coverage/lcov-report/src/db/index.js.html +1 -1
  189. package/coverage/lcov-report/src/db/linkedRows/LinkController.js.html +3 -3
  190. package/coverage/lcov-report/src/db/linkedRows/LinkDocument.js.html +1 -1
  191. package/coverage/lcov-report/src/db/linkedRows/index.html +1 -1
  192. package/coverage/lcov-report/src/db/linkedRows/index.js.html +3 -3
  193. package/coverage/lcov-report/src/db/linkedRows/linkUtils.js.html +4 -4
  194. package/coverage/lcov-report/src/db/newid.js.html +1 -1
  195. package/coverage/lcov-report/src/db/utils.ts.html +2 -2
  196. package/coverage/lcov-report/src/definitions/automations.ts.html +1 -1
  197. package/coverage/lcov-report/src/definitions/datasource.ts.html +1 -1
  198. package/coverage/lcov-report/src/definitions/index.html +1 -1
  199. package/coverage/lcov-report/src/environment.js.html +1 -1
  200. package/coverage/lcov-report/src/events/AutomationEmitter.js.html +1 -1
  201. package/coverage/lcov-report/src/events/index.html +1 -1
  202. package/coverage/lcov-report/src/events/index.js.html +1 -1
  203. package/coverage/lcov-report/src/events/utils.js.html +1 -1
  204. package/coverage/lcov-report/src/index.html +17 -32
  205. package/coverage/lcov-report/src/index.ts.html +1 -1
  206. package/coverage/lcov-report/src/integrations/airtable.ts.html +1 -1
  207. package/coverage/lcov-report/src/integrations/arangodb.ts.html +1 -1
  208. package/coverage/lcov-report/src/integrations/base/index.html +1 -1
  209. package/coverage/lcov-report/src/integrations/base/query.ts.html +1 -1
  210. package/coverage/lcov-report/src/integrations/base/sql.ts.html +2 -2
  211. package/coverage/lcov-report/src/integrations/base/sqlTable.ts.html +2 -2
  212. package/coverage/lcov-report/src/integrations/base/utils.ts.html +1 -1
  213. package/coverage/lcov-report/src/integrations/couchdb.ts.html +1 -1
  214. package/coverage/lcov-report/src/integrations/dynamodb.ts.html +1 -1
  215. package/coverage/lcov-report/src/integrations/elasticsearch.ts.html +1 -1
  216. package/coverage/lcov-report/src/integrations/firebase.ts.html +1 -1
  217. package/coverage/lcov-report/src/integrations/googlesheets.ts.html +1 -1
  218. package/coverage/lcov-report/src/integrations/index.html +4 -4
  219. package/coverage/lcov-report/src/integrations/index.ts.html +58 -46
  220. package/coverage/lcov-report/src/integrations/microsoftSqlServer.ts.html +1 -1
  221. package/coverage/lcov-report/src/integrations/mongodb.ts.html +1 -1
  222. package/coverage/lcov-report/src/integrations/mysql.ts.html +1 -1
  223. package/coverage/lcov-report/src/integrations/oracle.ts.html +1 -1
  224. package/coverage/lcov-report/src/integrations/postgres.ts.html +1 -1
  225. package/coverage/lcov-report/src/integrations/queries/index.html +1 -1
  226. package/coverage/lcov-report/src/integrations/queries/sql.ts.html +1 -1
  227. package/coverage/lcov-report/src/integrations/redis.ts.html +1 -1
  228. package/coverage/lcov-report/src/integrations/rest.ts.html +1 -1
  229. package/coverage/lcov-report/src/integrations/s3.ts.html +1 -1
  230. package/coverage/lcov-report/src/integrations/snowflake.ts.html +1 -1
  231. package/coverage/lcov-report/src/integrations/tests/TestConfiguration.js.html +1 -1
  232. package/coverage/lcov-report/src/integrations/tests/index.html +1 -1
  233. package/coverage/lcov-report/src/integrations/utils.ts.html +1 -1
  234. package/coverage/lcov-report/src/middleware/appInfo.ts.html +1 -1
  235. package/coverage/lcov-report/src/middleware/authorized.ts.html +30 -51
  236. package/coverage/lcov-report/src/middleware/builder.ts.html +1 -1
  237. package/coverage/lcov-report/src/middleware/currentapp.ts.html +1 -1
  238. package/coverage/lcov-report/src/middleware/index.html +10 -10
  239. package/coverage/lcov-report/src/middleware/joi-validator.ts.html +1 -1
  240. package/coverage/lcov-report/src/middleware/publicApi.ts.html +1 -1
  241. package/coverage/lcov-report/src/middleware/resourceId.ts.html +1 -1
  242. package/coverage/lcov-report/src/middleware/selfhost.ts.html +1 -1
  243. package/coverage/lcov-report/src/middleware/utils.ts.html +1 -1
  244. package/coverage/lcov-report/src/migrations/functions/appUrls.ts.html +3 -3
  245. package/coverage/lcov-report/src/migrations/functions/backfill/app/automations.ts.html +1 -1
  246. package/coverage/lcov-report/src/migrations/functions/backfill/app/datasources.ts.html +1 -1
  247. package/coverage/lcov-report/src/migrations/functions/backfill/app/index.html +1 -1
  248. package/coverage/lcov-report/src/migrations/functions/backfill/app/layouts.ts.html +1 -1
  249. package/coverage/lcov-report/src/migrations/functions/backfill/app/queries.ts.html +1 -1
  250. package/coverage/lcov-report/src/migrations/functions/backfill/app/roles.ts.html +1 -1
  251. package/coverage/lcov-report/src/migrations/functions/backfill/app/screens.ts.html +1 -1
  252. package/coverage/lcov-report/src/migrations/functions/backfill/app/tables.ts.html +1 -1
  253. package/coverage/lcov-report/src/migrations/functions/backfill/app.ts.html +1 -1
  254. package/coverage/lcov-report/src/migrations/functions/backfill/global/configs.ts.html +1 -1
  255. package/coverage/lcov-report/src/migrations/functions/backfill/global/index.html +1 -1
  256. package/coverage/lcov-report/src/migrations/functions/backfill/global/quotas.ts.html +1 -1
  257. package/coverage/lcov-report/src/migrations/functions/backfill/global/users.ts.html +1 -1
  258. package/coverage/lcov-report/src/migrations/functions/backfill/global.ts.html +1 -1
  259. package/coverage/lcov-report/src/migrations/functions/backfill/index.html +1 -1
  260. package/coverage/lcov-report/src/migrations/functions/backfill/index.ts.html +1 -1
  261. package/coverage/lcov-report/src/migrations/functions/backfill/installation.ts.html +1 -1
  262. package/coverage/lcov-report/src/migrations/functions/index.html +1 -1
  263. package/coverage/lcov-report/src/migrations/functions/syncQuotas.ts.html +1 -1
  264. package/coverage/lcov-report/src/migrations/functions/usageQuotas/index.html +9 -9
  265. package/coverage/lcov-report/src/migrations/functions/usageQuotas/index.ts.html +1 -1
  266. package/coverage/lcov-report/src/migrations/functions/usageQuotas/syncApps.ts.html +7 -10
  267. package/coverage/lcov-report/src/migrations/functions/usageQuotas/syncPlugins.ts.html +1 -1
  268. package/coverage/lcov-report/src/migrations/functions/usageQuotas/syncRows.ts.html +7 -10
  269. package/coverage/lcov-report/src/migrations/functions/userEmailViewCasing.ts.html +4 -4
  270. package/coverage/lcov-report/src/migrations/index.html +1 -1
  271. package/coverage/lcov-report/src/migrations/index.ts.html +1 -1
  272. package/coverage/lcov-report/src/migrations/tests/helpers.ts.html +1 -1
  273. package/coverage/lcov-report/src/migrations/tests/index.html +1 -1
  274. package/coverage/lcov-report/src/migrations/tests/structures.ts.html +1 -1
  275. package/coverage/lcov-report/src/sdk/app/automations/index.html +1 -1
  276. package/coverage/lcov-report/src/sdk/app/automations/index.ts.html +1 -1
  277. package/coverage/lcov-report/src/sdk/app/automations/webhook.ts.html +1 -1
  278. package/coverage/lcov-report/src/sdk/app/backups/constants.ts.html +1 -1
  279. package/coverage/lcov-report/src/sdk/app/backups/exports.ts.html +16 -10
  280. package/coverage/lcov-report/src/sdk/app/backups/imports.ts.html +9 -21
  281. package/coverage/lcov-report/src/sdk/app/backups/index.html +16 -16
  282. package/coverage/lcov-report/src/sdk/app/backups/index.ts.html +1 -1
  283. package/coverage/lcov-report/src/sdk/app/backups/statistics.ts.html +1 -1
  284. package/coverage/lcov-report/src/sdk/app/tables/index.html +1 -1
  285. package/coverage/lcov-report/src/sdk/app/tables/index.ts.html +1 -1
  286. package/coverage/lcov-report/src/sdk/index.html +1 -1
  287. package/coverage/lcov-report/src/sdk/index.ts.html +1 -1
  288. package/coverage/lcov-report/src/startup.ts.html +3 -3
  289. package/coverage/lcov-report/src/tests/utilities/TestConfiguration.js.html +61 -49
  290. package/coverage/lcov-report/src/tests/utilities/controllers.js.html +1 -1
  291. package/coverage/lcov-report/src/tests/utilities/index.html +15 -15
  292. package/coverage/lcov-report/src/tests/utilities/index.js.html +1 -1
  293. package/coverage/lcov-report/src/tests/utilities/structures.js.html +9 -12
  294. package/coverage/lcov-report/src/threads/automation.ts.html +20 -23
  295. package/coverage/lcov-report/src/threads/index.html +24 -24
  296. package/coverage/lcov-report/src/threads/index.ts.html +1 -1
  297. package/coverage/lcov-report/src/threads/query.ts.html +18 -33
  298. package/coverage/lcov-report/src/threads/utils.ts.html +10 -13
  299. package/coverage/lcov-report/src/utilities/{budibaseDir.js.html → budibaseDir.ts.html} +5 -5
  300. package/coverage/lcov-report/src/utilities/centralPath.js.html +1 -1
  301. package/coverage/lcov-report/src/utilities/csvParser.js.html +1 -1
  302. package/coverage/lcov-report/src/utilities/fileSystem/clientLibrary.js.html +13 -13
  303. package/coverage/lcov-report/src/utilities/fileSystem/index.html +5 -20
  304. package/coverage/lcov-report/src/utilities/fileSystem/index.js.html +16 -16
  305. package/coverage/lcov-report/src/utilities/fileSystem/processor.js.html +1 -1
  306. package/coverage/lcov-report/src/utilities/global.ts.html +1 -1
  307. package/coverage/lcov-report/src/utilities/index.html +44 -44
  308. package/coverage/lcov-report/src/utilities/{index.js.html → index.ts.html} +68 -44
  309. package/coverage/lcov-report/src/utilities/plugins.js.html +1 -1
  310. package/coverage/lcov-report/src/utilities/queue/inMemoryQueue.js.html +1 -1
  311. package/coverage/lcov-report/src/utilities/queue/index.html +1 -1
  312. package/coverage/lcov-report/src/utilities/{redis.js.html → redis.ts.html} +36 -33
  313. package/coverage/lcov-report/src/utilities/routing/index.html +6 -6
  314. package/coverage/lcov-report/src/utilities/routing/index.ts.html +181 -0
  315. package/coverage/lcov-report/src/utilities/rowProcessor/index.html +38 -23
  316. package/coverage/lcov-report/src/utilities/rowProcessor/{index.js.html → index.ts.html} +106 -337
  317. package/coverage/lcov-report/src/utilities/rowProcessor/map.js.html +370 -0
  318. package/coverage/lcov-report/src/utilities/rowProcessor/{utils.js.html → utils.ts.html} +43 -31
  319. package/coverage/lcov-report/src/utilities/scriptRunner.js.html +1 -1
  320. package/coverage/lcov-report/src/utilities/{security.js.html → security.ts.html} +49 -67
  321. package/coverage/lcov-report/src/utilities/statusCodes.js.html +1 -1
  322. package/coverage/lcov-report/src/utilities/usageQuota/index.html +18 -18
  323. package/coverage/lcov-report/src/utilities/usageQuota/{rows.js.html → rows.ts.html} +27 -39
  324. package/coverage/lcov-report/src/utilities/usageQuota/usageQuoteReset.js.html +1 -1
  325. package/coverage/lcov-report/src/utilities/{users.js.html → users.ts.html} +22 -28
  326. package/coverage/lcov-report/src/utilities/{workerRequests.js.html → workerRequests.ts.html} +69 -54
  327. package/coverage/lcov-report/src/watch.ts.html +8 -11
  328. package/coverage/lcov-report/src/websocket.ts.html +1 -1
  329. package/coverage/lcov.info +5519 -5768
  330. package/dist/api/controllers/apikeys.js +12 -9
  331. package/dist/api/controllers/automation.js +104 -84
  332. package/dist/api/controllers/cloud.js +84 -71
  333. package/dist/api/controllers/component.js +4 -2
  334. package/dist/api/controllers/datasource.js +125 -111
  335. package/dist/api/controllers/deploy/Deployment.js +10 -6
  336. package/dist/api/controllers/layout.js +18 -15
  337. package/dist/api/controllers/metadata.js +51 -37
  338. package/dist/api/controllers/permission.js +52 -43
  339. package/dist/api/controllers/plugin/index.js +6 -7
  340. package/dist/api/controllers/public/tables.js +29 -9
  341. package/dist/api/controllers/query/import/index.js +1 -2
  342. package/dist/api/controllers/query/validation.js +41 -33
  343. package/dist/api/controllers/role.js +29 -27
  344. package/dist/api/controllers/routing.js +71 -58
  345. package/dist/api/controllers/row/ExternalRequest.js +6 -7
  346. package/dist/api/controllers/row/external.js +3 -3
  347. package/dist/api/controllers/row/internal.js +11 -12
  348. package/dist/api/controllers/row/internalSearch.js +95 -80
  349. package/dist/api/controllers/row/staticFormula.js +85 -75
  350. package/dist/api/controllers/row/utils.js +118 -84
  351. package/dist/api/controllers/screen.js +81 -66
  352. package/dist/api/controllers/script.js +13 -6
  353. package/dist/api/controllers/static/index.js +9 -11
  354. package/dist/api/controllers/table/bulkFormula.js +47 -35
  355. package/dist/api/controllers/table/external.js +67 -54
  356. package/dist/api/controllers/table/index.js +66 -33
  357. package/dist/api/controllers/table/internal.js +1 -2
  358. package/dist/api/controllers/table/utils.js +8 -9
  359. package/dist/api/controllers/templates.js +17 -10
  360. package/dist/api/controllers/user.js +82 -70
  361. package/dist/api/controllers/view/exporters.js +8 -4
  362. package/dist/api/controllers/view/index.js +201 -153
  363. package/dist/api/controllers/view/utils.js +151 -121
  364. package/dist/api/index.js +38 -34
  365. package/dist/api/routes/analytics.js +29 -3
  366. package/dist/api/routes/apikeys.js +33 -7
  367. package/dist/api/routes/application.js +8 -9
  368. package/dist/api/routes/auth.js +1 -2
  369. package/dist/api/routes/automation.js +46 -20
  370. package/dist/api/routes/backup.js +3 -4
  371. package/dist/api/routes/cloud.js +32 -6
  372. package/dist/api/routes/component.js +32 -6
  373. package/dist/api/routes/datasource.js +39 -13
  374. package/dist/api/routes/deploy.js +34 -8
  375. package/dist/api/routes/dev.js +36 -10
  376. package/dist/api/routes/integration.js +10 -7
  377. package/dist/api/routes/layout.js +33 -7
  378. package/dist/api/routes/metadata.js +36 -10
  379. package/dist/api/routes/migrations.js +32 -6
  380. package/dist/api/routes/permission.js +38 -12
  381. package/dist/api/routes/plugin.js +5 -5
  382. package/dist/api/routes/query.js +42 -15
  383. package/dist/api/routes/role.js +36 -10
  384. package/dist/api/routes/routing.js +32 -6
  385. package/dist/api/routes/row.js +2 -1
  386. package/dist/api/routes/screen.js +35 -9
  387. package/dist/api/routes/script.js +32 -6
  388. package/dist/api/routes/static.js +9 -9
  389. package/dist/api/routes/table.js +40 -13
  390. package/dist/api/routes/templates.js +33 -7
  391. package/dist/api/routes/tests/utilities/TestFunctions.js +6 -8
  392. package/dist/api/routes/user.js +40 -13
  393. package/dist/api/routes/utils/validators.js +142 -126
  394. package/dist/api/routes/view.js +38 -12
  395. package/dist/api/routes/webhook.js +1 -2
  396. package/dist/app.js +3 -4
  397. package/dist/automations/triggers.js +5 -6
  398. package/dist/constants/index.js +3 -5
  399. package/dist/constants/screens.js +2 -2
  400. package/dist/db/inMemoryView.js +3 -3
  401. package/dist/db/linkedRows/LinkController.js +2 -2
  402. package/dist/db/linkedRows/index.js +2 -2
  403. package/dist/db/linkedRows/linkUtils.js +3 -3
  404. package/dist/db/views/staticViews.js +4 -4
  405. package/dist/integrations/index.js +15 -6
  406. package/dist/middleware/authorized.js +22 -21
  407. package/dist/migrations/functions/appUrls.js +2 -2
  408. package/dist/migrations/functions/usageQuotas/syncApps.js +3 -4
  409. package/dist/migrations/functions/usageQuotas/syncRows.js +3 -4
  410. package/dist/migrations/functions/userEmailViewCasing.js +3 -3
  411. package/dist/package.json +6 -6
  412. package/dist/sdk/app/backups/exports.js +1 -2
  413. package/dist/sdk/app/backups/imports.js +2 -3
  414. package/dist/startup.js +4 -4
  415. package/dist/tests/utilities/TestConfiguration.js +27 -35
  416. package/dist/tests/utilities/structures.js +3 -4
  417. package/dist/threads/automation.js +15 -16
  418. package/dist/threads/query.js +17 -19
  419. package/dist/threads/utils.js +11 -9
  420. package/dist/tsconfig.build.tsbuildinfo +1 -1
  421. package/dist/utilities/budibaseDir.js +4 -2
  422. package/dist/utilities/fileSystem/clientLibrary.js +12 -12
  423. package/dist/utilities/fileSystem/index.js +3 -3
  424. package/dist/utilities/index.js +102 -75
  425. package/dist/utilities/redis.js +100 -65
  426. package/dist/utilities/routing/index.js +27 -23
  427. package/dist/utilities/rowProcessor/index.js +124 -191
  428. package/dist/utilities/rowProcessor/map.js +96 -0
  429. package/dist/utilities/rowProcessor/utils.js +35 -26
  430. package/dist/utilities/security.js +39 -35
  431. package/dist/utilities/usageQuota/rows.js +56 -49
  432. package/dist/utilities/users.js +31 -28
  433. package/dist/utilities/workerRequests.js +115 -82
  434. package/dist/watch.js +1 -2
  435. package/package.json +7 -7
  436. package/scripts/exportAppTemplate.js +2 -2
  437. package/src/api/controllers/{apikeys.js → apikeys.ts} +10 -10
  438. package/src/api/controllers/auth.ts +2 -2
  439. package/src/api/controllers/{automation.js → automation.ts} +48 -48
  440. package/src/api/controllers/{cloud.js → cloud.ts} +24 -24
  441. package/src/api/controllers/component.ts +2 -1
  442. package/src/api/controllers/{datasource.js → datasource.ts} +55 -48
  443. package/src/api/controllers/deploy/{Deployment.js → Deployment.ts} +13 -10
  444. package/src/api/controllers/{layout.js → layout.ts} +8 -8
  445. package/src/api/controllers/{metadata.js → metadata.ts} +11 -10
  446. package/src/api/controllers/{permission.js → permission.ts} +49 -46
  447. package/src/api/controllers/plugin/index.ts +4 -5
  448. package/src/api/controllers/public/tables.ts +2 -2
  449. package/src/api/controllers/query/import/index.ts +2 -3
  450. package/src/api/controllers/query/{validation.js → validation.ts} +7 -7
  451. package/src/api/controllers/{role.js → role.ts} +21 -25
  452. package/src/api/controllers/{routing.js → routing.ts} +37 -34
  453. package/src/api/controllers/row/ExternalRequest.ts +4 -8
  454. package/src/api/controllers/row/external.js +3 -3
  455. package/src/api/controllers/row/internal.js +11 -12
  456. package/src/api/controllers/row/{internalSearch.js → internalSearch.ts} +92 -68
  457. package/src/api/controllers/row/{staticFormula.js → staticFormula.ts} +28 -23
  458. package/src/api/controllers/row/{utils.js → utils.ts} +25 -18
  459. package/src/api/controllers/screen.ts +10 -6
  460. package/src/api/controllers/script.ts +12 -0
  461. package/src/api/controllers/static/index.ts +9 -13
  462. package/src/api/controllers/table/{bulkFormula.js → bulkFormula.ts} +39 -25
  463. package/src/api/controllers/table/{external.js → external.ts} +86 -51
  464. package/src/api/controllers/table/{index.js → index.ts} +17 -17
  465. package/src/api/controllers/table/internal.ts +1 -2
  466. package/src/api/controllers/table/utils.ts +10 -10
  467. package/src/api/controllers/{templates.js → templates.ts} +10 -7
  468. package/src/api/controllers/{user.js → user.ts} +47 -49
  469. package/src/api/controllers/view/{exporters.js → exporters.ts} +5 -3
  470. package/src/api/controllers/view/{index.js → index.ts} +36 -27
  471. package/src/api/controllers/view/{utils.js → utils.ts} +26 -20
  472. package/src/api/{index.js → index.ts} +15 -22
  473. package/src/api/routes/analytics.ts +9 -0
  474. package/src/api/routes/apikeys.ts +12 -0
  475. package/src/api/routes/application.ts +17 -9
  476. package/src/api/routes/auth.ts +2 -2
  477. package/src/api/routes/automation.ts +87 -0
  478. package/src/api/routes/backup.ts +8 -4
  479. package/src/api/routes/cloud.ts +18 -0
  480. package/src/api/routes/component.ts +14 -0
  481. package/src/api/routes/datasource.ts +60 -0
  482. package/src/api/routes/deploy.ts +21 -0
  483. package/src/api/routes/dev.ts +38 -0
  484. package/src/api/routes/integration.ts +16 -0
  485. package/src/api/routes/layout.ts +16 -0
  486. package/src/api/routes/{metadata.js → metadata.ts} +13 -13
  487. package/src/api/routes/migrations.ts +14 -0
  488. package/src/api/routes/permission.ts +41 -0
  489. package/src/api/routes/plugin.ts +14 -6
  490. package/src/api/routes/{query.js → query.ts} +17 -20
  491. package/src/api/routes/role.ts +24 -0
  492. package/src/api/routes/routing.ts +14 -0
  493. package/src/api/routes/row.ts +3 -5
  494. package/src/api/routes/screen.ts +23 -0
  495. package/src/api/routes/script.ts +10 -0
  496. package/src/api/routes/static.ts +4 -7
  497. package/src/api/routes/{table.js → table.ts} +9 -12
  498. package/src/api/routes/templates.ts +16 -0
  499. package/src/api/routes/tests/backup.spec.js +9 -1
  500. package/src/api/routes/tests/permissions.spec.js +2 -1
  501. package/src/api/routes/tests/role.spec.js +3 -5
  502. package/src/api/routes/tests/routing.spec.js +2 -1
  503. package/src/api/routes/tests/row.spec.js +3 -4
  504. package/src/api/routes/tests/user.spec.js +2 -1
  505. package/src/api/routes/tests/utilities/TestFunctions.ts +6 -8
  506. package/src/api/routes/{user.js → user.ts} +7 -9
  507. package/src/api/routes/utils/{validators.js → validators.ts} +33 -37
  508. package/src/api/routes/view.ts +34 -0
  509. package/src/api/routes/webhook.ts +2 -2
  510. package/src/app.ts +3 -4
  511. package/src/automations/triggers.js +5 -6
  512. package/src/constants/index.js +3 -5
  513. package/src/constants/screens.js +2 -2
  514. package/src/db/inMemoryView.js +3 -3
  515. package/src/db/linkedRows/LinkController.js +2 -2
  516. package/src/db/linkedRows/index.js +2 -2
  517. package/src/db/linkedRows/linkUtils.js +3 -3
  518. package/src/db/utils.ts +1 -1
  519. package/src/db/views/staticViews.js +4 -4
  520. package/src/integrations/base/sql.ts +1 -1
  521. package/src/integrations/base/sqlTable.ts +1 -1
  522. package/src/integrations/index.ts +45 -41
  523. package/src/middleware/authorized.ts +21 -28
  524. package/src/middleware/tests/authorized.spec.js +5 -6
  525. package/src/migrations/functions/appUrls.ts +2 -2
  526. package/src/migrations/functions/tests/appUrls.spec.js +4 -4
  527. package/src/migrations/functions/tests/userEmailViewCasing.spec.js +14 -9
  528. package/src/migrations/functions/usageQuotas/syncApps.ts +3 -4
  529. package/src/migrations/functions/usageQuotas/syncRows.ts +3 -4
  530. package/src/migrations/functions/usageQuotas/tests/syncRows.spec.ts +7 -7
  531. package/src/migrations/functions/userEmailViewCasing.ts +3 -3
  532. package/src/sdk/app/backups/exports.ts +5 -3
  533. package/src/sdk/app/backups/imports.ts +3 -7
  534. package/src/startup.ts +2 -2
  535. package/src/tests/utilities/TestConfiguration.js +39 -35
  536. package/src/tests/utilities/structures.js +3 -4
  537. package/src/threads/automation.ts +14 -15
  538. package/src/threads/query.ts +11 -16
  539. package/src/threads/utils.ts +4 -5
  540. package/src/utilities/budibaseDir.ts +3 -0
  541. package/src/utilities/fileSystem/clientLibrary.js +12 -12
  542. package/src/utilities/fileSystem/index.js +8 -8
  543. package/src/utilities/{index.js → index.ts} +40 -32
  544. package/src/utilities/{redis.js → redis.ts} +21 -20
  545. package/src/utilities/routing/index.ts +32 -0
  546. package/src/utilities/rowProcessor/{index.js → index.ts} +65 -142
  547. package/src/utilities/rowProcessor/map.js +95 -0
  548. package/src/utilities/rowProcessor/{utils.js → utils.ts} +19 -15
  549. package/src/utilities/security.ts +65 -0
  550. package/src/utilities/usageQuota/{rows.js → rows.ts} +14 -18
  551. package/src/utilities/{users.js → users.ts} +11 -13
  552. package/src/utilities/{workerRequests.js → workerRequests.ts} +43 -38
  553. package/src/watch.ts +2 -3
  554. package/coverage/lcov-report/src/api/routes/cloud.js.html +0 -127
  555. package/coverage/lcov-report/src/api/routes/integration.js.html +0 -121
  556. package/coverage/lcov-report/src/api/routes/role.js.html +0 -130
  557. package/coverage/lcov-report/src/module.d.ts.html +0 -127
  558. package/coverage/lcov-report/src/utilities/fileSystem/utilities.js.html +0 -193
  559. package/dist/utilities/fileSystem/utilities.js +0 -22
  560. package/src/api/controllers/script.js +0 -11
  561. package/src/api/routes/analytics.js +0 -9
  562. package/src/api/routes/apikeys.js +0 -12
  563. package/src/api/routes/automation.js +0 -85
  564. package/src/api/routes/cloud.js +0 -14
  565. package/src/api/routes/component.js +0 -14
  566. package/src/api/routes/datasource.js +0 -51
  567. package/src/api/routes/deploy.js +0 -17
  568. package/src/api/routes/dev.js +0 -26
  569. package/src/api/routes/integration.js +0 -12
  570. package/src/api/routes/layout.js +0 -16
  571. package/src/api/routes/migrations.js +0 -14
  572. package/src/api/routes/permission.js +0 -33
  573. package/src/api/routes/role.js +0 -15
  574. package/src/api/routes/routing.js +0 -14
  575. package/src/api/routes/screen.js +0 -18
  576. package/src/api/routes/script.js +0 -10
  577. package/src/api/routes/templates.js +0 -16
  578. package/src/api/routes/view.js +0 -31
  579. package/src/module.d.ts +0 -14
  580. package/src/utilities/budibaseDir.js +0 -3
  581. package/src/utilities/fileSystem/utilities.js +0 -36
  582. package/src/utilities/routing/index.js +0 -25
  583. package/src/utilities/security.js +0 -71
@@ -3,7 +3,7 @@
3
3
  <html lang="en">
4
4
 
5
5
  <head>
6
- <title>Code coverage report for src/api/controllers/row/staticFormula.js</title>
6
+ <title>Code coverage report for src/api/controllers/row/staticFormula.ts</title>
7
7
  <meta charset="utf-8" />
8
8
  <link rel="stylesheet" href="../../../../prettify.css" />
9
9
  <link rel="stylesheet" href="../../../../base.css" />
@@ -19,34 +19,34 @@
19
19
  <body>
20
20
  <div class='wrapper'>
21
21
  <div class='pad1'>
22
- <h1><a href="../../../../index.html">All files</a> / <a href="index.html">src/api/controllers/row</a> staticFormula.js</h1>
22
+ <h1><a href="../../../../index.html">All files</a> / <a href="index.html">src/api/controllers/row</a> staticFormula.ts</h1>
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">35.38% </span>
26
+ <span class="strong">36.36% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>23/65</span>
28
+ <span class='fraction'>24/66</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">16.12% </span>
33
+ <span class="strong">18.18% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>5/31</span>
35
+ <span class='fraction'>4/22</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">33.33% </span>
40
+ <span class="strong">42.85% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>2/6</span>
42
+ <span class='fraction'>3/7</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">35.93% </span>
47
+ <span class="strong">35.38% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>23/64</span>
49
+ <span class='fraction'>23/65</span>
50
50
  </div>
51
51
 
52
52
 
@@ -219,14 +219,20 @@
219
219
  <a name='L154'></a><a href='#L154'>154</a>
220
220
  <a name='L155'></a><a href='#L155'>155</a>
221
221
  <a name='L156'></a><a href='#L156'>156</a>
222
- <a name='L157'></a><a href='#L157'>157</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">45x</span>
222
+ <a name='L157'></a><a href='#L157'>157</a>
223
+ <a name='L158'></a><a href='#L158'>158</a>
224
+ <a name='L159'></a><a href='#L159'>159</a>
225
+ <a name='L160'></a><a href='#L160'>160</a>
226
+ <a name='L161'></a><a href='#L161'>161</a>
227
+ <a name='L162'></a><a href='#L162'>162</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">45x</span>
228
+ <span class="cline-any cline-yes">45x</span>
223
229
  <span class="cline-any cline-neutral">&nbsp;</span>
224
230
  <span class="cline-any cline-neutral">&nbsp;</span>
225
231
  <span class="cline-any cline-neutral">&nbsp;</span>
226
232
  <span class="cline-any cline-neutral">&nbsp;</span>
227
233
  <span class="cline-any cline-yes">45x</span>
228
234
  <span class="cline-any cline-yes">45x</span>
229
- <span class="cline-any cline-yes">45x</span>
235
+ <span class="cline-any cline-neutral">&nbsp;</span>
230
236
  <span class="cline-any cline-yes">45x</span>
231
237
  <span class="cline-any cline-yes">45x</span>
232
238
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -236,7 +242,7 @@
236
242
  <span class="cline-any cline-neutral">&nbsp;</span>
237
243
  <span class="cline-any cline-neutral">&nbsp;</span>
238
244
  <span class="cline-any cline-neutral">&nbsp;</span>
239
- <span class="cline-any cline-yes">45x</span>
245
+ <span class="cline-any cline-yes">86x</span>
240
246
  <span class="cline-any cline-yes">86x</span>
241
247
  <span class="cline-any cline-neutral">&nbsp;</span>
242
248
  <span class="cline-any cline-yes">86x</span>
@@ -311,6 +317,8 @@
311
317
  <span class="cline-any cline-neutral">&nbsp;</span>
312
318
  <span class="cline-any cline-no">&nbsp;</span>
313
319
  <span class="cline-any cline-no">&nbsp;</span>
320
+ <span class="cline-any cline-neutral">&nbsp;</span>
321
+ <span class="cline-any cline-no">&nbsp;</span>
314
322
  <span class="cline-any cline-no">&nbsp;</span>
315
323
  <span class="cline-any cline-neutral">&nbsp;</span>
316
324
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -335,6 +343,8 @@
335
343
  <span class="cline-any cline-neutral">&nbsp;</span>
336
344
  <span class="cline-any cline-neutral">&nbsp;</span>
337
345
  <span class="cline-any cline-neutral">&nbsp;</span>
346
+ <span class="cline-any cline-neutral">&nbsp;</span>
347
+ <span class="cline-any cline-neutral">&nbsp;</span>
338
348
  <span class="cline-any cline-yes">81x</span>
339
349
  <span class="cline-any cline-yes">81x</span>
340
350
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -375,16 +385,17 @@
375
385
  <span class="cline-any cline-neutral">&nbsp;</span>
376
386
  <span class="cline-any cline-yes">81x</span>
377
387
  <span class="cline-any cline-neutral">&nbsp;</span>
378
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">const { getRowParams } = require("../../../db/utils")
379
- const {
388
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import { getRowParams } from "../../../db/utils"
389
+ import {
380
390
  outputProcessing,
381
391
  processAutoColumn,
382
392
  processFormulas,
383
- } = require("../../../utilities/rowProcessor")
384
- const { FieldTypes, FormulaTypes } = require("../../../constants")
393
+ } from "../../../utilities/rowProcessor"
394
+ import { FieldTypes, FormulaTypes } from "../../../constants"
395
+ import { context } from "@budibase/backend-core"
396
+ import { Table, Row } from "@budibase/types"
385
397
  const { isEqual } = require("lodash")
386
398
  const { cloneDeep } = require("lodash/fp")
387
- const { getAppDB } = require("@budibase/backend-core/context")
388
399
  &nbsp;
389
400
  /**
390
401
  * This function runs through a list of enriched rows, looks at the rows which
@@ -392,49 +403,49 @@ const { getAppDB } = require("@budibase/backend-core/context")
392
403
  * updated.
393
404
  * NOTE: this will only for affect static formulas.
394
405
  */
395
- exports.updateRelatedFormula = async (table, enrichedRows) =&gt; {
396
- const db = getAppDB()
406
+ exports.updateRelatedFormula = async (table: Table, enrichedRows: Row[]) =&gt; {
407
+ const db = context.getAppDB()
397
408
  // no formula to update, we're done
398
- <span class="missing-if-branch" title="else path not taken" >E</span>if (!table.relatedFormula) {
409
+ if (!table.relatedFormula) {
399
410
  return
400
411
  }
401
- let promises = <span class="cstat-no" title="statement not covered" >[]</span>
412
+ let promises: Promise&lt;any&gt;[] = <span class="cstat-no" title="statement not covered" >[]</span>
402
413
  <span class="cstat-no" title="statement not covered" > for (let enrichedRow of Array.isArray(enrichedRows)</span>
403
414
  ? enrichedRows
404
415
  : [enrichedRows]) {
405
416
  // the related rows by tableId
406
- let relatedRows = <span class="cstat-no" title="statement not covered" >{}</span>
417
+ let relatedRows: Record&lt;string, Row[]&gt; = <span class="cstat-no" title="statement not covered" >{}</span>
407
418
  <span class="cstat-no" title="statement not covered" > for (let [key, field] of Object.entries(enrichedRow)) {</span>
408
419
  const columnDefinition = <span class="cstat-no" title="statement not covered" >table.schema[key]</span>
409
- <span class="cstat-no" title="statement not covered" > if (columnDefinition &amp;&amp; columnDefinition.type === FieldTypes.LINK) {</span>
410
- const relatedTableId = <span class="cstat-no" title="statement not covered" >columnDefinition.tableId</span>
411
- <span class="cstat-no" title="statement not covered" > if (!relatedRows[relatedTableId]) {</span>
420
+ <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (columnDefinition &amp;&amp; columnDefinition.type === FieldTypes.LINK) {</span>
421
+ const relatedTableId = <span class="cstat-no" title="statement not covered" >columnDefinition.tableId!</span>
422
+ <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (!relatedRows[relatedTableId]) {</span>
412
423
  <span class="cstat-no" title="statement not covered" > relatedRows[relatedTableId] = []</span>
413
424
  }
414
425
  <span class="cstat-no" title="statement not covered" > relatedRows[relatedTableId] = relatedRows[relatedTableId].concat(field)</span>
415
426
  }
416
427
  }
417
428
  <span class="cstat-no" title="statement not covered" > for (let tableId of table.relatedFormula) {</span>
418
- let relatedTable
429
+ let relatedTable: Table
419
430
  <span class="cstat-no" title="statement not covered" > try {</span>
420
431
  // no rows to update, skip
421
- <span class="cstat-no" title="statement not covered" > if (!relatedRows[tableId] || relatedRows[tableId].length === 0) {</span>
432
+ <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (!relatedRows[tableId] || relatedRows[tableId].length === 0) {</span>
422
433
  <span class="cstat-no" title="statement not covered" > continue</span>
423
434
  }
424
435
  <span class="cstat-no" title="statement not covered" > relatedTable = await db.get(tableId)</span>
425
436
  } catch (err) {
426
437
  // no error scenario, table doesn't seem to exist anymore, ignore
427
438
  }
428
- <span class="cstat-no" title="statement not covered" > for (let column of Object.values(relatedTable.schema)) {</span>
439
+ <span class="cstat-no" title="statement not covered" > for (let column of Object.values(relatedTable!.schema)) {</span>
429
440
  // needs updated in related rows
430
- <span class="cstat-no" title="statement not covered" > if (</span>
441
+ <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (</span>
431
442
  column.type === FieldTypes.FORMULA &amp;&amp;
432
443
  column.formulaType === FormulaTypes.STATIC
433
444
  ) {
434
445
  // re-enrich rows for all the related, don't update the related formula for them
435
446
  <span class="cstat-no" title="statement not covered" > promises = promises.concat(</span>
436
- relatedRows[tableId].map(<span class="fstat-no" title="function not covered" >re</span>lated =&gt;
437
- <span class="cstat-no" title="statement not covered" > exports.finaliseRow(relatedTable, related, {</span>
447
+ relatedRows[tableId].map(<span class="fstat-no" title="function not covered" >related </span>=&gt;
448
+ <span class="cstat-no" title="statement not covered" > finaliseRow(relatedTable, related, {</span>
438
449
  updateFormula: false,
439
450
  })
440
451
  )
@@ -447,8 +458,8 @@ exports.updateRelatedFormula = async (table, enrichedRows) =&gt; {
447
458
  <span class="cstat-no" title="statement not covered" > await Promise.all(promises)</span>
448
459
  }
449
460
  &nbsp;
450
- exports.updateAllFormulasInTable = <span class="fstat-no" title="function not covered" >as</span>ync table =&gt; {
451
- const db = <span class="cstat-no" title="statement not covered" >getAppDB()</span>
461
+ export async function <span class="fstat-no" title="function not covered" >updateAllFormulasInTable(</span>table: Table) {
462
+ const db = <span class="cstat-no" title="statement not covered" >context.getAppDB()</span>
452
463
  // start by getting the raw rows (which will be written back to DB after update)
453
464
  let rows = <span class="cstat-no" title="statement not covered" >(</span>
454
465
  await db.allDocs(
@@ -456,7 +467,7 @@ exports.updateAllFormulasInTable = <span class="fstat-no" title="function not co
456
467
  include_docs: true,
457
468
  })
458
469
  )
459
- ).rows.map(<span class="fstat-no" title="function not covered" >ro</span>w =&gt; <span class="cstat-no" title="statement not covered" >row.doc)</span>
470
+ ).rows.map(<span class="fstat-no" title="function not covered" >row </span>=&gt; <span class="cstat-no" title="statement not covered" >row.doc)</span>
460
471
  // now enrich the rows, note the clone so that we have the base state of the
461
472
  // rows so that we don't write any of the enriched information back
462
473
  let enrichedRows = <span class="cstat-no" title="statement not covered" >await outputProcessing(table, cloneDeep(rows), {</span>
@@ -465,14 +476,16 @@ exports.updateAllFormulasInTable = <span class="fstat-no" title="function not co
465
476
  const updatedRows = <span class="cstat-no" title="statement not covered" >[]</span>
466
477
  <span class="cstat-no" title="statement not covered" > for (let row of rows) {</span>
467
478
  // find the enriched row, if found process the formulas
468
- const enrichedRow = <span class="cstat-no" title="statement not covered" >enrichedRows.find(<span class="fstat-no" title="function not covered" >en</span>riched =&gt; <span class="cstat-no" title="statement not covered" >enriched._id === row._id)</span></span>
469
- <span class="cstat-no" title="statement not covered" > if (enrichedRow) {</span>
479
+ const enrichedRow = <span class="cstat-no" title="statement not covered" >enrichedRows.find(</span>
480
+ <span class="fstat-no" title="function not covered" > (e</span>nriched: any) =&gt; <span class="cstat-no" title="statement not covered" >enriched._id === row._id</span>
481
+ )
482
+ <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (enrichedRow) {</span>
470
483
  const processed = <span class="cstat-no" title="statement not covered" >processFormulas(table, cloneDeep(row), {</span>
471
484
  dynamic: false,
472
485
  contextRows: enrichedRow,
473
486
  })
474
487
  // values have changed, need to add to bulk docs to update
475
- <span class="cstat-no" title="statement not covered" > if (!isEqual(processed, row)) {</span>
488
+ <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (!isEqual(processed, row)) {</span>
476
489
  <span class="cstat-no" title="statement not covered" > updatedRows.push(processed)</span>
477
490
  }
478
491
  }
@@ -486,12 +499,14 @@ exports.updateAllFormulasInTable = <span class="fstat-no" title="function not co
486
499
  * row. The reason we need to return the enriched row is that the automation row created trigger
487
500
  * expects the row to be totally enriched/contain all relationships.
488
501
  */
489
- exports.finaliseRow = async (
490
- table,
491
- row,
492
- { oldTable, updateFormula } = <span class="branch-0 cbranch-no" title="branch not covered" >{ updateFormula: true }</span>
493
- ) =&gt; {
494
- const db = getAppDB()
502
+ export async function finaliseRow(
503
+ table: Table,
504
+ row: Row,
505
+ { oldTable, updateFormula }: { oldTable?: Table; updateFormula: boolean } = <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
506
+ updateFormula: true,
507
+ }
508
+ ) {
509
+ const db = context.getAppDB()
495
510
  row.type = "row"
496
511
  // process the row before return, to include relationships
497
512
  let enrichedRow = await outputProcessing(table, cloneDeep(row), {
@@ -508,7 +523,7 @@ exports.finaliseRow = async (
508
523
  <span class="missing-if-branch" title="if path not taken" >I</span>if (oldTable &amp;&amp; !isEqual(oldTable, table)) {
509
524
  <span class="cstat-no" title="statement not covered" > try {</span>
510
525
  <span class="cstat-no" title="statement not covered" > await db.put(table)</span>
511
- } catch (err) {
526
+ } catch (err: any) {
512
527
  <span class="cstat-no" title="statement not covered" > if (err.status === 409) {</span>
513
528
  const updatedTable = <span class="cstat-no" title="statement not covered" >await db.get(table._id)</span>
514
529
  let response = <span class="cstat-no" title="statement not covered" >processAutoColumn(null, updatedTable, row, {</span>
@@ -526,7 +541,7 @@ exports.finaliseRow = async (
526
541
  enrichedRow._rev = response.rev
527
542
  enrichedRow = await processFormulas(table, enrichedRow, { dynamic: false })
528
543
  // this updates the related formulas in other rows based on the relations to this row
529
- <span class="missing-if-branch" title="else path not taken" >E</span>if (updateFormula) {
544
+ if (updateFormula) {
530
545
  await exports.updateRelatedFormula(table, enrichedRow)
531
546
  }
532
547
  return { row: enrichedRow, table }
@@ -538,7 +553,7 @@ exports.finaliseRow = async (
538
553
  <div class='footer quiet pad2 space-top1 center small'>
539
554
  Code coverage generated by
540
555
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
541
- at Wed Nov 23 2022 08:44:01 GMT+0000 (Coordinated Universal Time)
556
+ at Wed Nov 23 2022 15:12:32 GMT+0000 (Coordinated Universal Time)
542
557
  </div>
543
558
  <script src="../../../../prettify.js"></script>
544
559
  <script>
@@ -3,7 +3,7 @@
3
3
  <html lang="en">
4
4
 
5
5
  <head>
6
- <title>Code coverage report for src/api/controllers/row/utils.js</title>
6
+ <title>Code coverage report for src/api/controllers/row/utils.ts</title>
7
7
  <meta charset="utf-8" />
8
8
  <link rel="stylesheet" href="../../../../prettify.css" />
9
9
  <link rel="stylesheet" href="../../../../base.css" />
@@ -19,7 +19,7 @@
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">src/api/controllers/row</a> utils.js</h1>
22
+ <h1><a href="../../../../index.html">All files</a> / <a href="index.html">src/api/controllers/row</a> utils.ts</h1>
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
@@ -30,23 +30,23 @@
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">38.46% </span>
33
+ <span class="strong">33.33% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>15/39</span>
35
+ <span class='fraction'>10/30</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">66.66% </span>
40
+ <span class="strong">71.42% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>4/6</span>
42
+ <span class='fraction'>5/7</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">62.71% </span>
47
+ <span class="strong">62.06% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>37/59</span>
49
+ <span class='fraction'>36/58</span>
50
50
  </div>
51
51
 
52
52
 
@@ -171,12 +171,20 @@
171
171
  <a name='L106'></a><a href='#L106'>106</a>
172
172
  <a name='L107'></a><a href='#L107'>107</a>
173
173
  <a name='L108'></a><a href='#L108'>108</a>
174
- <a name='L109'></a><a href='#L109'>109</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">46x</span>
175
- <span class="cline-any cline-yes">46x</span>
174
+ <a name='L109'></a><a href='#L109'>109</a>
175
+ <a name='L110'></a><a href='#L110'>110</a>
176
+ <a name='L111'></a><a href='#L111'>111</a>
177
+ <a name='L112'></a><a href='#L112'>112</a>
178
+ <a name='L113'></a><a href='#L113'>113</a>
179
+ <a name='L114'></a><a href='#L114'>114</a>
180
+ <a name='L115'></a><a href='#L115'>115</a>
181
+ <a name='L116'></a><a href='#L116'>116</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">46x</span>
176
182
  <span class="cline-any cline-yes">46x</span>
177
183
  <span class="cline-any cline-yes">46x</span>
178
184
  <span class="cline-any cline-yes">46x</span>
179
185
  <span class="cline-any cline-yes">46x</span>
186
+ <span class="cline-any cline-neutral">&nbsp;</span>
187
+ <span class="cline-any cline-yes">119x</span>
180
188
  <span class="cline-any cline-yes">46x</span>
181
189
  <span class="cline-any cline-yes">46x</span>
182
190
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -191,8 +199,6 @@
191
199
  <span class="cline-any cline-neutral">&nbsp;</span>
192
200
  <span class="cline-any cline-neutral">&nbsp;</span>
193
201
  <span class="cline-any cline-yes">46x</span>
194
- <span class="cline-any cline-neutral">&nbsp;</span>
195
- <span class="cline-any cline-yes">46x</span>
196
202
  <span class="cline-any cline-yes">1x</span>
197
203
  <span class="cline-any cline-yes">1x</span>
198
204
  <span class="cline-any cline-yes">1x</span>
@@ -219,6 +225,14 @@
219
225
  <span class="cline-any cline-neutral">&nbsp;</span>
220
226
  <span class="cline-any cline-neutral">&nbsp;</span>
221
227
  <span class="cline-any cline-yes">46x</span>
228
+ <span class="cline-any cline-neutral">&nbsp;</span>
229
+ <span class="cline-any cline-neutral">&nbsp;</span>
230
+ <span class="cline-any cline-neutral">&nbsp;</span>
231
+ <span class="cline-any cline-neutral">&nbsp;</span>
232
+ <span class="cline-any cline-neutral">&nbsp;</span>
233
+ <span class="cline-any cline-neutral">&nbsp;</span>
234
+ <span class="cline-any cline-neutral">&nbsp;</span>
235
+ <span class="cline-any cline-neutral">&nbsp;</span>
222
236
  <span class="cline-any cline-yes">85x</span>
223
237
  <span class="cline-any cline-yes">2x</span>
224
238
  <span class="cline-any cline-yes">2x</span>
@@ -279,36 +293,35 @@
279
293
  <span class="cline-any cline-neutral">&nbsp;</span>
280
294
  <span class="cline-any cline-yes">85x</span>
281
295
  <span class="cline-any cline-neutral">&nbsp;</span>
282
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">const validateJs = require("validate.js")
296
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import { InternalTables } from "../../../db/utils"
297
+ import * as userController from "../user"
298
+ import { FieldTypes } from "../../../constants"
299
+ import { context } from "@budibase/backend-core"
300
+ import { makeExternalQuery } from "../../../integrations/base/query"
301
+ import { BBContext, Row, Table } from "@budibase/types"
302
+ export { removeKeyNumbering } from "../../../integrations/base/utils"
303
+ const validateJs = require("validate.js")
283
304
  const { cloneDeep } = require("lodash/fp")
284
- const { InternalTables } = require("../../../db/utils")
285
- const userController = require("../user")
286
- const { FieldTypes } = require("../../../constants")
287
- const { getAppDB } = require("@budibase/backend-core/context")
288
- const { makeExternalQuery } = require("../../../integrations/base/query")
289
- const { removeKeyNumbering } = require("../../../integrations/base/utils")
290
305
  &nbsp;
291
306
  validateJs.extend(validateJs.validators.datetime, {
292
- parse: function (value) {
307
+ parse: function (value: string) {
293
308
  return new Date(value).getTime()
294
309
  },
295
310
  // Input is a unix timestamp
296
- format: <span class="fstat-no" title="function not covered" >fu</span>nction (value) {
311
+ format: <span class="fstat-no" title="function not covered" >function (v</span>alue: string) {
297
312
  <span class="cstat-no" title="statement not covered" > return new Date(value).toISOString()</span>
298
313
  },
299
314
  })
300
315
  &nbsp;
301
- exports.removeKeyNumbering = removeKeyNumbering
302
- &nbsp;
303
- exports.getDatasourceAndQuery = async json =&gt; {
316
+ export async function getDatasourceAndQuery(json: any) {
304
317
  const datasourceId = json.endpoint.datasourceId
305
- const db = getAppDB()
318
+ const db = context.getAppDB()
306
319
  const datasource = await db.get(datasourceId)
307
320
  return makeExternalQuery(datasource, json)
308
321
  }
309
322
  &nbsp;
310
- exports.findRow = async (ctx, tableId, rowId) =&gt; {
311
- const db = getAppDB()
323
+ export async function findRow(ctx: BBContext, tableId: string, rowId: string) {
324
+ const db = context.getAppDB()
312
325
  let row
313
326
  // TODO remove special user case in future
314
327
  <span class="missing-if-branch" title="if path not taken" >I</span>if (tableId === InternalTables.USER_METADATA) {
@@ -326,12 +339,20 @@ exports.findRow = async (ctx, tableId, rowId) =&gt; {
326
339
  return row
327
340
  }
328
341
  &nbsp;
329
- exports.validate = async ({ tableId, row, table }) =&gt; {
342
+ export async function validate({
343
+ tableId,
344
+ row,
345
+ table,
346
+ }: {
347
+ tableId?: string
348
+ row: Row
349
+ table: Table
350
+ }) {
330
351
  if (!table) {
331
- const db = getAppDB()
352
+ const db = context.getAppDB()
332
353
  table = await db.get(tableId)
333
354
  }
334
- const errors = {}
355
+ const errors: any = {}
335
356
  for (let fieldName of Object.keys(table.schema)) {
336
357
  const constraints = cloneDeep(table.schema[fieldName].constraints)
337
358
  const type = table.schema[fieldName].type
@@ -348,18 +369,18 @@ exports.validate = async ({ tableId, row, table }) =&gt; {
348
369
  // Validate.js doesn't seem to handle array
349
370
  <span class="missing-if-branch" title="if path not taken" >I</span>if (type === FieldTypes.ARRAY &amp;&amp; <span class="branch-1 cbranch-no" title="branch not covered" >row[fieldName])</span> {
350
371
  <span class="cstat-no" title="statement not covered" > if (row[fieldName].length) {</span>
351
- <span class="cstat-no" title="statement not covered" > if (!Array.isArray(row[fieldName])) {</span>
372
+ <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (!Array.isArray(row[fieldName])) {</span>
352
373
  <span class="cstat-no" title="statement not covered" > row[fieldName] = row[fieldName].split(",")</span>
353
374
  }
354
- <span class="cstat-no" title="statement not covered" > row[fieldName].map(<span class="fstat-no" title="function not covered" >va</span>l =&gt; {</span>
355
- <span class="cstat-no" title="statement not covered" > if (</span>
375
+ <span class="cstat-no" title="statement not covered" > row[fieldName].map(<span class="fstat-no" title="function not covered" >(v</span>al: any) =&gt; {</span>
376
+ <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (</span>
356
377
  !constraints.inclusion.includes(val) &amp;&amp;
357
378
  constraints.inclusion.length !== 0
358
379
  ) {
359
380
  <span class="cstat-no" title="statement not covered" > errors[fieldName] = "Field not in list"</span>
360
381
  }
361
382
  })
362
- } else <span class="cstat-no" title="statement not covered" >if (constraints.presence &amp;&amp; row[fieldName].length === 0) {</span>
383
+ } else <span class="cstat-no" title="statement not covered" ><span class="missing-if-branch" title="if path not taken" >I</span>if (constraints.presence &amp;&amp; row[fieldName].length === 0) {</span>
363
384
  // non required MultiSelect creates an empty array, which should not throw errors
364
385
  <span class="cstat-no" title="statement not covered" > errors[fieldName] = [`${fieldName} is required`]</span>
365
386
  }
@@ -370,7 +391,7 @@ exports.validate = async ({ tableId, row, table }) =&gt; {
370
391
  // this should only happen if there is an error
371
392
  <span class="cstat-no" title="statement not covered" > try {</span>
372
393
  const json = <span class="cstat-no" title="statement not covered" >JSON.parse(row[fieldName])</span>
373
- <span class="cstat-no" title="statement not covered" > if (type === FieldTypes.ATTACHMENT) {</span>
394
+ <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (type === FieldTypes.ATTACHMENT) {</span>
374
395
  <span class="cstat-no" title="statement not covered" > if (Array.isArray(json)) {</span>
375
396
  <span class="cstat-no" title="statement not covered" > row[fieldName] = json</span>
376
397
  } else {
@@ -394,7 +415,7 @@ exports.validate = async ({ tableId, row, table }) =&gt; {
394
415
  <div class='footer quiet pad2 space-top1 center small'>
395
416
  Code coverage generated by
396
417
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
397
- at Wed Nov 23 2022 08:44:01 GMT+0000 (Coordinated Universal Time)
418
+ at Wed Nov 23 2022 15:12:32 GMT+0000 (Coordinated Universal Time)
398
419
  </div>
399
420
  <script src="../../../../prettify.js"></script>
400
421
  <script>
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">70.68% </span>
26
+ <span class="strong">68.42% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>41/58</span>
28
+ <span class='fraction'>39/57</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">33.33% </span>
33
+ <span class="strong">45.83% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>5/15</span>
35
+ <span class='fraction'>11/24</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">69.23% </span>
40
+ <span class="strong">60% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>9/13</span>
42
+ <span class='fraction'>6/10</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">69.81% </span>
47
+ <span class="strong">69.09% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>37/53</span>
49
+ <span class='fraction'>38/55</span>
50
50
  </div>
51
51
 
52
52
 
@@ -185,7 +185,11 @@
185
185
  <a name='L120'></a><a href='#L120'>120</a>
186
186
  <a name='L121'></a><a href='#L121'>121</a>
187
187
  <a name='L122'></a><a href='#L122'>122</a>
188
- <a name='L123'></a><a href='#L123'>123</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">44x</span>
188
+ <a name='L123'></a><a href='#L123'>123</a>
189
+ <a name='L124'></a><a href='#L124'>124</a>
190
+ <a name='L125'></a><a href='#L125'>125</a>
191
+ <a name='L126'></a><a href='#L126'>126</a>
192
+ <a name='L127'></a><a href='#L127'>127</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">44x</span>
189
193
  <span class="cline-any cline-yes">44x</span>
190
194
  <span class="cline-any cline-neutral">&nbsp;</span>
191
195
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -208,6 +212,10 @@
208
212
  <span class="cline-any cline-yes">1x</span>
209
213
  <span class="cline-any cline-neutral">&nbsp;</span>
210
214
  <span class="cline-any cline-yes">1x</span>
215
+ <span class="cline-any cline-yes">1x</span>
216
+ <span class="cline-any cline-no">&nbsp;</span>
217
+ <span class="cline-any cline-neutral">&nbsp;</span>
218
+ <span class="cline-any cline-yes">1x</span>
211
219
  <span class="cline-any cline-neutral">&nbsp;</span>
212
220
  <span class="cline-any cline-neutral">&nbsp;</span>
213
221
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -293,7 +301,7 @@
293
301
  <span class="cline-any cline-yes">1x</span>
294
302
  <span class="cline-any cline-neutral">&nbsp;</span>
295
303
  <span class="cline-any cline-neutral">&nbsp;</span>
296
- <span class="cline-any cline-yes">44x</span>
304
+ <span class="cline-any cline-neutral">&nbsp;</span>
297
305
  <span class="cline-any cline-yes">48x</span>
298
306
  <span class="cline-any cline-no">&nbsp;</span>
299
307
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -316,9 +324,9 @@ import {
316
324
  roles,
317
325
  } from "@budibase/backend-core"
318
326
  import { updateAppPackage } from "./application"
319
- import { Plugin, ScreenProps } from "@budibase/types"
327
+ import { Plugin, ScreenProps, BBContext } from "@budibase/types"
320
328
  &nbsp;
321
- exports.fetch = async (ctx: any) =&gt; {
329
+ export async function fetch(ctx: BBContext) {
322
330
  const db = context.getAppDB()
323
331
  &nbsp;
324
332
  const screens = (
@@ -329,13 +337,17 @@ exports.fetch = async (ctx: any) =&gt; {
329
337
  )
330
338
  ).rows.map((el: any) =&gt; el.doc)
331
339
  &nbsp;
340
+ const roleId = ctx.user<span class="branch-0 cbranch-no" title="branch not covered" >?.r</span>ole<span class="branch-0 cbranch-no" title="branch not covered" >?._</span>id as string
341
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (!roleId) {
342
+ <span class="cstat-no" title="statement not covered" > ctx.throw("Unable to retrieve users role ID.")</span>
343
+ }
332
344
  ctx.body = await new roles.AccessController().checkScreensAccess(
333
345
  screens,
334
- ctx.user.role._id
346
+ roleId
335
347
  )
336
348
  }
337
349
  &nbsp;
338
- exports.save = async (ctx: any) =&gt; {
350
+ export async function save(ctx: BBContext) {
339
351
  const db = context.getAppDB()
340
352
  let screen = ctx.request.body
341
353
  &nbsp;
@@ -401,7 +413,7 @@ exports.save = async (ctx: any) =&gt; {
401
413
  }
402
414
  }
403
415
  &nbsp;
404
- exports.destroy = async (ctx: any) =&gt; {
416
+ export async function destroy(ctx: BBContext) {
405
417
  const db = context.getAppDB()
406
418
  const id = ctx.params.screenId
407
419
  const screen = await db.get(id)
@@ -415,7 +427,7 @@ exports.destroy = async (ctx: any) =&gt; {
415
427
  ctx.status = 200
416
428
  }
417
429
  &nbsp;
418
- const findPlugins = (component: ScreenProps, foundPlugins: string[]) =&gt; {
430
+ function findPlugins(component: ScreenProps, foundPlugins: string[]) {
419
431
  <span class="missing-if-branch" title="if path not taken" >I</span>if (!component) {
420
432
  <span class="cstat-no" title="statement not covered" > return</span>
421
433
  }
@@ -436,7 +448,7 @@ const findPlugins = (component: ScreenProps, foundPlugins: string[]) =&gt; {
436
448
  <div class='footer quiet pad2 space-top1 center small'>
437
449
  Code coverage generated by
438
450
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
439
- at Wed Nov 23 2022 08:44:01 GMT+0000 (Coordinated Universal Time)
451
+ at Wed Nov 23 2022 15:12:32 GMT+0000 (Coordinated Universal Time)
440
452
  </div>
441
453
  <script src="../../../prettify.js"></script>
442
454
  <script>