@budibase/server 2.3.2-alpha.2 → 2.3.2-alpha.3

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 (482) hide show
  1. package/builder/assets/{index.b05c7fc9.js → index.bef36368.js} +1 -1
  2. package/builder/index.html +1 -1
  3. package/coverage/clover.xml +4152 -3905
  4. package/coverage/coverage-final.json +271 -270
  5. package/coverage/lcov-report/index.html +113 -98
  6. package/coverage/lcov-report/src/api/controllers/analytics.ts.html +6 -6
  7. package/coverage/lcov-report/src/api/controllers/apikeys.ts.html +5 -5
  8. package/coverage/lcov-report/src/api/controllers/application.ts.html +82 -82
  9. package/coverage/lcov-report/src/api/controllers/auth.ts.html +9 -9
  10. package/coverage/lcov-report/src/api/controllers/automation.ts.html +24 -24
  11. package/coverage/lcov-report/src/api/controllers/backup.ts.html +6 -6
  12. package/coverage/lcov-report/src/api/controllers/cloud.ts.html +12 -12
  13. package/coverage/lcov-report/src/api/controllers/component.ts.html +5 -5
  14. package/coverage/lcov-report/src/api/controllers/datasource.ts.html +37 -37
  15. package/coverage/lcov-report/src/api/controllers/deploy/Deployment.ts.html +14 -14
  16. package/coverage/lcov-report/src/api/controllers/deploy/index.html +1 -1
  17. package/coverage/lcov-report/src/api/controllers/deploy/index.ts.html +80 -80
  18. package/coverage/lcov-report/src/api/controllers/dev.ts.html +17 -17
  19. package/coverage/lcov-report/src/api/controllers/index.html +5 -5
  20. package/coverage/lcov-report/src/api/controllers/integration.ts.html +4 -4
  21. package/coverage/lcov-report/src/api/controllers/layout.ts.html +6 -6
  22. package/coverage/lcov-report/src/api/controllers/metadata.ts.html +9 -9
  23. package/coverage/lcov-report/src/api/controllers/migrations.ts.html +4 -4
  24. package/coverage/lcov-report/src/api/controllers/permission.ts.html +13 -13
  25. package/coverage/lcov-report/src/api/controllers/plugin/file.ts.html +2 -2
  26. package/coverage/lcov-report/src/api/controllers/plugin/github.ts.html +4 -4
  27. package/coverage/lcov-report/src/api/controllers/plugin/index.html +1 -1
  28. package/coverage/lcov-report/src/api/controllers/plugin/index.ts.html +18 -18
  29. package/coverage/lcov-report/src/api/controllers/plugin/npm.ts.html +5 -5
  30. package/coverage/lcov-report/src/api/controllers/plugin/uploaders.ts.html +5 -5
  31. package/coverage/lcov-report/src/api/controllers/plugin/url.ts.html +3 -3
  32. package/coverage/lcov-report/src/api/controllers/plugin/utils.ts.html +3 -3
  33. package/coverage/lcov-report/src/api/controllers/public/applications.ts.html +6 -6
  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 +2 -2
  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 +7 -7
  38. package/coverage/lcov-report/src/api/controllers/public/mapping/queries.ts.html +2 -2
  39. package/coverage/lcov-report/src/api/controllers/public/mapping/rows.ts.html +2 -2
  40. package/coverage/lcov-report/src/api/controllers/public/mapping/tables.ts.html +2 -2
  41. package/coverage/lcov-report/src/api/controllers/public/mapping/users.ts.html +2 -2
  42. package/coverage/lcov-report/src/api/controllers/public/queries.ts.html +4 -4
  43. package/coverage/lcov-report/src/api/controllers/public/rows.ts.html +5 -5
  44. package/coverage/lcov-report/src/api/controllers/public/tables.ts.html +4 -4
  45. package/coverage/lcov-report/src/api/controllers/public/users.ts.html +6 -6
  46. package/coverage/lcov-report/src/api/controllers/public/utils.ts.html +4 -4
  47. package/coverage/lcov-report/src/api/controllers/query/import/index.html +1 -1
  48. package/coverage/lcov-report/src/api/controllers/query/import/index.ts.html +7 -7
  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 +3 -3
  51. package/coverage/lcov-report/src/api/controllers/query/import/sources/base/openapi.ts.html +5 -5
  52. package/coverage/lcov-report/src/api/controllers/query/import/sources/curl.ts.html +7 -7
  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 +9 -9
  55. package/coverage/lcov-report/src/api/controllers/query/import/sources/openapi3.ts.html +13 -13
  56. package/coverage/lcov-report/src/api/controllers/query/import/sources/tests/curl/curl.spec.js.html +1 -1
  57. package/coverage/lcov-report/src/api/controllers/query/import/sources/tests/curl/index.html +1 -1
  58. package/coverage/lcov-report/src/api/controllers/query/import/sources/tests/openapi2/index.html +1 -1
  59. package/coverage/lcov-report/src/api/controllers/query/import/sources/tests/openapi2/openapi2.spec.js.html +1 -1
  60. package/coverage/lcov-report/src/api/controllers/query/import/sources/tests/openapi3/index.html +1 -1
  61. package/coverage/lcov-report/src/api/controllers/query/import/sources/tests/openapi3/openapi3.spec.js.html +1 -1
  62. package/coverage/lcov-report/src/api/controllers/query/import/tests/index.html +1 -1
  63. package/coverage/lcov-report/src/api/controllers/query/import/tests/index.spec.js.html +1 -1
  64. package/coverage/lcov-report/src/api/controllers/query/index.html +1 -1
  65. package/coverage/lcov-report/src/api/controllers/query/index.ts.html +22 -22
  66. package/coverage/lcov-report/src/api/controllers/query/validation.ts.html +9 -9
  67. package/coverage/lcov-report/src/api/controllers/role.ts.html +8 -8
  68. package/coverage/lcov-report/src/api/controllers/routing.ts.html +6 -6
  69. package/coverage/lcov-report/src/api/controllers/row/ExternalRequest.ts.html +431 -419
  70. package/coverage/lcov-report/src/api/controllers/row/external.ts.html +211 -175
  71. package/coverage/lcov-report/src/api/controllers/row/index.html +40 -40
  72. package/coverage/lcov-report/src/api/controllers/row/index.ts.html +77 -77
  73. package/coverage/lcov-report/src/api/controllers/row/internal.ts.html +19 -19
  74. package/coverage/lcov-report/src/api/controllers/row/internalSearch.ts.html +6 -6
  75. package/coverage/lcov-report/src/api/controllers/row/staticFormula.ts.html +7 -7
  76. package/coverage/lcov-report/src/api/controllers/row/utils.ts.html +17 -17
  77. package/coverage/lcov-report/src/api/controllers/screen.ts.html +7 -7
  78. package/coverage/lcov-report/src/api/controllers/script.ts.html +2 -2
  79. package/coverage/lcov-report/src/api/controllers/static/index.html +1 -1
  80. package/coverage/lcov-report/src/api/controllers/static/index.ts.html +22 -22
  81. package/coverage/lcov-report/src/api/controllers/table/bulkFormula.ts.html +10 -10
  82. package/coverage/lcov-report/src/api/controllers/table/external.ts.html +198 -195
  83. package/coverage/lcov-report/src/api/controllers/table/index.html +36 -36
  84. package/coverage/lcov-report/src/api/controllers/table/index.ts.html +40 -40
  85. package/coverage/lcov-report/src/api/controllers/table/internal.ts.html +13 -13
  86. package/coverage/lcov-report/src/api/controllers/table/utils.ts.html +33 -33
  87. package/coverage/lcov-report/src/api/controllers/templates.ts.html +7 -7
  88. package/coverage/lcov-report/src/api/controllers/user.ts.html +14 -14
  89. package/coverage/lcov-report/src/api/controllers/view/exporters.ts.html +2 -2
  90. package/coverage/lcov-report/src/api/controllers/view/index.html +1 -1
  91. package/coverage/lcov-report/src/api/controllers/view/index.ts.html +16 -16
  92. package/coverage/lcov-report/src/api/controllers/view/tests/index.html +1 -1
  93. package/coverage/lcov-report/src/api/controllers/view/tests/viewBuilder.spec.js.html +1 -1
  94. package/coverage/lcov-report/src/api/controllers/view/utils.ts.html +5 -5
  95. package/coverage/lcov-report/src/api/controllers/view/viewBuilder.ts.html +7 -7
  96. package/coverage/lcov-report/src/api/controllers/webhook.ts.html +14 -14
  97. package/coverage/lcov-report/src/api/index.html +1 -1
  98. package/coverage/lcov-report/src/api/index.ts.html +27 -27
  99. package/coverage/lcov-report/src/api/routes/analytics.ts.html +7 -7
  100. package/coverage/lcov-report/src/api/routes/apikeys.ts.html +8 -8
  101. package/coverage/lcov-report/src/api/routes/application.ts.html +10 -10
  102. package/coverage/lcov-report/src/api/routes/auth.ts.html +6 -6
  103. package/coverage/lcov-report/src/api/routes/automation.ts.html +11 -11
  104. package/coverage/lcov-report/src/api/routes/backup.ts.html +8 -8
  105. package/coverage/lcov-report/src/api/routes/cloud.ts.html +8 -8
  106. package/coverage/lcov-report/src/api/routes/component.ts.html +8 -8
  107. package/coverage/lcov-report/src/api/routes/datasource.ts.html +9 -9
  108. package/coverage/lcov-report/src/api/routes/deploy.ts.html +8 -8
  109. package/coverage/lcov-report/src/api/routes/dev.ts.html +13 -13
  110. package/coverage/lcov-report/src/api/routes/index.html +1 -1
  111. package/coverage/lcov-report/src/api/routes/index.ts.html +35 -35
  112. package/coverage/lcov-report/src/api/routes/integration.ts.html +8 -8
  113. package/coverage/lcov-report/src/api/routes/layout.ts.html +8 -8
  114. package/coverage/lcov-report/src/api/routes/metadata.ts.html +9 -9
  115. package/coverage/lcov-report/src/api/routes/migrations.ts.html +7 -7
  116. package/coverage/lcov-report/src/api/routes/permission.ts.html +9 -9
  117. package/coverage/lcov-report/src/api/routes/plugin.ts.html +8 -8
  118. package/coverage/lcov-report/src/api/routes/public/applications.ts.html +14 -14
  119. package/coverage/lcov-report/src/api/routes/public/index.html +1 -1
  120. package/coverage/lcov-report/src/api/routes/public/index.ts.html +52 -52
  121. package/coverage/lcov-report/src/api/routes/public/middleware/index.html +1 -1
  122. package/coverage/lcov-report/src/api/routes/public/middleware/mapper.ts.html +4 -4
  123. package/coverage/lcov-report/src/api/routes/public/queries.ts.html +9 -9
  124. package/coverage/lcov-report/src/api/routes/public/rows.ts.html +12 -12
  125. package/coverage/lcov-report/src/api/routes/public/tables.ts.html +12 -12
  126. package/coverage/lcov-report/src/api/routes/public/tests/compare.spec.js.html +2 -2
  127. package/coverage/lcov-report/src/api/routes/public/tests/index.html +9 -9
  128. package/coverage/lcov-report/src/api/routes/public/tests/users.spec.js.html +2 -2
  129. package/coverage/lcov-report/src/api/routes/public/tests/utils.ts.html +78 -27
  130. package/coverage/lcov-report/src/api/routes/public/users.ts.html +12 -12
  131. package/coverage/lcov-report/src/api/routes/public/utils/Endpoint.ts.html +19 -19
  132. package/coverage/lcov-report/src/api/routes/public/utils/index.html +1 -1
  133. package/coverage/lcov-report/src/api/routes/query.ts.html +11 -11
  134. package/coverage/lcov-report/src/api/routes/role.ts.html +9 -9
  135. package/coverage/lcov-report/src/api/routes/routing.ts.html +8 -8
  136. package/coverage/lcov-report/src/api/routes/row.ts.html +11 -11
  137. package/coverage/lcov-report/src/api/routes/screen.ts.html +9 -9
  138. package/coverage/lcov-report/src/api/routes/script.ts.html +1 -1
  139. package/coverage/lcov-report/src/api/routes/static.ts.html +14 -14
  140. package/coverage/lcov-report/src/api/routes/table.ts.html +11 -11
  141. package/coverage/lcov-report/src/api/routes/templates.ts.html +8 -8
  142. package/coverage/lcov-report/src/api/routes/tests/analytics.spec.js.html +1 -1
  143. package/coverage/lcov-report/src/api/routes/tests/apikeys.spec.js.html +1 -1
  144. package/coverage/lcov-report/src/api/routes/tests/application.spec.ts.html +1 -1
  145. package/coverage/lcov-report/src/api/routes/tests/auth.spec.js.html +1 -1
  146. package/coverage/lcov-report/src/api/routes/tests/automation.spec.js.html +1 -1
  147. package/coverage/lcov-report/src/api/routes/tests/backup.spec.ts.html +1 -1
  148. package/coverage/lcov-report/src/api/routes/tests/cloud.seq.spec.ts.html +2 -2
  149. package/coverage/lcov-report/src/api/routes/tests/component.spec.js.html +1 -1
  150. package/coverage/lcov-report/src/api/routes/tests/datasource.spec.ts.html +1 -1
  151. package/coverage/lcov-report/src/api/routes/tests/dev.spec.js.html +1 -1
  152. package/coverage/lcov-report/src/api/routes/tests/index.html +1 -1
  153. package/coverage/lcov-report/src/api/routes/tests/integration.spec.js.html +1 -1
  154. package/coverage/lcov-report/src/api/routes/tests/internalSearch.spec.js.html +1 -1
  155. package/coverage/lcov-report/src/api/routes/tests/layout.spec.js.html +1 -1
  156. package/coverage/lcov-report/src/api/routes/tests/metadata.spec.js.html +1 -1
  157. package/coverage/lcov-report/src/api/routes/tests/misc.spec.js.html +1 -1
  158. package/coverage/lcov-report/src/api/routes/tests/permissions.spec.js.html +1 -1
  159. package/coverage/lcov-report/src/api/routes/tests/plugin.spec.ts.html +1 -1
  160. package/coverage/lcov-report/src/api/routes/tests/query.seq.spec.js.html +1 -1
  161. package/coverage/lcov-report/src/api/routes/tests/role.spec.js.html +1 -1
  162. package/coverage/lcov-report/src/api/routes/tests/routing.spec.js.html +1 -1
  163. package/coverage/lcov-report/src/api/routes/tests/row.spec.js.html +1 -1
  164. package/coverage/lcov-report/src/api/routes/tests/screen.spec.js.html +1 -1
  165. package/coverage/lcov-report/src/api/routes/tests/static.spec.js.html +1 -1
  166. package/coverage/lcov-report/src/api/routes/tests/table.spec.js.html +1 -1
  167. package/coverage/lcov-report/src/api/routes/tests/templates.spec.js.html +1 -1
  168. package/coverage/lcov-report/src/api/routes/tests/user.spec.js.html +1 -1
  169. package/coverage/lcov-report/src/api/routes/tests/utilities/TestFunctions.ts.html +2 -2
  170. package/coverage/lcov-report/src/api/routes/tests/utilities/index.html +1 -1
  171. package/coverage/lcov-report/src/api/routes/tests/utilities/index.ts.html +14 -14
  172. package/coverage/lcov-report/src/api/routes/tests/view.spec.js.html +1 -1
  173. package/coverage/lcov-report/src/api/routes/tests/webhook.spec.js.html +1 -1
  174. package/coverage/lcov-report/src/api/routes/user.ts.html +9 -9
  175. package/coverage/lcov-report/src/api/routes/utils/index.html +1 -1
  176. package/coverage/lcov-report/src/api/routes/utils/validators.ts.html +42 -42
  177. package/coverage/lcov-report/src/api/routes/view.ts.html +10 -10
  178. package/coverage/lcov-report/src/api/routes/webhook.ts.html +10 -10
  179. package/coverage/lcov-report/src/app.ts.html +33 -33
  180. package/coverage/lcov-report/src/automations/actions.ts.html +24 -24
  181. package/coverage/lcov-report/src/automations/automationUtils.ts.html +4 -4
  182. package/coverage/lcov-report/src/automations/bullboard.ts.html +9 -9
  183. package/coverage/lcov-report/src/automations/index.html +1 -1
  184. package/coverage/lcov-report/src/automations/index.ts.html +9 -9
  185. package/coverage/lcov-report/src/automations/logging/index.html +1 -1
  186. package/coverage/lcov-report/src/automations/logging/index.ts.html +4 -4
  187. package/coverage/lcov-report/src/automations/steps/bash.ts.html +8 -8
  188. package/coverage/lcov-report/src/automations/steps/createRow.ts.html +7 -7
  189. package/coverage/lcov-report/src/automations/steps/delay.ts.html +5 -5
  190. package/coverage/lcov-report/src/automations/steps/deleteRow.ts.html +7 -7
  191. package/coverage/lcov-report/src/automations/steps/discord.ts.html +8 -8
  192. package/coverage/lcov-report/src/automations/steps/executeQuery.ts.html +7 -7
  193. package/coverage/lcov-report/src/automations/steps/executeScript.ts.html +7 -7
  194. package/coverage/lcov-report/src/automations/steps/filter.ts.html +6 -6
  195. package/coverage/lcov-report/src/automations/steps/index.html +1 -1
  196. package/coverage/lcov-report/src/automations/steps/integromat.ts.html +6 -6
  197. package/coverage/lcov-report/src/automations/steps/loop.ts.html +3 -3
  198. package/coverage/lcov-report/src/automations/steps/outgoingWebhook.ts.html +9 -9
  199. package/coverage/lcov-report/src/automations/steps/queryRows.ts.html +13 -13
  200. package/coverage/lcov-report/src/automations/steps/sendSmtpEmail.ts.html +6 -6
  201. package/coverage/lcov-report/src/automations/steps/serverLog.ts.html +4 -4
  202. package/coverage/lcov-report/src/automations/steps/slack.ts.html +6 -6
  203. package/coverage/lcov-report/src/automations/steps/updateRow.ts.html +7 -7
  204. package/coverage/lcov-report/src/automations/steps/utils.ts.html +1 -1
  205. package/coverage/lcov-report/src/automations/steps/zapier.ts.html +6 -6
  206. package/coverage/lcov-report/src/automations/tests/automation.spec.js.html +1 -1
  207. package/coverage/lcov-report/src/automations/tests/bash.spec.js.html +1 -1
  208. package/coverage/lcov-report/src/automations/tests/createRow.spec.ts.html +1 -1
  209. package/coverage/lcov-report/src/automations/tests/delay.spec.js.html +1 -1
  210. package/coverage/lcov-report/src/automations/tests/deleteRow.spec.ts.html +1 -1
  211. package/coverage/lcov-report/src/automations/tests/discord.spec.js.html +1 -1
  212. package/coverage/lcov-report/src/automations/tests/executeQuery.spec.js.html +1 -1
  213. package/coverage/lcov-report/src/automations/tests/executeScript.spec.js.html +1 -1
  214. package/coverage/lcov-report/src/automations/tests/filter.spec.js.html +1 -1
  215. package/coverage/lcov-report/src/automations/tests/index.html +1 -1
  216. package/coverage/lcov-report/src/automations/tests/loop.spec.ts.html +1 -1
  217. package/coverage/lcov-report/src/automations/tests/outgoingWebhook.spec.js.html +1 -1
  218. package/coverage/lcov-report/src/automations/tests/queryRows.spec.js.html +1 -1
  219. package/coverage/lcov-report/src/automations/tests/sendSmtpEmail.spec.js.html +1 -1
  220. package/coverage/lcov-report/src/automations/tests/serverLog.spec.js.html +1 -1
  221. package/coverage/lcov-report/src/automations/tests/updateRow.spec.js.html +1 -1
  222. package/coverage/lcov-report/src/automations/tests/utilities/index.html +1 -1
  223. package/coverage/lcov-report/src/automations/tests/utilities/index.ts.html +1 -1
  224. package/coverage/lcov-report/src/automations/tests/zapier.spec.js.html +1 -1
  225. package/coverage/lcov-report/src/automations/triggerInfo/app.ts.html +3 -3
  226. package/coverage/lcov-report/src/automations/triggerInfo/cron.ts.html +3 -3
  227. package/coverage/lcov-report/src/automations/triggerInfo/index.html +1 -1
  228. package/coverage/lcov-report/src/automations/triggerInfo/index.ts.html +8 -8
  229. package/coverage/lcov-report/src/automations/triggerInfo/rowDeleted.ts.html +3 -3
  230. package/coverage/lcov-report/src/automations/triggerInfo/rowSaved.ts.html +3 -3
  231. package/coverage/lcov-report/src/automations/triggerInfo/rowUpdated.ts.html +3 -3
  232. package/coverage/lcov-report/src/automations/triggerInfo/webhook.ts.html +3 -3
  233. package/coverage/lcov-report/src/automations/triggers.ts.html +29 -29
  234. package/coverage/lcov-report/src/automations/unitTests/automationUtils.spec.ts.html +1 -1
  235. package/coverage/lcov-report/src/automations/unitTests/index.html +1 -1
  236. package/coverage/lcov-report/src/automations/utils.ts.html +36 -36
  237. package/coverage/lcov-report/src/constants/index.html +16 -16
  238. package/coverage/lcov-report/src/constants/index.ts.html +33 -99
  239. package/coverage/lcov-report/src/constants/layouts.ts.html +4 -4
  240. package/coverage/lcov-report/src/constants/screens.ts.html +3 -3
  241. package/coverage/lcov-report/src/db/defaultData/datasource_bb_default.ts.html +33 -45
  242. package/coverage/lcov-report/src/db/defaultData/employeeImport.ts.html +2 -2
  243. package/coverage/lcov-report/src/db/defaultData/expensesImport.ts.html +2 -2
  244. package/coverage/lcov-report/src/db/defaultData/index.html +11 -11
  245. package/coverage/lcov-report/src/db/defaultData/inventoryImport.ts.html +2 -2
  246. package/coverage/lcov-report/src/db/defaultData/jobsImport.ts.html +2 -2
  247. package/coverage/lcov-report/src/db/dynamoClient.ts.html +15 -15
  248. package/coverage/lcov-report/src/db/inMemoryView.ts.html +4 -4
  249. package/coverage/lcov-report/src/db/index.html +5 -5
  250. package/coverage/lcov-report/src/db/index.ts.html +7 -7
  251. package/coverage/lcov-report/src/db/linkedRows/LinkController.ts.html +15 -12
  252. package/coverage/lcov-report/src/db/linkedRows/LinkDocument.ts.html +4 -4
  253. package/coverage/lcov-report/src/db/linkedRows/index.html +10 -10
  254. package/coverage/lcov-report/src/db/linkedRows/index.ts.html +9 -9
  255. package/coverage/lcov-report/src/db/linkedRows/linkUtils.ts.html +5 -5
  256. package/coverage/lcov-report/src/db/newid.ts.html +4 -4
  257. package/coverage/lcov-report/src/db/tests/index.html +1 -1
  258. package/coverage/lcov-report/src/db/tests/linkController.spec.js.html +1 -1
  259. package/coverage/lcov-report/src/db/tests/linkTests.spec.js.html +1 -1
  260. package/coverage/lcov-report/src/db/utils.ts.html +36 -36
  261. package/coverage/lcov-report/src/definitions/automations.ts.html +2 -2
  262. package/coverage/lcov-report/src/definitions/index.html +1 -1
  263. package/coverage/lcov-report/src/environment.ts.html +21 -21
  264. package/coverage/lcov-report/src/events/AutomationEmitter.ts.html +6 -6
  265. package/coverage/lcov-report/src/events/BudibaseEmitter.ts.html +6 -6
  266. package/coverage/lcov-report/src/events/index.html +1 -1
  267. package/coverage/lcov-report/src/events/index.ts.html +4 -4
  268. package/coverage/lcov-report/src/events/utils.ts.html +10 -10
  269. package/coverage/lcov-report/src/index.html +1 -1
  270. package/coverage/lcov-report/src/index.ts.html +1 -1
  271. package/coverage/lcov-report/src/integration-test/index.html +116 -0
  272. package/coverage/lcov-report/src/integration-test/postgres.spec.ts.html +2341 -0
  273. package/coverage/lcov-report/src/integrations/airtable.ts.html +5 -5
  274. package/coverage/lcov-report/src/integrations/arangodb.ts.html +5 -5
  275. package/coverage/lcov-report/src/integrations/base/index.html +30 -30
  276. package/coverage/lcov-report/src/integrations/base/query.ts.html +9 -9
  277. package/coverage/lcov-report/src/integrations/base/sql.ts.html +217 -187
  278. package/coverage/lcov-report/src/integrations/base/sqlTable.ts.html +107 -107
  279. package/coverage/lcov-report/src/integrations/base/utils.ts.html +5 -5
  280. package/coverage/lcov-report/src/integrations/couchdb.ts.html +5 -5
  281. package/coverage/lcov-report/src/integrations/dynamodb.ts.html +6 -6
  282. package/coverage/lcov-report/src/integrations/elasticsearch.ts.html +5 -5
  283. package/coverage/lcov-report/src/integrations/firebase.ts.html +5 -5
  284. package/coverage/lcov-report/src/integrations/googlesheets.ts.html +11 -11
  285. package/coverage/lcov-report/src/integrations/index.html +27 -27
  286. package/coverage/lcov-report/src/integrations/index.ts.html +37 -37
  287. package/coverage/lcov-report/src/integrations/microsoftSqlServer.ts.html +8 -8
  288. package/coverage/lcov-report/src/integrations/mongodb.ts.html +11 -11
  289. package/coverage/lcov-report/src/integrations/mysql.ts.html +10 -10
  290. package/coverage/lcov-report/src/integrations/oracle.ts.html +14 -14
  291. package/coverage/lcov-report/src/integrations/postgres.ts.html +65 -65
  292. package/coverage/lcov-report/src/integrations/queries/index.html +1 -1
  293. package/coverage/lcov-report/src/integrations/queries/sql.ts.html +1 -1
  294. package/coverage/lcov-report/src/integrations/redis.ts.html +5 -5
  295. package/coverage/lcov-report/src/integrations/rest.ts.html +15 -15
  296. package/coverage/lcov-report/src/integrations/s3.ts.html +6 -6
  297. package/coverage/lcov-report/src/integrations/snowflake.ts.html +5 -5
  298. package/coverage/lcov-report/src/integrations/tests/TestConfiguration.js.html +1 -1
  299. package/coverage/lcov-report/src/integrations/tests/airtable.spec.ts.html +1 -1
  300. package/coverage/lcov-report/src/integrations/tests/arangodb.spec.ts.html +1 -1
  301. package/coverage/lcov-report/src/integrations/tests/couchdb.spec.ts.html +1 -1
  302. package/coverage/lcov-report/src/integrations/tests/dynamodb.spec.ts.html +1 -1
  303. package/coverage/lcov-report/src/integrations/tests/elasticsearch.spec.ts.html +1 -1
  304. package/coverage/lcov-report/src/integrations/tests/firebase.spec.ts.html +1 -1
  305. package/coverage/lcov-report/src/integrations/tests/index.html +1 -1
  306. package/coverage/lcov-report/src/integrations/tests/microsoftSqlServer.spec.ts.html +1 -1
  307. package/coverage/lcov-report/src/integrations/tests/mongo.spec.ts.html +1 -1
  308. package/coverage/lcov-report/src/integrations/tests/mysql.spec.ts.html +1 -1
  309. package/coverage/lcov-report/src/integrations/tests/oracle.spec.ts.html +1 -1
  310. package/coverage/lcov-report/src/integrations/tests/postgres.spec.ts.html +1 -1
  311. package/coverage/lcov-report/src/integrations/tests/redis.spec.ts.html +1 -1
  312. package/coverage/lcov-report/src/integrations/tests/rest.spec.ts.html +1 -1
  313. package/coverage/lcov-report/src/integrations/tests/s3.spec.ts.html +1 -1
  314. package/coverage/lcov-report/src/integrations/tests/sql.spec.ts.html +1 -1
  315. package/coverage/lcov-report/src/integrations/utils.ts.html +74 -74
  316. package/coverage/lcov-report/src/middleware/appInfo.ts.html +5 -5
  317. package/coverage/lcov-report/src/middleware/authorized.ts.html +29 -29
  318. package/coverage/lcov-report/src/middleware/builder.ts.html +17 -17
  319. package/coverage/lcov-report/src/middleware/currentapp.ts.html +39 -39
  320. package/coverage/lcov-report/src/middleware/index.html +1 -1
  321. package/coverage/lcov-report/src/middleware/joi-validator.ts.html +1 -1
  322. package/coverage/lcov-report/src/middleware/publicApi.ts.html +4 -4
  323. package/coverage/lcov-report/src/middleware/resourceId.ts.html +28 -28
  324. package/coverage/lcov-report/src/middleware/selfhost.ts.html +1 -1
  325. package/coverage/lcov-report/src/middleware/tests/authorized.spec.js.html +1 -1
  326. package/coverage/lcov-report/src/middleware/tests/currentapp.spec.js.html +1 -1
  327. package/coverage/lcov-report/src/middleware/tests/index.html +1 -1
  328. package/coverage/lcov-report/src/middleware/tests/resourceId.spec.js.html +1 -1
  329. package/coverage/lcov-report/src/middleware/tests/selfhost.spec.js.html +1 -1
  330. package/coverage/lcov-report/src/middleware/utils.ts.html +4 -4
  331. package/coverage/lcov-report/src/migrations/functions/appUrls.ts.html +4 -4
  332. package/coverage/lcov-report/src/migrations/functions/backfill/app/automations.ts.html +5 -5
  333. package/coverage/lcov-report/src/migrations/functions/backfill/app/datasources.ts.html +5 -5
  334. package/coverage/lcov-report/src/migrations/functions/backfill/app/index.html +1 -1
  335. package/coverage/lcov-report/src/migrations/functions/backfill/app/layouts.ts.html +5 -5
  336. package/coverage/lcov-report/src/migrations/functions/backfill/app/queries.ts.html +7 -7
  337. package/coverage/lcov-report/src/migrations/functions/backfill/app/roles.ts.html +5 -5
  338. package/coverage/lcov-report/src/migrations/functions/backfill/app/screens.ts.html +5 -5
  339. package/coverage/lcov-report/src/migrations/functions/backfill/app/tables.ts.html +4 -4
  340. package/coverage/lcov-report/src/migrations/functions/backfill/app.ts.html +19 -19
  341. package/coverage/lcov-report/src/migrations/functions/backfill/global/configs.ts.html +6 -6
  342. package/coverage/lcov-report/src/migrations/functions/backfill/global/index.html +1 -1
  343. package/coverage/lcov-report/src/migrations/functions/backfill/global/quotas.ts.html +7 -7
  344. package/coverage/lcov-report/src/migrations/functions/backfill/global/users.ts.html +6 -6
  345. package/coverage/lcov-report/src/migrations/functions/backfill/global.ts.html +15 -15
  346. package/coverage/lcov-report/src/migrations/functions/backfill/index.html +1 -1
  347. package/coverage/lcov-report/src/migrations/functions/backfill/index.ts.html +5 -5
  348. package/coverage/lcov-report/src/migrations/functions/backfill/installation.ts.html +8 -8
  349. package/coverage/lcov-report/src/migrations/functions/index.html +1 -1
  350. package/coverage/lcov-report/src/migrations/functions/syncQuotas.ts.html +6 -6
  351. package/coverage/lcov-report/src/migrations/functions/tableSettings.ts.html +6 -6
  352. package/coverage/lcov-report/src/migrations/functions/tests/appUrls.spec.js.html +1 -1
  353. package/coverage/lcov-report/src/migrations/functions/tests/index.html +1 -1
  354. package/coverage/lcov-report/src/migrations/functions/tests/syncQuotas.spec.js.html +1 -1
  355. package/coverage/lcov-report/src/migrations/functions/tests/tableSettings.spec.ts.html +1 -1
  356. package/coverage/lcov-report/src/migrations/functions/tests/userEmailViewCasing.spec.js.html +1 -1
  357. package/coverage/lcov-report/src/migrations/functions/usageQuotas/index.html +1 -1
  358. package/coverage/lcov-report/src/migrations/functions/usageQuotas/index.ts.html +2 -2
  359. package/coverage/lcov-report/src/migrations/functions/usageQuotas/syncApps.ts.html +5 -5
  360. package/coverage/lcov-report/src/migrations/functions/usageQuotas/syncPlugins.ts.html +4 -4
  361. package/coverage/lcov-report/src/migrations/functions/usageQuotas/syncRows.ts.html +6 -6
  362. package/coverage/lcov-report/src/migrations/functions/usageQuotas/tests/index.html +1 -1
  363. package/coverage/lcov-report/src/migrations/functions/usageQuotas/tests/syncApps.spec.ts.html +1 -1
  364. package/coverage/lcov-report/src/migrations/functions/usageQuotas/tests/syncRows.spec.ts.html +1 -1
  365. package/coverage/lcov-report/src/migrations/functions/userEmailViewCasing.ts.html +3 -3
  366. package/coverage/lcov-report/src/migrations/index.html +1 -1
  367. package/coverage/lcov-report/src/migrations/index.ts.html +32 -32
  368. package/coverage/lcov-report/src/migrations/tests/helpers.ts.html +1 -1
  369. package/coverage/lcov-report/src/migrations/tests/index.html +1 -1
  370. package/coverage/lcov-report/src/migrations/tests/index.spec.ts.html +1 -1
  371. package/coverage/lcov-report/src/migrations/tests/structures.ts.html +1 -1
  372. package/coverage/lcov-report/src/sdk/app/applications/index.html +1 -1
  373. package/coverage/lcov-report/src/sdk/app/applications/index.ts.html +4 -4
  374. package/coverage/lcov-report/src/sdk/app/applications/sync.ts.html +22 -22
  375. package/coverage/lcov-report/src/sdk/app/applications/utils.ts.html +9 -9
  376. package/coverage/lcov-report/src/sdk/app/automations/index.html +1 -1
  377. package/coverage/lcov-report/src/sdk/app/automations/index.ts.html +3 -3
  378. package/coverage/lcov-report/src/sdk/app/automations/webhook.ts.html +3 -3
  379. package/coverage/lcov-report/src/sdk/app/backups/constants.ts.html +3 -3
  380. package/coverage/lcov-report/src/sdk/app/backups/exports.ts.html +17 -17
  381. package/coverage/lcov-report/src/sdk/app/backups/imports.ts.html +18 -18
  382. package/coverage/lcov-report/src/sdk/app/backups/index.html +1 -1
  383. package/coverage/lcov-report/src/sdk/app/backups/index.ts.html +5 -5
  384. package/coverage/lcov-report/src/sdk/app/backups/statistics.ts.html +7 -7
  385. package/coverage/lcov-report/src/sdk/app/datasources/datasources.ts.html +39 -39
  386. package/coverage/lcov-report/src/sdk/app/datasources/index.html +1 -1
  387. package/coverage/lcov-report/src/sdk/app/datasources/index.ts.html +3 -3
  388. package/coverage/lcov-report/src/sdk/app/queries/index.html +1 -1
  389. package/coverage/lcov-report/src/sdk/app/queries/index.ts.html +3 -3
  390. package/coverage/lcov-report/src/sdk/app/queries/queries.ts.html +4 -4
  391. package/coverage/lcov-report/src/sdk/app/rows/attachments.ts.html +6 -6
  392. package/coverage/lcov-report/src/sdk/app/rows/index.html +1 -1
  393. package/coverage/lcov-report/src/sdk/app/rows/index.ts.html +4 -4
  394. package/coverage/lcov-report/src/sdk/app/rows/rows.ts.html +4 -4
  395. package/coverage/lcov-report/src/sdk/app/tables/index.html +1 -1
  396. package/coverage/lcov-report/src/sdk/app/tables/index.ts.html +6 -6
  397. package/coverage/lcov-report/src/sdk/index.html +1 -1
  398. package/coverage/lcov-report/src/sdk/index.ts.html +11 -11
  399. package/coverage/lcov-report/src/sdk/tests/attachments.spec.ts.html +1 -1
  400. package/coverage/lcov-report/src/sdk/tests/index.html +1 -1
  401. package/coverage/lcov-report/src/sdk/users/index.html +1 -1
  402. package/coverage/lcov-report/src/sdk/users/index.ts.html +3 -3
  403. package/coverage/lcov-report/src/sdk/users/utils.ts.html +26 -26
  404. package/coverage/lcov-report/src/sdk/utils/index.html +1 -1
  405. package/coverage/lcov-report/src/sdk/utils/index.ts.html +11 -11
  406. package/coverage/lcov-report/src/startup.ts.html +41 -41
  407. package/coverage/lcov-report/src/tests/utilities/TestConfiguration.ts.html +176 -146
  408. package/coverage/lcov-report/src/tests/utilities/controllers.ts.html +15 -15
  409. package/coverage/lcov-report/src/tests/utilities/index.html +14 -14
  410. package/coverage/lcov-report/src/tests/utilities/index.ts.html +1 -1
  411. package/coverage/lcov-report/src/tests/utilities/structures.ts.html +16 -10
  412. package/coverage/lcov-report/src/threads/automation.ts.html +22 -22
  413. package/coverage/lcov-report/src/threads/index.html +1 -1
  414. package/coverage/lcov-report/src/threads/index.ts.html +10 -10
  415. package/coverage/lcov-report/src/threads/query.ts.html +1 -1
  416. package/coverage/lcov-report/src/threads/utils.ts.html +9 -9
  417. package/coverage/lcov-report/src/utilities/budibaseDir.ts.html +3 -3
  418. package/coverage/lcov-report/src/utilities/centralPath.ts.html +2 -2
  419. package/coverage/lcov-report/src/utilities/fileSystem/app.ts.html +17 -17
  420. package/coverage/lcov-report/src/utilities/fileSystem/clientLibrary.ts.html +8 -8
  421. package/coverage/lcov-report/src/utilities/fileSystem/filesystem.ts.html +25 -25
  422. package/coverage/lcov-report/src/utilities/fileSystem/index.html +1 -1
  423. package/coverage/lcov-report/src/utilities/fileSystem/index.ts.html +6 -6
  424. package/coverage/lcov-report/src/utilities/fileSystem/plugin.ts.html +8 -8
  425. package/coverage/lcov-report/src/utilities/fileSystem/processor.ts.html +1 -1
  426. package/coverage/lcov-report/src/utilities/fileSystem/template.ts.html +7 -7
  427. package/coverage/lcov-report/src/utilities/global.ts.html +35 -35
  428. package/coverage/lcov-report/src/utilities/index.html +1 -1
  429. package/coverage/lcov-report/src/utilities/index.ts.html +11 -11
  430. package/coverage/lcov-report/src/utilities/redis.ts.html +12 -12
  431. package/coverage/lcov-report/src/utilities/retry.ts.html +1 -1
  432. package/coverage/lcov-report/src/utilities/routing/index.html +1 -1
  433. package/coverage/lcov-report/src/utilities/routing/index.ts.html +4 -4
  434. package/coverage/lcov-report/src/utilities/rowProcessor/index.html +19 -19
  435. package/coverage/lcov-report/src/utilities/rowProcessor/index.ts.html +9 -9
  436. package/coverage/lcov-report/src/utilities/rowProcessor/map.ts.html +2 -2
  437. package/coverage/lcov-report/src/utilities/rowProcessor/tests/index.html +1 -1
  438. package/coverage/lcov-report/src/utilities/rowProcessor/tests/utils.spec.ts.html +1 -1
  439. package/coverage/lcov-report/src/utilities/rowProcessor/utils.ts.html +38 -38
  440. package/coverage/lcov-report/src/utilities/schema.ts.html +3 -3
  441. package/coverage/lcov-report/src/utilities/scriptRunner.ts.html +5 -5
  442. package/coverage/lcov-report/src/utilities/security.ts.html +4 -4
  443. package/coverage/lcov-report/src/utilities/usageQuota/index.html +1 -1
  444. package/coverage/lcov-report/src/utilities/usageQuota/rows.ts.html +4 -4
  445. package/coverage/lcov-report/src/utilities/usageQuota/usageQuoteReset.ts.html +1 -1
  446. package/coverage/lcov-report/src/utilities/users.ts.html +4 -4
  447. package/coverage/lcov-report/src/utilities/workerRequests.ts.html +1 -1
  448. package/coverage/lcov-report/src/watch.ts.html +7 -7
  449. package/coverage/lcov-report/src/websocket.ts.html +5 -5
  450. package/coverage/lcov.info +6276 -5874
  451. package/dist/api/controllers/row/ExternalRequest.js +4 -2
  452. package/dist/api/controllers/row/external.js +12 -1
  453. package/dist/api/controllers/table/external.js +8 -8
  454. package/dist/api/routes/public/tests/utils.js +29 -2
  455. package/dist/api/routes/tests/utilities/index.js +131 -0
  456. package/dist/constants/index.js +4 -24
  457. package/dist/db/defaultData/datasource_bb_default.js +6 -5
  458. package/dist/db/linkedRows/LinkController.js +9 -8
  459. package/dist/integrations/base/sql.js +10 -3
  460. package/dist/package.json +6 -6
  461. package/dist/tests/utilities/TestConfiguration.js +618 -0
  462. package/dist/tests/utilities/controllers.js +40 -0
  463. package/dist/tests/utilities/structures.js +226 -0
  464. package/dist/tsconfig.build.tsbuildinfo +1 -1
  465. package/package.json +7 -7
  466. package/specs/openapi.json +6 -6
  467. package/specs/openapi.yaml +3 -3
  468. package/src/api/controllers/row/ExternalRequest.ts +6 -2
  469. package/src/api/controllers/row/external.ts +13 -1
  470. package/src/api/controllers/table/external.ts +3 -2
  471. package/src/api/routes/public/tests/compare.spec.js +1 -1
  472. package/src/api/routes/public/tests/users.spec.js +1 -1
  473. package/src/api/routes/public/tests/utils.ts +25 -8
  474. package/src/api/routes/tests/cloud.seq.spec.ts +1 -1
  475. package/src/constants/index.ts +1 -23
  476. package/src/db/defaultData/datasource_bb_default.ts +6 -10
  477. package/src/db/linkedRows/LinkController.ts +2 -1
  478. package/src/integration-test/postgres.spec.ts +752 -0
  479. package/src/integrations/base/sql.ts +15 -5
  480. package/src/integrations/oracle.ts +1 -1
  481. package/src/tests/utilities/TestConfiguration.ts +22 -12
  482. package/src/tests/utilities/structures.ts +4 -2
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">6.15% </span>
26
+ <span class="strong">66.92% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>8/130</span>
28
+ <span class='fraction'>87/130</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">0% </span>
33
+ <span class="strong">51.06% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>0/47</span>
35
+ <span class='fraction'>24/47</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">0% </span>
40
+ <span class="strong">70.37% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>0/27</span>
42
+ <span class='fraction'>19/27</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">6.29% </span>
47
+ <span class="strong">66.92% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>8/127</span>
49
+ <span class='fraction'>85/127</span>
50
50
  </div>
51
51
 
52
52
 
@@ -61,7 +61,7 @@
61
61
  </div>
62
62
  </template>
63
63
  </div>
64
- <div class='status-line low'></div>
64
+ <div class='status-line medium'></div>
65
65
  <pre><table class="coverage">
66
66
  <tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
67
67
  <a name='L2'></a><a href='#L2'>2</a>
@@ -343,19 +343,31 @@
343
343
  <a name='L278'></a><a href='#L278'>278</a>
344
344
  <a name='L279'></a><a href='#L279'>279</a>
345
345
  <a name='L280'></a><a href='#L280'>280</a>
346
- <a name='L281'></a><a href='#L281'>281</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
346
+ <a name='L281'></a><a href='#L281'>281</a>
347
+ <a name='L282'></a><a href='#L282'>282</a>
348
+ <a name='L283'></a><a href='#L283'>283</a>
349
+ <a name='L284'></a><a href='#L284'>284</a>
350
+ <a name='L285'></a><a href='#L285'>285</a>
351
+ <a name='L286'></a><a href='#L286'>286</a>
352
+ <a name='L287'></a><a href='#L287'>287</a>
353
+ <a name='L288'></a><a href='#L288'>288</a>
354
+ <a name='L289'></a><a href='#L289'>289</a>
355
+ <a name='L290'></a><a href='#L290'>290</a>
356
+ <a name='L291'></a><a href='#L291'>291</a>
357
+ <a name='L292'></a><a href='#L292'>292</a>
358
+ <a name='L293'></a><a href='#L293'>293</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
347
359
  <span class="cline-any cline-neutral">&nbsp;</span>
348
360
  <span class="cline-any cline-neutral">&nbsp;</span>
349
361
  <span class="cline-any cline-neutral">&nbsp;</span>
350
- <span class="cline-any cline-yes">56x</span>
362
+ <span class="cline-any cline-yes">57x</span>
351
363
  <span class="cline-any cline-neutral">&nbsp;</span>
352
364
  <span class="cline-any cline-neutral">&nbsp;</span>
353
365
  <span class="cline-any cline-neutral">&nbsp;</span>
354
- <span class="cline-any cline-yes">56x</span>
355
- <span class="cline-any cline-yes">56x</span>
366
+ <span class="cline-any cline-yes">57x</span>
367
+ <span class="cline-any cline-yes">57x</span>
356
368
  <span class="cline-any cline-neutral">&nbsp;</span>
357
- <span class="cline-any cline-yes">56x</span>
358
- <span class="cline-any cline-yes">56x</span>
369
+ <span class="cline-any cline-yes">57x</span>
370
+ <span class="cline-any cline-yes">57x</span>
359
371
  <span class="cline-any cline-neutral">&nbsp;</span>
360
372
  <span class="cline-any cline-neutral">&nbsp;</span>
361
373
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -363,10 +375,11 @@
363
375
  <span class="cline-any cline-neutral">&nbsp;</span>
364
376
  <span class="cline-any cline-neutral">&nbsp;</span>
365
377
  <span class="cline-any cline-neutral">&nbsp;</span>
366
- <span class="cline-any cline-yes">56x</span>
367
- <span class="cline-any cline-yes">56x</span>
368
378
  <span class="cline-any cline-neutral">&nbsp;</span>
369
- <span class="cline-any cline-yes">56x</span>
379
+ <span class="cline-any cline-yes">57x</span>
380
+ <span class="cline-any cline-yes">57x</span>
381
+ <span class="cline-any cline-neutral">&nbsp;</span>
382
+ <span class="cline-any cline-yes">57x</span>
370
383
  <span class="cline-any cline-neutral">&nbsp;</span>
371
384
  <span class="cline-any cline-no">&nbsp;</span>
372
385
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -374,51 +387,48 @@
374
387
  <span class="cline-any cline-neutral">&nbsp;</span>
375
388
  <span class="cline-any cline-neutral">&nbsp;</span>
376
389
  <span class="cline-any cline-neutral">&nbsp;</span>
377
- <span class="cline-any cline-no">&nbsp;</span>
378
- <span class="cline-any cline-no">&nbsp;</span>
379
- <span class="cline-any cline-no">&nbsp;</span>
380
- <span class="cline-any cline-no">&nbsp;</span>
390
+ <span class="cline-any cline-yes">132x</span>
391
+ <span class="cline-any cline-yes">2x</span>
392
+ <span class="cline-any cline-yes">12x</span>
393
+ <span class="cline-any cline-yes">11x</span>
381
394
  <span class="cline-any cline-neutral">&nbsp;</span>
382
395
  <span class="cline-any cline-neutral">&nbsp;</span>
383
- <span class="cline-any cline-no">&nbsp;</span>
384
- <span class="cline-any cline-no">&nbsp;</span>
396
+ <span class="cline-any cline-yes">1x</span>
397
+ <span class="cline-any cline-yes">1x</span>
385
398
  <span class="cline-any cline-neutral">&nbsp;</span>
386
399
  <span class="cline-any cline-no">&nbsp;</span>
387
400
  <span class="cline-any cline-neutral">&nbsp;</span>
388
401
  <span class="cline-any cline-neutral">&nbsp;</span>
389
402
  <span class="cline-any cline-neutral">&nbsp;</span>
390
403
  <span class="cline-any cline-neutral">&nbsp;</span>
391
- <span class="cline-any cline-no">&nbsp;</span>
404
+ <span class="cline-any cline-yes">132x</span>
392
405
  <span class="cline-any cline-neutral">&nbsp;</span>
393
406
  <span class="cline-any cline-neutral">&nbsp;</span>
394
407
  <span class="cline-any cline-neutral">&nbsp;</span>
395
408
  <span class="cline-any cline-neutral">&nbsp;</span>
396
- <span class="cline-any cline-no">&nbsp;</span>
397
- <span class="cline-any cline-no">&nbsp;</span>
398
- <span class="cline-any cline-no">&nbsp;</span>
399
- <span class="cline-any cline-no">&nbsp;</span>
409
+ <span class="cline-any cline-yes">1x</span>
410
+ <span class="cline-any cline-yes">1x</span>
411
+ <span class="cline-any cline-yes">1x</span>
412
+ <span class="cline-any cline-yes">1x</span>
400
413
  <span class="cline-any cline-neutral">&nbsp;</span>
401
- <span class="cline-any cline-no">&nbsp;</span>
402
- <span class="cline-any cline-no">&nbsp;</span>
414
+ <span class="cline-any cline-yes">1x</span>
415
+ <span class="cline-any cline-yes">1x</span>
403
416
  <span class="cline-any cline-neutral">&nbsp;</span>
404
417
  <span class="cline-any cline-neutral">&nbsp;</span>
405
418
  <span class="cline-any cline-neutral">&nbsp;</span>
406
419
  <span class="cline-any cline-neutral">&nbsp;</span>
407
420
  <span class="cline-any cline-neutral">&nbsp;</span>
408
- <span class="cline-any cline-no">&nbsp;</span>
409
- <span class="cline-any cline-no">&nbsp;</span>
410
- <span class="cline-any cline-no">&nbsp;</span>
411
- <span class="cline-any cline-no">&nbsp;</span>
412
421
  <span class="cline-any cline-neutral">&nbsp;</span>
422
+ <span class="cline-any cline-yes">105x</span>
423
+ <span class="cline-any cline-yes">105x</span>
424
+ <span class="cline-any cline-yes">105x</span>
425
+ <span class="cline-any cline-yes">105x</span>
413
426
  <span class="cline-any cline-neutral">&nbsp;</span>
414
427
  <span class="cline-any cline-neutral">&nbsp;</span>
415
428
  <span class="cline-any cline-neutral">&nbsp;</span>
416
- <span class="cline-any cline-no">&nbsp;</span>
417
429
  <span class="cline-any cline-neutral">&nbsp;</span>
418
430
  <span class="cline-any cline-neutral">&nbsp;</span>
419
431
  <span class="cline-any cline-no">&nbsp;</span>
420
- <span class="cline-any cline-no">&nbsp;</span>
421
- <span class="cline-any cline-no">&nbsp;</span>
422
432
  <span class="cline-any cline-neutral">&nbsp;</span>
423
433
  <span class="cline-any cline-neutral">&nbsp;</span>
424
434
  <span class="cline-any cline-no">&nbsp;</span>
@@ -426,78 +436,90 @@
426
436
  <span class="cline-any cline-no">&nbsp;</span>
427
437
  <span class="cline-any cline-neutral">&nbsp;</span>
428
438
  <span class="cline-any cline-neutral">&nbsp;</span>
429
- <span class="cline-any cline-no">&nbsp;</span>
430
- <span class="cline-any cline-no">&nbsp;</span>
431
- <span class="cline-any cline-no">&nbsp;</span>
432
- <span class="cline-any cline-no">&nbsp;</span>
439
+ <span class="cline-any cline-yes">7x</span>
440
+ <span class="cline-any cline-yes">7x</span>
441
+ <span class="cline-any cline-yes">7x</span>
433
442
  <span class="cline-any cline-neutral">&nbsp;</span>
434
443
  <span class="cline-any cline-neutral">&nbsp;</span>
435
- <span class="cline-any cline-no">&nbsp;</span>
436
444
  <span class="cline-any cline-neutral">&nbsp;</span>
437
445
  <span class="cline-any cline-neutral">&nbsp;</span>
438
- <span class="cline-any cline-no">&nbsp;</span>
439
- <span class="cline-any cline-no">&nbsp;</span>
440
- <span class="cline-any cline-no">&nbsp;</span>
441
- <span class="cline-any cline-no">&nbsp;</span>
446
+ <span class="cline-any cline-yes">4x</span>
447
+ <span class="cline-any cline-yes">4x</span>
448
+ <span class="cline-any cline-yes">4x</span>
449
+ <span class="cline-any cline-yes">4x</span>
442
450
  <span class="cline-any cline-neutral">&nbsp;</span>
443
451
  <span class="cline-any cline-neutral">&nbsp;</span>
444
- <span class="cline-any cline-no">&nbsp;</span>
445
452
  <span class="cline-any cline-neutral">&nbsp;</span>
453
+ <span class="cline-any cline-yes">4x</span>
446
454
  <span class="cline-any cline-neutral">&nbsp;</span>
447
- <span class="cline-any cline-no">&nbsp;</span>
448
- <span class="cline-any cline-no">&nbsp;</span>
449
- <span class="cline-any cline-no">&nbsp;</span>
450
- <span class="cline-any cline-no">&nbsp;</span>
451
- <span class="cline-any cline-no">&nbsp;</span>
452
- <span class="cline-any cline-no">&nbsp;</span>
453
455
  <span class="cline-any cline-neutral">&nbsp;</span>
456
+ <span class="cline-any cline-yes">1x</span>
457
+ <span class="cline-any cline-yes">1x</span>
458
+ <span class="cline-any cline-yes">1x</span>
459
+ <span class="cline-any cline-yes">1x</span>
454
460
  <span class="cline-any cline-neutral">&nbsp;</span>
455
461
  <span class="cline-any cline-neutral">&nbsp;</span>
456
462
  <span class="cline-any cline-neutral">&nbsp;</span>
463
+ <span class="cline-any cline-yes">1x</span>
457
464
  <span class="cline-any cline-neutral">&nbsp;</span>
458
- <span class="cline-any cline-no">&nbsp;</span>
459
- <span class="cline-any cline-no">&nbsp;</span>
465
+ <span class="cline-any cline-neutral">&nbsp;</span>
466
+ <span class="cline-any cline-yes">1x</span>
467
+ <span class="cline-any cline-yes">1x</span>
468
+ <span class="cline-any cline-yes">1x</span>
469
+ <span class="cline-any cline-yes">1x</span>
470
+ <span class="cline-any cline-yes">1x</span>
471
+ <span class="cline-any cline-yes">3x</span>
460
472
  <span class="cline-any cline-neutral">&nbsp;</span>
461
473
  <span class="cline-any cline-neutral">&nbsp;</span>
462
- <span class="cline-any cline-no">&nbsp;</span>
463
- <span class="cline-any cline-no">&nbsp;</span>
464
- <span class="cline-any cline-no">&nbsp;</span>
465
- <span class="cline-any cline-no">&nbsp;</span>
466
- <span class="cline-any cline-no">&nbsp;</span>
467
- <span class="cline-any cline-no">&nbsp;</span>
468
474
  <span class="cline-any cline-neutral">&nbsp;</span>
469
- <span class="cline-any cline-no">&nbsp;</span>
470
475
  <span class="cline-any cline-neutral">&nbsp;</span>
471
- <span class="cline-any cline-no">&nbsp;</span>
472
- <span class="cline-any cline-no">&nbsp;</span>
473
476
  <span class="cline-any cline-neutral">&nbsp;</span>
474
477
  <span class="cline-any cline-neutral">&nbsp;</span>
478
+ <span class="cline-any cline-yes">1x</span>
479
+ <span class="cline-any cline-yes">3x</span>
475
480
  <span class="cline-any cline-neutral">&nbsp;</span>
476
481
  <span class="cline-any cline-neutral">&nbsp;</span>
482
+ <span class="cline-any cline-yes">9x</span>
483
+ <span class="cline-any cline-yes">9x</span>
484
+ <span class="cline-any cline-yes">9x</span>
485
+ <span class="cline-any cline-yes">9x</span>
486
+ <span class="cline-any cline-yes">9x</span>
477
487
  <span class="cline-any cline-no">&nbsp;</span>
488
+ <span class="cline-any cline-neutral">&nbsp;</span>
489
+ <span class="cline-any cline-yes">9x</span>
490
+ <span class="cline-any cline-neutral">&nbsp;</span>
491
+ <span class="cline-any cline-yes">9x</span>
478
492
  <span class="cline-any cline-no">&nbsp;</span>
479
493
  <span class="cline-any cline-neutral">&nbsp;</span>
480
494
  <span class="cline-any cline-neutral">&nbsp;</span>
481
495
  <span class="cline-any cline-neutral">&nbsp;</span>
482
496
  <span class="cline-any cline-neutral">&nbsp;</span>
483
- <span class="cline-any cline-no">&nbsp;</span>
497
+ <span class="cline-any cline-yes">9x</span>
498
+ <span class="cline-any cline-yes">1x</span>
484
499
  <span class="cline-any cline-neutral">&nbsp;</span>
485
- <span class="cline-any cline-no">&nbsp;</span>
486
500
  <span class="cline-any cline-neutral">&nbsp;</span>
487
501
  <span class="cline-any cline-neutral">&nbsp;</span>
488
- <span class="cline-any cline-no">&nbsp;</span>
489
502
  <span class="cline-any cline-neutral">&nbsp;</span>
503
+ <span class="cline-any cline-yes">9x</span>
490
504
  <span class="cline-any cline-neutral">&nbsp;</span>
505
+ <span class="cline-any cline-yes">4x</span>
491
506
  <span class="cline-any cline-neutral">&nbsp;</span>
492
- <span class="cline-any cline-no">&nbsp;</span>
493
- <span class="cline-any cline-no">&nbsp;</span>
494
507
  <span class="cline-any cline-neutral">&nbsp;</span>
508
+ <span class="cline-any cline-yes">4x</span>
495
509
  <span class="cline-any cline-neutral">&nbsp;</span>
496
510
  <span class="cline-any cline-neutral">&nbsp;</span>
497
511
  <span class="cline-any cline-neutral">&nbsp;</span>
512
+ <span class="cline-any cline-yes">9x</span>
513
+ <span class="cline-any cline-yes">9x</span>
514
+ <span class="cline-any cline-neutral">&nbsp;</span>
515
+ <span class="cline-any cline-neutral">&nbsp;</span>
516
+ <span class="cline-any cline-neutral">&nbsp;</span>
517
+ <span class="cline-any cline-neutral">&nbsp;</span>
518
+ <span class="cline-any cline-neutral">&nbsp;</span>
519
+ <span class="cline-any cline-yes">9x</span>
520
+ <span class="cline-any cline-yes">9x</span>
498
521
  <span class="cline-any cline-no">&nbsp;</span>
499
- <span class="cline-any cline-no">&nbsp;</span>
500
- <span class="cline-any cline-no">&nbsp;</span>
522
+ <span class="cline-any cline-neutral">&nbsp;</span>
501
523
  <span class="cline-any cline-neutral">&nbsp;</span>
502
524
  <span class="cline-any cline-neutral">&nbsp;</span>
503
525
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -508,7 +530,7 @@
508
530
  <span class="cline-any cline-no">&nbsp;</span>
509
531
  <span class="cline-any cline-neutral">&nbsp;</span>
510
532
  <span class="cline-any cline-neutral">&nbsp;</span>
511
- <span class="cline-any cline-no">&nbsp;</span>
533
+ <span class="cline-any cline-yes">9x</span>
512
534
  <span class="cline-any cline-neutral">&nbsp;</span>
513
535
  <span class="cline-any cline-no">&nbsp;</span>
514
536
  <span class="cline-any cline-no">&nbsp;</span>
@@ -577,43 +599,43 @@
577
599
  <span class="cline-any cline-no">&nbsp;</span>
578
600
  <span class="cline-any cline-neutral">&nbsp;</span>
579
601
  <span class="cline-any cline-neutral">&nbsp;</span>
580
- <span class="cline-any cline-no">&nbsp;</span>
581
- <span class="cline-any cline-no">&nbsp;</span>
582
- <span class="cline-any cline-no">&nbsp;</span>
583
- <span class="cline-any cline-no">&nbsp;</span>
584
- <span class="cline-any cline-no">&nbsp;</span>
585
- <span class="cline-any cline-no">&nbsp;</span>
602
+ <span class="cline-any cline-yes">1x</span>
603
+ <span class="cline-any cline-yes">1x</span>
604
+ <span class="cline-any cline-yes">1x</span>
605
+ <span class="cline-any cline-yes">1x</span>
606
+ <span class="cline-any cline-yes">1x</span>
607
+ <span class="cline-any cline-yes">1x</span>
586
608
  <span class="cline-any cline-no">&nbsp;</span>
587
609
  <span class="cline-any cline-neutral">&nbsp;</span>
588
- <span class="cline-any cline-no">&nbsp;</span>
610
+ <span class="cline-any cline-yes">1x</span>
589
611
  <span class="cline-any cline-no">&nbsp;</span>
590
612
  <span class="cline-any cline-neutral">&nbsp;</span>
591
- <span class="cline-any cline-no">&nbsp;</span>
592
- <span class="cline-any cline-no">&nbsp;</span>
613
+ <span class="cline-any cline-yes">1x</span>
614
+ <span class="cline-any cline-yes">1x</span>
593
615
  <span class="cline-any cline-neutral">&nbsp;</span>
594
616
  <span class="cline-any cline-neutral">&nbsp;</span>
595
617
  <span class="cline-any cline-neutral">&nbsp;</span>
596
- <span class="cline-any cline-no">&nbsp;</span>
597
- <span class="cline-any cline-no">&nbsp;</span>
598
618
  <span class="cline-any cline-neutral">&nbsp;</span>
619
+ <span class="cline-any cline-yes">1x</span>
620
+ <span class="cline-any cline-yes">1x</span>
599
621
  <span class="cline-any cline-neutral">&nbsp;</span>
600
- <span class="cline-any cline-no">&nbsp;</span>
601
- <span class="cline-any cline-no">&nbsp;</span>
602
622
  <span class="cline-any cline-neutral">&nbsp;</span>
623
+ <span class="cline-any cline-yes">1x</span>
624
+ <span class="cline-any cline-yes">6x</span>
603
625
  <span class="cline-any cline-neutral">&nbsp;</span>
604
626
  <span class="cline-any cline-neutral">&nbsp;</span>
605
627
  <span class="cline-any cline-neutral">&nbsp;</span>
606
- <span class="cline-any cline-no">&nbsp;</span>
607
628
  <span class="cline-any cline-neutral">&nbsp;</span>
608
- <span class="cline-any cline-no">&nbsp;</span>
609
- <span class="cline-any cline-no">&nbsp;</span>
610
- <span class="cline-any cline-no">&nbsp;</span>
611
- <span class="cline-any cline-no">&nbsp;</span>
629
+ <span class="cline-any cline-yes">5x</span>
612
630
  <span class="cline-any cline-neutral">&nbsp;</span>
613
- <span class="cline-any cline-no">&nbsp;</span>
614
- <span class="cline-any cline-no">&nbsp;</span>
615
- <span class="cline-any cline-no">&nbsp;</span>
631
+ <span class="cline-any cline-yes">1x</span>
632
+ <span class="cline-any cline-yes">1x</span>
633
+ <span class="cline-any cline-yes">1x</span>
634
+ <span class="cline-any cline-yes">1x</span>
616
635
  <span class="cline-any cline-neutral">&nbsp;</span>
636
+ <span class="cline-any cline-yes">1x</span>
637
+ <span class="cline-any cline-yes">1x</span>
638
+ <span class="cline-any cline-yes">1x</span>
617
639
  <span class="cline-any cline-neutral">&nbsp;</span>
618
640
  <span class="cline-any cline-neutral">&nbsp;</span>
619
641
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -621,7 +643,9 @@
621
643
  <span class="cline-any cline-neutral">&nbsp;</span>
622
644
  <span class="cline-any cline-neutral">&nbsp;</span>
623
645
  <span class="cline-any cline-neutral">&nbsp;</span>
624
- <span class="cline-any cline-no">&nbsp;</span>
646
+ <span class="cline-any cline-neutral">&nbsp;</span>
647
+ <span class="cline-any cline-neutral">&nbsp;</span>
648
+ <span class="cline-any cline-yes">1x</span>
625
649
  <span class="cline-any cline-neutral">&nbsp;</span>
626
650
  <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import {
627
651
  SortDirection,
@@ -643,53 +667,56 @@ import {
643
667
  PaginationJson,
644
668
  Table,
645
669
  Datasource,
670
+ IncludeRelationship,
646
671
  } from "@budibase/types"
647
672
  import sdk from "../../../sdk"
648
673
  &nbsp;
649
674
  const { cleanExportRows } = require("./utils")
650
675
  &nbsp;
651
- export async function <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >handleRequest<span class="fstat-no" title="function not covered" >(</span></span></span>
676
+ export async function <span class="cstat-no" title="statement not covered" >handleRequest<span class="fstat-no" title="function not covered" >(</span></span>
652
677
  operation: Operation,
653
678
  tableId: string,
654
679
  opts?: RunConfig
655
680
  ) {
656
681
  // make sure the filters are cleaned up, no empty strings for equals, fuzzy or string
657
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (opts &amp;&amp; opts.filters) {</span>
658
- <span class="cstat-no" title="statement not covered" > for (let filterField of NoEmptyFilterStrings) {</span>
659
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (!opts.filters[filterField]) {</span>
660
- <span class="cstat-no" title="statement not covered" > continue</span>
682
+ if (opts &amp;&amp; opts.filters) {
683
+ for (let filterField of NoEmptyFilterStrings) {
684
+ if (!opts.filters[filterField]) {
685
+ continue
661
686
  }
662
687
  // @ts-ignore
663
- <span class="cstat-no" title="statement not covered" > for (let [key, value] of Object.entries(opts.filters[filterField])) {</span>
664
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (!value || value === "") {</span>
688
+ for (let [key, value] of Object.entries(opts.filters[filterField])) {
689
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (!value || value === "") {
665
690
  // @ts-ignore
666
691
  <span class="cstat-no" title="statement not covered" > delete opts.filters[filterField][key]</span>
667
692
  }
668
693
  }
669
694
  }
670
695
  }
671
- <span class="cstat-no" title="statement not covered" > return new ExternalRequest(operation, tableId, opts?.datasource).run(</span>
672
- opts || {}
696
+ return new ExternalRequest(operation, tableId, opts?.datasource).run(
697
+ opts || <span class="branch-1 cbranch-no" title="branch not covered" >{}</span>
673
698
  )
674
699
  }
675
700
  &nbsp;
676
- export async function <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >patch<span class="fstat-no" title="function not covered" >(</span></span>c</span>tx: BBContext) {
677
- const inputs = <span class="cstat-no" title="statement not covered" >ctx.request.body</span>
678
- const tableId = <span class="cstat-no" title="statement not covered" >ctx.params.tableId</span>
679
- const id = <span class="cstat-no" title="statement not covered" >inputs._id</span>
701
+ export async function patch(ctx: BBContext) {
702
+ const inputs = ctx.request.body
703
+ const tableId = ctx.params.tableId
704
+ const id = inputs._id
680
705
  // don't save the ID to db
681
- <span class="cstat-no" title="statement not covered" > delete inputs._id</span>
682
- <span class="cstat-no" title="statement not covered" > return handleRequest(Operation.UPDATE, tableId, {</span>
706
+ delete inputs._id
707
+ return handleRequest(Operation.UPDATE, tableId, {
683
708
  id: breakRowIdField(id),
684
709
  row: inputs,
710
+ includeSqlRelationships: IncludeRelationship.EXCLUDE,
685
711
  })
686
712
  }
687
713
  &nbsp;
688
- export async function <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >save<span class="fstat-no" title="function not covered" >(</span></span>c</span>tx: BBContext) {
689
- const inputs = <span class="cstat-no" title="statement not covered" >ctx.request.body</span>
690
- const tableId = <span class="cstat-no" title="statement not covered" >ctx.params.tableId</span>
691
- <span class="cstat-no" title="statement not covered" > return handleRequest(Operation.CREATE, tableId, {</span>
714
+ export async function save(ctx: BBContext) {
715
+ const inputs = ctx.request.body
716
+ const tableId = ctx.params.tableId
717
+ return handleRequest(Operation.CREATE, tableId, {
692
718
  row: inputs,
719
+ includeSqlRelationships: IncludeRelationship.EXCLUDE,
693
720
  })
694
721
  }
695
722
  &nbsp;
@@ -701,82 +728,88 @@ export async function <span class="cstat-no" title="statement not covered" ><spa
701
728
  <span class="cstat-no" title="statement not covered" > return fetch(ctx)</span>
702
729
  }
703
730
  &nbsp;
704
- export async function <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >fetch<span class="fstat-no" title="function not covered" >(</span></span>c</span>tx: BBContext) {
705
- const tableId = <span class="cstat-no" title="statement not covered" >ctx.params.tableId</span>
706
- <span class="cstat-no" title="statement not covered" > return handleRequest(Operation.READ, tableId)</span>
731
+ export async function fetch(ctx: BBContext) {
732
+ const tableId = ctx.params.tableId
733
+ return handleRequest(Operation.READ, tableId, {
734
+ includeSqlRelationships: IncludeRelationship.INCLUDE,
735
+ })
707
736
  }
708
737
  &nbsp;
709
- export async function <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >find<span class="fstat-no" title="function not covered" >(</span></span>c</span>tx: BBContext) {
710
- const id = <span class="cstat-no" title="statement not covered" >ctx.params.rowId</span>
711
- const tableId = <span class="cstat-no" title="statement not covered" >ctx.params.tableId</span>
712
- const response = (<span class="cstat-no" title="statement not covered" >await handleRequest(Operation.READ, tableId, {</span>
738
+ export async function find(ctx: BBContext) {
739
+ const id = ctx.params.rowId
740
+ const tableId = ctx.params.tableId
741
+ const response = (await handleRequest(Operation.READ, tableId, {
713
742
  id: breakRowIdField(id),
743
+ includeSqlRelationships: IncludeRelationship.EXCLUDE,
714
744
  })) as Row[]
715
- <span class="cstat-no" title="statement not covered" > return response ? response[0] : response</span>
745
+ return response ? response[0] : <span class="branch-1 cbranch-no" title="branch not covered" >response</span>
716
746
  }
717
747
  &nbsp;
718
- export async function <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >destroy<span class="fstat-no" title="function not covered" >(</span></span>c</span>tx: BBContext) {
719
- const tableId = <span class="cstat-no" title="statement not covered" >ctx.params.tableId</span>
720
- const id = <span class="cstat-no" title="statement not covered" >ctx.request.body._id</span>
721
- const { row } = (<span class="cstat-no" title="statement not covered" >await handleRequest(Operation.DELETE, tableId, {</span>
748
+ export async function destroy(ctx: BBContext) {
749
+ const tableId = ctx.params.tableId
750
+ const id = ctx.request.body._id
751
+ const { row } = (await handleRequest(Operation.DELETE, tableId, {
722
752
  id: breakRowIdField(id),
753
+ includeSqlRelationships: IncludeRelationship.EXCLUDE,
723
754
  })) as { row: Row }
724
- <span class="cstat-no" title="statement not covered" > return { response: { ok: true }, row }</span>
755
+ return { response: { ok: true }, row }
725
756
  }
726
757
  &nbsp;
727
- export async function <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >bulkDestroy<span class="fstat-no" title="function not covered" >(</span></span>c</span>tx: BBContext) {
728
- const { rows } = <span class="cstat-no" title="statement not covered" >ctx.request.body</span>
729
- const tableId = <span class="cstat-no" title="statement not covered" >ctx.params.tableId</span>
730
- let promises: Promise&lt;Row[] | { row: Row; table: Table }&gt;[] = <span class="cstat-no" title="statement not covered" >[]</span>
731
- <span class="cstat-no" title="statement not covered" > for (let row of rows) {</span>
732
- <span class="cstat-no" title="statement not covered" > promises.push(</span>
758
+ export async function bulkDestroy(ctx: BBContext) {
759
+ const { rows } = ctx.request.body
760
+ const tableId = ctx.params.tableId
761
+ let promises: Promise&lt;Row[] | { row: Row; table: Table }&gt;[] = []
762
+ for (let row of rows) {
763
+ promises.push(
733
764
  handleRequest(Operation.DELETE, tableId, {
734
765
  id: breakRowIdField(row._id),
766
+ includeSqlRelationships: IncludeRelationship.EXCLUDE,
735
767
  })
736
768
  )
737
769
  }
738
- const responses = (<span class="cstat-no" title="statement not covered" >await Promise.all(promises)) as { row: Row }[]</span>
739
- <span class="cstat-no" title="statement not covered" > return { response: { ok: true }, rows: responses.map(<span class="fstat-no" title="function not covered" >resp =&gt; <span class="cstat-no" title="statement not covered" >r</span>esp.row)</span> }</span>
770
+ const responses = (await Promise.all(promises)) as { row: Row }[]
771
+ return { response: { ok: true }, rows: responses.map(resp =&gt; resp.row) }
740
772
  }
741
773
  &nbsp;
742
- export async function <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >search<span class="fstat-no" title="function not covered" >(</span></span>c</span>tx: BBContext) {
743
- const tableId = <span class="cstat-no" title="statement not covered" >ctx.params.tableId</span>
744
- const { paginate, query, ...params } = <span class="cstat-no" title="statement not covered" >ctx.request.body</span>
745
- let { bookmark, limit } = <span class="cstat-no" title="statement not covered" >params</span>
746
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (!bookmark &amp;&amp; paginate) {</span>
774
+ export async function search(ctx: BBContext) {
775
+ const tableId = ctx.params.tableId
776
+ const { paginate, query, ...params } = ctx.request.body
777
+ let { bookmark, limit } = params
778
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (!bookmark &amp;&amp; paginate) {
747
779
  <span class="cstat-no" title="statement not covered" > bookmark = 1</span>
748
780
  }
749
- let paginateObj = <span class="cstat-no" title="statement not covered" >{}</span>
781
+ let paginateObj = {}
750
782
  &nbsp;
751
- <span class="cstat-no" title="statement not covered" > if (paginate) {</span>
783
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (paginate) {
752
784
  <span class="cstat-no" title="statement not covered" > paginateObj = {</span>
753
785
  // add one so we can track if there is another page
754
786
  limit: limit,
755
787
  page: bookmark,
756
788
  }
757
- } else <span class="cstat-no" title="statement not covered" ><span class="missing-if-branch" title="if path not taken" >I</span>if (params &amp;&amp; limit) {</span>
758
- <span class="cstat-no" title="statement not covered" > paginateObj = {</span>
789
+ } else if (params &amp;&amp; limit) {
790
+ paginateObj = {
759
791
  limit: limit,
760
792
  }
761
793
  }
762
794
  let sort
763
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (params.sort) {</span>
795
+ if (params.sort) {
764
796
  const direction =
765
- <span class="cstat-no" title="statement not covered" > params.sortOrder === "descending"</span>
797
+ params.sortOrder === "descending"
766
798
  ? SortDirection.DESCENDING
767
799
  : SortDirection.ASCENDING
768
- <span class="cstat-no" title="statement not covered" > sort = {</span>
800
+ sort = {
769
801
  [params.sort]: direction,
770
802
  }
771
803
  }
772
- <span class="cstat-no" title="statement not covered" > try {</span>
773
- const rows = (<span class="cstat-no" title="statement not covered" >await handleRequest(Operation.READ, tableId, {</span>
804
+ try {
805
+ const rows = (await handleRequest(Operation.READ, tableId, {
774
806
  filters: query,
775
807
  sort,
776
808
  paginate: paginateObj as PaginationJson,
809
+ includeSqlRelationships: IncludeRelationship.INCLUDE,
777
810
  })) as Row[]
778
- let hasNextPage = <span class="cstat-no" title="statement not covered" >false</span>
779
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (paginate &amp;&amp; rows.length === limit) {</span>
811
+ let hasNextPage = false
812
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (paginate &amp;&amp; <span class="branch-1 cbranch-no" title="branch not covered" >rows.length === limit) {</span>
780
813
  const nextRows = (<span class="cstat-no" title="statement not covered" >await handleRequest(Operation.READ, tableId, {</span>
781
814
  filters: query,
782
815
  sort,
@@ -784,11 +817,12 @@ export async function <span class="cstat-no" title="statement not covered" ><spa
784
817
  limit: 1,
785
818
  page: bookmark * limit + 1,
786
819
  },
820
+ includeSqlRelationships: IncludeRelationship.INCLUDE,
787
821
  })) as Row[]
788
822
  <span class="cstat-no" title="statement not covered" > hasNextPage = nextRows.length &gt; 0</span>
789
823
  }
790
824
  // need wrapper object for bookmarks etc when paginating
791
- <span class="cstat-no" title="statement not covered" > return { rows, hasNextPage, bookmark: bookmark + 1 }</span>
825
+ return { rows, hasNextPage, bookmark: bookmark + 1 }
792
826
  } catch (err: any) {
793
827
  <span class="cstat-no" title="statement not covered" > if (err.message &amp;&amp; err.message.includes("does not exist")) {</span>
794
828
  <span class="cstat-no" title="statement not covered" > throw new Error(</span>
@@ -857,51 +891,53 @@ export async function <span class="cstat-no" title="statement not covered" ><spa
857
891
  <span class="cstat-no" title="statement not covered" > return apiFileReturn(exporter(headers, exportRows))</span>
858
892
  }
859
893
  &nbsp;
860
- export async function <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >fetchEnrichedRow<span class="fstat-no" title="function not covered" >(</span></span>c</span>tx: BBContext) {
861
- const id = <span class="cstat-no" title="statement not covered" >ctx.params.rowId</span>
862
- const tableId = <span class="cstat-no" title="statement not covered" >ctx.params.tableId</span>
863
- const { datasourceId, tableName } = <span class="cstat-no" title="statement not covered" >breakExternalTableId(tableId)</span>
864
- const datasource: Datasource = <span class="cstat-no" title="statement not covered" >await sdk.datasources.get(datasourceId!)</span>
865
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (!tableName) {</span>
894
+ export async function fetchEnrichedRow(ctx: BBContext) {
895
+ const id = ctx.params.rowId
896
+ const tableId = ctx.params.tableId
897
+ const { datasourceId, tableName } = breakExternalTableId(tableId)
898
+ const datasource: Datasource = await sdk.datasources.get(datasourceId!)
899
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (!tableName) {
866
900
  <span class="cstat-no" title="statement not covered" > ctx.throw(400, "Unable to find table.")</span>
867
901
  }
868
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (!datasource || !datasource.entities) {</span>
902
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (!datasource || !datasource.entities) {
869
903
  <span class="cstat-no" title="statement not covered" > ctx.throw(400, "Datasource has not been configured for plus API.")</span>
870
904
  }
871
- const tables = <span class="cstat-no" title="statement not covered" >datasource.entities</span>
872
- const response = (<span class="cstat-no" title="statement not covered" >await handleRequest(Operation.READ, tableId, {</span>
905
+ const tables = datasource.entities
906
+ const response = (await handleRequest(Operation.READ, tableId, {
873
907
  id,
874
908
  datasource,
909
+ includeSqlRelationships: IncludeRelationship.INCLUDE,
875
910
  })) as Row[]
876
- const table: Table = <span class="cstat-no" title="statement not covered" >tables[tableName]</span>
877
- const row = <span class="cstat-no" title="statement not covered" >response[0]</span>
911
+ const table: Table = tables[tableName]
912
+ const row = response[0]
878
913
  // this seems like a lot of work, but basically we need to dig deeper for the enrich
879
914
  // for a single row, there is probably a better way to do this with some smart multi-layer joins
880
- <span class="cstat-no" title="statement not covered" > for (let [fieldName, field] of Object.entries(table.schema)) {</span>
881
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (</span>
915
+ for (let [fieldName, field] of Object.entries(table.schema)) {
916
+ if (
882
917
  field.type !== FieldTypes.LINK ||
883
918
  !row[fieldName] ||
884
919
  row[fieldName].length === 0
885
920
  ) {
886
- <span class="cstat-no" title="statement not covered" > continue</span>
921
+ continue
887
922
  }
888
- const links = <span class="cstat-no" title="statement not covered" >row[fieldName]</span>
889
- const linkedTableId = <span class="cstat-no" title="statement not covered" >field.tableId</span>
890
- const linkedTableName = <span class="cstat-no" title="statement not covered" >breakExternalTableId(linkedTableId).tableName!</span>
891
- const linkedTable = <span class="cstat-no" title="statement not covered" >tables[linkedTableName]</span>
923
+ const links = row[fieldName]
924
+ const linkedTableId = field.tableId
925
+ const linkedTableName = breakExternalTableId(linkedTableId).tableName!
926
+ const linkedTable = tables[linkedTableName]
892
927
  // don't support composite keys right now
893
- const linkedIds = <span class="cstat-no" title="statement not covered" >links.map(<span class="fstat-no" title="function not covered" >(l</span>ink: Row) =&gt; <span class="cstat-no" title="statement not covered" >breakRowIdField(link._id!)[0])</span></span>
894
- const primaryLink = <span class="cstat-no" title="statement not covered" >linkedTable.primary?.[0] </span>as string
895
- <span class="cstat-no" title="statement not covered" > row[fieldName] = await handleRequest(Operation.READ, linkedTableId!, {</span>
928
+ const linkedIds = links.map((link: Row) =&gt; breakRowIdField(link._id!)[0])
929
+ const primaryLink = linkedTable.primary?.[0] as string
930
+ row[fieldName] = await handleRequest(Operation.READ, linkedTableId!, {
896
931
  tables,
897
932
  filters: {
898
933
  oneOf: {
899
934
  [primaryLink]: linkedIds,
900
935
  },
901
936
  },
937
+ includeSqlRelationships: IncludeRelationship.INCLUDE,
902
938
  })
903
939
  }
904
- <span class="cstat-no" title="statement not covered" > return row</span>
940
+ return row
905
941
  }
906
942
  &nbsp;</pre></td></tr></table></pre>
907
943
 
@@ -910,7 +946,7 @@ export async function <span class="cstat-no" title="statement not covered" ><spa
910
946
  <div class='footer quiet pad2 space-top1 center small'>
911
947
  Code coverage generated by
912
948
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
913
- at Tue Feb 07 2023 15:31:37 GMT+0000 (Coordinated Universal Time)
949
+ at Tue Feb 07 2023 16:00:57 GMT+0000 (Coordinated Universal Time)
914
950
  </div>
915
951
  <script src="../../../../prettify.js"></script>
916
952
  <script>