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

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.3ca79a83.js} +1 -1
  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/table/external.js</title>
6
+ <title>Code coverage report for src/api/controllers/table/external.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,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">src/api/controllers/table</a> external.js</h1>
22
+ <h1><a href="../../../../index.html">All files</a> / <a href="index.html">src/api/controllers/table</a> external.ts</h1>
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">9.21% </span>
26
+ <span class="strong">8.84% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>13/141</span>
28
+ <span class='fraction'>13/147</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
33
  <span class="strong">0% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>0/79</span>
35
+ <span class='fraction'>0/68</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">9.21% </span>
47
+ <span class="strong">8.84% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>13/141</span>
49
+ <span class='fraction'>13/147</span>
50
50
  </div>
51
51
 
52
52
 
@@ -383,7 +383,43 @@
383
383
  <a name='L318'></a><a href='#L318'>318</a>
384
384
  <a name='L319'></a><a href='#L319'>319</a>
385
385
  <a name='L320'></a><a href='#L320'>320</a>
386
- <a name='L321'></a><a href='#L321'>321</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
386
+ <a name='L321'></a><a href='#L321'>321</a>
387
+ <a name='L322'></a><a href='#L322'>322</a>
388
+ <a name='L323'></a><a href='#L323'>323</a>
389
+ <a name='L324'></a><a href='#L324'>324</a>
390
+ <a name='L325'></a><a href='#L325'>325</a>
391
+ <a name='L326'></a><a href='#L326'>326</a>
392
+ <a name='L327'></a><a href='#L327'>327</a>
393
+ <a name='L328'></a><a href='#L328'>328</a>
394
+ <a name='L329'></a><a href='#L329'>329</a>
395
+ <a name='L330'></a><a href='#L330'>330</a>
396
+ <a name='L331'></a><a href='#L331'>331</a>
397
+ <a name='L332'></a><a href='#L332'>332</a>
398
+ <a name='L333'></a><a href='#L333'>333</a>
399
+ <a name='L334'></a><a href='#L334'>334</a>
400
+ <a name='L335'></a><a href='#L335'>335</a>
401
+ <a name='L336'></a><a href='#L336'>336</a>
402
+ <a name='L337'></a><a href='#L337'>337</a>
403
+ <a name='L338'></a><a href='#L338'>338</a>
404
+ <a name='L339'></a><a href='#L339'>339</a>
405
+ <a name='L340'></a><a href='#L340'>340</a>
406
+ <a name='L341'></a><a href='#L341'>341</a>
407
+ <a name='L342'></a><a href='#L342'>342</a>
408
+ <a name='L343'></a><a href='#L343'>343</a>
409
+ <a name='L344'></a><a href='#L344'>344</a>
410
+ <a name='L345'></a><a href='#L345'>345</a>
411
+ <a name='L346'></a><a href='#L346'>346</a>
412
+ <a name='L347'></a><a href='#L347'>347</a>
413
+ <a name='L348'></a><a href='#L348'>348</a>
414
+ <a name='L349'></a><a href='#L349'>349</a>
415
+ <a name='L350'></a><a href='#L350'>350</a>
416
+ <a name='L351'></a><a href='#L351'>351</a>
417
+ <a name='L352'></a><a href='#L352'>352</a>
418
+ <a name='L353'></a><a href='#L353'>353</a>
419
+ <a name='L354'></a><a href='#L354'>354</a>
420
+ <a name='L355'></a><a href='#L355'>355</a>
421
+ <a name='L356'></a><a href='#L356'>356</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">45x</span>
422
+ <span class="cline-any cline-neutral">&nbsp;</span>
387
423
  <span class="cline-any cline-neutral">&nbsp;</span>
388
424
  <span class="cline-any cline-neutral">&nbsp;</span>
389
425
  <span class="cline-any cline-yes">45x</span>
@@ -402,7 +438,15 @@
402
438
  <span class="cline-any cline-yes">45x</span>
403
439
  <span class="cline-any cline-yes">45x</span>
404
440
  <span class="cline-any cline-yes">45x</span>
405
- <span class="cline-any cline-yes">45x</span>
441
+ <span class="cline-any cline-neutral">&nbsp;</span>
442
+ <span class="cline-any cline-neutral">&nbsp;</span>
443
+ <span class="cline-any cline-neutral">&nbsp;</span>
444
+ <span class="cline-any cline-neutral">&nbsp;</span>
445
+ <span class="cline-any cline-neutral">&nbsp;</span>
446
+ <span class="cline-any cline-neutral">&nbsp;</span>
447
+ <span class="cline-any cline-neutral">&nbsp;</span>
448
+ <span class="cline-any cline-neutral">&nbsp;</span>
449
+ <span class="cline-any cline-neutral">&nbsp;</span>
406
450
  <span class="cline-any cline-yes">45x</span>
407
451
  <span class="cline-any cline-yes">45x</span>
408
452
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -435,6 +479,10 @@
435
479
  <span class="cline-any cline-neutral">&nbsp;</span>
436
480
  <span class="cline-any cline-neutral">&nbsp;</span>
437
481
  <span class="cline-any cline-neutral">&nbsp;</span>
482
+ <span class="cline-any cline-neutral">&nbsp;</span>
483
+ <span class="cline-any cline-neutral">&nbsp;</span>
484
+ <span class="cline-any cline-neutral">&nbsp;</span>
485
+ <span class="cline-any cline-neutral">&nbsp;</span>
438
486
  <span class="cline-any cline-no">&nbsp;</span>
439
487
  <span class="cline-any cline-neutral">&nbsp;</span>
440
488
  <span class="cline-any cline-no">&nbsp;</span>
@@ -483,6 +531,14 @@
483
531
  <span class="cline-any cline-neutral">&nbsp;</span>
484
532
  <span class="cline-any cline-neutral">&nbsp;</span>
485
533
  <span class="cline-any cline-neutral">&nbsp;</span>
534
+ <span class="cline-any cline-neutral">&nbsp;</span>
535
+ <span class="cline-any cline-neutral">&nbsp;</span>
536
+ <span class="cline-any cline-neutral">&nbsp;</span>
537
+ <span class="cline-any cline-neutral">&nbsp;</span>
538
+ <span class="cline-any cline-neutral">&nbsp;</span>
539
+ <span class="cline-any cline-no">&nbsp;</span>
540
+ <span class="cline-any cline-no">&nbsp;</span>
541
+ <span class="cline-any cline-neutral">&nbsp;</span>
486
542
  <span class="cline-any cline-no">&nbsp;</span>
487
543
  <span class="cline-any cline-no">&nbsp;</span>
488
544
  <span class="cline-any cline-no">&nbsp;</span>
@@ -511,6 +567,14 @@
511
567
  <span class="cline-any cline-neutral">&nbsp;</span>
512
568
  <span class="cline-any cline-neutral">&nbsp;</span>
513
569
  <span class="cline-any cline-neutral">&nbsp;</span>
570
+ <span class="cline-any cline-neutral">&nbsp;</span>
571
+ <span class="cline-any cline-neutral">&nbsp;</span>
572
+ <span class="cline-any cline-neutral">&nbsp;</span>
573
+ <span class="cline-any cline-neutral">&nbsp;</span>
574
+ <span class="cline-any cline-neutral">&nbsp;</span>
575
+ <span class="cline-any cline-no">&nbsp;</span>
576
+ <span class="cline-any cline-no">&nbsp;</span>
577
+ <span class="cline-any cline-neutral">&nbsp;</span>
514
578
  <span class="cline-any cline-no">&nbsp;</span>
515
579
  <span class="cline-any cline-no">&nbsp;</span>
516
580
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -523,6 +587,11 @@
523
587
  <span class="cline-any cline-neutral">&nbsp;</span>
524
588
  <span class="cline-any cline-neutral">&nbsp;</span>
525
589
  <span class="cline-any cline-neutral">&nbsp;</span>
590
+ <span class="cline-any cline-neutral">&nbsp;</span>
591
+ <span class="cline-any cline-neutral">&nbsp;</span>
592
+ <span class="cline-any cline-neutral">&nbsp;</span>
593
+ <span class="cline-any cline-neutral">&nbsp;</span>
594
+ <span class="cline-any cline-neutral">&nbsp;</span>
526
595
  <span class="cline-any cline-no">&nbsp;</span>
527
596
  <span class="cline-any cline-neutral">&nbsp;</span>
528
597
  <span class="cline-any cline-no">&nbsp;</span>
@@ -590,6 +659,9 @@
590
659
  <span class="cline-any cline-neutral">&nbsp;</span>
591
660
  <span class="cline-any cline-no">&nbsp;</span>
592
661
  <span class="cline-any cline-no">&nbsp;</span>
662
+ <span class="cline-any cline-neutral">&nbsp;</span>
663
+ <span class="cline-any cline-no">&nbsp;</span>
664
+ <span class="cline-any cline-no">&nbsp;</span>
593
665
  <span class="cline-any cline-no">&nbsp;</span>
594
666
  <span class="cline-any cline-no">&nbsp;</span>
595
667
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -630,8 +702,6 @@
630
702
  <span class="cline-any cline-no">&nbsp;</span>
631
703
  <span class="cline-any cline-neutral">&nbsp;</span>
632
704
  <span class="cline-any cline-no">&nbsp;</span>
633
- <span class="cline-any cline-neutral">&nbsp;</span>
634
- <span class="cline-any cline-neutral">&nbsp;</span>
635
705
  <span class="cline-any cline-no">&nbsp;</span>
636
706
  <span class="cline-any cline-neutral">&nbsp;</span>
637
707
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -644,8 +714,6 @@
644
714
  <span class="cline-any cline-no">&nbsp;</span>
645
715
  <span class="cline-any cline-no">&nbsp;</span>
646
716
  <span class="cline-any cline-no">&nbsp;</span>
647
- <span class="cline-any cline-neutral">&nbsp;</span>
648
- <span class="cline-any cline-neutral">&nbsp;</span>
649
717
  <span class="cline-any cline-no">&nbsp;</span>
650
718
  <span class="cline-any cline-neutral">&nbsp;</span>
651
719
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -667,6 +735,8 @@
667
735
  <span class="cline-any cline-neutral">&nbsp;</span>
668
736
  <span class="cline-any cline-yes">45x</span>
669
737
  <span class="cline-any cline-no">&nbsp;</span>
738
+ <span class="cline-any cline-neutral">&nbsp;</span>
739
+ <span class="cline-any cline-neutral">&nbsp;</span>
670
740
  <span class="cline-any cline-no">&nbsp;</span>
671
741
  <span class="cline-any cline-no">&nbsp;</span>
672
742
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -703,41 +773,50 @@
703
773
  <span class="cline-any cline-no">&nbsp;</span>
704
774
  <span class="cline-any cline-no">&nbsp;</span>
705
775
  <span class="cline-any cline-neutral">&nbsp;</span>
706
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">const {
776
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import {
707
777
  buildExternalTableId,
708
778
  breakExternalTableId,
709
- } = require("../../../integrations/utils")
710
- const {
779
+ } from "../../../integrations/utils"
780
+ import {
711
781
  generateForeignKey,
712
782
  generateJunctionTableName,
713
783
  foreignKeyStructure,
714
784
  hasTypeChanged,
715
- } = require("./utils")
716
- const {
785
+ } from "./utils"
786
+ import {
717
787
  DataSourceOperation,
718
788
  FieldTypes,
719
789
  RelationshipTypes,
720
- } = require("../../../constants")
721
- const { makeExternalQuery } = require("../../../integrations/base/query")
790
+ } from "../../../constants"
791
+ import { makeExternalQuery } from "../../../integrations/base/query"
792
+ import csvParser from "../../../utilities/csvParser"
793
+ import { handleRequest } from "../row/external"
794
+ import { events, context } from "@budibase/backend-core"
795
+ import {
796
+ Datasource,
797
+ Table,
798
+ QueryJson,
799
+ Operation,
800
+ RenameColumn,
801
+ FieldSchema,
802
+ BBContext,
803
+ TableRequest,
804
+ } from "@budibase/types"
805
+ import sdk from "../../../sdk"
722
806
  const { cloneDeep } = require("lodash/fp")
723
- const csvParser = require("../../../utilities/csvParser")
724
- const { handleRequest } = require("../row/external")
725
- const { getAppDB } = require("@budibase/backend-core/context")
726
- const { events } = require("@budibase/backend-core")
727
- const sdk = require("../../../sdk")
728
807
  &nbsp;
729
808
  async function <span class="fstat-no" title="function not covered" >makeTableRequest(</span>
730
- datasource,
731
- operation,
732
- table,
733
- tables,
734
- oldTable = <span class="branch-0 cbranch-no" title="branch not covered" >null,</span>
735
- renamed = <span class="branch-0 cbranch-no" title="branch not covered" >null</span>
809
+ datasource: Datasource,
810
+ operation: Operation,
811
+ table: Table,
812
+ tables: Record&lt;string, Table&gt;,
813
+ oldTable?: Table,
814
+ renamed?: RenameColumn
736
815
  ) {
737
- const json = <span class="cstat-no" title="statement not covered" >{</span>
816
+ const json: QueryJson = <span class="cstat-no" title="statement not covered" >{</span>
738
817
  endpoint: {
739
- datasourceId: datasource._id,
740
- entityId: table._id,
818
+ datasourceId: datasource._id!,
819
+ entityId: table._id!,
741
820
  operation,
742
821
  },
743
822
  meta: {
@@ -745,34 +824,38 @@ async function <span class="fstat-no" title="function not covered" >makeTableReq
745
824
  },
746
825
  table,
747
826
  }
748
- <span class="cstat-no" title="statement not covered" > if (oldTable) {</span>
749
- <span class="cstat-no" title="statement not covered" > json.meta.table = oldTable</span>
827
+ <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (oldTable) {</span>
828
+ <span class="cstat-no" title="statement not covered" > json.meta!.table = oldTable</span>
750
829
  }
751
- <span class="cstat-no" title="statement not covered" > if (renamed) {</span>
752
- <span class="cstat-no" title="statement not covered" > json.meta.renamed = renamed</span>
830
+ <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (renamed) {</span>
831
+ <span class="cstat-no" title="statement not covered" > json.meta!.renamed = renamed</span>
753
832
  }
754
833
  <span class="cstat-no" title="statement not covered" > return makeExternalQuery(datasource, json)</span>
755
834
  }
756
835
  &nbsp;
757
- function <span class="fstat-no" title="function not covered" >cleanupRelationships(</span>table, tables, oldTable = <span class="branch-0 cbranch-no" title="branch not covered" >null)</span> {
836
+ function <span class="fstat-no" title="function not covered" >cleanupRelationships(</span>
837
+ table: Table,
838
+ tables: Record&lt;string, Table&gt;,
839
+ oldTable?: Table
840
+ ) {
758
841
  const tableToIterate = <span class="cstat-no" title="statement not covered" >oldTable ? oldTable : table</span>
759
842
  // clean up relationships in couch table schemas
760
843
  <span class="cstat-no" title="statement not covered" > for (let [key, schema] of Object.entries(tableToIterate.schema)) {</span>
761
- <span class="cstat-no" title="statement not covered" > if (</span>
844
+ <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (</span>
762
845
  schema.type === FieldTypes.LINK &amp;&amp;
763
846
  (!oldTable || table.schema[key] == null)
764
847
  ) {
765
848
  const relatedTable = <span class="cstat-no" title="statement not covered" >Object.values(tables).find(</span>
766
- <span class="fstat-no" title="function not covered" > ta</span>ble =&gt; <span class="cstat-no" title="statement not covered" >table._id === schema.tableId</span>
849
+ <span class="fstat-no" title="function not covered" > table </span>=&gt; <span class="cstat-no" title="statement not covered" >table._id === schema.tableId</span>
767
850
  )
768
851
  const foreignKey = <span class="cstat-no" title="statement not covered" >schema.foreignKey</span>
769
- <span class="cstat-no" title="statement not covered" > if (!relatedTable || !foreignKey) {</span>
852
+ <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (!relatedTable || !foreignKey) {</span>
770
853
  <span class="cstat-no" title="statement not covered" > continue</span>
771
854
  }
772
855
  <span class="cstat-no" title="statement not covered" > for (let [relatedKey, relatedSchema] of Object.entries(</span>
773
856
  relatedTable.schema
774
857
  )) {
775
- <span class="cstat-no" title="statement not covered" > if (</span>
858
+ <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (</span>
776
859
  relatedSchema.type === FieldTypes.LINK &amp;&amp;
777
860
  relatedSchema.fieldName === foreignKey
778
861
  ) {
@@ -783,18 +866,18 @@ function <span class="fstat-no" title="function not covered" >cleanupRelationshi
783
866
  }
784
867
  }
785
868
  &nbsp;
786
- function <span class="fstat-no" title="function not covered" >getDatasourceId(</span>table) {
787
- <span class="cstat-no" title="statement not covered" > if (!table) {</span>
869
+ function <span class="fstat-no" title="function not covered" >getDatasourceId(</span>table: Table) {
870
+ <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (!table) {</span>
788
871
  <span class="cstat-no" title="statement not covered" > throw "No table supplied"</span>
789
872
  }
790
- <span class="cstat-no" title="statement not covered" > if (table.sourceId) {</span>
873
+ <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (table.sourceId) {</span>
791
874
  <span class="cstat-no" title="statement not covered" > return table.sourceId</span>
792
875
  }
793
876
  <span class="cstat-no" title="statement not covered" > return breakExternalTableId(table._id).datasourceId</span>
794
877
  }
795
878
  &nbsp;
796
- function <span class="fstat-no" title="function not covered" >otherRelationshipType(</span>type) {
797
- <span class="cstat-no" title="statement not covered" > if (type === RelationshipTypes.MANY_TO_MANY) {</span>
879
+ function <span class="fstat-no" title="function not covered" >otherRelationshipType(</span>type?: string) {
880
+ <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (type === RelationshipTypes.MANY_TO_MANY) {</span>
798
881
  <span class="cstat-no" title="statement not covered" > return RelationshipTypes.MANY_TO_MANY</span>
799
882
  }
800
883
  <span class="cstat-no" title="statement not covered" > return type === RelationshipTypes.ONE_TO_MANY</span>
@@ -802,13 +885,21 @@ function <span class="fstat-no" title="function not covered" >otherRelationshipT
802
885
  : RelationshipTypes.ONE_TO_MANY
803
886
  }
804
887
  &nbsp;
805
- function <span class="fstat-no" title="function not covered" >generateManyLinkSchema(</span>datasource, column, table, relatedTable) {
888
+ function <span class="fstat-no" title="function not covered" >generateManyLinkSchema(</span>
889
+ datasource: Datasource,
890
+ column: FieldSchema,
891
+ table: Table,
892
+ relatedTable: Table
893
+ ): Table {
894
+ <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (!table.primary || !relatedTable.primary) {</span>
895
+ <span class="cstat-no" title="statement not covered" > throw new Error("Unable to generate many link schema, no primary keys")</span>
896
+ }
806
897
  const primary = <span class="cstat-no" title="statement not covered" >table.name + table.primary[0]</span>
807
898
  const relatedPrimary = <span class="cstat-no" title="statement not covered" >relatedTable.name + relatedTable.primary[0]</span>
808
899
  const jcTblName = <span class="cstat-no" title="statement not covered" >generateJunctionTableName(column, table, relatedTable)</span>
809
900
  // first create the new table
810
901
  const junctionTable = <span class="cstat-no" title="statement not covered" >{</span>
811
- _id: buildExternalTableId(datasource._id, jcTblName),
902
+ _id: buildExternalTableId(datasource._id!, jcTblName),
812
903
  name: jcTblName,
813
904
  primary: [primary, relatedPrimary],
814
905
  constrained: [primary, relatedPrimary],
@@ -830,7 +921,15 @@ function <span class="fstat-no" title="function not covered" >generateManyLinkSc
830
921
  <span class="cstat-no" title="statement not covered" > return junctionTable</span>
831
922
  }
832
923
  &nbsp;
833
- function <span class="fstat-no" title="function not covered" >generateLinkSchema(</span>column, table, relatedTable, type) {
924
+ function <span class="fstat-no" title="function not covered" >generateLinkSchema(</span>
925
+ column: FieldSchema,
926
+ table: Table,
927
+ relatedTable: Table,
928
+ type: string
929
+ ) {
930
+ <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (!table.primary || !relatedTable.primary) {</span>
931
+ <span class="cstat-no" title="statement not covered" > throw new Error("Unable to generate link schema, no primary keys")</span>
932
+ }
834
933
  const isOneSide = <span class="cstat-no" title="statement not covered" >type === RelationshipTypes.ONE_TO_MANY</span>
835
934
  const primary = <span class="cstat-no" title="statement not covered" >isOneSide ? relatedTable.primary[0] : table.primary[0]</span>
836
935
  // generate a foreign key
@@ -841,7 +940,12 @@ function <span class="fstat-no" title="function not covered" >generateLinkSchema
841
940
  <span class="cstat-no" title="statement not covered" > return foreignKey</span>
842
941
  }
843
942
  &nbsp;
844
- function <span class="fstat-no" title="function not covered" >generateRelatedSchema(</span>linkColumn, table, relatedTable, columnName) {
943
+ function <span class="fstat-no" title="function not covered" >generateRelatedSchema(</span>
944
+ linkColumn: FieldSchema,
945
+ table: Table,
946
+ relatedTable: Table,
947
+ columnName: string
948
+ ) {
845
949
  // generate column for other table
846
950
  const relatedSchema = <span class="cstat-no" title="statement not covered" >cloneDeep(linkColumn)</span>
847
951
  // swap them from the main link
@@ -864,52 +968,55 @@ function <span class="fstat-no" title="function not covered" >generateRelatedSch
864
968
  <span class="cstat-no" title="statement not covered" > table.schema[columnName] = relatedSchema</span>
865
969
  }
866
970
  &nbsp;
867
- function <span class="fstat-no" title="function not covered" >isRelationshipSetup(</span>column) {
971
+ function <span class="fstat-no" title="function not covered" >isRelationshipSetup(</span>column: FieldSchema) {
868
972
  <span class="cstat-no" title="statement not covered" > return column.foreignKey || column.through</span>
869
973
  }
870
974
  &nbsp;
871
- exports.save = <span class="fstat-no" title="function not covered" >as</span>ync function (ctx) {
872
- const table = <span class="cstat-no" title="statement not covered" >ctx.request.body</span>
873
- const { _rename: renamed } = <span class="cstat-no" title="statement not covered" >table</span>
975
+ export async function <span class="fstat-no" title="function not covered" >save(</span>ctx: BBContext) {
976
+ const table: TableRequest = <span class="cstat-no" title="statement not covered" >ctx.request.body</span>
977
+ const renamed = <span class="cstat-no" title="statement not covered" >table?._rename</span>
874
978
  // can't do this right now
875
979
  <span class="cstat-no" title="statement not covered" > delete table.dataImport</span>
876
- const datasourceId = <span class="cstat-no" title="statement not covered" >getDatasourceId(ctx.request.body)</span>
980
+ const datasourceId = <span class="cstat-no" title="statement not covered" >getDatasourceId(ctx.request.body)!</span>
877
981
  // table doesn't exist already, note that it is created
878
- <span class="cstat-no" title="statement not covered" > if (!table._id) {</span>
982
+ <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (!table._id) {</span>
879
983
  <span class="cstat-no" title="statement not covered" > table.created = true</span>
880
984
  }
881
- let tableToSave = <span class="cstat-no" title="statement not covered" >{</span>
985
+ let tableToSave<span class="cstat-no" title="statement not covered" >: TableRequest = {</span>
882
986
  type: "table",
883
987
  _id: buildExternalTableId(datasourceId, table.name),
884
988
  ...table,
885
989
  }
886
990
  &nbsp;
887
991
  let oldTable
888
- <span class="cstat-no" title="statement not covered" > if (ctx.request.body &amp;&amp; ctx.request.body._id) {</span>
992
+ <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (ctx.request.body &amp;&amp; ctx.request.body._id) {</span>
889
993
  <span class="cstat-no" title="statement not covered" > oldTable = await sdk.tables.getTable(ctx.request.body._id)</span>
890
994
  }
891
995
  &nbsp;
892
- <span class="cstat-no" title="statement not covered" > if (hasTypeChanged(tableToSave, oldTable)) {</span>
996
+ <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (hasTypeChanged(tableToSave, oldTable)) {</span>
893
997
  <span class="cstat-no" title="statement not covered" > ctx.throw(400, "A column type has changed.")</span>
894
998
  }
895
999
  &nbsp;
896
- const db = <span class="cstat-no" title="statement not covered" >getAppDB()</span>
1000
+ const db = <span class="cstat-no" title="statement not covered" >context.getAppDB()</span>
897
1001
  const datasource = <span class="cstat-no" title="statement not covered" >await db.get(datasourceId)</span>
898
1002
  const oldTables = <span class="cstat-no" title="statement not covered" >cloneDeep(datasource.entities)</span>
899
- const tables = <span class="cstat-no" title="statement not covered" >datasource.entities</span>
1003
+ const tables: Record&lt;string, Table&gt; = <span class="cstat-no" title="statement not covered" >datasource.entities</span>
900
1004
  &nbsp;
901
1005
  const extraTablesToUpdate = <span class="cstat-no" title="statement not covered" >[]</span>
902
1006
  &nbsp;
903
1007
  // check if relations need setup
904
1008
  <span class="cstat-no" title="statement not covered" > for (let schema of Object.values(tableToSave.schema)) {</span>
905
- <span class="cstat-no" title="statement not covered" > if (schema.type !== FieldTypes.LINK || isRelationshipSetup(schema)) {</span>
1009
+ <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (schema.type !== FieldTypes.LINK || isRelationshipSetup(schema)) {</span>
906
1010
  <span class="cstat-no" title="statement not covered" > continue</span>
907
1011
  }
908
1012
  const relatedTable = <span class="cstat-no" title="statement not covered" >Object.values(tables).find(</span>
909
- <span class="fstat-no" title="function not covered" > ta</span>ble =&gt; <span class="cstat-no" title="statement not covered" >table._id === schema.tableId</span>
1013
+ <span class="fstat-no" title="function not covered" > table </span>=&gt; <span class="cstat-no" title="statement not covered" >table._id === schema.tableId</span>
910
1014
  )
911
- const relatedColumnName = <span class="cstat-no" title="statement not covered" >schema.fieldName</span>
912
- const relationType = <span class="cstat-no" title="statement not covered" >schema.relationshipType</span>
1015
+ <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (!relatedTable) {</span>
1016
+ <span class="cstat-no" title="statement not covered" > continue</span>
1017
+ }
1018
+ const relatedColumnName = <span class="cstat-no" title="statement not covered" >schema.fieldName!</span>
1019
+ const relationType = <span class="cstat-no" title="statement not covered" >schema.relationshipType!</span>
913
1020
  <span class="cstat-no" title="statement not covered" > if (relationType === RelationshipTypes.MANY_TO_MANY) {</span>
914
1021
  const junctionTable = <span class="cstat-no" title="statement not covered" >generateManyLinkSchema(</span>
915
1022
  datasource,
@@ -917,7 +1024,7 @@ exports.save = <span class="fstat-no" title="function not covered" >as</span>ync
917
1024
  table,
918
1025
  relatedTable
919
1026
  )
920
- <span class="cstat-no" title="statement not covered" > if (tables[junctionTable.name]) {</span>
1027
+ <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (tables[junctionTable.name]) {</span>
921
1028
  <span class="cstat-no" title="statement not covered" > throw "Junction table already exists, cannot create another relationship."</span>
922
1029
  }
923
1030
  <span class="cstat-no" title="statement not covered" > tables[junctionTable.name] = junctionTable</span>
@@ -932,14 +1039,14 @@ exports.save = <span class="fstat-no" title="function not covered" >as</span>ync
932
1039
  relationType
933
1040
  )
934
1041
  <span class="cstat-no" title="statement not covered" > fkTable.schema[foreignKey] = foreignKeyStructure(foreignKey)</span>
935
- <span class="cstat-no" title="statement not covered" > if (fkTable.constrained == null) {</span>
1042
+ <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (fkTable.constrained == null) {</span>
936
1043
  <span class="cstat-no" title="statement not covered" > fkTable.constrained = []</span>
937
1044
  }
938
- <span class="cstat-no" title="statement not covered" > if (fkTable.constrained.indexOf(foreignKey) === -1) {</span>
1045
+ <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (fkTable.constrained.indexOf(foreignKey) === -1) {</span>
939
1046
  <span class="cstat-no" title="statement not covered" > fkTable.constrained.push(foreignKey)</span>
940
1047
  }
941
1048
  // foreign key is in other table, need to save it to external
942
- <span class="cstat-no" title="statement not covered" > if (fkTable._id !== table._id) {</span>
1049
+ <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (fkTable._id !== table._id) {</span>
943
1050
  <span class="cstat-no" title="statement not covered" > extraTablesToUpdate.push(fkTable)</span>
944
1051
  }
945
1052
  }
@@ -949,9 +1056,7 @@ exports.save = <span class="fstat-no" title="function not covered" >as</span>ync
949
1056
  &nbsp;
950
1057
  <span class="cstat-no" title="statement not covered" > cleanupRelationships(tableToSave, tables, oldTable)</span>
951
1058
  &nbsp;
952
- const operation = <span class="cstat-no" title="statement not covered" >oldTable</span>
953
- ? DataSourceOperation.UPDATE_TABLE
954
- : DataSourceOperation.CREATE_TABLE
1059
+ const operation = <span class="cstat-no" title="statement not covered" >oldTable ? Operation.UPDATE_TABLE : Operation.CREATE_TABLE</span>
955
1060
  <span class="cstat-no" title="statement not covered" > await makeTableRequest(</span>
956
1061
  datasource,
957
1062
  operation,
@@ -963,15 +1068,13 @@ exports.save = <span class="fstat-no" title="function not covered" >as</span>ync
963
1068
  // update any extra tables (like foreign keys in other tables)
964
1069
  <span class="cstat-no" title="statement not covered" > for (let extraTable of extraTablesToUpdate) {</span>
965
1070
  const oldExtraTable = <span class="cstat-no" title="statement not covered" >oldTables[extraTable.name]</span>
966
- let op = <span class="cstat-no" title="statement not covered" >oldExtraTable</span>
967
- ? DataSourceOperation.UPDATE_TABLE
968
- : DataSourceOperation.CREATE_TABLE
1071
+ let op = <span class="cstat-no" title="statement not covered" >oldExtraTable ? Operation.UPDATE_TABLE : Operation.CREATE_TABLE</span>
969
1072
  <span class="cstat-no" title="statement not covered" > await makeTableRequest(datasource, op, extraTable, tables, oldExtraTable)</span>
970
1073
  }
971
1074
  &nbsp;
972
1075
  // make sure the constrained list, all still exist
973
- <span class="cstat-no" title="statement not covered" > if (Array.isArray(tableToSave.constrained)) {</span>
974
- <span class="cstat-no" title="statement not covered" > tableToSave.constrained = tableToSave.constrained.filter(<span class="fstat-no" title="function not covered" >co</span>nstraint =&gt;</span>
1076
+ <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (Array.isArray(tableToSave.constrained)) {</span>
1077
+ <span class="cstat-no" title="statement not covered" > tableToSave.constrained = tableToSave.constrained.filter(<span class="fstat-no" title="function not covered" >constraint </span>=&gt;</span>
975
1078
  <span class="cstat-no" title="statement not covered" > Object.keys(tableToSave.schema).includes(constraint)</span>
976
1079
  )
977
1080
  }
@@ -985,18 +1088,20 @@ exports.save = <span class="fstat-no" title="function not covered" >as</span>ync
985
1088
  <span class="cstat-no" title="statement not covered" > return tableToSave</span>
986
1089
  }
987
1090
  &nbsp;
988
- exports.destroy = <span class="fstat-no" title="function not covered" >as</span>ync function (ctx) {
989
- const tableToDelete = <span class="cstat-no" title="statement not covered" >await sdk.tables.getTable(ctx.params.tableId)</span>
990
- <span class="cstat-no" title="statement not covered" > if (!tableToDelete || !tableToDelete.created) {</span>
1091
+ export async function <span class="fstat-no" title="function not covered" >destroy(</span>ctx: BBContext) {
1092
+ const tableToDelete: TableRequest = <span class="cstat-no" title="statement not covered" >await sdk.tables.getTable(</span>
1093
+ ctx.params.tableId
1094
+ )
1095
+ <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (!tableToDelete || !tableToDelete.created) {</span>
991
1096
  <span class="cstat-no" title="statement not covered" > ctx.throw(400, "Cannot delete tables which weren't created in Budibase.")</span>
992
1097
  }
993
1098
  const datasourceId = <span class="cstat-no" title="statement not covered" >getDatasourceId(tableToDelete)</span>
994
1099
  &nbsp;
995
- const db = <span class="cstat-no" title="statement not covered" >getAppDB()</span>
1100
+ const db = <span class="cstat-no" title="statement not covered" >context.getAppDB()</span>
996
1101
  const datasource = <span class="cstat-no" title="statement not covered" >await db.get(datasourceId)</span>
997
1102
  const tables = <span class="cstat-no" title="statement not covered" >datasource.entities</span>
998
1103
  &nbsp;
999
- const operation = <span class="cstat-no" title="statement not covered" >DataSourceOperation.DELETE_TABLE</span>
1104
+ const operation = <span class="cstat-no" title="statement not covered" >Operation.DELETE_TABLE</span>
1000
1105
  <span class="cstat-no" title="statement not covered" > await makeTableRequest(datasource, operation, tableToDelete, tables)</span>
1001
1106
  &nbsp;
1002
1107
  <span class="cstat-no" title="statement not covered" > cleanupRelationships(tableToDelete, tables)</span>
@@ -1007,10 +1112,10 @@ exports.destroy = <span class="fstat-no" title="function not covered" >as</span>
1007
1112
  <span class="cstat-no" title="statement not covered" > return tableToDelete</span>
1008
1113
  }
1009
1114
  &nbsp;
1010
- exports.bulkImport = <span class="fstat-no" title="function not covered" >as</span>ync function (ctx) {
1115
+ export async function <span class="fstat-no" title="function not covered" >bulkImport(</span>ctx: BBContext) {
1011
1116
  const table = <span class="cstat-no" title="statement not covered" >await sdk.tables.getTable(ctx.params.tableId)</span>
1012
1117
  const { dataImport } = <span class="cstat-no" title="statement not covered" >ctx.request.body</span>
1013
- <span class="cstat-no" title="statement not covered" > if (!dataImport || !dataImport.schema || !dataImport.csvString) {</span>
1118
+ <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (!dataImport || !dataImport.schema || !dataImport.csvString) {</span>
1014
1119
  <span class="cstat-no" title="statement not covered" > ctx.throw(400, "Provided data import information is invalid.")</span>
1015
1120
  }
1016
1121
  const rows = <span class="cstat-no" title="statement not covered" >await csvParser.transform({</span>
@@ -1030,7 +1135,7 @@ exports.bulkImport = <span class="fstat-no" title="function not covered" >as</sp
1030
1135
  <div class='footer quiet pad2 space-top1 center small'>
1031
1136
  Code coverage generated by
1032
1137
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
1033
- at Wed Nov 23 2022 08:44:01 GMT+0000 (Coordinated Universal Time)
1138
+ at Wed Nov 23 2022 13:28:07 GMT+0000 (Coordinated Universal Time)
1034
1139
  </div>
1035
1140
  <script src="../../../../prettify.js"></script>
1036
1141
  <script>