@budibase/server 2.2.25 → 2.2.27-alpha.0

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 (657) hide show
  1. package/Dockerfile +1 -1
  2. package/__mocks__/aws-sdk.ts +19 -0
  3. package/__mocks__/node-fetch.ts +80 -0
  4. package/builder/assets/{bb-emblem.4e4717da.svg → bb-emblem.05f7ae7a.svg} +1 -1
  5. package/builder/assets/bg.29e85dd5.png +0 -0
  6. package/builder/assets/bulgaria.bd68393d.png +0 -0
  7. package/builder/assets/covanta.72c46c1e.png +0 -0
  8. package/builder/assets/index.3dd03883.css +6 -0
  9. package/builder/assets/index.f9b8b175.js +1802 -0
  10. package/builder/assets/schnellecke.cf1837a8.png +0 -0
  11. package/builder/index.html +3 -3
  12. package/coverage/clover.xml +6618 -6528
  13. package/coverage/coverage-final.json +282 -276
  14. package/coverage/lcov-report/index.html +489 -444
  15. package/coverage/lcov-report/src/api/controllers/analytics.ts.html +9 -9
  16. package/coverage/lcov-report/src/api/controllers/apikeys.ts.html +6 -6
  17. package/coverage/lcov-report/src/api/controllers/application.ts.html +362 -266
  18. package/coverage/lcov-report/src/api/controllers/auth.ts.html +12 -12
  19. package/coverage/lcov-report/src/api/controllers/automation.ts.html +61 -61
  20. package/coverage/lcov-report/src/api/controllers/backup.ts.html +8 -8
  21. package/coverage/lcov-report/src/api/controllers/cloud.ts.html +93 -81
  22. package/coverage/lcov-report/src/api/controllers/component.ts.html +12 -12
  23. package/coverage/lcov-report/src/api/controllers/datasource.ts.html +122 -98
  24. package/coverage/lcov-report/src/api/controllers/deploy/Deployment.ts.html +21 -18
  25. package/coverage/lcov-report/src/api/controllers/deploy/index.html +21 -21
  26. package/coverage/lcov-report/src/api/controllers/deploy/index.ts.html +142 -196
  27. package/coverage/lcov-report/src/api/controllers/dev.ts.html +28 -28
  28. package/coverage/lcov-report/src/api/controllers/index.html +115 -115
  29. package/coverage/lcov-report/src/api/controllers/integration.ts.html +5 -5
  30. package/coverage/lcov-report/src/api/controllers/layout.ts.html +9 -9
  31. package/coverage/lcov-report/src/api/controllers/metadata.ts.html +11 -11
  32. package/coverage/lcov-report/src/api/controllers/migrations.ts.html +6 -6
  33. package/coverage/lcov-report/src/api/controllers/permission.ts.html +14 -14
  34. package/coverage/lcov-report/src/api/controllers/plugin/file.ts.html +20 -20
  35. package/coverage/lcov-report/src/api/controllers/plugin/github.ts.html +62 -62
  36. package/coverage/lcov-report/src/api/controllers/plugin/index.html +72 -72
  37. package/coverage/lcov-report/src/api/controllers/plugin/index.ts.html +150 -135
  38. package/coverage/lcov-report/src/api/controllers/plugin/npm.ts.html +56 -56
  39. package/coverage/lcov-report/src/api/controllers/plugin/uploaders.ts.html +11 -11
  40. package/coverage/lcov-report/src/api/controllers/plugin/url.ts.html +18 -18
  41. package/coverage/lcov-report/src/api/controllers/plugin/utils.ts.html +20 -20
  42. package/coverage/lcov-report/src/api/controllers/public/applications.ts.html +75 -24
  43. package/coverage/lcov-report/src/api/controllers/public/index.html +58 -58
  44. package/coverage/lcov-report/src/api/controllers/public/mapping/applications.ts.html +7 -7
  45. package/coverage/lcov-report/src/api/controllers/public/mapping/index.html +25 -25
  46. package/coverage/lcov-report/src/api/controllers/public/mapping/index.ts.html +9 -9
  47. package/coverage/lcov-report/src/api/controllers/public/mapping/queries.ts.html +8 -8
  48. package/coverage/lcov-report/src/api/controllers/public/mapping/rows.ts.html +4 -4
  49. package/coverage/lcov-report/src/api/controllers/public/mapping/tables.ts.html +4 -4
  50. package/coverage/lcov-report/src/api/controllers/public/mapping/users.ts.html +4 -4
  51. package/coverage/lcov-report/src/api/controllers/public/queries.ts.html +15 -15
  52. package/coverage/lcov-report/src/api/controllers/public/rows.ts.html +21 -21
  53. package/coverage/lcov-report/src/api/controllers/public/tables.ts.html +21 -21
  54. package/coverage/lcov-report/src/api/controllers/public/users.ts.html +27 -27
  55. package/coverage/lcov-report/src/api/controllers/public/utils.ts.html +8 -8
  56. package/coverage/lcov-report/src/api/controllers/query/import/index.html +8 -8
  57. package/coverage/lcov-report/src/api/controllers/query/import/index.ts.html +11 -11
  58. package/coverage/lcov-report/src/api/controllers/query/import/sources/base/index.html +14 -14
  59. package/coverage/lcov-report/src/api/controllers/query/import/sources/base/index.ts.html +14 -14
  60. package/coverage/lcov-report/src/api/controllers/query/import/sources/base/openapi.ts.html +8 -8
  61. package/coverage/lcov-report/src/api/controllers/query/import/sources/curl.ts.html +12 -12
  62. package/coverage/lcov-report/src/api/controllers/query/import/sources/index.html +23 -23
  63. package/coverage/lcov-report/src/api/controllers/query/import/sources/openapi2.ts.html +16 -16
  64. package/coverage/lcov-report/src/api/controllers/query/import/sources/openapi3.ts.html +20 -20
  65. package/coverage/lcov-report/src/api/controllers/query/index.html +20 -20
  66. package/coverage/lcov-report/src/api/controllers/query/index.ts.html +131 -107
  67. package/coverage/lcov-report/src/api/controllers/query/validation.ts.html +11 -11
  68. package/coverage/lcov-report/src/api/controllers/role.ts.html +9 -9
  69. package/coverage/lcov-report/src/api/controllers/routing.ts.html +10 -10
  70. package/coverage/lcov-report/src/api/controllers/row/ExternalRequest.ts.html +56 -41
  71. package/coverage/lcov-report/src/api/controllers/row/external.ts.html +87 -57
  72. package/coverage/lcov-report/src/api/controllers/row/index.html +66 -66
  73. package/coverage/lcov-report/src/api/controllers/row/index.ts.html +37 -37
  74. package/coverage/lcov-report/src/api/controllers/row/internal.ts.html +181 -106
  75. package/coverage/lcov-report/src/api/controllers/row/internalSearch.ts.html +146 -146
  76. package/coverage/lcov-report/src/api/controllers/row/staticFormula.ts.html +44 -35
  77. package/coverage/lcov-report/src/api/controllers/row/utils.ts.html +156 -39
  78. package/coverage/lcov-report/src/api/controllers/screen.ts.html +31 -31
  79. package/coverage/lcov-report/src/api/controllers/script.ts.html +19 -19
  80. package/coverage/lcov-report/src/api/controllers/static/index.html +18 -18
  81. package/coverage/lcov-report/src/api/controllers/static/index.ts.html +56 -71
  82. package/coverage/lcov-report/src/api/controllers/table/bulkFormula.ts.html +60 -60
  83. package/coverage/lcov-report/src/api/controllers/table/external.ts.html +56 -50
  84. package/coverage/lcov-report/src/api/controllers/table/index.html +48 -48
  85. package/coverage/lcov-report/src/api/controllers/table/index.ts.html +157 -70
  86. package/coverage/lcov-report/src/api/controllers/table/internal.ts.html +58 -61
  87. package/coverage/lcov-report/src/api/controllers/table/utils.ts.html +109 -112
  88. package/coverage/lcov-report/src/api/controllers/templates.ts.html +21 -21
  89. package/coverage/lcov-report/src/api/controllers/user.ts.html +159 -135
  90. package/coverage/lcov-report/src/api/controllers/view/exporters.ts.html +64 -19
  91. package/coverage/lcov-report/src/api/controllers/view/index.html +38 -38
  92. package/coverage/lcov-report/src/api/controllers/view/index.ts.html +97 -133
  93. package/coverage/lcov-report/src/api/controllers/view/utils.ts.html +31 -31
  94. package/coverage/lcov-report/src/api/controllers/view/viewBuilder.ts.html +37 -37
  95. package/coverage/lcov-report/src/api/controllers/webhook.ts.html +69 -63
  96. package/coverage/lcov-report/src/api/index.html +15 -15
  97. package/coverage/lcov-report/src/api/index.ts.html +40 -40
  98. package/coverage/lcov-report/src/api/routes/analytics.ts.html +10 -10
  99. package/coverage/lcov-report/src/api/routes/apikeys.ts.html +11 -11
  100. package/coverage/lcov-report/src/api/routes/application.ts.html +46 -13
  101. package/coverage/lcov-report/src/api/routes/auth.ts.html +9 -9
  102. package/coverage/lcov-report/src/api/routes/automation.ts.html +14 -14
  103. package/coverage/lcov-report/src/api/routes/backup.ts.html +11 -11
  104. package/coverage/lcov-report/src/api/routes/cloud.ts.html +11 -11
  105. package/coverage/lcov-report/src/api/routes/component.ts.html +11 -11
  106. package/coverage/lcov-report/src/api/routes/datasource.ts.html +12 -12
  107. package/coverage/lcov-report/src/api/routes/deploy.ts.html +11 -14
  108. package/coverage/lcov-report/src/api/routes/dev.ts.html +17 -17
  109. package/coverage/lcov-report/src/api/routes/index.html +68 -68
  110. package/coverage/lcov-report/src/api/routes/index.ts.html +49 -40
  111. package/coverage/lcov-report/src/api/routes/integration.ts.html +11 -11
  112. package/coverage/lcov-report/src/api/routes/layout.ts.html +11 -11
  113. package/coverage/lcov-report/src/api/routes/metadata.ts.html +12 -12
  114. package/coverage/lcov-report/src/api/routes/migrations.ts.html +10 -10
  115. package/coverage/lcov-report/src/api/routes/permission.ts.html +12 -12
  116. package/coverage/lcov-report/src/api/routes/plugin.ts.html +10 -10
  117. package/coverage/lcov-report/src/api/routes/public/applications.ts.html +147 -15
  118. package/coverage/lcov-report/src/api/routes/public/index.html +27 -27
  119. package/coverage/lcov-report/src/api/routes/public/index.ts.html +60 -60
  120. package/coverage/lcov-report/src/api/routes/public/middleware/index.html +15 -15
  121. package/coverage/lcov-report/src/api/routes/public/middleware/mapper.ts.html +28 -16
  122. package/coverage/lcov-report/src/api/routes/public/queries.ts.html +11 -11
  123. package/coverage/lcov-report/src/api/routes/public/rows.ts.html +14 -14
  124. package/coverage/lcov-report/src/api/routes/public/tables.ts.html +14 -14
  125. package/coverage/lcov-report/src/api/routes/public/tests/index.html +7 -7
  126. package/coverage/lcov-report/src/api/routes/public/tests/utils.ts.html +5 -5
  127. package/coverage/lcov-report/src/api/routes/public/users.ts.html +14 -14
  128. package/coverage/lcov-report/src/api/routes/public/utils/Endpoint.ts.html +21 -21
  129. package/coverage/lcov-report/src/api/routes/public/utils/index.html +5 -5
  130. package/coverage/lcov-report/src/api/routes/query.ts.html +14 -14
  131. package/coverage/lcov-report/src/api/routes/role.ts.html +12 -12
  132. package/coverage/lcov-report/src/api/routes/routing.ts.html +11 -11
  133. package/coverage/lcov-report/src/api/routes/row.ts.html +14 -14
  134. package/coverage/lcov-report/src/api/routes/screen.ts.html +12 -12
  135. package/coverage/lcov-report/src/api/routes/script.ts.html +13 -13
  136. package/coverage/lcov-report/src/api/routes/static.ts.html +18 -18
  137. package/coverage/lcov-report/src/api/routes/table.ts.html +29 -98
  138. package/coverage/lcov-report/src/api/routes/templates.ts.html +11 -11
  139. package/coverage/lcov-report/src/api/routes/tests/utilities/TestFunctions.ts.html +27 -27
  140. package/coverage/lcov-report/src/api/routes/tests/utilities/index.html +23 -23
  141. package/coverage/lcov-report/src/api/routes/tests/utilities/index.ts.html +33 -33
  142. package/coverage/lcov-report/src/api/routes/user.ts.html +12 -12
  143. package/coverage/lcov-report/src/api/routes/utils/index.html +3 -3
  144. package/coverage/lcov-report/src/api/routes/utils/validators.ts.html +44 -44
  145. package/coverage/lcov-report/src/api/routes/view.ts.html +13 -13
  146. package/coverage/lcov-report/src/api/routes/webhook.ts.html +13 -13
  147. package/coverage/lcov-report/src/app.ts.html +53 -47
  148. package/coverage/lcov-report/src/automations/actions.ts.html +31 -31
  149. package/coverage/lcov-report/src/automations/automationUtils.ts.html +127 -55
  150. package/coverage/lcov-report/src/automations/bullboard.ts.html +19 -19
  151. package/coverage/lcov-report/src/automations/index.html +54 -54
  152. package/coverage/lcov-report/src/automations/index.ts.html +23 -23
  153. package/coverage/lcov-report/src/automations/logging/index.html +3 -3
  154. package/coverage/lcov-report/src/automations/logging/index.ts.html +15 -15
  155. package/coverage/lcov-report/src/automations/steps/bash.ts.html +34 -34
  156. package/coverage/lcov-report/src/automations/steps/createRow.ts.html +9 -9
  157. package/coverage/lcov-report/src/automations/steps/delay.ts.html +7 -7
  158. package/coverage/lcov-report/src/automations/steps/deleteRow.ts.html +9 -9
  159. package/coverage/lcov-report/src/automations/steps/discord.ts.html +33 -33
  160. package/coverage/lcov-report/src/automations/steps/executeQuery.ts.html +35 -35
  161. package/coverage/lcov-report/src/automations/steps/executeScript.ts.html +31 -31
  162. package/coverage/lcov-report/src/automations/steps/filter.ts.html +12 -12
  163. package/coverage/lcov-report/src/automations/steps/index.html +129 -129
  164. package/coverage/lcov-report/src/automations/steps/integromat.ts.html +10 -10
  165. package/coverage/lcov-report/src/automations/steps/loop.ts.html +5 -5
  166. package/coverage/lcov-report/src/automations/steps/outgoingWebhook.ts.html +19 -19
  167. package/coverage/lcov-report/src/automations/steps/queryRows.ts.html +43 -43
  168. package/coverage/lcov-report/src/automations/steps/sendSmtpEmail.ts.html +28 -28
  169. package/coverage/lcov-report/src/automations/steps/serverLog.ts.html +19 -19
  170. package/coverage/lcov-report/src/automations/steps/slack.ts.html +10 -10
  171. package/coverage/lcov-report/src/automations/steps/updateRow.ts.html +12 -12
  172. package/coverage/lcov-report/src/automations/steps/utils.ts.html +18 -18
  173. package/coverage/lcov-report/src/automations/steps/zapier.ts.html +22 -22
  174. package/coverage/lcov-report/src/automations/tests/utilities/index.html +15 -15
  175. package/coverage/lcov-report/src/automations/tests/utilities/index.ts.html +32 -32
  176. package/coverage/lcov-report/src/automations/triggerInfo/app.ts.html +6 -6
  177. package/coverage/lcov-report/src/automations/triggerInfo/cron.ts.html +6 -6
  178. package/coverage/lcov-report/src/automations/triggerInfo/index.html +17 -17
  179. package/coverage/lcov-report/src/automations/triggerInfo/index.ts.html +10 -10
  180. package/coverage/lcov-report/src/automations/triggerInfo/rowDeleted.ts.html +6 -6
  181. package/coverage/lcov-report/src/automations/triggerInfo/rowSaved.ts.html +6 -6
  182. package/coverage/lcov-report/src/automations/triggerInfo/rowUpdated.ts.html +6 -6
  183. package/coverage/lcov-report/src/automations/triggerInfo/webhook.ts.html +6 -6
  184. package/coverage/lcov-report/src/automations/triggers.ts.html +53 -38
  185. package/coverage/lcov-report/src/automations/utils.ts.html +80 -80
  186. package/coverage/lcov-report/src/constants/index.html +19 -19
  187. package/coverage/lcov-report/src/constants/index.ts.html +103 -103
  188. package/coverage/lcov-report/src/constants/layouts.ts.html +9 -9
  189. package/coverage/lcov-report/src/constants/screens.ts.html +5 -5
  190. package/coverage/lcov-report/src/db/defaultData/datasource_bb_default.ts.html +45 -45
  191. package/coverage/lcov-report/src/db/defaultData/employeeImport.ts.html +8 -8
  192. package/coverage/lcov-report/src/db/defaultData/expensesImport.ts.html +8 -8
  193. package/coverage/lcov-report/src/db/defaultData/index.html +43 -43
  194. package/coverage/lcov-report/src/db/defaultData/inventoryImport.ts.html +8 -8
  195. package/coverage/lcov-report/src/db/defaultData/jobsImport.ts.html +8 -8
  196. package/coverage/lcov-report/src/db/dynamoClient.ts.html +26 -26
  197. package/coverage/lcov-report/src/db/inMemoryView.ts.html +13 -13
  198. package/coverage/lcov-report/src/db/index.html +34 -34
  199. package/coverage/lcov-report/src/db/index.ts.html +10 -10
  200. package/coverage/lcov-report/src/db/linkedRows/LinkController.ts.html +38 -38
  201. package/coverage/lcov-report/src/db/linkedRows/LinkDocument.ts.html +7 -7
  202. package/coverage/lcov-report/src/db/linkedRows/index.html +37 -37
  203. package/coverage/lcov-report/src/db/linkedRows/index.ts.html +40 -40
  204. package/coverage/lcov-report/src/db/linkedRows/linkUtils.ts.html +25 -25
  205. package/coverage/lcov-report/src/db/newid.ts.html +5 -5
  206. package/coverage/lcov-report/src/db/utils.ts.html +90 -90
  207. package/coverage/lcov-report/src/definitions/automations.ts.html +9 -6
  208. package/coverage/lcov-report/src/definitions/index.html +5 -20
  209. package/coverage/lcov-report/src/environment.ts.html +44 -32
  210. package/coverage/lcov-report/src/events/AutomationEmitter.ts.html +14 -14
  211. package/coverage/lcov-report/src/events/BudibaseEmitter.ts.html +8 -8
  212. package/coverage/lcov-report/src/events/index.html +20 -20
  213. package/coverage/lcov-report/src/events/index.ts.html +7 -7
  214. package/coverage/lcov-report/src/events/utils.ts.html +11 -11
  215. package/coverage/lcov-report/src/index.html +47 -47
  216. package/coverage/lcov-report/src/index.ts.html +8 -8
  217. package/coverage/lcov-report/src/integrations/airtable.ts.html +10 -10
  218. package/coverage/lcov-report/src/integrations/arangodb.ts.html +9 -9
  219. package/coverage/lcov-report/src/integrations/base/index.html +29 -29
  220. package/coverage/lcov-report/src/integrations/base/query.ts.html +15 -9
  221. package/coverage/lcov-report/src/integrations/base/sql.ts.html +38 -38
  222. package/coverage/lcov-report/src/integrations/base/sqlTable.ts.html +23 -23
  223. package/coverage/lcov-report/src/integrations/base/utils.ts.html +5 -5
  224. package/coverage/lcov-report/src/integrations/couchdb.ts.html +109 -31
  225. package/coverage/lcov-report/src/integrations/dynamodb.ts.html +17 -17
  226. package/coverage/lcov-report/src/integrations/elasticsearch.ts.html +27 -15
  227. package/coverage/lcov-report/src/integrations/firebase.ts.html +12 -12
  228. package/coverage/lcov-report/src/integrations/googlesheets.ts.html +42 -42
  229. package/coverage/lcov-report/src/integrations/index.html +130 -130
  230. package/coverage/lcov-report/src/integrations/index.ts.html +50 -62
  231. package/coverage/lcov-report/src/integrations/microsoftSqlServer.ts.html +31 -31
  232. package/coverage/lcov-report/src/integrations/mongodb.ts.html +421 -289
  233. package/coverage/lcov-report/src/integrations/mysql.ts.html +28 -28
  234. package/coverage/lcov-report/src/integrations/oracle.ts.html +31 -31
  235. package/coverage/lcov-report/src/integrations/postgres.ts.html +54 -54
  236. package/coverage/lcov-report/src/integrations/queries/index.html +19 -19
  237. package/coverage/lcov-report/src/integrations/queries/sql.ts.html +24 -159
  238. package/coverage/lcov-report/src/integrations/redis.ts.html +8 -8
  239. package/coverage/lcov-report/src/integrations/rest.ts.html +43 -52
  240. package/coverage/lcov-report/src/integrations/s3.ts.html +17 -17
  241. package/coverage/lcov-report/src/integrations/snowflake.ts.html +15 -15
  242. package/coverage/lcov-report/src/integrations/tests/TestConfiguration.js.html +1 -1
  243. package/coverage/lcov-report/src/integrations/tests/index.html +1 -1
  244. package/coverage/lcov-report/src/integrations/utils.ts.html +54 -54
  245. package/coverage/lcov-report/src/middleware/appInfo.ts.html +11 -11
  246. package/coverage/lcov-report/src/middleware/authorized.ts.html +49 -37
  247. package/coverage/lcov-report/src/middleware/builder.ts.html +26 -26
  248. package/coverage/lcov-report/src/middleware/currentapp.ts.html +50 -47
  249. package/coverage/lcov-report/src/middleware/index.html +40 -40
  250. package/coverage/lcov-report/src/middleware/joi-validator.ts.html +10 -10
  251. package/coverage/lcov-report/src/middleware/publicApi.ts.html +9 -9
  252. package/coverage/lcov-report/src/middleware/resourceId.ts.html +23 -23
  253. package/coverage/lcov-report/src/middleware/selfhost.ts.html +2 -2
  254. package/coverage/lcov-report/src/middleware/utils.ts.html +4 -4
  255. package/coverage/lcov-report/src/migrations/functions/appUrls.ts.html +6 -6
  256. package/coverage/lcov-report/src/migrations/functions/backfill/app/automations.ts.html +7 -7
  257. package/coverage/lcov-report/src/migrations/functions/backfill/app/datasources.ts.html +7 -7
  258. package/coverage/lcov-report/src/migrations/functions/backfill/app/index.html +31 -31
  259. package/coverage/lcov-report/src/migrations/functions/backfill/app/layouts.ts.html +8 -8
  260. package/coverage/lcov-report/src/migrations/functions/backfill/app/queries.ts.html +13 -13
  261. package/coverage/lcov-report/src/migrations/functions/backfill/app/roles.ts.html +7 -7
  262. package/coverage/lcov-report/src/migrations/functions/backfill/app/screens.ts.html +7 -7
  263. package/coverage/lcov-report/src/migrations/functions/backfill/app/tables.ts.html +8 -8
  264. package/coverage/lcov-report/src/migrations/functions/backfill/app.ts.html +21 -21
  265. package/coverage/lcov-report/src/migrations/functions/backfill/global/configs.ts.html +17 -14
  266. package/coverage/lcov-report/src/migrations/functions/backfill/global/index.html +19 -19
  267. package/coverage/lcov-report/src/migrations/functions/backfill/global/quotas.ts.html +9 -9
  268. package/coverage/lcov-report/src/migrations/functions/backfill/global/users.ts.html +13 -13
  269. package/coverage/lcov-report/src/migrations/functions/backfill/global.ts.html +23 -23
  270. package/coverage/lcov-report/src/migrations/functions/backfill/index.html +26 -26
  271. package/coverage/lcov-report/src/migrations/functions/backfill/index.ts.html +7 -7
  272. package/coverage/lcov-report/src/migrations/functions/backfill/installation.ts.html +14 -14
  273. package/coverage/lcov-report/src/migrations/functions/index.html +18 -18
  274. package/coverage/lcov-report/src/migrations/functions/syncQuotas.ts.html +8 -8
  275. package/coverage/lcov-report/src/migrations/functions/tableSettings.ts.html +11 -11
  276. package/coverage/lcov-report/src/migrations/functions/usageQuotas/index.html +11 -11
  277. package/coverage/lcov-report/src/migrations/functions/usageQuotas/index.ts.html +3 -3
  278. package/coverage/lcov-report/src/migrations/functions/usageQuotas/syncApps.ts.html +6 -6
  279. package/coverage/lcov-report/src/migrations/functions/usageQuotas/syncPlugins.ts.html +8 -8
  280. package/coverage/lcov-report/src/migrations/functions/usageQuotas/syncRows.ts.html +7 -7
  281. package/coverage/lcov-report/src/migrations/functions/userEmailViewCasing.ts.html +4 -4
  282. package/coverage/lcov-report/src/migrations/index.html +15 -15
  283. package/coverage/lcov-report/src/migrations/index.ts.html +43 -43
  284. package/coverage/lcov-report/src/migrations/tests/helpers.ts.html +4 -4
  285. package/coverage/lcov-report/src/migrations/tests/index.html +6 -6
  286. package/coverage/lcov-report/src/migrations/tests/structures.ts.html +3 -3
  287. package/coverage/lcov-report/src/sdk/app/applications/index.html +20 -20
  288. package/coverage/lcov-report/src/sdk/app/applications/index.ts.html +6 -6
  289. package/coverage/lcov-report/src/sdk/app/applications/sync.ts.html +34 -34
  290. package/coverage/lcov-report/src/sdk/app/applications/utils.ts.html +15 -15
  291. package/coverage/lcov-report/src/sdk/app/automations/index.html +7 -7
  292. package/coverage/lcov-report/src/sdk/app/automations/index.ts.html +5 -5
  293. package/coverage/lcov-report/src/sdk/app/automations/webhook.ts.html +8 -8
  294. package/coverage/lcov-report/src/sdk/app/backups/constants.ts.html +5 -5
  295. package/coverage/lcov-report/src/sdk/app/backups/exports.ts.html +30 -30
  296. package/coverage/lcov-report/src/sdk/app/backups/imports.ts.html +45 -57
  297. package/coverage/lcov-report/src/sdk/app/backups/index.html +42 -42
  298. package/coverage/lcov-report/src/sdk/app/backups/index.ts.html +7 -7
  299. package/coverage/lcov-report/src/sdk/app/backups/statistics.ts.html +73 -73
  300. package/coverage/lcov-report/src/sdk/app/datasources/datasources.ts.html +493 -0
  301. package/coverage/lcov-report/src/sdk/app/datasources/index.html +131 -0
  302. package/coverage/lcov-report/src/sdk/app/datasources/index.ts.html +100 -0
  303. package/coverage/lcov-report/src/sdk/app/queries/index.html +131 -0
  304. package/coverage/lcov-report/src/{utilities/statusCodes.ts.html → sdk/app/queries/index.ts.html} +22 -28
  305. package/coverage/lcov-report/src/{definitions/datasource.ts.html → sdk/app/queries/queries.ts.html} +82 -82
  306. package/coverage/lcov-report/src/sdk/app/rows/attachments.ts.html +8 -8
  307. package/coverage/lcov-report/src/sdk/app/rows/index.html +8 -8
  308. package/coverage/lcov-report/src/sdk/app/rows/index.ts.html +6 -6
  309. package/coverage/lcov-report/src/sdk/app/rows/rows.ts.html +4 -4
  310. package/coverage/lcov-report/src/sdk/app/tables/index.html +15 -15
  311. package/coverage/lcov-report/src/sdk/app/tables/index.ts.html +29 -20
  312. package/coverage/lcov-report/src/sdk/index.html +7 -7
  313. package/coverage/lcov-report/src/sdk/index.ts.html +24 -12
  314. package/coverage/lcov-report/src/sdk/users/index.html +10 -10
  315. package/coverage/lcov-report/src/sdk/users/index.ts.html +5 -5
  316. package/coverage/lcov-report/src/sdk/users/utils.ts.html +35 -35
  317. package/coverage/lcov-report/src/sdk/utils/index.html +116 -0
  318. package/coverage/lcov-report/src/sdk/utils/index.ts.html +133 -0
  319. package/coverage/lcov-report/src/startup.ts.html +48 -63
  320. package/coverage/lcov-report/src/tests/utilities/TestConfiguration.ts.html +218 -152
  321. package/coverage/lcov-report/src/tests/utilities/controllers.ts.html +20 -20
  322. package/coverage/lcov-report/src/tests/utilities/index.html +33 -33
  323. package/coverage/lcov-report/src/tests/utilities/index.ts.html +2 -2
  324. package/coverage/lcov-report/src/tests/utilities/structures.ts.html +235 -46
  325. package/coverage/lcov-report/src/threads/automation.ts.html +212 -251
  326. package/coverage/lcov-report/src/threads/index.html +46 -46
  327. package/coverage/lcov-report/src/threads/index.ts.html +39 -39
  328. package/coverage/lcov-report/src/threads/query.ts.html +140 -101
  329. package/coverage/lcov-report/src/threads/utils.ts.html +29 -29
  330. package/coverage/lcov-report/src/utilities/budibaseDir.ts.html +5 -5
  331. package/coverage/lcov-report/src/utilities/centralPath.ts.html +11 -11
  332. package/coverage/lcov-report/src/utilities/fileSystem/app.ts.html +343 -0
  333. package/coverage/lcov-report/src/utilities/fileSystem/clientLibrary.ts.html +20 -20
  334. package/coverage/lcov-report/src/utilities/fileSystem/filesystem.ts.html +601 -0
  335. package/coverage/lcov-report/src/utilities/fileSystem/index.html +88 -28
  336. package/coverage/lcov-report/src/utilities/fileSystem/index.ts.html +20 -1049
  337. package/coverage/lcov-report/src/utilities/fileSystem/plugin.ts.html +277 -0
  338. package/coverage/lcov-report/src/utilities/fileSystem/processor.ts.html +9 -9
  339. package/coverage/lcov-report/src/utilities/fileSystem/template.ts.html +193 -0
  340. package/coverage/lcov-report/src/utilities/global.ts.html +60 -60
  341. package/coverage/lcov-report/src/utilities/index.html +89 -119
  342. package/coverage/lcov-report/src/utilities/index.ts.html +40 -172
  343. package/coverage/lcov-report/src/utilities/redis.ts.html +38 -38
  344. package/coverage/lcov-report/src/utilities/routing/index.html +1 -1
  345. package/coverage/lcov-report/src/utilities/routing/index.ts.html +5 -5
  346. package/coverage/lcov-report/src/utilities/rowProcessor/index.html +34 -34
  347. package/coverage/lcov-report/src/utilities/rowProcessor/index.ts.html +102 -75
  348. package/coverage/lcov-report/src/utilities/rowProcessor/map.ts.html +9 -9
  349. package/coverage/lcov-report/src/utilities/rowProcessor/utils.ts.html +54 -54
  350. package/coverage/lcov-report/src/utilities/{csvParser.ts.html → schema.ts.html} +174 -234
  351. package/coverage/lcov-report/src/utilities/scriptRunner.ts.html +33 -33
  352. package/coverage/lcov-report/src/utilities/security.ts.html +13 -13
  353. package/coverage/lcov-report/src/utilities/usageQuota/index.html +9 -9
  354. package/coverage/lcov-report/src/utilities/usageQuota/rows.ts.html +38 -38
  355. package/coverage/lcov-report/src/utilities/usageQuota/usageQuoteReset.ts.html +3 -3
  356. package/coverage/lcov-report/src/utilities/users.ts.html +7 -7
  357. package/coverage/lcov-report/src/utilities/workerRequests.ts.html +89 -62
  358. package/coverage/lcov-report/src/watch.ts.html +20 -20
  359. package/coverage/lcov-report/src/websocket.ts.html +15 -15
  360. package/coverage/lcov.info +13499 -12800
  361. package/dist/api/controllers/application.js +120 -109
  362. package/dist/api/controllers/cloud.js +6 -2
  363. package/dist/api/controllers/datasource.js +24 -15
  364. package/dist/api/controllers/deploy/index.js +43 -60
  365. package/dist/api/controllers/plugin/index.js +6 -6
  366. package/dist/api/controllers/public/applications.js +22 -1
  367. package/dist/api/controllers/query/index.js +23 -13
  368. package/dist/api/controllers/row/ExternalRequest.js +12 -4
  369. package/dist/api/controllers/row/external.js +20 -13
  370. package/dist/api/controllers/row/internal.js +52 -27
  371. package/dist/api/controllers/row/staticFormula.js +1 -1
  372. package/dist/api/controllers/row/utils.js +35 -3
  373. package/dist/api/controllers/static/index.js +47 -47
  374. package/dist/api/controllers/static/templates/BudibaseApp.svelte +0 -1
  375. package/dist/api/controllers/table/external.js +16 -35
  376. package/dist/api/controllers/table/index.js +44 -15
  377. package/dist/api/controllers/table/internal.js +6 -7
  378. package/dist/api/controllers/table/utils.js +9 -9
  379. package/dist/api/controllers/user.js +14 -6
  380. package/dist/api/controllers/view/exporters.js +22 -6
  381. package/dist/api/controllers/view/index.js +23 -58
  382. package/dist/api/controllers/view/viewBuilder.js +15 -2
  383. package/dist/api/controllers/webhook.js +45 -43
  384. package/dist/api/routes/analytics.js +2 -1
  385. package/dist/api/routes/apikeys.js +2 -1
  386. package/dist/api/routes/application.js +5 -1
  387. package/dist/api/routes/auth.js +2 -1
  388. package/dist/api/routes/automation.js +2 -1
  389. package/dist/api/routes/backup.js +2 -1
  390. package/dist/api/routes/cloud.js +2 -1
  391. package/dist/api/routes/component.js +2 -1
  392. package/dist/api/routes/datasource.js +2 -1
  393. package/dist/api/routes/deploy.js +3 -3
  394. package/dist/api/routes/dev.js +2 -1
  395. package/dist/api/routes/index.js +2 -0
  396. package/dist/api/routes/integration.js +2 -1
  397. package/dist/api/routes/layout.js +2 -1
  398. package/dist/api/routes/metadata.js +2 -1
  399. package/dist/api/routes/migrations.js +2 -1
  400. package/dist/api/routes/permission.js +2 -1
  401. package/dist/api/routes/public/applications.js +37 -0
  402. package/dist/api/routes/public/middleware/mapper.js +3 -0
  403. package/dist/api/routes/query.js +2 -1
  404. package/dist/api/routes/role.js +2 -1
  405. package/dist/api/routes/routing.js +2 -1
  406. package/dist/api/routes/row.js +2 -2
  407. package/dist/api/routes/screen.js +2 -1
  408. package/dist/api/routes/script.js +2 -1
  409. package/dist/api/routes/static.js +6 -5
  410. package/dist/api/routes/table.js +8 -38
  411. package/dist/api/routes/templates.js +2 -1
  412. package/dist/api/routes/user.js +2 -1
  413. package/dist/api/routes/utils/validators.js +1 -1
  414. package/dist/api/routes/view.js +2 -1
  415. package/dist/api/routes/webhook.js +2 -1
  416. package/dist/app.js +9 -7
  417. package/dist/automations/automationUtils.js +26 -1
  418. package/dist/automations/logging/index.js +5 -25
  419. package/dist/automations/triggers.js +1 -0
  420. package/dist/db/index.js +5 -2
  421. package/dist/db/linkedRows/LinkController.js +2 -1
  422. package/dist/db/linkedRows/LinkDocument.js +2 -1
  423. package/dist/db/newid.js +4 -2
  424. package/dist/definitions/datasource.js +0 -6
  425. package/dist/environment.js +7 -2
  426. package/dist/events/AutomationEmitter.js +2 -1
  427. package/dist/events/BudibaseEmitter.js +2 -1
  428. package/dist/events/index.js +2 -1
  429. package/dist/index.js +2 -2
  430. package/dist/integrations/base/query.js +7 -2
  431. package/dist/integrations/base/sqlTable.js +14 -14
  432. package/dist/integrations/couchdb.js +34 -8
  433. package/dist/integrations/dynamodb.js +8 -5
  434. package/dist/integrations/elasticsearch.js +7 -3
  435. package/dist/integrations/googlesheets.js +1 -1
  436. package/dist/integrations/index.js +6 -7
  437. package/dist/integrations/mongodb.js +311 -271
  438. package/dist/integrations/mysql.js +2 -2
  439. package/dist/integrations/queries/sql.js +73 -100
  440. package/dist/integrations/rest.js +16 -18
  441. package/dist/middleware/authorized.js +2 -1
  442. package/dist/middleware/builder.js +4 -2
  443. package/dist/middleware/currentapp.js +6 -3
  444. package/dist/middleware/publicApi.js +4 -2
  445. package/dist/middleware/selfhost.js +4 -1
  446. package/dist/migrations/functions/backfill/global/configs.js +4 -4
  447. package/dist/package.json +12 -8
  448. package/dist/sdk/app/backups/imports.js +2 -6
  449. package/dist/sdk/app/datasources/datasources.js +147 -0
  450. package/dist/sdk/app/datasources/index.js +27 -0
  451. package/dist/sdk/app/queries/index.js +27 -0
  452. package/dist/sdk/app/queries/queries.js +60 -0
  453. package/dist/sdk/app/tables/index.js +6 -2
  454. package/dist/sdk/index.js +4 -0
  455. package/dist/sdk/utils/index.js +29 -0
  456. package/dist/startup.js +17 -17
  457. package/dist/threads/automation.js +22 -35
  458. package/dist/threads/index.js +4 -4
  459. package/dist/threads/query.js +27 -13
  460. package/dist/tsconfig.build.tsbuildinfo +1 -1
  461. package/dist/utilities/fileSystem/app.js +97 -0
  462. package/dist/utilities/fileSystem/clientLibrary.js +3 -3
  463. package/dist/utilities/fileSystem/filesystem.js +184 -0
  464. package/dist/utilities/fileSystem/index.js +18 -342
  465. package/dist/utilities/fileSystem/plugin.js +66 -0
  466. package/dist/utilities/fileSystem/template.js +47 -0
  467. package/dist/utilities/index.js +1 -44
  468. package/dist/utilities/rowProcessor/index.js +12 -4
  469. package/dist/utilities/schema.js +108 -0
  470. package/dist/utilities/scriptRunner.js +2 -1
  471. package/dist/utilities/statusCodes.js +2 -1
  472. package/dist/utilities/workerRequests.js +2 -0
  473. package/dist/watch.js +2 -25
  474. package/jest.config.ts +5 -2
  475. package/package.json +13 -9
  476. package/scripts/dev/manage.js +3 -2
  477. package/specs/openapi.json +84 -0
  478. package/specs/openapi.yaml +53 -0
  479. package/specs/resources/application.js +19 -0
  480. package/src/api/controllers/application.ts +142 -110
  481. package/src/api/controllers/auth.ts +2 -2
  482. package/src/api/controllers/cloud.ts +10 -6
  483. package/src/api/controllers/datasource.ts +33 -25
  484. package/src/api/controllers/deploy/Deployment.ts +1 -0
  485. package/src/api/controllers/deploy/index.ts +40 -58
  486. package/src/api/controllers/plugin/index.ts +14 -9
  487. package/src/api/controllers/public/applications.ts +17 -0
  488. package/src/api/controllers/query/index.ts +49 -41
  489. package/src/api/controllers/row/ExternalRequest.ts +8 -3
  490. package/src/api/controllers/row/external.ts +24 -14
  491. package/src/api/controllers/row/internal.ts +66 -41
  492. package/src/api/controllers/row/staticFormula.ts +5 -2
  493. package/src/api/controllers/row/utils.ts +42 -3
  494. package/src/api/controllers/static/index.ts +22 -27
  495. package/src/api/controllers/static/templates/BudibaseApp.svelte +0 -1
  496. package/src/api/controllers/table/external.ts +18 -16
  497. package/src/api/controllers/table/index.ts +46 -17
  498. package/src/api/controllers/table/internal.ts +6 -7
  499. package/src/api/controllers/table/utils.ts +12 -13
  500. package/src/api/controllers/user.ts +21 -13
  501. package/src/api/controllers/view/exporters.ts +20 -5
  502. package/src/api/controllers/view/index.ts +30 -42
  503. package/src/api/controllers/view/tests/viewBuilder.spec.js +1 -1
  504. package/src/api/controllers/view/viewBuilder.ts +1 -1
  505. package/src/api/controllers/webhook.ts +48 -46
  506. package/src/api/routes/analytics.ts +1 -1
  507. package/src/api/routes/apikeys.ts +1 -1
  508. package/src/api/routes/application.ts +12 -1
  509. package/src/api/routes/auth.ts +1 -1
  510. package/src/api/routes/automation.ts +1 -1
  511. package/src/api/routes/backup.ts +1 -1
  512. package/src/api/routes/cloud.ts +1 -1
  513. package/src/api/routes/component.ts +1 -1
  514. package/src/api/routes/datasource.ts +1 -1
  515. package/src/api/routes/deploy.ts +1 -2
  516. package/src/api/routes/dev.ts +1 -1
  517. package/src/api/routes/index.ts +6 -3
  518. package/src/api/routes/integration.ts +1 -1
  519. package/src/api/routes/layout.ts +1 -1
  520. package/src/api/routes/metadata.ts +1 -1
  521. package/src/api/routes/migrations.ts +1 -1
  522. package/src/api/routes/permission.ts +1 -1
  523. package/src/api/routes/public/applications.ts +44 -0
  524. package/src/api/routes/public/middleware/mapper.ts +4 -0
  525. package/src/api/routes/query.ts +1 -1
  526. package/src/api/routes/role.ts +1 -1
  527. package/src/api/routes/routing.ts +1 -1
  528. package/src/api/routes/row.ts +1 -1
  529. package/src/api/routes/screen.ts +1 -1
  530. package/src/api/routes/script.ts +1 -1
  531. package/src/api/routes/static.ts +2 -2
  532. package/src/api/routes/table.ts +16 -39
  533. package/src/api/routes/templates.ts +1 -1
  534. package/src/api/routes/tests/__snapshots__/{datasource.spec.js.snap → datasource.spec.ts.snap} +0 -0
  535. package/src/api/routes/tests/{application.spec.js → application.spec.ts} +94 -18
  536. package/src/api/routes/tests/{backup.spec.js → backup.spec.ts} +17 -6
  537. package/src/api/routes/tests/cloud.spec.ts +65 -0
  538. package/src/api/routes/tests/data/budibase-component-1.0.1.tgz +0 -0
  539. package/src/api/routes/tests/data/comment-box-1.0.2.tar.gz +0 -0
  540. package/src/api/routes/tests/data/export-test.tar.gz +0 -0
  541. package/src/api/routes/tests/{datasource.spec.js → datasource.spec.ts} +56 -14
  542. package/src/api/routes/tests/misc.spec.js +4 -10
  543. package/src/api/routes/tests/permissions.spec.js +1 -1
  544. package/src/api/routes/tests/plugin.spec.ts +179 -0
  545. package/src/api/routes/tests/routing.spec.js +1 -2
  546. package/src/api/routes/tests/row.spec.js +4 -2
  547. package/src/api/routes/tests/static.spec.js +2 -17
  548. package/src/api/routes/tests/table.spec.js +16 -32
  549. package/src/api/routes/tests/user.spec.js +105 -0
  550. package/src/api/routes/tests/utilities/TestFunctions.ts +1 -1
  551. package/src/api/routes/tests/utilities/index.ts +2 -2
  552. package/src/api/routes/tests/webhook.spec.js +1 -1
  553. package/src/api/routes/user.ts +1 -1
  554. package/src/api/routes/utils/validators.ts +1 -1
  555. package/src/api/routes/view.ts +1 -1
  556. package/src/api/routes/webhook.ts +1 -1
  557. package/src/app.ts +5 -3
  558. package/src/automations/automationUtils.ts +24 -0
  559. package/src/automations/logging/index.ts +1 -1
  560. package/src/automations/tests/bash.spec.js +34 -0
  561. package/src/automations/tests/discord.spec.js +27 -0
  562. package/src/automations/tests/executeQuery.spec.js +49 -0
  563. package/src/automations/tests/executeScript.spec.js +48 -0
  564. package/src/automations/tests/loop.spec.ts +45 -0
  565. package/src/automations/tests/sendSmtpEmail.spec.js +71 -0
  566. package/src/automations/tests/serverLog.spec.js +22 -0
  567. package/src/automations/tests/utilities/index.ts +2 -2
  568. package/src/automations/tests/zapier.spec.js +27 -0
  569. package/src/automations/triggers.ts +6 -1
  570. package/src/automations/unitTests/automationUtils.spec.ts +65 -0
  571. package/src/db/index.ts +1 -1
  572. package/src/db/linkedRows/LinkController.ts +1 -1
  573. package/src/db/linkedRows/LinkDocument.ts +1 -1
  574. package/src/db/newid.ts +1 -1
  575. package/src/db/tests/linkController.spec.js +1 -1
  576. package/src/definitions/automations.ts +1 -0
  577. package/src/definitions/datasource.ts +0 -41
  578. package/src/definitions/openapi.ts +10 -0
  579. package/src/environment.ts +6 -2
  580. package/src/events/AutomationEmitter.ts +1 -1
  581. package/src/events/BudibaseEmitter.ts +1 -1
  582. package/src/events/index.ts +1 -1
  583. package/src/index.ts +1 -1
  584. package/src/integrations/base/query.ts +3 -1
  585. package/src/integrations/base/sqlTable.ts +1 -1
  586. package/src/integrations/couchdb.ts +40 -14
  587. package/src/integrations/dynamodb.ts +3 -3
  588. package/src/integrations/elasticsearch.ts +8 -4
  589. package/src/integrations/googlesheets.ts +1 -1
  590. package/src/integrations/index.ts +5 -9
  591. package/src/integrations/mongodb.ts +315 -271
  592. package/src/integrations/mysql.ts +1 -1
  593. package/src/integrations/queries/sql.ts +5 -50
  594. package/src/integrations/rest.ts +16 -19
  595. package/src/integrations/tests/couchdb.spec.ts +33 -21
  596. package/src/integrations/tests/rest.spec.ts +19 -15
  597. package/src/middleware/authorized.ts +5 -1
  598. package/src/middleware/builder.ts +1 -1
  599. package/src/middleware/currentapp.ts +4 -3
  600. package/src/middleware/publicApi.ts +1 -1
  601. package/src/middleware/selfhost.ts +1 -1
  602. package/src/middleware/tests/authorized.spec.js +1 -1
  603. package/src/middleware/tests/currentapp.spec.js +1 -1
  604. package/src/middleware/tests/selfhost.spec.js +1 -1
  605. package/src/migrations/functions/backfill/global/configs.ts +5 -4
  606. package/src/migrations/functions/usageQuotas/tests/syncRows.spec.ts +10 -6
  607. package/src/sdk/app/backups/imports.ts +2 -6
  608. package/src/sdk/app/datasources/datasources.ts +136 -0
  609. package/src/sdk/app/datasources/index.ts +5 -0
  610. package/src/sdk/app/queries/index.ts +5 -0
  611. package/src/sdk/app/queries/queries.ts +50 -0
  612. package/src/sdk/app/tables/index.ts +6 -3
  613. package/src/sdk/index.ts +4 -0
  614. package/src/sdk/tests/attachments.spec.ts +1 -4
  615. package/src/sdk/utils/index.ts +16 -0
  616. package/src/startup.ts +3 -8
  617. package/src/tests/jestEnv.ts +13 -0
  618. package/src/tests/jestSetup.ts +4 -15
  619. package/src/tests/utilities/TestConfiguration.ts +38 -16
  620. package/src/tests/utilities/structures.ts +65 -2
  621. package/src/threads/automation.ts +22 -35
  622. package/src/threads/definitions.ts +3 -0
  623. package/src/threads/index.ts +1 -1
  624. package/src/threads/query.ts +28 -15
  625. package/src/utilities/fileSystem/app.ts +86 -0
  626. package/src/utilities/fileSystem/clientLibrary.ts +1 -1
  627. package/src/utilities/fileSystem/filesystem.ts +172 -0
  628. package/src/utilities/fileSystem/index.ts +5 -348
  629. package/src/utilities/fileSystem/plugin.ts +64 -0
  630. package/src/utilities/fileSystem/template.ts +36 -0
  631. package/src/utilities/index.ts +1 -45
  632. package/src/utilities/rowProcessor/index.ts +17 -8
  633. package/src/utilities/rowProcessor/tests/utils.spec.ts +57 -0
  634. package/src/utilities/schema.ts +141 -0
  635. package/src/utilities/scriptRunner.ts +1 -1
  636. package/src/utilities/statusCodes.ts +1 -1
  637. package/src/utilities/workerRequests.ts +10 -1
  638. package/src/watch.ts +1 -1
  639. package/tsconfig.build.json +2 -0
  640. package/tsconfig.json +2 -1
  641. package/builder/assets/index.01a9ab3b.js +0 -1024
  642. package/builder/assets/index.96b9ffed.css +0 -6
  643. package/coverage/lcov-report/src/utilities/plugins.ts.html +0 -151
  644. package/dist/api/routes/tests/utilities/TestFunctions.js +0 -167
  645. package/dist/api/routes/tests/utilities/index.js +0 -131
  646. package/dist/automations/tests/utilities/index.js +0 -81
  647. package/dist/tests/utilities/TestConfiguration.js +0 -562
  648. package/dist/tests/utilities/controllers.js +0 -40
  649. package/dist/tests/utilities/structures.js +0 -168
  650. package/dist/utilities/csvParser.js +0 -152
  651. package/dist/utilities/plugins.js +0 -26
  652. package/src/api/routes/tests/deployment.spec.ts +0 -25
  653. package/src/automations/unitTests/automationUtils.spec.js +0 -17
  654. package/src/utilities/csvParser.ts +0 -161
  655. package/src/utilities/plugins.ts +0 -22
  656. package/src/utilities/tests/__snapshots__/csvParser.spec.js.snap +0 -15
  657. package/src/utilities/tests/csvParser.spec.js +0 -112
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">86.89% </span>
26
+ <span class="strong">82.37% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>199/229</span>
28
+ <span class='fraction'>201/244</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">58.49% </span>
33
+ <span class="strong">55.07% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>31/53</span>
35
+ <span class='fraction'>38/69</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">92.3% </span>
40
+ <span class="strong">94.59% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>24/26</span>
42
+ <span class='fraction'>35/37</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">86.81% </span>
47
+ <span class="strong">82.27% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>191/220</span>
49
+ <span class='fraction'>195/237</span>
50
50
  </div>
51
51
 
52
52
 
@@ -546,37 +546,62 @@
546
546
  <a name='L481'></a><a href='#L481'>481</a>
547
547
  <a name='L482'></a><a href='#L482'>482</a>
548
548
  <a name='L483'></a><a href='#L483'>483</a>
549
- <a name='L484'></a><a href='#L484'>484</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">47x</span>
550
- <span class="cline-any cline-yes">47x</span>
549
+ <a name='L484'></a><a href='#L484'>484</a>
550
+ <a name='L485'></a><a href='#L485'>485</a>
551
+ <a name='L486'></a><a href='#L486'>486</a>
552
+ <a name='L487'></a><a href='#L487'>487</a>
553
+ <a name='L488'></a><a href='#L488'>488</a>
554
+ <a name='L489'></a><a href='#L489'>489</a>
555
+ <a name='L490'></a><a href='#L490'>490</a>
556
+ <a name='L491'></a><a href='#L491'>491</a>
557
+ <a name='L492'></a><a href='#L492'>492</a>
558
+ <a name='L493'></a><a href='#L493'>493</a>
559
+ <a name='L494'></a><a href='#L494'>494</a>
560
+ <a name='L495'></a><a href='#L495'>495</a>
561
+ <a name='L496'></a><a href='#L496'>496</a>
562
+ <a name='L497'></a><a href='#L497'>497</a>
563
+ <a name='L498'></a><a href='#L498'>498</a>
564
+ <a name='L499'></a><a href='#L499'>499</a>
565
+ <a name='L500'></a><a href='#L500'>500</a>
566
+ <a name='L501'></a><a href='#L501'>501</a>
567
+ <a name='L502'></a><a href='#L502'>502</a>
568
+ <a name='L503'></a><a href='#L503'>503</a>
569
+ <a name='L504'></a><a href='#L504'>504</a>
570
+ <a name='L505'></a><a href='#L505'>505</a>
571
+ <a name='L506'></a><a href='#L506'>506</a>
572
+ <a name='L507'></a><a href='#L507'>507</a>
573
+ <a name='L508'></a><a href='#L508'>508</a>
574
+ <a name='L509'></a><a href='#L509'>509</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">56x</span>
551
575
  <span class="cline-any cline-neutral">&nbsp;</span>
552
576
  <span class="cline-any cline-neutral">&nbsp;</span>
553
577
  <span class="cline-any cline-neutral">&nbsp;</span>
554
578
  <span class="cline-any cline-neutral">&nbsp;</span>
555
579
  <span class="cline-any cline-neutral">&nbsp;</span>
556
580
  <span class="cline-any cline-neutral">&nbsp;</span>
557
- <span class="cline-any cline-yes">47x</span>
558
- <span class="cline-any cline-yes">47x</span>
581
+ <span class="cline-any cline-yes">56x</span>
582
+ <span class="cline-any cline-yes">56x</span>
559
583
  <span class="cline-any cline-neutral">&nbsp;</span>
560
584
  <span class="cline-any cline-neutral">&nbsp;</span>
561
585
  <span class="cline-any cline-neutral">&nbsp;</span>
562
586
  <span class="cline-any cline-neutral">&nbsp;</span>
563
- <span class="cline-any cline-yes">47x</span>
564
- <span class="cline-any cline-yes">47x</span>
565
- <span class="cline-any cline-yes">47x</span>
566
- <span class="cline-any cline-yes">47x</span>
567
- <span class="cline-any cline-yes">47x</span>
568
- <span class="cline-any cline-yes">47x</span>
569
- <span class="cline-any cline-yes">47x</span>
587
+ <span class="cline-any cline-yes">56x</span>
588
+ <span class="cline-any cline-yes">56x</span>
589
+ <span class="cline-any cline-yes">56x</span>
590
+ <span class="cline-any cline-yes">56x</span>
591
+ <span class="cline-any cline-yes">56x</span>
592
+ <span class="cline-any cline-yes">56x</span>
593
+ <span class="cline-any cline-yes">56x</span>
570
594
  <span class="cline-any cline-neutral">&nbsp;</span>
571
595
  <span class="cline-any cline-neutral">&nbsp;</span>
572
596
  <span class="cline-any cline-neutral">&nbsp;</span>
573
597
  <span class="cline-any cline-neutral">&nbsp;</span>
574
598
  <span class="cline-any cline-neutral">&nbsp;</span>
575
- <span class="cline-any cline-yes">47x</span>
576
- <span class="cline-any cline-yes">47x</span>
577
- <span class="cline-any cline-yes">47x</span>
578
- <span class="cline-any cline-yes">47x</span>
579
- <span class="cline-any cline-yes">47x</span>
599
+ <span class="cline-any cline-yes">56x</span>
600
+ <span class="cline-any cline-yes">56x</span>
601
+ <span class="cline-any cline-yes">56x</span>
602
+ <span class="cline-any cline-yes">56x</span>
603
+ <span class="cline-any cline-yes">56x</span>
604
+ <span class="cline-any cline-yes">56x</span>
580
605
  <span class="cline-any cline-neutral">&nbsp;</span>
581
606
  <span class="cline-any cline-neutral">&nbsp;</span>
582
607
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -585,7 +610,10 @@
585
610
  <span class="cline-any cline-neutral">&nbsp;</span>
586
611
  <span class="cline-any cline-neutral">&nbsp;</span>
587
612
  <span class="cline-any cline-neutral">&nbsp;</span>
588
- <span class="cline-any cline-yes">47x</span>
613
+ <span class="cline-any cline-neutral">&nbsp;</span>
614
+ <span class="cline-any cline-yes">56x</span>
615
+ <span class="cline-any cline-neutral">&nbsp;</span>
616
+ <span class="cline-any cline-yes">56x</span>
589
617
  <span class="cline-any cline-neutral">&nbsp;</span>
590
618
  <span class="cline-any cline-neutral">&nbsp;</span>
591
619
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -633,7 +661,7 @@
633
661
  <span class="cline-any cline-yes">7x</span>
634
662
  <span class="cline-any cline-neutral">&nbsp;</span>
635
663
  <span class="cline-any cline-neutral">&nbsp;</span>
636
- <span class="cline-any cline-yes">47x</span>
664
+ <span class="cline-any cline-yes">6x</span>
637
665
  <span class="cline-any cline-yes">6x</span>
638
666
  <span class="cline-any cline-yes">6x</span>
639
667
  <span class="cline-any cline-yes">6x</span>
@@ -698,42 +726,42 @@
698
726
  <span class="cline-any cline-neutral">&nbsp;</span>
699
727
  <span class="cline-any cline-neutral">&nbsp;</span>
700
728
  <span class="cline-any cline-neutral">&nbsp;</span>
701
- <span class="cline-any cline-yes">47x</span>
702
- <span class="cline-any cline-yes">77x</span>
703
- <span class="cline-any cline-yes">77x</span>
704
- <span class="cline-any cline-yes">77x</span>
729
+ <span class="cline-any cline-yes">79x</span>
730
+ <span class="cline-any cline-yes">79x</span>
731
+ <span class="cline-any cline-yes">79x</span>
732
+ <span class="cline-any cline-yes">79x</span>
705
733
  <span class="cline-any cline-neutral">&nbsp;</span>
706
- <span class="cline-any cline-yes">77x</span>
707
- <span class="cline-any cline-yes">77x</span>
734
+ <span class="cline-any cline-yes">79x</span>
735
+ <span class="cline-any cline-yes">79x</span>
708
736
  <span class="cline-any cline-neutral">&nbsp;</span>
709
737
  <span class="cline-any cline-neutral">&nbsp;</span>
710
738
  <span class="cline-any cline-neutral">&nbsp;</span>
711
- <span class="cline-any cline-yes">77x</span>
712
- <span class="cline-any cline-yes">77x</span>
713
- <span class="cline-any cline-yes">77x</span>
739
+ <span class="cline-any cline-yes">79x</span>
740
+ <span class="cline-any cline-yes">79x</span>
741
+ <span class="cline-any cline-yes">79x</span>
714
742
  <span class="cline-any cline-neutral">&nbsp;</span>
715
743
  <span class="cline-any cline-neutral">&nbsp;</span>
716
744
  <span class="cline-any cline-neutral">&nbsp;</span>
717
745
  <span class="cline-any cline-neutral">&nbsp;</span>
718
- <span class="cline-any cline-yes">77x</span>
746
+ <span class="cline-any cline-yes">79x</span>
719
747
  <span class="cline-any cline-no">&nbsp;</span>
720
748
  <span class="cline-any cline-neutral">&nbsp;</span>
721
749
  <span class="cline-any cline-neutral">&nbsp;</span>
722
750
  <span class="cline-any cline-neutral">&nbsp;</span>
723
- <span class="cline-any cline-yes">77x</span>
751
+ <span class="cline-any cline-yes">79x</span>
724
752
  <span class="cline-any cline-neutral">&nbsp;</span>
725
753
  <span class="cline-any cline-neutral">&nbsp;</span>
726
754
  <span class="cline-any cline-neutral">&nbsp;</span>
727
755
  <span class="cline-any cline-neutral">&nbsp;</span>
728
756
  <span class="cline-any cline-neutral">&nbsp;</span>
729
757
  <span class="cline-any cline-neutral">&nbsp;</span>
730
- <span class="cline-any cline-yes">76x</span>
758
+ <span class="cline-any cline-yes">78x</span>
731
759
  <span class="cline-any cline-neutral">&nbsp;</span>
732
760
  <span class="cline-any cline-neutral">&nbsp;</span>
733
761
  <span class="cline-any cline-neutral">&nbsp;</span>
734
762
  <span class="cline-any cline-neutral">&nbsp;</span>
735
763
  <span class="cline-any cline-neutral">&nbsp;</span>
736
- <span class="cline-any cline-yes">47x</span>
764
+ <span class="cline-any cline-yes">9x</span>
737
765
  <span class="cline-any cline-yes">9x</span>
738
766
  <span class="cline-any cline-neutral">&nbsp;</span>
739
767
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -800,7 +828,7 @@
800
828
  <span class="cline-any cline-yes">5x</span>
801
829
  <span class="cline-any cline-neutral">&nbsp;</span>
802
830
  <span class="cline-any cline-neutral">&nbsp;</span>
803
- <span class="cline-any cline-yes">47x</span>
831
+ <span class="cline-any cline-yes">4x</span>
804
832
  <span class="cline-any cline-yes">7x</span>
805
833
  <span class="cline-any cline-neutral">&nbsp;</span>
806
834
  <span class="cline-any cline-yes">7x</span>
@@ -809,7 +837,7 @@
809
837
  <span class="cline-any cline-yes">7x</span>
810
838
  <span class="cline-any cline-neutral">&nbsp;</span>
811
839
  <span class="cline-any cline-neutral">&nbsp;</span>
812
- <span class="cline-any cline-yes">47x</span>
840
+ <span class="cline-any cline-yes">18x</span>
813
841
  <span class="cline-any cline-yes">18x</span>
814
842
  <span class="cline-any cline-yes">18x</span>
815
843
  <span class="cline-any cline-yes">18x</span>
@@ -817,7 +845,7 @@
817
845
  <span class="cline-any cline-yes">15x</span>
818
846
  <span class="cline-any cline-neutral">&nbsp;</span>
819
847
  <span class="cline-any cline-neutral">&nbsp;</span>
820
- <span class="cline-any cline-yes">47x</span>
848
+ <span class="cline-any cline-yes">4x</span>
821
849
  <span class="cline-any cline-yes">4x</span>
822
850
  <span class="cline-any cline-yes">4x</span>
823
851
  <span class="cline-any cline-yes">4x</span>
@@ -853,7 +881,7 @@
853
881
  <span class="cline-any cline-yes">3x</span>
854
882
  <span class="cline-any cline-neutral">&nbsp;</span>
855
883
  <span class="cline-any cline-neutral">&nbsp;</span>
856
- <span class="cline-any cline-yes">47x</span>
884
+ <span class="cline-any cline-yes">2x</span>
857
885
  <span class="cline-any cline-yes">2x</span>
858
886
  <span class="cline-any cline-yes">2x</span>
859
887
  <span class="cline-any cline-yes">2x</span>
@@ -892,46 +920,53 @@
892
920
  <span class="cline-any cline-yes">2x</span>
893
921
  <span class="cline-any cline-neutral">&nbsp;</span>
894
922
  <span class="cline-any cline-neutral">&nbsp;</span>
895
- <span class="cline-any cline-yes">47x</span>
923
+ <span class="cline-any cline-yes">6x</span>
896
924
  <span class="cline-any cline-neutral">&nbsp;</span>
897
- <span class="cline-any cline-yes">4x</span>
925
+ <span class="cline-any cline-yes">6x</span>
898
926
  <span class="cline-any cline-no">&nbsp;</span>
899
927
  <span class="cline-any cline-neutral">&nbsp;</span>
900
928
  <span class="cline-any cline-neutral">&nbsp;</span>
901
- <span class="cline-any cline-yes">4x</span>
902
- <span class="cline-any cline-yes">4x</span>
903
- <span class="cline-any cline-yes">4x</span>
904
- <span class="cline-any cline-yes">4x</span>
905
- <span class="cline-any cline-yes">4x</span>
929
+ <span class="cline-any cline-yes">6x</span>
930
+ <span class="cline-any cline-yes">6x</span>
931
+ <span class="cline-any cline-yes">6x</span>
932
+ <span class="cline-any cline-yes">6x</span>
933
+ <span class="cline-any cline-yes">6x</span>
906
934
  <span class="cline-any cline-neutral">&nbsp;</span>
907
935
  <span class="cline-any cline-neutral">&nbsp;</span>
908
- <span class="cline-any cline-yes">4x</span>
936
+ <span class="cline-any cline-yes">6x</span>
937
+ <span class="cline-any cline-no">&nbsp;</span>
938
+ <span class="cline-any cline-no">&nbsp;</span>
939
+ <span class="cline-any cline-no">&nbsp;</span>
909
940
  <span class="cline-any cline-no">&nbsp;</span>
910
941
  <span class="cline-any cline-neutral">&nbsp;</span>
911
- <span class="cline-any cline-yes">4x</span>
912
942
  <span class="cline-any cline-neutral">&nbsp;</span>
913
943
  <span class="cline-any cline-neutral">&nbsp;</span>
944
+ <span class="cline-any cline-yes">6x</span>
945
+ <span class="cline-any cline-no">&nbsp;</span>
914
946
  <span class="cline-any cline-neutral">&nbsp;</span>
915
- <span class="cline-any cline-yes">4x</span>
947
+ <span class="cline-any cline-yes">6x</span>
916
948
  <span class="cline-any cline-neutral">&nbsp;</span>
917
- <span class="cline-any cline-yes">4x</span>
949
+ <span class="cline-any cline-neutral">&nbsp;</span>
950
+ <span class="cline-any cline-neutral">&nbsp;</span>
951
+ <span class="cline-any cline-yes">6x</span>
952
+ <span class="cline-any cline-neutral">&nbsp;</span>
953
+ <span class="cline-any cline-yes">6x</span>
918
954
  <span class="cline-any cline-no">&nbsp;</span>
919
955
  <span class="cline-any cline-neutral">&nbsp;</span>
920
- <span class="cline-any cline-yes">4x</span>
921
- <span class="cline-any cline-yes">4x</span>
956
+ <span class="cline-any cline-yes">6x</span>
957
+ <span class="cline-any cline-yes">6x</span>
922
958
  <span class="cline-any cline-neutral">&nbsp;</span>
923
959
  <span class="cline-any cline-neutral">&nbsp;</span>
924
960
  <span class="cline-any cline-yes">4x</span>
925
961
  <span class="cline-any cline-neutral">&nbsp;</span>
926
962
  <span class="cline-any cline-neutral">&nbsp;</span>
927
- <span class="cline-any cline-yes">47x</span>
963
+ <span class="cline-any cline-yes">2x</span>
928
964
  <span class="cline-any cline-yes">2x</span>
929
965
  <span class="cline-any cline-neutral">&nbsp;</span>
930
966
  <span class="cline-any cline-neutral">&nbsp;</span>
931
967
  <span class="cline-any cline-neutral">&nbsp;</span>
932
968
  <span class="cline-any cline-neutral">&nbsp;</span>
933
969
  <span class="cline-any cline-neutral">&nbsp;</span>
934
- <span class="cline-any cline-yes">47x</span>
935
970
  <span class="cline-any cline-yes">2x</span>
936
971
  <span class="cline-any cline-yes">2x</span>
937
972
  <span class="cline-any cline-yes">2x</span>
@@ -940,9 +975,19 @@
940
975
  <span class="cline-any cline-yes">2x</span>
941
976
  <span class="cline-any cline-neutral">&nbsp;</span>
942
977
  <span class="cline-any cline-neutral">&nbsp;</span>
978
+ <span class="cline-any cline-yes">2x</span>
979
+ <span class="cline-any cline-yes">2x</span>
980
+ <span class="cline-any cline-neutral">&nbsp;</span>
981
+ <span class="cline-any cline-neutral">&nbsp;</span>
982
+ <span class="cline-any cline-neutral">&nbsp;</span>
943
983
  <span class="cline-any cline-neutral">&nbsp;</span>
984
+ <span class="cline-any cline-yes">2x</span>
944
985
  <span class="cline-any cline-neutral">&nbsp;</span>
945
986
  <span class="cline-any cline-yes">2x</span>
987
+ <span class="cline-any cline-no">&nbsp;</span>
988
+ <span class="cline-any cline-no">&nbsp;</span>
989
+ <span class="cline-any cline-no">&nbsp;</span>
990
+ <span class="cline-any cline-neutral">&nbsp;</span>
946
991
  <span class="cline-any cline-neutral">&nbsp;</span>
947
992
  <span class="cline-any cline-yes">2x</span>
948
993
  <span class="cline-any cline-yes">2x</span>
@@ -960,16 +1005,21 @@
960
1005
  <span class="cline-any cline-neutral">&nbsp;</span>
961
1006
  <span class="cline-any cline-neutral">&nbsp;</span>
962
1007
  <span class="cline-any cline-yes">2x</span>
963
- <span class="cline-any cline-neutral">&nbsp;</span>
964
1008
  <span class="cline-any cline-yes">2x</span>
1009
+ <span class="cline-any cline-no">&nbsp;</span>
1010
+ <span class="cline-any cline-no">&nbsp;</span>
965
1011
  <span class="cline-any cline-yes">2x</span>
966
- <span class="cline-any cline-neutral">&nbsp;</span>
967
- <span class="cline-any cline-neutral">&nbsp;</span>
968
1012
  <span class="cline-any cline-yes">2x</span>
969
1013
  <span class="cline-any cline-yes">2x</span>
1014
+ <span class="cline-any cline-no">&nbsp;</span>
1015
+ <span class="cline-any cline-no">&nbsp;</span>
1016
+ <span class="cline-any cline-no">&nbsp;</span>
1017
+ <span class="cline-any cline-neutral">&nbsp;</span>
1018
+ <span class="cline-any cline-no">&nbsp;</span>
1019
+ <span class="cline-any cline-neutral">&nbsp;</span>
970
1020
  <span class="cline-any cline-neutral">&nbsp;</span>
971
1021
  <span class="cline-any cline-neutral">&nbsp;</span>
972
- <span class="cline-any cline-yes">47x</span>
1022
+ <span class="cline-any cline-yes">2x</span>
973
1023
  <span class="cline-any cline-yes">2x</span>
974
1024
  <span class="cline-any cline-yes">2x</span>
975
1025
  <span class="cline-any cline-yes">2x</span>
@@ -1044,7 +1094,7 @@ import {
1044
1094
  cleanupAttachments,
1045
1095
  } from "../../../utilities/rowProcessor"
1046
1096
  import { FieldTypes } from "../../../constants"
1047
- import { validate as rowValidate, findRow } from "./utils"
1097
+ import * as utils from "./utils"
1048
1098
  import { fullSearch, paginatedSearch } from "./internalSearch"
1049
1099
  import { getGlobalUsersFromMetadata } from "../../../utilities/global"
1050
1100
  import * as inMemoryViews from "../../../db/inMemoryView"
@@ -1058,16 +1108,19 @@ import {
1058
1108
  import { cloneDeep } from "lodash/fp"
1059
1109
  import { context, db as dbCore } from "@budibase/backend-core"
1060
1110
  import { finaliseRow, updateRelatedFormula } from "./staticFormula"
1061
- import * as exporters from "../view/exporters"
1111
+ import { csv, json, jsonWithSchema, Format } from "../view/exporters"
1062
1112
  import { apiFileReturn } from "../../../utilities/fileSystem"
1063
1113
  import {
1064
- BBContext,
1114
+ Ctx,
1115
+ UserCtx,
1065
1116
  Database,
1066
1117
  LinkDocumentValue,
1067
1118
  Row,
1068
1119
  Table,
1069
1120
  } from "@budibase/types"
1070
1121
  &nbsp;
1122
+ const { cleanExportRows } = require("./utils")
1123
+ &nbsp;
1071
1124
  const CALCULATION_TYPES = {
1072
1125
  SUM: "sum",
1073
1126
  COUNT: "count",
@@ -1100,7 +1153,7 @@ async function getView(db: Database, viewName: string) {
1100
1153
  return viewInfo
1101
1154
  }
1102
1155
  &nbsp;
1103
- async function getRawTableData(ctx: BBContext, db: Database, tableId: string) {
1156
+ async function getRawTableData(ctx: Ctx, db: Database, tableId: string) {
1104
1157
  let rows
1105
1158
  <span class="missing-if-branch" title="if path not taken" >I</span>if (tableId === InternalTables.USER_METADATA) {
1106
1159
  <span class="cstat-no" title="statement not covered" > await userController.fetchMetadata(ctx)</span>
@@ -1116,7 +1169,7 @@ async function getRawTableData(ctx: BBContext, db: Database, tableId: string) {
1116
1169
  return rows as Row[]
1117
1170
  }
1118
1171
  &nbsp;
1119
- export async function patch(ctx: BBContext) {
1172
+ export async function patch(ctx: UserCtx) {
1120
1173
  const db = context.getAppDB()
1121
1174
  const inputs = ctx.request.body
1122
1175
  const tableId = inputs.tableId
@@ -1126,7 +1179,7 @@ export async function patch(ctx: BBContext) {
1126
1179
  let dbTable = await db.get(tableId)
1127
1180
  oldRow = await outputProcessing(
1128
1181
  dbTable,
1129
- await findRow(ctx, tableId, inputs._id)
1182
+ await utils.findRow(ctx, tableId, inputs._id)
1130
1183
  )
1131
1184
  } catch (err) {
1132
1185
  <span class="cstat-no" title="statement not covered" > if (isUserTable) {</span>
@@ -1148,8 +1201,8 @@ export async function patch(ctx: BBContext) {
1148
1201
  }
1149
1202
  &nbsp;
1150
1203
  // this returns the table and row incase they have been updated
1151
- let { table, row } = inputProcessing(ctx.user!, dbTable, combinedRow)
1152
- const validateResult = await rowValidate({
1204
+ let { table, row } = inputProcessing(ctx.user, dbTable, combinedRow)
1205
+ const validateResult = await utils.validate({
1153
1206
  row,
1154
1207
  table,
1155
1208
  })
@@ -1181,7 +1234,7 @@ export async function patch(ctx: BBContext) {
1181
1234
  })
1182
1235
  }
1183
1236
  &nbsp;
1184
- export async function save(ctx: BBContext) {
1237
+ export async function save(ctx: UserCtx) {
1185
1238
  const db = context.getAppDB()
1186
1239
  let inputs = ctx.request.body
1187
1240
  inputs.tableId = ctx.params.tableId
@@ -1192,8 +1245,8 @@ export async function save(ctx: BBContext) {
1192
1245
  &nbsp;
1193
1246
  // this returns the table and row incase they have been updated
1194
1247
  const dbTable = await db.get(inputs.tableId)
1195
- let { table, row } = inputProcessing(ctx.user!, dbTable, inputs)
1196
- const validateResult = await rowValidate({
1248
+ let { table, row } = inputProcessing(ctx.user, dbTable, inputs)
1249
+ const validateResult = await utils.validate({
1197
1250
  row,
1198
1251
  table,
1199
1252
  })
@@ -1216,8 +1269,8 @@ export async function save(ctx: BBContext) {
1216
1269
  })
1217
1270
  }
1218
1271
  &nbsp;
1219
- export async function fetchView(ctx: BBContext) {
1220
- const viewName = ctx.params.viewName
1272
+ export async function fetchView(ctx: Ctx) {
1273
+ const viewName = decodeURIComponent(ctx.params.viewName)
1221
1274
  &nbsp;
1222
1275
  // if this is a table view being looked for just transfer to that
1223
1276
  if (viewName.startsWith(DocumentType.TABLE)) {
@@ -1274,7 +1327,7 @@ export async function fetchView(ctx: BBContext) {
1274
1327
  calculation === CALCULATION_TYPES.COUNT ||
1275
1328
  calculation === CALCULATION_TYPES.SUM
1276
1329
  ) {
1277
- <span class="cstat-no" title="statement not covered" > rows = response.rows.map(<span class="fstat-no" title="function not covered" >row </span>=&gt; (<span class="cstat-no" title="statement not covered" >{</span></span>
1330
+ <span class="cstat-no" title="statement not covered" > rows = response.rows.map(<span class="fstat-no" title="function not covered" >row =&gt; (<span class="cstat-no" title="statement not covered" >{</span></span></span>
1278
1331
  group: row.key,
1279
1332
  field,
1280
1333
  value: row.value,
@@ -1283,7 +1336,7 @@ export async function fetchView(ctx: BBContext) {
1283
1336
  return rows
1284
1337
  }
1285
1338
  &nbsp;
1286
- export async function fetch(ctx: BBContext) {
1339
+ export async function fetch(ctx: Ctx) {
1287
1340
  const db = context.getAppDB()
1288
1341
  &nbsp;
1289
1342
  const tableId = ctx.params.tableId
@@ -1292,15 +1345,15 @@ export async function fetch(ctx: BBContext) {
1292
1345
  return outputProcessing(table, rows)
1293
1346
  }
1294
1347
  &nbsp;
1295
- export async function find(ctx: BBContext) {
1348
+ export async function find(ctx: Ctx) {
1296
1349
  const db = dbCore.getDB(ctx.appId)
1297
1350
  const table = await db.get(ctx.params.tableId)
1298
- let row = await findRow(ctx, ctx.params.tableId, ctx.params.rowId)
1351
+ let row = await utils.findRow(ctx, ctx.params.tableId, ctx.params.rowId)
1299
1352
  row = await outputProcessing(table, row)
1300
1353
  return row
1301
1354
  }
1302
1355
  &nbsp;
1303
- export async function destroy(ctx: BBContext) {
1356
+ export async function destroy(ctx: Ctx) {
1304
1357
  const db = context.getAppDB()
1305
1358
  const { _id } = ctx.request.body
1306
1359
  let row = await db.get(_id)
@@ -1336,7 +1389,7 @@ export async function destroy(ctx: BBContext) {
1336
1389
  return { response, row }
1337
1390
  }
1338
1391
  &nbsp;
1339
- export async function bulkDestroy(ctx: BBContext) {
1392
+ export async function bulkDestroy(ctx: Ctx) {
1340
1393
  const db = context.getAppDB()
1341
1394
  const tableId = ctx.params.tableId
1342
1395
  const table = await db.get(tableId)
@@ -1358,7 +1411,7 @@ export async function bulkDestroy(ctx: BBContext) {
1358
1411
  )
1359
1412
  <span class="missing-if-branch" title="if path not taken" >I</span>if (tableId === InternalTables.USER_METADATA) {
1360
1413
  <span class="cstat-no" title="statement not covered" > updates = updates.concat(</span>
1361
- processedRows.map(<span class="fstat-no" title="function not covered" >row </span>=&gt; {
1414
+ processedRows.map(<span class="fstat-no" title="function not covered" >row =&gt; {</span>
1362
1415
  <span class="cstat-no" title="statement not covered" > ctx.params = {</span>
1363
1416
  id: row._id,
1364
1417
  }
@@ -1375,7 +1428,7 @@ export async function bulkDestroy(ctx: BBContext) {
1375
1428
  return { response: { ok: true }, rows: processedRows }
1376
1429
  }
1377
1430
  &nbsp;
1378
- export async function search(ctx: BBContext) {
1431
+ export async function search(ctx: Ctx) {
1379
1432
  // Fetch the whole table when running in cypress, as search doesn't work
1380
1433
  <span class="missing-if-branch" title="if path not taken" >I</span>if (!env.COUCH_DB_URL &amp;&amp; env.isCypress()) {
1381
1434
  <span class="cstat-no" title="statement not covered" > return { rows: await fetch(ctx) }</span>
@@ -1386,6 +1439,14 @@ export async function search(ctx: BBContext) {
1386
1439
  const { paginate, query, ...params } = ctx.request.body
1387
1440
  params.version = ctx.version
1388
1441
  params.tableId = tableId
1442
+ &nbsp;
1443
+ let table
1444
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (params.sort &amp;&amp; !params.sortType) {
1445
+ <span class="cstat-no" title="statement not covered" > table = await db.get(tableId)</span>
1446
+ const schema = <span class="cstat-no" title="statement not covered" >table.schema</span>
1447
+ const sortField = <span class="cstat-no" title="statement not covered" >schema[params.sort]</span>
1448
+ <span class="cstat-no" title="statement not covered" > params.sortType = sortField.type == "number" ? "number" : "string"</span>
1449
+ }
1389
1450
  &nbsp;
1390
1451
  let response
1391
1452
  <span class="missing-if-branch" title="if path not taken" >I</span>if (paginate) {
@@ -1400,35 +1461,44 @@ export async function search(ctx: BBContext) {
1400
1461
  <span class="missing-if-branch" title="if path not taken" >I</span>if (tableId === InternalTables.USER_METADATA) {
1401
1462
  <span class="cstat-no" title="statement not covered" > response.rows = await getGlobalUsersFromMetadata(response.rows)</span>
1402
1463
  }
1403
- const table = await db.get(tableId)
1464
+ table = table || (await db.get(tableId))
1404
1465
  response.rows = await outputProcessing(table, response.rows)
1405
1466
  }
1406
1467
  &nbsp;
1407
1468
  return response
1408
1469
  }
1409
1470
  &nbsp;
1410
- export async function validate(ctx: BBContext) {
1411
- return rowValidate({
1471
+ export async function validate(ctx: Ctx) {
1472
+ return utils.validate({
1412
1473
  tableId: ctx.params.tableId,
1413
1474
  row: ctx.request.body,
1414
1475
  })
1415
1476
  }
1416
1477
  &nbsp;
1417
- export async function exportRows(ctx: BBContext) {
1478
+ export async function exportRows(ctx: Ctx) {
1418
1479
  const db = context.getAppDB()
1419
1480
  const table = await db.get(ctx.params.tableId)
1420
1481
  const rowIds = ctx.request.body.rows
1421
1482
  let format = ctx.query.format
1422
- const { columns } = ctx.request.body
1423
- let response = (
1424
- await db.allDocs({
1425
- include_docs: true,
1426
- keys: rowIds,
1427
- })
1428
- ).rows.map(row =&gt; row.doc)
1483
+ const { columns, query } = ctx.request.body
1484
+ &nbsp;
1485
+ let result
1486
+ if (rowIds) {
1487
+ let response = (
1488
+ await db.allDocs({
1489
+ include_docs: true,
1490
+ keys: rowIds,
1491
+ })
1492
+ ).rows.map(row =&gt; row.doc)
1493
+ &nbsp;
1494
+ result = await outputProcessing(table, response)
1495
+ } else <span class="cstat-no" title="statement not covered" ><span class="missing-if-branch" title="if path not taken" >I</span><span class="missing-if-branch" title="else path not taken" >E</span>if (query) {</span>
1496
+ let searchResponse = <span class="cstat-no" title="statement not covered" >await exports.search(ctx)</span>
1497
+ <span class="cstat-no" title="statement not covered" > result = searchResponse.rows</span>
1498
+ }
1429
1499
  &nbsp;
1430
- let result = (await outputProcessing(table, response)) as Row[]
1431
1500
  let rows: Row[] = []
1501
+ let schema = table.schema
1432
1502
  &nbsp;
1433
1503
  // Filter data to only specified columns if required
1434
1504
  if (columns &amp;&amp; columns.length) {
@@ -1442,24 +1512,29 @@ export async function exportRows(ctx: BBContext) {
1442
1512
  rows = result
1443
1513
  }
1444
1514
  &nbsp;
1445
- let headers = Object.keys(rows[0])
1446
- // @ts-ignore
1447
- const exporter = exporters[format]
1448
- const filename = `export.${format}`
1449
- &nbsp;
1450
- // send down the file
1451
- ctx.attachment(filename)
1452
- return apiFileReturn(exporter(headers, rows))
1515
+ let exportRows = cleanExportRows(rows, schema, format, columns)
1516
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (format === Format.CSV) {
1517
+ <span class="cstat-no" title="statement not covered" > ctx.attachment("export.csv")</span>
1518
+ <span class="cstat-no" title="statement not covered" > return apiFileReturn(csv(Object.keys(rows[0]), exportRows))</span>
1519
+ } else if (format === Format.JSON) {
1520
+ ctx.attachment("export.json")
1521
+ return apiFileReturn(json(exportRows))
1522
+ } else <span class="cstat-no" title="statement not covered" ><span class="missing-if-branch" title="else path not taken" >E</span>if (format === Format.JSON_WITH_SCHEMA) {</span>
1523
+ <span class="cstat-no" title="statement not covered" > ctx.attachment("export.json")</span>
1524
+ <span class="cstat-no" title="statement not covered" > return apiFileReturn(jsonWithSchema(schema, exportRows))</span>
1525
+ } else {
1526
+ <span class="cstat-no" title="statement not covered" > throw "Format not recognised"</span>
1527
+ }
1453
1528
  }
1454
1529
  &nbsp;
1455
- export async function fetchEnrichedRow(ctx: BBContext) {
1530
+ export async function fetchEnrichedRow(ctx: Ctx) {
1456
1531
  const db = context.getAppDB()
1457
1532
  const tableId = ctx.params.tableId
1458
1533
  const rowId = ctx.params.rowId
1459
1534
  // need table to work out where links go in row
1460
1535
  let [table, row] = await Promise.all([
1461
1536
  db.get(tableId),
1462
- findRow(ctx, tableId, rowId),
1537
+ utils.findRow(ctx, tableId, rowId),
1463
1538
  ])
1464
1539
  // get the link docs
1465
1540
  const linkVals = (await linkRows.getLinkDocuments({
@@ -1519,7 +1594,7 @@ export async function fetchEnrichedRow(ctx: BBContext) {
1519
1594
  <div class='footer quiet pad2 space-top1 center small'>
1520
1595
  Code coverage generated by
1521
1596
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
1522
- at Tue Jan 31 2023 16:44:04 GMT+0000 (Coordinated Universal Time)
1597
+ at Sun Feb 05 2023 23:27:19 GMT+0000 (Coordinated Universal Time)
1523
1598
  </div>
1524
1599
  <script src="../../../../prettify.js"></script>
1525
1600
  <script>