@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
@@ -1,41 +1,129 @@
1
- import linkRows from "../../db/linkedRows"
2
- import { FieldTypes, AutoFieldSubTypes } from "../../constants"
3
- import { attachmentsRelativeURL } from "../index"
4
- import { processFormulas, fixAutoColumnSubType } from "./utils"
5
- import { ObjectStoreBuckets } from "../../constants"
6
- import { context, db as dbCore, objectStore } from "@budibase/backend-core"
7
- import { InternalTables } from "../../db/utils"
8
- import { TYPE_TRANSFORM_MAP } from "./map"
9
- import { Row, User, Table } from "@budibase/types"
1
+ const linkRows = require("../../db/linkedRows")
10
2
  const { cloneDeep } = require("lodash/fp")
11
- export * from "./utils"
12
-
13
- type AutoColumnProcessingOpts = {
14
- reprocessing?: boolean
15
- noAutoRelationships?: boolean
16
- }
3
+ const { FieldTypes, AutoFieldSubTypes } = require("../../constants")
4
+ const { attachmentsRelativeURL } = require("../index")
5
+ const { processFormulas, fixAutoColumnSubType } = require("./utils")
6
+ const { deleteFiles } = require("../../utilities/fileSystem/utilities")
7
+ const { ObjectStoreBuckets } = require("../../constants")
8
+ const {
9
+ isProdAppID,
10
+ getProdAppID,
11
+ dbExists,
12
+ } = require("@budibase/backend-core/db")
13
+ const { getAppId } = require("@budibase/backend-core/context")
14
+ const { InternalTables } = require("../../db/utils")
17
15
 
18
16
  const BASE_AUTO_ID = 1
19
17
 
18
+ /**
19
+ * A map of how we convert various properties in rows to each other based on the row type.
20
+ */
21
+ const TYPE_TRANSFORM_MAP = {
22
+ [FieldTypes.LINK]: {
23
+ "": [],
24
+ [null]: [],
25
+ [undefined]: undefined,
26
+ parse: link => {
27
+ if (Array.isArray(link) && typeof link[0] === "object") {
28
+ return link.map(el => (el && el._id ? el._id : el))
29
+ }
30
+ if (typeof link === "string") {
31
+ return [link]
32
+ }
33
+ return link
34
+ },
35
+ },
36
+ [FieldTypes.OPTIONS]: {
37
+ "": null,
38
+ [null]: null,
39
+ [undefined]: undefined,
40
+ },
41
+ [FieldTypes.ARRAY]: {
42
+ "": [],
43
+ [null]: [],
44
+ [undefined]: undefined,
45
+ },
46
+ [FieldTypes.STRING]: {
47
+ "": "",
48
+ [null]: "",
49
+ [undefined]: undefined,
50
+ },
51
+ [FieldTypes.BARCODEQR]: {
52
+ "": "",
53
+ [null]: "",
54
+ [undefined]: undefined,
55
+ },
56
+ [FieldTypes.FORMULA]: {
57
+ "": "",
58
+ [null]: "",
59
+ [undefined]: undefined,
60
+ },
61
+ [FieldTypes.LONGFORM]: {
62
+ "": "",
63
+ [null]: "",
64
+ [undefined]: undefined,
65
+ },
66
+ [FieldTypes.NUMBER]: {
67
+ "": null,
68
+ [null]: null,
69
+ [undefined]: undefined,
70
+ parse: n => parseFloat(n),
71
+ },
72
+ [FieldTypes.DATETIME]: {
73
+ "": null,
74
+ [undefined]: undefined,
75
+ [null]: null,
76
+ parse: date => {
77
+ if (date instanceof Date) {
78
+ return date.toISOString()
79
+ }
80
+ return date
81
+ },
82
+ },
83
+ [FieldTypes.ATTACHMENT]: {
84
+ "": [],
85
+ [null]: [],
86
+ [undefined]: undefined,
87
+ },
88
+ [FieldTypes.BOOLEAN]: {
89
+ "": null,
90
+ [null]: null,
91
+ [undefined]: undefined,
92
+ true: true,
93
+ false: false,
94
+ },
95
+ [FieldTypes.AUTO]: {
96
+ parse: () => undefined,
97
+ },
98
+ [FieldTypes.JSON]: {
99
+ parse: input => {
100
+ try {
101
+ if (input === "") {
102
+ return undefined
103
+ }
104
+ return JSON.parse(input)
105
+ } catch (err) {
106
+ return input
107
+ }
108
+ },
109
+ },
110
+ }
111
+
20
112
  /**
21
113
  * Given the old state of the row and the new one after an update, this will
22
114
  * find the keys that have been removed in the updated row.
23
115
  */
24
- function getRemovedAttachmentKeys(
25
- oldRow: Row,
26
- row: Row,
27
- attachmentKey: string
28
- ) {
116
+ function getRemovedAttachmentKeys(oldRow, row, attachmentKey) {
29
117
  if (!oldRow[attachmentKey]) {
30
118
  return []
31
119
  }
32
- const oldKeys = oldRow[attachmentKey].map((attachment: any) => attachment.key)
120
+ const oldKeys = oldRow[attachmentKey].map(attachment => attachment.key)
33
121
  // no attachments in new row, all removed
34
122
  if (!row[attachmentKey]) {
35
123
  return oldKeys
36
124
  }
37
- const newKeys = row[attachmentKey].map((attachment: any) => attachment.key)
38
- return oldKeys.filter((key: any) => newKeys.indexOf(key) === -1)
125
+ const newKeys = row[attachmentKey].map(attachment => attachment.key)
126
+ return oldKeys.filter(key => newKeys.indexOf(key) === -1)
39
127
  }
40
128
 
41
129
  /**
@@ -48,11 +136,11 @@ function getRemovedAttachmentKeys(
48
136
  * @returns {{row: Object, table: Object}} The updated row and table, the table may need to be updated
49
137
  * for automatic ID purposes.
50
138
  */
51
- export function processAutoColumn(
52
- user: User | null,
53
- table: Table,
54
- row: Row,
55
- opts?: AutoColumnProcessingOpts
139
+ function processAutoColumn(
140
+ user,
141
+ table,
142
+ row,
143
+ opts = { reprocessing: false, noAutoRelationships: false }
56
144
  ) {
57
145
  let noUser = !user || !user.userId
58
146
  let isUserTable = table._id === InternalTables.USER_METADATA
@@ -61,7 +149,7 @@ export function processAutoColumn(
61
149
  const creating = !row._rev
62
150
  // check its not user table, or whether any of the processing options have been disabled
63
151
  const shouldUpdateUserFields =
64
- !isUserTable && !opts?.reprocessing && !opts?.noAutoRelationships && !noUser
152
+ !isUserTable && !opts.reprocessing && !opts.noAutoRelationships && !noUser
65
153
  for (let [key, schema] of Object.entries(table.schema)) {
66
154
  if (!schema.autocolumn) {
67
155
  continue
@@ -71,7 +159,7 @@ export function processAutoColumn(
71
159
  }
72
160
  switch (schema.subtype) {
73
161
  case AutoFieldSubTypes.CREATED_BY:
74
- if (creating && shouldUpdateUserFields && user) {
162
+ if (creating && shouldUpdateUserFields) {
75
163
  row[key] = [user.userId]
76
164
  }
77
165
  break
@@ -81,7 +169,7 @@ export function processAutoColumn(
81
169
  }
82
170
  break
83
171
  case AutoFieldSubTypes.UPDATED_BY:
84
- if (shouldUpdateUserFields && user) {
172
+ if (shouldUpdateUserFields) {
85
173
  row[key] = [user.userId]
86
174
  }
87
175
  break
@@ -98,6 +186,9 @@ export function processAutoColumn(
98
186
  }
99
187
  return { table, row }
100
188
  }
189
+ exports.processAutoColumn = processAutoColumn
190
+ exports.fixAutoColumnSubType = fixAutoColumnSubType
191
+ exports.processFormulas = processFormulas
101
192
 
102
193
  /**
103
194
  * This will coerce a value to the correct types based on the type transform map
@@ -105,17 +196,15 @@ export function processAutoColumn(
105
196
  * @param {object} type The type fo coerce to
106
197
  * @returns {object} The coerced value
107
198
  */
108
- export function coerce(row: any, type: any) {
199
+ exports.coerce = (row, type) => {
109
200
  // no coercion specified for type, skip it
110
201
  if (!TYPE_TRANSFORM_MAP[type]) {
111
202
  return row
112
203
  }
113
204
  // eslint-disable-next-line no-prototype-builtins
114
205
  if (TYPE_TRANSFORM_MAP[type].hasOwnProperty(row)) {
115
- // @ts-ignore
116
206
  return TYPE_TRANSFORM_MAP[type][row]
117
207
  } else if (TYPE_TRANSFORM_MAP[type].parse) {
118
- // @ts-ignore
119
208
  return TYPE_TRANSFORM_MAP[type].parse(row)
120
209
  }
121
210
 
@@ -131,12 +220,12 @@ export function coerce(row: any, type: any) {
131
220
  * @param {object} opts some input processing options (like disabling auto-column relationships).
132
221
  * @returns {object} the row which has been prepared to be written to the DB.
133
222
  */
134
- export function inputProcessing(
135
- user: User,
136
- table: Table,
137
- row: Row,
138
- opts: AutoColumnProcessingOpts
139
- ) {
223
+ exports.inputProcessing = (
224
+ user = {},
225
+ table,
226
+ row,
227
+ opts = { noAutoRelationships: false }
228
+ ) => {
140
229
  let clonedRow = cloneDeep(row)
141
230
  // need to copy the table so it can be differenced on way out
142
231
  const copiedTable = cloneDeep(table)
@@ -156,7 +245,7 @@ export function inputProcessing(
156
245
  }
157
246
  // otherwise coerce what is there to correct types
158
247
  else {
159
- clonedRow[key] = coerce(value, field.type)
248
+ clonedRow[key] = exports.coerce(value, field.type)
160
249
  }
161
250
  }
162
251
 
@@ -178,11 +267,7 @@ export function inputProcessing(
178
267
  * @param {object} opts used to set some options for the output, such as disabling relationship squashing.
179
268
  * @returns {object[]|object} the enriched rows will be returned.
180
269
  */
181
- export async function outputProcessing(
182
- table: Table,
183
- rows: Row[] | Row,
184
- opts = { squash: true }
185
- ) {
270
+ exports.outputProcessing = async (table, rows, opts = { squash: true }) => {
186
271
  let wasArray = true
187
272
  if (!(rows instanceof Array)) {
188
273
  rows = [rows]
@@ -201,7 +286,7 @@ export async function outputProcessing(
201
286
  if (row[property] == null || !Array.isArray(row[property])) {
202
287
  continue
203
288
  }
204
- row[property].forEach((attachment: any) => {
289
+ row[property].forEach(attachment => {
205
290
  attachment.url = attachmentsRelativeURL(attachment.key)
206
291
  })
207
292
  }
@@ -223,28 +308,20 @@ export async function outputProcessing(
223
308
  * deleted attachment columns.
224
309
  * @return {Promise<void>} When all attachments have been removed this will return.
225
310
  */
226
- export async function cleanupAttachments(
227
- table: Table,
228
- {
229
- row,
230
- rows,
231
- oldRow,
232
- oldTable,
233
- }: { row?: Row; rows?: Row[]; oldRow?: Row; oldTable?: Table }
234
- ): Promise<any> {
235
- const appId = context.getAppId()
236
- if (!dbCore.isProdAppID(appId)) {
237
- const prodAppId = dbCore.getProdAppID(appId!)
311
+ exports.cleanupAttachments = async (table, { row, rows, oldRow, oldTable }) => {
312
+ const appId = getAppId()
313
+ if (!isProdAppID(appId)) {
314
+ const prodAppId = getProdAppID(appId)
238
315
  // if prod exists, then don't allow deleting
239
- const exists = await dbCore.dbExists(prodAppId)
316
+ const exists = await dbExists(prodAppId)
240
317
  if (exists) {
241
318
  return
242
319
  }
243
320
  }
244
- let files: string[] = []
245
- function addFiles(row: Row, key: string) {
321
+ let files = []
322
+ function addFiles(row, key) {
246
323
  if (row[key]) {
247
- files = files.concat(row[key].map((attachment: any) => attachment.key))
324
+ files = files.concat(row[key].map(attachment => attachment.key))
248
325
  }
249
326
  }
250
327
  const schemaToUse = oldTable ? oldTable.schema : table.schema
@@ -253,7 +330,7 @@ export async function cleanupAttachments(
253
330
  continue
254
331
  }
255
332
  // old table had this column, new table doesn't - delete it
256
- if (rows && oldTable && !table.schema[key]) {
333
+ if (oldTable && !table.schema[key]) {
257
334
  rows.forEach(row => addFiles(row, key))
258
335
  } else if (oldRow && row) {
259
336
  // if updating, need to manage the differences
@@ -265,6 +342,6 @@ export async function cleanupAttachments(
265
342
  }
266
343
  }
267
344
  if (files.length > 0) {
268
- return objectStore.deleteFiles(ObjectStoreBuckets.APPS, files)
345
+ return deleteFiles(ObjectStoreBuckets.APPS, files)
269
346
  }
270
347
  }
@@ -1,17 +1,16 @@
1
- import {
1
+ const {
2
2
  FieldTypes,
3
3
  FormulaTypes,
4
4
  AutoFieldDefaultNames,
5
5
  AutoFieldSubTypes,
6
- } from "../../constants"
7
- import { processStringSync } from "@budibase/string-templates"
8
- import { FieldSchema, Table, Row } from "@budibase/types"
6
+ } = require("../../constants")
7
+ const { processStringSync } = require("@budibase/string-templates")
9
8
 
10
9
  /**
11
10
  * If the subtype has been lost for any reason this works out what
12
11
  * subtype the auto column should be.
13
12
  */
14
- export function fixAutoColumnSubType(column: FieldSchema) {
13
+ exports.fixAutoColumnSubType = column => {
15
14
  if (!column.autocolumn || !column.name || column.subtype) {
16
15
  return column
17
16
  }
@@ -33,18 +32,15 @@ export function fixAutoColumnSubType(column: FieldSchema) {
33
32
  /**
34
33
  * Looks through the rows provided and finds formulas - which it then processes.
35
34
  */
36
- export function processFormulas(
37
- table: Table,
38
- rows: Row[] | Row,
39
- { dynamic, contextRows }: any = { dynamic: true }
40
- ) {
35
+ exports.processFormulas = (
36
+ table,
37
+ rows,
38
+ { dynamic, contextRows } = { dynamic: true }
39
+ ) => {
41
40
  const single = !Array.isArray(rows)
42
- let rowArray: Row[]
43
41
  if (single) {
44
- rowArray = [rows]
42
+ rows = [rows]
45
43
  contextRows = contextRows ? [contextRows] : contextRows
46
- } else {
47
- rowArray = rows
48
44
  }
49
45
  for (let [column, schema] of Object.entries(table.schema)) {
50
46
  const isStatic = schema.formulaType === FormulaTypes.STATIC
@@ -56,25 +52,25 @@ export function processFormulas(
56
52
  continue
57
53
  }
58
54
  // iterate through rows and process formula
59
- for (let i = 0; i < rowArray.length; i++) {
55
+ for (let i = 0; i < rows.length; i++) {
60
56
  if (schema.formula) {
61
- let row = rowArray[i]
57
+ let row = rows[i]
62
58
  let context = contextRows ? contextRows[i] : row
63
- rowArray[i] = {
59
+ rows[i] = {
64
60
  ...row,
65
61
  [column]: processStringSync(schema.formula, context),
66
62
  }
67
63
  }
68
64
  }
69
65
  }
70
- return single ? rowArray[0] : rowArray
66
+ return single ? rows[0] : rows
71
67
  }
72
68
 
73
69
  /**
74
70
  * Processes any date columns and ensures that those without the ignoreTimezones
75
71
  * flag set are parsed as UTC rather than local time.
76
72
  */
77
- export function processDates(table: Table, rows: Row[]) {
73
+ exports.processDates = (table, rows) => {
78
74
  let datesWithTZ = []
79
75
  for (let [column, schema] of Object.entries(table.schema)) {
80
76
  if (schema.type !== FieldTypes.DATETIME) {
@@ -0,0 +1,71 @@
1
+ const {
2
+ PermissionLevels,
3
+ PermissionTypes,
4
+ getBuiltinPermissionByID,
5
+ isPermissionLevelHigherThanRead,
6
+ } = require("@budibase/backend-core/permissions")
7
+ const {
8
+ lowerBuiltinRoleID,
9
+ getBuiltinRoles,
10
+ } = require("@budibase/backend-core/roles")
11
+ const { DocumentType } = require("../db/utils")
12
+
13
+ const CURRENTLY_SUPPORTED_LEVELS = [
14
+ PermissionLevels.WRITE,
15
+ PermissionLevels.READ,
16
+ PermissionLevels.EXECUTE,
17
+ ]
18
+
19
+ exports.getPermissionType = resourceId => {
20
+ const docType = Object.values(DocumentType).filter(docType =>
21
+ resourceId.startsWith(docType)
22
+ )[0]
23
+ switch (docType) {
24
+ case DocumentType.TABLE:
25
+ case DocumentType.ROW:
26
+ return PermissionTypes.TABLE
27
+ case DocumentType.AUTOMATION:
28
+ return PermissionTypes.AUTOMATION
29
+ case DocumentType.WEBHOOK:
30
+ return PermissionTypes.WEBHOOK
31
+ case DocumentType.QUERY:
32
+ case DocumentType.DATASOURCE:
33
+ return PermissionTypes.QUERY
34
+ default:
35
+ // views don't have an ID, will end up here
36
+ return PermissionTypes.VIEW
37
+ }
38
+ }
39
+
40
+ /**
41
+ * works out the basic permissions based on builtin roles for a resource, using its ID
42
+ * @param resourceId
43
+ * @returns {{}}
44
+ */
45
+ exports.getBasePermissions = resourceId => {
46
+ const type = exports.getPermissionType(resourceId)
47
+ const permissions = {}
48
+ for (let [roleId, role] of Object.entries(getBuiltinRoles())) {
49
+ if (!role.permissionId) {
50
+ continue
51
+ }
52
+ const perms = getBuiltinPermissionByID(role.permissionId)
53
+ const typedPermission = perms.permissions.find(perm => perm.type === type)
54
+ if (
55
+ typedPermission &&
56
+ CURRENTLY_SUPPORTED_LEVELS.indexOf(typedPermission.level) !== -1
57
+ ) {
58
+ const level = typedPermission.level
59
+ permissions[level] = lowerBuiltinRoleID(permissions[level], roleId)
60
+ if (isPermissionLevelHigherThanRead(level)) {
61
+ permissions[PermissionLevels.READ] = lowerBuiltinRoleID(
62
+ permissions[PermissionLevels.READ],
63
+ roleId
64
+ )
65
+ }
66
+ }
67
+ }
68
+ return permissions
69
+ }
70
+
71
+ exports.CURRENTLY_SUPPORTED_LEVELS = CURRENTLY_SUPPORTED_LEVELS
@@ -1,19 +1,23 @@
1
- import { getRowParams, USER_METDATA_PREFIX } from "../../db/utils"
2
- import { db as dbCore } from "@budibase/backend-core"
3
- import { Database, Row } from "@budibase/types"
1
+ const { getRowParams, USER_METDATA_PREFIX } = require("../../db/utils")
2
+ const {
3
+ isDevAppID,
4
+ getDevelopmentAppID,
5
+ getProdAppID,
6
+ doWithDB,
7
+ } = require("@budibase/backend-core/db")
4
8
 
5
9
  const ROW_EXCLUSIONS = [USER_METDATA_PREFIX]
6
10
 
7
- function getAppPairs(appIds: string[]) {
11
+ const getAppPairs = appIds => {
8
12
  // collect the app ids into dev / prod pairs
9
13
  // keyed by the dev app id
10
- const pairs: { [key: string]: { devId?: string; prodId?: string } } = {}
14
+ const pairs = {}
11
15
  for (let appId of appIds) {
12
- const devId = dbCore.getDevelopmentAppID(appId)
16
+ const devId = getDevelopmentAppID(appId)
13
17
  if (!pairs[devId]) {
14
18
  pairs[devId] = {}
15
19
  }
16
- if (dbCore.isDevAppID(appId)) {
20
+ if (isDevAppID(appId)) {
17
21
  pairs[devId].devId = appId
18
22
  } else {
19
23
  pairs[devId].prodId = appId
@@ -22,9 +26,9 @@ function getAppPairs(appIds: string[]) {
22
26
  return pairs
23
27
  }
24
28
 
25
- async function getAppRows(appId: string) {
29
+ const getAppRows = async appId => {
26
30
  // need to specify the app ID, as this is used for different apps in one call
27
- return dbCore.doWithDB(appId, async (db: Database) => {
31
+ return doWithDB(appId, async db => {
28
32
  const response = await db.allDocs(
29
33
  getRowParams(null, null, {
30
34
  include_docs: false,
@@ -48,13 +52,13 @@ async function getAppRows(appId: string) {
48
52
  * The returned rows will be unique on a per dev/prod app basis.
49
53
  * Rows duplicates may exist across apps due to data import so they are not filtered out.
50
54
  */
51
- export async function getUniqueRows(appIds: string[]) {
52
- let uniqueRows: Row[] = [],
53
- rowsByApp: { [key: string]: Row[] } = {}
55
+ exports.getUniqueRows = async appIds => {
56
+ let uniqueRows = [],
57
+ rowsByApp = {}
54
58
  const pairs = getAppPairs(appIds)
55
59
 
56
60
  for (let pair of Object.values(pairs)) {
57
- let appRows: Row[] = []
61
+ let appRows = []
58
62
  for (let appId of [pair.devId, pair.prodId]) {
59
63
  if (!appId) {
60
64
  continue
@@ -71,7 +75,7 @@ export async function getUniqueRows(appIds: string[]) {
71
75
  // this can't be done on all rows because app import results in
72
76
  // duplicate row ids across apps
73
77
  // the array pre-concat is important to avoid stack overflow
74
- const prodId = dbCore.getProdAppID((pair.devId || pair.prodId)!)
78
+ const prodId = getProdAppID(pair.devId || pair.prodId)
75
79
  rowsByApp[prodId] = [...new Set(appRows)]
76
80
  uniqueRows = uniqueRows.concat(rowsByApp[prodId])
77
81
  }
@@ -1,11 +1,12 @@
1
- import { InternalTables } from "../db/utils"
2
- import { getGlobalUser } from "./global"
3
- import { context, db as dbCore, roles } from "@budibase/backend-core"
4
- import { BBContext } from "@budibase/types"
1
+ const { InternalTables } = require("../db/utils")
2
+ const { getGlobalUser } = require("../utilities/global")
3
+ const { getAppDB } = require("@budibase/backend-core/context")
4
+ const { getProdAppID } = require("@budibase/backend-core/db")
5
+ const { BUILTIN_ROLE_IDS } = require("@budibase/backend-core/roles")
5
6
 
6
- export async function getFullUser(ctx: BBContext, userId: string) {
7
+ exports.getFullUser = async (ctx, userId) => {
7
8
  const global = await getGlobalUser(userId)
8
- let metadata: any = {}
9
+ let metadata = {}
9
10
 
10
11
  // always prefer the user metadata _id and _rev
11
12
  delete global._id
@@ -13,7 +14,7 @@ export async function getFullUser(ctx: BBContext, userId: string) {
13
14
 
14
15
  try {
15
16
  // this will throw an error if the db doesn't exist, or there is no appId
16
- const db = context.getAppDB()
17
+ const db = getAppDB()
17
18
  metadata = await db.get(userId)
18
19
  } catch (err) {
19
20
  // it is fine if there is no user metadata yet
@@ -22,14 +23,14 @@ export async function getFullUser(ctx: BBContext, userId: string) {
22
23
  return {
23
24
  ...metadata,
24
25
  ...global,
25
- roleId: global.roleId || roles.BUILTIN_ROLE_IDS.PUBLIC,
26
+ roleId: global.roleId || BUILTIN_ROLE_IDS.PUBLIC,
26
27
  tableId: InternalTables.USER_METADATA,
27
28
  // make sure the ID is always a local ID, not a global one
28
29
  _id: userId,
29
30
  }
30
31
  }
31
32
 
32
- export function publicApiUserFix(ctx: BBContext) {
33
+ exports.publicApiUserFix = ctx => {
33
34
  if (!ctx.request.body) {
34
35
  return ctx
35
36
  }
@@ -39,9 +40,10 @@ export function publicApiUserFix(ctx: BBContext) {
39
40
  if (!ctx.request.body.roles) {
40
41
  ctx.request.body.roles = {}
41
42
  } else {
42
- const newRoles: { [key: string]: any } = {}
43
+ const newRoles = {}
43
44
  for (let [appId, role] of Object.entries(ctx.request.body.roles)) {
44
- newRoles[dbCore.getProdAppID(appId)] = role
45
+ // @ts-ignore
46
+ newRoles[getProdAppID(appId)] = role
45
47
  }
46
48
  ctx.request.body.roles = newRoles
47
49
  }