@budibase/server 2.1.32-alpha.8 → 2.1.33

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 (663) hide show
  1. package/__mocks__/aws-sdk.ts +0 -14
  2. package/__mocks__/node-fetch.ts +1 -5
  3. package/builder/assets/{index.7176fd99.css → index.534f6c29.css} +1 -1
  4. package/builder/assets/{index.3efa93e2.js → index.d2995f56.js} +316 -316
  5. package/builder/index.html +2 -2
  6. package/coverage/clover.xml +3681 -10588
  7. package/coverage/coverage-final.json +77 -225
  8. package/coverage/lcov-report/{src/api/controllers/apikeys.ts.html → api/controllers/apikeys.js.html} +26 -26
  9. package/coverage/lcov-report/{src/api/controllers/automation.ts.html → api/controllers/automation.js.html} +75 -75
  10. package/coverage/lcov-report/{src/api/controllers/cloud.ts.html → api/controllers/cloud.js.html} +47 -47
  11. package/coverage/lcov-report/{src/api/controllers/datasource.ts.html → api/controllers/datasource.js.html} +87 -246
  12. package/coverage/lcov-report/{src/api/controllers/dev.ts.html → api/controllers/dev.js.html} +71 -53
  13. package/coverage/lcov-report/api/controllers/index.html +326 -0
  14. package/coverage/lcov-report/{src/api → api}/controllers/integration.js.html +10 -10
  15. package/coverage/lcov-report/{src/api/controllers/layout.ts.html → api/controllers/layout.js.html} +26 -26
  16. package/coverage/lcov-report/{src/api/controllers/metadata.ts.html → api/controllers/metadata.js.html} +23 -26
  17. package/coverage/lcov-report/{src/api → api}/controllers/migrations.js.html +10 -10
  18. package/coverage/lcov-report/{src/api/controllers/permission.ts.html → api/controllers/permission.js.html} +71 -80
  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} +17 -17
  21. package/coverage/lcov-report/{src/api/controllers/role.ts.html → api/controllers/role.js.html} +56 -44
  22. package/coverage/lcov-report/{src/api/controllers/routing.ts.html → api/controllers/routing.js.html} +56 -65
  23. package/coverage/lcov-report/{src/api → api}/controllers/row/external.js.html +13 -13
  24. package/coverage/lcov-report/{src/api → api}/controllers/row/index.html +46 -76
  25. package/coverage/lcov-report/{src/api → api}/controllers/row/internal.js.html +29 -26
  26. package/coverage/lcov-report/{src/api/controllers/row/internalSearch.ts.html → api/controllers/row/internalSearch.js.html} +110 -182
  27. package/coverage/lcov-report/{src/api/controllers/row/staticFormula.ts.html → api/controllers/row/staticFormula.js.html} +54 -69
  28. package/coverage/lcov-report/{src/api/controllers/row/utils.ts.html → api/controllers/row/utils.js.html} +43 -64
  29. package/coverage/lcov-report/{src/api/controllers/script.ts.html → api/controllers/script.js.html} +14 -17
  30. package/coverage/lcov-report/{src/api/controllers/table/bulkFormula.ts.html → api/controllers/table/bulkFormula.js.html} +54 -96
  31. package/coverage/lcov-report/{src/api/controllers/table/external.ts.html → api/controllers/table/external.js.html} +100 -196
  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} +35 -35
  34. package/coverage/lcov-report/{src/api/controllers/templates.ts.html → api/controllers/templates.js.html} +25 -34
  35. package/coverage/lcov-report/{src/api/controllers/user.ts.html → api/controllers/user.js.html} +85 -79
  36. package/coverage/lcov-report/{src/api/controllers/view/exporters.ts.html → api/controllers/view/exporters.js.html} +14 -20
  37. package/coverage/lcov-report/{src/api → api}/controllers/view/index.html +30 -30
  38. package/coverage/lcov-report/{src/api/controllers/view/index.ts.html → api/controllers/view/index.js.html} +48 -75
  39. package/coverage/lcov-report/{src/api/controllers/view/utils.ts.html → api/controllers/view/utils.js.html} +43 -61
  40. package/coverage/lcov-report/{src/api → api}/controllers/view/viewBuilder.js.html +10 -10
  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} +56 -35
  43. package/coverage/lcov-report/{src/api/routes/analytics.ts.html → api/routes/analytics.js.html} +14 -14
  44. package/coverage/lcov-report/{src/middleware/selfhost.ts.html → api/routes/apikeys.js.html} +27 -27
  45. package/coverage/lcov-report/{src/api/routes/automation.ts.html → api/routes/automation.js.html} +42 -48
  46. package/coverage/lcov-report/{src/api/routes/backup.ts.html → api/routes/cloud.js.html} +21 -21
  47. package/coverage/lcov-report/{src/api/routes/component.ts.html → api/routes/component.js.html} +17 -17
  48. package/coverage/lcov-report/{src/api/routes/datasource.ts.html → api/routes/datasource.js.html} +33 -60
  49. package/coverage/lcov-report/{src/api/routes/cloud.ts.html → api/routes/deploy.js.html} +22 -25
  50. package/coverage/lcov-report/{src/api/routes/webhook.ts.html → api/routes/dev.js.html} +43 -46
  51. package/coverage/lcov-report/{src/api → api}/routes/index.html +47 -167
  52. package/coverage/lcov-report/{src/api/routes/apikeys.ts.html → api/routes/integration.js.html} +18 -18
  53. package/coverage/lcov-report/{src/api/routes/layout.ts.html → api/routes/layout.js.html} +18 -18
  54. package/coverage/lcov-report/{src/api/routes/metadata.ts.html → api/routes/metadata.js.html} +24 -24
  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/view.ts.html → api/routes/permission.js.html} +37 -40
  57. package/coverage/lcov-report/{src/api/routes/query.ts.html → api/routes/query.js.html} +42 -33
  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} +17 -17
  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} +33 -24
  63. package/coverage/lcov-report/{src/api/routes/templates.ts.html → api/routes/templates.js.html} +18 -18
  64. package/coverage/lcov-report/{src/api/routes/user.ts.html → api/routes/user.js.html} +35 -29
  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} +58 -46
  67. package/coverage/lcov-report/{src/definitions/automations.ts.html → api/routes/view.js.html} +41 -44
  68. package/coverage/lcov-report/{src/automations → automations}/actions.js.html +10 -10
  69. package/coverage/lcov-report/{src/automations → automations}/automationUtils.js.html +10 -10
  70. package/coverage/lcov-report/{src/automations → automations}/bullboard.js.html +10 -10
  71. package/coverage/lcov-report/{src/automations → automations}/index.html +24 -39
  72. package/coverage/lcov-report/{src/automations → automations}/index.js.html +10 -10
  73. package/coverage/lcov-report/{src/automations → automations}/steps/bash.js.html +10 -10
  74. package/coverage/lcov-report/{src/automations → automations}/steps/delay.js.html +10 -10
  75. package/coverage/lcov-report/{src/automations → automations}/steps/discord.js.html +10 -10
  76. package/coverage/lcov-report/{src/automations → automations}/steps/executeQuery.js.html +10 -10
  77. package/coverage/lcov-report/{src/automations → automations}/steps/executeScript.js.html +10 -10
  78. package/coverage/lcov-report/{src/automations → automations}/steps/filter.js.html +10 -10
  79. package/coverage/lcov-report/{src/automations → automations}/steps/index.html +26 -56
  80. package/coverage/lcov-report/{src/automations → automations}/steps/integromat.js.html +10 -10
  81. package/coverage/lcov-report/{src/automations → automations}/steps/loop.js.html +10 -10
  82. package/coverage/lcov-report/{src/automations → automations}/steps/outgoingWebhook.js.html +10 -10
  83. package/coverage/lcov-report/{src/automations → automations}/steps/queryRows.js.html +10 -10
  84. package/coverage/lcov-report/{src/automations → automations}/steps/sendSmtpEmail.js.html +10 -10
  85. package/coverage/lcov-report/{src/automations → automations}/steps/serverLog.js.html +10 -10
  86. package/coverage/lcov-report/{src/automations → automations}/steps/slack.js.html +10 -10
  87. package/coverage/lcov-report/{src/automations → automations}/steps/updateRow.js.html +10 -10
  88. package/coverage/lcov-report/{src/automations → automations}/steps/utils.js.html +19 -19
  89. package/coverage/lcov-report/{src/automations → automations}/steps/zapier.js.html +10 -10
  90. package/coverage/lcov-report/{src/automations → automations}/triggerInfo/app.js.html +10 -10
  91. package/coverage/lcov-report/{src/automations → automations}/triggerInfo/cron.js.html +10 -10
  92. package/coverage/lcov-report/{src/automations → automations}/triggerInfo/index.html +10 -10
  93. package/coverage/lcov-report/{src/automations → automations}/triggerInfo/index.js.html +10 -10
  94. package/coverage/lcov-report/{src/automations → automations}/triggerInfo/rowDeleted.js.html +10 -10
  95. package/coverage/lcov-report/{src/automations → automations}/triggerInfo/rowSaved.js.html +10 -10
  96. package/coverage/lcov-report/{src/automations → automations}/triggerInfo/rowUpdated.js.html +10 -10
  97. package/coverage/lcov-report/{src/automations → automations}/triggerInfo/webhook.js.html +10 -10
  98. package/coverage/lcov-report/{src/automations → automations}/triggers.js.html +23 -20
  99. package/coverage/lcov-report/{src/constants → constants}/index.html +14 -14
  100. package/coverage/lcov-report/{src/constants → constants}/index.js.html +22 -16
  101. package/coverage/lcov-report/{src/constants → constants}/layouts.js.html +10 -10
  102. package/coverage/lcov-report/{src/constants → constants}/screens.js.html +12 -12
  103. package/coverage/lcov-report/{src/db → db}/inMemoryView.js.html +13 -13
  104. package/coverage/lcov-report/{src/db → db}/index.html +27 -42
  105. package/coverage/lcov-report/{src/db → db}/index.js.html +18 -18
  106. package/coverage/lcov-report/{src/db → db}/linkedRows/LinkController.js.html +160 -22
  107. package/coverage/lcov-report/{src/db → db}/linkedRows/index.html +22 -37
  108. package/coverage/lcov-report/{src/db → db}/linkedRows/index.js.html +12 -12
  109. package/coverage/lcov-report/{src/db → db}/linkedRows/linkUtils.js.html +13 -13
  110. package/coverage/lcov-report/{src/db → db}/newid.js.html +10 -10
  111. package/coverage/lcov-report/{src/db/utils.ts.html → db/utils.js.html} +153 -105
  112. package/coverage/lcov-report/{src/events → events}/AutomationEmitter.js.html +10 -10
  113. package/coverage/lcov-report/{src/events → events}/index.html +10 -10
  114. package/coverage/lcov-report/{src/events → events}/index.js.html +10 -10
  115. package/coverage/lcov-report/{src/events → events}/utils.js.html +10 -10
  116. package/coverage/lcov-report/index.html +161 -671
  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} +28 -31
  120. package/coverage/lcov-report/{src/middleware/builder.ts.html → middleware/builder.js.html} +37 -43
  121. package/coverage/lcov-report/{src/middleware/currentapp.ts.html → middleware/currentapp.js.html} +68 -77
  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} +24 -24
  125. package/coverage/lcov-report/{src/middleware/resourceId.ts.html → middleware/resourceId.js.html} +25 -40
  126. package/coverage/lcov-report/{src/tests/utilities/index.js.html → middleware/selfhost.js.html} +30 -33
  127. package/coverage/lcov-report/{src/middleware/utils.ts.html → middleware/utils.js.html} +13 -19
  128. package/coverage/lcov-report/{src/utilities/budibaseDir.ts.html → utilities/budibaseDir.js.html} +12 -12
  129. package/coverage/lcov-report/{src/utilities → utilities}/centralPath.js.html +10 -10
  130. package/coverage/lcov-report/{src/utilities → utilities}/csvParser.js.html +10 -10
  131. package/coverage/lcov-report/{src/utilities/global.ts.html → utilities/global.js.html} +74 -107
  132. package/coverage/lcov-report/{src/utilities → utilities}/index.html +61 -76
  133. package/coverage/lcov-report/{src/utilities/index.ts.html → utilities/index.js.html} +53 -77
  134. package/coverage/lcov-report/{src/utilities → utilities}/plugins.js.html +10 -10
  135. package/coverage/lcov-report/{src/utilities → utilities}/queue/inMemoryQueue.js.html +10 -10
  136. package/coverage/lcov-report/{src/utilities → utilities}/queue/index.html +10 -10
  137. package/coverage/lcov-report/{src/sdk → utilities/routing}/index.html +10 -10
  138. package/coverage/lcov-report/{src/api/routes/role.ts.html → utilities/routing/index.js.html} +42 -39
  139. package/coverage/lcov-report/{src/migrations → utilities/rowProcessor}/index.html +37 -22
  140. package/coverage/lcov-report/{src/utilities/rowProcessor/index.ts.html → utilities/rowProcessor/index.js.html} +344 -113
  141. package/coverage/lcov-report/{src/utilities/rowProcessor/utils.ts.html → utilities/rowProcessor/utils.js.html} +38 -50
  142. package/coverage/lcov-report/{src/utilities → utilities}/scriptRunner.js.html +10 -10
  143. package/coverage/lcov-report/{src/utilities/security.ts.html → utilities/security.js.html} +74 -56
  144. package/coverage/lcov-report/{src/utilities → utilities}/statusCodes.js.html +10 -10
  145. package/coverage/lcov-report/{src/utilities → utilities}/usageQuota/index.html +27 -27
  146. package/coverage/lcov-report/{src/utilities/usageQuota/rows.ts.html → utilities/usageQuota/rows.js.html} +46 -34
  147. package/coverage/lcov-report/{src/utilities → utilities}/usageQuota/usageQuoteReset.js.html +10 -10
  148. package/coverage/lcov-report/{src/utilities/users.ts.html → utilities/users.js.html} +35 -29
  149. package/coverage/lcov-report/{src/utilities/workerRequests.ts.html → utilities/workerRequests.js.html} +61 -76
  150. package/coverage/lcov.info +6772 -19273
  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 +84 -104
  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 +92 -144
  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/layout.js +15 -18
  161. package/dist/api/controllers/metadata.js +37 -51
  162. package/dist/api/controllers/permission.js +43 -52
  163. package/dist/api/controllers/plugin/index.js +7 -6
  164. package/dist/api/controllers/public/applications.js +9 -17
  165. package/dist/api/controllers/public/tables.js +9 -29
  166. package/dist/api/controllers/query/import/index.js +2 -1
  167. package/dist/api/controllers/query/index.js +13 -10
  168. package/dist/api/controllers/query/validation.js +33 -41
  169. package/dist/api/controllers/role.js +27 -29
  170. package/dist/api/controllers/routing.js +58 -71
  171. package/dist/api/controllers/row/ExternalRequest.js +8 -12
  172. package/dist/api/controllers/row/external.js +3 -3
  173. package/dist/api/controllers/row/index.js +7 -16
  174. package/dist/api/controllers/row/internal.js +12 -11
  175. package/dist/api/controllers/row/internalSearch.js +80 -95
  176. package/dist/api/controllers/row/staticFormula.js +75 -85
  177. package/dist/api/controllers/row/utils.js +84 -118
  178. package/dist/api/controllers/screen.js +66 -81
  179. package/dist/api/controllers/script.js +6 -13
  180. package/dist/api/controllers/static/index.js +11 -9
  181. package/dist/api/controllers/table/bulkFormula.js +35 -47
  182. package/dist/api/controllers/table/external.js +57 -67
  183. package/dist/api/controllers/table/index.js +33 -66
  184. package/dist/api/controllers/table/internal.js +6 -5
  185. package/dist/api/controllers/table/utils.js +35 -39
  186. package/dist/api/controllers/templates.js +10 -17
  187. package/dist/api/controllers/user.js +70 -82
  188. package/dist/api/controllers/view/exporters.js +4 -8
  189. package/dist/api/controllers/view/index.js +153 -201
  190. package/dist/api/controllers/view/utils.js +121 -151
  191. package/dist/api/index.js +34 -38
  192. package/dist/api/routes/analytics.js +3 -29
  193. package/dist/api/routes/apikeys.js +7 -33
  194. package/dist/api/routes/application.js +9 -8
  195. package/dist/api/routes/auth.js +2 -1
  196. package/dist/api/routes/automation.js +20 -46
  197. package/dist/api/routes/backup.js +4 -3
  198. package/dist/api/routes/cloud.js +6 -32
  199. package/dist/api/routes/component.js +6 -32
  200. package/dist/api/routes/datasource.js +13 -39
  201. package/dist/api/routes/deploy.js +8 -34
  202. package/dist/api/routes/dev.js +10 -36
  203. package/dist/api/routes/integration.js +7 -10
  204. package/dist/api/routes/layout.js +7 -33
  205. package/dist/api/routes/metadata.js +10 -36
  206. package/dist/api/routes/migrations.js +6 -32
  207. package/dist/api/routes/permission.js +12 -38
  208. package/dist/api/routes/plugin.js +5 -5
  209. package/dist/api/routes/public/index.js +9 -9
  210. package/dist/api/routes/query.js +15 -42
  211. package/dist/api/routes/role.js +10 -36
  212. package/dist/api/routes/routing.js +6 -32
  213. package/dist/api/routes/row.js +11 -12
  214. package/dist/api/routes/screen.js +9 -35
  215. package/dist/api/routes/script.js +6 -32
  216. package/dist/api/routes/static.js +9 -9
  217. package/dist/api/routes/table.js +13 -40
  218. package/dist/api/routes/templates.js +7 -33
  219. package/dist/api/routes/tests/utilities/TestFunctions.js +8 -6
  220. package/dist/api/routes/user.js +13 -40
  221. package/dist/api/routes/utils/validators.js +126 -142
  222. package/dist/api/routes/view.js +12 -38
  223. package/dist/api/routes/webhook.js +2 -1
  224. package/dist/app.js +4 -3
  225. package/dist/automations/tests/utilities/index.js +12 -21
  226. package/dist/automations/triggers.js +6 -5
  227. package/dist/automations/utils.js +8 -9
  228. package/dist/constants/index.js +5 -3
  229. package/dist/constants/screens.js +2 -2
  230. package/dist/db/inMemoryView.js +3 -3
  231. package/dist/db/linkedRows/LinkController.js +31 -4
  232. package/dist/db/linkedRows/index.js +2 -2
  233. package/dist/db/linkedRows/linkUtils.js +3 -3
  234. package/dist/db/utils.js +119 -146
  235. package/dist/db/views/staticViews.js +4 -4
  236. package/dist/integrations/elasticsearch.js +2 -26
  237. package/dist/integrations/googlesheets.js +6 -4
  238. package/dist/integrations/index.js +6 -15
  239. package/dist/integrations/s3.js +1 -157
  240. package/dist/middleware/appInfo.js +9 -14
  241. package/dist/middleware/authorized.js +21 -22
  242. package/dist/middleware/builder.js +40 -41
  243. package/dist/middleware/currentapp.js +37 -39
  244. package/dist/middleware/joi-validator.js +10 -17
  245. package/dist/middleware/publicApi.js +6 -5
  246. package/dist/middleware/resourceId.js +9 -16
  247. package/dist/middleware/selfhost.js +4 -5
  248. package/dist/middleware/utils.js +2 -5
  249. package/dist/migrations/functions/appUrls.js +2 -2
  250. package/dist/migrations/functions/backfill/global.js +1 -1
  251. package/dist/migrations/functions/usageQuotas/syncApps.js +4 -3
  252. package/dist/migrations/functions/usageQuotas/syncRows.js +4 -3
  253. package/dist/migrations/functions/userEmailViewCasing.js +3 -3
  254. package/dist/package.json +44 -10
  255. package/dist/sdk/app/backups/exports.js +2 -1
  256. package/dist/sdk/app/backups/imports.js +3 -2
  257. package/dist/sdk/app/tables/index.js +5 -5
  258. package/dist/startup.js +4 -4
  259. package/dist/tests/utilities/TestConfiguration.js +36 -30
  260. package/dist/tests/utilities/structures.js +4 -3
  261. package/dist/threads/automation.js +16 -15
  262. package/dist/threads/query.js +20 -17
  263. package/dist/threads/utils.js +9 -11
  264. package/dist/tsconfig.build.tsbuildinfo +1 -1
  265. package/dist/utilities/budibaseDir.js +2 -4
  266. package/dist/utilities/fileSystem/clientLibrary.js +12 -12
  267. package/dist/utilities/fileSystem/index.js +3 -3
  268. package/dist/utilities/fileSystem/utilities.js +22 -0
  269. package/dist/utilities/global.js +66 -87
  270. package/dist/utilities/index.js +75 -102
  271. package/dist/utilities/redis.js +65 -100
  272. package/dist/utilities/routing/index.js +23 -27
  273. package/dist/utilities/rowProcessor/index.js +191 -124
  274. package/dist/utilities/rowProcessor/utils.js +26 -35
  275. package/dist/utilities/security.js +35 -39
  276. package/dist/utilities/usageQuota/rows.js +49 -56
  277. package/dist/utilities/users.js +28 -31
  278. package/dist/utilities/workerRequests.js +82 -115
  279. package/dist/watch.js +2 -1
  280. package/package.json +45 -11
  281. package/scripts/exportAppTemplate.js +2 -2
  282. package/{src/tests/jestSetup.ts → scripts/jestSetup.js} +2 -11
  283. package/scripts/localdomain.js +6 -34
  284. package/src/api/controllers/{apikeys.ts → apikeys.js} +10 -10
  285. package/src/api/controllers/application.ts +42 -56
  286. package/src/api/controllers/auth.ts +3 -4
  287. package/src/api/controllers/{automation.ts → automation.js} +48 -48
  288. package/src/api/controllers/{cloud.ts → cloud.js} +24 -24
  289. package/src/api/controllers/component.ts +1 -2
  290. package/src/api/controllers/{datasource.ts → datasource.js} +47 -100
  291. package/src/api/controllers/deploy/{Deployment.ts → Deployment.js} +10 -13
  292. package/src/api/controllers/deploy/index.ts +25 -13
  293. package/src/api/controllers/{dev.ts → dev.js} +37 -31
  294. package/src/api/controllers/{layout.ts → layout.js} +8 -8
  295. package/src/api/controllers/{metadata.ts → metadata.js} +10 -11
  296. package/src/api/controllers/{permission.ts → permission.js} +46 -49
  297. package/src/api/controllers/plugin/index.ts +5 -4
  298. package/src/api/controllers/public/applications.ts +9 -15
  299. package/src/api/controllers/public/tables.ts +2 -2
  300. package/src/api/controllers/query/import/index.ts +3 -2
  301. package/src/api/controllers/query/index.ts +14 -11
  302. package/src/api/controllers/query/{validation.ts → validation.js} +7 -7
  303. package/src/api/controllers/{role.ts → role.js} +25 -21
  304. package/src/api/controllers/{routing.ts → routing.js} +34 -37
  305. package/src/api/controllers/row/ExternalRequest.ts +11 -9
  306. package/src/api/controllers/row/external.js +3 -3
  307. package/src/api/controllers/row/index.ts +9 -17
  308. package/src/api/controllers/row/internal.js +12 -11
  309. package/src/api/controllers/row/{internalSearch.ts → internalSearch.js} +68 -92
  310. package/src/api/controllers/row/{staticFormula.ts → staticFormula.js} +23 -28
  311. package/src/api/controllers/row/{utils.ts → utils.js} +18 -25
  312. package/src/api/controllers/screen.ts +6 -10
  313. package/src/api/controllers/script.js +11 -0
  314. package/src/api/controllers/static/index.ts +13 -9
  315. package/src/api/controllers/table/{bulkFormula.ts → bulkFormula.js} +25 -39
  316. package/src/api/controllers/table/{external.ts → external.js} +54 -86
  317. package/src/api/controllers/table/{index.ts → index.js} +17 -17
  318. package/src/api/controllers/table/internal.ts +6 -5
  319. package/src/api/controllers/table/utils.ts +21 -26
  320. package/src/api/controllers/{templates.ts → templates.js} +7 -10
  321. package/src/api/controllers/{user.ts → user.js} +49 -47
  322. package/src/api/controllers/view/{exporters.ts → exporters.js} +3 -5
  323. package/src/api/controllers/view/{index.ts → index.js} +27 -36
  324. package/src/api/controllers/view/{utils.ts → utils.js} +20 -26
  325. package/src/api/{index.ts → index.js} +22 -15
  326. package/src/api/routes/analytics.js +9 -0
  327. package/src/api/routes/apikeys.js +12 -0
  328. package/src/api/routes/application.ts +9 -17
  329. package/src/api/routes/auth.ts +2 -2
  330. package/src/api/routes/automation.js +85 -0
  331. package/src/api/routes/backup.ts +4 -8
  332. package/src/api/routes/cloud.js +14 -0
  333. package/src/api/routes/component.js +14 -0
  334. package/src/api/routes/datasource.js +51 -0
  335. package/src/api/routes/deploy.js +17 -0
  336. package/src/api/routes/dev.js +26 -0
  337. package/src/api/routes/integration.js +12 -0
  338. package/src/api/routes/layout.js +16 -0
  339. package/src/api/routes/{metadata.ts → metadata.js} +13 -13
  340. package/src/api/routes/migrations.js +14 -0
  341. package/src/api/routes/permission.js +33 -0
  342. package/src/api/routes/plugin.ts +6 -14
  343. package/src/api/routes/public/index.ts +10 -10
  344. package/src/api/routes/public/tests/compare.spec.js +1 -1
  345. package/src/api/routes/{query.ts → query.js} +22 -19
  346. package/src/api/routes/role.js +15 -0
  347. package/src/api/routes/routing.js +14 -0
  348. package/src/api/routes/row.ts +15 -13
  349. package/src/api/routes/screen.js +18 -0
  350. package/src/api/routes/script.js +10 -0
  351. package/src/api/routes/static.ts +10 -7
  352. package/src/api/routes/{table.ts → table.js} +13 -10
  353. package/src/api/routes/templates.js +16 -0
  354. package/src/api/routes/tests/analytics.spec.js +1 -1
  355. package/src/api/routes/tests/backup.spec.js +1 -9
  356. package/src/api/routes/tests/permissions.spec.js +1 -2
  357. package/src/api/routes/tests/query.spec.js +10 -15
  358. package/src/api/routes/tests/role.spec.js +9 -7
  359. package/src/api/routes/tests/routing.spec.js +1 -2
  360. package/src/api/routes/tests/row.spec.js +4 -3
  361. package/src/api/routes/tests/static.spec.js +2 -2
  362. package/src/api/routes/tests/table.spec.js +35 -38
  363. package/src/api/routes/tests/user.spec.js +1 -2
  364. package/src/api/routes/tests/utilities/TestFunctions.ts +8 -6
  365. package/src/api/routes/user.js +53 -0
  366. package/src/api/routes/utils/{validators.ts → validators.js} +37 -33
  367. package/src/api/routes/view.js +31 -0
  368. package/src/api/routes/webhook.ts +2 -2
  369. package/src/app.ts +4 -3
  370. package/src/automations/tests/updateRow.spec.js +1 -0
  371. package/src/automations/tests/utilities/index.js +4 -10
  372. package/src/automations/triggers.js +6 -5
  373. package/src/automations/utils.ts +12 -9
  374. package/src/constants/index.js +5 -3
  375. package/src/constants/screens.js +2 -2
  376. package/src/db/inMemoryView.js +3 -3
  377. package/src/db/linkedRows/LinkController.js +50 -4
  378. package/src/db/linkedRows/index.js +2 -2
  379. package/src/db/linkedRows/linkUtils.js +3 -3
  380. package/src/db/tests/linkController.spec.js +57 -73
  381. package/src/db/tests/linkTests.spec.js +14 -17
  382. package/src/db/{utils.ts → utils.js} +93 -77
  383. package/src/db/views/staticViews.js +4 -4
  384. package/src/integrations/base/sql.ts +1 -1
  385. package/src/integrations/base/sqlTable.ts +1 -1
  386. package/src/integrations/elasticsearch.ts +2 -32
  387. package/src/integrations/googlesheets.ts +7 -4
  388. package/src/integrations/index.ts +41 -45
  389. package/src/integrations/s3.ts +3 -179
  390. package/src/integrations/tests/s3.spec.ts +1 -85
  391. package/src/middleware/appInfo.js +19 -0
  392. package/src/middleware/authorized.ts +28 -21
  393. package/src/middleware/{builder.ts → builder.js} +15 -17
  394. package/src/middleware/{currentapp.ts → currentapp.js} +39 -42
  395. package/src/middleware/{joi-validator.ts → joi-validator.js} +8 -9
  396. package/src/middleware/publicApi.js +21 -0
  397. package/src/middleware/{resourceId.ts → resourceId.js} +11 -16
  398. package/src/middleware/{selfhost.ts → selfhost.js} +2 -4
  399. package/src/middleware/tests/authorized.spec.js +6 -5
  400. package/src/middleware/tests/currentapp.spec.js +63 -118
  401. package/src/middleware/{utils.ts → utils.js} +1 -3
  402. package/src/migrations/functions/appUrls.ts +2 -2
  403. package/src/migrations/functions/backfill/app/tables.ts +5 -2
  404. package/src/migrations/functions/backfill/global.ts +1 -1
  405. package/src/migrations/functions/tests/appUrls.spec.js +4 -4
  406. package/src/migrations/functions/tests/userEmailViewCasing.spec.js +9 -14
  407. package/src/migrations/functions/usageQuotas/syncApps.ts +4 -3
  408. package/src/migrations/functions/usageQuotas/syncRows.ts +5 -4
  409. package/src/migrations/functions/usageQuotas/tests/syncRows.spec.ts +7 -7
  410. package/src/migrations/functions/userEmailViewCasing.ts +3 -3
  411. package/src/module.d.ts +14 -0
  412. package/src/sdk/app/backups/exports.ts +3 -5
  413. package/src/sdk/app/backups/imports.ts +14 -7
  414. package/src/sdk/app/backups/statistics.ts +18 -9
  415. package/src/sdk/app/tables/index.ts +8 -7
  416. package/src/startup.ts +2 -2
  417. package/src/tests/utilities/TestConfiguration.js +36 -42
  418. package/src/tests/utilities/structures.js +4 -3
  419. package/src/threads/automation.ts +16 -15
  420. package/src/threads/query.ts +17 -12
  421. package/src/threads/utils.ts +5 -4
  422. package/src/utilities/budibaseDir.js +3 -0
  423. package/src/utilities/fileSystem/clientLibrary.js +12 -12
  424. package/src/utilities/fileSystem/index.js +8 -8
  425. package/src/utilities/fileSystem/utilities.js +36 -0
  426. package/src/utilities/global.js +127 -0
  427. package/src/utilities/{index.ts → index.js} +32 -40
  428. package/src/utilities/{redis.ts → redis.js} +20 -21
  429. package/src/utilities/routing/index.js +25 -0
  430. package/src/utilities/rowProcessor/{index.ts → index.js} +142 -65
  431. package/src/utilities/rowProcessor/{utils.ts → utils.js} +15 -19
  432. package/src/utilities/security.js +71 -0
  433. package/src/utilities/usageQuota/{rows.ts → rows.js} +18 -14
  434. package/src/utilities/{users.ts → users.js} +13 -11
  435. package/src/utilities/{workerRequests.ts → workerRequests.js} +38 -43
  436. package/src/watch.ts +3 -2
  437. package/tsconfig.json +1 -3
  438. package/coverage/lcov-report/src/api/controllers/analytics.ts.html +0 -190
  439. package/coverage/lcov-report/src/api/controllers/application.ts.html +0 -2038
  440. package/coverage/lcov-report/src/api/controllers/auth.ts.html +0 -301
  441. package/coverage/lcov-report/src/api/controllers/backup.ts.html +0 -148
  442. package/coverage/lcov-report/src/api/controllers/component.ts.html +0 -259
  443. package/coverage/lcov-report/src/api/controllers/deploy/Deployment.ts.html +0 -259
  444. package/coverage/lcov-report/src/api/controllers/deploy/index.html +0 -131
  445. package/coverage/lcov-report/src/api/controllers/deploy/index.ts.html +0 -730
  446. package/coverage/lcov-report/src/api/controllers/index.html +0 -431
  447. package/coverage/lcov-report/src/api/controllers/plugin/file.ts.html +0 -130
  448. package/coverage/lcov-report/src/api/controllers/plugin/github.ts.html +0 -310
  449. package/coverage/lcov-report/src/api/controllers/plugin/index.html +0 -206
  450. package/coverage/lcov-report/src/api/controllers/plugin/index.ts.html +0 -484
  451. package/coverage/lcov-report/src/api/controllers/plugin/npm.ts.html +0 -253
  452. package/coverage/lcov-report/src/api/controllers/plugin/uploaders.ts.html +0 -97
  453. package/coverage/lcov-report/src/api/controllers/plugin/url.ts.html +0 -121
  454. package/coverage/lcov-report/src/api/controllers/plugin/utils.ts.html +0 -142
  455. package/coverage/lcov-report/src/api/controllers/public/applications.ts.html +0 -334
  456. package/coverage/lcov-report/src/api/controllers/public/index.html +0 -191
  457. package/coverage/lcov-report/src/api/controllers/public/mapping/applications.ts.html +0 -181
  458. package/coverage/lcov-report/src/api/controllers/public/mapping/index.html +0 -191
  459. package/coverage/lcov-report/src/api/controllers/public/mapping/index.ts.html +0 -124
  460. package/coverage/lcov-report/src/api/controllers/public/mapping/queries.ts.html +0 -202
  461. package/coverage/lcov-report/src/api/controllers/public/mapping/rows.ts.html +0 -178
  462. package/coverage/lcov-report/src/api/controllers/public/mapping/tables.ts.html +0 -163
  463. package/coverage/lcov-report/src/api/controllers/public/mapping/users.ts.html +0 -181
  464. package/coverage/lcov-report/src/api/controllers/public/queries.ts.html +0 -145
  465. package/coverage/lcov-report/src/api/controllers/public/rows.ts.html +0 -328
  466. package/coverage/lcov-report/src/api/controllers/public/tables.ts.html +0 -253
  467. package/coverage/lcov-report/src/api/controllers/public/users.ts.html +0 -268
  468. package/coverage/lcov-report/src/api/controllers/public/utils.ts.html +0 -220
  469. package/coverage/lcov-report/src/api/controllers/query/import/index.html +0 -116
  470. package/coverage/lcov-report/src/api/controllers/query/import/index.ts.html +0 -373
  471. package/coverage/lcov-report/src/api/controllers/query/import/sources/base/index.html +0 -131
  472. package/coverage/lcov-report/src/api/controllers/query/import/sources/base/index.ts.html +0 -379
  473. package/coverage/lcov-report/src/api/controllers/query/import/sources/base/openapi.ts.html +0 -157
  474. package/coverage/lcov-report/src/api/controllers/query/import/sources/curl.ts.html +0 -403
  475. package/coverage/lcov-report/src/api/controllers/query/import/sources/index.html +0 -146
  476. package/coverage/lcov-report/src/api/controllers/query/import/sources/openapi2.ts.html +0 -586
  477. package/coverage/lcov-report/src/api/controllers/query/import/sources/openapi3.ts.html +0 -712
  478. package/coverage/lcov-report/src/api/controllers/query/index.html +0 -131
  479. package/coverage/lcov-report/src/api/controllers/query/index.ts.html +0 -976
  480. package/coverage/lcov-report/src/api/controllers/row/ExternalRequest.ts.html +0 -2320
  481. package/coverage/lcov-report/src/api/controllers/row/index.ts.html +0 -541
  482. package/coverage/lcov-report/src/api/controllers/screen.ts.html +0 -463
  483. package/coverage/lcov-report/src/api/controllers/static/index.html +0 -116
  484. package/coverage/lcov-report/src/api/controllers/static/index.ts.html +0 -688
  485. package/coverage/lcov-report/src/api/controllers/table/index.html +0 -176
  486. package/coverage/lcov-report/src/api/controllers/table/internal.ts.html +0 -661
  487. package/coverage/lcov-report/src/api/controllers/table/utils.ts.html +0 -1255
  488. package/coverage/lcov-report/src/api/controllers/webhook.ts.html +0 -379
  489. package/coverage/lcov-report/src/api/routes/application.ts.html +0 -223
  490. package/coverage/lcov-report/src/api/routes/auth.ts.html +0 -109
  491. package/coverage/lcov-report/src/api/routes/deploy.ts.html +0 -148
  492. package/coverage/lcov-report/src/api/routes/dev.ts.html +0 -199
  493. package/coverage/lcov-report/src/api/routes/index.ts.html +0 -289
  494. package/coverage/lcov-report/src/api/routes/integration.ts.html +0 -133
  495. package/coverage/lcov-report/src/api/routes/migrations.ts.html +0 -127
  496. package/coverage/lcov-report/src/api/routes/permission.ts.html +0 -208
  497. package/coverage/lcov-report/src/api/routes/plugin.ts.html +0 -151
  498. package/coverage/lcov-report/src/api/routes/public/applications.ts.html +0 -541
  499. package/coverage/lcov-report/src/api/routes/public/index.html +0 -191
  500. package/coverage/lcov-report/src/api/routes/public/index.ts.html +0 -502
  501. package/coverage/lcov-report/src/api/routes/public/middleware/index.html +0 -116
  502. package/coverage/lcov-report/src/api/routes/public/middleware/mapper.ts.html +0 -328
  503. package/coverage/lcov-report/src/api/routes/public/queries.ts.html +0 -313
  504. package/coverage/lcov-report/src/api/routes/public/rows.ts.html +0 -598
  505. package/coverage/lcov-report/src/api/routes/public/tables.ts.html +0 -586
  506. package/coverage/lcov-report/src/api/routes/public/users.ts.html +0 -511
  507. package/coverage/lcov-report/src/api/routes/public/utils/Endpoint.ts.html +0 -238
  508. package/coverage/lcov-report/src/api/routes/public/utils/index.html +0 -116
  509. package/coverage/lcov-report/src/api/routes/row.ts.html +0 -883
  510. package/coverage/lcov-report/src/api/routes/screen.ts.html +0 -154
  511. package/coverage/lcov-report/src/api/routes/static.ts.html +0 -280
  512. package/coverage/lcov-report/src/api/routes/tests/utilities/TestFunctions.ts.html +0 -550
  513. package/coverage/lcov-report/src/api/routes/tests/utilities/index.html +0 -131
  514. package/coverage/lcov-report/src/api/routes/tests/utilities/index.js.html +0 -367
  515. package/coverage/lcov-report/src/app.ts.html +0 -400
  516. package/coverage/lcov-report/src/automations/logging/index.html +0 -116
  517. package/coverage/lcov-report/src/automations/logging/index.ts.html +0 -199
  518. package/coverage/lcov-report/src/automations/steps/createRow.ts.html +0 -367
  519. package/coverage/lcov-report/src/automations/steps/deleteRow.ts.html +0 -334
  520. package/coverage/lcov-report/src/automations/tests/utilities/index.html +0 -116
  521. package/coverage/lcov-report/src/automations/tests/utilities/index.js.html +0 -256
  522. package/coverage/lcov-report/src/automations/utils.ts.html +0 -886
  523. package/coverage/lcov-report/src/db/defaultData/datasource_bb_default.js.html +0 -2023
  524. package/coverage/lcov-report/src/db/defaultData/employeeImport.js.html +0 -541
  525. package/coverage/lcov-report/src/db/defaultData/expensesImport.js.html +0 -427
  526. package/coverage/lcov-report/src/db/defaultData/index.html +0 -176
  527. package/coverage/lcov-report/src/db/defaultData/inventoryImport.js.html +0 -403
  528. package/coverage/lcov-report/src/db/defaultData/jobsImport.js.html +0 -559
  529. package/coverage/lcov-report/src/db/dynamoClient.js.html +0 -466
  530. package/coverage/lcov-report/src/db/linkedRows/LinkDocument.js.html +0 -226
  531. package/coverage/lcov-report/src/definitions/datasource.ts.html +0 -235
  532. package/coverage/lcov-report/src/definitions/index.html +0 -131
  533. package/coverage/lcov-report/src/environment.js.html +0 -445
  534. package/coverage/lcov-report/src/index.html +0 -191
  535. package/coverage/lcov-report/src/index.ts.html +0 -133
  536. package/coverage/lcov-report/src/integrations/airtable.ts.html +0 -529
  537. package/coverage/lcov-report/src/integrations/arangodb.ts.html +0 -415
  538. package/coverage/lcov-report/src/integrations/base/index.html +0 -161
  539. package/coverage/lcov-report/src/integrations/base/query.ts.html +0 -133
  540. package/coverage/lcov-report/src/integrations/base/sql.ts.html +0 -1951
  541. package/coverage/lcov-report/src/integrations/base/sqlTable.ts.html +0 -691
  542. package/coverage/lcov-report/src/integrations/base/utils.ts.html +0 -121
  543. package/coverage/lcov-report/src/integrations/couchdb.ts.html +0 -406
  544. package/coverage/lcov-report/src/integrations/dynamodb.ts.html +0 -745
  545. package/coverage/lcov-report/src/integrations/elasticsearch.ts.html +0 -634
  546. package/coverage/lcov-report/src/integrations/firebase.ts.html +0 -646
  547. package/coverage/lcov-report/src/integrations/googlesheets.ts.html +0 -1312
  548. package/coverage/lcov-report/src/integrations/index.html +0 -371
  549. package/coverage/lcov-report/src/integrations/index.ts.html +0 -445
  550. package/coverage/lcov-report/src/integrations/microsoftSqlServer.ts.html +0 -1006
  551. package/coverage/lcov-report/src/integrations/mongodb.ts.html +0 -1867
  552. package/coverage/lcov-report/src/integrations/mysql.ts.html +0 -952
  553. package/coverage/lcov-report/src/integrations/oracle.ts.html +0 -1474
  554. package/coverage/lcov-report/src/integrations/postgres.ts.html +0 -1069
  555. package/coverage/lcov-report/src/integrations/queries/index.html +0 -116
  556. package/coverage/lcov-report/src/integrations/queries/sql.ts.html +0 -463
  557. package/coverage/lcov-report/src/integrations/redis.ts.html +0 -550
  558. package/coverage/lcov-report/src/integrations/rest.ts.html +0 -1381
  559. package/coverage/lcov-report/src/integrations/s3.ts.html +0 -862
  560. package/coverage/lcov-report/src/integrations/snowflake.ts.html +0 -376
  561. package/coverage/lcov-report/src/integrations/utils.ts.html +0 -1006
  562. package/coverage/lcov-report/src/middleware/authorized.ts.html +0 -460
  563. package/coverage/lcov-report/src/migrations/functions/appUrls.ts.html +0 -187
  564. package/coverage/lcov-report/src/migrations/functions/backfill/app/automations.ts.html +0 -163
  565. package/coverage/lcov-report/src/migrations/functions/backfill/app/datasources.ts.html +0 -151
  566. package/coverage/lcov-report/src/migrations/functions/backfill/app/index.html +0 -206
  567. package/coverage/lcov-report/src/migrations/functions/backfill/app/layouts.ts.html +0 -172
  568. package/coverage/lcov-report/src/migrations/functions/backfill/app/queries.ts.html +0 -226
  569. package/coverage/lcov-report/src/migrations/functions/backfill/app/roles.ts.html +0 -151
  570. package/coverage/lcov-report/src/migrations/functions/backfill/app/screens.ts.html +0 -151
  571. package/coverage/lcov-report/src/migrations/functions/backfill/app/tables.ts.html +0 -166
  572. package/coverage/lcov-report/src/migrations/functions/backfill/app.ts.html +0 -532
  573. package/coverage/lcov-report/src/migrations/functions/backfill/global/configs.ts.html +0 -283
  574. package/coverage/lcov-report/src/migrations/functions/backfill/global/index.html +0 -146
  575. package/coverage/lcov-report/src/migrations/functions/backfill/global/quotas.ts.html +0 -265
  576. package/coverage/lcov-report/src/migrations/functions/backfill/global/users.ts.html +0 -232
  577. package/coverage/lcov-report/src/migrations/functions/backfill/global.ts.html +0 -724
  578. package/coverage/lcov-report/src/migrations/functions/backfill/index.html +0 -161
  579. package/coverage/lcov-report/src/migrations/functions/backfill/index.ts.html +0 -106
  580. package/coverage/lcov-report/src/migrations/functions/backfill/installation.ts.html +0 -235
  581. package/coverage/lcov-report/src/migrations/functions/index.html +0 -146
  582. package/coverage/lcov-report/src/migrations/functions/syncQuotas.ts.html +0 -130
  583. package/coverage/lcov-report/src/migrations/functions/usageQuotas/index.html +0 -161
  584. package/coverage/lcov-report/src/migrations/functions/usageQuotas/index.ts.html +0 -94
  585. package/coverage/lcov-report/src/migrations/functions/usageQuotas/syncApps.ts.html +0 -127
  586. package/coverage/lcov-report/src/migrations/functions/usageQuotas/syncPlugins.ts.html +0 -115
  587. package/coverage/lcov-report/src/migrations/functions/usageQuotas/syncRows.ts.html +0 -169
  588. package/coverage/lcov-report/src/migrations/functions/userEmailViewCasing.ts.html +0 -124
  589. package/coverage/lcov-report/src/migrations/index.ts.html +0 -403
  590. package/coverage/lcov-report/src/migrations/tests/helpers.ts.html +0 -205
  591. package/coverage/lcov-report/src/migrations/tests/index.html +0 -131
  592. package/coverage/lcov-report/src/migrations/tests/structures.ts.html +0 -283
  593. package/coverage/lcov-report/src/sdk/app/automations/index.html +0 -131
  594. package/coverage/lcov-report/src/sdk/app/automations/index.ts.html +0 -100
  595. package/coverage/lcov-report/src/sdk/app/automations/webhook.ts.html +0 -214
  596. package/coverage/lcov-report/src/sdk/app/backups/constants.ts.html +0 -91
  597. package/coverage/lcov-report/src/sdk/app/backups/exports.ts.html +0 -604
  598. package/coverage/lcov-report/src/sdk/app/backups/imports.ts.html +0 -682
  599. package/coverage/lcov-report/src/sdk/app/backups/index.html +0 -176
  600. package/coverage/lcov-report/src/sdk/app/backups/index.ts.html +0 -112
  601. package/coverage/lcov-report/src/sdk/app/backups/statistics.ts.html +0 -292
  602. package/coverage/lcov-report/src/sdk/app/tables/index.html +0 -116
  603. package/coverage/lcov-report/src/sdk/app/tables/index.ts.html +0 -265
  604. package/coverage/lcov-report/src/startup.ts.html +0 -499
  605. package/coverage/lcov-report/src/tests/utilities/TestConfiguration.js.html +0 -1885
  606. package/coverage/lcov-report/src/tests/utilities/controllers.js.html +0 -133
  607. package/coverage/lcov-report/src/tests/utilities/index.html +0 -161
  608. package/coverage/lcov-report/src/tests/utilities/structures.js.html +0 -649
  609. package/coverage/lcov-report/src/threads/automation.ts.html +0 -1594
  610. package/coverage/lcov-report/src/threads/index.html +0 -161
  611. package/coverage/lcov-report/src/threads/index.ts.html +0 -418
  612. package/coverage/lcov-report/src/threads/query.ts.html +0 -961
  613. package/coverage/lcov-report/src/threads/utils.ts.html +0 -373
  614. package/coverage/lcov-report/src/utilities/fileSystem/clientLibrary.js.html +0 -547
  615. package/coverage/lcov-report/src/utilities/fileSystem/index.js.html +0 -1141
  616. package/coverage/lcov-report/src/utilities/fileSystem/processor.js.html +0 -148
  617. package/coverage/lcov-report/src/utilities/redis.ts.html +0 -343
  618. package/coverage/lcov-report/src/utilities/routing/index.ts.html +0 -181
  619. package/coverage/lcov-report/src/utilities/rowProcessor/index.html +0 -146
  620. package/coverage/lcov-report/src/utilities/rowProcessor/map.js.html +0 -370
  621. package/coverage/lcov-report/src/watch.ts.html +0 -196
  622. package/coverage/lcov-report/src/websocket.ts.html +0 -163
  623. package/dist/db/defaultData/datasource_bb_default.js +0 -565
  624. package/dist/db/defaultData/employeeImport.js +0 -153
  625. package/dist/db/defaultData/expensesImport.js +0 -115
  626. package/dist/db/defaultData/inventoryImport.js +0 -107
  627. package/dist/db/defaultData/jobsImport.js +0 -150
  628. package/dist/db/linkedRows/LinkDocument.js +0 -32
  629. package/dist/utilities/rowProcessor/map.js +0 -96
  630. package/jest.config.ts +0 -33
  631. package/src/api/controllers/script.ts +0 -12
  632. package/src/api/routes/analytics.ts +0 -9
  633. package/src/api/routes/apikeys.ts +0 -12
  634. package/src/api/routes/automation.ts +0 -87
  635. package/src/api/routes/cloud.ts +0 -18
  636. package/src/api/routes/component.ts +0 -14
  637. package/src/api/routes/datasource.ts +0 -60
  638. package/src/api/routes/deploy.ts +0 -21
  639. package/src/api/routes/dev.ts +0 -38
  640. package/src/api/routes/integration.ts +0 -16
  641. package/src/api/routes/layout.ts +0 -16
  642. package/src/api/routes/migrations.ts +0 -14
  643. package/src/api/routes/permission.ts +0 -41
  644. package/src/api/routes/role.ts +0 -24
  645. package/src/api/routes/routing.ts +0 -14
  646. package/src/api/routes/screen.ts +0 -23
  647. package/src/api/routes/script.ts +0 -10
  648. package/src/api/routes/templates.ts +0 -16
  649. package/src/api/routes/user.ts +0 -51
  650. package/src/api/routes/view.ts +0 -34
  651. package/src/db/defaultData/datasource_bb_default.js +0 -646
  652. package/src/db/defaultData/employeeImport.js +0 -152
  653. package/src/db/defaultData/expensesImport.js +0 -114
  654. package/src/db/defaultData/inventoryImport.js +0 -106
  655. package/src/db/defaultData/jobsImport.js +0 -158
  656. package/src/db/linkedRows/LinkDocument.js +0 -47
  657. package/src/middleware/appInfo.ts +0 -20
  658. package/src/middleware/publicApi.ts +0 -21
  659. package/src/utilities/budibaseDir.ts +0 -3
  660. package/src/utilities/global.ts +0 -138
  661. package/src/utilities/routing/index.ts +0 -32
  662. package/src/utilities/rowProcessor/map.js +0 -95
  663. package/src/utilities/security.ts +0 -65
@@ -8,13 +8,12 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
8
8
  step((generator = generator.apply(thisArg, _arguments || [])).next());
9
9
  });
10
10
  };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.update = exports.fetch = void 0;
13
- const backend_core_1 = require("@budibase/backend-core");
14
- const KEYS_DOC = backend_core_1.db.StaticDatabases.GLOBAL.docs.apiKeys;
11
+ const { StaticDatabases } = require("@budibase/backend-core/db");
12
+ const { getGlobalDB } = require("@budibase/backend-core/tenancy");
13
+ const KEYS_DOC = StaticDatabases.GLOBAL.docs.apiKeys;
15
14
  function getBuilderMainDoc() {
16
15
  return __awaiter(this, void 0, void 0, function* () {
17
- const db = backend_core_1.tenancy.getGlobalDB();
16
+ const db = getGlobalDB();
18
17
  try {
19
18
  return yield db.get(KEYS_DOC);
20
19
  }
@@ -30,11 +29,11 @@ function setBuilderMainDoc(doc) {
30
29
  return __awaiter(this, void 0, void 0, function* () {
31
30
  // make sure to override the ID
32
31
  doc._id = KEYS_DOC;
33
- const db = backend_core_1.tenancy.getGlobalDB();
32
+ const db = getGlobalDB();
34
33
  return db.put(doc);
35
34
  });
36
35
  }
37
- function fetch(ctx) {
36
+ exports.fetch = function (ctx) {
38
37
  return __awaiter(this, void 0, void 0, function* () {
39
38
  try {
40
39
  const mainDoc = yield getBuilderMainDoc();
@@ -45,9 +44,8 @@ function fetch(ctx) {
45
44
  ctx.throw(400, err);
46
45
  }
47
46
  });
48
- }
49
- exports.fetch = fetch;
50
- function update(ctx) {
47
+ };
48
+ exports.update = function (ctx) {
51
49
  return __awaiter(this, void 0, void 0, function* () {
52
50
  const key = ctx.params.key;
53
51
  const value = ctx.request.body.value;
@@ -68,5 +66,4 @@ function update(ctx) {
68
66
  ctx.throw(400, err);
69
67
  }
70
68
  });
71
- }
72
- exports.update = update;
69
+ };
@@ -18,18 +18,23 @@ const package_json_1 = __importDefault(require("../../../package.json"));
18
18
  const staticViews_1 = require("../../db/views/staticViews");
19
19
  const fileSystem_1 = require("../../utilities/fileSystem");
20
20
  const utils_1 = require("../../db/utils");
21
- const backend_core_1 = require("@budibase/backend-core");
21
+ const { BUILTIN_ROLE_IDS, AccessController, } = require("@budibase/backend-core/roles");
22
+ const { CacheKeys, bustCache } = require("@budibase/backend-core/cache");
23
+ const { getAllApps, isDevAppID, getProdAppID, Replication, } = require("@budibase/backend-core/db");
22
24
  const constants_1 = require("../../constants");
23
- const datasource_bb_default_1 = require("../../db/defaultData/datasource_bb_default");
24
25
  const workerRequests_1 = require("../../utilities/workerRequests");
25
26
  const utilities_1 = require("../../utilities");
26
27
  const redis_1 = require("../../utilities/redis");
27
28
  const clientLibrary_1 = require("../../utilities/fileSystem/clientLibrary");
29
+ const { getTenantId, isMultiTenant } = require("@budibase/backend-core/tenancy");
28
30
  const user_1 = require("./user");
31
+ const { app: appCache } = require("@budibase/backend-core/cache");
29
32
  const utils_2 = require("../../automations/utils");
33
+ const backend_core_1 = require("@budibase/backend-core");
30
34
  const logging_1 = require("../../automations/logging");
31
35
  const rows_1 = require("../../utilities/usageQuota/rows");
32
36
  const pro_1 = require("@budibase/pro");
37
+ const backend_core_2 = require("@budibase/backend-core");
33
38
  const types_1 = require("@budibase/types");
34
39
  const layouts_1 = require("../../constants/layouts");
35
40
  const plugins_1 = require("../../utilities/plugins");
@@ -54,7 +59,7 @@ function getScreens() {
54
59
  }
55
60
  function getUserRoleId(ctx) {
56
61
  return !ctx.user.role || !ctx.user.role._id
57
- ? backend_core_1.roles.BUILTIN_ROLE_IDS.PUBLIC
62
+ ? BUILTIN_ROLE_IDS.PUBLIC
58
63
  : ctx.user.role._id;
59
64
  }
60
65
  const getAppUrl = (ctx) => {
@@ -94,9 +99,9 @@ const checkAppName = (ctx, apps, name, currentAppId) => {
94
99
  ctx.throw(400, "App name is already in use.");
95
100
  }
96
101
  };
97
- function createInstance(template, includeSampleData) {
102
+ function createInstance(template) {
98
103
  return __awaiter(this, void 0, void 0, function* () {
99
- const tenantId = backend_core_1.tenancy.isMultiTenant() ? backend_core_1.tenancy.getTenantId() : null;
104
+ const tenantId = isMultiTenant() ? getTenantId() : null;
100
105
  const baseAppId = (0, utils_1.generateAppID)(tenantId);
101
106
  const appId = (0, utils_1.generateDevAppID)(baseAppId);
102
107
  yield backend_core_1.context.updateAppId(appId);
@@ -126,23 +131,14 @@ function createInstance(template, includeSampleData) {
126
131
  else {
127
132
  // create the users table
128
133
  yield db.put(constants_1.USERS_TABLE_SCHEMA);
129
- if (includeSampleData) {
130
- // create ootb stock db
131
- yield addDefaultTables(db);
132
- }
133
134
  }
134
135
  return { _id: appId };
135
136
  });
136
137
  }
137
- const addDefaultTables = (db) => __awaiter(void 0, void 0, void 0, function* () {
138
- const defaultDbDocs = (0, datasource_bb_default_1.buildDefaultDocs)();
139
- // add in the default db data docs - tables, datasource, rows and links
140
- yield db.bulkDocs([...defaultDbDocs]);
141
- });
142
138
  const fetch = (ctx) => __awaiter(void 0, void 0, void 0, function* () {
143
139
  const dev = ctx.query && ctx.query.status === utils_1.AppStatus.DEV;
144
140
  const all = ctx.query && ctx.query.status === utils_1.AppStatus.ALL;
145
- const apps = (yield backend_core_1.db.getAllApps({ dev, all }));
141
+ const apps = yield getAllApps({ dev, all });
146
142
  const appIds = apps
147
143
  .filter((app) => app.status === "development")
148
144
  .map((app) => app.appId);
@@ -166,7 +162,7 @@ exports.fetch = fetch;
166
162
  const fetchAppDefinition = (ctx) => __awaiter(void 0, void 0, void 0, function* () {
167
163
  const layouts = yield getLayouts();
168
164
  const userRoleId = getUserRoleId(ctx);
169
- const accessController = new backend_core_1.roles.AccessController();
165
+ const accessController = new AccessController();
170
166
  const screens = yield accessController.checkScreensAccess(yield getScreens(), userRoleId);
171
167
  ctx.body = {
172
168
  layouts,
@@ -185,7 +181,7 @@ const fetchAppPackage = (ctx) => __awaiter(void 0, void 0, void 0, function* ()
185
181
  // Only filter screens if the user is not a builder
186
182
  if (!(ctx.user.builder && ctx.user.builder.global)) {
187
183
  const userRoleId = getUserRoleId(ctx);
188
- const accessController = new backend_core_1.roles.AccessController();
184
+ const accessController = new AccessController();
189
185
  screens = yield accessController.checkScreensAccess(screens, userRoleId);
190
186
  }
191
187
  ctx.body = {
@@ -197,7 +193,7 @@ const fetchAppPackage = (ctx) => __awaiter(void 0, void 0, void 0, function* ()
197
193
  });
198
194
  exports.fetchAppPackage = fetchAppPackage;
199
195
  const performAppCreate = (ctx) => __awaiter(void 0, void 0, void 0, function* () {
200
- const apps = yield backend_core_1.db.getAllApps({ dev: true });
196
+ const apps = yield getAllApps({ dev: true });
201
197
  const name = ctx.request.body.name;
202
198
  checkAppName(ctx, apps, name);
203
199
  const url = (0, exports.getAppUrl)(ctx);
@@ -211,8 +207,7 @@ const performAppCreate = (ctx) => __awaiter(void 0, void 0, void 0, function* ()
211
207
  if (ctx.request.files && ctx.request.files.templateFile) {
212
208
  instanceConfig.file = ctx.request.files.templateFile;
213
209
  }
214
- const includeSampleData = (0, utilities_1.isQsTrue)(ctx.request.body.sampleData);
215
- const instance = yield createInstance(instanceConfig, includeSampleData);
210
+ const instance = yield createInstance(instanceConfig);
216
211
  const appId = instance._id;
217
212
  const db = backend_core_1.context.getAppDB();
218
213
  let newApplication = {
@@ -226,7 +221,7 @@ const performAppCreate = (ctx) => __awaiter(void 0, void 0, void 0, function* ()
226
221
  url: url,
227
222
  template: templateKey,
228
223
  instance,
229
- tenantId: backend_core_1.tenancy.getTenantId(),
224
+ tenantId: getTenantId(),
230
225
  updatedAt: new Date().toISOString(),
231
226
  createdAt: new Date().toISOString(),
232
227
  status: utils_1.AppStatus.DEV,
@@ -281,7 +276,7 @@ const performAppCreate = (ctx) => __awaiter(void 0, void 0, void 0, function* ()
281
276
  if (!environment_1.default.isTest()) {
282
277
  yield (0, fileSystem_1.createApp)(appId);
283
278
  }
284
- yield backend_core_1.cache.app.invalidateAppMetadata(appId, newApplication);
279
+ yield appCache.invalidateAppMetadata(appId, newApplication);
285
280
  return newApplication;
286
281
  });
287
282
  const creationEvents = (request, app) => __awaiter(void 0, void 0, void 0, function* () {
@@ -291,25 +286,25 @@ const creationEvents = (request, app) => __awaiter(void 0, void 0, void 0, funct
291
286
  if (body.useTemplate === "true") {
292
287
  // from template
293
288
  if (body.templateKey && body.templateKey !== "undefined") {
294
- creationFns.push(a => backend_core_1.events.app.templateImported(a, body.templateKey));
289
+ creationFns.push(a => backend_core_2.events.app.templateImported(a, body.templateKey));
295
290
  }
296
291
  // from file
297
292
  else if ((_a = request.files) === null || _a === void 0 ? void 0 : _a.templateFile) {
298
- creationFns.push(a => backend_core_1.events.app.fileImported(a));
293
+ creationFns.push(a => backend_core_2.events.app.fileImported(a));
299
294
  }
300
295
  // unknown
301
296
  else {
302
297
  console.error("Could not determine template creation event");
303
298
  }
304
299
  }
305
- creationFns.push(a => backend_core_1.events.app.created(a));
300
+ creationFns.push(a => backend_core_2.events.app.created(a));
306
301
  for (let fn of creationFns) {
307
302
  yield fn(app);
308
303
  }
309
304
  });
310
305
  const appPostCreate = (ctx, app) => __awaiter(void 0, void 0, void 0, function* () {
311
- const tenantId = backend_core_1.tenancy.getTenantId();
312
- yield backend_core_1.migrations.backPopulateMigrations({
306
+ const tenantId = getTenantId();
307
+ yield backend_core_2.migrations.backPopulateMigrations({
313
308
  type: types_1.MigrationType.APP,
314
309
  tenantId,
315
310
  appId: app.appId,
@@ -321,12 +316,10 @@ const appPostCreate = (ctx, app) => __awaiter(void 0, void 0, void 0, function*
321
316
  const rowCount = rows ? rows.length : 0;
322
317
  if (rowCount) {
323
318
  try {
324
- yield backend_core_1.context.doInAppContext(app.appId, () => {
325
- return pro_1.quotas.addRows(rowCount);
326
- });
319
+ yield pro_1.quotas.addRows(rowCount);
327
320
  }
328
321
  catch (err) {
329
- if (err.code && err.code === backend_core_1.errors.codes.USAGE_LIMIT_EXCEEDED) {
322
+ if (err.code && err.code === backend_core_2.errors.codes.USAGE_LIMIT_EXCEEDED) {
330
323
  // this import resulted in row usage exceeding the quota
331
324
  // delete the app
332
325
  // skip pre and post steps as no rows have been added to quotas yet
@@ -341,7 +334,7 @@ const appPostCreate = (ctx, app) => __awaiter(void 0, void 0, void 0, function*
341
334
  const create = (ctx) => __awaiter(void 0, void 0, void 0, function* () {
342
335
  const newApplication = yield pro_1.quotas.addApp(() => performAppCreate(ctx));
343
336
  yield appPostCreate(ctx, newApplication);
344
- yield backend_core_1.cache.bustCache(backend_core_1.cache.CacheKeys.CHECKLIST);
337
+ yield bustCache(CacheKeys.CHECKLIST);
345
338
  ctx.body = newApplication;
346
339
  ctx.status = 200;
347
340
  });
@@ -349,7 +342,7 @@ exports.create = create;
349
342
  // This endpoint currently operates as a PATCH rather than a PUT
350
343
  // Thus name and url fields are handled only if present
351
344
  const update = (ctx) => __awaiter(void 0, void 0, void 0, function* () {
352
- const apps = yield backend_core_1.db.getAllApps({ dev: true });
345
+ const apps = yield getAllApps({ dev: true });
353
346
  // validation
354
347
  const name = ctx.request.body.name;
355
348
  if (name) {
@@ -361,7 +354,7 @@ const update = (ctx) => __awaiter(void 0, void 0, void 0, function* () {
361
354
  ctx.request.body.url = url;
362
355
  }
363
356
  const app = yield (0, exports.updateAppPackage)(ctx.request.body, ctx.params.appId);
364
- yield backend_core_1.events.app.updated(app);
357
+ yield backend_core_2.events.app.updated(app);
365
358
  ctx.status = 200;
366
359
  ctx.body = app;
367
360
  });
@@ -383,7 +376,7 @@ const updateClient = (ctx) => __awaiter(void 0, void 0, void 0, function* () {
383
376
  revertableVersion: currentVersion,
384
377
  };
385
378
  const app = yield (0, exports.updateAppPackage)(appPackageUpdates, ctx.params.appId);
386
- yield backend_core_1.events.app.versionUpdated(app, currentVersion, updatedToVersion);
379
+ yield backend_core_2.events.app.versionUpdated(app, currentVersion, updatedToVersion);
387
380
  ctx.status = 200;
388
381
  ctx.body = app;
389
382
  });
@@ -407,7 +400,7 @@ const revertClient = (ctx) => __awaiter(void 0, void 0, void 0, function* () {
407
400
  revertableVersion: null,
408
401
  };
409
402
  const app = yield (0, exports.updateAppPackage)(appPackageUpdates, ctx.params.appId);
410
- yield backend_core_1.events.app.versionReverted(app, currentVersion, revertedToVersion);
403
+ yield backend_core_2.events.app.versionReverted(app, currentVersion, revertedToVersion);
411
404
  ctx.status = 200;
412
405
  ctx.body = app;
413
406
  });
@@ -416,17 +409,17 @@ const destroyApp = (ctx) => __awaiter(void 0, void 0, void 0, function* () {
416
409
  let appId = ctx.params.appId;
417
410
  let isUnpublish = ctx.query && ctx.query.unpublish;
418
411
  if (isUnpublish) {
419
- appId = backend_core_1.db.getProdAppID(appId);
412
+ appId = getProdAppID(appId);
420
413
  }
421
414
  const db = isUnpublish ? backend_core_1.context.getProdAppDB() : backend_core_1.context.getAppDB();
422
415
  const app = yield db.get(utils_1.DocumentType.APP_METADATA);
423
416
  const result = yield db.destroy();
424
417
  if (isUnpublish) {
425
- yield backend_core_1.events.app.unpublished(app);
418
+ yield backend_core_2.events.app.unpublished(app);
426
419
  }
427
420
  else {
428
421
  yield pro_1.quotas.removeApp();
429
- yield backend_core_1.events.app.deleted(app);
422
+ yield backend_core_2.events.app.deleted(app);
430
423
  }
431
424
  /* istanbul ignore next */
432
425
  if (!environment_1.default.isTest() && !isUnpublish) {
@@ -440,7 +433,7 @@ const destroyApp = (ctx) => __awaiter(void 0, void 0, void 0, function* () {
440
433
  else {
441
434
  yield (0, workerRequests_1.removeAppFromUserRoles)(ctx, appId);
442
435
  }
443
- yield backend_core_1.cache.app.invalidateAppMetadata(appId);
436
+ yield appCache.invalidateAppMetadata(appId);
444
437
  return result;
445
438
  });
446
439
  const preDestroyApp = (ctx) => __awaiter(void 0, void 0, void 0, function* () {
@@ -471,15 +464,19 @@ const sync = (ctx, next) => __awaiter(void 0, void 0, void 0, function* () {
471
464
  return next();
472
465
  }
473
466
  const appId = ctx.params.appId;
474
- if (!backend_core_1.db.isDevAppID(appId)) {
467
+ if (!isDevAppID(appId)) {
475
468
  ctx.throw(400, "This action cannot be performed for production apps");
476
469
  }
477
470
  // replicate prod to dev
478
- const prodAppId = backend_core_1.db.getProdAppID(appId);
479
- // specific case, want to make sure setup is skipped
480
- const prodDb = backend_core_1.context.getProdAppDB({ skip_setup: true });
481
- const exists = yield prodDb.exists();
482
- if (!exists) {
471
+ const prodAppId = getProdAppID(appId);
472
+ try {
473
+ // specific case, want to make sure setup is skipped
474
+ const prodDb = backend_core_1.context.getProdAppDB({ skip_setup: true });
475
+ const info = yield prodDb.info();
476
+ if (info.error)
477
+ throw info.error;
478
+ }
479
+ catch (err) {
483
480
  // the database doesn't exist. Don't replicate
484
481
  ctx.status = 200;
485
482
  ctx.body = {
@@ -487,7 +484,7 @@ const sync = (ctx, next) => __awaiter(void 0, void 0, void 0, function* () {
487
484
  };
488
485
  return next();
489
486
  }
490
- const replication = new backend_core_1.db.Replication({
487
+ const replication = new Replication({
491
488
  source: prodAppId,
492
489
  target: appId,
493
490
  });
@@ -526,7 +523,7 @@ const updateAppPackage = (appPackage, appId) => __awaiter(void 0, void 0, void 0
526
523
  delete newAppPackage.lockedBy;
527
524
  yield db.put(newAppPackage);
528
525
  // remove any cached metadata, so that it will be updated
529
- yield backend_core_1.cache.app.invalidateAppMetadata(appId);
526
+ yield appCache.invalidateAppMetadata(appId);
530
527
  return newAppPackage;
531
528
  }));
532
529
  });
@@ -8,22 +8,19 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
8
8
  step((generator = generator.apply(thisArg, _arguments || [])).next());
9
9
  });
10
10
  };
11
- var __importDefault = (this && this.__importDefault) || function (mod) {
12
- return (mod && mod.__esModule) ? mod : { "default": mod };
13
- };
14
- Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.test = exports.trigger = exports.getDefinitionList = exports.getTriggerList = exports.getActionList = exports.clearLogError = exports.logSearch = exports.destroy = exports.find = exports.fetch = exports.update = exports.handleStepEvents = exports.getDeletedSteps = exports.getNewSteps = exports.create = void 0;
16
- const actions_1 = __importDefault(require("../../automations/actions"));
17
- const triggers_1 = __importDefault(require("../../automations/triggers"));
18
- const utils_1 = require("../../db/utils");
19
- const utils_2 = require("../../automations/utils");
20
- const utilities_1 = require("../../utilities");
21
- const constants_1 = require("../../constants");
22
- const redis_1 = require("../../utilities/redis");
23
- const backend_core_1 = require("@budibase/backend-core");
24
- const pro_1 = require("@budibase/pro");
25
- const ACTION_DEFS = (0, utils_2.removeDeprecated)(actions_1.default.ACTION_DEFINITIONS);
26
- const TRIGGER_DEFS = (0, utils_2.removeDeprecated)(triggers_1.default.TRIGGER_DEFINITIONS);
11
+ const actions = require("../../automations/actions");
12
+ const triggers = require("../../automations/triggers");
13
+ const { getAutomationParams, generateAutomationID, DocumentType, } = require("../../db/utils");
14
+ const { checkForWebhooks, updateTestHistory, removeDeprecated, } = require("../../automations/utils");
15
+ const { deleteEntityMetadata } = require("../../utilities");
16
+ const { MetadataTypes } = require("../../constants");
17
+ const { setTestFlag, clearTestFlag } = require("../../utilities/redis");
18
+ const { getAppDB, getProdAppDB, doInAppContext, } = require("@budibase/backend-core/context");
19
+ const { events } = require("@budibase/backend-core");
20
+ const { app } = require("@budibase/backend-core/cache");
21
+ const { automations } = require("@budibase/pro");
22
+ const ACTION_DEFS = removeDeprecated(actions.ACTION_DEFINITIONS);
23
+ const TRIGGER_DEFS = removeDeprecated(triggers.TRIGGER_DEFINITIONS);
27
24
  /*************************
28
25
  * *
29
26
  * BUILDER FUNCTIONS *
@@ -31,8 +28,8 @@ const TRIGGER_DEFS = (0, utils_2.removeDeprecated)(triggers_1.default.TRIGGER_DE
31
28
  *************************/
32
29
  function cleanupAutomationMetadata(automationId) {
33
30
  return __awaiter(this, void 0, void 0, function* () {
34
- yield (0, utilities_1.deleteEntityMetadata)(constants_1.MetadataTypes.AUTOMATION_TEST_INPUT, automationId);
35
- yield (0, utilities_1.deleteEntityMetadata)(constants_1.MetadataTypes.AUTOMATION_TEST_HISTORY, automationId);
31
+ yield deleteEntityMetadata(MetadataTypes.AUTOMATION_TEST_INPUT, automationId);
32
+ yield deleteEntityMetadata(MetadataTypes.AUTOMATION_TEST_HISTORY, automationId);
36
33
  });
37
34
  }
38
35
  function cleanAutomationInputs(automation) {
@@ -58,25 +55,25 @@ function cleanAutomationInputs(automation) {
58
55
  }
59
56
  return automation;
60
57
  }
61
- function create(ctx) {
58
+ exports.create = function (ctx) {
62
59
  return __awaiter(this, void 0, void 0, function* () {
63
- const db = backend_core_1.context.getAppDB();
60
+ const db = getAppDB();
64
61
  let automation = ctx.request.body;
65
62
  automation.appId = ctx.appId;
66
63
  // call through to update if already exists
67
64
  if (automation._id && automation._rev) {
68
- return update(ctx);
65
+ return exports.update(ctx);
69
66
  }
70
- automation._id = (0, utils_1.generateAutomationID)();
67
+ automation._id = generateAutomationID();
71
68
  automation.type = "automation";
72
69
  automation = cleanAutomationInputs(automation);
73
- automation = yield (0, utils_2.checkForWebhooks)({
70
+ automation = yield checkForWebhooks({
74
71
  newAuto: automation,
75
72
  });
76
73
  const response = yield db.put(automation);
77
- yield backend_core_1.events.automation.created(automation);
74
+ yield events.automation.created(automation);
78
75
  for (let step of automation.definition.steps) {
79
- yield backend_core_1.events.automation.stepCreated(automation, step);
76
+ yield events.automation.stepCreated(automation, step);
80
77
  }
81
78
  automation._rev = response.rev;
82
79
  ctx.status = 200;
@@ -85,41 +82,35 @@ function create(ctx) {
85
82
  automation: Object.assign(Object.assign({}, automation), response),
86
83
  };
87
84
  });
88
- }
89
- exports.create = create;
90
- function getNewSteps(oldAutomation, automation) {
85
+ };
86
+ const getNewSteps = (oldAutomation, automation) => {
91
87
  const oldStepIds = oldAutomation.definition.steps.map(s => s.id);
92
88
  return automation.definition.steps.filter(s => !oldStepIds.includes(s.id));
93
- }
94
- exports.getNewSteps = getNewSteps;
95
- function getDeletedSteps(oldAutomation, automation) {
89
+ };
90
+ const getDeletedSteps = (oldAutomation, automation) => {
96
91
  const stepIds = automation.definition.steps.map(s => s.id);
97
92
  return oldAutomation.definition.steps.filter(s => !stepIds.includes(s.id));
98
- }
99
- exports.getDeletedSteps = getDeletedSteps;
100
- function handleStepEvents(oldAutomation, automation) {
101
- return __awaiter(this, void 0, void 0, function* () {
102
- // new steps
103
- const newSteps = getNewSteps(oldAutomation, automation);
104
- for (let step of newSteps) {
105
- yield backend_core_1.events.automation.stepCreated(automation, step);
106
- }
107
- // old steps
108
- const deletedSteps = getDeletedSteps(oldAutomation, automation);
109
- for (let step of deletedSteps) {
110
- yield backend_core_1.events.automation.stepDeleted(automation, step);
111
- }
112
- });
113
- }
114
- exports.handleStepEvents = handleStepEvents;
115
- function update(ctx) {
93
+ };
94
+ const handleStepEvents = (oldAutomation, automation) => __awaiter(void 0, void 0, void 0, function* () {
95
+ // new steps
96
+ const newSteps = getNewSteps(oldAutomation, automation);
97
+ for (let step of newSteps) {
98
+ yield events.automation.stepCreated(automation, step);
99
+ }
100
+ // old steps
101
+ const deletedSteps = getDeletedSteps(oldAutomation, automation);
102
+ for (let step of deletedSteps) {
103
+ yield events.automation.stepDeleted(automation, step);
104
+ }
105
+ });
106
+ exports.update = function (ctx) {
116
107
  return __awaiter(this, void 0, void 0, function* () {
117
- const db = backend_core_1.context.getAppDB();
108
+ const db = getAppDB();
118
109
  let automation = ctx.request.body;
119
110
  automation.appId = ctx.appId;
120
111
  const oldAutomation = yield db.get(automation._id);
121
112
  automation = cleanAutomationInputs(automation);
122
- automation = yield (0, utils_2.checkForWebhooks)({
113
+ automation = yield checkForWebhooks({
123
114
  oldAuto: oldAutomation,
124
115
  newAuto: automation,
125
116
  });
@@ -133,8 +124,8 @@ function update(ctx) {
133
124
  : {};
134
125
  // trigger has been updated, remove the test inputs
135
126
  if (oldAutoTrigger && oldAutoTrigger.id !== newAutoTrigger.id) {
136
- yield backend_core_1.events.automation.triggerUpdated(automation);
137
- yield (0, utilities_1.deleteEntityMetadata)(constants_1.MetadataTypes.AUTOMATION_TEST_INPUT, automation._id);
127
+ yield events.automation.triggerUpdated(automation);
128
+ yield deleteEntityMetadata(ctx.appId, MetadataTypes.AUTOMATION_TEST_INPUT, automation._id);
138
129
  }
139
130
  yield handleStepEvents(oldAutomation, automation);
140
131
  ctx.status = 200;
@@ -143,52 +134,47 @@ function update(ctx) {
143
134
  automation: Object.assign(Object.assign({}, automation), { _rev: response.rev, _id: response.id }),
144
135
  };
145
136
  });
146
- }
147
- exports.update = update;
148
- function fetch(ctx) {
137
+ };
138
+ exports.fetch = function (ctx) {
149
139
  return __awaiter(this, void 0, void 0, function* () {
150
- const db = backend_core_1.context.getAppDB();
151
- const response = yield db.allDocs((0, utils_1.getAutomationParams)(null, {
140
+ const db = getAppDB();
141
+ const response = yield db.allDocs(getAutomationParams(null, {
152
142
  include_docs: true,
153
143
  }));
154
144
  ctx.body = response.rows.map(row => row.doc);
155
145
  });
156
- }
157
- exports.fetch = fetch;
158
- function find(ctx) {
146
+ };
147
+ exports.find = function (ctx) {
159
148
  return __awaiter(this, void 0, void 0, function* () {
160
- const db = backend_core_1.context.getAppDB();
149
+ const db = getAppDB();
161
150
  ctx.body = yield db.get(ctx.params.id);
162
151
  });
163
- }
164
- exports.find = find;
165
- function destroy(ctx) {
152
+ };
153
+ exports.destroy = function (ctx) {
166
154
  return __awaiter(this, void 0, void 0, function* () {
167
- const db = backend_core_1.context.getAppDB();
155
+ const db = getAppDB();
168
156
  const automationId = ctx.params.id;
169
157
  const oldAutomation = yield db.get(automationId);
170
- yield (0, utils_2.checkForWebhooks)({
158
+ yield checkForWebhooks({
171
159
  oldAuto: oldAutomation,
172
160
  });
173
161
  // delete metadata first
174
162
  yield cleanupAutomationMetadata(automationId);
175
163
  ctx.body = yield db.remove(automationId, ctx.params.rev);
176
- yield backend_core_1.events.automation.deleted(oldAutomation);
164
+ yield events.automation.deleted(oldAutomation);
177
165
  });
178
- }
179
- exports.destroy = destroy;
180
- function logSearch(ctx) {
166
+ };
167
+ exports.logSearch = function (ctx) {
181
168
  return __awaiter(this, void 0, void 0, function* () {
182
- ctx.body = yield pro_1.automations.logs.logSearch(ctx.request.body);
169
+ ctx.body = yield automations.logs.logSearch(ctx.request.body);
183
170
  });
184
- }
185
- exports.logSearch = logSearch;
186
- function clearLogError(ctx) {
171
+ };
172
+ exports.clearLogError = function (ctx) {
187
173
  return __awaiter(this, void 0, void 0, function* () {
188
174
  const { automationId, appId } = ctx.request.body;
189
- yield backend_core_1.context.doInAppContext(appId, () => __awaiter(this, void 0, void 0, function* () {
190
- const db = backend_core_1.context.getProdAppDB();
191
- const metadata = yield db.get(utils_1.DocumentType.APP_METADATA);
175
+ yield doInAppContext(appId, () => __awaiter(this, void 0, void 0, function* () {
176
+ const db = getProdAppDB();
177
+ const metadata = yield db.get(DocumentType.APP_METADATA);
192
178
  if (!automationId) {
193
179
  delete metadata.automationErrors;
194
180
  }
@@ -197,50 +183,45 @@ function clearLogError(ctx) {
197
183
  delete metadata.automationErrors[automationId];
198
184
  }
199
185
  yield db.put(metadata);
200
- yield backend_core_1.cache.app.invalidateAppMetadata(metadata.appId, metadata);
186
+ yield app.invalidateAppMetadata(metadata.appId, metadata);
201
187
  ctx.body = { message: `Error logs cleared.` };
202
188
  }));
203
189
  });
204
- }
205
- exports.clearLogError = clearLogError;
206
- function getActionList(ctx) {
190
+ };
191
+ exports.getActionList = function (ctx) {
207
192
  return __awaiter(this, void 0, void 0, function* () {
208
193
  ctx.body = ACTION_DEFS;
209
194
  });
210
- }
211
- exports.getActionList = getActionList;
212
- function getTriggerList(ctx) {
195
+ };
196
+ exports.getTriggerList = function (ctx) {
213
197
  return __awaiter(this, void 0, void 0, function* () {
214
198
  ctx.body = TRIGGER_DEFS;
215
199
  });
216
- }
217
- exports.getTriggerList = getTriggerList;
218
- function getDefinitionList(ctx) {
200
+ };
201
+ module.exports.getDefinitionList = function (ctx) {
219
202
  return __awaiter(this, void 0, void 0, function* () {
220
203
  ctx.body = {
221
204
  trigger: TRIGGER_DEFS,
222
205
  action: ACTION_DEFS,
223
206
  };
224
207
  });
225
- }
226
- exports.getDefinitionList = getDefinitionList;
208
+ };
227
209
  /*********************
228
210
  * *
229
211
  * API FUNCTIONS *
230
212
  * *
231
213
  *********************/
232
- function trigger(ctx) {
214
+ exports.trigger = function (ctx) {
233
215
  return __awaiter(this, void 0, void 0, function* () {
234
- const db = backend_core_1.context.getAppDB();
216
+ const db = getAppDB();
235
217
  let automation = yield db.get(ctx.params.id);
236
- yield triggers_1.default.externalTrigger(automation, Object.assign(Object.assign({}, ctx.request.body), { appId: ctx.appId }));
218
+ yield triggers.externalTrigger(automation, Object.assign(Object.assign({}, ctx.request.body), { appId: ctx.appId }));
237
219
  ctx.body = {
238
220
  message: `Automation ${automation._id} has been triggered.`,
239
221
  automation,
240
222
  };
241
223
  });
242
- }
243
- exports.trigger = trigger;
224
+ };
244
225
  function prepareTestInput(input) {
245
226
  // prepare the test parameters
246
227
  if (input.id && input.row) {
@@ -251,18 +232,17 @@ function prepareTestInput(input) {
251
232
  }
252
233
  return input;
253
234
  }
254
- function test(ctx) {
235
+ exports.test = function (ctx) {
255
236
  return __awaiter(this, void 0, void 0, function* () {
256
- const db = backend_core_1.context.getAppDB();
237
+ const db = getAppDB();
257
238
  let automation = yield db.get(ctx.params.id);
258
- yield (0, redis_1.setTestFlag)(automation._id);
239
+ yield setTestFlag(automation._id);
259
240
  const testInput = prepareTestInput(ctx.request.body);
260
- const response = yield triggers_1.default.externalTrigger(automation, Object.assign(Object.assign({}, testInput), { appId: ctx.appId }), { getResponses: true });
241
+ const response = yield triggers.externalTrigger(automation, Object.assign(Object.assign({}, testInput), { appId: ctx.appId }), { getResponses: true });
261
242
  // save a test history run
262
- yield (0, utils_2.updateTestHistory)(ctx.appId, automation, Object.assign(Object.assign({}, ctx.request.body), { occurredAt: new Date().getTime() }));
263
- yield (0, redis_1.clearTestFlag)(automation._id);
243
+ yield updateTestHistory(ctx.appId, automation, Object.assign(Object.assign({}, ctx.request.body), { occurredAt: new Date().getTime() }));
244
+ yield clearTestFlag(automation._id);
264
245
  ctx.body = response;
265
- yield backend_core_1.events.automation.tested(automation);
246
+ yield events.automation.tested(automation);
266
247
  });
267
- }
268
- exports.test = test;
248
+ };