@budibase/server 2.2.26 → 2.2.27-alpha.1

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 (779) hide show
  1. package/Dockerfile +1 -1
  2. package/__mocks__/aws-sdk.ts +20 -1
  3. package/__mocks__/node-fetch.ts +80 -0
  4. package/builder/assets/{bb-emblem.4e4717da.svg → bb-emblem.05f7ae7a.svg} +1 -1
  5. package/builder/assets/bg.29e85dd5.png +0 -0
  6. package/builder/assets/bulgaria.bd68393d.png +0 -0
  7. package/builder/assets/covanta.72c46c1e.png +0 -0
  8. package/builder/assets/index.3dd03883.css +6 -0
  9. package/builder/assets/index.77ae0e4d.js +1802 -0
  10. package/builder/assets/schnellecke.cf1837a8.png +0 -0
  11. package/builder/index.html +3 -3
  12. package/coverage/clover.xml +12565 -8055
  13. package/coverage/coverage-final.json +365 -276
  14. package/coverage/lcov-report/index.html +721 -466
  15. package/coverage/lcov-report/src/api/controllers/analytics.ts.html +9 -9
  16. package/coverage/lcov-report/src/api/controllers/apikeys.ts.html +6 -6
  17. package/coverage/lcov-report/src/api/controllers/application.ts.html +364 -268
  18. package/coverage/lcov-report/src/api/controllers/auth.ts.html +12 -12
  19. package/coverage/lcov-report/src/api/controllers/automation.ts.html +61 -61
  20. package/coverage/lcov-report/src/api/controllers/backup.ts.html +8 -8
  21. package/coverage/lcov-report/src/api/controllers/cloud.ts.html +89 -77
  22. package/coverage/lcov-report/src/api/controllers/component.ts.html +12 -12
  23. package/coverage/lcov-report/src/api/controllers/datasource.ts.html +122 -98
  24. package/coverage/lcov-report/src/api/controllers/deploy/Deployment.ts.html +21 -18
  25. package/coverage/lcov-report/src/api/controllers/deploy/index.html +21 -21
  26. package/coverage/lcov-report/src/api/controllers/deploy/index.ts.html +142 -196
  27. package/coverage/lcov-report/src/api/controllers/dev.ts.html +33 -33
  28. package/coverage/lcov-report/src/api/controllers/index.html +125 -125
  29. package/coverage/lcov-report/src/api/controllers/integration.ts.html +5 -5
  30. package/coverage/lcov-report/src/api/controllers/layout.ts.html +18 -18
  31. package/coverage/lcov-report/src/api/controllers/metadata.ts.html +11 -11
  32. package/coverage/lcov-report/src/api/controllers/migrations.ts.html +6 -6
  33. package/coverage/lcov-report/src/api/controllers/permission.ts.html +35 -35
  34. package/coverage/lcov-report/src/api/controllers/plugin/file.ts.html +20 -20
  35. package/coverage/lcov-report/src/api/controllers/plugin/github.ts.html +62 -62
  36. package/coverage/lcov-report/src/api/controllers/plugin/index.html +72 -72
  37. package/coverage/lcov-report/src/api/controllers/plugin/index.ts.html +150 -135
  38. package/coverage/lcov-report/src/api/controllers/plugin/npm.ts.html +56 -56
  39. package/coverage/lcov-report/src/api/controllers/plugin/uploaders.ts.html +11 -11
  40. package/coverage/lcov-report/src/api/controllers/plugin/url.ts.html +18 -18
  41. package/coverage/lcov-report/src/api/controllers/plugin/utils.ts.html +20 -20
  42. package/coverage/lcov-report/src/api/controllers/public/applications.ts.html +75 -24
  43. package/coverage/lcov-report/src/api/controllers/public/index.html +58 -58
  44. package/coverage/lcov-report/src/api/controllers/public/mapping/applications.ts.html +7 -7
  45. package/coverage/lcov-report/src/api/controllers/public/mapping/index.html +25 -25
  46. package/coverage/lcov-report/src/api/controllers/public/mapping/index.ts.html +9 -9
  47. package/coverage/lcov-report/src/api/controllers/public/mapping/queries.ts.html +8 -8
  48. package/coverage/lcov-report/src/api/controllers/public/mapping/rows.ts.html +4 -4
  49. package/coverage/lcov-report/src/api/controllers/public/mapping/tables.ts.html +4 -4
  50. package/coverage/lcov-report/src/api/controllers/public/mapping/users.ts.html +4 -4
  51. package/coverage/lcov-report/src/api/controllers/public/queries.ts.html +15 -15
  52. package/coverage/lcov-report/src/api/controllers/public/rows.ts.html +21 -21
  53. package/coverage/lcov-report/src/api/controllers/public/tables.ts.html +21 -21
  54. package/coverage/lcov-report/src/api/controllers/public/users.ts.html +27 -27
  55. package/coverage/lcov-report/src/api/controllers/public/utils.ts.html +8 -8
  56. package/coverage/lcov-report/src/api/controllers/query/import/index.html +8 -8
  57. package/coverage/lcov-report/src/api/controllers/query/import/index.ts.html +11 -11
  58. package/coverage/lcov-report/src/api/controllers/query/import/sources/base/index.html +14 -14
  59. package/coverage/lcov-report/src/api/controllers/query/import/sources/base/index.ts.html +14 -14
  60. package/coverage/lcov-report/src/api/controllers/query/import/sources/base/openapi.ts.html +8 -8
  61. package/coverage/lcov-report/src/api/controllers/query/import/sources/curl.ts.html +12 -12
  62. package/coverage/lcov-report/src/api/controllers/query/import/sources/index.html +23 -23
  63. package/coverage/lcov-report/src/api/controllers/query/import/sources/openapi2.ts.html +16 -16
  64. package/coverage/lcov-report/src/api/controllers/query/import/sources/openapi3.ts.html +20 -20
  65. package/coverage/lcov-report/src/api/controllers/query/import/sources/tests/curl/curl.spec.js.html +391 -0
  66. package/coverage/lcov-report/src/api/controllers/query/import/sources/tests/curl/index.html +116 -0
  67. package/coverage/lcov-report/src/api/controllers/query/import/sources/tests/openapi2/index.html +116 -0
  68. package/coverage/lcov-report/src/api/controllers/query/import/sources/tests/openapi2/openapi2.spec.js.html +796 -0
  69. package/coverage/lcov-report/src/api/controllers/query/import/sources/tests/openapi3/index.html +116 -0
  70. package/coverage/lcov-report/src/api/controllers/query/import/sources/tests/openapi3/openapi3.spec.js.html +805 -0
  71. package/coverage/lcov-report/src/api/controllers/query/import/tests/index.html +116 -0
  72. package/coverage/lcov-report/src/api/controllers/query/import/tests/index.spec.js.html +568 -0
  73. package/coverage/lcov-report/src/api/controllers/query/index.html +20 -20
  74. package/coverage/lcov-report/src/api/controllers/query/index.ts.html +131 -107
  75. package/coverage/lcov-report/src/api/controllers/query/validation.ts.html +11 -11
  76. package/coverage/lcov-report/src/api/controllers/role.ts.html +9 -9
  77. package/coverage/lcov-report/src/api/controllers/routing.ts.html +10 -10
  78. package/coverage/lcov-report/src/api/controllers/row/ExternalRequest.ts.html +56 -41
  79. package/coverage/lcov-report/src/api/controllers/row/external.ts.html +87 -57
  80. package/coverage/lcov-report/src/api/controllers/row/index.html +66 -66
  81. package/coverage/lcov-report/src/api/controllers/row/index.ts.html +26 -26
  82. package/coverage/lcov-report/src/api/controllers/row/internal.ts.html +171 -96
  83. package/coverage/lcov-report/src/api/controllers/row/internalSearch.ts.html +146 -146
  84. package/coverage/lcov-report/src/api/controllers/row/staticFormula.ts.html +30 -21
  85. package/coverage/lcov-report/src/api/controllers/row/utils.ts.html +143 -26
  86. package/coverage/lcov-report/src/api/controllers/screen.ts.html +31 -31
  87. package/coverage/lcov-report/src/api/controllers/script.ts.html +19 -19
  88. package/coverage/lcov-report/src/api/controllers/static/index.html +18 -18
  89. package/coverage/lcov-report/src/api/controllers/static/index.ts.html +56 -71
  90. package/coverage/lcov-report/src/api/controllers/table/bulkFormula.ts.html +61 -61
  91. package/coverage/lcov-report/src/api/controllers/table/external.ts.html +56 -50
  92. package/coverage/lcov-report/src/api/controllers/table/index.html +51 -51
  93. package/coverage/lcov-report/src/api/controllers/table/index.ts.html +157 -70
  94. package/coverage/lcov-report/src/api/controllers/table/internal.ts.html +68 -71
  95. package/coverage/lcov-report/src/api/controllers/table/utils.ts.html +109 -112
  96. package/coverage/lcov-report/src/api/controllers/templates.ts.html +21 -21
  97. package/coverage/lcov-report/src/api/controllers/user.ts.html +161 -137
  98. package/coverage/lcov-report/src/api/controllers/view/exporters.ts.html +64 -19
  99. package/coverage/lcov-report/src/api/controllers/view/index.html +38 -38
  100. package/coverage/lcov-report/src/api/controllers/view/index.ts.html +97 -133
  101. package/coverage/lcov-report/src/api/controllers/view/tests/index.html +116 -0
  102. package/coverage/lcov-report/src/api/controllers/view/tests/viewBuilder.spec.js.html +277 -0
  103. package/coverage/lcov-report/src/api/controllers/view/utils.ts.html +31 -31
  104. package/coverage/lcov-report/src/api/controllers/view/viewBuilder.ts.html +37 -37
  105. package/coverage/lcov-report/src/api/controllers/webhook.ts.html +78 -72
  106. package/coverage/lcov-report/src/api/index.html +15 -15
  107. package/coverage/lcov-report/src/api/index.ts.html +40 -40
  108. package/coverage/lcov-report/src/api/routes/analytics.ts.html +10 -10
  109. package/coverage/lcov-report/src/api/routes/apikeys.ts.html +11 -11
  110. package/coverage/lcov-report/src/api/routes/application.ts.html +46 -13
  111. package/coverage/lcov-report/src/api/routes/auth.ts.html +9 -9
  112. package/coverage/lcov-report/src/api/routes/automation.ts.html +14 -14
  113. package/coverage/lcov-report/src/api/routes/backup.ts.html +11 -11
  114. package/coverage/lcov-report/src/api/routes/cloud.ts.html +11 -11
  115. package/coverage/lcov-report/src/api/routes/component.ts.html +11 -11
  116. package/coverage/lcov-report/src/api/routes/datasource.ts.html +12 -12
  117. package/coverage/lcov-report/src/api/routes/deploy.ts.html +11 -14
  118. package/coverage/lcov-report/src/api/routes/dev.ts.html +17 -17
  119. package/coverage/lcov-report/src/api/routes/index.html +68 -68
  120. package/coverage/lcov-report/src/api/routes/index.ts.html +49 -40
  121. package/coverage/lcov-report/src/api/routes/integration.ts.html +11 -11
  122. package/coverage/lcov-report/src/api/routes/layout.ts.html +11 -11
  123. package/coverage/lcov-report/src/api/routes/metadata.ts.html +12 -12
  124. package/coverage/lcov-report/src/api/routes/migrations.ts.html +10 -10
  125. package/coverage/lcov-report/src/api/routes/permission.ts.html +12 -12
  126. package/coverage/lcov-report/src/api/routes/plugin.ts.html +10 -10
  127. package/coverage/lcov-report/src/api/routes/public/applications.ts.html +147 -15
  128. package/coverage/lcov-report/src/api/routes/public/index.html +27 -27
  129. package/coverage/lcov-report/src/api/routes/public/index.ts.html +60 -60
  130. package/coverage/lcov-report/src/api/routes/public/middleware/index.html +15 -15
  131. package/coverage/lcov-report/src/api/routes/public/middleware/mapper.ts.html +28 -16
  132. package/coverage/lcov-report/src/api/routes/public/queries.ts.html +11 -11
  133. package/coverage/lcov-report/src/api/routes/public/rows.ts.html +14 -14
  134. package/coverage/lcov-report/src/api/routes/public/tables.ts.html +14 -14
  135. package/coverage/lcov-report/src/api/routes/public/tests/compare.spec.js.html +583 -0
  136. package/coverage/lcov-report/src/api/routes/public/tests/index.html +41 -11
  137. package/coverage/lcov-report/src/api/routes/public/tests/users.spec.js.html +199 -0
  138. package/coverage/lcov-report/src/api/routes/public/tests/utils.ts.html +5 -5
  139. package/coverage/lcov-report/src/api/routes/public/users.ts.html +14 -14
  140. package/coverage/lcov-report/src/api/routes/public/utils/Endpoint.ts.html +21 -21
  141. package/coverage/lcov-report/src/api/routes/public/utils/index.html +5 -5
  142. package/coverage/lcov-report/src/api/routes/query.ts.html +14 -14
  143. package/coverage/lcov-report/src/api/routes/role.ts.html +12 -12
  144. package/coverage/lcov-report/src/api/routes/routing.ts.html +11 -11
  145. package/coverage/lcov-report/src/api/routes/row.ts.html +14 -14
  146. package/coverage/lcov-report/src/api/routes/screen.ts.html +12 -12
  147. package/coverage/lcov-report/src/api/routes/script.ts.html +13 -13
  148. package/coverage/lcov-report/src/api/routes/static.ts.html +18 -18
  149. package/coverage/lcov-report/src/api/routes/table.ts.html +29 -98
  150. package/coverage/lcov-report/src/api/routes/templates.ts.html +11 -11
  151. package/coverage/lcov-report/src/api/routes/tests/analytics.spec.js.html +271 -0
  152. package/coverage/lcov-report/src/api/routes/tests/apikeys.spec.js.html +259 -0
  153. package/coverage/lcov-report/src/api/routes/tests/application.spec.ts.html +1066 -0
  154. package/coverage/lcov-report/src/api/routes/tests/auth.spec.js.html +154 -0
  155. package/coverage/lcov-report/src/api/routes/tests/automation.spec.js.html +1123 -0
  156. package/coverage/lcov-report/src/api/routes/tests/backup.spec.ts.html +223 -0
  157. package/coverage/lcov-report/src/api/routes/tests/cloud.seq.spec.ts.html +262 -0
  158. package/coverage/lcov-report/src/api/routes/tests/component.spec.js.html +178 -0
  159. package/coverage/lcov-report/src/api/routes/tests/datasource.spec.ts.html +799 -0
  160. package/coverage/lcov-report/src/api/routes/tests/dev.spec.js.html +202 -0
  161. package/coverage/lcov-report/src/api/routes/tests/index.html +521 -0
  162. package/coverage/lcov-report/src/api/routes/tests/integration.spec.js.html +238 -0
  163. package/coverage/lcov-report/src/api/routes/tests/internalSearch.spec.js.html +670 -0
  164. package/coverage/lcov-report/src/api/routes/tests/layout.spec.js.html +259 -0
  165. package/coverage/lcov-report/src/api/routes/tests/metadata.spec.js.html +280 -0
  166. package/coverage/lcov-report/src/api/routes/tests/misc.spec.js.html +358 -0
  167. package/coverage/lcov-report/src/api/routes/tests/permissions.spec.js.html +484 -0
  168. package/coverage/lcov-report/src/api/routes/tests/plugin.spec.ts.html +622 -0
  169. package/coverage/lcov-report/src/api/routes/tests/query.seq.spec.js.html +1696 -0
  170. package/coverage/lcov-report/src/api/routes/tests/role.spec.js.html +478 -0
  171. package/coverage/lcov-report/src/api/routes/tests/routing.spec.js.html +430 -0
  172. package/coverage/lcov-report/src/api/routes/tests/row.spec.js.html +1804 -0
  173. package/coverage/lcov-report/src/api/routes/tests/screen.spec.js.html +391 -0
  174. package/coverage/lcov-report/src/api/routes/tests/static.spec.js.html +541 -0
  175. package/coverage/lcov-report/src/api/routes/tests/table.spec.js.html +991 -0
  176. package/coverage/lcov-report/src/api/routes/tests/templates.spec.js.html +154 -0
  177. package/coverage/lcov-report/src/api/routes/tests/user.spec.js.html +688 -0
  178. package/coverage/lcov-report/src/api/routes/tests/utilities/TestFunctions.ts.html +116 -47
  179. package/coverage/lcov-report/src/api/routes/tests/utilities/index.html +27 -27
  180. package/coverage/lcov-report/src/api/routes/tests/utilities/index.ts.html +42 -36
  181. package/coverage/lcov-report/src/api/routes/tests/view.spec.js.html +1342 -0
  182. package/coverage/lcov-report/src/api/routes/tests/webhook.spec.js.html +484 -0
  183. package/coverage/lcov-report/src/api/routes/user.ts.html +12 -12
  184. package/coverage/lcov-report/src/api/routes/utils/index.html +3 -3
  185. package/coverage/lcov-report/src/api/routes/utils/validators.ts.html +44 -44
  186. package/coverage/lcov-report/src/api/routes/view.ts.html +13 -13
  187. package/coverage/lcov-report/src/api/routes/webhook.ts.html +13 -13
  188. package/coverage/lcov-report/src/app.ts.html +57 -48
  189. package/coverage/lcov-report/src/automations/actions.ts.html +31 -31
  190. package/coverage/lcov-report/src/automations/automationUtils.ts.html +127 -55
  191. package/coverage/lcov-report/src/automations/bullboard.ts.html +19 -19
  192. package/coverage/lcov-report/src/automations/index.html +58 -58
  193. package/coverage/lcov-report/src/automations/index.ts.html +23 -23
  194. package/coverage/lcov-report/src/automations/logging/index.html +3 -3
  195. package/coverage/lcov-report/src/automations/logging/index.ts.html +15 -15
  196. package/coverage/lcov-report/src/automations/steps/bash.ts.html +34 -34
  197. package/coverage/lcov-report/src/automations/steps/createRow.ts.html +9 -9
  198. package/coverage/lcov-report/src/automations/steps/delay.ts.html +7 -7
  199. package/coverage/lcov-report/src/automations/steps/deleteRow.ts.html +9 -9
  200. package/coverage/lcov-report/src/automations/steps/discord.ts.html +33 -33
  201. package/coverage/lcov-report/src/automations/steps/executeQuery.ts.html +35 -35
  202. package/coverage/lcov-report/src/automations/steps/executeScript.ts.html +31 -31
  203. package/coverage/lcov-report/src/automations/steps/filter.ts.html +12 -12
  204. package/coverage/lcov-report/src/automations/steps/index.html +129 -129
  205. package/coverage/lcov-report/src/automations/steps/integromat.ts.html +10 -10
  206. package/coverage/lcov-report/src/automations/steps/loop.ts.html +5 -5
  207. package/coverage/lcov-report/src/automations/steps/outgoingWebhook.ts.html +19 -19
  208. package/coverage/lcov-report/src/automations/steps/queryRows.ts.html +43 -43
  209. package/coverage/lcov-report/src/automations/steps/sendSmtpEmail.ts.html +28 -28
  210. package/coverage/lcov-report/src/automations/steps/serverLog.ts.html +19 -19
  211. package/coverage/lcov-report/src/automations/steps/slack.ts.html +10 -10
  212. package/coverage/lcov-report/src/automations/steps/updateRow.ts.html +12 -12
  213. package/coverage/lcov-report/src/automations/steps/utils.ts.html +18 -18
  214. package/coverage/lcov-report/src/automations/steps/zapier.ts.html +22 -22
  215. package/coverage/lcov-report/src/automations/tests/automation.spec.js.html +337 -0
  216. package/coverage/lcov-report/src/automations/tests/bash.spec.js.html +187 -0
  217. package/coverage/lcov-report/src/automations/tests/createRow.spec.ts.html +223 -0
  218. package/coverage/lcov-report/src/automations/tests/delay.spec.js.html +133 -0
  219. package/coverage/lcov-report/src/automations/tests/deleteRow.spec.ts.html +250 -0
  220. package/coverage/lcov-report/src/automations/tests/discord.spec.js.html +166 -0
  221. package/coverage/lcov-report/src/automations/tests/executeQuery.spec.js.html +229 -0
  222. package/coverage/lcov-report/src/automations/tests/executeScript.spec.js.html +229 -0
  223. package/coverage/lcov-report/src/automations/tests/filter.spec.js.html +232 -0
  224. package/coverage/lcov-report/src/automations/tests/index.html +341 -0
  225. package/coverage/lcov-report/src/automations/tests/loop.spec.ts.html +220 -0
  226. package/coverage/lcov-report/src/automations/tests/outgoingWebhook.spec.js.html +202 -0
  227. package/coverage/lcov-report/src/automations/tests/queryRows.spec.js.html +436 -0
  228. package/coverage/lcov-report/src/automations/tests/sendSmtpEmail.spec.js.html +298 -0
  229. package/coverage/lcov-report/src/automations/tests/serverLog.spec.js.html +151 -0
  230. package/coverage/lcov-report/src/automations/tests/updateRow.spec.js.html +217 -0
  231. package/coverage/lcov-report/src/automations/tests/utilities/index.html +15 -15
  232. package/coverage/lcov-report/src/automations/tests/utilities/index.ts.html +32 -32
  233. package/coverage/lcov-report/src/automations/tests/zapier.spec.js.html +166 -0
  234. package/coverage/lcov-report/src/automations/triggerInfo/app.ts.html +6 -6
  235. package/coverage/lcov-report/src/automations/triggerInfo/cron.ts.html +6 -6
  236. package/coverage/lcov-report/src/automations/triggerInfo/index.html +17 -17
  237. package/coverage/lcov-report/src/automations/triggerInfo/index.ts.html +10 -10
  238. package/coverage/lcov-report/src/automations/triggerInfo/rowDeleted.ts.html +6 -6
  239. package/coverage/lcov-report/src/automations/triggerInfo/rowSaved.ts.html +6 -6
  240. package/coverage/lcov-report/src/automations/triggerInfo/rowUpdated.ts.html +6 -6
  241. package/coverage/lcov-report/src/automations/triggerInfo/webhook.ts.html +6 -6
  242. package/coverage/lcov-report/src/automations/triggers.ts.html +61 -46
  243. package/coverage/lcov-report/src/automations/unitTests/automationUtils.spec.ts.html +280 -0
  244. package/coverage/lcov-report/src/automations/unitTests/index.html +116 -0
  245. package/coverage/lcov-report/src/automations/utils.ts.html +84 -84
  246. package/coverage/lcov-report/src/constants/index.html +19 -19
  247. package/coverage/lcov-report/src/constants/index.ts.html +103 -103
  248. package/coverage/lcov-report/src/constants/layouts.ts.html +9 -9
  249. package/coverage/lcov-report/src/constants/screens.ts.html +5 -5
  250. package/coverage/lcov-report/src/db/defaultData/datasource_bb_default.ts.html +45 -45
  251. package/coverage/lcov-report/src/db/defaultData/employeeImport.ts.html +8 -8
  252. package/coverage/lcov-report/src/db/defaultData/expensesImport.ts.html +8 -8
  253. package/coverage/lcov-report/src/db/defaultData/index.html +43 -43
  254. package/coverage/lcov-report/src/db/defaultData/inventoryImport.ts.html +8 -8
  255. package/coverage/lcov-report/src/db/defaultData/jobsImport.ts.html +8 -8
  256. package/coverage/lcov-report/src/db/dynamoClient.ts.html +26 -26
  257. package/coverage/lcov-report/src/db/inMemoryView.ts.html +13 -13
  258. package/coverage/lcov-report/src/db/index.html +43 -43
  259. package/coverage/lcov-report/src/db/index.ts.html +20 -20
  260. package/coverage/lcov-report/src/db/linkedRows/LinkController.ts.html +38 -38
  261. package/coverage/lcov-report/src/db/linkedRows/LinkDocument.ts.html +7 -7
  262. package/coverage/lcov-report/src/db/linkedRows/index.html +37 -37
  263. package/coverage/lcov-report/src/db/linkedRows/index.ts.html +40 -40
  264. package/coverage/lcov-report/src/db/linkedRows/linkUtils.ts.html +27 -27
  265. package/coverage/lcov-report/src/db/newid.ts.html +5 -5
  266. package/coverage/lcov-report/src/db/tests/index.html +131 -0
  267. package/coverage/lcov-report/src/db/tests/linkController.spec.js.html +793 -0
  268. package/coverage/lcov-report/src/db/tests/linkTests.spec.js.html +277 -0
  269. package/coverage/lcov-report/src/db/utils.ts.html +92 -92
  270. package/coverage/lcov-report/src/definitions/automations.ts.html +9 -6
  271. package/coverage/lcov-report/src/definitions/index.html +5 -20
  272. package/coverage/lcov-report/src/environment.ts.html +49 -37
  273. package/coverage/lcov-report/src/events/AutomationEmitter.ts.html +14 -14
  274. package/coverage/lcov-report/src/events/BudibaseEmitter.ts.html +8 -8
  275. package/coverage/lcov-report/src/events/index.html +20 -20
  276. package/coverage/lcov-report/src/events/index.ts.html +7 -7
  277. package/coverage/lcov-report/src/events/utils.ts.html +11 -11
  278. package/coverage/lcov-report/src/index.html +48 -48
  279. package/coverage/lcov-report/src/index.ts.html +8 -8
  280. package/coverage/lcov-report/src/integrations/airtable.ts.html +10 -10
  281. package/coverage/lcov-report/src/integrations/arangodb.ts.html +9 -9
  282. package/coverage/lcov-report/src/integrations/base/index.html +29 -29
  283. package/coverage/lcov-report/src/integrations/base/query.ts.html +15 -9
  284. package/coverage/lcov-report/src/integrations/base/sql.ts.html +38 -38
  285. package/coverage/lcov-report/src/integrations/base/sqlTable.ts.html +23 -23
  286. package/coverage/lcov-report/src/integrations/base/utils.ts.html +5 -5
  287. package/coverage/lcov-report/src/integrations/couchdb.ts.html +109 -31
  288. package/coverage/lcov-report/src/integrations/dynamodb.ts.html +17 -17
  289. package/coverage/lcov-report/src/integrations/elasticsearch.ts.html +27 -15
  290. package/coverage/lcov-report/src/integrations/firebase.ts.html +12 -12
  291. package/coverage/lcov-report/src/integrations/googlesheets.ts.html +42 -42
  292. package/coverage/lcov-report/src/integrations/index.html +130 -130
  293. package/coverage/lcov-report/src/integrations/index.ts.html +50 -62
  294. package/coverage/lcov-report/src/integrations/microsoftSqlServer.ts.html +31 -31
  295. package/coverage/lcov-report/src/integrations/mongodb.ts.html +421 -289
  296. package/coverage/lcov-report/src/integrations/mysql.ts.html +28 -28
  297. package/coverage/lcov-report/src/integrations/oracle.ts.html +31 -31
  298. package/coverage/lcov-report/src/integrations/postgres.ts.html +54 -54
  299. package/coverage/lcov-report/src/integrations/queries/index.html +19 -19
  300. package/coverage/lcov-report/src/integrations/queries/sql.ts.html +24 -159
  301. package/coverage/lcov-report/src/integrations/redis.ts.html +8 -8
  302. package/coverage/lcov-report/src/integrations/rest.ts.html +43 -52
  303. package/coverage/lcov-report/src/integrations/s3.ts.html +17 -17
  304. package/coverage/lcov-report/src/integrations/snowflake.ts.html +15 -15
  305. package/coverage/lcov-report/src/integrations/tests/TestConfiguration.js.html +1 -1
  306. package/coverage/lcov-report/src/integrations/tests/airtable.spec.ts.html +310 -0
  307. package/coverage/lcov-report/src/integrations/tests/arangodb.spec.ts.html +199 -0
  308. package/coverage/lcov-report/src/integrations/tests/couchdb.spec.ts.html +349 -0
  309. package/coverage/lcov-report/src/integrations/tests/dynamodb.spec.ts.html +550 -0
  310. package/coverage/lcov-report/src/integrations/tests/elasticsearch.spec.ts.html +331 -0
  311. package/coverage/lcov-report/src/integrations/tests/firebase.spec.ts.html +376 -0
  312. package/coverage/lcov-report/src/integrations/tests/index.html +230 -5
  313. package/coverage/lcov-report/src/integrations/tests/microsoftSqlServer.spec.ts.html +253 -0
  314. package/coverage/lcov-report/src/integrations/tests/mongo.spec.ts.html +1087 -0
  315. package/coverage/lcov-report/src/integrations/tests/mysql.spec.ts.html +484 -0
  316. package/coverage/lcov-report/src/integrations/tests/oracle.spec.ts.html +373 -0
  317. package/coverage/lcov-report/src/integrations/tests/postgres.spec.ts.html +328 -0
  318. package/coverage/lcov-report/src/integrations/tests/redis.spec.ts.html +337 -0
  319. package/coverage/lcov-report/src/integrations/tests/rest.spec.ts.html +1870 -0
  320. package/coverage/lcov-report/src/integrations/tests/s3.spec.ts.html +421 -0
  321. package/coverage/lcov-report/src/integrations/tests/sql.spec.ts.html +1753 -0
  322. package/coverage/lcov-report/src/integrations/utils.ts.html +54 -54
  323. package/coverage/lcov-report/src/middleware/appInfo.ts.html +11 -11
  324. package/coverage/lcov-report/src/middleware/authorized.ts.html +49 -37
  325. package/coverage/lcov-report/src/middleware/builder.ts.html +26 -26
  326. package/coverage/lcov-report/src/middleware/currentapp.ts.html +60 -57
  327. package/coverage/lcov-report/src/middleware/index.html +44 -44
  328. package/coverage/lcov-report/src/middleware/joi-validator.ts.html +10 -10
  329. package/coverage/lcov-report/src/middleware/publicApi.ts.html +9 -9
  330. package/coverage/lcov-report/src/middleware/resourceId.ts.html +23 -23
  331. package/coverage/lcov-report/src/middleware/selfhost.ts.html +2 -2
  332. package/coverage/lcov-report/src/middleware/tests/authorized.spec.js.html +574 -0
  333. package/coverage/lcov-report/src/middleware/tests/currentapp.spec.js.html +814 -0
  334. package/coverage/lcov-report/src/middleware/tests/index.html +161 -0
  335. package/coverage/lcov-report/src/middleware/tests/resourceId.spec.js.html +397 -0
  336. package/coverage/lcov-report/src/middleware/tests/selfhost.spec.js.html +214 -0
  337. package/coverage/lcov-report/src/middleware/utils.ts.html +4 -4
  338. package/coverage/lcov-report/src/migrations/functions/appUrls.ts.html +6 -6
  339. package/coverage/lcov-report/src/migrations/functions/backfill/app/automations.ts.html +7 -7
  340. package/coverage/lcov-report/src/migrations/functions/backfill/app/datasources.ts.html +7 -7
  341. package/coverage/lcov-report/src/migrations/functions/backfill/app/index.html +31 -31
  342. package/coverage/lcov-report/src/migrations/functions/backfill/app/layouts.ts.html +8 -8
  343. package/coverage/lcov-report/src/migrations/functions/backfill/app/queries.ts.html +13 -13
  344. package/coverage/lcov-report/src/migrations/functions/backfill/app/roles.ts.html +7 -7
  345. package/coverage/lcov-report/src/migrations/functions/backfill/app/screens.ts.html +7 -7
  346. package/coverage/lcov-report/src/migrations/functions/backfill/app/tables.ts.html +8 -8
  347. package/coverage/lcov-report/src/migrations/functions/backfill/app.ts.html +21 -21
  348. package/coverage/lcov-report/src/migrations/functions/backfill/global/configs.ts.html +17 -14
  349. package/coverage/lcov-report/src/migrations/functions/backfill/global/index.html +19 -19
  350. package/coverage/lcov-report/src/migrations/functions/backfill/global/quotas.ts.html +9 -9
  351. package/coverage/lcov-report/src/migrations/functions/backfill/global/users.ts.html +13 -13
  352. package/coverage/lcov-report/src/migrations/functions/backfill/global.ts.html +23 -23
  353. package/coverage/lcov-report/src/migrations/functions/backfill/index.html +26 -26
  354. package/coverage/lcov-report/src/migrations/functions/backfill/index.ts.html +7 -7
  355. package/coverage/lcov-report/src/migrations/functions/backfill/installation.ts.html +14 -14
  356. package/coverage/lcov-report/src/migrations/functions/index.html +18 -18
  357. package/coverage/lcov-report/src/migrations/functions/syncQuotas.ts.html +8 -8
  358. package/coverage/lcov-report/src/migrations/functions/tableSettings.ts.html +11 -11
  359. package/coverage/lcov-report/src/migrations/functions/tests/appUrls.spec.js.html +163 -0
  360. package/coverage/lcov-report/src/migrations/functions/tests/index.html +161 -0
  361. package/coverage/lcov-report/src/migrations/functions/tests/syncQuotas.spec.js.html +163 -0
  362. package/coverage/lcov-report/src/migrations/functions/tests/tableSettings.spec.ts.html +517 -0
  363. package/coverage/lcov-report/src/migrations/functions/tests/userEmailViewCasing.spec.js.html +190 -0
  364. package/coverage/lcov-report/src/migrations/functions/usageQuotas/index.html +11 -11
  365. package/coverage/lcov-report/src/migrations/functions/usageQuotas/index.ts.html +3 -3
  366. package/coverage/lcov-report/src/migrations/functions/usageQuotas/syncApps.ts.html +6 -6
  367. package/coverage/lcov-report/src/migrations/functions/usageQuotas/syncPlugins.ts.html +8 -8
  368. package/coverage/lcov-report/src/migrations/functions/usageQuotas/syncRows.ts.html +7 -7
  369. package/coverage/lcov-report/src/migrations/functions/usageQuotas/tests/index.html +131 -0
  370. package/coverage/lcov-report/src/migrations/functions/usageQuotas/tests/syncApps.spec.ts.html +190 -0
  371. package/coverage/lcov-report/src/migrations/functions/usageQuotas/tests/syncRows.spec.ts.html +244 -0
  372. package/coverage/lcov-report/src/migrations/functions/userEmailViewCasing.ts.html +4 -4
  373. package/coverage/lcov-report/src/migrations/index.html +15 -15
  374. package/coverage/lcov-report/src/migrations/index.ts.html +43 -43
  375. package/coverage/lcov-report/src/migrations/tests/helpers.ts.html +4 -4
  376. package/coverage/lcov-report/src/migrations/tests/index.html +26 -11
  377. package/coverage/lcov-report/src/migrations/tests/index.spec.ts.html +535 -0
  378. package/coverage/lcov-report/src/migrations/tests/structures.ts.html +3 -3
  379. package/coverage/lcov-report/src/sdk/app/applications/index.html +20 -20
  380. package/coverage/lcov-report/src/sdk/app/applications/index.ts.html +6 -6
  381. package/coverage/lcov-report/src/sdk/app/applications/sync.ts.html +34 -34
  382. package/coverage/lcov-report/src/sdk/app/applications/utils.ts.html +15 -15
  383. package/coverage/lcov-report/src/sdk/app/automations/index.html +7 -7
  384. package/coverage/lcov-report/src/sdk/app/automations/index.ts.html +5 -5
  385. package/coverage/lcov-report/src/sdk/app/automations/webhook.ts.html +14 -14
  386. package/coverage/lcov-report/src/sdk/app/backups/constants.ts.html +5 -5
  387. package/coverage/lcov-report/src/sdk/app/backups/exports.ts.html +30 -30
  388. package/coverage/lcov-report/src/sdk/app/backups/imports.ts.html +45 -57
  389. package/coverage/lcov-report/src/sdk/app/backups/index.html +42 -42
  390. package/coverage/lcov-report/src/sdk/app/backups/index.ts.html +7 -7
  391. package/coverage/lcov-report/src/sdk/app/backups/statistics.ts.html +73 -73
  392. package/coverage/lcov-report/src/sdk/app/datasources/datasources.ts.html +493 -0
  393. package/coverage/lcov-report/src/sdk/app/datasources/index.html +131 -0
  394. package/coverage/lcov-report/src/sdk/app/datasources/index.ts.html +100 -0
  395. package/coverage/lcov-report/src/sdk/app/queries/index.html +131 -0
  396. package/coverage/lcov-report/src/{utilities/statusCodes.ts.html → sdk/app/queries/index.ts.html} +22 -28
  397. package/coverage/lcov-report/src/{definitions/datasource.ts.html → sdk/app/queries/queries.ts.html} +82 -82
  398. package/coverage/lcov-report/src/sdk/app/rows/attachments.ts.html +8 -8
  399. package/coverage/lcov-report/src/sdk/app/rows/index.html +8 -8
  400. package/coverage/lcov-report/src/sdk/app/rows/index.ts.html +6 -6
  401. package/coverage/lcov-report/src/sdk/app/rows/rows.ts.html +4 -4
  402. package/coverage/lcov-report/src/sdk/app/tables/index.html +15 -15
  403. package/coverage/lcov-report/src/sdk/app/tables/index.ts.html +30 -21
  404. package/coverage/lcov-report/src/sdk/index.html +7 -7
  405. package/coverage/lcov-report/src/sdk/index.ts.html +24 -12
  406. package/coverage/lcov-report/src/sdk/tests/attachments.spec.ts.html +313 -0
  407. package/coverage/lcov-report/src/sdk/tests/index.html +116 -0
  408. package/coverage/lcov-report/src/sdk/users/index.html +10 -10
  409. package/coverage/lcov-report/src/sdk/users/index.ts.html +5 -5
  410. package/coverage/lcov-report/src/sdk/users/utils.ts.html +35 -35
  411. package/coverage/lcov-report/src/sdk/utils/index.html +116 -0
  412. package/coverage/lcov-report/src/sdk/utils/index.ts.html +133 -0
  413. package/coverage/lcov-report/src/startup.ts.html +48 -63
  414. package/coverage/lcov-report/src/tests/utilities/TestConfiguration.ts.html +421 -187
  415. package/coverage/lcov-report/src/tests/utilities/controllers.ts.html +20 -20
  416. package/coverage/lcov-report/src/tests/utilities/index.html +35 -35
  417. package/coverage/lcov-report/src/tests/utilities/index.ts.html +2 -2
  418. package/coverage/lcov-report/src/tests/utilities/structures.ts.html +236 -47
  419. package/coverage/lcov-report/src/threads/automation.ts.html +212 -251
  420. package/coverage/lcov-report/src/threads/index.html +46 -46
  421. package/coverage/lcov-report/src/threads/index.ts.html +39 -39
  422. package/coverage/lcov-report/src/threads/query.ts.html +140 -101
  423. package/coverage/lcov-report/src/threads/utils.ts.html +29 -29
  424. package/coverage/lcov-report/src/utilities/budibaseDir.ts.html +5 -5
  425. package/coverage/lcov-report/src/utilities/centralPath.ts.html +11 -11
  426. package/coverage/lcov-report/src/utilities/fileSystem/app.ts.html +343 -0
  427. package/coverage/lcov-report/src/utilities/fileSystem/clientLibrary.ts.html +20 -20
  428. package/coverage/lcov-report/src/utilities/fileSystem/filesystem.ts.html +601 -0
  429. package/coverage/lcov-report/src/utilities/fileSystem/index.html +88 -28
  430. package/coverage/lcov-report/src/utilities/fileSystem/index.ts.html +20 -1049
  431. package/coverage/lcov-report/src/utilities/fileSystem/plugin.ts.html +277 -0
  432. package/coverage/lcov-report/src/utilities/fileSystem/processor.ts.html +9 -9
  433. package/coverage/lcov-report/src/utilities/fileSystem/template.ts.html +193 -0
  434. package/coverage/lcov-report/src/utilities/global.ts.html +60 -60
  435. package/coverage/lcov-report/src/utilities/index.html +102 -117
  436. package/coverage/lcov-report/src/utilities/index.ts.html +47 -179
  437. package/coverage/lcov-report/src/utilities/redis.ts.html +38 -38
  438. package/coverage/lcov-report/src/utilities/{plugins.ts.html → retry.ts.html} +31 -43
  439. package/coverage/lcov-report/src/utilities/routing/index.html +1 -1
  440. package/coverage/lcov-report/src/utilities/routing/index.ts.html +5 -5
  441. package/coverage/lcov-report/src/utilities/rowProcessor/index.html +34 -34
  442. package/coverage/lcov-report/src/utilities/rowProcessor/index.ts.html +72 -45
  443. package/coverage/lcov-report/src/utilities/rowProcessor/map.ts.html +9 -9
  444. package/coverage/lcov-report/src/utilities/rowProcessor/tests/index.html +116 -0
  445. package/coverage/lcov-report/src/utilities/rowProcessor/tests/utils.spec.ts.html +256 -0
  446. package/coverage/lcov-report/src/utilities/rowProcessor/utils.ts.html +52 -52
  447. package/coverage/lcov-report/src/utilities/{csvParser.ts.html → schema.ts.html} +174 -234
  448. package/coverage/lcov-report/src/utilities/scriptRunner.ts.html +33 -33
  449. package/coverage/lcov-report/src/utilities/security.ts.html +30 -30
  450. package/coverage/lcov-report/src/utilities/usageQuota/index.html +9 -9
  451. package/coverage/lcov-report/src/utilities/usageQuota/rows.ts.html +37 -37
  452. package/coverage/lcov-report/src/utilities/usageQuota/usageQuoteReset.ts.html +3 -3
  453. package/coverage/lcov-report/src/utilities/users.ts.html +7 -7
  454. package/coverage/lcov-report/src/utilities/workerRequests.ts.html +92 -65
  455. package/coverage/lcov-report/src/watch.ts.html +20 -20
  456. package/coverage/lcov-report/src/websocket.ts.html +15 -15
  457. package/coverage/lcov.info +24966 -17056
  458. package/dist/api/controllers/application.js +120 -109
  459. package/dist/api/controllers/cloud.js +6 -2
  460. package/dist/api/controllers/datasource.js +24 -15
  461. package/dist/api/controllers/deploy/index.js +43 -60
  462. package/dist/api/controllers/plugin/index.js +6 -6
  463. package/dist/api/controllers/public/applications.js +22 -1
  464. package/dist/api/controllers/query/index.js +23 -13
  465. package/dist/api/controllers/row/ExternalRequest.js +12 -4
  466. package/dist/api/controllers/row/external.js +20 -13
  467. package/dist/api/controllers/row/internal.js +52 -27
  468. package/dist/api/controllers/row/staticFormula.js +1 -1
  469. package/dist/api/controllers/row/utils.js +35 -3
  470. package/dist/api/controllers/static/index.js +47 -47
  471. package/dist/api/controllers/static/templates/BudibaseApp.svelte +0 -1
  472. package/dist/api/controllers/table/external.js +16 -35
  473. package/dist/api/controllers/table/index.js +44 -15
  474. package/dist/api/controllers/table/internal.js +6 -7
  475. package/dist/api/controllers/table/utils.js +9 -9
  476. package/dist/api/controllers/user.js +14 -6
  477. package/dist/api/controllers/view/exporters.js +22 -6
  478. package/dist/api/controllers/view/index.js +23 -58
  479. package/dist/api/controllers/view/viewBuilder.js +15 -2
  480. package/dist/api/controllers/webhook.js +45 -43
  481. package/dist/api/routes/analytics.js +2 -1
  482. package/dist/api/routes/apikeys.js +2 -1
  483. package/dist/api/routes/application.js +5 -1
  484. package/dist/api/routes/auth.js +2 -1
  485. package/dist/api/routes/automation.js +2 -1
  486. package/dist/api/routes/backup.js +2 -1
  487. package/dist/api/routes/cloud.js +2 -1
  488. package/dist/api/routes/component.js +2 -1
  489. package/dist/api/routes/datasource.js +2 -1
  490. package/dist/api/routes/deploy.js +3 -3
  491. package/dist/api/routes/dev.js +2 -1
  492. package/dist/api/routes/index.js +2 -0
  493. package/dist/api/routes/integration.js +2 -1
  494. package/dist/api/routes/layout.js +2 -1
  495. package/dist/api/routes/metadata.js +2 -1
  496. package/dist/api/routes/migrations.js +2 -1
  497. package/dist/api/routes/permission.js +2 -1
  498. package/dist/api/routes/public/applications.js +37 -0
  499. package/dist/api/routes/public/middleware/mapper.js +3 -0
  500. package/dist/api/routes/query.js +2 -1
  501. package/dist/api/routes/role.js +2 -1
  502. package/dist/api/routes/routing.js +2 -1
  503. package/dist/api/routes/row.js +2 -2
  504. package/dist/api/routes/screen.js +2 -1
  505. package/dist/api/routes/script.js +2 -1
  506. package/dist/api/routes/static.js +6 -5
  507. package/dist/api/routes/table.js +8 -38
  508. package/dist/api/routes/templates.js +2 -1
  509. package/dist/api/routes/user.js +2 -1
  510. package/dist/api/routes/utils/validators.js +1 -1
  511. package/dist/api/routes/view.js +2 -1
  512. package/dist/api/routes/webhook.js +2 -1
  513. package/dist/app.js +10 -8
  514. package/dist/automations/automationUtils.js +26 -1
  515. package/dist/automations/logging/index.js +5 -25
  516. package/dist/automations/triggers.js +1 -0
  517. package/dist/db/index.js +5 -2
  518. package/dist/db/linkedRows/LinkController.js +2 -1
  519. package/dist/db/linkedRows/LinkDocument.js +2 -1
  520. package/dist/db/newid.js +4 -2
  521. package/dist/definitions/datasource.js +0 -6
  522. package/dist/environment.js +7 -2
  523. package/dist/events/AutomationEmitter.js +2 -1
  524. package/dist/events/BudibaseEmitter.js +2 -1
  525. package/dist/events/index.js +2 -1
  526. package/dist/index.js +2 -2
  527. package/dist/integrations/base/query.js +7 -2
  528. package/dist/integrations/base/sqlTable.js +14 -14
  529. package/dist/integrations/couchdb.js +34 -8
  530. package/dist/integrations/dynamodb.js +8 -5
  531. package/dist/integrations/elasticsearch.js +7 -3
  532. package/dist/integrations/googlesheets.js +1 -1
  533. package/dist/integrations/index.js +6 -7
  534. package/dist/integrations/mongodb.js +311 -271
  535. package/dist/integrations/mysql.js +2 -2
  536. package/dist/integrations/queries/sql.js +73 -100
  537. package/dist/integrations/rest.js +16 -18
  538. package/dist/middleware/authorized.js +2 -1
  539. package/dist/middleware/builder.js +4 -2
  540. package/dist/middleware/currentapp.js +6 -3
  541. package/dist/middleware/publicApi.js +4 -2
  542. package/dist/middleware/selfhost.js +4 -1
  543. package/dist/migrations/functions/backfill/global/configs.js +4 -4
  544. package/dist/package.json +14 -8
  545. package/dist/sdk/app/backups/imports.js +2 -6
  546. package/dist/sdk/app/datasources/datasources.js +147 -0
  547. package/dist/sdk/app/datasources/index.js +27 -0
  548. package/dist/sdk/app/queries/index.js +27 -0
  549. package/dist/sdk/app/queries/queries.js +60 -0
  550. package/dist/sdk/app/tables/index.js +6 -2
  551. package/dist/sdk/index.js +4 -0
  552. package/dist/sdk/utils/index.js +29 -0
  553. package/dist/startup.js +17 -17
  554. package/dist/threads/automation.js +22 -35
  555. package/dist/threads/index.js +4 -4
  556. package/dist/threads/query.js +27 -13
  557. package/dist/tsconfig.build.tsbuildinfo +1 -1
  558. package/dist/utilities/fileSystem/app.js +97 -0
  559. package/dist/utilities/fileSystem/clientLibrary.js +3 -3
  560. package/dist/utilities/fileSystem/filesystem.js +184 -0
  561. package/dist/utilities/fileSystem/index.js +18 -342
  562. package/dist/utilities/fileSystem/plugin.js +66 -0
  563. package/dist/utilities/fileSystem/template.js +47 -0
  564. package/dist/utilities/index.js +1 -44
  565. package/dist/utilities/retry.js +30 -0
  566. package/dist/utilities/rowProcessor/index.js +12 -4
  567. package/dist/utilities/schema.js +108 -0
  568. package/dist/utilities/scriptRunner.js +2 -1
  569. package/dist/utilities/statusCodes.js +2 -1
  570. package/dist/utilities/workerRequests.js +2 -0
  571. package/dist/watch.js +2 -25
  572. package/jest-testcontainers-config.js +8 -0
  573. package/jest.config.ts +33 -13
  574. package/package.json +15 -9
  575. package/scripts/dev/manage.js +3 -2
  576. package/specs/openapi.json +84 -0
  577. package/specs/openapi.yaml +53 -0
  578. package/specs/resources/application.js +19 -0
  579. package/src/api/controllers/application.ts +142 -110
  580. package/src/api/controllers/auth.ts +2 -2
  581. package/src/api/controllers/cloud.ts +10 -6
  582. package/src/api/controllers/datasource.ts +33 -25
  583. package/src/api/controllers/deploy/Deployment.ts +1 -0
  584. package/src/api/controllers/deploy/index.ts +40 -58
  585. package/src/api/controllers/plugin/index.ts +14 -9
  586. package/src/api/controllers/public/applications.ts +17 -0
  587. package/src/api/controllers/query/import/tests/index.spec.js +1 -1
  588. package/src/api/controllers/query/index.ts +49 -41
  589. package/src/api/controllers/row/ExternalRequest.ts +8 -3
  590. package/src/api/controllers/row/external.ts +24 -14
  591. package/src/api/controllers/row/internal.ts +66 -41
  592. package/src/api/controllers/row/staticFormula.ts +5 -2
  593. package/src/api/controllers/row/utils.ts +42 -3
  594. package/src/api/controllers/static/index.ts +22 -27
  595. package/src/api/controllers/static/templates/BudibaseApp.svelte +0 -1
  596. package/src/api/controllers/table/external.ts +18 -16
  597. package/src/api/controllers/table/index.ts +46 -17
  598. package/src/api/controllers/table/internal.ts +6 -7
  599. package/src/api/controllers/table/utils.ts +12 -13
  600. package/src/api/controllers/user.ts +21 -13
  601. package/src/api/controllers/view/exporters.ts +20 -5
  602. package/src/api/controllers/view/index.ts +30 -42
  603. package/src/api/controllers/view/tests/viewBuilder.spec.js +1 -1
  604. package/src/api/controllers/view/viewBuilder.ts +1 -1
  605. package/src/api/controllers/webhook.ts +48 -46
  606. package/src/api/routes/analytics.ts +1 -1
  607. package/src/api/routes/apikeys.ts +1 -1
  608. package/src/api/routes/application.ts +12 -1
  609. package/src/api/routes/auth.ts +1 -1
  610. package/src/api/routes/automation.ts +1 -1
  611. package/src/api/routes/backup.ts +1 -1
  612. package/src/api/routes/cloud.ts +1 -1
  613. package/src/api/routes/component.ts +1 -1
  614. package/src/api/routes/datasource.ts +1 -1
  615. package/src/api/routes/deploy.ts +1 -2
  616. package/src/api/routes/dev.ts +1 -1
  617. package/src/api/routes/index.ts +6 -3
  618. package/src/api/routes/integration.ts +1 -1
  619. package/src/api/routes/layout.ts +1 -1
  620. package/src/api/routes/metadata.ts +1 -1
  621. package/src/api/routes/migrations.ts +1 -1
  622. package/src/api/routes/permission.ts +1 -1
  623. package/src/api/routes/public/applications.ts +44 -0
  624. package/src/api/routes/public/middleware/mapper.ts +4 -0
  625. package/src/api/routes/query.ts +1 -1
  626. package/src/api/routes/role.ts +1 -1
  627. package/src/api/routes/routing.ts +1 -1
  628. package/src/api/routes/row.ts +1 -1
  629. package/src/api/routes/screen.ts +1 -1
  630. package/src/api/routes/script.ts +1 -1
  631. package/src/api/routes/static.ts +2 -2
  632. package/src/api/routes/table.ts +16 -39
  633. package/src/api/routes/templates.ts +1 -1
  634. package/src/api/routes/tests/__snapshots__/{datasource.spec.js.snap → datasource.spec.ts.snap} +1 -1
  635. package/src/api/routes/tests/analytics.spec.js +4 -1
  636. package/src/api/routes/tests/apikeys.spec.js +1 -1
  637. package/src/api/routes/tests/{application.spec.js → application.spec.ts} +112 -22
  638. package/src/api/routes/tests/auth.spec.js +2 -2
  639. package/src/api/routes/tests/automation.spec.js +5 -1
  640. package/src/api/routes/tests/{backup.spec.js → backup.spec.ts} +17 -15
  641. package/src/api/routes/tests/cloud.seq.spec.ts +59 -0
  642. package/src/api/routes/tests/component.spec.js +1 -1
  643. package/src/api/routes/tests/data/budibase-component-1.0.1.tgz +0 -0
  644. package/src/api/routes/tests/data/comment-box-1.0.2.tar.gz +0 -0
  645. package/src/api/routes/tests/data/export-test.tar.gz +0 -0
  646. package/src/api/routes/tests/{datasource.spec.js → datasource.spec.ts} +76 -17
  647. package/src/api/routes/tests/dev.spec.js +1 -1
  648. package/src/api/routes/tests/integration.spec.js +1 -1
  649. package/src/api/routes/tests/layout.spec.js +1 -1
  650. package/src/api/routes/tests/metadata.spec.js +1 -1
  651. package/src/api/routes/tests/misc.spec.js +5 -11
  652. package/src/api/routes/tests/permissions.spec.js +5 -2
  653. package/src/api/routes/tests/plugin.spec.ts +179 -0
  654. package/src/api/routes/tests/{query.spec.js → query.seq.spec.js} +21 -1
  655. package/src/api/routes/tests/role.spec.js +6 -1
  656. package/src/api/routes/tests/routing.spec.js +2 -3
  657. package/src/api/routes/tests/row.spec.js +15 -5
  658. package/src/api/routes/tests/screen.spec.js +1 -1
  659. package/src/api/routes/tests/static.spec.js +4 -18
  660. package/src/api/routes/tests/table.spec.js +17 -33
  661. package/src/api/routes/tests/templates.spec.js +1 -1
  662. package/src/api/routes/tests/user.spec.js +108 -0
  663. package/src/api/routes/tests/utilities/TestFunctions.ts +26 -3
  664. package/src/api/routes/tests/utilities/index.ts +7 -5
  665. package/src/api/routes/tests/view.spec.js +4 -1
  666. package/src/api/routes/tests/webhook.spec.js +12 -3
  667. package/src/api/routes/user.ts +1 -1
  668. package/src/api/routes/utils/validators.ts +1 -1
  669. package/src/api/routes/view.ts +1 -1
  670. package/src/api/routes/webhook.ts +1 -1
  671. package/src/app.ts +7 -4
  672. package/src/automations/automationUtils.ts +24 -0
  673. package/src/automations/logging/index.ts +1 -1
  674. package/src/automations/tests/automation.spec.js +4 -4
  675. package/src/automations/tests/bash.spec.js +34 -0
  676. package/src/automations/tests/discord.spec.js +27 -0
  677. package/src/automations/tests/executeQuery.spec.js +48 -0
  678. package/src/automations/tests/executeScript.spec.js +48 -0
  679. package/src/automations/tests/loop.spec.ts +45 -0
  680. package/src/automations/tests/outgoingWebhook.spec.js +1 -1
  681. package/src/automations/tests/sendSmtpEmail.spec.js +71 -0
  682. package/src/automations/tests/serverLog.spec.js +22 -0
  683. package/src/automations/tests/updateRow.spec.js +1 -1
  684. package/src/automations/tests/utilities/index.ts +2 -2
  685. package/src/automations/tests/zapier.spec.js +27 -0
  686. package/src/automations/triggers.ts +6 -1
  687. package/src/automations/unitTests/automationUtils.spec.ts +65 -0
  688. package/src/db/index.ts +1 -1
  689. package/src/db/linkedRows/LinkController.ts +1 -1
  690. package/src/db/linkedRows/LinkDocument.ts +1 -1
  691. package/src/db/newid.ts +1 -1
  692. package/src/db/tests/linkController.spec.js +5 -2
  693. package/src/db/tests/linkTests.spec.js +1 -1
  694. package/src/definitions/automations.ts +1 -0
  695. package/src/definitions/datasource.ts +0 -41
  696. package/src/definitions/openapi.ts +10 -0
  697. package/src/environment.ts +6 -2
  698. package/src/events/AutomationEmitter.ts +1 -1
  699. package/src/events/BudibaseEmitter.ts +1 -1
  700. package/src/events/index.ts +1 -1
  701. package/src/index.ts +1 -1
  702. package/src/integrations/base/query.ts +3 -1
  703. package/src/integrations/base/sqlTable.ts +1 -1
  704. package/src/integrations/couchdb.ts +40 -14
  705. package/src/integrations/dynamodb.ts +3 -3
  706. package/src/integrations/elasticsearch.ts +8 -4
  707. package/src/integrations/googlesheets.ts +1 -1
  708. package/src/integrations/index.ts +5 -9
  709. package/src/integrations/mongodb.ts +315 -271
  710. package/src/integrations/mysql.ts +1 -1
  711. package/src/integrations/queries/sql.ts +5 -50
  712. package/src/integrations/rest.ts +16 -19
  713. package/src/integrations/tests/couchdb.spec.ts +33 -21
  714. package/src/integrations/tests/rest.spec.ts +19 -15
  715. package/src/middleware/authorized.ts +5 -1
  716. package/src/middleware/builder.ts +1 -1
  717. package/src/middleware/currentapp.ts +4 -3
  718. package/src/middleware/publicApi.ts +1 -1
  719. package/src/middleware/selfhost.ts +1 -1
  720. package/src/middleware/tests/authorized.spec.js +1 -1
  721. package/src/middleware/tests/currentapp.spec.js +1 -1
  722. package/src/middleware/tests/selfhost.spec.js +1 -1
  723. package/src/migrations/functions/backfill/global/configs.ts +5 -4
  724. package/src/migrations/functions/tests/appUrls.spec.js +1 -1
  725. package/src/migrations/functions/tests/syncQuotas.spec.js +1 -1
  726. package/src/migrations/functions/tests/userEmailViewCasing.spec.js +1 -1
  727. package/src/migrations/functions/usageQuotas/tests/syncRows.spec.ts +10 -6
  728. package/src/migrations/tests/index.spec.ts +3 -2
  729. package/src/sdk/app/backups/imports.ts +2 -6
  730. package/src/sdk/app/datasources/datasources.ts +136 -0
  731. package/src/sdk/app/datasources/index.ts +5 -0
  732. package/src/sdk/app/queries/index.ts +5 -0
  733. package/src/sdk/app/queries/queries.ts +50 -0
  734. package/src/sdk/app/tables/index.ts +6 -3
  735. package/src/sdk/index.ts +4 -0
  736. package/src/sdk/tests/attachments.spec.ts +1 -4
  737. package/src/sdk/utils/index.ts +16 -0
  738. package/src/startup.ts +3 -8
  739. package/src/tests/jestEnv.ts +9 -0
  740. package/src/tests/jestSetup.ts +8 -20
  741. package/src/tests/utilities/TestConfiguration.ts +127 -49
  742. package/src/tests/utilities/structures.ts +65 -2
  743. package/src/threads/automation.ts +22 -35
  744. package/src/threads/definitions.ts +3 -0
  745. package/src/threads/index.ts +1 -1
  746. package/src/threads/query.ts +28 -15
  747. package/src/utilities/fileSystem/app.ts +86 -0
  748. package/src/utilities/fileSystem/clientLibrary.ts +1 -1
  749. package/src/utilities/fileSystem/filesystem.ts +172 -0
  750. package/src/utilities/fileSystem/index.ts +5 -348
  751. package/src/utilities/fileSystem/plugin.ts +64 -0
  752. package/src/utilities/fileSystem/template.ts +36 -0
  753. package/src/utilities/index.ts +1 -45
  754. package/src/utilities/retry.ts +18 -0
  755. package/src/utilities/rowProcessor/index.ts +17 -8
  756. package/src/utilities/rowProcessor/tests/utils.spec.ts +57 -0
  757. package/src/utilities/schema.ts +141 -0
  758. package/src/utilities/scriptRunner.ts +1 -1
  759. package/src/utilities/statusCodes.ts +1 -1
  760. package/src/utilities/workerRequests.ts +10 -1
  761. package/src/watch.ts +1 -1
  762. package/tsconfig.build.json +2 -0
  763. package/tsconfig.json +2 -1
  764. package/builder/assets/index.96b9ffed.css +0 -6
  765. package/builder/assets/index.fae8f9eb.js +0 -1024
  766. package/dist/api/routes/tests/utilities/TestFunctions.js +0 -167
  767. package/dist/api/routes/tests/utilities/index.js +0 -131
  768. package/dist/automations/tests/utilities/index.js +0 -81
  769. package/dist/tests/utilities/TestConfiguration.js +0 -562
  770. package/dist/tests/utilities/controllers.js +0 -40
  771. package/dist/tests/utilities/structures.js +0 -168
  772. package/dist/utilities/csvParser.js +0 -152
  773. package/dist/utilities/plugins.js +0 -26
  774. package/src/api/routes/tests/deployment.spec.ts +0 -25
  775. package/src/automations/unitTests/automationUtils.spec.js +0 -17
  776. package/src/utilities/csvParser.ts +0 -161
  777. package/src/utilities/plugins.ts +0 -22
  778. package/src/utilities/tests/__snapshots__/csvParser.spec.js.snap +0 -15
  779. package/src/utilities/tests/csvParser.spec.js +0 -112
@@ -23,23 +23,23 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">69.93% </span>
26
+ <span class="strong">70.03% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>214/306</span>
28
+ <span class='fraction'>215/307</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">47.47% </span>
33
+ <span class="strong">53.37% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>113/238</span>
35
+ <span class='fraction'>95/178</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">72.5% </span>
40
+ <span class="strong">73.17% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>29/40</span>
42
+ <span class='fraction'>30/41</span>
43
43
  </div>
44
44
 
45
45
 
@@ -694,29 +694,29 @@
694
694
  <a name='L629'></a><a href='#L629'>629</a>
695
695
  <a name='L630'></a><a href='#L630'>630</a>
696
696
  <a name='L631'></a><a href='#L631'>631</a>
697
- <a name='L632'></a><a href='#L632'>632</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">53x</span>
698
- <span class="cline-any cline-yes">53x</span>
697
+ <a name='L632'></a><a href='#L632'>632</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">64x</span>
699
698
  <span class="cline-any cline-neutral">&nbsp;</span>
700
699
  <span class="cline-any cline-neutral">&nbsp;</span>
701
700
  <span class="cline-any cline-neutral">&nbsp;</span>
702
701
  <span class="cline-any cline-neutral">&nbsp;</span>
703
702
  <span class="cline-any cline-neutral">&nbsp;</span>
704
703
  <span class="cline-any cline-neutral">&nbsp;</span>
704
+ <span class="cline-any cline-yes">64x</span>
705
705
  <span class="cline-any cline-neutral">&nbsp;</span>
706
- <span class="cline-any cline-yes">53x</span>
707
- <span class="cline-any cline-yes">53x</span>
708
- <span class="cline-any cline-yes">53x</span>
709
- <span class="cline-any cline-yes">53x</span>
706
+ <span class="cline-any cline-yes">64x</span>
707
+ <span class="cline-any cline-yes">64x</span>
708
+ <span class="cline-any cline-yes">64x</span>
709
+ <span class="cline-any cline-yes">64x</span>
710
710
  <span class="cline-any cline-neutral">&nbsp;</span>
711
- <span class="cline-any cline-yes">53x</span>
711
+ <span class="cline-any cline-yes">64x</span>
712
712
  <span class="cline-any cline-neutral">&nbsp;</span>
713
713
  <span class="cline-any cline-neutral">&nbsp;</span>
714
- <span class="cline-any cline-yes">53x</span>
714
+ <span class="cline-any cline-yes">64x</span>
715
715
  <span class="cline-any cline-neutral">&nbsp;</span>
716
716
  <span class="cline-any cline-neutral">&nbsp;</span>
717
717
  <span class="cline-any cline-neutral">&nbsp;</span>
718
- <span class="cline-any cline-yes">53x</span>
719
- <span class="cline-any cline-yes">53x</span>
718
+ <span class="cline-any cline-yes">64x</span>
719
+ <span class="cline-any cline-yes">64x</span>
720
720
  <span class="cline-any cline-neutral">&nbsp;</span>
721
721
  <span class="cline-any cline-neutral">&nbsp;</span>
722
722
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -1201,8 +1201,8 @@
1201
1201
  <span class="cline-any cline-neutral">&nbsp;</span>
1202
1202
  <span class="cline-any cline-neutral">&nbsp;</span>
1203
1203
  <span class="cline-any cline-neutral">&nbsp;</span>
1204
- <span class="cline-any cline-yes">72x</span>
1205
- <span class="cline-any cline-yes">72x</span>
1204
+ <span class="cline-any cline-yes">73x</span>
1205
+ <span class="cline-any cline-yes">73x</span>
1206
1206
  <span class="cline-any cline-neutral">&nbsp;</span>
1207
1207
  <span class="cline-any cline-neutral">&nbsp;</span>
1208
1208
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -1324,7 +1324,7 @@
1324
1324
  <span class="cline-any cline-neutral">&nbsp;</span>
1325
1325
  <span class="cline-any cline-neutral">&nbsp;</span>
1326
1326
  <span class="cline-any cline-neutral">&nbsp;</span>
1327
- <span class="cline-any cline-yes">53x</span>
1327
+ <span class="cline-any cline-yes">241x</span>
1328
1328
  <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import { Knex, knex } from "knex"
1329
1329
  import {
1330
1330
  Operation,
@@ -1419,14 +1419,14 @@ function generateSelectStatement(
1419
1419
  knex: Knex
1420
1420
  ): (string | Knex.Raw)[] {
1421
1421
  const { resource, meta } = json
1422
- const schema = <span class="branch-1 cbranch-no" title="branch not covered" >meta?.table<span class="branch-1 cbranch-no" title="branch not covered" >?</span>.schema</span>
1422
+ const schema = meta?.table?.schema
1423
1423
  return resource!.fields.map(field =&gt; {
1424
1424
  const fieldNames = field.split(/\./g)
1425
1425
  const tableName = fieldNames[0]
1426
1426
  const columnName = fieldNames[1]
1427
1427
  <span class="missing-if-branch" title="if path not taken" >I</span>if (
1428
1428
  columnName &amp;&amp;
1429
- <span class="branch-1 cbranch-no" title="branch not covered" > schema?.[columnName] </span>&amp;&amp;
1429
+ schema?.[columnName] &amp;&amp;
1430
1430
  <span class="branch-2 cbranch-no" title="branch not covered" > knex.client.config.client === SqlClient.POSTGRES</span>
1431
1431
  ) {
1432
1432
  const externalType = <span class="cstat-no" title="statement not covered" >schema[columnName].externalType</span>
@@ -1484,9 +1484,9 @@ class InternalBuilder {
1484
1484
  }
1485
1485
  &nbsp;
1486
1486
  const contains = (mode: object, any: boolean = false) =&gt; {
1487
- const fnc = allOr ? <span class="branch-0 cbranch-no" title="branch not covered" >"orWhere" </span>: "where"
1487
+ const fnc = allOr ? <span class="branch-0 cbranch-no" title="branch not covered" >"orWhere" : "</span>where"
1488
1488
  const rawFnc = `${fnc}Raw`
1489
- const not = mode === filters<span class="branch-0 cbranch-no" title="branch not covered" >?.n</span>otContains ? "NOT " : ""
1489
+ const not = mode === filters?.notContains ? "NOT " : ""
1490
1490
  function stringifyArray(value: Array&lt;any&gt;, quoteStyle = '"'): string {
1491
1491
  for (let i in value) {
1492
1492
  if (typeof value[i] === "string") {
@@ -1519,7 +1519,7 @@ class InternalBuilder {
1519
1519
  )
1520
1520
  })
1521
1521
  } else {
1522
- const andOr = mode === filters<span class="branch-0 cbranch-no" title="branch not covered" >?.c</span>ontainsAny ? " OR " : " AND "
1522
+ const andOr = mode === filters?.containsAny ? " OR " : " AND "
1523
1523
  iterate(mode, (key: string, value: Array&lt;any&gt;) =&gt; {
1524
1524
  let statement = ""
1525
1525
  for (let i in value) {
@@ -1552,7 +1552,7 @@ class InternalBuilder {
1552
1552
  }
1553
1553
  if (filters.string) {
1554
1554
  iterate(filters.string, (key, value) =&gt; {
1555
- const fnc = allOr ? <span class="branch-0 cbranch-no" title="branch not covered" >"orWhere" </span>: "where"
1555
+ const fnc = allOr ? <span class="branch-0 cbranch-no" title="branch not covered" >"orWhere" : "</span>where"
1556
1556
  // postgres supports ilike, nothing else does
1557
1557
  if (this.client === SqlClient.POSTGRES) {
1558
1558
  query = query[fnc](key, "ilike", `${value}%`)
@@ -1572,15 +1572,15 @@ class InternalBuilder {
1572
1572
  iterate(filters.range, (key, value) =&gt; {
1573
1573
  if (value.low &amp;&amp; value.high) {
1574
1574
  // Use a between operator if we have 2 valid range values
1575
- const fnc = allOr ? <span class="branch-0 cbranch-no" title="branch not covered" >"orWhereBetween" </span>: "whereBetween"
1575
+ const fnc = allOr ? <span class="branch-0 cbranch-no" title="branch not covered" >"orWhereBetween" : "</span>whereBetween"
1576
1576
  query = query[fnc](key, [value.low, value.high])
1577
1577
  } else if (value.low) {
1578
1578
  // Use just a single greater than operator if we only have a low
1579
- const fnc = allOr ? <span class="branch-0 cbranch-no" title="branch not covered" >"orWhere" </span>: "where"
1579
+ const fnc = allOr ? <span class="branch-0 cbranch-no" title="branch not covered" >"orWhere" : "</span>where"
1580
1580
  query = query[fnc](key, "&gt;", value.low)
1581
1581
  } else if (value.high) {
1582
1582
  // Use just a single less than operator if we only have a high
1583
- const fnc = allOr ? <span class="branch-0 cbranch-no" title="branch not covered" >"orWhere" </span>: "where"
1583
+ const fnc = allOr ? <span class="branch-0 cbranch-no" title="branch not covered" >"orWhere" : "</span>where"
1584
1584
  query = query[fnc](key, "&lt;", value.high)
1585
1585
  }
1586
1586
  })
@@ -1598,13 +1598,13 @@ class InternalBuilder {
1598
1598
  })
1599
1599
  }
1600
1600
  <span class="missing-if-branch" title="if path not taken" >I</span>if (filters.empty) {
1601
- <span class="cstat-no" title="statement not covered" > iterate(filters.empty, <span class="fstat-no" title="function not covered" >key </span>=&gt; {</span>
1601
+ <span class="cstat-no" title="statement not covered" > iterate(filters.empty, <span class="fstat-no" title="function not covered" >key =&gt; {</span></span>
1602
1602
  const fnc = <span class="cstat-no" title="statement not covered" >allOr ? "orWhereNull" : "whereNull"</span>
1603
1603
  <span class="cstat-no" title="statement not covered" > query = query[fnc](key)</span>
1604
1604
  })
1605
1605
  }
1606
1606
  <span class="missing-if-branch" title="if path not taken" >I</span>if (filters.notEmpty) {
1607
- <span class="cstat-no" title="statement not covered" > iterate(filters.notEmpty, <span class="fstat-no" title="function not covered" >key </span>=&gt; {</span>
1607
+ <span class="cstat-no" title="statement not covered" > iterate(filters.notEmpty, <span class="fstat-no" title="function not covered" >key =&gt; {</span></span>
1608
1608
  const fnc = <span class="cstat-no" title="statement not covered" >allOr ? "orWhereNotNull" : "whereNotNull"</span>
1609
1609
  <span class="cstat-no" title="statement not covered" > query = query[fnc](key)</span>
1610
1610
  })
@@ -1623,13 +1623,13 @@ class InternalBuilder {
1623
1623
  &nbsp;
1624
1624
  addSorting(query: KnexQuery, json: QueryJson): KnexQuery {
1625
1625
  let { sort, paginate } = json
1626
- const table = json.meta<span class="branch-1 cbranch-no" title="branch not covered" >?.table</span>
1626
+ const table = json.meta?.table
1627
1627
  if (sort) {
1628
1628
  for (let [key, value] of Object.entries(sort)) {
1629
1629
  const direction = <span class="cstat-no" title="statement not covered" >value === SortDirection.ASCENDING ? "asc" : "desc"</span>
1630
1630
  <span class="cstat-no" title="statement not covered" > query = query.orderBy(`${table?.name}.${key}`, direction)</span>
1631
1631
  }
1632
- } else <span class="missing-if-branch" title="if path not taken" >I</span>if (this.client === SqlClient.MS_SQL &amp;&amp; <span class="branch-1 cbranch-no" title="branch not covered" >paginate?.limit)</span> {
1632
+ } else <span class="missing-if-branch" title="if path not taken" >I</span>if (this.client === SqlClient.MS_SQL &amp;&amp; <span class="branch-1 cbranch-no" title="branch not covered" >paginate?.limit) {</span>
1633
1633
  // @ts-ignore
1634
1634
  <span class="cstat-no" title="statement not covered" > query = query.orderBy(`${table?.name}.${table?.primary[0]}`)</span>
1635
1635
  }
@@ -1727,7 +1727,7 @@ class InternalBuilder {
1727
1727
  }
1728
1728
  }
1729
1729
  &nbsp;
1730
- <span class="fstat-no" title="function not covered" > bulkCreate(</span>knex: Knex, json: QueryJson): KnexQuery {
1730
+ <span class="fstat-no" title="function not covered" > bulkCreate(k</span>nex: Knex, json: QueryJson): KnexQuery {
1731
1731
  const { endpoint, body } = <span class="cstat-no" title="statement not covered" >json</span>
1732
1732
  let query: KnexQuery = <span class="cstat-no" title="statement not covered" >knex(endpoint.entityId)</span>
1733
1733
  <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (endpoint.schema) {</span>
@@ -1736,7 +1736,7 @@ class InternalBuilder {
1736
1736
  <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (!Array.isArray(body)) {</span>
1737
1737
  <span class="cstat-no" title="statement not covered" > return query</span>
1738
1738
  }
1739
- const parsedBody = <span class="cstat-no" title="statement not covered" >body.map(<span class="fstat-no" title="function not covered" >row </span>=&gt; <span class="cstat-no" title="statement not covered" >parseBody(row))</span></span>
1739
+ const parsedBody = <span class="cstat-no" title="statement not covered" >body.map(<span class="fstat-no" title="function not covered" >row =&gt; <span class="cstat-no" title="statement not covered" >p</span>arseBody(row))</span></span>
1740
1740
  <span class="cstat-no" title="statement not covered" > return query.insert(parsedBody)</span>
1741
1741
  }
1742
1742
  &nbsp;
@@ -1875,7 +1875,7 @@ class SqlQueryBuilder extends SqlTableQueryBuilder {
1875
1875
  return query.toSQL().toNative()
1876
1876
  }
1877
1877
  &nbsp;
1878
- async <span class="fstat-no" title="function not covered" >getReturningRow(</span>queryFn: Function, json: QueryJson) {
1878
+ <span class="fstat-no" title="function not covered" > async g</span>etReturningRow(queryFn: Function, json: QueryJson) {
1879
1879
  <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (!json.extra || !json.extra.idFilter) {</span>
1880
1880
  <span class="cstat-no" title="statement not covered" > return {}</span>
1881
1881
  }
@@ -1898,7 +1898,7 @@ class SqlQueryBuilder extends SqlTableQueryBuilder {
1898
1898
  &nbsp;
1899
1899
  // when creating if an ID has been inserted need to make sure
1900
1900
  // the id filter is enriched with it before trying to retrieve the row
1901
- <span class="fstat-no" title="function not covered" > checkLookupKeys(</span>id: any, json: QueryJson) {
1901
+ <span class="fstat-no" title="function not covered" > checkLookupKeys(i</span>d: any, json: QueryJson) {
1902
1902
  <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (!id || !json.meta?.table || !json.meta.table.primary) {</span>
1903
1903
  <span class="cstat-no" title="statement not covered" > return json</span>
1904
1904
  }
@@ -1914,7 +1914,7 @@ class SqlQueryBuilder extends SqlTableQueryBuilder {
1914
1914
  }
1915
1915
  &nbsp;
1916
1916
  // this function recreates the returning functionality of postgres
1917
- async <span class="fstat-no" title="function not covered" >queryWithReturning(</span>
1917
+ <span class="fstat-no" title="function not covered" > async q</span>ueryWithReturning(
1918
1918
  json: QueryJson,
1919
1919
  queryFn: Function,
1920
1920
  processFn: Function = <span class="fstat-no" title="function not covered" ><span class="branch-0 cbranch-no" title="branch not covered" >(r</span>esult: any) =&gt; <span class="cstat-no" title="statement not covered" >result</span></span>
@@ -1963,7 +1963,7 @@ export default SqlQueryBuilder
1963
1963
  <div class='footer quiet pad2 space-top1 center small'>
1964
1964
  Code coverage generated by
1965
1965
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
1966
- at Thu Feb 02 2023 11:56:48 GMT+0000 (Coordinated Universal Time)
1966
+ at Mon Feb 06 2023 09:24:58 GMT+0000 (Coordinated Universal Time)
1967
1967
  </div>
1968
1968
  <script src="../../../prettify.js"></script>
1969
1969
  <script>
@@ -23,23 +23,23 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">10.58% </span>
26
+ <span class="strong">10.46% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>9/85</span>
28
+ <span class='fraction'>9/86</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
33
  <span class="strong">0% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>0/80</span>
35
+ <span class='fraction'>0/64</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">18.75% </span>
40
+ <span class="strong">17.64% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>3/16</span>
42
+ <span class='fraction'>3/17</span>
43
43
  </div>
44
44
 
45
45
 
@@ -265,12 +265,12 @@
265
265
  <a name='L200'></a><a href='#L200'>200</a>
266
266
  <a name='L201'></a><a href='#L201'>201</a>
267
267
  <a name='L202'></a><a href='#L202'>202</a>
268
- <a name='L203'></a><a href='#L203'>203</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">53x</span>
269
- <span class="cline-any cline-yes">53x</span>
270
- <span class="cline-any cline-yes">53x</span>
268
+ <a name='L203'></a><a href='#L203'>203</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">64x</span>
269
+ <span class="cline-any cline-yes">64x</span>
270
+ <span class="cline-any cline-yes">64x</span>
271
271
  <span class="cline-any cline-neutral">&nbsp;</span>
272
272
  <span class="cline-any cline-neutral">&nbsp;</span>
273
- <span class="cline-any cline-yes">53x</span>
273
+ <span class="cline-any cline-yes">64x</span>
274
274
  <span class="cline-any cline-neutral">&nbsp;</span>
275
275
  <span class="cline-any cline-neutral">&nbsp;</span>
276
276
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -414,7 +414,7 @@
414
414
  <span class="cline-any cline-neutral">&nbsp;</span>
415
415
  <span class="cline-any cline-neutral">&nbsp;</span>
416
416
  <span class="cline-any cline-neutral">&nbsp;</span>
417
- <span class="cline-any cline-yes">72x</span>
417
+ <span class="cline-any cline-yes">73x</span>
418
418
  <span class="cline-any cline-neutral">&nbsp;</span>
419
419
  <span class="cline-any cline-neutral">&nbsp;</span>
420
420
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -465,14 +465,14 @@
465
465
  <span class="cline-any cline-neutral">&nbsp;</span>
466
466
  <span class="cline-any cline-neutral">&nbsp;</span>
467
467
  <span class="cline-any cline-neutral">&nbsp;</span>
468
- <span class="cline-any cline-yes">53x</span>
469
- <span class="cline-any cline-yes">53x</span>
468
+ <span class="cline-any cline-yes">64x</span>
469
+ <span class="cline-any cline-yes">64x</span>
470
470
  <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import { Knex, knex } from "knex"
471
471
  import { Operation, QueryJson, RenameColumn, Table } from "@budibase/types"
472
472
  import { breakExternalTableId } from "../utils"
473
473
  import SchemaBuilder = Knex.SchemaBuilder
474
474
  import CreateTableBuilder = Knex.CreateTableBuilder
475
- const { FieldTypes, RelationshipTypes } = require("../../constants")
475
+ import { FieldTypes, RelationshipTypes } from "../../constants"
476
476
  &nbsp;
477
477
  function <span class="fstat-no" title="function not covered" >generateSchema(</span>
478
478
  schema: CreateTableBuilder,
@@ -484,17 +484,17 @@ function <span class="fstat-no" title="function not covered" >generateSchema(</s
484
484
  let primaryKey = <span class="cstat-no" title="statement not covered" >table &amp;&amp; table.primary ? table.primary[0] : null</span>
485
485
  const columns = <span class="cstat-no" title="statement not covered" >Object.values(table.schema)</span>
486
486
  // all columns in a junction table will be meta
487
- let metaCols = <span class="cstat-no" title="statement not covered" >columns.filter(<span class="fstat-no" title="function not covered" >col </span>=&gt; <span class="cstat-no" title="statement not covered" >col.meta)</span></span>
487
+ let metaCols = <span class="cstat-no" title="statement not covered" >columns.filter(<span class="fstat-no" title="function not covered" >col =&gt; <span class="cstat-no" title="statement not covered" >c</span>ol.meta)</span></span>
488
488
  let isJunction = <span class="cstat-no" title="statement not covered" >metaCols.length === columns.length</span>
489
489
  // can't change primary once its set for now
490
490
  <span class="cstat-no" title="statement not covered" > if (primaryKey &amp;&amp; !oldTable &amp;&amp; !isJunction) {</span>
491
491
  <span class="cstat-no" title="statement not covered" > schema.increments(primaryKey).primary()</span>
492
492
  } else <span class="cstat-no" title="statement not covered" ><span class="missing-if-branch" title="if path not taken" >I</span>if (!oldTable &amp;&amp; isJunction) {</span>
493
- <span class="cstat-no" title="statement not covered" > schema.primary(metaCols.map(<span class="fstat-no" title="function not covered" >col </span>=&gt; <span class="cstat-no" title="statement not covered" >col.name)</span>)</span>
493
+ <span class="cstat-no" title="statement not covered" > schema.primary(metaCols.map(<span class="fstat-no" title="function not covered" >col =&gt; <span class="cstat-no" title="statement not covered" >c</span>ol.name)</span>)</span>
494
494
  }
495
495
  &nbsp;
496
496
  // check if any columns need added
497
- const foreignKeys = <span class="cstat-no" title="statement not covered" >Object.values(table.schema).map(<span class="fstat-no" title="function not covered" >col </span>=&gt; <span class="cstat-no" title="statement not covered" >col.foreignKey)</span></span>
497
+ const foreignKeys = <span class="cstat-no" title="statement not covered" >Object.values(table.schema).map(<span class="fstat-no" title="function not covered" >col =&gt; <span class="cstat-no" title="statement not covered" >c</span>ol.foreignKey)</span></span>
498
498
  <span class="cstat-no" title="statement not covered" > for (let [key, column] of Object.entries(table.schema)) {</span>
499
499
  // skip things that are already correct
500
500
  const oldColumn = <span class="cstat-no" title="statement not covered" >oldTable ? oldTable.schema[key] : null</span>
@@ -571,7 +571,7 @@ function <span class="fstat-no" title="function not covered" >generateSchema(</s
571
571
  table.schema[key] == null
572
572
  )
573
573
  .map(<span class="fstat-no" title="function not covered" >([</span>key]) =&gt; <span class="cstat-no" title="statement not covered" >key)</span>
574
- <span class="cstat-no" title="statement not covered" > deletedColumns.forEach(<span class="fstat-no" title="function not covered" >key </span>=&gt; {</span>
574
+ <span class="cstat-no" title="statement not covered" > deletedColumns.forEach(<span class="fstat-no" title="function not covered" >key =&gt; {</span></span>
575
575
  <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (renamed?.old === key) {</span>
576
576
  <span class="cstat-no" title="statement not covered" > return</span>
577
577
  }
@@ -590,7 +590,7 @@ function <span class="fstat-no" title="function not covered" >buildCreateTable(<
590
590
  table: Table,
591
591
  tables: Record&lt;string, Table&gt;
592
592
  ): SchemaBuilder {
593
- <span class="cstat-no" title="statement not covered" > return knex.createTable(table.name, <span class="fstat-no" title="function not covered" >schema </span>=&gt; {</span>
593
+ <span class="cstat-no" title="statement not covered" > return knex.createTable(table.name, <span class="fstat-no" title="function not covered" >schema =&gt; {</span></span>
594
594
  <span class="cstat-no" title="statement not covered" > generateSchema(schema, table, tables)</span>
595
595
  })
596
596
  }
@@ -602,12 +602,12 @@ function <span class="fstat-no" title="function not covered" >buildUpdateTable(<
602
602
  oldTable: Table,
603
603
  renamed: RenameColumn
604
604
  ): SchemaBuilder {
605
- <span class="cstat-no" title="statement not covered" > return knex.alterTable(table.name, <span class="fstat-no" title="function not covered" >schema </span>=&gt; {</span>
605
+ <span class="cstat-no" title="statement not covered" > return knex.alterTable(table.name, <span class="fstat-no" title="function not covered" >schema =&gt; {</span></span>
606
606
  <span class="cstat-no" title="statement not covered" > generateSchema(schema, table, tables, oldTable, renamed)</span>
607
607
  })
608
608
  }
609
609
  &nbsp;
610
- function <span class="fstat-no" title="function not covered" >buildDeleteTable(</span>knex: SchemaBuilder, table: Table): SchemaBuilder {
610
+ function <span class="fstat-no" title="function not covered" >buildDeleteTable(k</span>nex: SchemaBuilder, table: Table): SchemaBuilder {
611
611
  <span class="cstat-no" title="statement not covered" > return knex.dropTable(table.name)</span>
612
612
  }
613
613
  &nbsp;
@@ -631,7 +631,7 @@ class SqlTableQueryBuilder {
631
631
  return json.endpoint.operation
632
632
  }
633
633
  &nbsp;
634
- <span class="fstat-no" title="function not covered" > _tableQuery(</span>json: QueryJson): any {
634
+ <span class="fstat-no" title="function not covered" > _tableQuery(j</span>son: QueryJson): any {
635
635
  let client = <span class="cstat-no" title="statement not covered" >knex({ client: this.sqlClient }).schema</span>
636
636
  <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (json?.endpoint?.schema) {</span>
637
637
  <span class="cstat-no" title="statement not covered" > client = client.withSchema(json.endpoint.schema)</span>
@@ -667,7 +667,7 @@ class SqlTableQueryBuilder {
667
667
  }
668
668
  }
669
669
  &nbsp;
670
- export default SqlTableQueryBuilder
670
+ <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >export default S</span></span>qlTableQueryBuilder
671
671
  module.exports = SqlTableQueryBuilder
672
672
  &nbsp;</pre></td></tr></table></pre>
673
673
 
@@ -676,7 +676,7 @@ module.exports = SqlTableQueryBuilder
676
676
  <div class='footer quiet pad2 space-top1 center small'>
677
677
  Code coverage generated by
678
678
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
679
- at Thu Feb 02 2023 11:56:48 GMT+0000 (Coordinated Universal Time)
679
+ at Mon Feb 06 2023 09:24:58 GMT+0000 (Coordinated Universal Time)
680
680
  </div>
681
681
  <script src="../../../prettify.js"></script>
682
682
  <script>
@@ -75,16 +75,16 @@
75
75
  <a name='L10'></a><a href='#L10'>10</a>
76
76
  <a name='L11'></a><a href='#L11'>11</a>
77
77
  <a name='L12'></a><a href='#L12'>12</a>
78
- <a name='L13'></a><a href='#L13'>13</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">53x</span>
78
+ <a name='L13'></a><a href='#L13'>13</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">64x</span>
79
79
  <span class="cline-any cline-neutral">&nbsp;</span>
80
- <span class="cline-any cline-yes">53x</span>
81
- <span class="cline-any cline-yes">135x</span>
80
+ <span class="cline-any cline-yes">137x</span>
81
+ <span class="cline-any cline-yes">137x</span>
82
82
  <span class="cline-any cline-yes">8x</span>
83
83
  <span class="cline-any cline-neutral">&nbsp;</span>
84
84
  <span class="cline-any cline-yes">8x</span>
85
85
  <span class="cline-any cline-yes">8x</span>
86
86
  <span class="cline-any cline-neutral">&nbsp;</span>
87
- <span class="cline-any cline-yes">127x</span>
87
+ <span class="cline-any cline-yes">129x</span>
88
88
  <span class="cline-any cline-neutral">&nbsp;</span>
89
89
  <span class="cline-any cline-neutral">&nbsp;</span>
90
90
  <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">const QUERY_START_REGEX = /\d[0-9]*:/g
@@ -106,7 +106,7 @@ export function removeKeyNumbering(key: any): string {
106
106
  <div class='footer quiet pad2 space-top1 center small'>
107
107
  Code coverage generated by
108
108
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
109
- at Thu Feb 02 2023 11:56:48 GMT+0000 (Coordinated Universal Time)
109
+ at Mon Feb 06 2023 09:24:58 GMT+0000 (Coordinated Universal Time)
110
110
  </div>
111
111
  <script src="../../../prettify.js"></script>
112
112
  <script>