@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,17 +1,15 @@
1
1
  const TestConfig = require("../../tests/utilities/TestConfiguration")
2
2
  const { basicRow, basicLinkedRow, basicTable } = require("../../tests/utilities/structures")
3
3
  const LinkController = require("../linkedRows/LinkController")
4
- const { context } = require("@budibase/backend-core")
5
4
  const { RelationshipTypes } = require("../../constants")
6
5
  const { cloneDeep } = require("lodash/fp")
7
6
 
8
7
  describe("test the link controller", () => {
9
8
  let config = new TestConfig(false)
10
- let table1, table2, appId
9
+ let table1, table2
11
10
 
12
11
  beforeEach(async () => {
13
- const app = await config.init()
14
- appId = app.appId
12
+ await config.init()
15
13
  const { _id } = await config.createTable()
16
14
  table2 = await config.createLinkedTable(RelationshipTypes.MANY_TO_MANY, ["link", "link2"])
17
15
  // update table after creating link
@@ -20,20 +18,18 @@ describe("test the link controller", () => {
20
18
 
21
19
  afterAll(config.end)
22
20
 
23
- async function createLinkController(table, row = null, oldTable = null) {
24
- return context.doInAppContext(appId, () => {
25
- const linkConfig = {
26
- tableId: table._id,
27
- table,
28
- }
29
- if (row) {
30
- linkConfig.row = row
31
- }
32
- if (oldTable) {
33
- linkConfig.oldTable = oldTable
34
- }
35
- return new LinkController(linkConfig)
36
- })
21
+ function createLinkController(table, row = null, oldTable = null) {
22
+ const linkConfig = {
23
+ tableId: table._id,
24
+ table,
25
+ }
26
+ if (row) {
27
+ linkConfig.row = row
28
+ }
29
+ if (oldTable) {
30
+ linkConfig.oldTable = oldTable
31
+ }
32
+ return new LinkController(linkConfig)
37
33
  }
38
34
 
39
35
  async function createLinkedRow(linkField = "link", t1 = table1, t2 = table2) {
@@ -42,16 +38,16 @@ describe("test the link controller", () => {
42
38
  return config.getRow(t1._id, _id)
43
39
  }
44
40
 
45
- it("should be able to confirm if two table schemas are equal", async () => {
46
- const controller = await createLinkController(table1)
41
+ it("should be able to confirm if two table schemas are equal", () => {
42
+ const controller = createLinkController(table1)
47
43
  let equal = controller.areLinkSchemasEqual(table2.schema.link, table2.schema.link)
48
44
  expect(equal).toEqual(true)
49
45
  equal = controller.areLinkSchemasEqual(table1.schema.link, table2.schema.link)
50
46
  expect(equal).toEqual(false)
51
47
  })
52
48
 
53
- it("should be able to check the relationship types across two fields", async () => {
54
- const controller = await createLinkController(table1)
49
+ it("should be able to check the relationship types across two fields", () => {
50
+ const controller = createLinkController(table1)
55
51
  // empty case
56
52
  let output = controller.handleRelationshipType({}, {})
57
53
  expect(output.linkedField.relationshipType).toEqual(RelationshipTypes.MANY_TO_MANY)
@@ -69,33 +65,29 @@ describe("test the link controller", () => {
69
65
 
70
66
  it("should be able to delete a row", async () => {
71
67
  const row = await createLinkedRow()
72
- const controller = await createLinkController(table1, row)
73
- await context.doInAppContext(appId, async () => {
74
- // get initial count
75
- const beforeLinks = await controller.getRowLinkDocs(row._id)
76
- await controller.rowDeleted()
77
- let afterLinks = await controller.getRowLinkDocs(row._id)
78
- expect(beforeLinks.length).toEqual(1)
79
- expect(afterLinks.length).toEqual(0)
80
- })
68
+ const controller = createLinkController(table1, row)
69
+ // get initial count
70
+ const beforeLinks = await controller.getRowLinkDocs(row._id)
71
+ await controller.rowDeleted()
72
+ let afterLinks = await controller.getRowLinkDocs(row._id)
73
+ expect(beforeLinks.length).toEqual(1)
74
+ expect(afterLinks.length).toEqual(0)
81
75
  })
82
76
 
83
77
  it("shouldn't throw an error when deleting a row with no links", async () => {
84
78
  const row = await config.createRow(basicRow(table1._id))
85
- const controller = await createLinkController(table1, row)
86
- await context.doInAppContext(appId, async () => {
87
- let error
88
- try {
89
- await controller.rowDeleted()
90
- } catch (err) {
91
- error = err
92
- }
93
- expect(error).toBeUndefined()
94
- })
79
+ const controller = createLinkController(table1, row)
80
+ let error
81
+ try {
82
+ await controller.rowDeleted()
83
+ } catch (err) {
84
+ error = err
85
+ }
86
+ expect(error).toBeUndefined()
95
87
  })
96
88
 
97
- it("should throw an error when validating a table which is invalid", async () => {
98
- const controller = await createLinkController(table1)
89
+ it("should throw an error when validating a table which is invalid", () => {
90
+ const controller = createLinkController(table1)
99
91
  const copyTable = {
100
92
  ...table1
101
93
  }
@@ -118,38 +110,32 @@ describe("test the link controller", () => {
118
110
  const row = await createLinkedRow()
119
111
  // remove the link from the row
120
112
  row.link = []
121
- const controller = await createLinkController(table1, row)
122
- await context.doInAppContext(appId, async () => {
123
- await controller.rowSaved()
124
- let links = await controller.getRowLinkDocs(row._id)
125
- expect(links.length).toEqual(0)
126
- })
113
+ const controller = createLinkController(table1, row)
114
+ await controller.rowSaved()
115
+ let links = await controller.getRowLinkDocs(row._id)
116
+ expect(links.length).toEqual(0)
127
117
  })
128
118
 
129
119
  it("should be able to delete a table and have links deleted", async () => {
130
120
  await createLinkedRow()
131
- const controller = await createLinkController(table1)
132
- await context.doInAppContext(appId, async () => {
133
- let before = await controller.getTableLinkDocs()
134
- await controller.tableDeleted()
135
- let after = await controller.getTableLinkDocs()
136
- expect(before.length).toEqual(1)
137
- expect(after.length).toEqual(0)
138
- })
121
+ const controller = createLinkController(table1)
122
+ let before = await controller.getTableLinkDocs()
123
+ await controller.tableDeleted()
124
+ let after = await controller.getTableLinkDocs()
125
+ expect(before.length).toEqual(1)
126
+ expect(after.length).toEqual(0)
139
127
  })
140
128
 
141
129
  it("should be able to remove a linked field from a table", async () => {
142
130
  await createLinkedRow()
143
131
  await createLinkedRow("link2")
144
- const controller = await createLinkController(table1, null, table1)
145
- await context.doInAppContext(appId, async () => {
146
- let before = await controller.getTableLinkDocs()
147
- await controller.removeFieldFromTable("link")
148
- let after = await controller.getTableLinkDocs()
149
- expect(before.length).toEqual(2)
150
- // shouldn't delete the other field
151
- expect(after.length).toEqual(1)
152
- })
132
+ const controller = createLinkController(table1, null, table1)
133
+ let before = await controller.getTableLinkDocs()
134
+ await controller.removeFieldFromTable("link")
135
+ let after = await controller.getTableLinkDocs()
136
+ expect(before.length).toEqual(2)
137
+ // shouldn't delete the other field
138
+ expect(after.length).toEqual(1)
153
139
  })
154
140
 
155
141
  it("should throw an error when overwriting a link column", async () => {
@@ -157,7 +143,7 @@ describe("test the link controller", () => {
157
143
  update.schema.link.relationshipType = RelationshipTypes.MANY_TO_ONE
158
144
  let error
159
145
  try {
160
- const controller = await createLinkController(update)
146
+ const controller = createLinkController(update)
161
147
  await controller.tableSaved()
162
148
  } catch (err) {
163
149
  error = err
@@ -170,12 +156,10 @@ describe("test the link controller", () => {
170
156
  await createLinkedRow()
171
157
  const newTable = cloneDeep(table1)
172
158
  delete newTable.schema.link
173
- const controller = await createLinkController(newTable, null, table1)
174
- await context.doInAppContext(appId, async () => {
175
- await controller.tableUpdated()
176
- const links = await controller.getTableLinkDocs()
177
- expect(links.length).toEqual(0)
178
- })
159
+ const controller = createLinkController(newTable, null, table1)
160
+ await controller.tableUpdated()
161
+ const links = await controller.getTableLinkDocs()
162
+ expect(links.length).toEqual(0)
179
163
  })
180
164
 
181
165
  it("shouldn't allow one to many having many relationships against it", async () => {
@@ -1,34 +1,30 @@
1
1
  const TestConfig = require("../../tests/utilities/TestConfiguration")
2
2
  const { basicTable } = require("../../tests/utilities/structures")
3
3
  const linkUtils = require("../linkedRows/linkUtils")
4
- const { context } = require("@budibase/backend-core")
4
+ const { getAppDB } = require("@budibase/backend-core/context")
5
+ const { doWithDB } = require("@budibase/backend-core/db")
5
6
 
6
7
  describe("test link functionality", () => {
7
8
  const config = new TestConfig(false)
8
- let appId
9
9
 
10
10
  describe("getLinkedTable", () => {
11
- let table
11
+ let db, table
12
12
  beforeEach(async () => {
13
- const app = await config.init()
14
- appId = app.appId
13
+ await config.init()
14
+ db = getAppDB()
15
15
  table = await config.createTable()
16
16
  })
17
17
 
18
18
  it("should be able to retrieve a linked table from a list", async () => {
19
- await context.doInAppContext(appId, async () => {
20
- const retrieved = await linkUtils.getLinkedTable(table._id, [table])
21
- expect(retrieved._id).toBe(table._id)
22
- })
19
+ const retrieved = await linkUtils.getLinkedTable(table._id, [table])
20
+ expect(retrieved._id).toBe(table._id)
23
21
  })
24
22
 
25
23
  it("should be able to retrieve a table from DB and update list", async () => {
26
24
  const tables = []
27
- await context.doInAppContext(appId, async () => {
28
- const retrieved = await linkUtils.getLinkedTable(table._id, tables)
29
- expect(retrieved._id).toBe(table._id)
30
- expect(tables[0]).toBeDefined()
31
- })
25
+ const retrieved = await linkUtils.getLinkedTable(table._id, tables)
26
+ expect(retrieved._id).toBe(table._id)
27
+ expect(tables[0]).toBeDefined()
32
28
  })
33
29
  })
34
30
 
@@ -52,14 +48,15 @@ describe("test link functionality", () => {
52
48
  describe("getLinkDocuments", () => {
53
49
  it("should create the link view when it doesn't exist", async () => {
54
50
  // create the DB and a very basic app design DB
55
- await context.doInAppContext(appId, async () => {
56
- const output = await linkUtils.getLinkDocuments({
51
+ const output = await doWithDB("test", async db => {
52
+ await db.put({ _id: "_design/database", views: {} })
53
+ return await linkUtils.getLinkDocuments({
57
54
  tableId: "test",
58
55
  rowId: "test",
59
56
  includeDocs: false,
60
57
  })
61
- expect(Array.isArray(output)).toBe(true)
62
58
  })
59
+ expect(Array.isArray(output)).toBe(true)
63
60
  })
64
61
  })
65
62
  })
@@ -1,56 +1,82 @@
1
- import newid from "./newid"
2
- import { db as dbCore } from "@budibase/backend-core"
3
-
4
- type Optional = string | null
5
-
6
- export const AppStatus = {
1
+ const newid = require("./newid")
2
+ const {
3
+ DocumentType: CoreDocType,
4
+ InternalTable,
5
+ getRoleParams,
6
+ generateRoleID,
7
+ APP_DEV_PREFIX,
8
+ APP_PREFIX,
9
+ SEPARATOR,
10
+ StaticDatabases,
11
+ isDevAppID,
12
+ isProdAppID,
13
+ getDevelopmentAppID,
14
+ generateAppID,
15
+ getQueryIndex,
16
+ ViewName,
17
+ getDocParams,
18
+ getRowParams,
19
+ generateRowID,
20
+ getUserMetadataParams,
21
+ generateUserMetadataID,
22
+ getGlobalIDFromUserMetadataID,
23
+ } = require("@budibase/backend-core/db")
24
+
25
+ const UNICODE_MAX = "\ufff0"
26
+
27
+ const AppStatus = {
7
28
  DEV: "development",
8
29
  ALL: "all",
9
30
  DEPLOYED: "published",
10
31
  }
11
32
 
12
- export const SearchIndexes = {
33
+ const DocumentType = CoreDocType
34
+
35
+ const SearchIndexes = {
13
36
  ROWS: "rows",
14
37
  }
15
38
 
16
- export const BudibaseInternalDB = {
39
+ exports.StaticDatabases = StaticDatabases
40
+
41
+ const BudibaseInternalDB = {
17
42
  _id: "bb_internal",
18
- type: dbCore.BUDIBASE_DATASOURCE_TYPE,
43
+ type: "budibase",
19
44
  name: "Budibase DB",
20
45
  source: "BUDIBASE",
21
46
  config: {},
22
47
  }
23
48
 
24
- export const SEPARATOR = dbCore.SEPARATOR
25
- export const StaticDatabases = dbCore.StaticDatabases
26
- export const DocumentType = dbCore.DocumentType
27
- export const APP_PREFIX = dbCore.APP_PREFIX
28
- export const APP_DEV_PREFIX = dbCore.APP_DEV_PREFIX
29
- export const isDevAppID = dbCore.isDevAppID
30
- export const isProdAppID = dbCore.isProdAppID
31
- export const USER_METDATA_PREFIX = `${DocumentType.ROW}${SEPARATOR}${dbCore.InternalTable.USER_METADATA}${SEPARATOR}`
32
- export const LINK_USER_METADATA_PREFIX = `${DocumentType.LINK}${SEPARATOR}${dbCore.InternalTable.USER_METADATA}${SEPARATOR}`
33
- export const TABLE_ROW_PREFIX = `${DocumentType.ROW}${SEPARATOR}${DocumentType.TABLE}`
34
- export const ViewName = dbCore.ViewName
35
- export const InternalTables = dbCore.InternalTable
36
- export const UNICODE_MAX = dbCore.UNICODE_MAX
37
- export const generateAppID = dbCore.generateAppID
38
- export const generateDevAppID = dbCore.getDevelopmentAppID
39
- export const generateRoleID = dbCore.generateRoleID
40
- export const getRoleParams = dbCore.getRoleParams
41
- export const getQueryIndex = dbCore.getQueryIndex
42
- export const getDocParams = dbCore.getDocParams
43
- export const getRowParams = dbCore.getRowParams
44
- export const generateRowID = dbCore.generateRowID
45
- export const getUserMetadataParams = dbCore.getUserMetadataParams
46
- export const generateUserMetadataID = dbCore.generateUserMetadataID
47
- export const getGlobalIDFromUserMetadataID =
48
- dbCore.getGlobalIDFromUserMetadataID
49
+ exports.APP_PREFIX = APP_PREFIX
50
+ exports.APP_DEV_PREFIX = APP_DEV_PREFIX
51
+ exports.isDevAppID = isDevAppID
52
+ exports.isProdAppID = isProdAppID
53
+ exports.USER_METDATA_PREFIX = `${DocumentType.ROW}${SEPARATOR}${InternalTable.USER_METADATA}${SEPARATOR}`
54
+ exports.LINK_USER_METADATA_PREFIX = `${DocumentType.LINK}${SEPARATOR}${InternalTable.USER_METADATA}${SEPARATOR}`
55
+ exports.TABLE_ROW_PREFIX = `${DocumentType.ROW}${SEPARATOR}${DocumentType.TABLE}`
56
+ exports.ViewName = ViewName
57
+ exports.InternalTables = InternalTable
58
+ exports.DocumentType = DocumentType
59
+ exports.SEPARATOR = SEPARATOR
60
+ exports.UNICODE_MAX = UNICODE_MAX
61
+ exports.SearchIndexes = SearchIndexes
62
+ exports.AppStatus = AppStatus
63
+ exports.BudibaseInternalDB = BudibaseInternalDB
64
+ exports.generateAppID = generateAppID
65
+ exports.generateDevAppID = getDevelopmentAppID
66
+ exports.generateRoleID = generateRoleID
67
+ exports.getRoleParams = getRoleParams
68
+ exports.getQueryIndex = getQueryIndex
69
+ exports.getDocParams = getDocParams
70
+ exports.getRowParams = getRowParams
71
+ exports.generateRowID = generateRowID
72
+ exports.getUserMetadataParams = getUserMetadataParams
73
+ exports.generateUserMetadataID = generateUserMetadataID
74
+ exports.getGlobalIDFromUserMetadataID = getGlobalIDFromUserMetadataID
49
75
 
50
76
  /**
51
77
  * Gets parameters for retrieving tables, this is a utility function for the getDocParams function.
52
78
  */
53
- export function getTableParams(tableId?: Optional, otherProps = {}) {
79
+ exports.getTableParams = (tableId = null, otherProps = {}) => {
54
80
  return getDocParams(DocumentType.TABLE, tableId, otherProps)
55
81
  }
56
82
 
@@ -58,7 +84,7 @@ export function getTableParams(tableId?: Optional, otherProps = {}) {
58
84
  * Generates a new table ID.
59
85
  * @returns {string} The new table ID which the table doc can be stored under.
60
86
  */
61
- export function generateTableID() {
87
+ exports.generateTableID = () => {
62
88
  return `${DocumentType.TABLE}${SEPARATOR}${newid()}`
63
89
  }
64
90
 
@@ -67,7 +93,7 @@ export function generateTableID() {
67
93
  * @param {string} rowId The ID of the row.
68
94
  * @returns {string} The table ID.
69
95
  */
70
- export function getTableIDFromRowID(rowId: string) {
96
+ exports.getTableIDFromRowID = rowId => {
71
97
  const components = rowId
72
98
  .split(DocumentType.TABLE + SEPARATOR)[1]
73
99
  .split(SEPARATOR)
@@ -77,10 +103,7 @@ export function getTableIDFromRowID(rowId: string) {
77
103
  /**
78
104
  * Gets parameters for retrieving automations, this is a utility function for the getDocParams function.
79
105
  */
80
- export function getAutomationParams(
81
- automationId?: Optional,
82
- otherProps: any = {}
83
- ) {
106
+ exports.getAutomationParams = (automationId = null, otherProps = {}) => {
84
107
  return getDocParams(DocumentType.AUTOMATION, automationId, otherProps)
85
108
  }
86
109
 
@@ -88,7 +111,7 @@ export function getAutomationParams(
88
111
  * Generates a new automation ID.
89
112
  * @returns {string} The new automation ID which the automation doc can be stored under.
90
113
  */
91
- export function generateAutomationID() {
114
+ exports.generateAutomationID = () => {
92
115
  return `${DocumentType.AUTOMATION}${SEPARATOR}${newid()}`
93
116
  }
94
117
 
@@ -103,14 +126,14 @@ export function generateAutomationID() {
103
126
  * @param {string} fieldName2 the name of the field in the linked row.
104
127
  * @returns {string} The new link doc ID which the automation doc can be stored under.
105
128
  */
106
- export function generateLinkID(
107
- tableId1: string,
108
- tableId2: string,
109
- rowId1: string,
110
- rowId2: string,
111
- fieldName1: string,
112
- fieldName2: string
113
- ) {
129
+ exports.generateLinkID = (
130
+ tableId1,
131
+ tableId2,
132
+ rowId1,
133
+ rowId2,
134
+ fieldName1,
135
+ fieldName2
136
+ ) => {
114
137
  const tables = `${SEPARATOR}${tableId1}${SEPARATOR}${tableId2}`
115
138
  const rows = `${SEPARATOR}${rowId1}${SEPARATOR}${rowId2}`
116
139
  const fields = `${SEPARATOR}${fieldName1}${SEPARATOR}${fieldName2}`
@@ -120,7 +143,7 @@ export function generateLinkID(
120
143
  /**
121
144
  * Gets parameters for retrieving link docs, this is a utility function for the getDocParams function.
122
145
  */
123
- export function getLinkParams(otherProps: any = {}) {
146
+ exports.getLinkParams = (otherProps = {}) => {
124
147
  return getDocParams(DocumentType.LINK, null, otherProps)
125
148
  }
126
149
 
@@ -128,14 +151,14 @@ export function getLinkParams(otherProps: any = {}) {
128
151
  * Generates a new layout ID.
129
152
  * @returns {string} The new layout ID which the layout doc can be stored under.
130
153
  */
131
- export function generateLayoutID(id?: string) {
154
+ exports.generateLayoutID = id => {
132
155
  return `${DocumentType.LAYOUT}${SEPARATOR}${id || newid()}`
133
156
  }
134
157
 
135
158
  /**
136
159
  * Gets parameters for retrieving layout, this is a utility function for the getDocParams function.
137
160
  */
138
- export function getLayoutParams(layoutId?: Optional, otherProps: any = {}) {
161
+ exports.getLayoutParams = (layoutId = null, otherProps = {}) => {
139
162
  return getDocParams(DocumentType.LAYOUT, layoutId, otherProps)
140
163
  }
141
164
 
@@ -143,14 +166,14 @@ export function getLayoutParams(layoutId?: Optional, otherProps: any = {}) {
143
166
  * Generates a new screen ID.
144
167
  * @returns {string} The new screen ID which the screen doc can be stored under.
145
168
  */
146
- export function generateScreenID() {
169
+ exports.generateScreenID = () => {
147
170
  return `${DocumentType.SCREEN}${SEPARATOR}${newid()}`
148
171
  }
149
172
 
150
173
  /**
151
174
  * Gets parameters for retrieving screens, this is a utility function for the getDocParams function.
152
175
  */
153
- export function getScreenParams(screenId?: Optional, otherProps: any = {}) {
176
+ exports.getScreenParams = (screenId = null, otherProps = {}) => {
154
177
  return getDocParams(DocumentType.SCREEN, screenId, otherProps)
155
178
  }
156
179
 
@@ -158,14 +181,14 @@ export function getScreenParams(screenId?: Optional, otherProps: any = {}) {
158
181
  * Generates a new webhook ID.
159
182
  * @returns {string} The new webhook ID which the webhook doc can be stored under.
160
183
  */
161
- export function generateWebhookID() {
184
+ exports.generateWebhookID = () => {
162
185
  return `${DocumentType.WEBHOOK}${SEPARATOR}${newid()}`
163
186
  }
164
187
 
165
188
  /**
166
189
  * Gets parameters for retrieving a webhook, this is a utility function for the getDocParams function.
167
190
  */
168
- export function getWebhookParams(webhookId?: Optional, otherProps: any = {}) {
191
+ exports.getWebhookParams = (webhookId = null, otherProps = {}) => {
169
192
  return getDocParams(DocumentType.WEBHOOK, webhookId, otherProps)
170
193
  }
171
194
 
@@ -173,7 +196,7 @@ export function getWebhookParams(webhookId?: Optional, otherProps: any = {}) {
173
196
  * Generates a new datasource ID.
174
197
  * @returns {string} The new datasource ID which the webhook doc can be stored under.
175
198
  */
176
- export function generateDatasourceID({ plus = false } = {}) {
199
+ exports.generateDatasourceID = ({ plus = false } = {}) => {
177
200
  return `${
178
201
  plus ? DocumentType.DATASOURCE_PLUS : DocumentType.DATASOURCE
179
202
  }${SEPARATOR}${newid()}`
@@ -182,10 +205,7 @@ export function generateDatasourceID({ plus = false } = {}) {
182
205
  /**
183
206
  * Gets parameters for retrieving a datasource, this is a utility function for the getDocParams function.
184
207
  */
185
- export function getDatasourceParams(
186
- datasourceId?: Optional,
187
- otherProps: any = {}
188
- ) {
208
+ exports.getDatasourceParams = (datasourceId = null, otherProps = {}) => {
189
209
  return getDocParams(DocumentType.DATASOURCE, datasourceId, otherProps)
190
210
  }
191
211
 
@@ -193,7 +213,7 @@ export function getDatasourceParams(
193
213
  * Generates a new query ID.
194
214
  * @returns {string} The new query ID which the query doc can be stored under.
195
215
  */
196
- export function generateQueryID(datasourceId: string) {
216
+ exports.generateQueryID = datasourceId => {
197
217
  return `${
198
218
  DocumentType.QUERY
199
219
  }${SEPARATOR}${datasourceId}${SEPARATOR}${newid()}`
@@ -203,21 +223,21 @@ export function generateQueryID(datasourceId: string) {
203
223
  * Generates a metadata ID for automations, used to track errors in recurring
204
224
  * automations etc.
205
225
  */
206
- export function generateAutomationMetadataID(automationId: string) {
226
+ exports.generateAutomationMetadataID = automationId => {
207
227
  return `${DocumentType.AUTOMATION_METADATA}${SEPARATOR}${automationId}`
208
228
  }
209
229
 
210
230
  /**
211
231
  * Retrieve all automation metadata in an app database.
212
232
  */
213
- export function getAutomationMetadataParams(otherProps: any = {}) {
233
+ exports.getAutomationMetadataParams = (otherProps = {}) => {
214
234
  return getDocParams(DocumentType.AUTOMATION_METADATA, null, otherProps)
215
235
  }
216
236
 
217
237
  /**
218
238
  * Gets parameters for retrieving a query, this is a utility function for the getDocParams function.
219
239
  */
220
- export function getQueryParams(datasourceId?: Optional, otherProps: any = {}) {
240
+ exports.getQueryParams = (datasourceId = null, otherProps = {}) => {
221
241
  if (datasourceId == null) {
222
242
  return getDocParams(DocumentType.QUERY, null, otherProps)
223
243
  }
@@ -233,19 +253,15 @@ export function getQueryParams(datasourceId?: Optional, otherProps: any = {}) {
233
253
  * Generates a new flag document ID.
234
254
  * @returns {string} The ID of the flag document that was generated.
235
255
  */
236
- export function generateUserFlagID(userId: string) {
256
+ exports.generateUserFlagID = userId => {
237
257
  return `${DocumentType.USER_FLAG}${SEPARATOR}${userId}`
238
258
  }
239
259
 
240
- export function generateMetadataID(type: string, entityId: string) {
260
+ exports.generateMetadataID = (type, entityId) => {
241
261
  return `${DocumentType.METADATA}${SEPARATOR}${type}${SEPARATOR}${entityId}`
242
262
  }
243
263
 
244
- export function getMetadataParams(
245
- type: string,
246
- entityId?: Optional,
247
- otherProps: any = {}
248
- ) {
264
+ exports.getMetadataParams = (type, entityId = null, otherProps = {}) => {
249
265
  let docId = `${type}${SEPARATOR}`
250
266
  if (entityId != null) {
251
267
  docId += entityId
@@ -253,22 +269,22 @@ export function getMetadataParams(
253
269
  return getDocParams(DocumentType.METADATA, docId, otherProps)
254
270
  }
255
271
 
256
- export function generateMemoryViewID(viewName: string) {
272
+ exports.generateMemoryViewID = viewName => {
257
273
  return `${DocumentType.MEM_VIEW}${SEPARATOR}${viewName}`
258
274
  }
259
275
 
260
- export function getMemoryViewParams(otherProps: any = {}) {
276
+ exports.getMemoryViewParams = (otherProps = {}) => {
261
277
  return getDocParams(DocumentType.MEM_VIEW, null, otherProps)
262
278
  }
263
279
 
264
- export function generatePluginID(name: string) {
280
+ exports.generatePluginID = name => {
265
281
  return `${DocumentType.PLUGIN}${SEPARATOR}${name}`
266
282
  }
267
283
 
268
284
  /**
269
285
  * This can be used with the db.allDocs to get a list of IDs
270
286
  */
271
- export function getMultiIDParams(ids: string[]) {
287
+ exports.getMultiIDParams = ids => {
272
288
  return {
273
289
  keys: ids,
274
290
  include_docs: true,