@budibase/server 2.3.9 → 2.3.11-alpha.0

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