@budibase/server 2.1.43-alpha.1 → 2.1.43

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 (798) 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.fb99ddaf.js +1021 -0
  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.0c44dac3.css +0 -6
  552. package/builder/assets/index.8935424b.js +0 -1021
  553. package/coverage/lcov-report/src/api/controllers/analytics.ts.html +0 -190
  554. package/coverage/lcov-report/src/api/controllers/application.ts.html +0 -2038
  555. package/coverage/lcov-report/src/api/controllers/auth.ts.html +0 -301
  556. package/coverage/lcov-report/src/api/controllers/backup.ts.html +0 -148
  557. package/coverage/lcov-report/src/api/controllers/component.ts.html +0 -259
  558. package/coverage/lcov-report/src/api/controllers/deploy/Deployment.ts.html +0 -259
  559. package/coverage/lcov-report/src/api/controllers/deploy/index.html +0 -131
  560. package/coverage/lcov-report/src/api/controllers/deploy/index.ts.html +0 -730
  561. package/coverage/lcov-report/src/api/controllers/index.html +0 -431
  562. package/coverage/lcov-report/src/api/controllers/integration.ts.html +0 -124
  563. package/coverage/lcov-report/src/api/controllers/plugin/file.ts.html +0 -130
  564. package/coverage/lcov-report/src/api/controllers/plugin/github.ts.html +0 -310
  565. package/coverage/lcov-report/src/api/controllers/plugin/index.html +0 -206
  566. package/coverage/lcov-report/src/api/controllers/plugin/index.ts.html +0 -484
  567. package/coverage/lcov-report/src/api/controllers/plugin/npm.ts.html +0 -253
  568. package/coverage/lcov-report/src/api/controllers/plugin/uploaders.ts.html +0 -97
  569. package/coverage/lcov-report/src/api/controllers/plugin/url.ts.html +0 -121
  570. package/coverage/lcov-report/src/api/controllers/plugin/utils.ts.html +0 -136
  571. package/coverage/lcov-report/src/api/controllers/public/applications.ts.html +0 -334
  572. package/coverage/lcov-report/src/api/controllers/public/index.html +0 -191
  573. package/coverage/lcov-report/src/api/controllers/public/mapping/applications.ts.html +0 -181
  574. package/coverage/lcov-report/src/api/controllers/public/mapping/index.html +0 -191
  575. package/coverage/lcov-report/src/api/controllers/public/mapping/index.ts.html +0 -124
  576. package/coverage/lcov-report/src/api/controllers/public/mapping/queries.ts.html +0 -202
  577. package/coverage/lcov-report/src/api/controllers/public/mapping/rows.ts.html +0 -178
  578. package/coverage/lcov-report/src/api/controllers/public/mapping/users.ts.html +0 -181
  579. package/coverage/lcov-report/src/api/controllers/public/queries.ts.html +0 -145
  580. package/coverage/lcov-report/src/api/controllers/public/rows.ts.html +0 -328
  581. package/coverage/lcov-report/src/api/controllers/public/tables.ts.html +0 -253
  582. package/coverage/lcov-report/src/api/controllers/public/users.ts.html +0 -268
  583. package/coverage/lcov-report/src/api/controllers/public/utils.ts.html +0 -220
  584. package/coverage/lcov-report/src/api/controllers/query/import/index.html +0 -116
  585. package/coverage/lcov-report/src/api/controllers/query/import/index.ts.html +0 -373
  586. package/coverage/lcov-report/src/api/controllers/query/import/sources/base/index.html +0 -131
  587. package/coverage/lcov-report/src/api/controllers/query/import/sources/base/index.ts.html +0 -379
  588. package/coverage/lcov-report/src/api/controllers/query/import/sources/base/openapi.ts.html +0 -157
  589. package/coverage/lcov-report/src/api/controllers/query/import/sources/curl.ts.html +0 -403
  590. package/coverage/lcov-report/src/api/controllers/query/import/sources/index.html +0 -146
  591. package/coverage/lcov-report/src/api/controllers/query/import/sources/openapi2.ts.html +0 -586
  592. package/coverage/lcov-report/src/api/controllers/query/import/sources/openapi3.ts.html +0 -712
  593. package/coverage/lcov-report/src/api/controllers/query/index.html +0 -131
  594. package/coverage/lcov-report/src/api/controllers/query/index.ts.html +0 -976
  595. package/coverage/lcov-report/src/api/controllers/row/ExternalRequest.ts.html +0 -2260
  596. package/coverage/lcov-report/src/api/controllers/row/index.ts.html +0 -541
  597. package/coverage/lcov-report/src/api/controllers/screen.ts.html +0 -463
  598. package/coverage/lcov-report/src/api/controllers/static/index.html +0 -116
  599. package/coverage/lcov-report/src/api/controllers/static/index.ts.html +0 -694
  600. package/coverage/lcov-report/src/api/controllers/table/index.html +0 -176
  601. package/coverage/lcov-report/src/api/controllers/table/internal.ts.html +0 -661
  602. package/coverage/lcov-report/src/api/controllers/table/utils.ts.html +0 -1255
  603. package/coverage/lcov-report/src/api/controllers/webhook.ts.html +0 -379
  604. package/coverage/lcov-report/src/api/routes/analytics.ts.html +0 -112
  605. package/coverage/lcov-report/src/api/routes/apikeys.ts.html +0 -121
  606. package/coverage/lcov-report/src/api/routes/application.ts.html +0 -223
  607. package/coverage/lcov-report/src/api/routes/auth.ts.html +0 -109
  608. package/coverage/lcov-report/src/api/routes/datasource.ts.html +0 -265
  609. package/coverage/lcov-report/src/api/routes/deploy.ts.html +0 -148
  610. package/coverage/lcov-report/src/api/routes/index.ts.html +0 -289
  611. package/coverage/lcov-report/src/api/routes/migrations.ts.html +0 -127
  612. package/coverage/lcov-report/src/api/routes/plugin.ts.html +0 -151
  613. package/coverage/lcov-report/src/api/routes/public/applications.ts.html +0 -541
  614. package/coverage/lcov-report/src/api/routes/public/index.html +0 -191
  615. package/coverage/lcov-report/src/api/routes/public/index.ts.html +0 -493
  616. package/coverage/lcov-report/src/api/routes/public/middleware/index.html +0 -116
  617. package/coverage/lcov-report/src/api/routes/public/middleware/mapper.ts.html +0 -328
  618. package/coverage/lcov-report/src/api/routes/public/queries.ts.html +0 -313
  619. package/coverage/lcov-report/src/api/routes/public/rows.ts.html +0 -598
  620. package/coverage/lcov-report/src/api/routes/public/tables.ts.html +0 -586
  621. package/coverage/lcov-report/src/api/routes/public/users.ts.html +0 -511
  622. package/coverage/lcov-report/src/api/routes/public/utils/Endpoint.ts.html +0 -238
  623. package/coverage/lcov-report/src/api/routes/public/utils/index.html +0 -116
  624. package/coverage/lcov-report/src/api/routes/role.ts.html +0 -157
  625. package/coverage/lcov-report/src/api/routes/row.ts.html +0 -883
  626. package/coverage/lcov-report/src/api/routes/screen.ts.html +0 -154
  627. package/coverage/lcov-report/src/api/routes/static.ts.html +0 -280
  628. package/coverage/lcov-report/src/api/routes/tests/utilities/TestFunctions.ts.html +0 -550
  629. package/coverage/lcov-report/src/api/routes/tests/utilities/index.html +0 -131
  630. package/coverage/lcov-report/src/api/routes/tests/utilities/index.ts.html +0 -367
  631. package/coverage/lcov-report/src/api/routes/webhook.ts.html +0 -166
  632. package/coverage/lcov-report/src/app.ts.html +0 -406
  633. package/coverage/lcov-report/src/automations/logging/index.html +0 -116
  634. package/coverage/lcov-report/src/automations/logging/index.ts.html +0 -199
  635. package/coverage/lcov-report/src/automations/steps/createRow.ts.html +0 -382
  636. package/coverage/lcov-report/src/automations/steps/deleteRow.ts.html +0 -349
  637. package/coverage/lcov-report/src/automations/steps/index.html +0 -371
  638. package/coverage/lcov-report/src/automations/tests/utilities/index.html +0 -116
  639. package/coverage/lcov-report/src/automations/tests/utilities/index.ts.html +0 -265
  640. package/coverage/lcov-report/src/automations/triggerInfo/app.ts.html +0 -196
  641. package/coverage/lcov-report/src/automations/triggerInfo/index.ts.html +0 -130
  642. package/coverage/lcov-report/src/automations/utils.ts.html +0 -886
  643. package/coverage/lcov-report/src/constants/index.ts.html +0 -697
  644. package/coverage/lcov-report/src/db/defaultData/datasource_bb_default.ts.html +0 -2059
  645. package/coverage/lcov-report/src/db/defaultData/employeeImport.ts.html +0 -541
  646. package/coverage/lcov-report/src/db/defaultData/expensesImport.ts.html +0 -427
  647. package/coverage/lcov-report/src/db/defaultData/index.html +0 -176
  648. package/coverage/lcov-report/src/db/defaultData/inventoryImport.ts.html +0 -403
  649. package/coverage/lcov-report/src/db/defaultData/jobsImport.ts.html +0 -559
  650. package/coverage/lcov-report/src/db/dynamoClient.ts.html +0 -526
  651. package/coverage/lcov-report/src/db/linkedRows/LinkDocument.ts.html +0 -265
  652. package/coverage/lcov-report/src/db/linkedRows/index.html +0 -161
  653. package/coverage/lcov-report/src/environment.ts.html +0 -457
  654. package/coverage/lcov-report/src/events/utils.ts.html +0 -319
  655. package/coverage/lcov-report/src/index.html +0 -191
  656. package/coverage/lcov-report/src/index.ts.html +0 -133
  657. package/coverage/lcov-report/src/integrations/arangodb.ts.html +0 -415
  658. package/coverage/lcov-report/src/integrations/base/index.html +0 -161
  659. package/coverage/lcov-report/src/integrations/base/query.ts.html +0 -133
  660. package/coverage/lcov-report/src/integrations/base/sql.ts.html +0 -1951
  661. package/coverage/lcov-report/src/integrations/base/sqlTable.ts.html +0 -691
  662. package/coverage/lcov-report/src/integrations/base/utils.ts.html +0 -121
  663. package/coverage/lcov-report/src/integrations/couchdb.ts.html +0 -406
  664. package/coverage/lcov-report/src/integrations/elasticsearch.ts.html +0 -634
  665. package/coverage/lcov-report/src/integrations/firebase.ts.html +0 -646
  666. package/coverage/lcov-report/src/integrations/googlesheets.ts.html +0 -1315
  667. package/coverage/lcov-report/src/integrations/index.html +0 -371
  668. package/coverage/lcov-report/src/integrations/index.ts.html +0 -445
  669. package/coverage/lcov-report/src/integrations/microsoftSqlServer.ts.html +0 -1006
  670. package/coverage/lcov-report/src/integrations/mongodb.ts.html +0 -1867
  671. package/coverage/lcov-report/src/integrations/mysql.ts.html +0 -964
  672. package/coverage/lcov-report/src/integrations/oracle.ts.html +0 -1474
  673. package/coverage/lcov-report/src/integrations/postgres.ts.html +0 -1069
  674. package/coverage/lcov-report/src/integrations/queries/index.html +0 -116
  675. package/coverage/lcov-report/src/integrations/queries/sql.ts.html +0 -463
  676. package/coverage/lcov-report/src/integrations/redis.ts.html +0 -550
  677. package/coverage/lcov-report/src/integrations/rest.ts.html +0 -1381
  678. package/coverage/lcov-report/src/integrations/s3.ts.html +0 -862
  679. package/coverage/lcov-report/src/integrations/snowflake.ts.html +0 -376
  680. package/coverage/lcov-report/src/integrations/utils.ts.html +0 -1018
  681. package/coverage/lcov-report/src/middleware/authorized.ts.html +0 -460
  682. package/coverage/lcov-report/src/migrations/functions/appUrls.ts.html +0 -187
  683. package/coverage/lcov-report/src/migrations/functions/backfill/app/automations.ts.html +0 -163
  684. package/coverage/lcov-report/src/migrations/functions/backfill/app/datasources.ts.html +0 -151
  685. package/coverage/lcov-report/src/migrations/functions/backfill/app/index.html +0 -206
  686. package/coverage/lcov-report/src/migrations/functions/backfill/app/layouts.ts.html +0 -172
  687. package/coverage/lcov-report/src/migrations/functions/backfill/app/queries.ts.html +0 -226
  688. package/coverage/lcov-report/src/migrations/functions/backfill/app/roles.ts.html +0 -151
  689. package/coverage/lcov-report/src/migrations/functions/backfill/app/screens.ts.html +0 -151
  690. package/coverage/lcov-report/src/migrations/functions/backfill/app/tables.ts.html +0 -166
  691. package/coverage/lcov-report/src/migrations/functions/backfill/app.ts.html +0 -532
  692. package/coverage/lcov-report/src/migrations/functions/backfill/global/configs.ts.html +0 -283
  693. package/coverage/lcov-report/src/migrations/functions/backfill/global/index.html +0 -146
  694. package/coverage/lcov-report/src/migrations/functions/backfill/global/quotas.ts.html +0 -265
  695. package/coverage/lcov-report/src/migrations/functions/backfill/global/users.ts.html +0 -232
  696. package/coverage/lcov-report/src/migrations/functions/backfill/global.ts.html +0 -724
  697. package/coverage/lcov-report/src/migrations/functions/backfill/index.html +0 -161
  698. package/coverage/lcov-report/src/migrations/functions/backfill/index.ts.html +0 -106
  699. package/coverage/lcov-report/src/migrations/functions/backfill/installation.ts.html +0 -235
  700. package/coverage/lcov-report/src/migrations/functions/index.html +0 -161
  701. package/coverage/lcov-report/src/migrations/functions/syncQuotas.ts.html +0 -130
  702. package/coverage/lcov-report/src/migrations/functions/tableSettings.ts.html +0 -520
  703. package/coverage/lcov-report/src/migrations/functions/usageQuotas/index.html +0 -161
  704. package/coverage/lcov-report/src/migrations/functions/usageQuotas/index.ts.html +0 -94
  705. package/coverage/lcov-report/src/migrations/functions/usageQuotas/syncApps.ts.html +0 -127
  706. package/coverage/lcov-report/src/migrations/functions/usageQuotas/syncPlugins.ts.html +0 -115
  707. package/coverage/lcov-report/src/migrations/functions/usageQuotas/syncRows.ts.html +0 -169
  708. package/coverage/lcov-report/src/migrations/functions/userEmailViewCasing.ts.html +0 -124
  709. package/coverage/lcov-report/src/migrations/index.ts.html +0 -430
  710. package/coverage/lcov-report/src/migrations/tests/helpers.ts.html +0 -205
  711. package/coverage/lcov-report/src/migrations/tests/index.html +0 -131
  712. package/coverage/lcov-report/src/migrations/tests/structures.ts.html +0 -283
  713. package/coverage/lcov-report/src/sdk/app/automations/index.html +0 -131
  714. package/coverage/lcov-report/src/sdk/app/automations/index.ts.html +0 -100
  715. package/coverage/lcov-report/src/sdk/app/automations/webhook.ts.html +0 -214
  716. package/coverage/lcov-report/src/sdk/app/backups/constants.ts.html +0 -91
  717. package/coverage/lcov-report/src/sdk/app/backups/exports.ts.html +0 -604
  718. package/coverage/lcov-report/src/sdk/app/backups/imports.ts.html +0 -682
  719. package/coverage/lcov-report/src/sdk/app/backups/index.html +0 -176
  720. package/coverage/lcov-report/src/sdk/app/backups/index.ts.html +0 -112
  721. package/coverage/lcov-report/src/sdk/app/backups/statistics.ts.html +0 -292
  722. package/coverage/lcov-report/src/sdk/app/tables/index.html +0 -116
  723. package/coverage/lcov-report/src/sdk/app/tables/index.ts.html +0 -265
  724. package/coverage/lcov-report/src/startup.ts.html +0 -499
  725. package/coverage/lcov-report/src/tests/utilities/TestConfiguration.ts.html +0 -1966
  726. package/coverage/lcov-report/src/tests/utilities/controllers.ts.html +0 -127
  727. package/coverage/lcov-report/src/tests/utilities/index.html +0 -161
  728. package/coverage/lcov-report/src/tests/utilities/structures.ts.html +0 -667
  729. package/coverage/lcov-report/src/threads/automation.ts.html +0 -1594
  730. package/coverage/lcov-report/src/threads/index.html +0 -161
  731. package/coverage/lcov-report/src/threads/index.ts.html +0 -418
  732. package/coverage/lcov-report/src/threads/query.ts.html +0 -961
  733. package/coverage/lcov-report/src/threads/utils.ts.html +0 -373
  734. package/coverage/lcov-report/src/utilities/fileSystem/clientLibrary.ts.html +0 -547
  735. package/coverage/lcov-report/src/utilities/fileSystem/index.ts.html +0 -1129
  736. package/coverage/lcov-report/src/utilities/fileSystem/processor.ts.html +0 -142
  737. package/coverage/lcov-report/src/utilities/redis.ts.html +0 -343
  738. package/coverage/lcov-report/src/utilities/routing/index.ts.html +0 -181
  739. package/coverage/lcov-report/src/utilities/rowProcessor/index.html +0 -146
  740. package/coverage/lcov-report/src/utilities/rowProcessor/map.ts.html +0 -373
  741. package/coverage/lcov-report/src/watch.ts.html +0 -196
  742. package/dist/db/defaultData/datasource_bb_default.js +0 -573
  743. package/dist/db/defaultData/employeeImport.js +0 -155
  744. package/dist/db/defaultData/expensesImport.js +0 -117
  745. package/dist/db/defaultData/inventoryImport.js +0 -109
  746. package/dist/db/defaultData/jobsImport.js +0 -152
  747. package/dist/db/linkedRows/LinkDocument.js +0 -32
  748. package/dist/events/BudibaseEmitter.js +0 -24
  749. package/dist/migrations/functions/tableSettings.js +0 -130
  750. package/dist/utilities/rowProcessor/map.js +0 -99
  751. package/jest.config.ts +0 -33
  752. package/src/api/controllers/integration.ts +0 -13
  753. package/src/api/controllers/migrations.ts +0 -14
  754. package/src/api/controllers/script.ts +0 -12
  755. package/src/api/routes/analytics.ts +0 -9
  756. package/src/api/routes/apikeys.ts +0 -12
  757. package/src/api/routes/automation.ts +0 -87
  758. package/src/api/routes/cloud.ts +0 -18
  759. package/src/api/routes/component.ts +0 -14
  760. package/src/api/routes/datasource.ts +0 -60
  761. package/src/api/routes/deploy.ts +0 -21
  762. package/src/api/routes/dev.ts +0 -38
  763. package/src/api/routes/integration.ts +0 -16
  764. package/src/api/routes/layout.ts +0 -16
  765. package/src/api/routes/migrations.ts +0 -14
  766. package/src/api/routes/permission.ts +0 -41
  767. package/src/api/routes/role.ts +0 -24
  768. package/src/api/routes/routing.ts +0 -14
  769. package/src/api/routes/screen.ts +0 -23
  770. package/src/api/routes/script.ts +0 -10
  771. package/src/api/routes/templates.ts +0 -16
  772. package/src/api/routes/user.ts +0 -51
  773. package/src/api/routes/view.ts +0 -34
  774. package/src/automations/bullboard.ts +0 -38
  775. package/src/automations/index.ts +0 -26
  776. package/src/automations/tests/utilities/index.ts +0 -60
  777. package/src/automations/triggerInfo/index.ts +0 -15
  778. package/src/constants/index.ts +0 -204
  779. package/src/constants/screens.ts +0 -48
  780. package/src/db/defaultData/datasource_bb_default.ts +0 -658
  781. package/src/db/defaultData/employeeImport.ts +0 -152
  782. package/src/db/defaultData/expensesImport.ts +0 -114
  783. package/src/db/defaultData/inventoryImport.ts +0 -106
  784. package/src/db/defaultData/jobsImport.ts +0 -158
  785. package/src/db/index.ts +0 -16
  786. package/src/db/linkedRows/LinkDocument.ts +0 -60
  787. package/src/events/index.ts +0 -5
  788. package/src/events/utils.ts +0 -78
  789. package/src/middleware/appInfo.ts +0 -20
  790. package/src/middleware/publicApi.ts +0 -21
  791. package/src/migrations/functions/tableSettings.ts +0 -145
  792. package/src/migrations/functions/tests/tableSettings.spec.ts +0 -144
  793. package/src/tests/utilities/controllers.ts +0 -14
  794. package/src/utilities/budibaseDir.ts +0 -3
  795. package/src/utilities/global.ts +0 -138
  796. package/src/utilities/routing/index.ts +0 -32
  797. package/src/utilities/rowProcessor/map.ts +0 -96
  798. 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 Fri Dec 02 2022 13:39:42 GMT+0000 (Coordinated Universal Time)
832
+ at Mon Dec 05 2022 09:32:59 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