@budibase/server 2.1.40-alpha.6 → 2.1.42

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 (797) hide show
  1. package/__mocks__/aws-sdk.ts +0 -14
  2. package/__mocks__/node-fetch.ts +1 -5
  3. package/builder/assets/index.534f6c29.css +6 -0
  4. package/builder/assets/{index.137fb5a9.js → index.843230be.js} +313 -313
  5. package/builder/index.html +2 -2
  6. package/coverage/clover.xml +3875 -10924
  7. package/coverage/coverage-final.json +118 -267
  8. package/coverage/lcov-report/{src/api/controllers/apikeys.ts.html → api/controllers/apikeys.js.html} +30 -30
  9. package/coverage/lcov-report/{src/api/controllers/automation.ts.html → api/controllers/automation.js.html} +99 -99
  10. package/coverage/lcov-report/{src/api/controllers/cloud.ts.html → api/controllers/cloud.js.html} +58 -58
  11. package/coverage/lcov-report/{src/api/controllers/datasource.ts.html → api/controllers/datasource.js.html} +107 -287
  12. package/coverage/lcov-report/{src/api/controllers/dev.ts.html → api/controllers/dev.js.html} +87 -69
  13. package/coverage/lcov-report/api/controllers/index.html +326 -0
  14. package/coverage/lcov-report/{src/middleware/selfhost.ts.html → api/controllers/integration.js.html} +28 -22
  15. package/coverage/lcov-report/{src/api/controllers/layout.ts.html → api/controllers/layout.js.html} +31 -31
  16. package/coverage/lcov-report/{src/api/controllers/metadata.ts.html → api/controllers/metadata.js.html} +30 -33
  17. package/coverage/lcov-report/{src/api/controllers/migrations.ts.html → api/controllers/migrations.js.html} +17 -20
  18. package/coverage/lcov-report/{src/api/controllers/permission.ts.html → api/controllers/permission.js.html} +79 -88
  19. package/coverage/lcov-report/{src/utilities/routing → api/controllers/query}/index.html +8 -8
  20. package/coverage/lcov-report/{src/api/controllers/query/validation.ts.html → api/controllers/query/validation.js.html} +25 -25
  21. package/coverage/lcov-report/{src/api/controllers/role.ts.html → api/controllers/role.js.html} +60 -48
  22. package/coverage/lcov-report/{src/api/controllers/routing.ts.html → api/controllers/routing.js.html} +58 -67
  23. package/coverage/lcov-report/{src/api/controllers/row/external.ts.html → api/controllers/row/external.js.html} +111 -162
  24. package/coverage/lcov-report/{src/api → api}/controllers/row/index.html +52 -82
  25. package/coverage/lcov-report/{src/api/controllers/row/internal.ts.html → api/controllers/row/internal.js.html} +121 -163
  26. package/coverage/lcov-report/{src/api/controllers/row/internalSearch.ts.html → api/controllers/row/internalSearch.js.html} +117 -189
  27. package/coverage/lcov-report/{src/api/controllers/row/staticFormula.ts.html → api/controllers/row/staticFormula.js.html} +58 -73
  28. package/coverage/lcov-report/{src/api/controllers/row/utils.ts.html → api/controllers/row/utils.js.html} +58 -88
  29. package/coverage/lcov-report/{src/api/controllers/script.ts.html → api/controllers/script.js.html} +16 -19
  30. package/coverage/lcov-report/{src/api/controllers/table/bulkFormula.ts.html → api/controllers/table/bulkFormula.js.html} +62 -104
  31. package/coverage/lcov-report/{src/api/controllers/table/external.ts.html → api/controllers/table/external.js.html} +111 -204
  32. package/coverage/lcov-report/{src/utilities/fileSystem → api/controllers/table}/index.html +44 -44
  33. package/coverage/lcov-report/{src/api/controllers/table/index.ts.html → api/controllers/table/index.js.html} +49 -58
  34. package/coverage/lcov-report/{src/api/controllers/templates.ts.html → api/controllers/templates.js.html} +29 -38
  35. package/coverage/lcov-report/{src/api/controllers/user.ts.html → api/controllers/user.js.html} +99 -93
  36. package/coverage/lcov-report/{src/api/controllers/view/exporters.ts.html → api/controllers/view/exporters.js.html} +16 -22
  37. package/coverage/lcov-report/{src/api → api}/controllers/view/index.html +36 -36
  38. package/coverage/lcov-report/{src/api/controllers/view/index.ts.html → api/controllers/view/index.js.html} +64 -91
  39. package/coverage/lcov-report/{src/api/controllers/view/utils.ts.html → api/controllers/view/utils.js.html} +54 -72
  40. package/coverage/lcov-report/{src/api/controllers/view/viewBuilder.ts.html → api/controllers/view/viewBuilder.js.html} +36 -78
  41. package/coverage/lcov-report/{src/api → api}/index.html +23 -23
  42. package/coverage/lcov-report/{src/api/index.ts.html → api/index.js.html} +76 -55
  43. package/coverage/lcov-report/{src/middleware/utils.ts.html → api/routes/analytics.js.html} +19 -19
  44. package/coverage/lcov-report/api/routes/apikeys.js.html +121 -0
  45. package/coverage/lcov-report/{src/api/routes/automation.ts.html → api/routes/automation.js.html} +47 -53
  46. package/coverage/lcov-report/{src/api/routes/backup.ts.html → api/routes/cloud.js.html} +28 -28
  47. package/coverage/lcov-report/{src/api/routes/component.ts.html → api/routes/component.js.html} +24 -24
  48. package/coverage/lcov-report/{src/definitions/datasource.ts.html → api/routes/datasource.js.html} +64 -61
  49. package/coverage/lcov-report/{src/api/routes/cloud.ts.html → api/routes/deploy.js.html} +28 -31
  50. package/coverage/lcov-report/{src/automations/index.ts.html → api/routes/dev.js.html} +46 -46
  51. package/coverage/lcov-report/{src/api → api}/routes/index.html +47 -167
  52. package/coverage/lcov-report/api/routes/integration.js.html +121 -0
  53. package/coverage/lcov-report/{src/db/index.ts.html → api/routes/layout.js.html} +28 -28
  54. package/coverage/lcov-report/{src/api/routes/metadata.ts.html → api/routes/metadata.js.html} +31 -31
  55. package/coverage/lcov-report/{src/sdk/index.ts.html → api/routes/migrations.js.html} +21 -24
  56. package/coverage/lcov-report/{src/api/routes/permission.ts.html → api/routes/permission.js.html} +31 -55
  57. package/coverage/lcov-report/{src/api/routes/query.ts.html → api/routes/query.js.html} +50 -41
  58. package/coverage/lcov-report/api/routes/role.js.html +130 -0
  59. package/coverage/lcov-report/{src/api/routes/routing.ts.html → api/routes/routing.js.html} +24 -24
  60. package/coverage/lcov-report/api/routes/screen.js.html +139 -0
  61. package/coverage/lcov-report/{src/api/routes/script.ts.html → api/routes/script.js.html} +17 -17
  62. package/coverage/lcov-report/{src/api/routes/table.ts.html → api/routes/table.js.html} +41 -32
  63. package/coverage/lcov-report/{src/api/routes/templates.ts.html → api/routes/templates.js.html} +25 -25
  64. package/coverage/lcov-report/{src/api/routes/user.ts.html → api/routes/user.js.html} +41 -35
  65. package/coverage/lcov-report/{src/api → api}/routes/utils/index.html +15 -15
  66. package/coverage/lcov-report/{src/api/routes/utils/validators.ts.html → api/routes/utils/validators.js.html} +98 -86
  67. package/coverage/lcov-report/{src/api/routes/view.ts.html → api/routes/view.js.html} +36 -45
  68. package/coverage/lcov-report/{src/automations/actions.ts.html → automations/actions.js.html} +60 -69
  69. package/coverage/lcov-report/{src/automations/automationUtils.ts.html → automations/automationUtils.js.html} +33 -36
  70. package/coverage/lcov-report/{src/automations/bullboard.ts.html → automations/bullboard.js.html} +42 -39
  71. package/coverage/lcov-report/{src/automations → automations}/index.html +48 -63
  72. package/coverage/lcov-report/{src/websocket.ts.html → automations/index.js.html} +50 -41
  73. package/coverage/lcov-report/{src/automations/steps/bash.ts.html → automations/steps/bash.js.html} +30 -45
  74. package/coverage/lcov-report/{src/automations/steps/delay.ts.html → automations/steps/delay.js.html} +19 -34
  75. package/coverage/lcov-report/{src/automations/steps/discord.ts.html → automations/steps/discord.js.html} +28 -43
  76. package/coverage/lcov-report/{src/automations/steps/executeQuery.ts.html → automations/steps/executeQuery.js.html} +30 -45
  77. package/coverage/lcov-report/{src/automations/steps/executeScript.ts.html → automations/steps/executeScript.js.html} +28 -58
  78. package/coverage/lcov-report/{src/automations/steps/filter.ts.html → automations/steps/filter.js.html} +30 -39
  79. package/coverage/lcov-report/automations/steps/index.html +341 -0
  80. package/coverage/lcov-report/{src/automations/steps/integromat.ts.html → automations/steps/integromat.js.html} +23 -38
  81. package/coverage/lcov-report/{src/automations/steps/loop.ts.html → automations/steps/loop.js.html} +15 -21
  82. package/coverage/lcov-report/{src/automations/steps/outgoingWebhook.ts.html → automations/steps/outgoingWebhook.js.html} +39 -54
  83. package/coverage/lcov-report/{src/automations/steps/queryRows.ts.html → automations/steps/queryRows.js.html} +66 -102
  84. package/coverage/lcov-report/{src/automations/steps/sendSmtpEmail.ts.html → automations/steps/sendSmtpEmail.js.html} +25 -40
  85. package/coverage/lcov-report/{src/automations/steps/serverLog.ts.html → automations/steps/serverLog.js.html} +22 -40
  86. package/coverage/lcov-report/{src/automations/steps/slack.ts.html → automations/steps/slack.js.html} +23 -38
  87. package/coverage/lcov-report/{src/automations/steps/updateRow.ts.html → automations/steps/updateRow.js.html} +25 -40
  88. package/coverage/lcov-report/{src/automations/steps/utils.ts.html → automations/steps/utils.js.html} +27 -45
  89. package/coverage/lcov-report/{src/automations/steps/zapier.ts.html → automations/steps/zapier.js.html} +23 -41
  90. package/coverage/lcov-report/{src/definitions/automations.ts.html → automations/triggerInfo/app.js.html} +42 -42
  91. package/coverage/lcov-report/{src/automations/triggerInfo/cron.ts.html → automations/triggerInfo/cron.js.html} +15 -30
  92. package/coverage/lcov-report/{src/automations → automations}/triggerInfo/index.html +31 -31
  93. package/coverage/lcov-report/{src/api/routes/layout.ts.html → automations/triggerInfo/index.js.html} +26 -29
  94. package/coverage/lcov-report/{src/automations/triggerInfo/rowDeleted.ts.html → automations/triggerInfo/rowDeleted.js.html} +15 -30
  95. package/coverage/lcov-report/{src/automations/triggerInfo/rowSaved.ts.html → automations/triggerInfo/rowSaved.js.html} +15 -30
  96. package/coverage/lcov-report/{src/automations/triggerInfo/rowUpdated.ts.html → automations/triggerInfo/rowUpdated.js.html} +15 -30
  97. package/coverage/lcov-report/{src/automations/triggerInfo/webhook.ts.html → automations/triggerInfo/webhook.js.html} +15 -30
  98. package/coverage/lcov-report/{src/automations/triggers.ts.html → automations/triggers.js.html} +66 -78
  99. package/coverage/lcov-report/{src/constants → constants}/index.html +26 -26
  100. package/coverage/lcov-report/{src/integrations/dynamodb.ts.html → constants/index.js.html} +227 -263
  101. package/coverage/lcov-report/{src/constants/layouts.ts.html → constants/layouts.js.html} +36 -18
  102. package/coverage/lcov-report/{src/constants/screens.ts.html → constants/screens.js.html} +58 -64
  103. package/coverage/lcov-report/{src/db/inMemoryView.ts.html → db/inMemoryView.js.html} +29 -47
  104. package/coverage/lcov-report/{src/db → db}/index.html +33 -48
  105. package/coverage/lcov-report/{src/api/routes/integration.ts.html → db/index.js.html} +33 -33
  106. package/coverage/lcov-report/{src/db/linkedRows/LinkController.ts.html → db/linkedRows/LinkController.js.html} +160 -97
  107. package/coverage/lcov-report/db/linkedRows/index.html +146 -0
  108. package/coverage/lcov-report/{src/db/linkedRows/index.ts.html → db/linkedRows/index.js.html} +78 -93
  109. package/coverage/lcov-report/{src/db/linkedRows/linkUtils.ts.html → db/linkedRows/linkUtils.js.html} +56 -83
  110. package/coverage/lcov-report/{src/db/newid.ts.html → db/newid.js.html} +14 -14
  111. package/coverage/lcov-report/{src/db/utils.ts.html → db/utils.js.html} +211 -163
  112. package/coverage/lcov-report/{src/events/AutomationEmitter.ts.html → events/AutomationEmitter.js.html} +25 -40
  113. package/coverage/lcov-report/{src/events → events}/index.html +33 -48
  114. package/coverage/lcov-report/{src/events/BudibaseEmitter.ts.html → events/index.js.html} +29 -26
  115. package/coverage/lcov-report/{src/api/routes/dev.ts.html → events/utils.js.html} +69 -69
  116. package/coverage/lcov-report/index.html +184 -679
  117. package/coverage/lcov-report/{src/integrations → integrations}/tests/TestConfiguration.js.html +10 -10
  118. package/coverage/lcov-report/{src/integrations → integrations}/tests/index.html +10 -10
  119. package/coverage/lcov-report/{src/middleware/appInfo.ts.html → middleware/appInfo.js.html} +30 -33
  120. package/coverage/lcov-report/{src/middleware/builder.ts.html → middleware/builder.js.html} +40 -46
  121. package/coverage/lcov-report/{src/middleware/currentapp.ts.html → middleware/currentapp.js.html} +72 -81
  122. package/coverage/lcov-report/{src/middleware → middleware}/index.html +63 -78
  123. package/coverage/lcov-report/{src/middleware/joi-validator.ts.html → middleware/joi-validator.js.html} +22 -25
  124. package/coverage/lcov-report/{src/middleware/publicApi.ts.html → middleware/publicApi.js.html} +27 -27
  125. package/coverage/lcov-report/{src/middleware/resourceId.ts.html → middleware/resourceId.js.html} +45 -60
  126. package/coverage/lcov-report/{src/tests/utilities/index.ts.html → middleware/selfhost.js.html} +30 -33
  127. package/coverage/lcov-report/{src/events/index.ts.html → middleware/utils.js.html} +24 -18
  128. package/coverage/lcov-report/{src/utilities/budibaseDir.ts.html → utilities/budibaseDir.js.html} +14 -14
  129. package/coverage/lcov-report/{src/utilities/centralPath.ts.html → utilities/centralPath.js.html} +16 -16
  130. package/coverage/lcov-report/{src/utilities/csvParser.ts.html → utilities/csvParser.js.html} +59 -107
  131. package/coverage/lcov-report/{src/utilities/global.ts.html → utilities/global.js.html} +82 -115
  132. package/coverage/lcov-report/{src/utilities → utilities}/index.html +77 -92
  133. package/coverage/lcov-report/{src/utilities/index.ts.html → utilities/index.js.html} +74 -98
  134. package/coverage/lcov-report/{src/utilities/plugins.ts.html → utilities/plugins.js.html} +22 -25
  135. package/coverage/lcov-report/{src/integrations/airtable.ts.html → utilities/queue/inMemoryQueue.js.html} +135 -213
  136. package/coverage/lcov-report/{src/migrations → utilities/queue}/index.html +23 -23
  137. package/coverage/lcov-report/{src/sdk → utilities/routing}/index.html +10 -10
  138. package/coverage/lcov-report/{src/api/controllers/public/mapping/tables.ts.html → utilities/routing/index.js.html} +43 -46
  139. package/coverage/lcov-report/{src/definitions → utilities/rowProcessor}/index.html +34 -34
  140. package/coverage/lcov-report/{src/utilities/rowProcessor/index.ts.html → utilities/rowProcessor/index.js.html} +359 -128
  141. package/coverage/lcov-report/{src/utilities/rowProcessor/utils.ts.html → utilities/rowProcessor/utils.js.html} +42 -54
  142. package/coverage/lcov-report/{src/utilities/scriptRunner.ts.html → utilities/scriptRunner.js.html} +19 -31
  143. package/coverage/lcov-report/{src/utilities/security.ts.html → utilities/security.js.html} +78 -60
  144. package/coverage/lcov-report/{src/utilities/statusCodes.ts.html → utilities/statusCodes.js.html} +11 -11
  145. package/coverage/lcov-report/{src/utilities → utilities}/usageQuota/index.html +28 -28
  146. package/coverage/lcov-report/{src/utilities/usageQuota/rows.ts.html → utilities/usageQuota/rows.js.html} +48 -36
  147. package/coverage/lcov-report/{src/utilities/usageQuota/usageQuoteReset.ts.html → utilities/usageQuota/usageQuoteReset.js.html} +13 -13
  148. package/coverage/lcov-report/{src/utilities/users.ts.html → utilities/users.js.html} +40 -34
  149. package/coverage/lcov-report/{src/utilities/workerRequests.ts.html → utilities/workerRequests.js.html} +112 -127
  150. package/coverage/lcov.info +7069 -19741
  151. package/dist/api/controllers/apikeys.js +9 -12
  152. package/dist/api/controllers/application.js +45 -48
  153. package/dist/api/controllers/automation.js +82 -122
  154. package/dist/api/controllers/cloud.js +71 -84
  155. package/dist/api/controllers/component.js +2 -4
  156. package/dist/api/controllers/datasource.js +94 -151
  157. package/dist/api/controllers/deploy/Deployment.js +6 -10
  158. package/dist/api/controllers/deploy/index.js +16 -13
  159. package/dist/api/controllers/dev.js +81 -96
  160. package/dist/api/controllers/integration.js +8 -11
  161. package/dist/api/controllers/layout.js +15 -18
  162. package/dist/api/controllers/metadata.js +37 -51
  163. package/dist/api/controllers/migrations.js +11 -19
  164. package/dist/api/controllers/permission.js +43 -52
  165. package/dist/api/controllers/plugin/index.js +7 -6
  166. package/dist/api/controllers/plugin/utils.js +1 -2
  167. package/dist/api/controllers/public/applications.js +9 -17
  168. package/dist/api/controllers/public/tables.js +9 -29
  169. package/dist/api/controllers/public/utils.js +2 -2
  170. package/dist/api/controllers/query/import/index.js +2 -1
  171. package/dist/api/controllers/query/index.js +13 -10
  172. package/dist/api/controllers/query/validation.js +33 -41
  173. package/dist/api/controllers/role.js +27 -29
  174. package/dist/api/controllers/routing.js +58 -71
  175. package/dist/api/controllers/row/ExternalRequest.js +542 -538
  176. package/dist/api/controllers/row/external.js +190 -258
  177. package/dist/api/controllers/row/index.js +14 -43
  178. package/dist/api/controllers/row/internal.js +295 -354
  179. package/dist/api/controllers/row/internalSearch.js +80 -95
  180. package/dist/api/controllers/row/staticFormula.js +112 -125
  181. package/dist/api/controllers/row/utils.js +84 -122
  182. package/dist/api/controllers/screen.js +66 -81
  183. package/dist/api/controllers/script.js +6 -13
  184. package/dist/api/controllers/static/index.js +14 -11
  185. package/dist/api/controllers/table/bulkFormula.js +35 -47
  186. package/dist/api/controllers/table/external.js +53 -89
  187. package/dist/api/controllers/table/index.js +31 -64
  188. package/dist/api/controllers/table/internal.js +6 -5
  189. package/dist/api/controllers/table/utils.js +35 -39
  190. package/dist/api/controllers/templates.js +10 -17
  191. package/dist/api/controllers/user.js +70 -82
  192. package/dist/api/controllers/view/exporters.js +4 -8
  193. package/dist/api/controllers/view/index.js +153 -201
  194. package/dist/api/controllers/view/utils.js +121 -151
  195. package/dist/api/controllers/view/viewBuilder.js +16 -4
  196. package/dist/api/controllers/webhook.js +2 -25
  197. package/dist/api/index.js +34 -38
  198. package/dist/api/routes/analytics.js +3 -29
  199. package/dist/api/routes/apikeys.js +7 -33
  200. package/dist/api/routes/application.js +9 -8
  201. package/dist/api/routes/auth.js +2 -1
  202. package/dist/api/routes/automation.js +20 -46
  203. package/dist/api/routes/backup.js +4 -3
  204. package/dist/api/routes/cloud.js +6 -32
  205. package/dist/api/routes/component.js +6 -32
  206. package/dist/api/routes/datasource.js +13 -39
  207. package/dist/api/routes/deploy.js +8 -34
  208. package/dist/api/routes/dev.js +10 -36
  209. package/dist/api/routes/integration.js +7 -33
  210. package/dist/api/routes/layout.js +7 -33
  211. package/dist/api/routes/metadata.js +10 -36
  212. package/dist/api/routes/migrations.js +6 -32
  213. package/dist/api/routes/permission.js +12 -38
  214. package/dist/api/routes/plugin.js +5 -5
  215. package/dist/api/routes/public/index.js +11 -11
  216. package/dist/api/routes/query.js +15 -42
  217. package/dist/api/routes/role.js +10 -36
  218. package/dist/api/routes/routing.js +6 -32
  219. package/dist/api/routes/row.js +11 -12
  220. package/dist/api/routes/screen.js +9 -35
  221. package/dist/api/routes/script.js +6 -32
  222. package/dist/api/routes/static.js +9 -9
  223. package/dist/api/routes/table.js +13 -40
  224. package/dist/api/routes/templates.js +7 -33
  225. package/dist/api/routes/tests/utilities/TestFunctions.js +8 -6
  226. package/dist/api/routes/tests/utilities/index.js +32 -69
  227. package/dist/api/routes/user.js +13 -40
  228. package/dist/api/routes/utils/validators.js +126 -142
  229. package/dist/api/routes/view.js +12 -38
  230. package/dist/api/routes/webhook.js +2 -1
  231. package/dist/app.js +22 -22
  232. package/dist/automations/actions.js +24 -53
  233. package/dist/automations/automationUtils.js +19 -31
  234. package/dist/automations/bullboard.js +29 -59
  235. package/dist/automations/index.js +18 -23
  236. package/dist/automations/steps/bash.js +10 -40
  237. package/dist/automations/steps/createRow.js +1 -2
  238. package/dist/automations/steps/delay.js +5 -9
  239. package/dist/automations/steps/deleteRow.js +1 -2
  240. package/dist/automations/steps/discord.js +7 -14
  241. package/dist/automations/steps/executeQuery.js +7 -34
  242. package/dist/automations/steps/executeScript.js +7 -34
  243. package/dist/automations/steps/filter.js +18 -20
  244. package/dist/automations/steps/integromat.js +7 -14
  245. package/dist/automations/steps/loop.js +1 -4
  246. package/dist/automations/steps/outgoingWebhook.js +14 -45
  247. package/dist/automations/steps/queryRows.js +38 -71
  248. package/dist/automations/steps/sendSmtpEmail.js +6 -33
  249. package/dist/automations/steps/serverLog.js +8 -12
  250. package/dist/automations/steps/slack.js +7 -14
  251. package/dist/automations/steps/updateRow.js +7 -34
  252. package/dist/automations/steps/utils.js +16 -22
  253. package/dist/automations/steps/zapier.js +7 -15
  254. package/dist/automations/tests/utilities/index.js +38 -62
  255. package/dist/automations/triggerInfo/app.js +1 -4
  256. package/dist/automations/triggerInfo/cron.js +1 -4
  257. package/dist/automations/triggerInfo/index.js +6 -31
  258. package/dist/automations/triggerInfo/rowDeleted.js +1 -4
  259. package/dist/automations/triggerInfo/rowSaved.js +1 -4
  260. package/dist/automations/triggerInfo/rowUpdated.js +1 -4
  261. package/dist/automations/triggerInfo/webhook.js +1 -4
  262. package/dist/automations/triggers.js +57 -90
  263. package/dist/automations/utils.js +8 -9
  264. package/dist/constants/index.js +104 -118
  265. package/dist/constants/layouts.js +10 -7
  266. package/dist/constants/screens.js +44 -49
  267. package/dist/db/dynamoClient.js +20 -20
  268. package/dist/db/inMemoryView.js +38 -47
  269. package/dist/db/index.js +4 -7
  270. package/dist/db/linkedRows/LinkController.js +70 -51
  271. package/dist/db/linkedRows/index.js +81 -93
  272. package/dist/db/linkedRows/linkUtils.js +32 -42
  273. package/dist/db/utils.js +119 -146
  274. package/dist/db/views/staticViews.js +74 -91
  275. package/dist/environment.js +6 -9
  276. package/dist/events/AutomationEmitter.js +10 -13
  277. package/dist/events/index.js +23 -5
  278. package/dist/events/utils.js +10 -18
  279. package/dist/integrations/elasticsearch.js +2 -26
  280. package/dist/integrations/googlesheets.js +6 -5
  281. package/dist/integrations/index.js +6 -15
  282. package/dist/integrations/s3.js +1 -157
  283. package/dist/integrations/tests/TestConfiguration.js +1 -0
  284. package/dist/middleware/appInfo.js +9 -14
  285. package/dist/middleware/authorized.js +21 -22
  286. package/dist/middleware/builder.js +40 -41
  287. package/dist/middleware/currentapp.js +37 -39
  288. package/dist/middleware/joi-validator.js +10 -17
  289. package/dist/middleware/publicApi.js +6 -5
  290. package/dist/middleware/resourceId.js +9 -16
  291. package/dist/middleware/selfhost.js +4 -5
  292. package/dist/middleware/utils.js +2 -5
  293. package/dist/migrations/functions/appUrls.js +2 -2
  294. package/dist/migrations/functions/backfill/global.js +1 -1
  295. package/dist/migrations/functions/usageQuotas/syncApps.js +4 -3
  296. package/dist/migrations/functions/usageQuotas/syncRows.js +4 -3
  297. package/dist/migrations/functions/userEmailViewCasing.js +3 -3
  298. package/dist/migrations/index.js +0 -5
  299. package/dist/package.json +45 -11
  300. package/dist/sdk/app/backups/exports.js +2 -1
  301. package/dist/sdk/app/backups/imports.js +3 -2
  302. package/dist/sdk/app/tables/index.js +5 -5
  303. package/dist/startup.js +10 -10
  304. package/dist/tests/utilities/TestConfiguration.js +87 -111
  305. package/dist/tests/utilities/controllers.js +15 -38
  306. package/dist/tests/utilities/structures.js +53 -72
  307. package/dist/threads/automation.js +27 -49
  308. package/dist/threads/query.js +19 -17
  309. package/dist/threads/utils.js +8 -33
  310. package/dist/tsconfig.build.tsbuildinfo +1 -1
  311. package/dist/utilities/budibaseDir.js +2 -4
  312. package/dist/utilities/centralPath.js +7 -14
  313. package/dist/utilities/csvParser.js +21 -27
  314. package/dist/utilities/fileSystem/clientLibrary.js +73 -87
  315. package/dist/utilities/fileSystem/index.js +175 -203
  316. package/dist/utilities/fileSystem/processor.js +3 -8
  317. package/dist/utilities/fileSystem/utilities.js +22 -0
  318. package/dist/utilities/global.js +66 -87
  319. package/dist/utilities/index.js +75 -102
  320. package/dist/utilities/plugins.js +9 -15
  321. package/dist/utilities/queue/inMemoryQueue.js +126 -0
  322. package/dist/utilities/redis.js +65 -100
  323. package/dist/utilities/routing/index.js +23 -27
  324. package/dist/utilities/rowProcessor/index.js +191 -133
  325. package/dist/utilities/rowProcessor/utils.js +26 -35
  326. package/dist/utilities/scriptRunner.js +5 -8
  327. package/dist/utilities/security.js +35 -39
  328. package/dist/utilities/usageQuota/rows.js +49 -56
  329. package/dist/utilities/users.js +28 -31
  330. package/dist/utilities/workerRequests.js +82 -115
  331. package/dist/watch.js +2 -1
  332. package/package.json +46 -12
  333. package/scripts/exportAppTemplate.js +2 -2
  334. package/{src/tests/jestSetup.ts → scripts/jestSetup.js} +2 -11
  335. package/scripts/localdomain.js +6 -34
  336. package/src/api/controllers/{apikeys.ts → apikeys.js} +10 -10
  337. package/src/api/controllers/application.ts +42 -56
  338. package/src/api/controllers/auth.ts +3 -4
  339. package/src/api/controllers/{automation.ts → automation.js} +48 -48
  340. package/src/api/controllers/{cloud.ts → cloud.js} +24 -24
  341. package/src/api/controllers/component.ts +1 -2
  342. package/src/api/controllers/{datasource.ts → datasource.js} +49 -109
  343. package/src/api/controllers/deploy/{Deployment.ts → Deployment.js} +10 -13
  344. package/src/api/controllers/deploy/index.ts +25 -13
  345. package/src/api/controllers/{dev.ts → dev.js} +37 -31
  346. package/src/api/controllers/integration.js +14 -0
  347. package/src/api/controllers/{layout.ts → layout.js} +8 -8
  348. package/src/api/controllers/{metadata.ts → metadata.js} +10 -11
  349. package/src/api/controllers/migrations.js +13 -0
  350. package/src/api/controllers/{permission.ts → permission.js} +46 -49
  351. package/src/api/controllers/plugin/index.ts +5 -4
  352. package/src/api/controllers/plugin/utils.ts +5 -3
  353. package/src/api/controllers/public/applications.ts +9 -15
  354. package/src/api/controllers/public/rows.ts +1 -1
  355. package/src/api/controllers/public/tables.ts +2 -2
  356. package/src/api/controllers/public/utils.ts +2 -2
  357. package/src/api/controllers/query/import/index.ts +3 -2
  358. package/src/api/controllers/query/index.ts +14 -11
  359. package/src/api/controllers/query/{validation.ts → validation.js} +7 -7
  360. package/src/api/controllers/{role.ts → role.js} +25 -21
  361. package/src/api/controllers/{routing.ts → routing.js} +34 -37
  362. package/src/api/controllers/row/ExternalRequest.ts +624 -602
  363. package/src/api/controllers/row/{external.ts → external.js} +62 -79
  364. package/src/api/controllers/row/index.ts +11 -19
  365. package/src/api/controllers/row/{internal.ts → internal.js} +73 -87
  366. package/src/api/controllers/row/{internalSearch.ts → internalSearch.js} +68 -92
  367. package/src/api/controllers/row/{staticFormula.ts → staticFormula.js} +25 -30
  368. package/src/api/controllers/row/{utils.ts → utils.js} +22 -32
  369. package/src/api/controllers/screen.ts +6 -10
  370. package/src/api/controllers/script.js +11 -0
  371. package/src/api/controllers/static/index.ts +16 -14
  372. package/src/api/controllers/table/{bulkFormula.ts → bulkFormula.js} +25 -39
  373. package/src/api/controllers/table/{external.ts → external.js} +55 -86
  374. package/src/api/controllers/table/{index.ts → index.js} +18 -21
  375. package/src/api/controllers/table/internal.ts +6 -5
  376. package/src/api/controllers/table/utils.ts +21 -26
  377. package/src/api/controllers/{templates.ts → templates.js} +7 -10
  378. package/src/api/controllers/{user.ts → user.js} +49 -47
  379. package/src/api/controllers/view/{exporters.ts → exporters.js} +3 -5
  380. package/src/api/controllers/view/{index.ts → index.js} +27 -36
  381. package/src/api/controllers/view/{utils.ts → utils.js} +20 -26
  382. package/src/api/controllers/view/{viewBuilder.ts → viewBuilder.js} +11 -25
  383. package/src/api/controllers/webhook.ts +1 -1
  384. package/src/api/{index.ts → index.js} +22 -15
  385. package/src/api/routes/analytics.js +9 -0
  386. package/src/api/routes/apikeys.js +12 -0
  387. package/src/api/routes/application.ts +9 -17
  388. package/src/api/routes/auth.ts +2 -2
  389. package/src/api/routes/automation.js +85 -0
  390. package/src/api/routes/backup.ts +4 -8
  391. package/src/api/routes/cloud.js +14 -0
  392. package/src/api/routes/component.js +14 -0
  393. package/src/api/routes/datasource.js +51 -0
  394. package/src/api/routes/deploy.js +17 -0
  395. package/src/api/routes/dev.js +26 -0
  396. package/src/api/routes/integration.js +12 -0
  397. package/src/api/routes/layout.js +16 -0
  398. package/src/api/routes/{metadata.ts → metadata.js} +13 -13
  399. package/src/api/routes/migrations.js +14 -0
  400. package/src/api/routes/permission.js +33 -0
  401. package/src/api/routes/plugin.ts +6 -14
  402. package/src/api/routes/public/index.ts +14 -11
  403. package/src/api/routes/public/tests/compare.spec.js +1 -1
  404. package/src/api/routes/{query.ts → query.js} +22 -19
  405. package/src/api/routes/role.js +15 -0
  406. package/src/api/routes/routing.js +14 -0
  407. package/src/api/routes/row.ts +15 -13
  408. package/src/api/routes/screen.js +18 -0
  409. package/src/api/routes/script.js +10 -0
  410. package/src/api/routes/static.ts +10 -7
  411. package/src/api/routes/{table.ts → table.js} +13 -10
  412. package/src/api/routes/templates.js +16 -0
  413. package/src/api/routes/tests/analytics.spec.js +1 -1
  414. package/src/api/routes/tests/backup.spec.js +1 -9
  415. package/src/api/routes/tests/deployment.spec.ts +1 -1
  416. package/src/api/routes/tests/permissions.spec.js +1 -2
  417. package/src/api/routes/tests/query.spec.js +10 -15
  418. package/src/api/routes/tests/role.spec.js +9 -7
  419. package/src/api/routes/tests/routing.spec.js +1 -2
  420. package/src/api/routes/tests/row.spec.js +4 -3
  421. package/src/api/routes/tests/static.spec.js +2 -2
  422. package/src/api/routes/tests/table.spec.js +36 -40
  423. package/src/api/routes/tests/user.spec.js +1 -2
  424. package/src/api/routes/tests/utilities/TestFunctions.ts +8 -6
  425. package/src/api/routes/tests/utilities/{index.ts → index.js} +12 -12
  426. package/src/api/routes/tests/view.spec.js +3 -3
  427. package/src/api/routes/user.js +53 -0
  428. package/src/api/routes/utils/{validators.ts → validators.js} +37 -33
  429. package/src/api/routes/view.js +31 -0
  430. package/src/api/routes/webhook.ts +2 -2
  431. package/src/app.ts +14 -15
  432. package/src/automations/{actions.ts → actions.js} +23 -26
  433. package/src/automations/{automationUtils.ts → automationUtils.js} +12 -13
  434. package/src/automations/bullboard.js +39 -0
  435. package/src/automations/index.js +29 -0
  436. package/src/automations/steps/{bash.ts → bash.js} +8 -13
  437. package/src/automations/steps/createRow.ts +3 -8
  438. package/src/automations/steps/{delay.ts → delay.js} +4 -9
  439. package/src/automations/steps/deleteRow.ts +3 -8
  440. package/src/automations/steps/{discord.ts → discord.js} +5 -10
  441. package/src/automations/steps/{executeQuery.ts → executeQuery.js} +7 -12
  442. package/src/automations/steps/{executeScript.ts → executeScript.js} +7 -17
  443. package/src/automations/steps/{filter.ts → filter.js} +9 -12
  444. package/src/automations/steps/{integromat.ts → integromat.js} +5 -10
  445. package/src/automations/steps/{loop.ts → loop.js} +2 -4
  446. package/src/automations/steps/{outgoingWebhook.ts → outgoingWebhook.js} +13 -18
  447. package/src/automations/steps/{queryRows.ts → queryRows.js} +36 -48
  448. package/src/automations/steps/{sendSmtpEmail.ts → sendSmtpEmail.js} +5 -10
  449. package/src/automations/steps/{serverLog.ts → serverLog.js} +3 -9
  450. package/src/automations/steps/{slack.ts → slack.js} +5 -10
  451. package/src/automations/steps/{updateRow.ts → updateRow.js} +7 -12
  452. package/src/automations/steps/{utils.ts → utils.js} +4 -10
  453. package/src/automations/steps/{zapier.ts → zapier.js} +5 -11
  454. package/src/automations/tests/updateRow.spec.js +1 -0
  455. package/src/automations/tests/utilities/index.js +51 -0
  456. package/src/automations/triggerInfo/{app.ts → app.js} +2 -7
  457. package/src/automations/triggerInfo/{cron.ts → cron.js} +2 -7
  458. package/src/automations/triggerInfo/index.js +15 -0
  459. package/src/automations/triggerInfo/{rowDeleted.ts → rowDeleted.js} +2 -7
  460. package/src/automations/triggerInfo/{rowSaved.ts → rowSaved.js} +2 -7
  461. package/src/automations/triggerInfo/{rowUpdated.ts → rowUpdated.js} +2 -7
  462. package/src/automations/triggerInfo/{webhook.ts → webhook.js} +2 -7
  463. package/src/automations/{triggers.ts → triggers.js} +26 -30
  464. package/src/automations/utils.ts +12 -9
  465. package/src/constants/index.js +208 -0
  466. package/src/constants/{layouts.ts → layouts.js} +9 -3
  467. package/src/constants/screens.js +46 -0
  468. package/src/db/{dynamoClient.ts → dynamoClient.js} +19 -39
  469. package/src/db/{inMemoryView.ts → inMemoryView.js} +9 -15
  470. package/src/db/index.js +16 -0
  471. package/src/db/linkedRows/{LinkController.ts → LinkController.js} +85 -64
  472. package/src/db/linkedRows/{index.ts → index.js} +38 -43
  473. package/src/db/linkedRows/{linkUtils.ts → linkUtils.js} +24 -33
  474. package/src/db/{newid.ts → newid.js} +1 -1
  475. package/src/db/tests/linkController.spec.js +57 -73
  476. package/src/db/tests/linkTests.spec.js +14 -17
  477. package/src/db/{utils.ts → utils.js} +93 -77
  478. package/src/db/views/{staticViews.ts → staticViews.js} +13 -20
  479. package/src/{environment.ts → environment.js} +7 -11
  480. package/src/events/{AutomationEmitter.ts → AutomationEmitter.js} +7 -12
  481. package/src/events/{BudibaseEmitter.ts → index.js} +8 -7
  482. package/src/events/utils.js +38 -0
  483. package/src/integrations/base/sql.ts +1 -1
  484. package/src/integrations/base/sqlTable.ts +1 -1
  485. package/src/integrations/elasticsearch.ts +2 -32
  486. package/src/integrations/googlesheets.ts +7 -5
  487. package/src/integrations/index.ts +41 -45
  488. package/src/integrations/s3.ts +3 -179
  489. package/src/integrations/tests/s3.spec.ts +1 -85
  490. package/src/integrations/utils.ts +2 -6
  491. package/src/middleware/appInfo.js +19 -0
  492. package/src/middleware/authorized.ts +28 -21
  493. package/src/middleware/{builder.ts → builder.js} +15 -17
  494. package/src/middleware/{currentapp.ts → currentapp.js} +39 -42
  495. package/src/middleware/{joi-validator.ts → joi-validator.js} +8 -9
  496. package/src/middleware/publicApi.js +21 -0
  497. package/src/middleware/{resourceId.ts → resourceId.js} +11 -16
  498. package/src/middleware/{selfhost.ts → selfhost.js} +2 -4
  499. package/src/middleware/tests/authorized.spec.js +6 -5
  500. package/src/middleware/tests/currentapp.spec.js +63 -118
  501. package/src/middleware/{utils.ts → utils.js} +1 -3
  502. package/src/migrations/functions/appUrls.ts +2 -2
  503. package/src/migrations/functions/backfill/app/tables.ts +5 -2
  504. package/src/migrations/functions/backfill/global.ts +1 -1
  505. package/src/migrations/functions/tests/appUrls.spec.js +4 -4
  506. package/src/migrations/functions/tests/userEmailViewCasing.spec.js +9 -14
  507. package/src/migrations/functions/usageQuotas/syncApps.ts +4 -3
  508. package/src/migrations/functions/usageQuotas/syncRows.ts +5 -4
  509. package/src/migrations/functions/usageQuotas/tests/syncRows.spec.ts +7 -7
  510. package/src/migrations/functions/userEmailViewCasing.ts +3 -3
  511. package/src/migrations/index.ts +0 -9
  512. package/src/migrations/tests/index.spec.ts +1 -1
  513. package/src/module.d.ts +14 -0
  514. package/src/sdk/app/backups/exports.ts +3 -5
  515. package/src/sdk/app/backups/imports.ts +14 -7
  516. package/src/sdk/app/backups/statistics.ts +18 -9
  517. package/src/sdk/app/tables/index.ts +8 -7
  518. package/src/startup.ts +5 -5
  519. package/src/tests/utilities/{TestConfiguration.ts → TestConfiguration.js} +78 -111
  520. package/src/tests/utilities/controllers.js +16 -0
  521. package/src/tests/utilities/{index.ts → index.js} +2 -2
  522. package/src/tests/utilities/{structures.ts → structures.js} +36 -41
  523. package/src/threads/automation.ts +19 -18
  524. package/src/threads/query.ts +16 -11
  525. package/src/threads/utils.ts +5 -4
  526. package/src/utilities/budibaseDir.js +3 -0
  527. package/src/utilities/{centralPath.ts → centralPath.js} +3 -3
  528. package/src/utilities/{csvParser.ts → csvParser.js} +26 -42
  529. package/src/utilities/fileSystem/{clientLibrary.ts → clientLibrary.js} +20 -20
  530. package/src/utilities/fileSystem/{index.ts → index.js} +65 -61
  531. package/src/utilities/fileSystem/{processor.ts → processor.js} +5 -3
  532. package/src/utilities/fileSystem/utilities.js +36 -0
  533. package/src/utilities/global.js +127 -0
  534. package/src/utilities/{index.ts → index.js} +32 -40
  535. package/src/utilities/{plugins.ts → plugins.js} +4 -5
  536. package/src/utilities/queue/inMemoryQueue.js +122 -0
  537. package/src/utilities/{redis.ts → redis.js} +20 -21
  538. package/src/utilities/routing/index.js +25 -0
  539. package/src/utilities/rowProcessor/{index.ts → index.js} +144 -67
  540. package/src/utilities/rowProcessor/{utils.ts → utils.js} +15 -19
  541. package/src/utilities/{scriptRunner.ts → scriptRunner.js} +4 -8
  542. package/src/utilities/security.js +71 -0
  543. package/src/utilities/{statusCodes.ts → statusCodes.js} +1 -1
  544. package/src/utilities/usageQuota/{rows.ts → rows.js} +18 -14
  545. package/src/utilities/usageQuota/{usageQuoteReset.ts → usageQuoteReset.js} +1 -1
  546. package/src/utilities/{users.ts → users.js} +13 -11
  547. package/src/utilities/{workerRequests.ts → workerRequests.js} +38 -43
  548. package/src/watch.ts +3 -2
  549. package/tsconfig.build.json +2 -1
  550. package/tsconfig.json +1 -3
  551. package/builder/assets/index.66c1c272.css +0 -6
  552. package/coverage/lcov-report/src/api/controllers/analytics.ts.html +0 -190
  553. package/coverage/lcov-report/src/api/controllers/application.ts.html +0 -2038
  554. package/coverage/lcov-report/src/api/controllers/auth.ts.html +0 -301
  555. package/coverage/lcov-report/src/api/controllers/backup.ts.html +0 -148
  556. package/coverage/lcov-report/src/api/controllers/component.ts.html +0 -259
  557. package/coverage/lcov-report/src/api/controllers/deploy/Deployment.ts.html +0 -259
  558. package/coverage/lcov-report/src/api/controllers/deploy/index.html +0 -131
  559. package/coverage/lcov-report/src/api/controllers/deploy/index.ts.html +0 -730
  560. package/coverage/lcov-report/src/api/controllers/index.html +0 -431
  561. package/coverage/lcov-report/src/api/controllers/integration.ts.html +0 -124
  562. package/coverage/lcov-report/src/api/controllers/plugin/file.ts.html +0 -130
  563. package/coverage/lcov-report/src/api/controllers/plugin/github.ts.html +0 -310
  564. package/coverage/lcov-report/src/api/controllers/plugin/index.html +0 -206
  565. package/coverage/lcov-report/src/api/controllers/plugin/index.ts.html +0 -484
  566. package/coverage/lcov-report/src/api/controllers/plugin/npm.ts.html +0 -253
  567. package/coverage/lcov-report/src/api/controllers/plugin/uploaders.ts.html +0 -97
  568. package/coverage/lcov-report/src/api/controllers/plugin/url.ts.html +0 -121
  569. package/coverage/lcov-report/src/api/controllers/plugin/utils.ts.html +0 -136
  570. package/coverage/lcov-report/src/api/controllers/public/applications.ts.html +0 -334
  571. package/coverage/lcov-report/src/api/controllers/public/index.html +0 -191
  572. package/coverage/lcov-report/src/api/controllers/public/mapping/applications.ts.html +0 -181
  573. package/coverage/lcov-report/src/api/controllers/public/mapping/index.html +0 -191
  574. package/coverage/lcov-report/src/api/controllers/public/mapping/index.ts.html +0 -124
  575. package/coverage/lcov-report/src/api/controllers/public/mapping/queries.ts.html +0 -202
  576. package/coverage/lcov-report/src/api/controllers/public/mapping/rows.ts.html +0 -178
  577. package/coverage/lcov-report/src/api/controllers/public/mapping/users.ts.html +0 -181
  578. package/coverage/lcov-report/src/api/controllers/public/queries.ts.html +0 -145
  579. package/coverage/lcov-report/src/api/controllers/public/rows.ts.html +0 -328
  580. package/coverage/lcov-report/src/api/controllers/public/tables.ts.html +0 -253
  581. package/coverage/lcov-report/src/api/controllers/public/users.ts.html +0 -268
  582. package/coverage/lcov-report/src/api/controllers/public/utils.ts.html +0 -220
  583. package/coverage/lcov-report/src/api/controllers/query/import/index.html +0 -116
  584. package/coverage/lcov-report/src/api/controllers/query/import/index.ts.html +0 -373
  585. package/coverage/lcov-report/src/api/controllers/query/import/sources/base/index.html +0 -131
  586. package/coverage/lcov-report/src/api/controllers/query/import/sources/base/index.ts.html +0 -379
  587. package/coverage/lcov-report/src/api/controllers/query/import/sources/base/openapi.ts.html +0 -157
  588. package/coverage/lcov-report/src/api/controllers/query/import/sources/curl.ts.html +0 -403
  589. package/coverage/lcov-report/src/api/controllers/query/import/sources/index.html +0 -146
  590. package/coverage/lcov-report/src/api/controllers/query/import/sources/openapi2.ts.html +0 -586
  591. package/coverage/lcov-report/src/api/controllers/query/import/sources/openapi3.ts.html +0 -712
  592. package/coverage/lcov-report/src/api/controllers/query/index.html +0 -131
  593. package/coverage/lcov-report/src/api/controllers/query/index.ts.html +0 -976
  594. package/coverage/lcov-report/src/api/controllers/row/ExternalRequest.ts.html +0 -2260
  595. package/coverage/lcov-report/src/api/controllers/row/index.ts.html +0 -541
  596. package/coverage/lcov-report/src/api/controllers/screen.ts.html +0 -463
  597. package/coverage/lcov-report/src/api/controllers/static/index.html +0 -116
  598. package/coverage/lcov-report/src/api/controllers/static/index.ts.html +0 -694
  599. package/coverage/lcov-report/src/api/controllers/table/index.html +0 -176
  600. package/coverage/lcov-report/src/api/controllers/table/internal.ts.html +0 -661
  601. package/coverage/lcov-report/src/api/controllers/table/utils.ts.html +0 -1255
  602. package/coverage/lcov-report/src/api/controllers/webhook.ts.html +0 -379
  603. package/coverage/lcov-report/src/api/routes/analytics.ts.html +0 -112
  604. package/coverage/lcov-report/src/api/routes/apikeys.ts.html +0 -121
  605. package/coverage/lcov-report/src/api/routes/application.ts.html +0 -223
  606. package/coverage/lcov-report/src/api/routes/auth.ts.html +0 -109
  607. package/coverage/lcov-report/src/api/routes/datasource.ts.html +0 -265
  608. package/coverage/lcov-report/src/api/routes/deploy.ts.html +0 -148
  609. package/coverage/lcov-report/src/api/routes/index.ts.html +0 -289
  610. package/coverage/lcov-report/src/api/routes/migrations.ts.html +0 -127
  611. package/coverage/lcov-report/src/api/routes/plugin.ts.html +0 -151
  612. package/coverage/lcov-report/src/api/routes/public/applications.ts.html +0 -541
  613. package/coverage/lcov-report/src/api/routes/public/index.html +0 -191
  614. package/coverage/lcov-report/src/api/routes/public/index.ts.html +0 -493
  615. package/coverage/lcov-report/src/api/routes/public/middleware/index.html +0 -116
  616. package/coverage/lcov-report/src/api/routes/public/middleware/mapper.ts.html +0 -328
  617. package/coverage/lcov-report/src/api/routes/public/queries.ts.html +0 -313
  618. package/coverage/lcov-report/src/api/routes/public/rows.ts.html +0 -598
  619. package/coverage/lcov-report/src/api/routes/public/tables.ts.html +0 -586
  620. package/coverage/lcov-report/src/api/routes/public/users.ts.html +0 -511
  621. package/coverage/lcov-report/src/api/routes/public/utils/Endpoint.ts.html +0 -238
  622. package/coverage/lcov-report/src/api/routes/public/utils/index.html +0 -116
  623. package/coverage/lcov-report/src/api/routes/role.ts.html +0 -157
  624. package/coverage/lcov-report/src/api/routes/row.ts.html +0 -883
  625. package/coverage/lcov-report/src/api/routes/screen.ts.html +0 -154
  626. package/coverage/lcov-report/src/api/routes/static.ts.html +0 -280
  627. package/coverage/lcov-report/src/api/routes/tests/utilities/TestFunctions.ts.html +0 -550
  628. package/coverage/lcov-report/src/api/routes/tests/utilities/index.html +0 -131
  629. package/coverage/lcov-report/src/api/routes/tests/utilities/index.ts.html +0 -367
  630. package/coverage/lcov-report/src/api/routes/webhook.ts.html +0 -166
  631. package/coverage/lcov-report/src/app.ts.html +0 -406
  632. package/coverage/lcov-report/src/automations/logging/index.html +0 -116
  633. package/coverage/lcov-report/src/automations/logging/index.ts.html +0 -199
  634. package/coverage/lcov-report/src/automations/steps/createRow.ts.html +0 -382
  635. package/coverage/lcov-report/src/automations/steps/deleteRow.ts.html +0 -349
  636. package/coverage/lcov-report/src/automations/steps/index.html +0 -371
  637. package/coverage/lcov-report/src/automations/tests/utilities/index.html +0 -116
  638. package/coverage/lcov-report/src/automations/tests/utilities/index.ts.html +0 -265
  639. package/coverage/lcov-report/src/automations/triggerInfo/app.ts.html +0 -196
  640. package/coverage/lcov-report/src/automations/triggerInfo/index.ts.html +0 -130
  641. package/coverage/lcov-report/src/automations/utils.ts.html +0 -886
  642. package/coverage/lcov-report/src/constants/index.ts.html +0 -697
  643. package/coverage/lcov-report/src/db/defaultData/datasource_bb_default.ts.html +0 -2059
  644. package/coverage/lcov-report/src/db/defaultData/employeeImport.ts.html +0 -541
  645. package/coverage/lcov-report/src/db/defaultData/expensesImport.ts.html +0 -427
  646. package/coverage/lcov-report/src/db/defaultData/index.html +0 -176
  647. package/coverage/lcov-report/src/db/defaultData/inventoryImport.ts.html +0 -403
  648. package/coverage/lcov-report/src/db/defaultData/jobsImport.ts.html +0 -559
  649. package/coverage/lcov-report/src/db/dynamoClient.ts.html +0 -526
  650. package/coverage/lcov-report/src/db/linkedRows/LinkDocument.ts.html +0 -265
  651. package/coverage/lcov-report/src/db/linkedRows/index.html +0 -161
  652. package/coverage/lcov-report/src/environment.ts.html +0 -457
  653. package/coverage/lcov-report/src/events/utils.ts.html +0 -319
  654. package/coverage/lcov-report/src/index.html +0 -191
  655. package/coverage/lcov-report/src/index.ts.html +0 -133
  656. package/coverage/lcov-report/src/integrations/arangodb.ts.html +0 -415
  657. package/coverage/lcov-report/src/integrations/base/index.html +0 -161
  658. package/coverage/lcov-report/src/integrations/base/query.ts.html +0 -133
  659. package/coverage/lcov-report/src/integrations/base/sql.ts.html +0 -1951
  660. package/coverage/lcov-report/src/integrations/base/sqlTable.ts.html +0 -691
  661. package/coverage/lcov-report/src/integrations/base/utils.ts.html +0 -121
  662. package/coverage/lcov-report/src/integrations/couchdb.ts.html +0 -406
  663. package/coverage/lcov-report/src/integrations/elasticsearch.ts.html +0 -634
  664. package/coverage/lcov-report/src/integrations/firebase.ts.html +0 -646
  665. package/coverage/lcov-report/src/integrations/googlesheets.ts.html +0 -1315
  666. package/coverage/lcov-report/src/integrations/index.html +0 -371
  667. package/coverage/lcov-report/src/integrations/index.ts.html +0 -445
  668. package/coverage/lcov-report/src/integrations/microsoftSqlServer.ts.html +0 -1006
  669. package/coverage/lcov-report/src/integrations/mongodb.ts.html +0 -1867
  670. package/coverage/lcov-report/src/integrations/mysql.ts.html +0 -964
  671. package/coverage/lcov-report/src/integrations/oracle.ts.html +0 -1474
  672. package/coverage/lcov-report/src/integrations/postgres.ts.html +0 -1069
  673. package/coverage/lcov-report/src/integrations/queries/index.html +0 -116
  674. package/coverage/lcov-report/src/integrations/queries/sql.ts.html +0 -463
  675. package/coverage/lcov-report/src/integrations/redis.ts.html +0 -550
  676. package/coverage/lcov-report/src/integrations/rest.ts.html +0 -1381
  677. package/coverage/lcov-report/src/integrations/s3.ts.html +0 -862
  678. package/coverage/lcov-report/src/integrations/snowflake.ts.html +0 -376
  679. package/coverage/lcov-report/src/integrations/utils.ts.html +0 -1018
  680. package/coverage/lcov-report/src/middleware/authorized.ts.html +0 -460
  681. package/coverage/lcov-report/src/migrations/functions/appUrls.ts.html +0 -187
  682. package/coverage/lcov-report/src/migrations/functions/backfill/app/automations.ts.html +0 -163
  683. package/coverage/lcov-report/src/migrations/functions/backfill/app/datasources.ts.html +0 -151
  684. package/coverage/lcov-report/src/migrations/functions/backfill/app/index.html +0 -206
  685. package/coverage/lcov-report/src/migrations/functions/backfill/app/layouts.ts.html +0 -172
  686. package/coverage/lcov-report/src/migrations/functions/backfill/app/queries.ts.html +0 -226
  687. package/coverage/lcov-report/src/migrations/functions/backfill/app/roles.ts.html +0 -151
  688. package/coverage/lcov-report/src/migrations/functions/backfill/app/screens.ts.html +0 -151
  689. package/coverage/lcov-report/src/migrations/functions/backfill/app/tables.ts.html +0 -166
  690. package/coverage/lcov-report/src/migrations/functions/backfill/app.ts.html +0 -532
  691. package/coverage/lcov-report/src/migrations/functions/backfill/global/configs.ts.html +0 -283
  692. package/coverage/lcov-report/src/migrations/functions/backfill/global/index.html +0 -146
  693. package/coverage/lcov-report/src/migrations/functions/backfill/global/quotas.ts.html +0 -265
  694. package/coverage/lcov-report/src/migrations/functions/backfill/global/users.ts.html +0 -232
  695. package/coverage/lcov-report/src/migrations/functions/backfill/global.ts.html +0 -724
  696. package/coverage/lcov-report/src/migrations/functions/backfill/index.html +0 -161
  697. package/coverage/lcov-report/src/migrations/functions/backfill/index.ts.html +0 -106
  698. package/coverage/lcov-report/src/migrations/functions/backfill/installation.ts.html +0 -235
  699. package/coverage/lcov-report/src/migrations/functions/index.html +0 -161
  700. package/coverage/lcov-report/src/migrations/functions/syncQuotas.ts.html +0 -130
  701. package/coverage/lcov-report/src/migrations/functions/tableSettings.ts.html +0 -520
  702. package/coverage/lcov-report/src/migrations/functions/usageQuotas/index.html +0 -161
  703. package/coverage/lcov-report/src/migrations/functions/usageQuotas/index.ts.html +0 -94
  704. package/coverage/lcov-report/src/migrations/functions/usageQuotas/syncApps.ts.html +0 -127
  705. package/coverage/lcov-report/src/migrations/functions/usageQuotas/syncPlugins.ts.html +0 -115
  706. package/coverage/lcov-report/src/migrations/functions/usageQuotas/syncRows.ts.html +0 -169
  707. package/coverage/lcov-report/src/migrations/functions/userEmailViewCasing.ts.html +0 -124
  708. package/coverage/lcov-report/src/migrations/index.ts.html +0 -430
  709. package/coverage/lcov-report/src/migrations/tests/helpers.ts.html +0 -205
  710. package/coverage/lcov-report/src/migrations/tests/index.html +0 -131
  711. package/coverage/lcov-report/src/migrations/tests/structures.ts.html +0 -283
  712. package/coverage/lcov-report/src/sdk/app/automations/index.html +0 -131
  713. package/coverage/lcov-report/src/sdk/app/automations/index.ts.html +0 -100
  714. package/coverage/lcov-report/src/sdk/app/automations/webhook.ts.html +0 -214
  715. package/coverage/lcov-report/src/sdk/app/backups/constants.ts.html +0 -91
  716. package/coverage/lcov-report/src/sdk/app/backups/exports.ts.html +0 -604
  717. package/coverage/lcov-report/src/sdk/app/backups/imports.ts.html +0 -682
  718. package/coverage/lcov-report/src/sdk/app/backups/index.html +0 -176
  719. package/coverage/lcov-report/src/sdk/app/backups/index.ts.html +0 -112
  720. package/coverage/lcov-report/src/sdk/app/backups/statistics.ts.html +0 -292
  721. package/coverage/lcov-report/src/sdk/app/tables/index.html +0 -116
  722. package/coverage/lcov-report/src/sdk/app/tables/index.ts.html +0 -265
  723. package/coverage/lcov-report/src/startup.ts.html +0 -499
  724. package/coverage/lcov-report/src/tests/utilities/TestConfiguration.ts.html +0 -1966
  725. package/coverage/lcov-report/src/tests/utilities/controllers.ts.html +0 -127
  726. package/coverage/lcov-report/src/tests/utilities/index.html +0 -161
  727. package/coverage/lcov-report/src/tests/utilities/structures.ts.html +0 -667
  728. package/coverage/lcov-report/src/threads/automation.ts.html +0 -1594
  729. package/coverage/lcov-report/src/threads/index.html +0 -161
  730. package/coverage/lcov-report/src/threads/index.ts.html +0 -418
  731. package/coverage/lcov-report/src/threads/query.ts.html +0 -961
  732. package/coverage/lcov-report/src/threads/utils.ts.html +0 -373
  733. package/coverage/lcov-report/src/utilities/fileSystem/clientLibrary.ts.html +0 -547
  734. package/coverage/lcov-report/src/utilities/fileSystem/index.ts.html +0 -1129
  735. package/coverage/lcov-report/src/utilities/fileSystem/processor.ts.html +0 -142
  736. package/coverage/lcov-report/src/utilities/redis.ts.html +0 -343
  737. package/coverage/lcov-report/src/utilities/routing/index.ts.html +0 -181
  738. package/coverage/lcov-report/src/utilities/rowProcessor/index.html +0 -146
  739. package/coverage/lcov-report/src/utilities/rowProcessor/map.ts.html +0 -373
  740. package/coverage/lcov-report/src/watch.ts.html +0 -196
  741. package/dist/db/defaultData/datasource_bb_default.js +0 -573
  742. package/dist/db/defaultData/employeeImport.js +0 -155
  743. package/dist/db/defaultData/expensesImport.js +0 -117
  744. package/dist/db/defaultData/inventoryImport.js +0 -109
  745. package/dist/db/defaultData/jobsImport.js +0 -152
  746. package/dist/db/linkedRows/LinkDocument.js +0 -32
  747. package/dist/events/BudibaseEmitter.js +0 -24
  748. package/dist/migrations/functions/tableSettings.js +0 -130
  749. package/dist/utilities/rowProcessor/map.js +0 -99
  750. package/jest.config.ts +0 -33
  751. package/src/api/controllers/integration.ts +0 -13
  752. package/src/api/controllers/migrations.ts +0 -14
  753. package/src/api/controllers/script.ts +0 -12
  754. package/src/api/routes/analytics.ts +0 -9
  755. package/src/api/routes/apikeys.ts +0 -12
  756. package/src/api/routes/automation.ts +0 -87
  757. package/src/api/routes/cloud.ts +0 -18
  758. package/src/api/routes/component.ts +0 -14
  759. package/src/api/routes/datasource.ts +0 -60
  760. package/src/api/routes/deploy.ts +0 -21
  761. package/src/api/routes/dev.ts +0 -38
  762. package/src/api/routes/integration.ts +0 -16
  763. package/src/api/routes/layout.ts +0 -16
  764. package/src/api/routes/migrations.ts +0 -14
  765. package/src/api/routes/permission.ts +0 -41
  766. package/src/api/routes/role.ts +0 -24
  767. package/src/api/routes/routing.ts +0 -14
  768. package/src/api/routes/screen.ts +0 -23
  769. package/src/api/routes/script.ts +0 -10
  770. package/src/api/routes/templates.ts +0 -16
  771. package/src/api/routes/user.ts +0 -51
  772. package/src/api/routes/view.ts +0 -34
  773. package/src/automations/bullboard.ts +0 -38
  774. package/src/automations/index.ts +0 -26
  775. package/src/automations/tests/utilities/index.ts +0 -60
  776. package/src/automations/triggerInfo/index.ts +0 -15
  777. package/src/constants/index.ts +0 -204
  778. package/src/constants/screens.ts +0 -48
  779. package/src/db/defaultData/datasource_bb_default.ts +0 -658
  780. package/src/db/defaultData/employeeImport.ts +0 -152
  781. package/src/db/defaultData/expensesImport.ts +0 -114
  782. package/src/db/defaultData/inventoryImport.ts +0 -106
  783. package/src/db/defaultData/jobsImport.ts +0 -158
  784. package/src/db/index.ts +0 -16
  785. package/src/db/linkedRows/LinkDocument.ts +0 -60
  786. package/src/events/index.ts +0 -5
  787. package/src/events/utils.ts +0 -78
  788. package/src/middleware/appInfo.ts +0 -20
  789. package/src/middleware/publicApi.ts +0 -21
  790. package/src/migrations/functions/tableSettings.ts +0 -145
  791. package/src/migrations/functions/tests/tableSettings.spec.ts +0 -144
  792. package/src/tests/utilities/controllers.ts +0 -14
  793. package/src/utilities/budibaseDir.ts +0 -3
  794. package/src/utilities/global.ts +0 -138
  795. package/src/utilities/routing/index.ts +0 -32
  796. package/src/utilities/rowProcessor/map.ts +0 -96
  797. package/src/utilities/security.ts +0 -65
@@ -3,15 +3,15 @@
3
3
  <html lang="en">
4
4
 
5
5
  <head>
6
- <title>Code coverage report for src/api/controllers/row/external.ts</title>
6
+ <title>Code coverage report for api/controllers/row/external.js</title>
7
7
  <meta charset="utf-8" />
8
- <link rel="stylesheet" href="../../../../prettify.css" />
9
- <link rel="stylesheet" href="../../../../base.css" />
10
- <link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.png" />
8
+ <link rel="stylesheet" href="../../../prettify.css" />
9
+ <link rel="stylesheet" href="../../../base.css" />
10
+ <link rel="shortcut icon" type="image/x-icon" href="../../../favicon.png" />
11
11
  <meta name="viewport" content="width=device-width, initial-scale=1" />
12
12
  <style type='text/css'>
13
13
  .coverage-summary .sorter {
14
- background-image: url(../../../../sort-arrow-sprite.png);
14
+ background-image: url(../../../sort-arrow-sprite.png);
15
15
  }
16
16
  </style>
17
17
  </head>
@@ -19,13 +19,13 @@
19
19
  <body>
20
20
  <div class='wrapper'>
21
21
  <div class='pad1'>
22
- <h1><a href="../../../../index.html">All files</a> / <a href="index.html">src/api/controllers/row</a> external.ts</h1>
22
+ <h1><a href="../../../index.html">All files</a> / <a href="index.html">api/controllers/row</a> external.js</h1>
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">14.61% </span>
26
+ <span class="strong">14.63% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>19/130</span>
28
+ <span class='fraction'>18/123</span>
29
29
  </div>
30
30
 
31
31
 
@@ -44,9 +44,9 @@
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">15.2% </span>
47
+ <span class="strong">15% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>19/125</span>
49
+ <span class='fraction'>18/120</span>
50
50
  </div>
51
51
 
52
52
 
@@ -316,48 +316,20 @@
316
316
  <a name='L251'></a><a href='#L251'>251</a>
317
317
  <a name='L252'></a><a href='#L252'>252</a>
318
318
  <a name='L253'></a><a href='#L253'>253</a>
319
- <a name='L254'></a><a href='#L254'>254</a>
320
- <a name='L255'></a><a href='#L255'>255</a>
321
- <a name='L256'></a><a href='#L256'>256</a>
322
- <a name='L257'></a><a href='#L257'>257</a>
323
- <a name='L258'></a><a href='#L258'>258</a>
324
- <a name='L259'></a><a href='#L259'>259</a>
325
- <a name='L260'></a><a href='#L260'>260</a>
326
- <a name='L261'></a><a href='#L261'>261</a>
327
- <a name='L262'></a><a href='#L262'>262</a>
328
- <a name='L263'></a><a href='#L263'>263</a>
329
- <a name='L264'></a><a href='#L264'>264</a>
330
- <a name='L265'></a><a href='#L265'>265</a>
331
- <a name='L266'></a><a href='#L266'>266</a>
332
- <a name='L267'></a><a href='#L267'>267</a>
333
- <a name='L268'></a><a href='#L268'>268</a>
334
- <a name='L269'></a><a href='#L269'>269</a>
335
- <a name='L270'></a><a href='#L270'>270</a>
336
- <a name='L271'></a><a href='#L271'>271</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">46x</span>
319
+ <a name='L254'></a><a href='#L254'>254</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
337
320
  <span class="cline-any cline-neutral">&nbsp;</span>
338
321
  <span class="cline-any cline-neutral">&nbsp;</span>
339
322
  <span class="cline-any cline-neutral">&nbsp;</span>
340
323
  <span class="cline-any cline-neutral">&nbsp;</span>
341
- <span class="cline-any cline-yes">46x</span>
324
+ <span class="cline-any cline-yes">45x</span>
342
325
  <span class="cline-any cline-neutral">&nbsp;</span>
343
326
  <span class="cline-any cline-neutral">&nbsp;</span>
344
327
  <span class="cline-any cline-neutral">&nbsp;</span>
345
- <span class="cline-any cline-yes">46x</span>
346
- <span class="cline-any cline-yes">46x</span>
347
- <span class="cline-any cline-yes">46x</span>
348
- <span class="cline-any cline-yes">46x</span>
349
- <span class="cline-any cline-yes">46x</span>
350
- <span class="cline-any cline-neutral">&nbsp;</span>
351
- <span class="cline-any cline-neutral">&nbsp;</span>
352
- <span class="cline-any cline-neutral">&nbsp;</span>
353
- <span class="cline-any cline-neutral">&nbsp;</span>
354
- <span class="cline-any cline-neutral">&nbsp;</span>
355
- <span class="cline-any cline-neutral">&nbsp;</span>
356
- <span class="cline-any cline-neutral">&nbsp;</span>
357
- <span class="cline-any cline-neutral">&nbsp;</span>
358
- <span class="cline-any cline-yes">46x</span>
359
- <span class="cline-any cline-neutral">&nbsp;</span>
360
- <span class="cline-any cline-neutral">&nbsp;</span>
328
+ <span class="cline-any cline-yes">45x</span>
329
+ <span class="cline-any cline-yes">45x</span>
330
+ <span class="cline-any cline-yes">45x</span>
331
+ <span class="cline-any cline-yes">45x</span>
332
+ <span class="cline-any cline-yes">45x</span>
361
333
  <span class="cline-any cline-neutral">&nbsp;</span>
362
334
  <span class="cline-any cline-neutral">&nbsp;</span>
363
335
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -366,10 +338,8 @@
366
338
  <span class="cline-any cline-no">&nbsp;</span>
367
339
  <span class="cline-any cline-no">&nbsp;</span>
368
340
  <span class="cline-any cline-neutral">&nbsp;</span>
369
- <span class="cline-any cline-neutral">&nbsp;</span>
370
341
  <span class="cline-any cline-no">&nbsp;</span>
371
342
  <span class="cline-any cline-no">&nbsp;</span>
372
- <span class="cline-any cline-neutral">&nbsp;</span>
373
343
  <span class="cline-any cline-no">&nbsp;</span>
374
344
  <span class="cline-any cline-neutral">&nbsp;</span>
375
345
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -378,9 +348,9 @@
378
348
  <span class="cline-any cline-no">&nbsp;</span>
379
349
  <span class="cline-any cline-neutral">&nbsp;</span>
380
350
  <span class="cline-any cline-neutral">&nbsp;</span>
351
+ <span class="cline-any cline-yes">45x</span>
381
352
  <span class="cline-any cline-neutral">&nbsp;</span>
382
- <span class="cline-any cline-neutral">&nbsp;</span>
383
- <span class="cline-any cline-yes">46x</span>
353
+ <span class="cline-any cline-yes">45x</span>
384
354
  <span class="cline-any cline-no">&nbsp;</span>
385
355
  <span class="cline-any cline-no">&nbsp;</span>
386
356
  <span class="cline-any cline-no">&nbsp;</span>
@@ -392,7 +362,7 @@
392
362
  <span class="cline-any cline-neutral">&nbsp;</span>
393
363
  <span class="cline-any cline-neutral">&nbsp;</span>
394
364
  <span class="cline-any cline-neutral">&nbsp;</span>
395
- <span class="cline-any cline-yes">46x</span>
365
+ <span class="cline-any cline-yes">45x</span>
396
366
  <span class="cline-any cline-no">&nbsp;</span>
397
367
  <span class="cline-any cline-no">&nbsp;</span>
398
368
  <span class="cline-any cline-no">&nbsp;</span>
@@ -400,7 +370,7 @@
400
370
  <span class="cline-any cline-neutral">&nbsp;</span>
401
371
  <span class="cline-any cline-neutral">&nbsp;</span>
402
372
  <span class="cline-any cline-neutral">&nbsp;</span>
403
- <span class="cline-any cline-yes">46x</span>
373
+ <span class="cline-any cline-yes">45x</span>
404
374
  <span class="cline-any cline-neutral">&nbsp;</span>
405
375
  <span class="cline-any cline-neutral">&nbsp;</span>
406
376
  <span class="cline-any cline-no">&nbsp;</span>
@@ -408,12 +378,12 @@
408
378
  <span class="cline-any cline-no">&nbsp;</span>
409
379
  <span class="cline-any cline-neutral">&nbsp;</span>
410
380
  <span class="cline-any cline-neutral">&nbsp;</span>
411
- <span class="cline-any cline-yes">46x</span>
381
+ <span class="cline-any cline-yes">45x</span>
412
382
  <span class="cline-any cline-no">&nbsp;</span>
413
383
  <span class="cline-any cline-no">&nbsp;</span>
414
384
  <span class="cline-any cline-neutral">&nbsp;</span>
415
385
  <span class="cline-any cline-neutral">&nbsp;</span>
416
- <span class="cline-any cline-yes">46x</span>
386
+ <span class="cline-any cline-yes">45x</span>
417
387
  <span class="cline-any cline-no">&nbsp;</span>
418
388
  <span class="cline-any cline-no">&nbsp;</span>
419
389
  <span class="cline-any cline-no">&nbsp;</span>
@@ -422,7 +392,7 @@
422
392
  <span class="cline-any cline-no">&nbsp;</span>
423
393
  <span class="cline-any cline-neutral">&nbsp;</span>
424
394
  <span class="cline-any cline-neutral">&nbsp;</span>
425
- <span class="cline-any cline-yes">46x</span>
395
+ <span class="cline-any cline-yes">45x</span>
426
396
  <span class="cline-any cline-no">&nbsp;</span>
427
397
  <span class="cline-any cline-no">&nbsp;</span>
428
398
  <span class="cline-any cline-no">&nbsp;</span>
@@ -431,7 +401,7 @@
431
401
  <span class="cline-any cline-no">&nbsp;</span>
432
402
  <span class="cline-any cline-neutral">&nbsp;</span>
433
403
  <span class="cline-any cline-neutral">&nbsp;</span>
434
- <span class="cline-any cline-yes">46x</span>
404
+ <span class="cline-any cline-yes">45x</span>
435
405
  <span class="cline-any cline-no">&nbsp;</span>
436
406
  <span class="cline-any cline-no">&nbsp;</span>
437
407
  <span class="cline-any cline-no">&nbsp;</span>
@@ -446,7 +416,7 @@
446
416
  <span class="cline-any cline-no">&nbsp;</span>
447
417
  <span class="cline-any cline-neutral">&nbsp;</span>
448
418
  <span class="cline-any cline-neutral">&nbsp;</span>
449
- <span class="cline-any cline-yes">46x</span>
419
+ <span class="cline-any cline-yes">45x</span>
450
420
  <span class="cline-any cline-no">&nbsp;</span>
451
421
  <span class="cline-any cline-no">&nbsp;</span>
452
422
  <span class="cline-any cline-no">&nbsp;</span>
@@ -507,12 +477,12 @@
507
477
  <span class="cline-any cline-neutral">&nbsp;</span>
508
478
  <span class="cline-any cline-neutral">&nbsp;</span>
509
479
  <span class="cline-any cline-neutral">&nbsp;</span>
510
- <span class="cline-any cline-yes">46x</span>
480
+ <span class="cline-any cline-yes">45x</span>
511
481
  <span class="cline-any cline-neutral">&nbsp;</span>
512
482
  <span class="cline-any cline-no">&nbsp;</span>
513
483
  <span class="cline-any cline-neutral">&nbsp;</span>
514
484
  <span class="cline-any cline-neutral">&nbsp;</span>
515
- <span class="cline-any cline-yes">46x</span>
485
+ <span class="cline-any cline-yes">45x</span>
516
486
  <span class="cline-any cline-no">&nbsp;</span>
517
487
  <span class="cline-any cline-no">&nbsp;</span>
518
488
  <span class="cline-any cline-no">&nbsp;</span>
@@ -524,13 +494,11 @@
524
494
  <span class="cline-any cline-no">&nbsp;</span>
525
495
  <span class="cline-any cline-neutral">&nbsp;</span>
526
496
  <span class="cline-any cline-neutral">&nbsp;</span>
527
- <span class="cline-any cline-neutral">&nbsp;</span>
528
497
  <span class="cline-any cline-no">&nbsp;</span>
529
498
  <span class="cline-any cline-neutral">&nbsp;</span>
530
499
  <span class="cline-any cline-neutral">&nbsp;</span>
531
500
  <span class="cline-any cline-neutral">&nbsp;</span>
532
501
  <span class="cline-any cline-neutral">&nbsp;</span>
533
- <span class="cline-any cline-neutral">&nbsp;</span>
534
502
  <span class="cline-any cline-no">&nbsp;</span>
535
503
  <span class="cline-any cline-no">&nbsp;</span>
536
504
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -547,7 +515,6 @@
547
515
  <span class="cline-any cline-neutral">&nbsp;</span>
548
516
  <span class="cline-any cline-neutral">&nbsp;</span>
549
517
  <span class="cline-any cline-no">&nbsp;</span>
550
- <span class="cline-any cline-neutral">&nbsp;</span>
551
518
  <span class="cline-any cline-no">&nbsp;</span>
552
519
  <span class="cline-any cline-no">&nbsp;</span>
553
520
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -556,16 +523,13 @@
556
523
  <span class="cline-any cline-no">&nbsp;</span>
557
524
  <span class="cline-any cline-neutral">&nbsp;</span>
558
525
  <span class="cline-any cline-neutral">&nbsp;</span>
559
- <span class="cline-any cline-yes">46x</span>
560
- <span class="cline-any cline-no">&nbsp;</span>
526
+ <span class="cline-any cline-yes">45x</span>
561
527
  <span class="cline-any cline-no">&nbsp;</span>
562
528
  <span class="cline-any cline-no">&nbsp;</span>
563
529
  <span class="cline-any cline-no">&nbsp;</span>
564
530
  <span class="cline-any cline-no">&nbsp;</span>
565
531
  <span class="cline-any cline-no">&nbsp;</span>
566
532
  <span class="cline-any cline-no">&nbsp;</span>
567
- <span class="cline-any cline-neutral">&nbsp;</span>
568
- <span class="cline-any cline-no">&nbsp;</span>
569
533
  <span class="cline-any cline-no">&nbsp;</span>
570
534
  <span class="cline-any cline-neutral">&nbsp;</span>
571
535
  <span class="cline-any cline-no">&nbsp;</span>
@@ -588,11 +552,13 @@
588
552
  <span class="cline-any cline-no">&nbsp;</span>
589
553
  <span class="cline-any cline-no">&nbsp;</span>
590
554
  <span class="cline-any cline-no">&nbsp;</span>
591
- <span class="cline-any cline-no">&nbsp;</span>
592
555
  <span class="cline-any cline-neutral">&nbsp;</span>
593
556
  <span class="cline-any cline-no">&nbsp;</span>
594
557
  <span class="cline-any cline-no">&nbsp;</span>
595
- <span class="cline-any cline-no">&nbsp;</span>
558
+ <span class="cline-any cline-neutral">&nbsp;</span>
559
+ <span class="cline-any cline-neutral">&nbsp;</span>
560
+ <span class="cline-any cline-neutral">&nbsp;</span>
561
+ <span class="cline-any cline-neutral">&nbsp;</span>
596
562
  <span class="cline-any cline-neutral">&nbsp;</span>
597
563
  <span class="cline-any cline-neutral">&nbsp;</span>
598
564
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -603,124 +569,111 @@
603
569
  <span class="cline-any cline-neutral">&nbsp;</span>
604
570
  <span class="cline-any cline-no">&nbsp;</span>
605
571
  <span class="cline-any cline-neutral">&nbsp;</span>
606
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import {
572
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">const {
573
+ DataSourceOperation,
607
574
  SortDirection,
608
575
  FieldTypes,
609
576
  NoEmptyFilterStrings,
610
- } from "../../../constants"
611
- import {
577
+ } = require("../../../constants")
578
+ const {
612
579
  breakExternalTableId,
613
580
  breakRowIdField,
614
- } from "../../../integrations/utils"
615
- import { ExternalRequest, RunConfig } from "./ExternalRequest"
616
- import { context } from "@budibase/backend-core"
617
- import * as exporters from "../view/exporters"
618
- import { apiFileReturn } from "../../../utilities/fileSystem"
619
- import {
620
- Operation,
621
- BBContext,
622
- Row,
623
- PaginationJson,
624
- Table,
625
- Datasource,
626
- } from "@budibase/types"
581
+ } = require("../../../integrations/utils")
582
+ const ExternalRequest = require("./ExternalRequest")
583
+ const { getAppDB } = require("@budibase/backend-core/context")
584
+ const exporters = require("../view/exporters")
585
+ const { apiFileReturn } = require("../../../utilities/fileSystem")
627
586
  &nbsp;
628
- export async function <span class="fstat-no" title="function not covered" >handleRequest(</span>
629
- operation: Operation,
630
- tableId: string,
631
- opts?: RunConfig
632
- ) {
587
+ async function <span class="fstat-no" title="function not covered" >handleRequest(</span>operation, tableId, opts = <span class="branch-0 cbranch-no" title="branch not covered" >{})</span> {
633
588
  // make sure the filters are cleaned up, no empty strings for equals, fuzzy or string
634
- <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>
589
+ <span class="cstat-no" title="statement not covered" > if (opts &amp;&amp; opts.filters) {</span>
635
590
  <span class="cstat-no" title="statement not covered" > for (let filterField of NoEmptyFilterStrings) {</span>
636
- <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>
591
+ <span class="cstat-no" title="statement not covered" > if (!opts.filters[filterField]) {</span>
637
592
  <span class="cstat-no" title="statement not covered" > continue</span>
638
593
  }
639
- // @ts-ignore
640
594
  <span class="cstat-no" title="statement not covered" > for (let [key, value] of Object.entries(opts.filters[filterField])) {</span>
641
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (!value || value === "") {</span>
642
- // @ts-ignore
595
+ <span class="cstat-no" title="statement not covered" > if (!value || value === "") {</span>
643
596
  <span class="cstat-no" title="statement not covered" > delete opts.filters[filterField][key]</span>
644
597
  }
645
598
  }
646
599
  }
647
600
  }
648
- <span class="cstat-no" title="statement not covered" > return new ExternalRequest(operation, tableId, opts?.datasource).run(</span>
649
- opts || {}
650
- )
601
+ <span class="cstat-no" title="statement not covered" > return new ExternalRequest(operation, tableId, opts.datasource).run(opts)</span>
651
602
  }
652
603
  &nbsp;
653
- export async function <span class="fstat-no" title="function not covered" >patch(</span>ctx: BBContext) {
604
+ exports.handleRequest = handleRequest
605
+ &nbsp;
606
+ exports.patch = <span class="fstat-no" title="function not covered" >as</span>ync ctx =&gt; {
654
607
  const inputs = <span class="cstat-no" title="statement not covered" >ctx.request.body</span>
655
608
  const tableId = <span class="cstat-no" title="statement not covered" >ctx.params.tableId</span>
656
609
  const id = <span class="cstat-no" title="statement not covered" >inputs._id</span>
657
610
  // don't save the ID to db
658
611
  <span class="cstat-no" title="statement not covered" > delete inputs._id</span>
659
- <span class="cstat-no" title="statement not covered" > return handleRequest(Operation.UPDATE, tableId, {</span>
612
+ <span class="cstat-no" title="statement not covered" > return handleRequest(DataSourceOperation.UPDATE, tableId, {</span>
660
613
  id: breakRowIdField(id),
661
614
  row: inputs,
662
615
  })
663
616
  }
664
617
  &nbsp;
665
- export async function <span class="fstat-no" title="function not covered" >save(</span>ctx: BBContext) {
618
+ exports.save = <span class="fstat-no" title="function not covered" >as</span>ync ctx =&gt; {
666
619
  const inputs = <span class="cstat-no" title="statement not covered" >ctx.request.body</span>
667
620
  const tableId = <span class="cstat-no" title="statement not covered" >ctx.params.tableId</span>
668
- <span class="cstat-no" title="statement not covered" > return handleRequest(Operation.CREATE, tableId, {</span>
621
+ <span class="cstat-no" title="statement not covered" > return handleRequest(DataSourceOperation.CREATE, tableId, {</span>
669
622
  row: inputs,
670
623
  })
671
624
  }
672
625
  &nbsp;
673
- export async function <span class="fstat-no" title="function not covered" >fetchView(</span>ctx: BBContext) {
626
+ exports.fetchView = <span class="fstat-no" title="function not covered" >as</span>ync ctx =&gt; {
674
627
  // there are no views in external datasources, shouldn't ever be called
675
628
  // for now just fetch
676
629
  const split = <span class="cstat-no" title="statement not covered" >ctx.params.viewName.split("all_")</span>
677
630
  <span class="cstat-no" title="statement not covered" > ctx.params.tableId = split[1] ? split[1] : split[0]</span>
678
- <span class="cstat-no" title="statement not covered" > return fetch(ctx)</span>
631
+ <span class="cstat-no" title="statement not covered" > return exports.fetch(ctx)</span>
679
632
  }
680
633
  &nbsp;
681
- export async function <span class="fstat-no" title="function not covered" >fetch(</span>ctx: BBContext) {
634
+ exports.fetch = <span class="fstat-no" title="function not covered" >as</span>ync ctx =&gt; {
682
635
  const tableId = <span class="cstat-no" title="statement not covered" >ctx.params.tableId</span>
683
- <span class="cstat-no" title="statement not covered" > return handleRequest(Operation.READ, tableId)</span>
636
+ <span class="cstat-no" title="statement not covered" > return handleRequest(DataSourceOperation.READ, tableId)</span>
684
637
  }
685
638
  &nbsp;
686
- export async function <span class="fstat-no" title="function not covered" >find(</span>ctx: BBContext) {
639
+ exports.find = <span class="fstat-no" title="function not covered" >as</span>ync ctx =&gt; {
687
640
  const id = <span class="cstat-no" title="statement not covered" >ctx.params.rowId</span>
688
641
  const tableId = <span class="cstat-no" title="statement not covered" >ctx.params.tableId</span>
689
- const response = (<span class="cstat-no" title="statement not covered" >await handleRequest(Operation.READ, tableId, {</span>
642
+ const response = <span class="cstat-no" title="statement not covered" >await handleRequest(DataSourceOperation.READ, tableId, {</span>
690
643
  id: breakRowIdField(id),
691
- })) as Row[]
644
+ })
692
645
  <span class="cstat-no" title="statement not covered" > return response ? response[0] : response</span>
693
646
  }
694
647
  &nbsp;
695
- export async function <span class="fstat-no" title="function not covered" >destroy(</span>ctx: BBContext) {
648
+ exports.destroy = <span class="fstat-no" title="function not covered" >as</span>ync ctx =&gt; {
696
649
  const tableId = <span class="cstat-no" title="statement not covered" >ctx.params.tableId</span>
697
650
  const id = <span class="cstat-no" title="statement not covered" >ctx.request.body._id</span>
698
- const { row } = (<span class="cstat-no" title="statement not covered" >await handleRequest(Operation.DELETE, tableId, {</span>
651
+ const { row } = <span class="cstat-no" title="statement not covered" >await handleRequest(DataSourceOperation.DELETE, tableId, {</span>
699
652
  id: breakRowIdField(id),
700
- })) as { row: Row }
653
+ })
701
654
  <span class="cstat-no" title="statement not covered" > return { response: { ok: true }, row }</span>
702
655
  }
703
656
  &nbsp;
704
- export async function <span class="fstat-no" title="function not covered" >bulkDestroy(</span>ctx: BBContext) {
657
+ exports.bulkDestroy = <span class="fstat-no" title="function not covered" >as</span>ync ctx =&gt; {
705
658
  const { rows } = <span class="cstat-no" title="statement not covered" >ctx.request.body</span>
706
659
  const tableId = <span class="cstat-no" title="statement not covered" >ctx.params.tableId</span>
707
660
  let promises = <span class="cstat-no" title="statement not covered" >[]</span>
708
661
  <span class="cstat-no" title="statement not covered" > for (let row of rows) {</span>
709
662
  <span class="cstat-no" title="statement not covered" > promises.push(</span>
710
- handleRequest(Operation.DELETE, tableId, {
663
+ handleRequest(DataSourceOperation.DELETE, tableId, {
711
664
  id: breakRowIdField(row._id),
712
665
  })
713
666
  )
714
667
  }
715
- const responses = (<span class="cstat-no" title="statement not covered" >await Promise.all(promises))</span> as { row: Row }[]
716
- <span class="cstat-no" title="statement not covered" > return { response: { ok: true }, rows: responses.map(<span class="fstat-no" title="function not covered" >resp </span>=&gt; <span class="cstat-no" title="statement not covered" >resp.row)</span> }</span>
668
+ const responses = <span class="cstat-no" title="statement not covered" >await Promise.all(promises)</span>
669
+ <span class="cstat-no" title="statement not covered" > return { response: { ok: true }, rows: responses.map(<span class="fstat-no" title="function not covered" >re</span>sp =&gt; <span class="cstat-no" title="statement not covered" >resp.row)</span> }</span>
717
670
  }
718
671
  &nbsp;
719
- export async function <span class="fstat-no" title="function not covered" >search(</span>ctx: BBContext) {
672
+ exports.search = <span class="fstat-no" title="function not covered" >as</span>ync ctx =&gt; {
720
673
  const tableId = <span class="cstat-no" title="statement not covered" >ctx.params.tableId</span>
721
- const { paginate, query<span class="cstat-no" title="statement not covered" >, ...p</span>arams<span class="cstat-no" title="statement not covered" > } = <span class="cstat-no" title="statement not covered" >c</span>tx.request.body</span>
674
+ const { paginate, query, ...params } = <span class="cstat-no" title="statement not covered" >ctx.request.body</span>
722
675
  let { bookmark, limit } = <span class="cstat-no" title="statement not covered" >params</span>
723
- <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>
676
+ <span class="cstat-no" title="statement not covered" > if (!bookmark &amp;&amp; paginate) {</span>
724
677
  <span class="cstat-no" title="statement not covered" > bookmark = 1</span>
725
678
  }
726
679
  let paginateObj = <span class="cstat-no" title="statement not covered" >{}</span>
@@ -731,13 +684,13 @@ export async function <span class="fstat-no" title="function not covered" >searc
731
684
  limit: limit,
732
685
  page: bookmark,
733
686
  }
734
- } 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>
687
+ } else <span class="cstat-no" title="statement not covered" >if (params &amp;&amp; limit) {</span>
735
688
  <span class="cstat-no" title="statement not covered" > paginateObj = {</span>
736
689
  limit: limit,
737
690
  }
738
691
  }
739
692
  let sort
740
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (params.sort) {</span>
693
+ <span class="cstat-no" title="statement not covered" > if (params.sort) {</span>
741
694
  const direction =
742
695
  <span class="cstat-no" title="statement not covered" > params.sortOrder === "descending"</span>
743
696
  ? SortDirection.DESCENDING
@@ -747,26 +700,26 @@ export async function <span class="fstat-no" title="function not covered" >searc
747
700
  }
748
701
  }
749
702
  <span class="cstat-no" title="statement not covered" > try {</span>
750
- const rows = (<span class="cstat-no" title="statement not covered" >await handleRequest(Operation.READ, tableId, {</span>
703
+ const rows = <span class="cstat-no" title="statement not covered" >await handleRequest(DataSourceOperation.READ, tableId, {</span>
751
704
  filters: query,
752
705
  sort,
753
- paginate: paginateObj as PaginationJson,
754
- })) as Row[]
706
+ paginate: paginateObj,
707
+ })
755
708
  let hasNextPage = <span class="cstat-no" title="statement not covered" >false</span>
756
- <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>
757
- const nextRows = (<span class="cstat-no" title="statement not covered" >await handleRequest(Operation.READ, tableId, {</span>
709
+ <span class="cstat-no" title="statement not covered" > if (paginate &amp;&amp; rows.length === limit) {</span>
710
+ const nextRows = <span class="cstat-no" title="statement not covered" >await handleRequest(DataSourceOperation.READ, tableId, {</span>
758
711
  filters: query,
759
712
  sort,
760
713
  paginate: {
761
714
  limit: 1,
762
715
  page: bookmark * limit + 1,
763
716
  },
764
- })) as Row[]
717
+ })
765
718
  <span class="cstat-no" title="statement not covered" > hasNextPage = nextRows.length &gt; 0</span>
766
719
  }
767
720
  // need wrapper object for bookmarks etc when paginating
768
721
  <span class="cstat-no" title="statement not covered" > return { rows, hasNextPage, bookmark: bookmark + 1 }</span>
769
- } catch (err: any) {
722
+ } catch (err) {
770
723
  <span class="cstat-no" title="statement not covered" > if (err.message &amp;&amp; err.message.includes("does not exist")) {</span>
771
724
  <span class="cstat-no" title="statement not covered" > throw new Error(</span>
772
725
  `Table updated externally, please re-fetch - ${err.message}`
@@ -777,32 +730,30 @@ export async function <span class="fstat-no" title="function not covered" >searc
777
730
  }
778
731
  }
779
732
  &nbsp;
780
- export async function <span class="fstat-no" title="function not covered" >validate(</span>ctx: BBContext) {
733
+ exports.validate = <span class="fstat-no" title="function not covered" >as</span>ync () =&gt; {
781
734
  // can't validate external right now - maybe in future
782
735
  <span class="cstat-no" title="statement not covered" > return { valid: true }</span>
783
736
  }
784
737
  &nbsp;
785
- export async function <span class="fstat-no" title="function not covered" >exportRows(</span>ctx: BBContext) {
738
+ exports.exportRows = <span class="fstat-no" title="function not covered" >as</span>ync ctx =&gt; {
786
739
  const { datasourceId } = <span class="cstat-no" title="statement not covered" >breakExternalTableId(ctx.params.tableId)</span>
787
- const db = <span class="cstat-no" title="statement not covered" >context.getAppDB()</span>
740
+ const db = <span class="cstat-no" title="statement not covered" >getAppDB()</span>
788
741
  const format = <span class="cstat-no" title="statement not covered" >ctx.query.format</span>
789
742
  const { columns } = <span class="cstat-no" title="statement not covered" >ctx.request.body</span>
790
743
  const datasource = <span class="cstat-no" title="statement not covered" >await db.get(datasourceId)</span>
791
- <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>
744
+ <span class="cstat-no" title="statement not covered" > if (!datasource || !datasource.entities) {</span>
792
745
  <span class="cstat-no" title="statement not covered" > ctx.throw(400, "Datasource has not been configured for plus API.")</span>
793
746
  }
794
747
  <span class="cstat-no" title="statement not covered" > ctx.request.body = {</span>
795
748
  query: {
796
749
  oneOf: {
797
- _id: ctx.request.body.rows.map(
798
- <span class="fstat-no" title="function not covered" > (r</span>ow: string) =&gt; <span class="cstat-no" title="statement not covered" >JSON.parse(decodeURI(row))[0]</span>
799
- ),
750
+ _id: ctx.request.body.rows.map(<span class="fstat-no" title="function not covered" >ro</span>w =&gt; <span class="cstat-no" title="statement not covered" >JSON.parse(decodeURI(row))[0])</span>,
800
751
  },
801
752
  },
802
753
  }
803
754
  &nbsp;
804
- let result = <span class="cstat-no" title="statement not covered" >await search(ctx)</span>
805
- let rows: Row[] = <span class="cstat-no" title="statement not covered" >[]</span>
755
+ let result = <span class="cstat-no" title="statement not covered" >await exports.search(ctx)</span>
756
+ let rows = <span class="cstat-no" title="statement not covered" >[]</span>
806
757
  &nbsp;
807
758
  // Filter data to only specified columns if required
808
759
  <span class="cstat-no" title="statement not covered" > if (columns &amp;&amp; columns.length) {</span>
@@ -817,7 +768,6 @@ export async function <span class="fstat-no" title="function not covered" >expor
817
768
  }
818
769
  &nbsp;
819
770
  let headers = <span class="cstat-no" title="statement not covered" >Object.keys(rows[0])</span>
820
- // @ts-ignore
821
771
  const exporter = <span class="cstat-no" title="statement not covered" >exporters[format]</span>
822
772
  const filename = <span class="cstat-no" title="statement not covered" >`export.${format}`</span>
823
773
  &nbsp;
@@ -826,29 +776,26 @@ export async function <span class="fstat-no" title="function not covered" >expor
826
776
  <span class="cstat-no" title="statement not covered" > return apiFileReturn(exporter(headers, rows))</span>
827
777
  }
828
778
  &nbsp;
829
- export async function <span class="fstat-no" title="function not covered" >fetchEnrichedRow(</span>ctx: BBContext) {
779
+ exports.fetchEnrichedRow = <span class="fstat-no" title="function not covered" >as</span>ync ctx =&gt; {
830
780
  const id = <span class="cstat-no" title="statement not covered" >ctx.params.rowId</span>
831
781
  const tableId = <span class="cstat-no" title="statement not covered" >ctx.params.tableId</span>
832
782
  const { datasourceId, tableName } = <span class="cstat-no" title="statement not covered" >breakExternalTableId(tableId)</span>
833
- const db = <span class="cstat-no" title="statement not covered" >context.getAppDB()</span>
834
- const datasource: Datasource = <span class="cstat-no" title="statement not covered" >await db.get(datasourceId)</span>
835
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (!tableName) {</span>
836
- <span class="cstat-no" title="statement not covered" > ctx.throw(400, "Unable to find table.")</span>
837
- }
838
- <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>
783
+ const db = <span class="cstat-no" title="statement not covered" >getAppDB()</span>
784
+ const datasource = <span class="cstat-no" title="statement not covered" >await db.get(datasourceId)</span>
785
+ <span class="cstat-no" title="statement not covered" > if (!datasource || !datasource.entities) {</span>
839
786
  <span class="cstat-no" title="statement not covered" > ctx.throw(400, "Datasource has not been configured for plus API.")</span>
840
787
  }
841
788
  const tables = <span class="cstat-no" title="statement not covered" >datasource.entities</span>
842
- const response = (<span class="cstat-no" title="statement not covered" >await handleRequest(Operation.READ, tableId, {</span>
789
+ const response = <span class="cstat-no" title="statement not covered" >await handleRequest(DataSourceOperation.READ, tableId, {</span>
843
790
  id,
844
791
  datasource,
845
- })) as Row[]
846
- const table: Table = <span class="cstat-no" title="statement not covered" >tables[tableName]</span>
792
+ })
793
+ const table = <span class="cstat-no" title="statement not covered" >tables[tableName]</span>
847
794
  const row = <span class="cstat-no" title="statement not covered" >response[0]</span>
848
795
  // this seems like a lot of work, but basically we need to dig deeper for the enrich
849
796
  // for a single row, there is probably a better way to do this with some smart multi-layer joins
850
797
  <span class="cstat-no" title="statement not covered" > for (let [fieldName, field] of Object.entries(table.schema)) {</span>
851
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (</span>
798
+ <span class="cstat-no" title="statement not covered" > if (</span>
852
799
  field.type !== FieldTypes.LINK ||
853
800
  !row[fieldName] ||
854
801
  row[fieldName].length === 0
@@ -857,19 +804,21 @@ export async function <span class="fstat-no" title="function not covered" >fetch
857
804
  }
858
805
  const links = <span class="cstat-no" title="statement not covered" >row[fieldName]</span>
859
806
  const linkedTableId = <span class="cstat-no" title="statement not covered" >field.tableId</span>
860
- const linkedTableName = <span class="cstat-no" title="statement not covered" >breakExternalTableId(linkedTableId).tableName!</span>
861
- const linkedTable = <span class="cstat-no" title="statement not covered" >tables[linkedTableName]</span>
807
+ const linkedTable = <span class="cstat-no" title="statement not covered" >tables[breakExternalTableId(linkedTableId).tableName]</span>
862
808
  // don't support composite keys right now
863
- 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>
864
- const primaryLink = <span class="cstat-no" title="statement not covered" >linkedTable.primary?.[0] as string</span>
865
- <span class="cstat-no" title="statement not covered" > row[fieldName] = await handleRequest(Operation.READ, linkedTableId!, {</span>
866
- tables,
867
- filters: {
868
- oneOf: {
869
- [primaryLink]: linkedIds,
809
+ const linkedIds = <span class="cstat-no" title="statement not covered" >links.map(<span class="fstat-no" title="function not covered" >li</span>nk =&gt; <span class="cstat-no" title="statement not covered" >breakRowIdField(link._id)[0])</span></span>
810
+ <span class="cstat-no" title="statement not covered" > row[fieldName] = await handleRequest(</span>
811
+ DataSourceOperation.READ,
812
+ linkedTableId,
813
+ {
814
+ tables,
815
+ filters: {
816
+ oneOf: {
817
+ [linkedTable.primary]: linkedIds,
818
+ },
870
819
  },
871
- },
872
- })
820
+ }
821
+ )
873
822
  }
874
823
  <span class="cstat-no" title="statement not covered" > return row</span>
875
824
  }
@@ -880,16 +829,16 @@ export async function <span class="fstat-no" title="function not covered" >fetch
880
829
  <div class='footer quiet pad2 space-top1 center small'>
881
830
  Code coverage generated by
882
831
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
883
- at Wed Nov 30 2022 16:20:18 GMT+0000 (Coordinated Universal Time)
832
+ at Wed Nov 30 2022 16:24:21 GMT+0000 (Coordinated Universal Time)
884
833
  </div>
885
- <script src="../../../../prettify.js"></script>
834
+ <script src="../../../prettify.js"></script>
886
835
  <script>
887
836
  window.onload = function () {
888
837
  prettyPrint();
889
838
  };
890
839
  </script>
891
- <script src="../../../../sorter.js"></script>
892
- <script src="../../../../block-navigation.js"></script>
840
+ <script src="../../../sorter.js"></script>
841
+ <script src="../../../block-navigation.js"></script>
893
842
  </body>
894
843
  </html>
895
844