@budibase/server 2.1.32-alpha.8 → 2.1.32

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.968304ca.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 +19 -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 +16 -11
  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
@@ -9,7 +9,7 @@ const {
9
9
  breakRowIdField,
10
10
  } = require("../../../integrations/utils")
11
11
  const ExternalRequest = require("./ExternalRequest")
12
- const { context } = require("@budibase/backend-core")
12
+ const { getAppDB } = require("@budibase/backend-core/context")
13
13
  const exporters = require("../view/exporters")
14
14
  const { apiFileReturn } = require("../../../utilities/fileSystem")
15
15
 
@@ -166,7 +166,7 @@ exports.validate = async () => {
166
166
 
167
167
  exports.exportRows = async ctx => {
168
168
  const { datasourceId } = breakExternalTableId(ctx.params.tableId)
169
- const db = context.getAppDB()
169
+ const db = getAppDB()
170
170
  const format = ctx.query.format
171
171
  const { columns } = ctx.request.body
172
172
  const datasource = await db.get(datasourceId)
@@ -209,7 +209,7 @@ exports.fetchEnrichedRow = async ctx => {
209
209
  const id = ctx.params.rowId
210
210
  const tableId = ctx.params.tableId
211
211
  const { datasourceId, tableName } = breakExternalTableId(tableId)
212
- const db = context.getAppDB()
212
+ const db = getAppDB()
213
213
  const datasource = await db.get(datasourceId)
214
214
  if (!datasource || !datasource.entities) {
215
215
  ctx.throw(400, "Datasource has not been configured for plus API.")
@@ -30,24 +30,16 @@ export async function patch(ctx: any): Promise<any> {
30
30
  if (body && !body._id) {
31
31
  return save(ctx)
32
32
  }
33
- try {
34
- const { row, table } = await quotas.addQuery(
35
- () => pickApi(tableId).patch(ctx),
36
- {
37
- datasourceId: tableId,
38
- }
39
- )
40
- if (!row) {
41
- ctx.throw(404, "Row not found")
33
+ const { row, table } = await quotas.addQuery(
34
+ () => pickApi(tableId).patch(ctx),
35
+ {
36
+ datasourceId: tableId,
42
37
  }
43
- ctx.status = 200
44
- ctx.eventEmitter &&
45
- ctx.eventEmitter.emitRow(`row:update`, appId, row, table)
46
- ctx.message = `${table.name} updated successfully.`
47
- ctx.body = row
48
- } catch (err) {
49
- ctx.throw(400, err)
50
- }
38
+ )
39
+ ctx.status = 200
40
+ ctx.eventEmitter && ctx.eventEmitter.emitRow(`row:update`, appId, row, table)
41
+ ctx.message = `${table.name} updated successfully.`
42
+ ctx.body = row
51
43
  }
52
44
 
53
45
  export const save = async (ctx: any) => {
@@ -6,6 +6,7 @@ const {
6
6
  DocumentType,
7
7
  InternalTables,
8
8
  } = require("../../../db/utils")
9
+ const { dangerousGetDB } = require("@budibase/backend-core/db")
9
10
  const userController = require("../user")
10
11
  const {
11
12
  inputProcessing,
@@ -25,7 +26,7 @@ const {
25
26
  getFromMemoryDoc,
26
27
  } = require("../view/utils")
27
28
  const { cloneDeep } = require("lodash/fp")
28
- const { context, db: dbCore } = require("@budibase/backend-core")
29
+ const { getAppDB } = require("@budibase/backend-core/context")
29
30
  const { finaliseRow, updateRelatedFormula } = require("./staticFormula")
30
31
  const exporters = require("../view/exporters")
31
32
  const { apiFileReturn } = require("../../../utilities/fileSystem")
@@ -79,7 +80,7 @@ async function getRawTableData(ctx, db, tableId) {
79
80
  }
80
81
 
81
82
  exports.patch = async ctx => {
82
- const db = context.getAppDB()
83
+ const db = getAppDB()
83
84
  const inputs = ctx.request.body
84
85
  const tableId = inputs.tableId
85
86
  const isUserTable = tableId === InternalTables.USER_METADATA
@@ -144,7 +145,7 @@ exports.patch = async ctx => {
144
145
  }
145
146
 
146
147
  exports.save = async function (ctx) {
147
- const db = context.getAppDB()
148
+ const db = getAppDB()
148
149
  let inputs = ctx.request.body
149
150
  inputs.tableId = ctx.params.tableId
150
151
 
@@ -187,7 +188,7 @@ exports.fetchView = async ctx => {
187
188
  return exports.fetch(ctx)
188
189
  }
189
190
 
190
- const db = context.getAppDB()
191
+ const db = getAppDB()
191
192
  const { calculation, group, field } = ctx.query
192
193
  const viewInfo = await getView(db, viewName)
193
194
  let response
@@ -241,7 +242,7 @@ exports.fetchView = async ctx => {
241
242
  }
242
243
 
243
244
  exports.fetch = async ctx => {
244
- const db = context.getAppDB()
245
+ const db = getAppDB()
245
246
 
246
247
  const tableId = ctx.params.tableId
247
248
  let table = await db.get(tableId)
@@ -250,7 +251,7 @@ exports.fetch = async ctx => {
250
251
  }
251
252
 
252
253
  exports.find = async ctx => {
253
- const db = dbCore.getDB(ctx.appId)
254
+ const db = dangerousGetDB(ctx.appId)
254
255
  const table = await db.get(ctx.params.tableId)
255
256
  let row = await findRow(ctx, ctx.params.tableId, ctx.params.rowId)
256
257
  row = await outputProcessing(table, row)
@@ -258,7 +259,7 @@ exports.find = async ctx => {
258
259
  }
259
260
 
260
261
  exports.destroy = async function (ctx) {
261
- const db = context.getAppDB()
262
+ const db = getAppDB()
262
263
  const { _id } = ctx.request.body
263
264
  let row = await db.get(_id)
264
265
  let _rev = ctx.request.body._rev || row._rev
@@ -294,7 +295,7 @@ exports.destroy = async function (ctx) {
294
295
  }
295
296
 
296
297
  exports.bulkDestroy = async ctx => {
297
- const db = context.getAppDB()
298
+ const db = getAppDB()
298
299
  const tableId = ctx.params.tableId
299
300
  const table = await db.get(tableId)
300
301
  let { rows } = ctx.request.body
@@ -337,7 +338,7 @@ exports.search = async ctx => {
337
338
  }
338
339
 
339
340
  const { tableId } = ctx.params
340
- const db = context.getAppDB()
341
+ const db = getAppDB()
341
342
  const { paginate, query, ...params } = ctx.request.body
342
343
  params.version = ctx.version
343
344
  params.tableId = tableId
@@ -370,7 +371,7 @@ exports.validate = async ctx => {
370
371
  }
371
372
 
372
373
  exports.exportRows = async ctx => {
373
- const db = context.getAppDB()
374
+ const db = getAppDB()
374
375
  const table = await db.get(ctx.params.tableId)
375
376
  const rowIds = ctx.request.body.rows
376
377
  let format = ctx.query.format
@@ -407,7 +408,7 @@ exports.exportRows = async ctx => {
407
408
  }
408
409
 
409
410
  exports.fetchEnrichedRow = async ctx => {
410
- const db = context.getAppDB()
411
+ const db = getAppDB()
411
412
  const tableId = ctx.params.tableId
412
413
  const rowId = ctx.params.rowId
413
414
  // need table to work out where links go in row
@@ -1,35 +1,15 @@
1
- import { SearchIndexes } from "../../../db/utils"
2
- import { removeKeyNumbering } from "./utils"
3
- import fetch from "node-fetch"
4
- import { db as dbCore, context } from "@budibase/backend-core"
5
- import { SearchFilters, Row } from "@budibase/types"
6
-
7
- type SearchParams = {
8
- tableId: string
9
- sort?: string
10
- sortOrder?: string
11
- sortType?: string
12
- limit?: number
13
- bookmark?: string
14
- version?: string
15
- rows?: Row[]
16
- }
1
+ const { SearchIndexes } = require("../../../db/utils")
2
+ const { removeKeyNumbering } = require("./utils")
3
+ const fetch = require("node-fetch")
4
+ const { getCouchInfo } = require("@budibase/backend-core/db")
5
+ const { getAppId } = require("@budibase/backend-core/context")
17
6
 
18
7
  /**
19
8
  * Class to build lucene query URLs.
20
9
  * Optionally takes a base lucene query object.
21
10
  */
22
- export class QueryBuilder {
23
- query: SearchFilters
24
- limit: number
25
- sort?: string
26
- bookmark?: string
27
- sortOrder: string
28
- sortType: string
29
- includeDocs: boolean
30
- version?: string
31
-
32
- constructor(base?: SearchFilters) {
11
+ class QueryBuilder {
12
+ constructor(base) {
33
13
  this.query = {
34
14
  allOr: false,
35
15
  string: {},
@@ -49,52 +29,49 @@ export class QueryBuilder {
49
29
  this.sortOrder = "ascending"
50
30
  this.sortType = "string"
51
31
  this.includeDocs = true
32
+ this.version = null
52
33
  }
53
34
 
54
- setVersion(version?: string) {
55
- if (version != null) {
56
- this.version = version
57
- }
35
+ setVersion(version) {
36
+ this.version = version
58
37
  return this
59
38
  }
60
39
 
61
- setTable(tableId: string) {
62
- this.query.equal!.tableId = tableId
40
+ setTable(tableId) {
41
+ this.query.equal.tableId = tableId
63
42
  return this
64
43
  }
65
44
 
66
- setLimit(limit?: number) {
45
+ setLimit(limit) {
67
46
  if (limit != null) {
68
47
  this.limit = limit
69
48
  }
70
49
  return this
71
50
  }
72
51
 
73
- setSort(sort?: string) {
52
+ setSort(sort) {
74
53
  if (sort != null) {
75
54
  this.sort = sort
76
55
  }
77
56
  return this
78
57
  }
79
58
 
80
- setSortOrder(sortOrder?: string) {
59
+ setSortOrder(sortOrder) {
81
60
  if (sortOrder != null) {
82
61
  this.sortOrder = sortOrder
83
62
  }
84
63
  return this
85
64
  }
86
65
 
87
- setSortType(sortType?: string) {
66
+ setSortType(sortType) {
88
67
  if (sortType != null) {
89
68
  this.sortType = sortType
90
69
  }
91
70
  return this
92
71
  }
93
72
 
94
- setBookmark(bookmark?: string) {
95
- if (bookmark != null) {
96
- this.bookmark = bookmark
97
- }
73
+ setBookmark(bookmark) {
74
+ this.bookmark = bookmark
98
75
  return this
99
76
  }
100
77
 
@@ -103,61 +80,61 @@ export class QueryBuilder {
103
80
  return this
104
81
  }
105
82
 
106
- addString(key: string, partial: string) {
107
- this.query.string![key] = partial
83
+ addString(key, partial) {
84
+ this.query.string[key] = partial
108
85
  return this
109
86
  }
110
87
 
111
- addFuzzy(key: string, fuzzy: string) {
112
- this.query.fuzzy![key] = fuzzy
88
+ addFuzzy(key, fuzzy) {
89
+ this.query.fuzzy[key] = fuzzy
113
90
  return this
114
91
  }
115
92
 
116
- addRange(key: string, low: string | number, high: string | number) {
117
- this.query.range![key] = {
93
+ addRange(key, low, high) {
94
+ this.query.range = {
118
95
  low,
119
96
  high,
120
97
  }
121
98
  return this
122
99
  }
123
100
 
124
- addEqual(key: string, value: any) {
125
- this.query.equal![key] = value
101
+ addEqual(key, value) {
102
+ this.query.equal[key] = value
126
103
  return this
127
104
  }
128
105
 
129
- addNotEqual(key: string, value: any) {
130
- this.query.notEqual![key] = value
106
+ addNotEqual(key, value) {
107
+ this.query.notEqual[key] = value
131
108
  return this
132
109
  }
133
110
 
134
- addEmpty(key: string, value: any) {
135
- this.query.empty![key] = value
111
+ addEmpty(key, value) {
112
+ this.query.empty[key] = value
136
113
  return this
137
114
  }
138
115
 
139
- addNotEmpty(key: string, value: any) {
140
- this.query.notEmpty![key] = value
116
+ addNotEmpty(key, value) {
117
+ this.query.notEmpty[key] = value
141
118
  return this
142
119
  }
143
120
 
144
- addOneOf(key: string, value: any) {
145
- this.query.oneOf![key] = value
121
+ addOneOf(key, value) {
122
+ this.query.oneOf[key] = value
146
123
  return this
147
124
  }
148
125
 
149
- addContains(key: string, value: any) {
150
- this.query.contains![key] = value
126
+ addContains(key, value) {
127
+ this.query.contains[key] = value
151
128
  return this
152
129
  }
153
130
 
154
- addNotContains(key: string, value: any) {
155
- this.query.notContains![key] = value
131
+ addNotContains(key, value) {
132
+ this.query.notContains[key] = value
156
133
  return this
157
134
  }
158
135
 
159
- addContainsAny(key: string, value: any) {
160
- this.query.containsAny![key] = value
136
+ addContainsAny(key, value) {
137
+ this.query.containsAny[key] = value
161
138
  return this
162
139
  }
163
140
 
@@ -168,7 +145,7 @@ export class QueryBuilder {
168
145
  * @param options The preprocess options
169
146
  * @returns {string|*}
170
147
  */
171
- preprocess(value: any, { escape, lowercase, wrap, type }: any = {}) {
148
+ preprocess(value, { escape, lowercase, wrap, type } = {}) {
172
149
  const hasVersion = !!this.version
173
150
  // Determine if type needs wrapped
174
151
  const originalType = typeof value
@@ -196,12 +173,12 @@ export class QueryBuilder {
196
173
  let query = allOr ? "" : "*:*"
197
174
  const allPreProcessingOpts = { escape: true, lowercase: true, wrap: true }
198
175
  let tableId
199
- if (this.query.equal!.tableId) {
200
- tableId = this.query.equal!.tableId
201
- delete this.query.equal!.tableId
176
+ if (this.query.equal.tableId) {
177
+ tableId = this.query.equal.tableId
178
+ delete this.query.equal.tableId
202
179
  }
203
180
 
204
- const equal = (key: string, value: any) => {
181
+ const equal = (key, value) => {
205
182
  // 0 evaluates to false, which means we would return all rows if we don't check it
206
183
  if (!value && value !== 0) {
207
184
  return null
@@ -209,7 +186,7 @@ export class QueryBuilder {
209
186
  return `${key}:${builder.preprocess(value, allPreProcessingOpts)}`
210
187
  }
211
188
 
212
- const contains = (key: string, value: any, mode = "AND") => {
189
+ const contains = (key, value, mode = "AND") => {
213
190
  if (Array.isArray(value) && value.length === 0) {
214
191
  return null
215
192
  }
@@ -225,17 +202,16 @@ export class QueryBuilder {
225
202
  return `${key}:(${statement})`
226
203
  }
227
204
 
228
- const notContains = (key: string, value: any) => {
229
- // @ts-ignore
205
+ const notContains = (key, value) => {
230
206
  const allPrefix = allOr === "" ? "*:* AND" : ""
231
207
  return allPrefix + "NOT " + contains(key, value)
232
208
  }
233
209
 
234
- const containsAny = (key: string, value: any) => {
210
+ const containsAny = (key, value) => {
235
211
  return contains(key, value, "OR")
236
212
  }
237
213
 
238
- const oneOf = (key: string, value: any) => {
214
+ const oneOf = (key, value) => {
239
215
  if (!Array.isArray(value)) {
240
216
  if (typeof value === "string") {
241
217
  value = value.split(",")
@@ -253,7 +229,7 @@ export class QueryBuilder {
253
229
  return `${key}:(${orStatement})`
254
230
  }
255
231
 
256
- function build(structure: any, queryFn: any) {
232
+ function build(structure, queryFn) {
257
233
  for (let [key, value] of Object.entries(structure)) {
258
234
  // check for new format - remove numbering if needed
259
235
  key = removeKeyNumbering(key)
@@ -273,7 +249,7 @@ export class QueryBuilder {
273
249
 
274
250
  // Construct the actual lucene search query string from JSON structure
275
251
  if (this.query.string) {
276
- build(this.query.string, (key: string, value: any) => {
252
+ build(this.query.string, (key, value) => {
277
253
  if (!value) {
278
254
  return null
279
255
  }
@@ -286,7 +262,7 @@ export class QueryBuilder {
286
262
  })
287
263
  }
288
264
  if (this.query.range) {
289
- build(this.query.range, (key: string, value: any) => {
265
+ build(this.query.range, (key, value) => {
290
266
  if (!value) {
291
267
  return null
292
268
  }
@@ -302,7 +278,7 @@ export class QueryBuilder {
302
278
  })
303
279
  }
304
280
  if (this.query.fuzzy) {
305
- build(this.query.fuzzy, (key: string, value: any) => {
281
+ build(this.query.fuzzy, (key, value) => {
306
282
  if (!value) {
307
283
  return null
308
284
  }
@@ -318,7 +294,7 @@ export class QueryBuilder {
318
294
  build(this.query.equal, equal)
319
295
  }
320
296
  if (this.query.notEqual) {
321
- build(this.query.notEqual, (key: string, value: any) => {
297
+ build(this.query.notEqual, (key, value) => {
322
298
  if (!value) {
323
299
  return null
324
300
  }
@@ -326,10 +302,10 @@ export class QueryBuilder {
326
302
  })
327
303
  }
328
304
  if (this.query.empty) {
329
- build(this.query.empty, (key: string) => `!${key}:["" TO *]`)
305
+ build(this.query.empty, key => `!${key}:["" TO *]`)
330
306
  }
331
307
  if (this.query.notEmpty) {
332
- build(this.query.notEmpty, (key: string) => `${key}:["" TO *]`)
308
+ build(this.query.notEmpty, key => `${key}:["" TO *]`)
333
309
  }
334
310
  if (this.query.oneOf) {
335
311
  build(this.query.oneOf, oneOf)
@@ -353,7 +329,7 @@ export class QueryBuilder {
353
329
  }
354
330
 
355
331
  buildSearchBody() {
356
- let body: any = {
332
+ let body = {
357
333
  q: this.buildSearchQuery(),
358
334
  limit: Math.min(this.limit, 200),
359
335
  include_docs: this.includeDocs,
@@ -370,14 +346,17 @@ export class QueryBuilder {
370
346
  }
371
347
 
372
348
  async run() {
373
- const appId = context.getAppId()
374
- const { url, cookie } = dbCore.getCouchInfo()
349
+ const appId = getAppId()
350
+ const { url, cookie } = getCouchInfo()
375
351
  const fullPath = `${url}/${appId}/_design/database/_search/${SearchIndexes.ROWS}`
376
352
  const body = this.buildSearchBody()
377
353
  return await runQuery(fullPath, body, cookie)
378
354
  }
379
355
  }
380
356
 
357
+ // exported for unit testing
358
+ exports.QueryBuilder = QueryBuilder
359
+
381
360
  /**
382
361
  * Executes a lucene search query.
383
362
  * @param url The query URL
@@ -385,7 +364,7 @@ export class QueryBuilder {
385
364
  * @param cookie The auth cookie for CouchDB
386
365
  * @returns {Promise<{rows: []}>}
387
366
  */
388
- const runQuery = async (url: string, body: any, cookie: string) => {
367
+ const runQuery = async (url, body, cookie) => {
389
368
  const response = await fetch(url, {
390
369
  body: JSON.stringify(body),
391
370
  method: "POST",
@@ -395,11 +374,11 @@ const runQuery = async (url: string, body: any, cookie: string) => {
395
374
  })
396
375
  const json = await response.json()
397
376
 
398
- let output: any = {
377
+ let output = {
399
378
  rows: [],
400
379
  }
401
380
  if (json.rows != null && json.rows.length > 0) {
402
- output.rows = json.rows.map((row: any) => row.doc)
381
+ output.rows = json.rows.map(row => row.doc)
403
382
  }
404
383
  if (json.bookmark) {
405
384
  output.bookmark = json.bookmark
@@ -423,7 +402,7 @@ const runQuery = async (url: string, body: any, cookie: string) => {
423
402
  * rows {array|null} Current results in the recursive search
424
403
  * @returns {Promise<*[]|*>}
425
404
  */
426
- async function recursiveSearch(query: any, params: any): Promise<any> {
405
+ const recursiveSearch = async (query, params) => {
427
406
  const bookmark = params.bookmark
428
407
  const rows = params.rows || []
429
408
  if (rows.length >= params.limit) {
@@ -471,10 +450,7 @@ async function recursiveSearch(query: any, params: any): Promise<any> {
471
450
  * bookmark {string} The bookmark to resume from
472
451
  * @returns {Promise<{hasNextPage: boolean, rows: *[]}>}
473
452
  */
474
- export async function paginatedSearch(
475
- query: SearchFilters,
476
- params: SearchParams
477
- ) {
453
+ exports.paginatedSearch = async (query, params) => {
478
454
  let limit = params.limit
479
455
  if (limit == null || isNaN(limit) || limit < 0) {
480
456
  limit = 50
@@ -520,7 +496,7 @@ export async function paginatedSearch(
520
496
  * limit {number} The desired number of results
521
497
  * @returns {Promise<{rows: *}>}
522
498
  */
523
- export async function fullSearch(query: SearchFilters, params: SearchParams) {
499
+ exports.fullSearch = async (query, params) => {
524
500
  let limit = params.limit
525
501
  if (limit == null || isNaN(limit) || limit < 0) {
526
502
  limit = 1000
@@ -1,14 +1,13 @@
1
- import { getRowParams } from "../../../db/utils"
2
- import {
1
+ const { getRowParams } = require("../../../db/utils")
2
+ const {
3
3
  outputProcessing,
4
4
  processAutoColumn,
5
5
  processFormulas,
6
- } from "../../../utilities/rowProcessor"
7
- import { FieldTypes, FormulaTypes } from "../../../constants"
8
- import { context } from "@budibase/backend-core"
9
- import { Table, Row } from "@budibase/types"
6
+ } = require("../../../utilities/rowProcessor")
7
+ const { FieldTypes, FormulaTypes } = require("../../../constants")
10
8
  const { isEqual } = require("lodash")
11
9
  const { cloneDeep } = require("lodash/fp")
10
+ const { getAppDB } = require("@budibase/backend-core/context")
12
11
 
13
12
  /**
14
13
  * This function runs through a list of enriched rows, looks at the rows which
@@ -16,22 +15,22 @@ const { cloneDeep } = require("lodash/fp")
16
15
  * updated.
17
16
  * NOTE: this will only for affect static formulas.
18
17
  */
19
- exports.updateRelatedFormula = async (table: Table, enrichedRows: Row[]) => {
20
- const db = context.getAppDB()
18
+ exports.updateRelatedFormula = async (table, enrichedRows) => {
19
+ const db = getAppDB()
21
20
  // no formula to update, we're done
22
21
  if (!table.relatedFormula) {
23
22
  return
24
23
  }
25
- let promises: Promise<any>[] = []
24
+ let promises = []
26
25
  for (let enrichedRow of Array.isArray(enrichedRows)
27
26
  ? enrichedRows
28
27
  : [enrichedRows]) {
29
28
  // the related rows by tableId
30
- let relatedRows: Record<string, Row[]> = {}
29
+ let relatedRows = {}
31
30
  for (let [key, field] of Object.entries(enrichedRow)) {
32
31
  const columnDefinition = table.schema[key]
33
32
  if (columnDefinition && columnDefinition.type === FieldTypes.LINK) {
34
- const relatedTableId = columnDefinition.tableId!
33
+ const relatedTableId = columnDefinition.tableId
35
34
  if (!relatedRows[relatedTableId]) {
36
35
  relatedRows[relatedTableId] = []
37
36
  }
@@ -39,7 +38,7 @@ exports.updateRelatedFormula = async (table: Table, enrichedRows: Row[]) => {
39
38
  }
40
39
  }
41
40
  for (let tableId of table.relatedFormula) {
42
- let relatedTable: Table
41
+ let relatedTable
43
42
  try {
44
43
  // no rows to update, skip
45
44
  if (!relatedRows[tableId] || relatedRows[tableId].length === 0) {
@@ -49,7 +48,7 @@ exports.updateRelatedFormula = async (table: Table, enrichedRows: Row[]) => {
49
48
  } catch (err) {
50
49
  // no error scenario, table doesn't seem to exist anymore, ignore
51
50
  }
52
- for (let column of Object.values(relatedTable!.schema)) {
51
+ for (let column of Object.values(relatedTable.schema)) {
53
52
  // needs updated in related rows
54
53
  if (
55
54
  column.type === FieldTypes.FORMULA &&
@@ -58,7 +57,7 @@ exports.updateRelatedFormula = async (table: Table, enrichedRows: Row[]) => {
58
57
  // re-enrich rows for all the related, don't update the related formula for them
59
58
  promises = promises.concat(
60
59
  relatedRows[tableId].map(related =>
61
- finaliseRow(relatedTable, related, {
60
+ exports.finaliseRow(relatedTable, related, {
62
61
  updateFormula: false,
63
62
  })
64
63
  )
@@ -71,8 +70,8 @@ exports.updateRelatedFormula = async (table: Table, enrichedRows: Row[]) => {
71
70
  await Promise.all(promises)
72
71
  }
73
72
 
74
- export async function updateAllFormulasInTable(table: Table) {
75
- const db = context.getAppDB()
73
+ exports.updateAllFormulasInTable = async table => {
74
+ const db = getAppDB()
76
75
  // start by getting the raw rows (which will be written back to DB after update)
77
76
  let rows = (
78
77
  await db.allDocs(
@@ -89,9 +88,7 @@ export async function updateAllFormulasInTable(table: Table) {
89
88
  const updatedRows = []
90
89
  for (let row of rows) {
91
90
  // find the enriched row, if found process the formulas
92
- const enrichedRow = enrichedRows.find(
93
- (enriched: any) => enriched._id === row._id
94
- )
91
+ const enrichedRow = enrichedRows.find(enriched => enriched._id === row._id)
95
92
  if (enrichedRow) {
96
93
  const processed = processFormulas(table, cloneDeep(row), {
97
94
  dynamic: false,
@@ -112,14 +109,12 @@ export async function updateAllFormulasInTable(table: Table) {
112
109
  * row. The reason we need to return the enriched row is that the automation row created trigger
113
110
  * expects the row to be totally enriched/contain all relationships.
114
111
  */
115
- export async function finaliseRow(
116
- table: Table,
117
- row: Row,
118
- { oldTable, updateFormula }: { oldTable?: Table; updateFormula: boolean } = {
119
- updateFormula: true,
120
- }
121
- ) {
122
- const db = context.getAppDB()
112
+ exports.finaliseRow = async (
113
+ table,
114
+ row,
115
+ { oldTable, updateFormula } = { updateFormula: true }
116
+ ) => {
117
+ const db = getAppDB()
123
118
  row.type = "row"
124
119
  // process the row before return, to include relationships
125
120
  let enrichedRow = await outputProcessing(table, cloneDeep(row), {
@@ -136,7 +131,7 @@ export async function finaliseRow(
136
131
  if (oldTable && !isEqual(oldTable, table)) {
137
132
  try {
138
133
  await db.put(table)
139
- } catch (err: any) {
134
+ } catch (err) {
140
135
  if (err.status === 409) {
141
136
  const updatedTable = await db.get(table._id)
142
137
  let response = processAutoColumn(null, updatedTable, row, {