@budibase/server 2.1.32-alpha.7 → 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.e0fdcf54.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
@@ -1,13 +1,13 @@
1
- import * as internal from "./internal"
2
- import * as external from "./external"
3
- import csvParser from "../../../utilities/csvParser"
4
- import { isExternalTable, isSQL } from "../../../integrations/utils"
5
- import { getDatasourceParams } from "../../../db/utils"
6
- import { context, events } from "@budibase/backend-core"
7
- import { Table, BBContext } from "@budibase/types"
8
- import sdk from "../../../sdk"
1
+ const internal = require("./internal")
2
+ const external = require("./external")
3
+ const csvParser = require("../../../utilities/csvParser")
4
+ const { isExternalTable, isSQL } = require("../../../integrations/utils")
5
+ const { getDatasourceParams } = require("../../../db/utils")
6
+ const { getAppDB } = require("@budibase/backend-core/context")
7
+ const { events } = require("@budibase/backend-core")
8
+ const sdk = require("../../../sdk")
9
9
 
10
- function pickApi({ tableId, table }: { tableId?: string; table?: Table }) {
10
+ function pickApi({ tableId, table }) {
11
11
  if (table && !tableId) {
12
12
  tableId = table._id
13
13
  }
@@ -20,8 +20,8 @@ function pickApi({ tableId, table }: { tableId?: string; table?: Table }) {
20
20
  }
21
21
 
22
22
  // covers both internal and external
23
- export async function fetch(ctx: BBContext) {
24
- const db = context.getAppDB()
23
+ exports.fetch = async function (ctx) {
24
+ const db = getAppDB()
25
25
 
26
26
  const internal = await sdk.tables.getAllInternalTables()
27
27
 
@@ -34,7 +34,7 @@ export async function fetch(ctx: BBContext) {
34
34
  const external = externalTables.rows.flatMap(tableDoc => {
35
35
  let entities = tableDoc.doc.entities
36
36
  if (entities) {
37
- return Object.values(entities).map((entity: any) => ({
37
+ return Object.values(entities).map(entity => ({
38
38
  ...entity,
39
39
  type: "external",
40
40
  sourceId: tableDoc.doc._id,
@@ -48,12 +48,12 @@ export async function fetch(ctx: BBContext) {
48
48
  ctx.body = [...internal, ...external]
49
49
  }
50
50
 
51
- export async function find(ctx: BBContext) {
51
+ exports.find = async function (ctx) {
52
52
  const tableId = ctx.params.tableId
53
53
  ctx.body = await sdk.tables.getTable(tableId)
54
54
  }
55
55
 
56
- export async function save(ctx: BBContext) {
56
+ exports.save = async function (ctx) {
57
57
  const appId = ctx.appId
58
58
  const table = ctx.request.body
59
59
  const importFormat =
@@ -74,7 +74,7 @@ export async function save(ctx: BBContext) {
74
74
  ctx.body = savedTable
75
75
  }
76
76
 
77
- export async function destroy(ctx: BBContext) {
77
+ exports.destroy = async function (ctx) {
78
78
  const appId = ctx.appId
79
79
  const tableId = ctx.params.tableId
80
80
  const deletedTable = await pickApi({ tableId }).destroy(ctx)
@@ -86,7 +86,7 @@ export async function destroy(ctx: BBContext) {
86
86
  ctx.body = { message: `Table ${tableId} deleted.` }
87
87
  }
88
88
 
89
- export async function bulkImport(ctx: BBContext) {
89
+ exports.bulkImport = async function (ctx) {
90
90
  const tableId = ctx.params.tableId
91
91
  await pickApi({ tableId }).bulkImport(ctx)
92
92
  // right now we don't trigger anything for bulk import because it
@@ -96,7 +96,7 @@ export async function bulkImport(ctx: BBContext) {
96
96
  ctx.body = { message: `Bulk rows created.` }
97
97
  }
98
98
 
99
- export async function validateCSVSchema(ctx: BBContext) {
99
+ exports.validateCSVSchema = async function (ctx) {
100
100
  // tableId being specified means its an import to an existing table
101
101
  const { csvString, schema = {}, tableId } = ctx.request.body
102
102
  let existingTable
@@ -2,7 +2,7 @@ import { updateLinks, EventType } from "../../../db/linkedRows"
2
2
  import { getRowParams, generateTableID } from "../../../db/utils"
3
3
  import { FieldTypes } from "../../../constants"
4
4
  import { TableSaveFunctions, hasTypeChanged, handleDataImport } from "./utils"
5
- import { context } from "@budibase/backend-core"
5
+ const { getAppDB } = require("@budibase/backend-core/context")
6
6
  import { isTest } from "../../../environment"
7
7
  import {
8
8
  cleanupAttachments,
@@ -35,7 +35,7 @@ function checkAutoColumns(table: Table, oldTable: Table) {
35
35
  }
36
36
 
37
37
  export async function save(ctx: any) {
38
- const db = context.getAppDB()
38
+ const db = getAppDB()
39
39
  const { dataImport, ...rest } = ctx.request.body
40
40
  let tableToSave = {
41
41
  type: "table",
@@ -133,12 +133,12 @@ export async function save(ctx: any) {
133
133
  tableToSave._rev = result.rev
134
134
  }
135
135
  // has to run after, make sure it has _id
136
- await runStaticFormulaChecks(tableToSave, { oldTable, deletion: false })
136
+ await runStaticFormulaChecks(tableToSave, { oldTable, deletion: null })
137
137
  return tableToSave
138
138
  }
139
139
 
140
140
  export async function destroy(ctx: any) {
141
- const db = context.getAppDB()
141
+ const db = getAppDB()
142
142
  const tableToDelete = await db.get(ctx.params.tableId)
143
143
 
144
144
  // Delete all rows for that table
@@ -161,7 +161,7 @@ export async function destroy(ctx: any) {
161
161
  })
162
162
 
163
163
  // don't remove the table itself until very end
164
- await db.remove(tableToDelete._id, tableToDelete._rev)
164
+ await db.remove(tableToDelete)
165
165
 
166
166
  // remove table search index
167
167
  if (!isTest() || env.COUCH_DB_URL) {
@@ -176,6 +176,7 @@ export async function destroy(ctx: any) {
176
176
 
177
177
  // has to run after, make sure it has _id
178
178
  await runStaticFormulaChecks(tableToDelete, {
179
+ oldTable: null,
179
180
  deletion: true,
180
181
  })
181
182
  await cleanupAttachments(tableToDelete, {
@@ -13,28 +13,28 @@ import {
13
13
  } from "../../../constants"
14
14
  import { getViews, saveView } from "../view/utils"
15
15
  import viewTemplate from "../view/viewBuilder"
16
+ const { getAppDB } = require("@budibase/backend-core/context")
16
17
  import { cloneDeep } from "lodash/fp"
17
18
  import { quotas } from "@budibase/pro"
18
- import { events, context } from "@budibase/backend-core"
19
- import { Database } from "@budibase/types"
19
+ import { events } from "@budibase/backend-core"
20
20
 
21
21
  export async function clearColumns(table: any, columnNames: any) {
22
- const db: Database = context.getAppDB()
22
+ const db = getAppDB()
23
23
  const rows = await db.allDocs(
24
24
  getRowParams(table._id, null, {
25
25
  include_docs: true,
26
26
  })
27
27
  )
28
- return (await db.bulkDocs(
28
+ return db.bulkDocs(
29
29
  rows.rows.map(({ doc }: any) => {
30
30
  columnNames.forEach((colName: any) => delete doc[colName])
31
31
  return doc
32
32
  })
33
- )) as { id: string; _rev?: string }[]
33
+ )
34
34
  }
35
35
 
36
36
  export async function checkForColumnUpdates(oldTable: any, updatedTable: any) {
37
- const db = context.getAppDB()
37
+ const db = getAppDB()
38
38
  let updatedRows = []
39
39
  const rename = updatedTable._rename
40
40
  let deletedColumns: any = []
@@ -95,7 +95,18 @@ export function makeSureTableUpToDate(table: any, tableToSave: any) {
95
95
  return tableToSave
96
96
  }
97
97
 
98
- export function importToRows(data: any, table: any, user: any = {}) {
98
+ export async function handleDataImport(user: any, table: any, dataImport: any) {
99
+ if (!dataImport || !dataImport.csvString) {
100
+ return table
101
+ }
102
+
103
+ const db = getAppDB()
104
+ // Populate the table with rows imported from CSV in a bulk update
105
+ const data = await transform({
106
+ ...dataImport,
107
+ existingTable: table,
108
+ })
109
+
99
110
  let finalData: any = []
100
111
  for (let i = 0; i < data.length; i++) {
101
112
  let row = data[i]
@@ -125,22 +136,6 @@ export function importToRows(data: any, table: any, user: any = {}) {
125
136
 
126
137
  finalData.push(row)
127
138
  }
128
- return finalData
129
- }
130
-
131
- export async function handleDataImport(user: any, table: any, dataImport: any) {
132
- if (!dataImport || !dataImport.csvString) {
133
- return table
134
- }
135
-
136
- const db = context.getAppDB()
137
- // Populate the table with rows imported from CSV in a bulk update
138
- const data = await transform({
139
- ...dataImport,
140
- existingTable: table,
141
- })
142
-
143
- let finalData: any = importToRows(data, table, user)
144
139
 
145
140
  await quotas.addRows(finalData.length, () => db.bulkDocs(finalData), {
146
141
  tableId: table._id,
@@ -150,7 +145,7 @@ export async function handleDataImport(user: any, table: any, dataImport: any) {
150
145
  }
151
146
 
152
147
  export async function handleSearchIndexes(table: any) {
153
- const db = context.getAppDB()
148
+ const db = getAppDB()
154
149
  // create relevant search indexes
155
150
  if (table.indexes && table.indexes.length > 0) {
156
151
  const currentIndexes = await db.getIndexes()
@@ -214,7 +209,7 @@ class TableSaveFunctions {
214
209
  rows: any
215
210
 
216
211
  constructor({ user, oldTable, dataImport }: any) {
217
- this.db = context.getAppDB()
212
+ this.db = getAppDB()
218
213
  this.user = user
219
214
  this.oldTable = oldTable
220
215
  this.dataImport = dataImport
@@ -338,7 +333,7 @@ export function generateJunctionTableName(
338
333
  return `jt_${table.name}_${relatedTable.name}_${column.name}_${column.fieldName}`
339
334
  }
340
335
 
341
- export function foreignKeyStructure(keyName: any, meta?: any) {
336
+ export function foreignKeyStructure(keyName: any, meta = null) {
342
337
  const structure: any = {
343
338
  type: FieldTypes.NUMBER,
344
339
  constraints: {},
@@ -1,20 +1,17 @@
1
- import nodeFetch from "node-fetch"
2
- import { downloadTemplate as dlTemplate } from "../../utilities/fileSystem"
3
- import env from "../../environment"
4
- import { BBContext } from "@budibase/types"
1
+ const fetch = require("node-fetch")
2
+ const { downloadTemplate } = require("../../utilities/fileSystem")
3
+ const env = require("../../environment")
5
4
 
6
5
  // development flag, can be used to test against templates exported locally
7
6
  const DEFAULT_TEMPLATES_BUCKET =
8
7
  "prod-budi-templates.s3-eu-west-1.amazonaws.com"
9
8
 
10
- export async function fetch(ctx: BBContext) {
9
+ exports.fetch = async function (ctx) {
11
10
  let type = env.TEMPLATE_REPOSITORY
12
11
  let response,
13
12
  error = false
14
13
  try {
15
- response = await nodeFetch(
16
- `https://${DEFAULT_TEMPLATES_BUCKET}/manifest.json`
17
- )
14
+ response = await fetch(`https://${DEFAULT_TEMPLATES_BUCKET}/manifest.json`)
18
15
  if (response.status !== 200) {
19
16
  error = true
20
17
  }
@@ -32,10 +29,10 @@ export async function fetch(ctx: BBContext) {
32
29
 
33
30
  // can't currently test this, have to ignore from coverage
34
31
  /* istanbul ignore next */
35
- export async function downloadTemplate(ctx: BBContext) {
32
+ exports.downloadTemplate = async function (ctx) {
36
33
  const { type, name } = ctx.params
37
34
 
38
- await dlTemplate(type, name)
35
+ await downloadTemplate(type, name)
39
36
 
40
37
  ctx.body = {
41
38
  message: `template ${type}:${name} downloaded successfully.`,
@@ -1,22 +1,23 @@
1
- import {
1
+ const {
2
2
  generateUserMetadataID,
3
3
  getUserMetadataParams,
4
4
  generateUserFlagID,
5
- } from "../../db/utils"
6
- import { InternalTables } from "../../db/utils"
7
- import { getGlobalUsers, getRawGlobalUser } from "../../utilities/global"
8
- import { getFullUser } from "../../utilities/users"
9
- import { isEqual } from "lodash"
10
- import {
11
- context,
12
- constants,
13
- roles as rolesCore,
14
- db as dbCore,
15
- } from "@budibase/backend-core"
16
- import { BBContext, User } from "@budibase/types"
5
+ } = require("../../db/utils")
6
+ const { InternalTables } = require("../../db/utils")
7
+ const { getGlobalUsers, getRawGlobalUser } = require("../../utilities/global")
8
+ const { getFullUser } = require("../../utilities/users")
9
+ const { isEqual } = require("lodash")
10
+ const { BUILTIN_ROLE_IDS } = require("@budibase/backend-core/roles")
11
+ const {
12
+ getDevelopmentAppID,
13
+ getProdAppIDs,
14
+ dbExists,
15
+ } = require("@budibase/backend-core/db")
16
+ const { UserStatus } = require("@budibase/backend-core/constants")
17
+ const { getAppDB, doInAppContext } = require("@budibase/backend-core/context")
17
18
 
18
19
  async function rawMetadata() {
19
- const db = context.getAppDB()
20
+ const db = getAppDB()
20
21
  return (
21
22
  await db.allDocs(
22
23
  getUserMetadataParams(null, {
@@ -26,9 +27,9 @@ async function rawMetadata() {
26
27
  ).rows.map(row => row.doc)
27
28
  }
28
29
 
29
- function combineMetadataAndUser(user: any, metadata: any) {
30
+ function combineMetadataAndUser(user, metadata) {
30
31
  // skip users with no access
31
- if (user.roleId === rolesCore.BUILTIN_ROLE_IDS.PUBLIC) {
32
+ if (user.roleId === BUILTIN_ROLE_IDS.PUBLIC) {
32
33
  return null
33
34
  }
34
35
  delete user._rev
@@ -54,9 +55,9 @@ function combineMetadataAndUser(user: any, metadata: any) {
54
55
  return null
55
56
  }
56
57
 
57
- export async function syncGlobalUsers() {
58
+ exports.syncGlobalUsers = async () => {
58
59
  // sync user metadata
59
- const db = context.getAppDB()
60
+ const db = getAppDB()
60
61
  const [users, metadata] = await Promise.all([getGlobalUsers(), rawMetadata()])
61
62
  const toWrite = []
62
63
  for (let user of users) {
@@ -68,13 +69,13 @@ export async function syncGlobalUsers() {
68
69
  await db.bulkDocs(toWrite)
69
70
  }
70
71
 
71
- export async function syncUser(ctx: BBContext) {
72
+ exports.syncUser = async function (ctx) {
72
73
  let deleting = false,
73
- user: User | any
74
+ user
74
75
  const userId = ctx.params.id
75
76
  try {
76
77
  user = await getRawGlobalUser(userId)
77
- } catch (err: any) {
78
+ } catch (err) {
78
79
  if (err && err.status === 404) {
79
80
  user = {}
80
81
  deleting = true
@@ -91,21 +92,21 @@ export async function syncUser(ctx: BBContext) {
91
92
  let prodAppIds
92
93
  // if they are a builder then get all production app IDs
93
94
  if ((user.builder && user.builder.global) || deleting) {
94
- prodAppIds = await dbCore.getProdAppIDs()
95
+ prodAppIds = await getProdAppIDs()
95
96
  } else {
96
97
  prodAppIds = Object.entries(roles)
97
- .filter(entry => entry[1] !== rolesCore.BUILTIN_ROLE_IDS.PUBLIC)
98
+ .filter(entry => entry[1] !== BUILTIN_ROLE_IDS.PUBLIC)
98
99
  .map(([appId]) => appId)
99
100
  }
100
101
  for (let prodAppId of prodAppIds) {
101
102
  const roleId = roles[prodAppId]
102
- const devAppId = dbCore.getDevelopmentAppID(prodAppId)
103
+ const devAppId = getDevelopmentAppID(prodAppId)
103
104
  for (let appId of [prodAppId, devAppId]) {
104
- if (!(await dbCore.dbExists(appId))) {
105
+ if (!(await dbExists(appId))) {
105
106
  continue
106
107
  }
107
- await context.doInAppContext(appId, async () => {
108
- const db = context.getAppDB()
108
+ await doInAppContext(appId, async () => {
109
+ const db = getAppDB()
109
110
  const metadataId = generateUserMetadataID(userId)
110
111
  let metadata
111
112
  try {
@@ -126,8 +127,8 @@ export async function syncUser(ctx: BBContext) {
126
127
  ? combineMetadataAndUser(user, metadata)
127
128
  : {
128
129
  ...metadata,
129
- status: constants.UserStatus.INACTIVE,
130
- metadata: rolesCore.BUILTIN_ROLE_IDS.PUBLIC,
130
+ status: UserStatus.INACTIVE,
131
+ metadata: BUILTIN_ROLE_IDS.PUBLIC,
131
132
  }
132
133
  // if its null then there was no updates required
133
134
  if (combined) {
@@ -141,9 +142,10 @@ export async function syncUser(ctx: BBContext) {
141
142
  }
142
143
  }
143
144
 
144
- export async function fetchMetadata(ctx: BBContext) {
145
+ exports.fetchMetadata = async function (ctx) {
146
+ const database = getAppDB()
145
147
  const global = await getGlobalUsers()
146
- const metadata = await rawMetadata()
148
+ const metadata = await rawMetadata(database)
147
149
  const users = []
148
150
  for (let user of global) {
149
151
  // find the metadata that matches up to the global ID
@@ -160,18 +162,18 @@ export async function fetchMetadata(ctx: BBContext) {
160
162
  ctx.body = users
161
163
  }
162
164
 
163
- export async function updateSelfMetadata(ctx: BBContext) {
165
+ exports.updateSelfMetadata = async function (ctx) {
164
166
  // overwrite the ID with current users
165
- ctx.request.body._id = ctx.user?._id
167
+ ctx.request.body._id = ctx.user._id
166
168
  // make sure no stale rev
167
169
  delete ctx.request.body._rev
168
170
  // make sure no csrf token
169
171
  delete ctx.request.body.csrfToken
170
- await updateMetadata(ctx)
172
+ await exports.updateMetadata(ctx)
171
173
  }
172
174
 
173
- export async function updateMetadata(ctx: BBContext) {
174
- const db = context.getAppDB()
175
+ exports.updateMetadata = async function (ctx) {
176
+ const db = getAppDB()
175
177
  const user = ctx.request.body
176
178
  // this isn't applicable to the user
177
179
  delete user.roles
@@ -182,8 +184,8 @@ export async function updateMetadata(ctx: BBContext) {
182
184
  ctx.body = await db.put(metadata)
183
185
  }
184
186
 
185
- export async function destroyMetadata(ctx: BBContext) {
186
- const db = context.getAppDB()
187
+ exports.destroyMetadata = async function (ctx) {
188
+ const db = getAppDB()
187
189
  try {
188
190
  const dbUser = await db.get(ctx.params.id)
189
191
  await db.remove(dbUser._id, dbUser._rev)
@@ -195,18 +197,18 @@ export async function destroyMetadata(ctx: BBContext) {
195
197
  }
196
198
  }
197
199
 
198
- export async function findMetadata(ctx: BBContext) {
200
+ exports.findMetadata = async function (ctx) {
199
201
  ctx.body = await getFullUser(ctx, ctx.params.id)
200
202
  }
201
203
 
202
- export async function setFlag(ctx: BBContext) {
203
- const userId = ctx.user?._id
204
+ exports.setFlag = async function (ctx) {
205
+ const userId = ctx.user._id
204
206
  const { flag, value } = ctx.request.body
205
207
  if (!flag) {
206
208
  ctx.throw(400, "Must supply a 'flag' field in request body.")
207
209
  }
208
- const flagDocId = generateUserFlagID(userId!)
209
- const db = context.getAppDB()
210
+ const flagDocId = generateUserFlagID(userId)
211
+ const db = getAppDB()
210
212
  let doc
211
213
  try {
212
214
  doc = await db.get(flagDocId)
@@ -218,10 +220,10 @@ export async function setFlag(ctx: BBContext) {
218
220
  ctx.body = { message: "Flag set successfully" }
219
221
  }
220
222
 
221
- export async function getFlags(ctx: BBContext) {
222
- const userId = ctx.user?._id
223
- const docId = generateUserFlagID(userId!)
224
- const db = context.getAppDB()
223
+ exports.getFlags = async function (ctx) {
224
+ const userId = ctx.user._id
225
+ const docId = generateUserFlagID(userId)
226
+ const db = getAppDB()
225
227
  let doc
226
228
  try {
227
229
  doc = await db.get(docId)
@@ -1,6 +1,4 @@
1
- import { Row } from "@budibase/types"
2
-
3
- export function csv(headers: string[], rows: Row[]) {
1
+ exports.csv = function (headers, rows) {
4
2
  let csv = headers.map(key => `"${key}"`).join(",")
5
3
 
6
4
  for (let row of rows) {
@@ -18,11 +16,11 @@ export function csv(headers: string[], rows: Row[]) {
18
16
  return csv
19
17
  }
20
18
 
21
- export function json(headers: string[], rows: Row[]) {
19
+ exports.json = function (headers, rows) {
22
20
  return JSON.stringify(rows, undefined, 2)
23
21
  }
24
22
 
25
- export const ExportFormats = {
23
+ exports.ExportFormats = {
26
24
  CSV: "csv",
27
25
  JSON: "json",
28
26
  }
@@ -1,29 +1,21 @@
1
- import viewTemplate from "./viewBuilder"
2
- import { apiFileReturn } from "../../../utilities/fileSystem"
3
- import * as exporters from "./exporters"
4
- import { deleteView, getView, getViews, saveView } from "./utils"
5
- import { fetchView } from "../row"
6
- import { FieldTypes } from "../../../constants"
7
- import { context, events } from "@budibase/backend-core"
8
- import { DocumentType } from "../../../db/utils"
9
- import sdk from "../../../sdk"
10
- import {
11
- BBContext,
12
- Row,
13
- Table,
14
- TableExportFormat,
15
- TableSchema,
16
- View,
17
- } from "@budibase/types"
18
-
1
+ const viewTemplate = require("./viewBuilder")
2
+ const { apiFileReturn } = require("../../../utilities/fileSystem")
3
+ const exporters = require("./exporters")
4
+ const { saveView, getView, getViews, deleteView } = require("./utils")
5
+ const { fetchView } = require("../row")
6
+ const { FieldTypes } = require("../../../constants")
7
+ const { getAppDB } = require("@budibase/backend-core/context")
8
+ const { events } = require("@budibase/backend-core")
9
+ const { DocumentType } = require("../../../db/utils")
19
10
  const { cloneDeep, isEqual } = require("lodash")
11
+ const sdk = require("../../../sdk")
20
12
 
21
- export async function fetch(ctx: BBContext) {
13
+ exports.fetch = async ctx => {
22
14
  ctx.body = await getViews()
23
15
  }
24
16
 
25
- export async function save(ctx: BBContext) {
26
- const db = context.getAppDB()
17
+ exports.save = async ctx => {
18
+ const db = getAppDB()
27
19
  const { originalName, ...viewToSave } = ctx.request.body
28
20
  const view = viewTemplate(viewToSave)
29
21
  const viewName = viewToSave.name
@@ -55,7 +47,7 @@ export async function save(ctx: BBContext) {
55
47
  }
56
48
  }
57
49
 
58
- export async function calculationEvents(existingView: View, newView: View) {
50
+ const calculationEvents = async (existingView, newView) => {
59
51
  const existingCalculation = existingView && existingView.calculation
60
52
  const newCalculation = newView && newView.calculation
61
53
 
@@ -76,7 +68,7 @@ export async function calculationEvents(existingView: View, newView: View) {
76
68
  }
77
69
  }
78
70
 
79
- export async function filterEvents(existingView: View, newView: View) {
71
+ const filterEvents = async (existingView, newView) => {
80
72
  const hasExistingFilters = !!(
81
73
  existingView &&
82
74
  existingView.filters &&
@@ -101,7 +93,7 @@ export async function filterEvents(existingView: View, newView: View) {
101
93
  }
102
94
  }
103
95
 
104
- async function handleViewEvents(existingView: View, newView: View) {
96
+ const handleViewEvents = async (existingView, newView) => {
105
97
  if (!existingView) {
106
98
  await events.view.created(newView)
107
99
  } else {
@@ -111,8 +103,8 @@ async function handleViewEvents(existingView: View, newView: View) {
111
103
  await filterEvents(existingView, newView)
112
104
  }
113
105
 
114
- export async function destroy(ctx: BBContext) {
115
- const db = context.getAppDB()
106
+ exports.destroy = async ctx => {
107
+ const db = getAppDB()
116
108
  const viewName = decodeURI(ctx.params.viewName)
117
109
  const view = await deleteView(viewName)
118
110
  const table = await db.get(view.meta.tableId)
@@ -123,11 +115,11 @@ export async function destroy(ctx: BBContext) {
123
115
  ctx.body = view
124
116
  }
125
117
 
126
- export async function exportView(ctx: BBContext) {
127
- const viewName = decodeURI(ctx.query.view as string)
118
+ exports.exportView = async ctx => {
119
+ const viewName = decodeURI(ctx.query.view)
128
120
  const view = await getView(viewName)
129
121
 
130
- const format = ctx.query.format as string
122
+ const format = ctx.query.format
131
123
  if (!format || !Object.values(exporters.ExportFormats).includes(format)) {
132
124
  ctx.throw(400, "Format must be specified, either csv or json")
133
125
  }
@@ -138,7 +130,6 @@ export async function exportView(ctx: BBContext) {
138
130
  ctx.query = {
139
131
  group: view.meta.groupBy,
140
132
  calculation: view.meta.calculation,
141
- // @ts-ignore
142
133
  stats: !!view.meta.field,
143
134
  field: view.meta.field,
144
135
  }
@@ -149,11 +140,11 @@ export async function exportView(ctx: BBContext) {
149
140
  }
150
141
 
151
142
  await fetchView(ctx)
152
- let rows = ctx.body as Row[]
143
+ let rows = ctx.body
153
144
 
154
- let schema: TableSchema = view && view.meta && view.meta.schema
145
+ let schema = view && view.meta && view.meta.schema
155
146
  const tableId = ctx.params.tableId || view.meta.tableId
156
- const table: Table = await sdk.tables.getTable(tableId)
147
+ const table = await sdk.tables.getTable(tableId)
157
148
  if (!schema) {
158
149
  schema = table.schema
159
150
  }
@@ -184,15 +175,15 @@ export async function exportView(ctx: BBContext) {
184
175
 
185
176
  // Export part
186
177
  let headers = Object.keys(schema)
187
- const exporter = format === "csv" ? exporters.csv : exporters.json
178
+ const exporter = exporters[format]
188
179
  const filename = `${viewName}.${format}`
189
180
  // send down the file
190
181
  ctx.attachment(filename)
191
182
  ctx.body = apiFileReturn(exporter(headers, rows))
192
183
 
193
184
  if (viewName.startsWith(DocumentType.TABLE)) {
194
- await events.table.exported(table, format as TableExportFormat)
185
+ await events.table.exported(table, format)
195
186
  } else {
196
- await events.view.exported(table, format as TableExportFormat)
187
+ await events.view.exported(table, format)
197
188
  }
198
189
  }