@budibase/server 2.1.43-alpha.6 → 2.1.44

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 (809) hide show
  1. package/__mocks__/aws-sdk.ts +0 -14
  2. package/__mocks__/node-fetch.ts +1 -5
  3. package/builder/assets/index.2d05742a.js +1021 -0
  4. package/builder/assets/index.534f6c29.css +6 -0
  5. package/builder/index.html +2 -2
  6. package/coverage/clover.xml +3857 -10913
  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 -19757
  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 -539
  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/microsoftSqlServer.js +3 -8
  283. package/dist/integrations/oracle.js +1 -8
  284. package/dist/integrations/postgres.js +3 -6
  285. package/dist/integrations/s3.js +1 -157
  286. package/dist/integrations/tests/TestConfiguration.js +1 -0
  287. package/dist/middleware/appInfo.js +9 -14
  288. package/dist/middleware/authorized.js +21 -22
  289. package/dist/middleware/builder.js +40 -41
  290. package/dist/middleware/currentapp.js +37 -39
  291. package/dist/middleware/joi-validator.js +10 -17
  292. package/dist/middleware/publicApi.js +6 -5
  293. package/dist/middleware/resourceId.js +9 -16
  294. package/dist/middleware/selfhost.js +4 -5
  295. package/dist/middleware/utils.js +2 -5
  296. package/dist/migrations/functions/appUrls.js +2 -2
  297. package/dist/migrations/functions/backfill/global.js +1 -1
  298. package/dist/migrations/functions/usageQuotas/syncApps.js +4 -3
  299. package/dist/migrations/functions/usageQuotas/syncRows.js +4 -3
  300. package/dist/migrations/functions/userEmailViewCasing.js +3 -3
  301. package/dist/migrations/index.js +0 -5
  302. package/dist/package.json +45 -11
  303. package/dist/sdk/app/backups/exports.js +2 -1
  304. package/dist/sdk/app/backups/imports.js +3 -2
  305. package/dist/sdk/app/tables/index.js +5 -5
  306. package/dist/startup.js +10 -10
  307. package/dist/tests/utilities/TestConfiguration.js +87 -111
  308. package/dist/tests/utilities/controllers.js +15 -38
  309. package/dist/tests/utilities/structures.js +53 -72
  310. package/dist/threads/automation.js +27 -49
  311. package/dist/threads/query.js +19 -17
  312. package/dist/threads/utils.js +8 -33
  313. package/dist/tsconfig.build.tsbuildinfo +1 -1
  314. package/dist/utilities/budibaseDir.js +2 -4
  315. package/dist/utilities/centralPath.js +7 -14
  316. package/dist/utilities/csvParser.js +21 -27
  317. package/dist/utilities/fileSystem/clientLibrary.js +73 -87
  318. package/dist/utilities/fileSystem/index.js +175 -203
  319. package/dist/utilities/fileSystem/processor.js +3 -8
  320. package/dist/utilities/fileSystem/utilities.js +22 -0
  321. package/dist/utilities/global.js +66 -87
  322. package/dist/utilities/index.js +75 -102
  323. package/dist/utilities/plugins.js +9 -15
  324. package/dist/utilities/queue/inMemoryQueue.js +126 -0
  325. package/dist/utilities/redis.js +65 -100
  326. package/dist/utilities/routing/index.js +23 -27
  327. package/dist/utilities/rowProcessor/index.js +191 -133
  328. package/dist/utilities/rowProcessor/utils.js +26 -35
  329. package/dist/utilities/scriptRunner.js +5 -8
  330. package/dist/utilities/security.js +35 -39
  331. package/dist/utilities/usageQuota/rows.js +49 -56
  332. package/dist/utilities/users.js +28 -31
  333. package/dist/utilities/workerRequests.js +82 -115
  334. package/dist/watch.js +2 -1
  335. package/package.json +46 -12
  336. package/scripts/exportAppTemplate.js +2 -2
  337. package/scripts/integrations/mssql/data/setup.sql +3 -3
  338. package/{src/tests/jestSetup.ts → scripts/jestSetup.js} +2 -11
  339. package/scripts/localdomain.js +6 -34
  340. package/src/api/controllers/{apikeys.ts → apikeys.js} +10 -10
  341. package/src/api/controllers/application.ts +42 -56
  342. package/src/api/controllers/auth.ts +3 -4
  343. package/src/api/controllers/{automation.ts → automation.js} +48 -48
  344. package/src/api/controllers/{cloud.ts → cloud.js} +24 -24
  345. package/src/api/controllers/component.ts +1 -2
  346. package/src/api/controllers/{datasource.ts → datasource.js} +49 -109
  347. package/src/api/controllers/deploy/{Deployment.ts → Deployment.js} +10 -13
  348. package/src/api/controllers/deploy/index.ts +25 -13
  349. package/src/api/controllers/{dev.ts → dev.js} +37 -31
  350. package/src/api/controllers/integration.js +14 -0
  351. package/src/api/controllers/{layout.ts → layout.js} +8 -8
  352. package/src/api/controllers/{metadata.ts → metadata.js} +10 -11
  353. package/src/api/controllers/migrations.js +13 -0
  354. package/src/api/controllers/{permission.ts → permission.js} +46 -49
  355. package/src/api/controllers/plugin/index.ts +5 -4
  356. package/src/api/controllers/plugin/utils.ts +5 -3
  357. package/src/api/controllers/public/applications.ts +9 -15
  358. package/src/api/controllers/public/rows.ts +1 -1
  359. package/src/api/controllers/public/tables.ts +2 -2
  360. package/src/api/controllers/public/utils.ts +2 -2
  361. package/src/api/controllers/query/import/index.ts +3 -2
  362. package/src/api/controllers/query/index.ts +14 -11
  363. package/src/api/controllers/query/{validation.ts → validation.js} +7 -7
  364. package/src/api/controllers/{role.ts → role.js} +25 -21
  365. package/src/api/controllers/{routing.ts → routing.js} +34 -37
  366. package/src/api/controllers/row/ExternalRequest.ts +624 -605
  367. package/src/api/controllers/row/{external.ts → external.js} +62 -79
  368. package/src/api/controllers/row/index.ts +11 -19
  369. package/src/api/controllers/row/{internal.ts → internal.js} +73 -87
  370. package/src/api/controllers/row/{internalSearch.ts → internalSearch.js} +68 -92
  371. package/src/api/controllers/row/{staticFormula.ts → staticFormula.js} +25 -30
  372. package/src/api/controllers/row/{utils.ts → utils.js} +22 -32
  373. package/src/api/controllers/screen.ts +6 -10
  374. package/src/api/controllers/script.js +11 -0
  375. package/src/api/controllers/static/index.ts +16 -14
  376. package/src/api/controllers/table/{bulkFormula.ts → bulkFormula.js} +25 -39
  377. package/src/api/controllers/table/{external.ts → external.js} +55 -86
  378. package/src/api/controllers/table/{index.ts → index.js} +18 -21
  379. package/src/api/controllers/table/internal.ts +6 -5
  380. package/src/api/controllers/table/utils.ts +21 -26
  381. package/src/api/controllers/{templates.ts → templates.js} +7 -10
  382. package/src/api/controllers/{user.ts → user.js} +49 -47
  383. package/src/api/controllers/view/{exporters.ts → exporters.js} +3 -5
  384. package/src/api/controllers/view/{index.ts → index.js} +27 -36
  385. package/src/api/controllers/view/{utils.ts → utils.js} +20 -26
  386. package/src/api/controllers/view/{viewBuilder.ts → viewBuilder.js} +11 -25
  387. package/src/api/controllers/webhook.ts +1 -1
  388. package/src/api/{index.ts → index.js} +22 -15
  389. package/src/api/routes/analytics.js +9 -0
  390. package/src/api/routes/apikeys.js +12 -0
  391. package/src/api/routes/application.ts +9 -17
  392. package/src/api/routes/auth.ts +2 -2
  393. package/src/api/routes/automation.js +85 -0
  394. package/src/api/routes/backup.ts +4 -8
  395. package/src/api/routes/cloud.js +14 -0
  396. package/src/api/routes/component.js +14 -0
  397. package/src/api/routes/datasource.js +51 -0
  398. package/src/api/routes/deploy.js +17 -0
  399. package/src/api/routes/dev.js +26 -0
  400. package/src/api/routes/integration.js +12 -0
  401. package/src/api/routes/layout.js +16 -0
  402. package/src/api/routes/{metadata.ts → metadata.js} +13 -13
  403. package/src/api/routes/migrations.js +14 -0
  404. package/src/api/routes/permission.js +33 -0
  405. package/src/api/routes/plugin.ts +6 -14
  406. package/src/api/routes/public/index.ts +14 -11
  407. package/src/api/routes/public/tests/compare.spec.js +1 -1
  408. package/src/api/routes/{query.ts → query.js} +22 -19
  409. package/src/api/routes/role.js +15 -0
  410. package/src/api/routes/routing.js +14 -0
  411. package/src/api/routes/row.ts +15 -13
  412. package/src/api/routes/screen.js +18 -0
  413. package/src/api/routes/script.js +10 -0
  414. package/src/api/routes/static.ts +10 -7
  415. package/src/api/routes/{table.ts → table.js} +13 -10
  416. package/src/api/routes/templates.js +16 -0
  417. package/src/api/routes/tests/analytics.spec.js +1 -1
  418. package/src/api/routes/tests/backup.spec.js +1 -9
  419. package/src/api/routes/tests/deployment.spec.ts +1 -1
  420. package/src/api/routes/tests/permissions.spec.js +1 -2
  421. package/src/api/routes/tests/query.spec.js +10 -15
  422. package/src/api/routes/tests/role.spec.js +9 -7
  423. package/src/api/routes/tests/routing.spec.js +1 -2
  424. package/src/api/routes/tests/row.spec.js +4 -3
  425. package/src/api/routes/tests/static.spec.js +2 -2
  426. package/src/api/routes/tests/table.spec.js +36 -40
  427. package/src/api/routes/tests/user.spec.js +1 -2
  428. package/src/api/routes/tests/utilities/TestFunctions.ts +8 -6
  429. package/src/api/routes/tests/utilities/{index.ts → index.js} +12 -12
  430. package/src/api/routes/tests/view.spec.js +3 -3
  431. package/src/api/routes/user.js +53 -0
  432. package/src/api/routes/utils/{validators.ts → validators.js} +37 -33
  433. package/src/api/routes/view.js +31 -0
  434. package/src/api/routes/webhook.ts +2 -2
  435. package/src/app.ts +14 -15
  436. package/src/automations/{actions.ts → actions.js} +23 -26
  437. package/src/automations/{automationUtils.ts → automationUtils.js} +12 -13
  438. package/src/automations/bullboard.js +39 -0
  439. package/src/automations/index.js +29 -0
  440. package/src/automations/steps/{bash.ts → bash.js} +8 -13
  441. package/src/automations/steps/createRow.ts +3 -8
  442. package/src/automations/steps/{delay.ts → delay.js} +4 -9
  443. package/src/automations/steps/deleteRow.ts +3 -8
  444. package/src/automations/steps/{discord.ts → discord.js} +5 -10
  445. package/src/automations/steps/{executeQuery.ts → executeQuery.js} +7 -12
  446. package/src/automations/steps/{executeScript.ts → executeScript.js} +7 -17
  447. package/src/automations/steps/{filter.ts → filter.js} +9 -12
  448. package/src/automations/steps/{integromat.ts → integromat.js} +5 -10
  449. package/src/automations/steps/{loop.ts → loop.js} +2 -4
  450. package/src/automations/steps/{outgoingWebhook.ts → outgoingWebhook.js} +13 -18
  451. package/src/automations/steps/{queryRows.ts → queryRows.js} +36 -48
  452. package/src/automations/steps/{sendSmtpEmail.ts → sendSmtpEmail.js} +5 -10
  453. package/src/automations/steps/{serverLog.ts → serverLog.js} +3 -9
  454. package/src/automations/steps/{slack.ts → slack.js} +5 -10
  455. package/src/automations/steps/{updateRow.ts → updateRow.js} +7 -12
  456. package/src/automations/steps/{utils.ts → utils.js} +4 -10
  457. package/src/automations/steps/{zapier.ts → zapier.js} +5 -11
  458. package/src/automations/tests/updateRow.spec.js +1 -0
  459. package/src/automations/tests/utilities/index.js +51 -0
  460. package/src/automations/triggerInfo/{app.ts → app.js} +2 -7
  461. package/src/automations/triggerInfo/{cron.ts → cron.js} +2 -7
  462. package/src/automations/triggerInfo/index.js +15 -0
  463. package/src/automations/triggerInfo/{rowDeleted.ts → rowDeleted.js} +2 -7
  464. package/src/automations/triggerInfo/{rowSaved.ts → rowSaved.js} +2 -7
  465. package/src/automations/triggerInfo/{rowUpdated.ts → rowUpdated.js} +2 -7
  466. package/src/automations/triggerInfo/{webhook.ts → webhook.js} +2 -7
  467. package/src/automations/{triggers.ts → triggers.js} +26 -30
  468. package/src/automations/utils.ts +12 -9
  469. package/src/constants/index.js +208 -0
  470. package/src/constants/{layouts.ts → layouts.js} +9 -3
  471. package/src/constants/screens.js +46 -0
  472. package/src/db/{dynamoClient.ts → dynamoClient.js} +19 -39
  473. package/src/db/{inMemoryView.ts → inMemoryView.js} +9 -15
  474. package/src/db/index.js +16 -0
  475. package/src/db/linkedRows/{LinkController.ts → LinkController.js} +85 -64
  476. package/src/db/linkedRows/{index.ts → index.js} +38 -43
  477. package/src/db/linkedRows/{linkUtils.ts → linkUtils.js} +24 -33
  478. package/src/db/{newid.ts → newid.js} +1 -1
  479. package/src/db/tests/linkController.spec.js +57 -73
  480. package/src/db/tests/linkTests.spec.js +14 -17
  481. package/src/db/{utils.ts → utils.js} +93 -77
  482. package/src/db/views/{staticViews.ts → staticViews.js} +13 -20
  483. package/src/{environment.ts → environment.js} +7 -11
  484. package/src/events/{AutomationEmitter.ts → AutomationEmitter.js} +7 -12
  485. package/src/events/{BudibaseEmitter.ts → index.js} +8 -7
  486. package/src/events/utils.js +38 -0
  487. package/src/integrations/base/sql.ts +1 -1
  488. package/src/integrations/base/sqlTable.ts +1 -1
  489. package/src/integrations/elasticsearch.ts +2 -32
  490. package/src/integrations/googlesheets.ts +7 -5
  491. package/src/integrations/index.ts +41 -45
  492. package/src/integrations/microsoftSqlServer.ts +12 -14
  493. package/src/integrations/mysql.ts +3 -4
  494. package/src/integrations/oracle.ts +46 -17
  495. package/src/integrations/postgres.ts +2 -8
  496. package/src/integrations/s3.ts +3 -179
  497. package/src/integrations/tests/s3.spec.ts +1 -85
  498. package/src/integrations/utils.ts +2 -6
  499. package/src/middleware/appInfo.js +19 -0
  500. package/src/middleware/authorized.ts +28 -21
  501. package/src/middleware/{builder.ts → builder.js} +15 -17
  502. package/src/middleware/{currentapp.ts → currentapp.js} +39 -42
  503. package/src/middleware/{joi-validator.ts → joi-validator.js} +8 -9
  504. package/src/middleware/publicApi.js +21 -0
  505. package/src/middleware/{resourceId.ts → resourceId.js} +11 -16
  506. package/src/middleware/{selfhost.ts → selfhost.js} +2 -4
  507. package/src/middleware/tests/authorized.spec.js +6 -5
  508. package/src/middleware/tests/currentapp.spec.js +63 -118
  509. package/src/middleware/{utils.ts → utils.js} +1 -3
  510. package/src/migrations/functions/appUrls.ts +2 -2
  511. package/src/migrations/functions/backfill/app/tables.ts +5 -2
  512. package/src/migrations/functions/backfill/global.ts +1 -1
  513. package/src/migrations/functions/tests/appUrls.spec.js +4 -4
  514. package/src/migrations/functions/tests/userEmailViewCasing.spec.js +9 -14
  515. package/src/migrations/functions/usageQuotas/syncApps.ts +4 -3
  516. package/src/migrations/functions/usageQuotas/syncRows.ts +5 -4
  517. package/src/migrations/functions/usageQuotas/tests/syncRows.spec.ts +7 -7
  518. package/src/migrations/functions/userEmailViewCasing.ts +3 -3
  519. package/src/migrations/index.ts +0 -9
  520. package/src/migrations/tests/index.spec.ts +1 -1
  521. package/src/module.d.ts +14 -0
  522. package/src/sdk/app/backups/exports.ts +3 -5
  523. package/src/sdk/app/backups/imports.ts +14 -7
  524. package/src/sdk/app/backups/statistics.ts +18 -9
  525. package/src/sdk/app/tables/index.ts +8 -7
  526. package/src/startup.ts +5 -5
  527. package/src/tests/utilities/{TestConfiguration.ts → TestConfiguration.js} +78 -111
  528. package/src/tests/utilities/controllers.js +16 -0
  529. package/src/tests/utilities/{index.ts → index.js} +2 -2
  530. package/src/tests/utilities/{structures.ts → structures.js} +36 -41
  531. package/src/threads/automation.ts +19 -18
  532. package/src/threads/query.ts +16 -11
  533. package/src/threads/utils.ts +5 -4
  534. package/src/utilities/budibaseDir.js +3 -0
  535. package/src/utilities/{centralPath.ts → centralPath.js} +3 -3
  536. package/src/utilities/{csvParser.ts → csvParser.js} +26 -42
  537. package/src/utilities/fileSystem/{clientLibrary.ts → clientLibrary.js} +20 -20
  538. package/src/utilities/fileSystem/{index.ts → index.js} +65 -61
  539. package/src/utilities/fileSystem/{processor.ts → processor.js} +5 -3
  540. package/src/utilities/fileSystem/utilities.js +36 -0
  541. package/src/utilities/global.js +127 -0
  542. package/src/utilities/{index.ts → index.js} +32 -40
  543. package/src/utilities/{plugins.ts → plugins.js} +4 -5
  544. package/src/utilities/queue/inMemoryQueue.js +122 -0
  545. package/src/utilities/{redis.ts → redis.js} +20 -21
  546. package/src/utilities/routing/index.js +25 -0
  547. package/src/utilities/rowProcessor/{index.ts → index.js} +144 -67
  548. package/src/utilities/rowProcessor/{utils.ts → utils.js} +15 -19
  549. package/src/utilities/{scriptRunner.ts → scriptRunner.js} +4 -8
  550. package/src/utilities/security.js +71 -0
  551. package/src/utilities/{statusCodes.ts → statusCodes.js} +1 -1
  552. package/src/utilities/usageQuota/{rows.ts → rows.js} +18 -14
  553. package/src/utilities/usageQuota/{usageQuoteReset.ts → usageQuoteReset.js} +1 -1
  554. package/src/utilities/{users.ts → users.js} +13 -11
  555. package/src/utilities/{workerRequests.ts → workerRequests.js} +38 -43
  556. package/src/watch.ts +3 -2
  557. package/tsconfig.build.json +2 -1
  558. package/tsconfig.json +1 -3
  559. package/builder/assets/index.0c44dac3.css +0 -6
  560. package/builder/assets/index.e19dcc8e.js +0 -1021
  561. package/coverage/lcov-report/src/api/controllers/analytics.ts.html +0 -190
  562. package/coverage/lcov-report/src/api/controllers/application.ts.html +0 -2038
  563. package/coverage/lcov-report/src/api/controllers/auth.ts.html +0 -301
  564. package/coverage/lcov-report/src/api/controllers/backup.ts.html +0 -148
  565. package/coverage/lcov-report/src/api/controllers/component.ts.html +0 -259
  566. package/coverage/lcov-report/src/api/controllers/deploy/Deployment.ts.html +0 -259
  567. package/coverage/lcov-report/src/api/controllers/deploy/index.html +0 -131
  568. package/coverage/lcov-report/src/api/controllers/deploy/index.ts.html +0 -730
  569. package/coverage/lcov-report/src/api/controllers/index.html +0 -431
  570. package/coverage/lcov-report/src/api/controllers/integration.ts.html +0 -124
  571. package/coverage/lcov-report/src/api/controllers/plugin/file.ts.html +0 -130
  572. package/coverage/lcov-report/src/api/controllers/plugin/github.ts.html +0 -310
  573. package/coverage/lcov-report/src/api/controllers/plugin/index.html +0 -206
  574. package/coverage/lcov-report/src/api/controllers/plugin/index.ts.html +0 -484
  575. package/coverage/lcov-report/src/api/controllers/plugin/npm.ts.html +0 -253
  576. package/coverage/lcov-report/src/api/controllers/plugin/uploaders.ts.html +0 -97
  577. package/coverage/lcov-report/src/api/controllers/plugin/url.ts.html +0 -121
  578. package/coverage/lcov-report/src/api/controllers/plugin/utils.ts.html +0 -136
  579. package/coverage/lcov-report/src/api/controllers/public/applications.ts.html +0 -334
  580. package/coverage/lcov-report/src/api/controllers/public/index.html +0 -191
  581. package/coverage/lcov-report/src/api/controllers/public/mapping/applications.ts.html +0 -181
  582. package/coverage/lcov-report/src/api/controllers/public/mapping/index.html +0 -191
  583. package/coverage/lcov-report/src/api/controllers/public/mapping/index.ts.html +0 -124
  584. package/coverage/lcov-report/src/api/controllers/public/mapping/queries.ts.html +0 -202
  585. package/coverage/lcov-report/src/api/controllers/public/mapping/rows.ts.html +0 -178
  586. package/coverage/lcov-report/src/api/controllers/public/mapping/users.ts.html +0 -181
  587. package/coverage/lcov-report/src/api/controllers/public/queries.ts.html +0 -145
  588. package/coverage/lcov-report/src/api/controllers/public/rows.ts.html +0 -328
  589. package/coverage/lcov-report/src/api/controllers/public/tables.ts.html +0 -253
  590. package/coverage/lcov-report/src/api/controllers/public/users.ts.html +0 -268
  591. package/coverage/lcov-report/src/api/controllers/public/utils.ts.html +0 -220
  592. package/coverage/lcov-report/src/api/controllers/query/import/index.html +0 -116
  593. package/coverage/lcov-report/src/api/controllers/query/import/index.ts.html +0 -373
  594. package/coverage/lcov-report/src/api/controllers/query/import/sources/base/index.html +0 -131
  595. package/coverage/lcov-report/src/api/controllers/query/import/sources/base/index.ts.html +0 -379
  596. package/coverage/lcov-report/src/api/controllers/query/import/sources/base/openapi.ts.html +0 -157
  597. package/coverage/lcov-report/src/api/controllers/query/import/sources/curl.ts.html +0 -403
  598. package/coverage/lcov-report/src/api/controllers/query/import/sources/index.html +0 -146
  599. package/coverage/lcov-report/src/api/controllers/query/import/sources/openapi2.ts.html +0 -586
  600. package/coverage/lcov-report/src/api/controllers/query/import/sources/openapi3.ts.html +0 -712
  601. package/coverage/lcov-report/src/api/controllers/query/index.html +0 -131
  602. package/coverage/lcov-report/src/api/controllers/query/index.ts.html +0 -976
  603. package/coverage/lcov-report/src/api/controllers/row/ExternalRequest.ts.html +0 -2269
  604. package/coverage/lcov-report/src/api/controllers/row/index.ts.html +0 -541
  605. package/coverage/lcov-report/src/api/controllers/screen.ts.html +0 -463
  606. package/coverage/lcov-report/src/api/controllers/static/index.html +0 -116
  607. package/coverage/lcov-report/src/api/controllers/static/index.ts.html +0 -694
  608. package/coverage/lcov-report/src/api/controllers/table/index.html +0 -176
  609. package/coverage/lcov-report/src/api/controllers/table/internal.ts.html +0 -661
  610. package/coverage/lcov-report/src/api/controllers/table/utils.ts.html +0 -1255
  611. package/coverage/lcov-report/src/api/controllers/webhook.ts.html +0 -379
  612. package/coverage/lcov-report/src/api/routes/analytics.ts.html +0 -112
  613. package/coverage/lcov-report/src/api/routes/apikeys.ts.html +0 -121
  614. package/coverage/lcov-report/src/api/routes/application.ts.html +0 -223
  615. package/coverage/lcov-report/src/api/routes/auth.ts.html +0 -109
  616. package/coverage/lcov-report/src/api/routes/datasource.ts.html +0 -265
  617. package/coverage/lcov-report/src/api/routes/deploy.ts.html +0 -148
  618. package/coverage/lcov-report/src/api/routes/index.ts.html +0 -289
  619. package/coverage/lcov-report/src/api/routes/migrations.ts.html +0 -127
  620. package/coverage/lcov-report/src/api/routes/plugin.ts.html +0 -151
  621. package/coverage/lcov-report/src/api/routes/public/applications.ts.html +0 -541
  622. package/coverage/lcov-report/src/api/routes/public/index.html +0 -191
  623. package/coverage/lcov-report/src/api/routes/public/index.ts.html +0 -493
  624. package/coverage/lcov-report/src/api/routes/public/middleware/index.html +0 -116
  625. package/coverage/lcov-report/src/api/routes/public/middleware/mapper.ts.html +0 -328
  626. package/coverage/lcov-report/src/api/routes/public/queries.ts.html +0 -313
  627. package/coverage/lcov-report/src/api/routes/public/rows.ts.html +0 -598
  628. package/coverage/lcov-report/src/api/routes/public/tables.ts.html +0 -586
  629. package/coverage/lcov-report/src/api/routes/public/users.ts.html +0 -511
  630. package/coverage/lcov-report/src/api/routes/public/utils/Endpoint.ts.html +0 -238
  631. package/coverage/lcov-report/src/api/routes/public/utils/index.html +0 -116
  632. package/coverage/lcov-report/src/api/routes/role.ts.html +0 -157
  633. package/coverage/lcov-report/src/api/routes/row.ts.html +0 -883
  634. package/coverage/lcov-report/src/api/routes/screen.ts.html +0 -154
  635. package/coverage/lcov-report/src/api/routes/static.ts.html +0 -280
  636. package/coverage/lcov-report/src/api/routes/tests/utilities/TestFunctions.ts.html +0 -550
  637. package/coverage/lcov-report/src/api/routes/tests/utilities/index.html +0 -131
  638. package/coverage/lcov-report/src/api/routes/tests/utilities/index.ts.html +0 -367
  639. package/coverage/lcov-report/src/api/routes/webhook.ts.html +0 -166
  640. package/coverage/lcov-report/src/app.ts.html +0 -406
  641. package/coverage/lcov-report/src/automations/logging/index.html +0 -116
  642. package/coverage/lcov-report/src/automations/logging/index.ts.html +0 -199
  643. package/coverage/lcov-report/src/automations/steps/createRow.ts.html +0 -382
  644. package/coverage/lcov-report/src/automations/steps/deleteRow.ts.html +0 -349
  645. package/coverage/lcov-report/src/automations/steps/index.html +0 -371
  646. package/coverage/lcov-report/src/automations/tests/utilities/index.html +0 -116
  647. package/coverage/lcov-report/src/automations/tests/utilities/index.ts.html +0 -265
  648. package/coverage/lcov-report/src/automations/triggerInfo/app.ts.html +0 -196
  649. package/coverage/lcov-report/src/automations/triggerInfo/index.ts.html +0 -130
  650. package/coverage/lcov-report/src/automations/utils.ts.html +0 -886
  651. package/coverage/lcov-report/src/constants/index.ts.html +0 -697
  652. package/coverage/lcov-report/src/db/defaultData/datasource_bb_default.ts.html +0 -2059
  653. package/coverage/lcov-report/src/db/defaultData/employeeImport.ts.html +0 -541
  654. package/coverage/lcov-report/src/db/defaultData/expensesImport.ts.html +0 -427
  655. package/coverage/lcov-report/src/db/defaultData/index.html +0 -176
  656. package/coverage/lcov-report/src/db/defaultData/inventoryImport.ts.html +0 -403
  657. package/coverage/lcov-report/src/db/defaultData/jobsImport.ts.html +0 -559
  658. package/coverage/lcov-report/src/db/dynamoClient.ts.html +0 -526
  659. package/coverage/lcov-report/src/db/linkedRows/LinkDocument.ts.html +0 -265
  660. package/coverage/lcov-report/src/db/linkedRows/index.html +0 -161
  661. package/coverage/lcov-report/src/environment.ts.html +0 -457
  662. package/coverage/lcov-report/src/events/utils.ts.html +0 -319
  663. package/coverage/lcov-report/src/index.html +0 -191
  664. package/coverage/lcov-report/src/index.ts.html +0 -133
  665. package/coverage/lcov-report/src/integrations/arangodb.ts.html +0 -415
  666. package/coverage/lcov-report/src/integrations/base/index.html +0 -161
  667. package/coverage/lcov-report/src/integrations/base/query.ts.html +0 -133
  668. package/coverage/lcov-report/src/integrations/base/sql.ts.html +0 -1951
  669. package/coverage/lcov-report/src/integrations/base/sqlTable.ts.html +0 -691
  670. package/coverage/lcov-report/src/integrations/base/utils.ts.html +0 -121
  671. package/coverage/lcov-report/src/integrations/couchdb.ts.html +0 -406
  672. package/coverage/lcov-report/src/integrations/elasticsearch.ts.html +0 -634
  673. package/coverage/lcov-report/src/integrations/firebase.ts.html +0 -646
  674. package/coverage/lcov-report/src/integrations/googlesheets.ts.html +0 -1315
  675. package/coverage/lcov-report/src/integrations/index.html +0 -371
  676. package/coverage/lcov-report/src/integrations/index.ts.html +0 -445
  677. package/coverage/lcov-report/src/integrations/microsoftSqlServer.ts.html +0 -1012
  678. package/coverage/lcov-report/src/integrations/mongodb.ts.html +0 -1867
  679. package/coverage/lcov-report/src/integrations/mysql.ts.html +0 -967
  680. package/coverage/lcov-report/src/integrations/oracle.ts.html +0 -1387
  681. package/coverage/lcov-report/src/integrations/postgres.ts.html +0 -1087
  682. package/coverage/lcov-report/src/integrations/queries/index.html +0 -116
  683. package/coverage/lcov-report/src/integrations/queries/sql.ts.html +0 -463
  684. package/coverage/lcov-report/src/integrations/redis.ts.html +0 -550
  685. package/coverage/lcov-report/src/integrations/rest.ts.html +0 -1381
  686. package/coverage/lcov-report/src/integrations/s3.ts.html +0 -862
  687. package/coverage/lcov-report/src/integrations/snowflake.ts.html +0 -376
  688. package/coverage/lcov-report/src/integrations/utils.ts.html +0 -1018
  689. package/coverage/lcov-report/src/middleware/authorized.ts.html +0 -460
  690. package/coverage/lcov-report/src/migrations/functions/appUrls.ts.html +0 -187
  691. package/coverage/lcov-report/src/migrations/functions/backfill/app/automations.ts.html +0 -163
  692. package/coverage/lcov-report/src/migrations/functions/backfill/app/datasources.ts.html +0 -151
  693. package/coverage/lcov-report/src/migrations/functions/backfill/app/index.html +0 -206
  694. package/coverage/lcov-report/src/migrations/functions/backfill/app/layouts.ts.html +0 -172
  695. package/coverage/lcov-report/src/migrations/functions/backfill/app/queries.ts.html +0 -226
  696. package/coverage/lcov-report/src/migrations/functions/backfill/app/roles.ts.html +0 -151
  697. package/coverage/lcov-report/src/migrations/functions/backfill/app/screens.ts.html +0 -151
  698. package/coverage/lcov-report/src/migrations/functions/backfill/app/tables.ts.html +0 -166
  699. package/coverage/lcov-report/src/migrations/functions/backfill/app.ts.html +0 -532
  700. package/coverage/lcov-report/src/migrations/functions/backfill/global/configs.ts.html +0 -283
  701. package/coverage/lcov-report/src/migrations/functions/backfill/global/index.html +0 -146
  702. package/coverage/lcov-report/src/migrations/functions/backfill/global/quotas.ts.html +0 -265
  703. package/coverage/lcov-report/src/migrations/functions/backfill/global/users.ts.html +0 -232
  704. package/coverage/lcov-report/src/migrations/functions/backfill/global.ts.html +0 -724
  705. package/coverage/lcov-report/src/migrations/functions/backfill/index.html +0 -161
  706. package/coverage/lcov-report/src/migrations/functions/backfill/index.ts.html +0 -106
  707. package/coverage/lcov-report/src/migrations/functions/backfill/installation.ts.html +0 -235
  708. package/coverage/lcov-report/src/migrations/functions/index.html +0 -161
  709. package/coverage/lcov-report/src/migrations/functions/syncQuotas.ts.html +0 -130
  710. package/coverage/lcov-report/src/migrations/functions/tableSettings.ts.html +0 -520
  711. package/coverage/lcov-report/src/migrations/functions/usageQuotas/index.html +0 -161
  712. package/coverage/lcov-report/src/migrations/functions/usageQuotas/index.ts.html +0 -94
  713. package/coverage/lcov-report/src/migrations/functions/usageQuotas/syncApps.ts.html +0 -127
  714. package/coverage/lcov-report/src/migrations/functions/usageQuotas/syncPlugins.ts.html +0 -115
  715. package/coverage/lcov-report/src/migrations/functions/usageQuotas/syncRows.ts.html +0 -169
  716. package/coverage/lcov-report/src/migrations/functions/userEmailViewCasing.ts.html +0 -124
  717. package/coverage/lcov-report/src/migrations/index.ts.html +0 -430
  718. package/coverage/lcov-report/src/migrations/tests/helpers.ts.html +0 -205
  719. package/coverage/lcov-report/src/migrations/tests/index.html +0 -131
  720. package/coverage/lcov-report/src/migrations/tests/structures.ts.html +0 -283
  721. package/coverage/lcov-report/src/sdk/app/automations/index.html +0 -131
  722. package/coverage/lcov-report/src/sdk/app/automations/index.ts.html +0 -100
  723. package/coverage/lcov-report/src/sdk/app/automations/webhook.ts.html +0 -214
  724. package/coverage/lcov-report/src/sdk/app/backups/constants.ts.html +0 -91
  725. package/coverage/lcov-report/src/sdk/app/backups/exports.ts.html +0 -604
  726. package/coverage/lcov-report/src/sdk/app/backups/imports.ts.html +0 -682
  727. package/coverage/lcov-report/src/sdk/app/backups/index.html +0 -176
  728. package/coverage/lcov-report/src/sdk/app/backups/index.ts.html +0 -112
  729. package/coverage/lcov-report/src/sdk/app/backups/statistics.ts.html +0 -292
  730. package/coverage/lcov-report/src/sdk/app/tables/index.html +0 -116
  731. package/coverage/lcov-report/src/sdk/app/tables/index.ts.html +0 -265
  732. package/coverage/lcov-report/src/startup.ts.html +0 -499
  733. package/coverage/lcov-report/src/tests/utilities/TestConfiguration.ts.html +0 -1966
  734. package/coverage/lcov-report/src/tests/utilities/controllers.ts.html +0 -127
  735. package/coverage/lcov-report/src/tests/utilities/index.html +0 -161
  736. package/coverage/lcov-report/src/tests/utilities/structures.ts.html +0 -667
  737. package/coverage/lcov-report/src/threads/automation.ts.html +0 -1594
  738. package/coverage/lcov-report/src/threads/index.html +0 -161
  739. package/coverage/lcov-report/src/threads/index.ts.html +0 -418
  740. package/coverage/lcov-report/src/threads/query.ts.html +0 -961
  741. package/coverage/lcov-report/src/threads/utils.ts.html +0 -373
  742. package/coverage/lcov-report/src/utilities/fileSystem/clientLibrary.ts.html +0 -547
  743. package/coverage/lcov-report/src/utilities/fileSystem/index.ts.html +0 -1129
  744. package/coverage/lcov-report/src/utilities/fileSystem/processor.ts.html +0 -142
  745. package/coverage/lcov-report/src/utilities/redis.ts.html +0 -343
  746. package/coverage/lcov-report/src/utilities/routing/index.ts.html +0 -181
  747. package/coverage/lcov-report/src/utilities/rowProcessor/index.html +0 -146
  748. package/coverage/lcov-report/src/utilities/rowProcessor/map.ts.html +0 -373
  749. package/coverage/lcov-report/src/watch.ts.html +0 -196
  750. package/dist/db/defaultData/datasource_bb_default.js +0 -573
  751. package/dist/db/defaultData/employeeImport.js +0 -155
  752. package/dist/db/defaultData/expensesImport.js +0 -117
  753. package/dist/db/defaultData/inventoryImport.js +0 -109
  754. package/dist/db/defaultData/jobsImport.js +0 -152
  755. package/dist/db/linkedRows/LinkDocument.js +0 -32
  756. package/dist/events/BudibaseEmitter.js +0 -24
  757. package/dist/integrations/base/types.js +0 -2
  758. package/dist/migrations/functions/tableSettings.js +0 -130
  759. package/dist/utilities/rowProcessor/map.js +0 -99
  760. package/jest.config.ts +0 -33
  761. package/scripts/integrations/postgres/emp-skill.sql +0 -46
  762. package/src/api/controllers/integration.ts +0 -13
  763. package/src/api/controllers/migrations.ts +0 -14
  764. package/src/api/controllers/script.ts +0 -12
  765. package/src/api/routes/analytics.ts +0 -9
  766. package/src/api/routes/apikeys.ts +0 -12
  767. package/src/api/routes/automation.ts +0 -87
  768. package/src/api/routes/cloud.ts +0 -18
  769. package/src/api/routes/component.ts +0 -14
  770. package/src/api/routes/datasource.ts +0 -60
  771. package/src/api/routes/deploy.ts +0 -21
  772. package/src/api/routes/dev.ts +0 -38
  773. package/src/api/routes/integration.ts +0 -16
  774. package/src/api/routes/layout.ts +0 -16
  775. package/src/api/routes/migrations.ts +0 -14
  776. package/src/api/routes/permission.ts +0 -41
  777. package/src/api/routes/role.ts +0 -24
  778. package/src/api/routes/routing.ts +0 -14
  779. package/src/api/routes/screen.ts +0 -23
  780. package/src/api/routes/script.ts +0 -10
  781. package/src/api/routes/templates.ts +0 -16
  782. package/src/api/routes/user.ts +0 -51
  783. package/src/api/routes/view.ts +0 -34
  784. package/src/automations/bullboard.ts +0 -38
  785. package/src/automations/index.ts +0 -26
  786. package/src/automations/tests/utilities/index.ts +0 -60
  787. package/src/automations/triggerInfo/index.ts +0 -15
  788. package/src/constants/index.ts +0 -204
  789. package/src/constants/screens.ts +0 -48
  790. package/src/db/defaultData/datasource_bb_default.ts +0 -658
  791. package/src/db/defaultData/employeeImport.ts +0 -152
  792. package/src/db/defaultData/expensesImport.ts +0 -114
  793. package/src/db/defaultData/inventoryImport.ts +0 -106
  794. package/src/db/defaultData/jobsImport.ts +0 -158
  795. package/src/db/index.ts +0 -16
  796. package/src/db/linkedRows/LinkDocument.ts +0 -60
  797. package/src/events/index.ts +0 -5
  798. package/src/events/utils.ts +0 -78
  799. package/src/integrations/base/types.ts +0 -134
  800. package/src/middleware/appInfo.ts +0 -20
  801. package/src/middleware/publicApi.ts +0 -21
  802. package/src/migrations/functions/tableSettings.ts +0 -145
  803. package/src/migrations/functions/tests/tableSettings.spec.ts +0 -144
  804. package/src/tests/utilities/controllers.ts +0 -14
  805. package/src/utilities/budibaseDir.ts +0 -3
  806. package/src/utilities/global.ts +0 -138
  807. package/src/utilities/routing/index.ts +0 -32
  808. package/src/utilities/rowProcessor/map.ts +0 -96
  809. package/src/utilities/security.ts +0 -65
@@ -1,35 +1,15 @@
1
- import { SearchIndexes } from "../../../db/utils"
2
- import { removeKeyNumbering } from "./utils"
3
- import fetch from "node-fetch"
4
- import { db as dbCore, context } from "@budibase/backend-core"
5
- import { SearchFilters, Row } from "@budibase/types"
6
-
7
- type SearchParams = {
8
- tableId: string
9
- sort?: string
10
- sortOrder?: string
11
- sortType?: string
12
- limit?: number
13
- bookmark?: string
14
- version?: string
15
- rows?: Row[]
16
- }
1
+ const { SearchIndexes } = require("../../../db/utils")
2
+ const { removeKeyNumbering } = require("./utils")
3
+ const fetch = require("node-fetch")
4
+ const { getCouchInfo } = require("@budibase/backend-core/db")
5
+ const { getAppId } = require("@budibase/backend-core/context")
17
6
 
18
7
  /**
19
8
  * Class to build lucene query URLs.
20
9
  * Optionally takes a base lucene query object.
21
10
  */
22
- export class QueryBuilder {
23
- query: SearchFilters
24
- limit: number
25
- sort?: string
26
- bookmark?: string
27
- sortOrder: string
28
- sortType: string
29
- includeDocs: boolean
30
- version?: string
31
-
32
- constructor(base?: SearchFilters) {
11
+ class QueryBuilder {
12
+ constructor(base) {
33
13
  this.query = {
34
14
  allOr: false,
35
15
  string: {},
@@ -49,52 +29,49 @@ export class QueryBuilder {
49
29
  this.sortOrder = "ascending"
50
30
  this.sortType = "string"
51
31
  this.includeDocs = true
32
+ this.version = null
52
33
  }
53
34
 
54
- setVersion(version?: string) {
55
- if (version != null) {
56
- this.version = version
57
- }
35
+ setVersion(version) {
36
+ this.version = version
58
37
  return this
59
38
  }
60
39
 
61
- setTable(tableId: string) {
62
- this.query.equal!.tableId = tableId
40
+ setTable(tableId) {
41
+ this.query.equal.tableId = tableId
63
42
  return this
64
43
  }
65
44
 
66
- setLimit(limit?: number) {
45
+ setLimit(limit) {
67
46
  if (limit != null) {
68
47
  this.limit = limit
69
48
  }
70
49
  return this
71
50
  }
72
51
 
73
- setSort(sort?: string) {
52
+ setSort(sort) {
74
53
  if (sort != null) {
75
54
  this.sort = sort
76
55
  }
77
56
  return this
78
57
  }
79
58
 
80
- setSortOrder(sortOrder?: string) {
59
+ setSortOrder(sortOrder) {
81
60
  if (sortOrder != null) {
82
61
  this.sortOrder = sortOrder
83
62
  }
84
63
  return this
85
64
  }
86
65
 
87
- setSortType(sortType?: string) {
66
+ setSortType(sortType) {
88
67
  if (sortType != null) {
89
68
  this.sortType = sortType
90
69
  }
91
70
  return this
92
71
  }
93
72
 
94
- setBookmark(bookmark?: string) {
95
- if (bookmark != null) {
96
- this.bookmark = bookmark
97
- }
73
+ setBookmark(bookmark) {
74
+ this.bookmark = bookmark
98
75
  return this
99
76
  }
100
77
 
@@ -103,61 +80,61 @@ export class QueryBuilder {
103
80
  return this
104
81
  }
105
82
 
106
- addString(key: string, partial: string) {
107
- this.query.string![key] = partial
83
+ addString(key, partial) {
84
+ this.query.string[key] = partial
108
85
  return this
109
86
  }
110
87
 
111
- addFuzzy(key: string, fuzzy: string) {
112
- this.query.fuzzy![key] = fuzzy
88
+ addFuzzy(key, fuzzy) {
89
+ this.query.fuzzy[key] = fuzzy
113
90
  return this
114
91
  }
115
92
 
116
- addRange(key: string, low: string | number, high: string | number) {
117
- this.query.range![key] = {
93
+ addRange(key, low, high) {
94
+ this.query.range = {
118
95
  low,
119
96
  high,
120
97
  }
121
98
  return this
122
99
  }
123
100
 
124
- addEqual(key: string, value: any) {
125
- this.query.equal![key] = value
101
+ addEqual(key, value) {
102
+ this.query.equal[key] = value
126
103
  return this
127
104
  }
128
105
 
129
- addNotEqual(key: string, value: any) {
130
- this.query.notEqual![key] = value
106
+ addNotEqual(key, value) {
107
+ this.query.notEqual[key] = value
131
108
  return this
132
109
  }
133
110
 
134
- addEmpty(key: string, value: any) {
135
- this.query.empty![key] = value
111
+ addEmpty(key, value) {
112
+ this.query.empty[key] = value
136
113
  return this
137
114
  }
138
115
 
139
- addNotEmpty(key: string, value: any) {
140
- this.query.notEmpty![key] = value
116
+ addNotEmpty(key, value) {
117
+ this.query.notEmpty[key] = value
141
118
  return this
142
119
  }
143
120
 
144
- addOneOf(key: string, value: any) {
145
- this.query.oneOf![key] = value
121
+ addOneOf(key, value) {
122
+ this.query.oneOf[key] = value
146
123
  return this
147
124
  }
148
125
 
149
- addContains(key: string, value: any) {
150
- this.query.contains![key] = value
126
+ addContains(key, value) {
127
+ this.query.contains[key] = value
151
128
  return this
152
129
  }
153
130
 
154
- addNotContains(key: string, value: any) {
155
- this.query.notContains![key] = value
131
+ addNotContains(key, value) {
132
+ this.query.notContains[key] = value
156
133
  return this
157
134
  }
158
135
 
159
- addContainsAny(key: string, value: any) {
160
- this.query.containsAny![key] = value
136
+ addContainsAny(key, value) {
137
+ this.query.containsAny[key] = value
161
138
  return this
162
139
  }
163
140
 
@@ -168,7 +145,7 @@ export class QueryBuilder {
168
145
  * @param options The preprocess options
169
146
  * @returns {string|*}
170
147
  */
171
- preprocess(value: any, { escape, lowercase, wrap, type }: any = {}) {
148
+ preprocess(value, { escape, lowercase, wrap, type } = {}) {
172
149
  const hasVersion = !!this.version
173
150
  // Determine if type needs wrapped
174
151
  const originalType = typeof value
@@ -196,12 +173,12 @@ export class QueryBuilder {
196
173
  let query = allOr ? "" : "*:*"
197
174
  const allPreProcessingOpts = { escape: true, lowercase: true, wrap: true }
198
175
  let tableId
199
- if (this.query.equal!.tableId) {
200
- tableId = this.query.equal!.tableId
201
- delete this.query.equal!.tableId
176
+ if (this.query.equal.tableId) {
177
+ tableId = this.query.equal.tableId
178
+ delete this.query.equal.tableId
202
179
  }
203
180
 
204
- const equal = (key: string, value: any) => {
181
+ const equal = (key, value) => {
205
182
  // 0 evaluates to false, which means we would return all rows if we don't check it
206
183
  if (!value && value !== 0) {
207
184
  return null
@@ -209,7 +186,7 @@ export class QueryBuilder {
209
186
  return `${key}:${builder.preprocess(value, allPreProcessingOpts)}`
210
187
  }
211
188
 
212
- const contains = (key: string, value: any, mode = "AND") => {
189
+ const contains = (key, value, mode = "AND") => {
213
190
  if (Array.isArray(value) && value.length === 0) {
214
191
  return null
215
192
  }
@@ -225,17 +202,16 @@ export class QueryBuilder {
225
202
  return `${key}:(${statement})`
226
203
  }
227
204
 
228
- const notContains = (key: string, value: any) => {
229
- // @ts-ignore
205
+ const notContains = (key, value) => {
230
206
  const allPrefix = allOr === "" ? "*:* AND" : ""
231
207
  return allPrefix + "NOT " + contains(key, value)
232
208
  }
233
209
 
234
- const containsAny = (key: string, value: any) => {
210
+ const containsAny = (key, value) => {
235
211
  return contains(key, value, "OR")
236
212
  }
237
213
 
238
- const oneOf = (key: string, value: any) => {
214
+ const oneOf = (key, value) => {
239
215
  if (!Array.isArray(value)) {
240
216
  if (typeof value === "string") {
241
217
  value = value.split(",")
@@ -253,7 +229,7 @@ export class QueryBuilder {
253
229
  return `${key}:(${orStatement})`
254
230
  }
255
231
 
256
- function build(structure: any, queryFn: any) {
232
+ function build(structure, queryFn) {
257
233
  for (let [key, value] of Object.entries(structure)) {
258
234
  // check for new format - remove numbering if needed
259
235
  key = removeKeyNumbering(key)
@@ -273,7 +249,7 @@ export class QueryBuilder {
273
249
 
274
250
  // Construct the actual lucene search query string from JSON structure
275
251
  if (this.query.string) {
276
- build(this.query.string, (key: string, value: any) => {
252
+ build(this.query.string, (key, value) => {
277
253
  if (!value) {
278
254
  return null
279
255
  }
@@ -286,7 +262,7 @@ export class QueryBuilder {
286
262
  })
287
263
  }
288
264
  if (this.query.range) {
289
- build(this.query.range, (key: string, value: any) => {
265
+ build(this.query.range, (key, value) => {
290
266
  if (!value) {
291
267
  return null
292
268
  }
@@ -302,7 +278,7 @@ export class QueryBuilder {
302
278
  })
303
279
  }
304
280
  if (this.query.fuzzy) {
305
- build(this.query.fuzzy, (key: string, value: any) => {
281
+ build(this.query.fuzzy, (key, value) => {
306
282
  if (!value) {
307
283
  return null
308
284
  }
@@ -318,7 +294,7 @@ export class QueryBuilder {
318
294
  build(this.query.equal, equal)
319
295
  }
320
296
  if (this.query.notEqual) {
321
- build(this.query.notEqual, (key: string, value: any) => {
297
+ build(this.query.notEqual, (key, value) => {
322
298
  if (!value) {
323
299
  return null
324
300
  }
@@ -326,10 +302,10 @@ export class QueryBuilder {
326
302
  })
327
303
  }
328
304
  if (this.query.empty) {
329
- build(this.query.empty, (key: string) => `!${key}:["" TO *]`)
305
+ build(this.query.empty, key => `!${key}:["" TO *]`)
330
306
  }
331
307
  if (this.query.notEmpty) {
332
- build(this.query.notEmpty, (key: string) => `${key}:["" TO *]`)
308
+ build(this.query.notEmpty, key => `${key}:["" TO *]`)
333
309
  }
334
310
  if (this.query.oneOf) {
335
311
  build(this.query.oneOf, oneOf)
@@ -353,7 +329,7 @@ export class QueryBuilder {
353
329
  }
354
330
 
355
331
  buildSearchBody() {
356
- let body: any = {
332
+ let body = {
357
333
  q: this.buildSearchQuery(),
358
334
  limit: Math.min(this.limit, 200),
359
335
  include_docs: this.includeDocs,
@@ -370,14 +346,17 @@ export class QueryBuilder {
370
346
  }
371
347
 
372
348
  async run() {
373
- const appId = context.getAppId()
374
- const { url, cookie } = dbCore.getCouchInfo()
349
+ const appId = getAppId()
350
+ const { url, cookie } = getCouchInfo()
375
351
  const fullPath = `${url}/${appId}/_design/database/_search/${SearchIndexes.ROWS}`
376
352
  const body = this.buildSearchBody()
377
353
  return await runQuery(fullPath, body, cookie)
378
354
  }
379
355
  }
380
356
 
357
+ // exported for unit testing
358
+ exports.QueryBuilder = QueryBuilder
359
+
381
360
  /**
382
361
  * Executes a lucene search query.
383
362
  * @param url The query URL
@@ -385,7 +364,7 @@ export class QueryBuilder {
385
364
  * @param cookie The auth cookie for CouchDB
386
365
  * @returns {Promise<{rows: []}>}
387
366
  */
388
- const runQuery = async (url: string, body: any, cookie: string) => {
367
+ const runQuery = async (url, body, cookie) => {
389
368
  const response = await fetch(url, {
390
369
  body: JSON.stringify(body),
391
370
  method: "POST",
@@ -395,11 +374,11 @@ const runQuery = async (url: string, body: any, cookie: string) => {
395
374
  })
396
375
  const json = await response.json()
397
376
 
398
- let output: any = {
377
+ let output = {
399
378
  rows: [],
400
379
  }
401
380
  if (json.rows != null && json.rows.length > 0) {
402
- output.rows = json.rows.map((row: any) => row.doc)
381
+ output.rows = json.rows.map(row => row.doc)
403
382
  }
404
383
  if (json.bookmark) {
405
384
  output.bookmark = json.bookmark
@@ -423,7 +402,7 @@ const runQuery = async (url: string, body: any, cookie: string) => {
423
402
  * rows {array|null} Current results in the recursive search
424
403
  * @returns {Promise<*[]|*>}
425
404
  */
426
- async function recursiveSearch(query: any, params: any): Promise<any> {
405
+ const recursiveSearch = async (query, params) => {
427
406
  const bookmark = params.bookmark
428
407
  const rows = params.rows || []
429
408
  if (rows.length >= params.limit) {
@@ -471,10 +450,7 @@ async function recursiveSearch(query: any, params: any): Promise<any> {
471
450
  * bookmark {string} The bookmark to resume from
472
451
  * @returns {Promise<{hasNextPage: boolean, rows: *[]}>}
473
452
  */
474
- export async function paginatedSearch(
475
- query: SearchFilters,
476
- params: SearchParams
477
- ) {
453
+ exports.paginatedSearch = async (query, params) => {
478
454
  let limit = params.limit
479
455
  if (limit == null || isNaN(limit) || limit < 0) {
480
456
  limit = 50
@@ -520,7 +496,7 @@ export async function paginatedSearch(
520
496
  * limit {number} The desired number of results
521
497
  * @returns {Promise<{rows: *}>}
522
498
  */
523
- export async function fullSearch(query: SearchFilters, params: SearchParams) {
499
+ exports.fullSearch = async (query, params) => {
524
500
  let limit = params.limit
525
501
  if (limit == null || isNaN(limit) || limit < 0) {
526
502
  limit = 1000
@@ -1,14 +1,13 @@
1
- import { getRowParams } from "../../../db/utils"
2
- import {
1
+ const { getRowParams } = require("../../../db/utils")
2
+ const {
3
3
  outputProcessing,
4
4
  processAutoColumn,
5
5
  processFormulas,
6
- } from "../../../utilities/rowProcessor"
7
- import { FieldTypes, FormulaTypes } from "../../../constants"
8
- import { context } from "@budibase/backend-core"
9
- import { Table, Row } from "@budibase/types"
6
+ } = require("../../../utilities/rowProcessor")
7
+ const { FieldTypes, FormulaTypes } = require("../../../constants")
10
8
  const { isEqual } = require("lodash")
11
9
  const { cloneDeep } = require("lodash/fp")
10
+ const { getAppDB } = require("@budibase/backend-core/context")
12
11
 
13
12
  /**
14
13
  * This function runs through a list of enriched rows, looks at the rows which
@@ -16,22 +15,22 @@ const { cloneDeep } = require("lodash/fp")
16
15
  * updated.
17
16
  * NOTE: this will only for affect static formulas.
18
17
  */
19
- export async function updateRelatedFormula(table: Table, enrichedRows: Row[]) {
20
- const db = context.getAppDB()
18
+ exports.updateRelatedFormula = async (table, enrichedRows) => {
19
+ const db = getAppDB()
21
20
  // no formula to update, we're done
22
21
  if (!table.relatedFormula) {
23
22
  return
24
23
  }
25
- let promises: Promise<any>[] = []
24
+ let promises = []
26
25
  for (let enrichedRow of Array.isArray(enrichedRows)
27
26
  ? enrichedRows
28
27
  : [enrichedRows]) {
29
28
  // the related rows by tableId
30
- let relatedRows: Record<string, Row[]> = {}
29
+ let relatedRows = {}
31
30
  for (let [key, field] of Object.entries(enrichedRow)) {
32
31
  const columnDefinition = table.schema[key]
33
32
  if (columnDefinition && columnDefinition.type === FieldTypes.LINK) {
34
- const relatedTableId = columnDefinition.tableId!
33
+ const relatedTableId = columnDefinition.tableId
35
34
  if (!relatedRows[relatedTableId]) {
36
35
  relatedRows[relatedTableId] = []
37
36
  }
@@ -39,7 +38,7 @@ export async function updateRelatedFormula(table: Table, enrichedRows: Row[]) {
39
38
  }
40
39
  }
41
40
  for (let tableId of table.relatedFormula) {
42
- let relatedTable: Table
41
+ let relatedTable
43
42
  try {
44
43
  // no rows to update, skip
45
44
  if (!relatedRows[tableId] || relatedRows[tableId].length === 0) {
@@ -49,7 +48,7 @@ export async function updateRelatedFormula(table: Table, enrichedRows: Row[]) {
49
48
  } catch (err) {
50
49
  // no error scenario, table doesn't seem to exist anymore, ignore
51
50
  }
52
- for (let column of Object.values(relatedTable!.schema)) {
51
+ for (let column of Object.values(relatedTable.schema)) {
53
52
  // needs updated in related rows
54
53
  if (
55
54
  column.type === FieldTypes.FORMULA &&
@@ -58,7 +57,7 @@ export async function updateRelatedFormula(table: Table, enrichedRows: Row[]) {
58
57
  // re-enrich rows for all the related, don't update the related formula for them
59
58
  promises = promises.concat(
60
59
  relatedRows[tableId].map(related =>
61
- finaliseRow(relatedTable, related, {
60
+ exports.finaliseRow(relatedTable, related, {
62
61
  updateFormula: false,
63
62
  })
64
63
  )
@@ -71,8 +70,8 @@ export async function updateRelatedFormula(table: Table, enrichedRows: Row[]) {
71
70
  await Promise.all(promises)
72
71
  }
73
72
 
74
- export async function updateAllFormulasInTable(table: Table) {
75
- const db = context.getAppDB()
73
+ exports.updateAllFormulasInTable = async table => {
74
+ const db = getAppDB()
76
75
  // start by getting the raw rows (which will be written back to DB after update)
77
76
  let rows = (
78
77
  await db.allDocs(
@@ -89,9 +88,7 @@ export async function updateAllFormulasInTable(table: Table) {
89
88
  const updatedRows = []
90
89
  for (let row of rows) {
91
90
  // find the enriched row, if found process the formulas
92
- const enrichedRow = enrichedRows.find(
93
- (enriched: any) => enriched._id === row._id
94
- )
91
+ const enrichedRow = enrichedRows.find(enriched => enriched._id === row._id)
95
92
  if (enrichedRow) {
96
93
  const processed = processFormulas(table, cloneDeep(row), {
97
94
  dynamic: false,
@@ -112,19 +109,17 @@ export async function updateAllFormulasInTable(table: Table) {
112
109
  * row. The reason we need to return the enriched row is that the automation row created trigger
113
110
  * expects the row to be totally enriched/contain all relationships.
114
111
  */
115
- export async function finaliseRow(
116
- table: Table,
117
- row: Row,
118
- { oldTable, updateFormula }: { oldTable?: Table; updateFormula: boolean } = {
119
- updateFormula: true,
120
- }
121
- ) {
122
- const db = context.getAppDB()
112
+ exports.finaliseRow = async (
113
+ table,
114
+ row,
115
+ { oldTable, updateFormula } = { updateFormula: true }
116
+ ) => {
117
+ const db = getAppDB()
123
118
  row.type = "row"
124
119
  // process the row before return, to include relationships
125
- let enrichedRow = (await outputProcessing(table, cloneDeep(row), {
120
+ let enrichedRow = await outputProcessing(table, cloneDeep(row), {
126
121
  squash: false,
127
- })) as Row
122
+ })
128
123
  // use enriched row to generate formulas for saving, specifically only use as context
129
124
  row = processFormulas(table, row, {
130
125
  dynamic: false,
@@ -136,7 +131,7 @@ export async function finaliseRow(
136
131
  if (oldTable && !isEqual(oldTable, table)) {
137
132
  try {
138
133
  await db.put(table)
139
- } catch (err: any) {
134
+ } catch (err) {
140
135
  if (err.status === 409) {
141
136
  const updatedTable = await db.get(table._id)
142
137
  let response = processAutoColumn(null, updatedTable, row, {
@@ -1,32 +1,33 @@
1
- import { InternalTables } from "../../../db/utils"
2
- import * as userController from "../user"
3
- import { FieldTypes } from "../../../constants"
4
- import { context } from "@budibase/backend-core"
5
- import { makeExternalQuery } from "../../../integrations/base/query"
6
- import { BBContext, Row, Table } from "@budibase/types"
7
- export { removeKeyNumbering } from "../../../integrations/base/utils"
8
1
  const validateJs = require("validate.js")
9
2
  const { cloneDeep } = require("lodash/fp")
3
+ const { InternalTables } = require("../../../db/utils")
4
+ const userController = require("../user")
5
+ const { FieldTypes } = require("../../../constants")
6
+ const { getAppDB } = require("@budibase/backend-core/context")
7
+ const { makeExternalQuery } = require("../../../integrations/base/query")
8
+ const { removeKeyNumbering } = require("../../../integrations/base/utils")
10
9
 
11
10
  validateJs.extend(validateJs.validators.datetime, {
12
- parse: function (value: string) {
11
+ parse: function (value) {
13
12
  return new Date(value).getTime()
14
13
  },
15
14
  // Input is a unix timestamp
16
- format: function (value: string) {
15
+ format: function (value) {
17
16
  return new Date(value).toISOString()
18
17
  },
19
18
  })
20
19
 
21
- export async function getDatasourceAndQuery(json: any) {
20
+ exports.removeKeyNumbering = removeKeyNumbering
21
+
22
+ exports.getDatasourceAndQuery = async json => {
22
23
  const datasourceId = json.endpoint.datasourceId
23
- const db = context.getAppDB()
24
+ const db = getAppDB()
24
25
  const datasource = await db.get(datasourceId)
25
26
  return makeExternalQuery(datasource, json)
26
27
  }
27
28
 
28
- export async function findRow(ctx: BBContext, tableId: string, rowId: string) {
29
- const db = context.getAppDB()
29
+ exports.findRow = async (ctx, tableId, rowId) => {
30
+ const db = getAppDB()
30
31
  let row
31
32
  // TODO remove special user case in future
32
33
  if (tableId === InternalTables.USER_METADATA) {
@@ -44,26 +45,15 @@ export async function findRow(ctx: BBContext, tableId: string, rowId: string) {
44
45
  return row
45
46
  }
46
47
 
47
- export async function validate({
48
- tableId,
49
- row,
50
- table,
51
- }: {
52
- tableId?: string
53
- row: Row
54
- table?: Table
55
- }) {
56
- let fetchedTable: Table
48
+ exports.validate = async ({ tableId, row, table }) => {
57
49
  if (!table) {
58
- const db = context.getAppDB()
59
- fetchedTable = await db.get(tableId)
60
- } else {
61
- fetchedTable = table
50
+ const db = getAppDB()
51
+ table = await db.get(tableId)
62
52
  }
63
- const errors: any = {}
64
- for (let fieldName of Object.keys(fetchedTable.schema)) {
65
- const constraints = cloneDeep(fetchedTable.schema[fieldName].constraints)
66
- const type = fetchedTable.schema[fieldName].type
53
+ const errors = {}
54
+ for (let fieldName of Object.keys(table.schema)) {
55
+ const constraints = cloneDeep(table.schema[fieldName].constraints)
56
+ const type = table.schema[fieldName].type
67
57
  // formulas shouldn't validated, data will be deleted anyway
68
58
  if (type === FieldTypes.FORMULA) {
69
59
  continue
@@ -80,7 +70,7 @@ export async function validate({
80
70
  if (!Array.isArray(row[fieldName])) {
81
71
  row[fieldName] = row[fieldName].split(",")
82
72
  }
83
- row[fieldName].map((val: any) => {
73
+ row[fieldName].map(val => {
84
74
  if (
85
75
  !constraints.inclusion.includes(val) &&
86
76
  constraints.inclusion.length !== 0
@@ -7,9 +7,9 @@ import {
7
7
  roles,
8
8
  } from "@budibase/backend-core"
9
9
  import { updateAppPackage } from "./application"
10
- import { Plugin, ScreenProps, BBContext } from "@budibase/types"
10
+ import { Plugin, ScreenProps } from "@budibase/types"
11
11
 
12
- export async function fetch(ctx: BBContext) {
12
+ exports.fetch = async (ctx: any) => {
13
13
  const db = context.getAppDB()
14
14
 
15
15
  const screens = (
@@ -20,17 +20,13 @@ export async function fetch(ctx: BBContext) {
20
20
  )
21
21
  ).rows.map((el: any) => el.doc)
22
22
 
23
- const roleId = ctx.user?.role?._id as string
24
- if (!roleId) {
25
- ctx.throw("Unable to retrieve users role ID.")
26
- }
27
23
  ctx.body = await new roles.AccessController().checkScreensAccess(
28
24
  screens,
29
- roleId
25
+ ctx.user.role._id
30
26
  )
31
27
  }
32
28
 
33
- export async function save(ctx: BBContext) {
29
+ exports.save = async (ctx: any) => {
34
30
  const db = context.getAppDB()
35
31
  let screen = ctx.request.body
36
32
 
@@ -96,7 +92,7 @@ export async function save(ctx: BBContext) {
96
92
  }
97
93
  }
98
94
 
99
- export async function destroy(ctx: BBContext) {
95
+ exports.destroy = async (ctx: any) => {
100
96
  const db = context.getAppDB()
101
97
  const id = ctx.params.screenId
102
98
  const screen = await db.get(id)
@@ -110,7 +106,7 @@ export async function destroy(ctx: BBContext) {
110
106
  ctx.status = 200
111
107
  }
112
108
 
113
- function findPlugins(component: ScreenProps, foundPlugins: string[]) {
109
+ const findPlugins = (component: ScreenProps, foundPlugins: string[]) => {
114
110
  if (!component) {
115
111
  return
116
112
  }
@@ -0,0 +1,11 @@
1
+ const ScriptRunner = require("../../utilities/scriptRunner")
2
+
3
+ exports.execute = async function (ctx) {
4
+ const { script, context } = ctx.request.body
5
+ const runner = new ScriptRunner(script, context)
6
+ ctx.body = runner.execute()
7
+ }
8
+
9
+ exports.save = async function (ctx) {
10
+ ctx.throw(501, "Not currently implemented")
11
+ }