@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
@@ -23,9 +23,11 @@ const { clientLibraryPath } = require("../../../utilities");
23
23
  const { upload, deleteFiles } = require("../../../utilities/fileSystem");
24
24
  const { attachmentsRelativeURL } = require("../../../utilities");
25
25
  const { DocumentType } = require("../../../db/utils");
26
- const { context, objectStore, utils } = require("@budibase/backend-core");
26
+ const { getAppDB, getAppId } = require("@budibase/backend-core/context");
27
+ const { setCookie, clearCookie } = require("@budibase/backend-core/utils");
27
28
  const AWS = require("aws-sdk");
28
29
  const fs = require("fs");
30
+ const { downloadTarballDirect, } = require("../../../utilities/fileSystem/utilities");
29
31
  function prepareUpload({ s3Key, bucket, metadata, file }) {
30
32
  return __awaiter(this, void 0, void 0, function* () {
31
33
  const response = yield upload({
@@ -49,7 +51,7 @@ const toggleBetaUiFeature = function (ctx) {
49
51
  return __awaiter(this, void 0, void 0, function* () {
50
52
  const cookieName = `beta:${ctx.params.feature}`;
51
53
  if (ctx.cookies.get(cookieName)) {
52
- utils.clearCookie(ctx, cookieName);
54
+ clearCookie(ctx, cookieName);
53
55
  ctx.body = {
54
56
  message: `${ctx.params.feature} disabled`,
55
57
  };
@@ -60,8 +62,8 @@ const toggleBetaUiFeature = function (ctx) {
60
62
  if (!fs.existsSync(builderPath)) {
61
63
  fs.mkdirSync(builderPath);
62
64
  }
63
- yield objectStore.downloadTarballDirect("https://cdn.budi.live/beta:design_ui/new_ui.tar.gz", builderPath);
64
- utils.setCookie(ctx, {}, cookieName);
65
+ yield downloadTarballDirect("https://cdn.budi.live/beta:design_ui/new_ui.tar.gz", builderPath);
66
+ setCookie(ctx, {}, cookieName);
65
67
  ctx.body = {
66
68
  message: `${ctx.params.feature} enabled`,
67
69
  };
@@ -102,9 +104,9 @@ const deleteObjects = function (ctx) {
102
104
  exports.deleteObjects = deleteObjects;
103
105
  const serveApp = function (ctx) {
104
106
  return __awaiter(this, void 0, void 0, function* () {
105
- const db = context.getAppDB({ skip_setup: true });
107
+ const db = getAppDB({ skip_setup: true });
106
108
  const appInfo = yield db.get(DocumentType.APP_METADATA);
107
- let appId = context.getAppId();
109
+ let appId = getAppId();
108
110
  if (!env.isJest()) {
109
111
  const App = require("./templates/BudibaseApp.svelte").default;
110
112
  const plugins = (0, plugins_1.enrichPluginURLs)(appInfo.usedPlugins);
@@ -133,10 +135,10 @@ const serveApp = function (ctx) {
133
135
  exports.serveApp = serveApp;
134
136
  const serveBuilderPreview = function (ctx) {
135
137
  return __awaiter(this, void 0, void 0, function* () {
136
- const db = context.getAppDB({ skip_setup: true });
138
+ const db = getAppDB({ skip_setup: true });
137
139
  const appInfo = yield db.get(DocumentType.APP_METADATA);
138
140
  if (!env.isJest()) {
139
- let appId = context.getAppId();
141
+ let appId = getAppId();
140
142
  const previewHbs = loadHandlebarsFile(`${__dirname}/templates/preview.hbs`);
141
143
  ctx.body = yield processString(previewHbs, {
142
144
  clientLibPath: clientLibraryPath(appId, appInfo.version, ctx),
@@ -160,7 +162,7 @@ exports.serveClientLibrary = serveClientLibrary;
160
162
  const getSignedUploadURL = function (ctx) {
161
163
  var _a, _b, _c, _d;
162
164
  return __awaiter(this, void 0, void 0, function* () {
163
- const database = context.getAppDB();
165
+ const database = getAppDB();
164
166
  // Ensure datasource is valid
165
167
  let datasource;
166
168
  try {
@@ -8,22 +8,17 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
8
8
  step((generator = generator.apply(thisArg, _arguments || [])).next());
9
9
  });
10
10
  };
11
- var __importDefault = (this && this.__importDefault) || function (mod) {
12
- return (mod && mod.__esModule) ? mod : { "default": mod };
13
- };
14
- Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.runStaticFormulaChecks = void 0;
16
- const constants_1 = require("../../../constants");
17
- const utils_1 = require("./utils");
18
- const string_templates_1 = require("@budibase/string-templates");
19
- const fp_1 = require("lodash/fp");
20
- const lodash_1 = require("lodash");
21
- const staticFormula_1 = require("../row/staticFormula");
22
- const backend_core_1 = require("@budibase/backend-core");
23
- const sdk_1 = __importDefault(require("../../../sdk"));
11
+ const { FieldTypes, FormulaTypes } = require("../../../constants");
12
+ const { clearColumns } = require("./utils");
13
+ const { doesContainStrings } = require("@budibase/string-templates");
14
+ const { cloneDeep } = require("lodash/fp");
15
+ const { isEqual, uniq } = require("lodash");
16
+ const { updateAllFormulasInTable } = require("../row/staticFormula");
17
+ const { getAppDB } = require("@budibase/backend-core/context");
18
+ const sdk = require("../../../sdk");
24
19
  function isStaticFormula(column) {
25
- return (column.type === constants_1.FieldTypes.FORMULA &&
26
- column.formulaType === constants_1.FormulaTypes.STATIC);
20
+ return (column.type === FieldTypes.FORMULA &&
21
+ column.formulaType === FormulaTypes.STATIC);
27
22
  }
28
23
  /**
29
24
  * This retrieves the formula columns from a table schema that use a specified column name
@@ -38,7 +33,7 @@ function getFormulaThatUseColumn(table, columnNames) {
38
33
  if (!isStaticFormula(column)) {
39
34
  continue;
40
35
  }
41
- if (!(0, string_templates_1.doesContainStrings)((_a = column === null || column === void 0 ? void 0 : column.formula) !== null && _a !== void 0 ? _a : "", columnNames)) {
36
+ if (!doesContainStrings((_a = column === null || column === void 0 ? void 0 : column.formula) !== null && _a !== void 0 ? _a : "", columnNames)) {
42
37
  continue;
43
38
  }
44
39
  formula.push(column.name);
@@ -52,22 +47,19 @@ function getFormulaThatUseColumn(table, columnNames) {
52
47
  function checkIfFormulaNeedsCleared(table, { oldTable, deletion }) {
53
48
  return __awaiter(this, void 0, void 0, function* () {
54
49
  // start by retrieving all tables, remove the current table from the list
55
- const tables = (yield sdk_1.default.tables.getAllInternalTables()).filter(tbl => tbl._id !== table._id);
50
+ const tables = (yield sdk.tables.getAllInternalTables()).filter(tbl => tbl._id !== table._id);
56
51
  const schemaToUse = oldTable ? oldTable.schema : table.schema;
57
52
  let removedColumns = Object.values(schemaToUse).filter(column => deletion || !table.schema[column.name]);
58
53
  // remove any formula columns that used related columns
59
54
  for (let removed of removedColumns) {
60
55
  let tableToUse = table;
61
56
  // if relationship, get the related table
62
- if (removed.type === constants_1.FieldTypes.LINK) {
57
+ if (removed.type === FieldTypes.LINK) {
63
58
  tableToUse = tables.find(table => table._id === removed.tableId);
64
59
  }
65
- if (!tableToUse) {
66
- continue;
67
- }
68
60
  const columnsToDelete = getFormulaThatUseColumn(tableToUse, removed.name);
69
61
  if (columnsToDelete.length > 0) {
70
- yield (0, utils_1.clearColumns)(table, columnsToDelete);
62
+ yield clearColumns(table, columnsToDelete);
71
63
  }
72
64
  // need a special case, where a column has been removed from this table, but was used
73
65
  // in a different, related tables formula
@@ -79,7 +71,7 @@ function checkIfFormulaNeedsCleared(table, { oldTable, deletion }) {
79
71
  const relatedTable = tables.find(table => table._id === relatedTableId);
80
72
  // look to see if the column was used in a relationship formula,
81
73
  // relationships won't be used for this
82
- if (relatedTable && relatedColumns && removed.type !== constants_1.FieldTypes.LINK) {
74
+ if (relatedTable && relatedColumns && removed.type !== FieldTypes.LINK) {
83
75
  let relatedFormulaToRemove = [];
84
76
  for (let column of relatedColumns) {
85
77
  relatedFormulaToRemove = relatedFormulaToRemove.concat(getFormulaThatUseColumn(relatedTable, [
@@ -88,7 +80,7 @@ function checkIfFormulaNeedsCleared(table, { oldTable, deletion }) {
88
80
  ]));
89
81
  }
90
82
  if (relatedFormulaToRemove.length > 0) {
91
- yield (0, utils_1.clearColumns)(relatedTable, (0, lodash_1.uniq)(relatedFormulaToRemove));
83
+ yield clearColumns(relatedTable, uniq(relatedFormulaToRemove));
92
84
  }
93
85
  }
94
86
  }
@@ -101,22 +93,21 @@ function checkIfFormulaNeedsCleared(table, { oldTable, deletion }) {
101
93
  * can manage hydrating related rows formula fields. This is
102
94
  * specifically only for static formula.
103
95
  */
104
- function updateRelatedFormulaLinksOnTables(table, { deletion } = {}) {
96
+ function updateRelatedFormulaLinksOnTables(table, { deletion } = { deletion: false }) {
105
97
  return __awaiter(this, void 0, void 0, function* () {
106
- const tableId = table._id;
107
- const db = backend_core_1.context.getAppDB();
98
+ const db = getAppDB();
108
99
  // start by retrieving all tables, remove the current table from the list
109
- const tables = (yield sdk_1.default.tables.getAllInternalTables()).filter(tbl => tbl._id !== tableId);
100
+ const tables = (yield sdk.tables.getAllInternalTables()).filter(tbl => tbl._id !== table._id);
110
101
  // clone the tables, so we can compare at end
111
- const initialTables = (0, fp_1.cloneDeep)(tables);
102
+ const initialTables = cloneDeep(tables);
112
103
  // first find the related column names
113
- const relatedColumns = Object.values(table.schema).filter(col => col.type === constants_1.FieldTypes.LINK);
104
+ const relatedColumns = Object.values(table.schema).filter(col => col.type === FieldTypes.LINK);
114
105
  // we start by removing the formula field from all tables
115
106
  for (let otherTable of tables) {
116
107
  if (!otherTable.relatedFormula) {
117
108
  continue;
118
109
  }
119
- const index = otherTable.relatedFormula.indexOf(tableId);
110
+ const index = otherTable.relatedFormula.indexOf(table._id);
120
111
  if (index !== -1) {
121
112
  otherTable.relatedFormula.splice(index, 1);
122
113
  }
@@ -132,17 +123,17 @@ function updateRelatedFormulaLinksOnTables(table, { deletion } = {}) {
132
123
  // check if the table is already in the list of related formula, if it isn't, then add it
133
124
  if (relatedTable &&
134
125
  (!relatedTable.relatedFormula ||
135
- !relatedTable.relatedFormula.includes(tableId))) {
126
+ !relatedTable.relatedFormula.includes(table._id))) {
136
127
  relatedTable.relatedFormula = relatedTable.relatedFormula
137
- ? [...relatedTable.relatedFormula, tableId]
138
- : [tableId];
128
+ ? [...relatedTable.relatedFormula, table._id]
129
+ : [table._id];
139
130
  }
140
131
  }
141
132
  }
142
133
  // now we just need to compare all the tables and see if any need saved
143
134
  for (let initial of initialTables) {
144
135
  const found = tables.find(tbl => initial._id === tbl._id);
145
- if (found && !(0, lodash_1.isEqual)(initial, found)) {
136
+ if (found && !isEqual(initial, found)) {
146
137
  yield db.put(found);
147
138
  }
148
139
  }
@@ -154,20 +145,17 @@ function checkIfFormulaUpdated(table, { oldTable }) {
154
145
  const shouldUpdate = Object.values(table.schema).find(column => isStaticFormula(column) &&
155
146
  (!oldTable ||
156
147
  !oldTable.schema[column.name] ||
157
- !(0, lodash_1.isEqual)(oldTable.schema[column.name], column)));
148
+ !isEqual(oldTable.schema[column.name], column)));
158
149
  // if a static formula column has updated, then need to run the update
159
150
  if (shouldUpdate != null) {
160
- yield (0, staticFormula_1.updateAllFormulasInTable)(table);
151
+ yield updateAllFormulasInTable(table);
161
152
  }
162
153
  });
163
154
  }
164
- function runStaticFormulaChecks(table, { oldTable, deletion }) {
165
- return __awaiter(this, void 0, void 0, function* () {
166
- yield updateRelatedFormulaLinksOnTables(table, { deletion });
167
- yield checkIfFormulaNeedsCleared(table, { oldTable, deletion });
168
- if (!deletion) {
169
- yield checkIfFormulaUpdated(table, { oldTable });
170
- }
171
- });
172
- }
173
- exports.runStaticFormulaChecks = runStaticFormulaChecks;
155
+ exports.runStaticFormulaChecks = (table, { oldTable, deletion }) => __awaiter(void 0, void 0, void 0, function* () {
156
+ yield updateRelatedFormulaLinksOnTables(table, { deletion });
157
+ yield checkIfFormulaNeedsCleared(table, { oldTable, deletion });
158
+ if (!deletion) {
159
+ yield checkIfFormulaUpdated(table, { oldTable });
160
+ }
161
+ });
@@ -8,22 +8,17 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
8
8
  step((generator = generator.apply(thisArg, _arguments || [])).next());
9
9
  });
10
10
  };
11
- var __importDefault = (this && this.__importDefault) || function (mod) {
12
- return (mod && mod.__esModule) ? mod : { "default": mod };
13
- };
14
- Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.bulkImport = exports.destroy = exports.save = void 0;
16
- const utils_1 = require("../../../integrations/utils");
17
- const utils_2 = require("./utils");
18
- const constants_1 = require("../../../constants");
19
- const query_1 = require("../../../integrations/base/query");
20
- const csvParser_1 = __importDefault(require("../../../utilities/csvParser"));
21
- const external_1 = require("../row/external");
22
- const backend_core_1 = require("@budibase/backend-core");
23
- const types_1 = require("@budibase/types");
24
- const sdk_1 = __importDefault(require("../../../sdk"));
11
+ const { buildExternalTableId, breakExternalTableId, } = require("../../../integrations/utils");
12
+ const { generateForeignKey, generateJunctionTableName, foreignKeyStructure, hasTypeChanged, } = require("./utils");
13
+ const { DataSourceOperation, FieldTypes, RelationshipTypes, } = require("../../../constants");
14
+ const { makeExternalQuery } = require("../../../integrations/base/query");
25
15
  const { cloneDeep } = require("lodash/fp");
26
- function makeTableRequest(datasource, operation, table, tables, oldTable, renamed) {
16
+ const csvParser = require("../../../utilities/csvParser");
17
+ const { handleRequest } = require("../row/external");
18
+ const { getAppDB } = require("@budibase/backend-core/context");
19
+ const { events } = require("@budibase/backend-core");
20
+ const sdk = require("../../../sdk");
21
+ function makeTableRequest(datasource, operation, table, tables, oldTable = null, renamed = null) {
27
22
  return __awaiter(this, void 0, void 0, function* () {
28
23
  const json = {
29
24
  endpoint: {
@@ -42,14 +37,14 @@ function makeTableRequest(datasource, operation, table, tables, oldTable, rename
42
37
  if (renamed) {
43
38
  json.meta.renamed = renamed;
44
39
  }
45
- return (0, query_1.makeExternalQuery)(datasource, json);
40
+ return makeExternalQuery(datasource, json);
46
41
  });
47
42
  }
48
- function cleanupRelationships(table, tables, oldTable) {
43
+ function cleanupRelationships(table, tables, oldTable = null) {
49
44
  const tableToIterate = oldTable ? oldTable : table;
50
45
  // clean up relationships in couch table schemas
51
46
  for (let [key, schema] of Object.entries(tableToIterate.schema)) {
52
- if (schema.type === constants_1.FieldTypes.LINK &&
47
+ if (schema.type === FieldTypes.LINK &&
53
48
  (!oldTable || table.schema[key] == null)) {
54
49
  const relatedTable = Object.values(tables).find(table => table._id === schema.tableId);
55
50
  const foreignKey = schema.foreignKey;
@@ -57,7 +52,7 @@ function cleanupRelationships(table, tables, oldTable) {
57
52
  continue;
58
53
  }
59
54
  for (let [relatedKey, relatedSchema] of Object.entries(relatedTable.schema)) {
60
- if (relatedSchema.type === constants_1.FieldTypes.LINK &&
55
+ if (relatedSchema.type === FieldTypes.LINK &&
61
56
  relatedSchema.fieldName === foreignKey) {
62
57
  delete relatedTable.schema[relatedKey];
63
58
  }
@@ -72,35 +67,32 @@ function getDatasourceId(table) {
72
67
  if (table.sourceId) {
73
68
  return table.sourceId;
74
69
  }
75
- return (0, utils_1.breakExternalTableId)(table._id).datasourceId;
70
+ return breakExternalTableId(table._id).datasourceId;
76
71
  }
77
72
  function otherRelationshipType(type) {
78
- if (type === constants_1.RelationshipTypes.MANY_TO_MANY) {
79
- return constants_1.RelationshipTypes.MANY_TO_MANY;
73
+ if (type === RelationshipTypes.MANY_TO_MANY) {
74
+ return RelationshipTypes.MANY_TO_MANY;
80
75
  }
81
- return type === constants_1.RelationshipTypes.ONE_TO_MANY
82
- ? constants_1.RelationshipTypes.MANY_TO_ONE
83
- : constants_1.RelationshipTypes.ONE_TO_MANY;
76
+ return type === RelationshipTypes.ONE_TO_MANY
77
+ ? RelationshipTypes.MANY_TO_ONE
78
+ : RelationshipTypes.ONE_TO_MANY;
84
79
  }
85
80
  function generateManyLinkSchema(datasource, column, table, relatedTable) {
86
- if (!table.primary || !relatedTable.primary) {
87
- throw new Error("Unable to generate many link schema, no primary keys");
88
- }
89
81
  const primary = table.name + table.primary[0];
90
82
  const relatedPrimary = relatedTable.name + relatedTable.primary[0];
91
- const jcTblName = (0, utils_2.generateJunctionTableName)(column, table, relatedTable);
83
+ const jcTblName = generateJunctionTableName(column, table, relatedTable);
92
84
  // first create the new table
93
85
  const junctionTable = {
94
- _id: (0, utils_1.buildExternalTableId)(datasource._id, jcTblName),
86
+ _id: buildExternalTableId(datasource._id, jcTblName),
95
87
  name: jcTblName,
96
88
  primary: [primary, relatedPrimary],
97
89
  constrained: [primary, relatedPrimary],
98
90
  schema: {
99
- [primary]: (0, utils_2.foreignKeyStructure)(primary, {
91
+ [primary]: foreignKeyStructure(primary, {
100
92
  toTable: table.name,
101
93
  toKey: table.primary[0],
102
94
  }),
103
- [relatedPrimary]: (0, utils_2.foreignKeyStructure)(relatedPrimary, {
95
+ [relatedPrimary]: foreignKeyStructure(relatedPrimary, {
104
96
  toTable: relatedTable.name,
105
97
  toKey: relatedTable.primary[0],
106
98
  }),
@@ -113,13 +105,10 @@ function generateManyLinkSchema(datasource, column, table, relatedTable) {
113
105
  return junctionTable;
114
106
  }
115
107
  function generateLinkSchema(column, table, relatedTable, type) {
116
- if (!table.primary || !relatedTable.primary) {
117
- throw new Error("Unable to generate link schema, no primary keys");
118
- }
119
- const isOneSide = type === constants_1.RelationshipTypes.ONE_TO_MANY;
108
+ const isOneSide = type === RelationshipTypes.ONE_TO_MANY;
120
109
  const primary = isOneSide ? relatedTable.primary[0] : table.primary[0];
121
110
  // generate a foreign key
122
- const foreignKey = (0, utils_2.generateForeignKey)(column, relatedTable);
111
+ const foreignKey = generateForeignKey(column, relatedTable);
123
112
  column.relationshipType = type;
124
113
  column.foreignKey = isOneSide ? foreignKey : primary;
125
114
  column.fieldName = isOneSide ? primary : foreignKey;
@@ -148,10 +137,10 @@ function generateRelatedSchema(linkColumn, table, relatedTable, columnName) {
148
137
  function isRelationshipSetup(column) {
149
138
  return column.foreignKey || column.through;
150
139
  }
151
- function save(ctx) {
140
+ exports.save = function (ctx) {
152
141
  return __awaiter(this, void 0, void 0, function* () {
153
142
  const table = ctx.request.body;
154
- const renamed = table === null || table === void 0 ? void 0 : table._rename;
143
+ const { _rename: renamed } = table;
155
144
  // can't do this right now
156
145
  delete table.dataImport;
157
146
  const datasourceId = getDatasourceId(ctx.request.body);
@@ -159,31 +148,31 @@ function save(ctx) {
159
148
  if (!table._id) {
160
149
  table.created = true;
161
150
  }
162
- let tableToSave = Object.assign({ type: "table", _id: (0, utils_1.buildExternalTableId)(datasourceId, table.name) }, table);
151
+ let tableToSave = Object.assign({ type: "table", _id: buildExternalTableId(datasourceId, table.name) }, table);
163
152
  let oldTable;
164
153
  if (ctx.request.body && ctx.request.body._id) {
165
- oldTable = yield sdk_1.default.tables.getTable(ctx.request.body._id);
154
+ oldTable = yield sdk.tables.getTable(ctx.request.body._id);
166
155
  }
167
- if ((0, utils_2.hasTypeChanged)(tableToSave, oldTable)) {
156
+ if (hasTypeChanged(tableToSave, oldTable)) {
168
157
  ctx.throw(400, "A column type has changed.");
169
158
  }
170
- const db = backend_core_1.context.getAppDB();
159
+ const db = getAppDB();
171
160
  const datasource = yield db.get(datasourceId);
161
+ if (!datasource.entities) {
162
+ datasource.entities = {};
163
+ }
172
164
  const oldTables = cloneDeep(datasource.entities);
173
165
  const tables = datasource.entities;
174
166
  const extraTablesToUpdate = [];
175
167
  // check if relations need setup
176
168
  for (let schema of Object.values(tableToSave.schema)) {
177
- if (schema.type !== constants_1.FieldTypes.LINK || isRelationshipSetup(schema)) {
169
+ if (schema.type !== FieldTypes.LINK || isRelationshipSetup(schema)) {
178
170
  continue;
179
171
  }
180
172
  const relatedTable = Object.values(tables).find(table => table._id === schema.tableId);
181
- if (!relatedTable) {
182
- continue;
183
- }
184
173
  const relatedColumnName = schema.fieldName;
185
174
  const relationType = schema.relationshipType;
186
- if (relationType === constants_1.RelationshipTypes.MANY_TO_MANY) {
175
+ if (relationType === RelationshipTypes.MANY_TO_MANY) {
187
176
  const junctionTable = generateManyLinkSchema(datasource, schema, table, relatedTable);
188
177
  if (tables[junctionTable.name]) {
189
178
  throw "Junction table already exists, cannot create another relationship.";
@@ -192,9 +181,9 @@ function save(ctx) {
192
181
  extraTablesToUpdate.push(junctionTable);
193
182
  }
194
183
  else {
195
- const fkTable = relationType === constants_1.RelationshipTypes.ONE_TO_MANY ? table : relatedTable;
184
+ const fkTable = relationType === RelationshipTypes.ONE_TO_MANY ? table : relatedTable;
196
185
  const foreignKey = generateLinkSchema(schema, table, relatedTable, relationType);
197
- fkTable.schema[foreignKey] = (0, utils_2.foreignKeyStructure)(foreignKey);
186
+ fkTable.schema[foreignKey] = foreignKeyStructure(foreignKey);
198
187
  if (fkTable.constrained == null) {
199
188
  fkTable.constrained = [];
200
189
  }
@@ -210,12 +199,16 @@ function save(ctx) {
210
199
  schema.main = true;
211
200
  }
212
201
  cleanupRelationships(tableToSave, tables, oldTable);
213
- const operation = oldTable ? types_1.Operation.UPDATE_TABLE : types_1.Operation.CREATE_TABLE;
202
+ const operation = oldTable
203
+ ? DataSourceOperation.UPDATE_TABLE
204
+ : DataSourceOperation.CREATE_TABLE;
214
205
  yield makeTableRequest(datasource, operation, tableToSave, tables, oldTable, renamed);
215
206
  // update any extra tables (like foreign keys in other tables)
216
207
  for (let extraTable of extraTablesToUpdate) {
217
208
  const oldExtraTable = oldTables[extraTable.name];
218
- let op = oldExtraTable ? types_1.Operation.UPDATE_TABLE : types_1.Operation.CREATE_TABLE;
209
+ let op = oldExtraTable
210
+ ? DataSourceOperation.UPDATE_TABLE
211
+ : DataSourceOperation.CREATE_TABLE;
219
212
  yield makeTableRequest(datasource, op, extraTable, tables, oldExtraTable);
220
213
  }
221
214
  // make sure the constrained list, all still exist
@@ -229,40 +222,37 @@ function save(ctx) {
229
222
  yield db.put(datasource);
230
223
  return tableToSave;
231
224
  });
232
- }
233
- exports.save = save;
234
- function destroy(ctx) {
225
+ };
226
+ exports.destroy = function (ctx) {
235
227
  return __awaiter(this, void 0, void 0, function* () {
236
- const tableToDelete = yield sdk_1.default.tables.getTable(ctx.params.tableId);
228
+ const tableToDelete = yield sdk.tables.getTable(ctx.params.tableId);
237
229
  if (!tableToDelete || !tableToDelete.created) {
238
230
  ctx.throw(400, "Cannot delete tables which weren't created in Budibase.");
239
231
  }
240
232
  const datasourceId = getDatasourceId(tableToDelete);
241
- const db = backend_core_1.context.getAppDB();
233
+ const db = getAppDB();
242
234
  const datasource = yield db.get(datasourceId);
243
235
  const tables = datasource.entities;
244
- const operation = types_1.Operation.DELETE_TABLE;
236
+ const operation = DataSourceOperation.DELETE_TABLE;
245
237
  yield makeTableRequest(datasource, operation, tableToDelete, tables);
246
238
  cleanupRelationships(tableToDelete, tables);
247
239
  delete datasource.entities[tableToDelete.name];
248
240
  yield db.put(datasource);
249
241
  return tableToDelete;
250
242
  });
251
- }
252
- exports.destroy = destroy;
253
- function bulkImport(ctx) {
243
+ };
244
+ exports.bulkImport = function (ctx) {
254
245
  return __awaiter(this, void 0, void 0, function* () {
255
- const table = yield sdk_1.default.tables.getTable(ctx.params.tableId);
246
+ const table = yield sdk.tables.getTable(ctx.params.tableId);
256
247
  const { dataImport } = ctx.request.body;
257
248
  if (!dataImport || !dataImport.schema || !dataImport.csvString) {
258
249
  ctx.throw(400, "Provided data import information is invalid.");
259
250
  }
260
- const rows = yield csvParser_1.default.transform(Object.assign(Object.assign({}, dataImport), { existingTable: table }));
261
- yield (0, external_1.handleRequest)(constants_1.DataSourceOperation.BULK_CREATE, table._id, {
251
+ const rows = yield csvParser.transform(Object.assign(Object.assign({}, dataImport), { existingTable: table }));
252
+ yield handleRequest(DataSourceOperation.BULK_CREATE, table._id, {
262
253
  rows,
263
254
  });
264
- yield backend_core_1.events.rows.imported(table, "csv", rows.length);
255
+ yield events.rows.imported(table, "csv", rows.length);
265
256
  return table;
266
257
  });
267
- }
268
- exports.bulkImport = bulkImport;
258
+ };