@budibase/server 2.2.12-alpha.6 → 2.2.12-alpha.61

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 (483) hide show
  1. package/__mocks__/node-fetch.ts +2 -0
  2. package/builder/assets/{bb-emblem.4e4717da.svg → bb-emblem.05f7ae7a.svg} +1 -1
  3. package/builder/assets/bg.c1563288.png +0 -0
  4. package/builder/assets/bulgaria.bd68393d.png +0 -0
  5. package/builder/assets/covanta.72c46c1e.png +0 -0
  6. package/builder/assets/index.9f16f5ff.js +1798 -0
  7. package/builder/assets/index.f87b8d33.css +6 -0
  8. package/builder/assets/schnellecke.cf1837a8.png +0 -0
  9. package/builder/index.html +3 -3
  10. package/coverage/clover.xml +5114 -4925
  11. package/coverage/coverage-final.json +268 -264
  12. package/coverage/lcov-report/index.html +202 -157
  13. package/coverage/lcov-report/src/api/controllers/analytics.ts.html +6 -6
  14. package/coverage/lcov-report/src/api/controllers/apikeys.ts.html +5 -5
  15. package/coverage/lcov-report/src/api/controllers/application.ts.html +185 -164
  16. package/coverage/lcov-report/src/api/controllers/auth.ts.html +9 -9
  17. package/coverage/lcov-report/src/api/controllers/automation.ts.html +24 -24
  18. package/coverage/lcov-report/src/api/controllers/backup.ts.html +6 -6
  19. package/coverage/lcov-report/src/api/controllers/cloud.ts.html +15 -15
  20. package/coverage/lcov-report/src/api/controllers/component.ts.html +5 -5
  21. package/coverage/lcov-report/src/api/controllers/datasource.ts.html +112 -88
  22. package/coverage/lcov-report/src/api/controllers/deploy/Deployment.ts.html +14 -14
  23. package/coverage/lcov-report/src/api/controllers/deploy/index.html +1 -1
  24. package/coverage/lcov-report/src/api/controllers/deploy/index.ts.html +80 -80
  25. package/coverage/lcov-report/src/api/controllers/dev.ts.html +17 -17
  26. package/coverage/lcov-report/src/api/controllers/index.html +36 -36
  27. package/coverage/lcov-report/src/api/controllers/integration.ts.html +4 -4
  28. package/coverage/lcov-report/src/api/controllers/layout.ts.html +6 -6
  29. package/coverage/lcov-report/src/api/controllers/metadata.ts.html +9 -9
  30. package/coverage/lcov-report/src/api/controllers/migrations.ts.html +4 -4
  31. package/coverage/lcov-report/src/api/controllers/permission.ts.html +13 -13
  32. package/coverage/lcov-report/src/api/controllers/plugin/file.ts.html +2 -2
  33. package/coverage/lcov-report/src/api/controllers/plugin/github.ts.html +4 -4
  34. package/coverage/lcov-report/src/api/controllers/plugin/index.html +19 -19
  35. package/coverage/lcov-report/src/api/controllers/plugin/index.ts.html +29 -29
  36. package/coverage/lcov-report/src/api/controllers/plugin/npm.ts.html +5 -5
  37. package/coverage/lcov-report/src/api/controllers/plugin/uploaders.ts.html +5 -5
  38. package/coverage/lcov-report/src/api/controllers/plugin/url.ts.html +3 -3
  39. package/coverage/lcov-report/src/api/controllers/plugin/utils.ts.html +3 -3
  40. package/coverage/lcov-report/src/api/controllers/public/applications.ts.html +6 -6
  41. package/coverage/lcov-report/src/api/controllers/public/index.html +1 -1
  42. package/coverage/lcov-report/src/api/controllers/public/mapping/applications.ts.html +2 -2
  43. package/coverage/lcov-report/src/api/controllers/public/mapping/index.html +1 -1
  44. package/coverage/lcov-report/src/api/controllers/public/mapping/index.ts.html +7 -7
  45. package/coverage/lcov-report/src/api/controllers/public/mapping/queries.ts.html +2 -2
  46. package/coverage/lcov-report/src/api/controllers/public/mapping/rows.ts.html +2 -2
  47. package/coverage/lcov-report/src/api/controllers/public/mapping/tables.ts.html +2 -2
  48. package/coverage/lcov-report/src/api/controllers/public/mapping/users.ts.html +2 -2
  49. package/coverage/lcov-report/src/api/controllers/public/queries.ts.html +4 -4
  50. package/coverage/lcov-report/src/api/controllers/public/rows.ts.html +5 -5
  51. package/coverage/lcov-report/src/api/controllers/public/tables.ts.html +4 -4
  52. package/coverage/lcov-report/src/api/controllers/public/users.ts.html +6 -6
  53. package/coverage/lcov-report/src/api/controllers/public/utils.ts.html +4 -4
  54. package/coverage/lcov-report/src/api/controllers/query/import/index.html +1 -1
  55. package/coverage/lcov-report/src/api/controllers/query/import/index.ts.html +7 -7
  56. package/coverage/lcov-report/src/api/controllers/query/import/sources/base/index.html +1 -1
  57. package/coverage/lcov-report/src/api/controllers/query/import/sources/base/index.ts.html +3 -3
  58. package/coverage/lcov-report/src/api/controllers/query/import/sources/base/openapi.ts.html +5 -5
  59. package/coverage/lcov-report/src/api/controllers/query/import/sources/curl.ts.html +7 -7
  60. package/coverage/lcov-report/src/api/controllers/query/import/sources/index.html +1 -1
  61. package/coverage/lcov-report/src/api/controllers/query/import/sources/openapi2.ts.html +9 -9
  62. package/coverage/lcov-report/src/api/controllers/query/import/sources/openapi3.ts.html +13 -13
  63. package/coverage/lcov-report/src/api/controllers/query/index.html +7 -7
  64. package/coverage/lcov-report/src/api/controllers/query/index.ts.html +89 -65
  65. package/coverage/lcov-report/src/api/controllers/query/validation.ts.html +9 -9
  66. package/coverage/lcov-report/src/api/controllers/role.ts.html +8 -8
  67. package/coverage/lcov-report/src/api/controllers/routing.ts.html +6 -6
  68. package/coverage/lcov-report/src/api/controllers/row/ExternalRequest.ts.html +36 -18
  69. package/coverage/lcov-report/src/api/controllers/row/external.ts.html +60 -30
  70. package/coverage/lcov-report/src/api/controllers/row/index.html +40 -40
  71. package/coverage/lcov-report/src/api/controllers/row/index.ts.html +34 -34
  72. package/coverage/lcov-report/src/api/controllers/row/internal.ts.html +142 -70
  73. package/coverage/lcov-report/src/api/controllers/row/internalSearch.ts.html +120 -120
  74. package/coverage/lcov-report/src/api/controllers/row/staticFormula.ts.html +22 -22
  75. package/coverage/lcov-report/src/api/controllers/row/utils.ts.html +152 -38
  76. package/coverage/lcov-report/src/api/controllers/screen.ts.html +7 -7
  77. package/coverage/lcov-report/src/api/controllers/script.ts.html +2 -2
  78. package/coverage/lcov-report/src/api/controllers/static/index.html +1 -1
  79. package/coverage/lcov-report/src/api/controllers/static/index.ts.html +39 -42
  80. package/coverage/lcov-report/src/api/controllers/table/bulkFormula.ts.html +52 -52
  81. package/coverage/lcov-report/src/api/controllers/table/external.ts.html +43 -37
  82. package/coverage/lcov-report/src/api/controllers/table/index.html +34 -34
  83. package/coverage/lcov-report/src/api/controllers/table/index.ts.html +155 -68
  84. package/coverage/lcov-report/src/api/controllers/table/internal.ts.html +47 -47
  85. package/coverage/lcov-report/src/api/controllers/table/utils.ts.html +66 -69
  86. package/coverage/lcov-report/src/api/controllers/templates.ts.html +7 -7
  87. package/coverage/lcov-report/src/api/controllers/user.ts.html +99 -75
  88. package/coverage/lcov-report/src/api/controllers/view/exporters.ts.html +62 -17
  89. package/coverage/lcov-report/src/api/controllers/view/index.html +29 -29
  90. package/coverage/lcov-report/src/api/controllers/view/index.ts.html +53 -92
  91. package/coverage/lcov-report/src/api/controllers/view/utils.ts.html +5 -5
  92. package/coverage/lcov-report/src/api/controllers/view/viewBuilder.ts.html +6 -6
  93. package/coverage/lcov-report/src/api/controllers/webhook.ts.html +69 -63
  94. package/coverage/lcov-report/src/api/index.html +1 -1
  95. package/coverage/lcov-report/src/api/index.ts.html +27 -27
  96. package/coverage/lcov-report/src/api/routes/analytics.ts.html +7 -7
  97. package/coverage/lcov-report/src/api/routes/apikeys.ts.html +8 -8
  98. package/coverage/lcov-report/src/api/routes/application.ts.html +10 -10
  99. package/coverage/lcov-report/src/api/routes/auth.ts.html +6 -6
  100. package/coverage/lcov-report/src/api/routes/automation.ts.html +11 -11
  101. package/coverage/lcov-report/src/api/routes/backup.ts.html +8 -8
  102. package/coverage/lcov-report/src/api/routes/cloud.ts.html +8 -8
  103. package/coverage/lcov-report/src/api/routes/component.ts.html +8 -8
  104. package/coverage/lcov-report/src/api/routes/datasource.ts.html +9 -9
  105. package/coverage/lcov-report/src/api/routes/deploy.ts.html +8 -8
  106. package/coverage/lcov-report/src/api/routes/dev.ts.html +13 -13
  107. package/coverage/lcov-report/src/api/routes/index.html +5 -5
  108. package/coverage/lcov-report/src/api/routes/index.ts.html +42 -36
  109. package/coverage/lcov-report/src/api/routes/integration.ts.html +8 -8
  110. package/coverage/lcov-report/src/api/routes/layout.ts.html +8 -8
  111. package/coverage/lcov-report/src/api/routes/metadata.ts.html +9 -9
  112. package/coverage/lcov-report/src/api/routes/migrations.ts.html +7 -7
  113. package/coverage/lcov-report/src/api/routes/permission.ts.html +9 -9
  114. package/coverage/lcov-report/src/api/routes/plugin.ts.html +8 -8
  115. package/coverage/lcov-report/src/api/routes/public/applications.ts.html +14 -14
  116. package/coverage/lcov-report/src/api/routes/public/index.html +1 -1
  117. package/coverage/lcov-report/src/api/routes/public/index.ts.html +52 -52
  118. package/coverage/lcov-report/src/api/routes/public/middleware/index.html +1 -1
  119. package/coverage/lcov-report/src/api/routes/public/middleware/mapper.ts.html +4 -4
  120. package/coverage/lcov-report/src/api/routes/public/queries.ts.html +9 -9
  121. package/coverage/lcov-report/src/api/routes/public/rows.ts.html +12 -12
  122. package/coverage/lcov-report/src/api/routes/public/tables.ts.html +12 -12
  123. package/coverage/lcov-report/src/api/routes/public/tests/index.html +1 -1
  124. package/coverage/lcov-report/src/api/routes/public/tests/utils.ts.html +1 -1
  125. package/coverage/lcov-report/src/api/routes/public/users.ts.html +12 -12
  126. package/coverage/lcov-report/src/api/routes/public/utils/Endpoint.ts.html +19 -19
  127. package/coverage/lcov-report/src/api/routes/public/utils/index.html +1 -1
  128. package/coverage/lcov-report/src/api/routes/query.ts.html +11 -11
  129. package/coverage/lcov-report/src/api/routes/role.ts.html +9 -9
  130. package/coverage/lcov-report/src/api/routes/routing.ts.html +8 -8
  131. package/coverage/lcov-report/src/api/routes/row.ts.html +12 -12
  132. package/coverage/lcov-report/src/api/routes/screen.ts.html +9 -9
  133. package/coverage/lcov-report/src/api/routes/script.ts.html +1 -1
  134. package/coverage/lcov-report/src/api/routes/static.ts.html +14 -14
  135. package/coverage/lcov-report/src/api/routes/table.ts.html +26 -95
  136. package/coverage/lcov-report/src/api/routes/templates.ts.html +8 -8
  137. package/coverage/lcov-report/src/api/routes/tests/utilities/TestFunctions.ts.html +1 -1
  138. package/coverage/lcov-report/src/api/routes/tests/utilities/index.html +1 -1
  139. package/coverage/lcov-report/src/api/routes/tests/utilities/index.ts.html +1 -1
  140. package/coverage/lcov-report/src/api/routes/user.ts.html +9 -9
  141. package/coverage/lcov-report/src/api/routes/utils/index.html +1 -1
  142. package/coverage/lcov-report/src/api/routes/utils/validators.ts.html +43 -43
  143. package/coverage/lcov-report/src/api/routes/view.ts.html +10 -10
  144. package/coverage/lcov-report/src/api/routes/webhook.ts.html +10 -10
  145. package/coverage/lcov-report/src/app.ts.html +13 -7
  146. package/coverage/lcov-report/src/automations/actions.ts.html +27 -27
  147. package/coverage/lcov-report/src/automations/automationUtils.ts.html +59 -59
  148. package/coverage/lcov-report/src/automations/bullboard.ts.html +9 -9
  149. package/coverage/lcov-report/src/automations/index.html +30 -30
  150. package/coverage/lcov-report/src/automations/index.ts.html +10 -10
  151. package/coverage/lcov-report/src/automations/logging/index.html +1 -1
  152. package/coverage/lcov-report/src/automations/logging/index.ts.html +7 -7
  153. package/coverage/lcov-report/src/automations/steps/bash.ts.html +8 -8
  154. package/coverage/lcov-report/src/automations/steps/createRow.ts.html +7 -7
  155. package/coverage/lcov-report/src/automations/steps/delay.ts.html +5 -5
  156. package/coverage/lcov-report/src/automations/steps/deleteRow.ts.html +7 -7
  157. package/coverage/lcov-report/src/automations/steps/discord.ts.html +8 -8
  158. package/coverage/lcov-report/src/automations/steps/executeQuery.ts.html +7 -7
  159. package/coverage/lcov-report/src/automations/steps/executeScript.ts.html +7 -7
  160. package/coverage/lcov-report/src/automations/steps/filter.ts.html +6 -6
  161. package/coverage/lcov-report/src/automations/steps/index.html +15 -15
  162. package/coverage/lcov-report/src/automations/steps/integromat.ts.html +6 -6
  163. package/coverage/lcov-report/src/automations/steps/loop.ts.html +3 -3
  164. package/coverage/lcov-report/src/automations/steps/outgoingWebhook.ts.html +9 -9
  165. package/coverage/lcov-report/src/automations/steps/queryRows.ts.html +38 -38
  166. package/coverage/lcov-report/src/automations/steps/sendSmtpEmail.ts.html +6 -6
  167. package/coverage/lcov-report/src/automations/steps/serverLog.ts.html +7 -7
  168. package/coverage/lcov-report/src/automations/steps/slack.ts.html +6 -6
  169. package/coverage/lcov-report/src/automations/steps/updateRow.ts.html +7 -7
  170. package/coverage/lcov-report/src/automations/steps/utils.ts.html +10 -10
  171. package/coverage/lcov-report/src/automations/steps/zapier.ts.html +6 -6
  172. package/coverage/lcov-report/src/automations/tests/utilities/index.html +1 -1
  173. package/coverage/lcov-report/src/automations/tests/utilities/index.ts.html +13 -13
  174. package/coverage/lcov-report/src/automations/triggerInfo/app.ts.html +3 -3
  175. package/coverage/lcov-report/src/automations/triggerInfo/cron.ts.html +3 -3
  176. package/coverage/lcov-report/src/automations/triggerInfo/index.html +1 -1
  177. package/coverage/lcov-report/src/automations/triggerInfo/index.ts.html +8 -8
  178. package/coverage/lcov-report/src/automations/triggerInfo/rowDeleted.ts.html +3 -3
  179. package/coverage/lcov-report/src/automations/triggerInfo/rowSaved.ts.html +3 -3
  180. package/coverage/lcov-report/src/automations/triggerInfo/rowUpdated.ts.html +3 -3
  181. package/coverage/lcov-report/src/automations/triggerInfo/webhook.ts.html +3 -3
  182. package/coverage/lcov-report/src/automations/triggers.ts.html +52 -37
  183. package/coverage/lcov-report/src/automations/utils.ts.html +52 -52
  184. package/coverage/lcov-report/src/constants/index.html +1 -1
  185. package/coverage/lcov-report/src/constants/index.ts.html +2 -2
  186. package/coverage/lcov-report/src/constants/layouts.ts.html +4 -4
  187. package/coverage/lcov-report/src/constants/screens.ts.html +3 -3
  188. package/coverage/lcov-report/src/db/defaultData/datasource_bb_default.ts.html +22 -22
  189. package/coverage/lcov-report/src/db/defaultData/employeeImport.ts.html +2 -2
  190. package/coverage/lcov-report/src/db/defaultData/expensesImport.ts.html +2 -2
  191. package/coverage/lcov-report/src/db/defaultData/index.html +1 -1
  192. package/coverage/lcov-report/src/db/defaultData/inventoryImport.ts.html +2 -2
  193. package/coverage/lcov-report/src/db/defaultData/jobsImport.ts.html +2 -2
  194. package/coverage/lcov-report/src/db/dynamoClient.ts.html +15 -15
  195. package/coverage/lcov-report/src/db/inMemoryView.ts.html +4 -4
  196. package/coverage/lcov-report/src/db/index.html +1 -1
  197. package/coverage/lcov-report/src/db/index.ts.html +9 -9
  198. package/coverage/lcov-report/src/db/linkedRows/LinkController.ts.html +18 -18
  199. package/coverage/lcov-report/src/db/linkedRows/LinkDocument.ts.html +4 -4
  200. package/coverage/lcov-report/src/db/linkedRows/index.html +1 -1
  201. package/coverage/lcov-report/src/db/linkedRows/index.ts.html +27 -27
  202. package/coverage/lcov-report/src/db/linkedRows/linkUtils.ts.html +13 -13
  203. package/coverage/lcov-report/src/db/newid.ts.html +4 -4
  204. package/coverage/lcov-report/src/db/utils.ts.html +40 -40
  205. package/coverage/lcov-report/src/definitions/automations.ts.html +6 -3
  206. package/coverage/lcov-report/src/definitions/index.html +5 -20
  207. package/coverage/lcov-report/src/environment.ts.html +10 -10
  208. package/coverage/lcov-report/src/events/AutomationEmitter.ts.html +8 -8
  209. package/coverage/lcov-report/src/events/BudibaseEmitter.ts.html +5 -5
  210. package/coverage/lcov-report/src/events/index.html +1 -1
  211. package/coverage/lcov-report/src/events/index.ts.html +4 -4
  212. package/coverage/lcov-report/src/events/utils.ts.html +1 -1
  213. package/coverage/lcov-report/src/index.html +13 -13
  214. package/coverage/lcov-report/src/index.ts.html +5 -5
  215. package/coverage/lcov-report/src/integrations/airtable.ts.html +5 -5
  216. package/coverage/lcov-report/src/integrations/arangodb.ts.html +5 -5
  217. package/coverage/lcov-report/src/integrations/base/index.html +11 -11
  218. package/coverage/lcov-report/src/integrations/base/query.ts.html +14 -8
  219. package/coverage/lcov-report/src/integrations/base/sql.ts.html +12 -12
  220. package/coverage/lcov-report/src/integrations/base/sqlTable.ts.html +8 -8
  221. package/coverage/lcov-report/src/integrations/base/utils.ts.html +5 -5
  222. package/coverage/lcov-report/src/integrations/couchdb.ts.html +113 -32
  223. package/coverage/lcov-report/src/integrations/dynamodb.ts.html +9 -9
  224. package/coverage/lcov-report/src/integrations/elasticsearch.ts.html +26 -14
  225. package/coverage/lcov-report/src/integrations/firebase.ts.html +5 -5
  226. package/coverage/lcov-report/src/integrations/googlesheets.ts.html +11 -11
  227. package/coverage/lcov-report/src/integrations/index.html +47 -47
  228. package/coverage/lcov-report/src/integrations/index.ts.html +49 -49
  229. package/coverage/lcov-report/src/integrations/microsoftSqlServer.ts.html +8 -8
  230. package/coverage/lcov-report/src/integrations/mongodb.ts.html +417 -285
  231. package/coverage/lcov-report/src/integrations/mysql.ts.html +11 -11
  232. package/coverage/lcov-report/src/integrations/oracle.ts.html +13 -13
  233. package/coverage/lcov-report/src/integrations/postgres.ts.html +10 -10
  234. package/coverage/lcov-report/src/integrations/queries/index.html +19 -19
  235. package/coverage/lcov-report/src/integrations/queries/sql.ts.html +15 -150
  236. package/coverage/lcov-report/src/integrations/redis.ts.html +5 -5
  237. package/coverage/lcov-report/src/integrations/rest.ts.html +36 -45
  238. package/coverage/lcov-report/src/integrations/s3.ts.html +6 -6
  239. package/coverage/lcov-report/src/integrations/snowflake.ts.html +5 -5
  240. package/coverage/lcov-report/src/integrations/tests/TestConfiguration.js.html +1 -1
  241. package/coverage/lcov-report/src/integrations/tests/index.html +1 -1
  242. package/coverage/lcov-report/src/integrations/utils.ts.html +18 -18
  243. package/coverage/lcov-report/src/middleware/appInfo.ts.html +5 -5
  244. package/coverage/lcov-report/src/middleware/authorized.ts.html +27 -27
  245. package/coverage/lcov-report/src/middleware/builder.ts.html +17 -17
  246. package/coverage/lcov-report/src/middleware/currentapp.ts.html +45 -42
  247. package/coverage/lcov-report/src/middleware/index.html +1 -1
  248. package/coverage/lcov-report/src/middleware/joi-validator.ts.html +1 -1
  249. package/coverage/lcov-report/src/middleware/publicApi.ts.html +4 -4
  250. package/coverage/lcov-report/src/middleware/resourceId.ts.html +21 -21
  251. package/coverage/lcov-report/src/middleware/selfhost.ts.html +1 -1
  252. package/coverage/lcov-report/src/middleware/utils.ts.html +4 -4
  253. package/coverage/lcov-report/src/migrations/functions/appUrls.ts.html +4 -4
  254. package/coverage/lcov-report/src/migrations/functions/backfill/app/automations.ts.html +5 -5
  255. package/coverage/lcov-report/src/migrations/functions/backfill/app/datasources.ts.html +5 -5
  256. package/coverage/lcov-report/src/migrations/functions/backfill/app/index.html +1 -1
  257. package/coverage/lcov-report/src/migrations/functions/backfill/app/layouts.ts.html +5 -5
  258. package/coverage/lcov-report/src/migrations/functions/backfill/app/queries.ts.html +7 -7
  259. package/coverage/lcov-report/src/migrations/functions/backfill/app/roles.ts.html +5 -5
  260. package/coverage/lcov-report/src/migrations/functions/backfill/app/screens.ts.html +5 -5
  261. package/coverage/lcov-report/src/migrations/functions/backfill/app/tables.ts.html +4 -4
  262. package/coverage/lcov-report/src/migrations/functions/backfill/app.ts.html +19 -19
  263. package/coverage/lcov-report/src/migrations/functions/backfill/global/configs.ts.html +6 -6
  264. package/coverage/lcov-report/src/migrations/functions/backfill/global/index.html +1 -1
  265. package/coverage/lcov-report/src/migrations/functions/backfill/global/quotas.ts.html +7 -7
  266. package/coverage/lcov-report/src/migrations/functions/backfill/global/users.ts.html +6 -6
  267. package/coverage/lcov-report/src/migrations/functions/backfill/global.ts.html +15 -15
  268. package/coverage/lcov-report/src/migrations/functions/backfill/index.html +1 -1
  269. package/coverage/lcov-report/src/migrations/functions/backfill/index.ts.html +5 -5
  270. package/coverage/lcov-report/src/migrations/functions/backfill/installation.ts.html +8 -8
  271. package/coverage/lcov-report/src/migrations/functions/index.html +1 -1
  272. package/coverage/lcov-report/src/migrations/functions/syncQuotas.ts.html +6 -6
  273. package/coverage/lcov-report/src/migrations/functions/tableSettings.ts.html +6 -6
  274. package/coverage/lcov-report/src/migrations/functions/usageQuotas/index.html +1 -1
  275. package/coverage/lcov-report/src/migrations/functions/usageQuotas/index.ts.html +2 -2
  276. package/coverage/lcov-report/src/migrations/functions/usageQuotas/syncApps.ts.html +5 -5
  277. package/coverage/lcov-report/src/migrations/functions/usageQuotas/syncPlugins.ts.html +4 -4
  278. package/coverage/lcov-report/src/migrations/functions/usageQuotas/syncRows.ts.html +6 -6
  279. package/coverage/lcov-report/src/migrations/functions/userEmailViewCasing.ts.html +3 -3
  280. package/coverage/lcov-report/src/migrations/index.html +1 -1
  281. package/coverage/lcov-report/src/migrations/index.ts.html +32 -32
  282. package/coverage/lcov-report/src/migrations/tests/helpers.ts.html +1 -1
  283. package/coverage/lcov-report/src/migrations/tests/index.html +1 -1
  284. package/coverage/lcov-report/src/migrations/tests/structures.ts.html +1 -1
  285. package/coverage/lcov-report/src/sdk/app/applications/index.html +1 -1
  286. package/coverage/lcov-report/src/sdk/app/applications/index.ts.html +4 -4
  287. package/coverage/lcov-report/src/sdk/app/applications/sync.ts.html +22 -22
  288. package/coverage/lcov-report/src/sdk/app/applications/utils.ts.html +9 -9
  289. package/coverage/lcov-report/src/sdk/app/automations/index.html +1 -1
  290. package/coverage/lcov-report/src/sdk/app/automations/index.ts.html +3 -3
  291. package/coverage/lcov-report/src/sdk/app/automations/webhook.ts.html +3 -3
  292. package/coverage/lcov-report/src/sdk/app/backups/constants.ts.html +3 -3
  293. package/coverage/lcov-report/src/sdk/app/backups/exports.ts.html +17 -17
  294. package/coverage/lcov-report/src/sdk/app/backups/imports.ts.html +18 -18
  295. package/coverage/lcov-report/src/sdk/app/backups/index.html +1 -1
  296. package/coverage/lcov-report/src/sdk/app/backups/index.ts.html +5 -5
  297. package/coverage/lcov-report/src/sdk/app/backups/statistics.ts.html +7 -7
  298. package/coverage/lcov-report/src/sdk/app/datasources/datasources.ts.html +493 -0
  299. package/coverage/lcov-report/src/sdk/app/datasources/index.html +131 -0
  300. package/coverage/lcov-report/src/sdk/app/datasources/index.ts.html +100 -0
  301. package/coverage/lcov-report/src/sdk/app/queries/index.html +131 -0
  302. package/coverage/lcov-report/src/sdk/app/queries/index.ts.html +100 -0
  303. package/coverage/lcov-report/src/{definitions/datasource.ts.html → sdk/app/queries/queries.ts.html} +82 -82
  304. package/coverage/lcov-report/src/sdk/app/rows/attachments.ts.html +6 -6
  305. package/coverage/lcov-report/src/sdk/app/rows/index.html +1 -1
  306. package/coverage/lcov-report/src/sdk/app/rows/index.ts.html +4 -4
  307. package/coverage/lcov-report/src/sdk/app/rows/rows.ts.html +4 -4
  308. package/coverage/lcov-report/src/sdk/app/tables/index.html +11 -11
  309. package/coverage/lcov-report/src/sdk/app/tables/index.ts.html +27 -18
  310. package/coverage/lcov-report/src/sdk/index.html +5 -5
  311. package/coverage/lcov-report/src/sdk/index.ts.html +23 -11
  312. package/coverage/lcov-report/src/sdk/users/index.html +1 -1
  313. package/coverage/lcov-report/src/sdk/users/index.ts.html +3 -3
  314. package/coverage/lcov-report/src/sdk/users/utils.ts.html +28 -28
  315. package/coverage/lcov-report/src/sdk/utils/index.html +116 -0
  316. package/coverage/lcov-report/src/sdk/utils/index.ts.html +133 -0
  317. package/coverage/lcov-report/src/startup.ts.html +34 -34
  318. package/coverage/lcov-report/src/tests/utilities/TestConfiguration.ts.html +134 -125
  319. package/coverage/lcov-report/src/tests/utilities/controllers.ts.html +15 -15
  320. package/coverage/lcov-report/src/tests/utilities/index.html +21 -21
  321. package/coverage/lcov-report/src/tests/utilities/index.ts.html +1 -1
  322. package/coverage/lcov-report/src/tests/utilities/structures.ts.html +213 -24
  323. package/coverage/lcov-report/src/threads/automation.ts.html +216 -186
  324. package/coverage/lcov-report/src/threads/index.html +30 -30
  325. package/coverage/lcov-report/src/threads/index.ts.html +24 -24
  326. package/coverage/lcov-report/src/threads/query.ts.html +68 -29
  327. package/coverage/lcov-report/src/threads/utils.ts.html +9 -9
  328. package/coverage/lcov-report/src/utilities/budibaseDir.ts.html +2 -2
  329. package/coverage/lcov-report/src/utilities/centralPath.ts.html +11 -11
  330. package/coverage/lcov-report/src/utilities/fileSystem/app.ts.html +9 -9
  331. package/coverage/lcov-report/src/utilities/fileSystem/clientLibrary.ts.html +1 -1
  332. package/coverage/lcov-report/src/utilities/fileSystem/filesystem.ts.html +28 -22
  333. package/coverage/lcov-report/src/utilities/fileSystem/index.html +21 -21
  334. package/coverage/lcov-report/src/utilities/fileSystem/index.ts.html +1 -1
  335. package/coverage/lcov-report/src/utilities/fileSystem/plugin.ts.html +5 -8
  336. package/coverage/lcov-report/src/utilities/fileSystem/processor.ts.html +1 -1
  337. package/coverage/lcov-report/src/utilities/fileSystem/template.ts.html +3 -3
  338. package/coverage/lcov-report/src/utilities/global.ts.html +40 -40
  339. package/coverage/lcov-report/src/utilities/index.html +39 -39
  340. package/coverage/lcov-report/src/utilities/index.ts.html +12 -12
  341. package/coverage/lcov-report/src/utilities/redis.ts.html +12 -12
  342. package/coverage/lcov-report/src/utilities/routing/index.html +1 -1
  343. package/coverage/lcov-report/src/utilities/routing/index.ts.html +4 -4
  344. package/coverage/lcov-report/src/utilities/rowProcessor/index.html +1 -1
  345. package/coverage/lcov-report/src/utilities/rowProcessor/index.ts.html +50 -50
  346. package/coverage/lcov-report/src/utilities/rowProcessor/map.ts.html +3 -3
  347. package/coverage/lcov-report/src/utilities/rowProcessor/utils.ts.html +14 -14
  348. package/coverage/lcov-report/src/utilities/{csvParser.ts.html → schema.ts.html} +173 -233
  349. package/coverage/lcov-report/src/utilities/scriptRunner.ts.html +5 -5
  350. package/coverage/lcov-report/src/utilities/security.ts.html +4 -4
  351. package/coverage/lcov-report/src/utilities/usageQuota/index.html +1 -1
  352. package/coverage/lcov-report/src/utilities/usageQuota/rows.ts.html +4 -4
  353. package/coverage/lcov-report/src/utilities/usageQuota/usageQuoteReset.ts.html +1 -1
  354. package/coverage/lcov-report/src/utilities/users.ts.html +4 -4
  355. package/coverage/lcov-report/src/utilities/workerRequests.ts.html +38 -11
  356. package/coverage/lcov-report/src/watch.ts.html +7 -7
  357. package/coverage/lcov-report/src/websocket.ts.html +3 -3
  358. package/coverage/lcov.info +7899 -7539
  359. package/dist/api/controllers/application.js +73 -74
  360. package/dist/api/controllers/cloud.js +1 -1
  361. package/dist/api/controllers/datasource.js +24 -15
  362. package/dist/api/controllers/query/index.js +18 -11
  363. package/dist/api/controllers/row/ExternalRequest.js +12 -3
  364. package/dist/api/controllers/row/external.js +20 -13
  365. package/dist/api/controllers/row/internal.js +40 -15
  366. package/dist/api/controllers/row/utils.js +35 -3
  367. package/dist/api/controllers/static/index.js +38 -38
  368. package/dist/api/controllers/static/templates/BudibaseApp.svelte +0 -1
  369. package/dist/api/controllers/table/external.js +16 -35
  370. package/dist/api/controllers/table/index.js +44 -15
  371. package/dist/api/controllers/table/internal.js +4 -4
  372. package/dist/api/controllers/table/utils.js +9 -9
  373. package/dist/api/controllers/user.js +14 -6
  374. package/dist/api/controllers/view/exporters.js +22 -6
  375. package/dist/api/controllers/view/index.js +20 -56
  376. package/dist/api/controllers/webhook.js +45 -43
  377. package/dist/api/routes/index.js +2 -0
  378. package/dist/api/routes/row.js +2 -2
  379. package/dist/api/routes/table.js +6 -37
  380. package/dist/api/routes/utils/validators.js +1 -1
  381. package/dist/app.js +1 -0
  382. package/dist/automations/triggers.js +1 -0
  383. package/dist/definitions/datasource.js +0 -6
  384. package/dist/index.js +2 -2
  385. package/dist/integrations/base/query.js +7 -2
  386. package/dist/integrations/base/sqlTable.js +14 -14
  387. package/dist/integrations/couchdb.js +34 -8
  388. package/dist/integrations/dynamodb.js +8 -5
  389. package/dist/integrations/elasticsearch.js +7 -3
  390. package/dist/integrations/index.js +5 -5
  391. package/dist/integrations/mongodb.js +311 -271
  392. package/dist/integrations/mysql.js +2 -2
  393. package/dist/integrations/queries/sql.js +73 -100
  394. package/dist/integrations/rest.js +16 -18
  395. package/dist/middleware/currentapp.js +4 -2
  396. package/dist/package.json +7 -7
  397. package/dist/sdk/app/datasources/datasources.js +147 -0
  398. package/dist/sdk/app/datasources/index.js +27 -0
  399. package/dist/sdk/app/queries/index.js +27 -0
  400. package/dist/sdk/app/queries/queries.js +60 -0
  401. package/dist/sdk/app/tables/index.js +6 -2
  402. package/dist/sdk/index.js +4 -0
  403. package/dist/sdk/utils/index.js +29 -0
  404. package/dist/threads/automation.js +18 -7
  405. package/dist/threads/query.js +27 -13
  406. package/dist/tsconfig.build.tsbuildinfo +1 -1
  407. package/dist/utilities/fileSystem/filesystem.js +36 -34
  408. package/dist/utilities/fileSystem/plugin.js +17 -14
  409. package/dist/utilities/fileSystem/template.js +7 -4
  410. package/dist/utilities/schema.js +108 -0
  411. package/dist/utilities/workerRequests.js +2 -0
  412. package/package.json +8 -8
  413. package/scripts/dev/manage.js +1 -0
  414. package/src/api/controllers/application.ts +81 -74
  415. package/src/api/controllers/cloud.ts +1 -1
  416. package/src/api/controllers/datasource.ts +33 -25
  417. package/src/api/controllers/query/index.ts +47 -39
  418. package/src/api/controllers/row/ExternalRequest.ts +8 -2
  419. package/src/api/controllers/row/external.ts +24 -14
  420. package/src/api/controllers/row/internal.ts +42 -18
  421. package/src/api/controllers/row/utils.ts +40 -2
  422. package/src/api/controllers/static/index.ts +17 -18
  423. package/src/api/controllers/static/templates/BudibaseApp.svelte +0 -1
  424. package/src/api/controllers/table/external.ts +18 -16
  425. package/src/api/controllers/table/index.ts +46 -17
  426. package/src/api/controllers/table/internal.ts +4 -4
  427. package/src/api/controllers/table/utils.ts +12 -13
  428. package/src/api/controllers/user.ts +21 -13
  429. package/src/api/controllers/view/exporters.ts +20 -5
  430. package/src/api/controllers/view/index.ts +22 -35
  431. package/src/api/controllers/webhook.ts +48 -46
  432. package/src/api/routes/index.ts +2 -0
  433. package/src/api/routes/row.ts +1 -1
  434. package/src/api/routes/table.ts +15 -38
  435. package/src/api/routes/tests/datasource.spec.ts +35 -1
  436. package/src/api/routes/tests/misc.spec.js +4 -10
  437. package/src/api/routes/tests/table.spec.js +8 -30
  438. package/src/api/routes/tests/user.spec.js +20 -1
  439. package/src/api/routes/utils/validators.ts +1 -1
  440. package/src/app.ts +3 -1
  441. package/src/automations/tests/loop.spec.ts +45 -0
  442. package/src/automations/triggers.ts +6 -1
  443. package/src/definitions/automations.ts +1 -0
  444. package/src/definitions/datasource.ts +0 -41
  445. package/src/index.ts +1 -1
  446. package/src/integrations/base/query.ts +3 -1
  447. package/src/integrations/base/sqlTable.ts +1 -1
  448. package/src/integrations/couchdb.ts +41 -14
  449. package/src/integrations/dynamodb.ts +3 -3
  450. package/src/integrations/elasticsearch.ts +8 -4
  451. package/src/integrations/index.ts +4 -4
  452. package/src/integrations/mongodb.ts +315 -271
  453. package/src/integrations/mysql.ts +1 -1
  454. package/src/integrations/queries/sql.ts +5 -50
  455. package/src/integrations/rest.ts +16 -19
  456. package/src/integrations/tests/couchdb.spec.ts +33 -21
  457. package/src/integrations/tests/rest.spec.ts +4 -2
  458. package/src/middleware/currentapp.ts +3 -2
  459. package/src/migrations/functions/usageQuotas/tests/syncRows.spec.ts +10 -6
  460. package/src/sdk/app/datasources/datasources.ts +136 -0
  461. package/src/sdk/app/datasources/index.ts +5 -0
  462. package/src/sdk/app/queries/index.ts +5 -0
  463. package/src/sdk/app/queries/queries.ts +50 -0
  464. package/src/sdk/app/tables/index.ts +6 -3
  465. package/src/sdk/index.ts +4 -0
  466. package/src/sdk/utils/index.ts +16 -0
  467. package/src/tests/utilities/TestConfiguration.ts +15 -12
  468. package/src/tests/utilities/structures.ts +65 -2
  469. package/src/threads/automation.ts +18 -8
  470. package/src/threads/definitions.ts +3 -0
  471. package/src/threads/query.ts +28 -15
  472. package/src/utilities/fileSystem/filesystem.ts +6 -4
  473. package/src/utilities/fileSystem/plugin.ts +3 -4
  474. package/src/utilities/fileSystem/template.ts +2 -2
  475. package/src/utilities/schema.ts +141 -0
  476. package/src/utilities/workerRequests.ts +10 -1
  477. package/tsconfig.json +2 -1
  478. package/builder/assets/index.0b010a07.js +0 -1023
  479. package/builder/assets/index.fa480d5b.css +0 -6
  480. package/dist/utilities/csvParser.js +0 -152
  481. package/src/utilities/csvParser.ts +0 -161
  482. package/src/utilities/tests/__snapshots__/csvParser.spec.js.snap +0 -15
  483. 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">88.23% </span>
26
+ <span class="strong">88.42% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>90/102</span>
28
+ <span class='fraction'>84/95</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">90.56% </span>
33
+ <span class="strong">86.79% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>48/53</span>
35
+ <span class='fraction'>46/53</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">70.58% </span>
40
+ <span class="strong">84.61% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>12/17</span>
42
+ <span class='fraction'>11/13</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">89.1% </span>
47
+ <span class="strong">89.36% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>90/101</span>
49
+ <span class='fraction'>84/94</span>
50
50
  </div>
51
51
 
52
52
 
@@ -248,28 +248,14 @@
248
248
  <a name='L183'></a><a href='#L183'>183</a>
249
249
  <a name='L184'></a><a href='#L184'>184</a>
250
250
  <a name='L185'></a><a href='#L185'>185</a>
251
- <a name='L186'></a><a href='#L186'>186</a>
252
- <a name='L187'></a><a href='#L187'>187</a>
253
- <a name='L188'></a><a href='#L188'>188</a>
254
- <a name='L189'></a><a href='#L189'>189</a>
255
- <a name='L190'></a><a href='#L190'>190</a>
256
- <a name='L191'></a><a href='#L191'>191</a>
257
- <a name='L192'></a><a href='#L192'>192</a>
258
- <a name='L193'></a><a href='#L193'>193</a>
259
- <a name='L194'></a><a href='#L194'>194</a>
260
- <a name='L195'></a><a href='#L195'>195</a>
261
- <a name='L196'></a><a href='#L196'>196</a>
262
- <a name='L197'></a><a href='#L197'>197</a>
263
- <a name='L198'></a><a href='#L198'>198</a>
264
- <a name='L199'></a><a href='#L199'>199</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">54x</span>
265
- <span class="cline-any cline-yes">54x</span>
266
- <span class="cline-any cline-yes">54x</span>
267
- <span class="cline-any cline-yes">54x</span>
268
- <span class="cline-any cline-yes">54x</span>
269
- <span class="cline-any cline-yes">54x</span>
270
- <span class="cline-any cline-yes">54x</span>
271
- <span class="cline-any cline-yes">54x</span>
272
- <span class="cline-any cline-yes">54x</span>
251
+ <a name='L186'></a><a href='#L186'>186</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">55x</span>
252
+ <span class="cline-any cline-yes">55x</span>
253
+ <span class="cline-any cline-yes">55x</span>
254
+ <span class="cline-any cline-yes">55x</span>
255
+ <span class="cline-any cline-yes">55x</span>
256
+ <span class="cline-any cline-yes">55x</span>
257
+ <span class="cline-any cline-yes">55x</span>
258
+ <span class="cline-any cline-yes">55x</span>
273
259
  <span class="cline-any cline-neutral">&nbsp;</span>
274
260
  <span class="cline-any cline-neutral">&nbsp;</span>
275
261
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -278,14 +264,15 @@
278
264
  <span class="cline-any cline-neutral">&nbsp;</span>
279
265
  <span class="cline-any cline-neutral">&nbsp;</span>
280
266
  <span class="cline-any cline-neutral">&nbsp;</span>
267
+ <span class="cline-any cline-yes">55x</span>
281
268
  <span class="cline-any cline-neutral">&nbsp;</span>
282
- <span class="cline-any cline-yes">54x</span>
269
+ <span class="cline-any cline-yes">55x</span>
283
270
  <span class="cline-any cline-neutral">&nbsp;</span>
284
- <span class="cline-any cline-yes">54x</span>
271
+ <span class="cline-any cline-yes">55x</span>
285
272
  <span class="cline-any cline-yes">1x</span>
286
273
  <span class="cline-any cline-neutral">&nbsp;</span>
287
274
  <span class="cline-any cline-neutral">&nbsp;</span>
288
- <span class="cline-any cline-yes">64x</span>
275
+ <span class="cline-any cline-yes">65x</span>
289
276
  <span class="cline-any cline-yes">24x</span>
290
277
  <span class="cline-any cline-yes">24x</span>
291
278
  <span class="cline-any cline-yes">24x</span>
@@ -374,7 +361,7 @@
374
361
  <span class="cline-any cline-yes">24x</span>
375
362
  <span class="cline-any cline-neutral">&nbsp;</span>
376
363
  <span class="cline-any cline-neutral">&nbsp;</span>
377
- <span class="cline-any cline-yes">54x</span>
364
+ <span class="cline-any cline-yes">55x</span>
378
365
  <span class="cline-any cline-yes">1x</span>
379
366
  <span class="cline-any cline-yes">1x</span>
380
367
  <span class="cline-any cline-yes">1x</span>
@@ -386,15 +373,19 @@
386
373
  <span class="cline-any cline-yes">1x</span>
387
374
  <span class="cline-any cline-neutral">&nbsp;</span>
388
375
  <span class="cline-any cline-neutral">&nbsp;</span>
389
- <span class="cline-any cline-yes">54x</span>
376
+ <span class="cline-any cline-yes">55x</span>
390
377
  <span class="cline-any cline-yes">4x</span>
391
378
  <span class="cline-any cline-yes">4x</span>
392
379
  <span class="cline-any cline-neutral">&nbsp;</span>
393
380
  <span class="cline-any cline-yes">4x</span>
381
+ <span class="cline-any cline-neutral">&nbsp;</span>
394
382
  <span class="cline-any cline-yes">4x</span>
395
383
  <span class="cline-any cline-no">&nbsp;</span>
396
384
  <span class="cline-any cline-neutral">&nbsp;</span>
397
385
  <span class="cline-any cline-neutral">&nbsp;</span>
386
+ <span class="cline-any cline-neutral">&nbsp;</span>
387
+ <span class="cline-any cline-neutral">&nbsp;</span>
388
+ <span class="cline-any cline-neutral">&nbsp;</span>
398
389
  <span class="cline-any cline-yes">4x</span>
399
390
  <span class="cline-any cline-yes">2x</span>
400
391
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -421,38 +412,21 @@
421
412
  <span class="cline-any cline-yes">4x</span>
422
413
  <span class="cline-any cline-neutral">&nbsp;</span>
423
414
  <span class="cline-any cline-neutral">&nbsp;</span>
424
- <span class="cline-any cline-neutral">&nbsp;</span>
425
415
  <span class="cline-any cline-yes">4x</span>
426
- <span class="cline-any cline-yes">8x</span>
427
- <span class="cline-any cline-no">&nbsp;</span>
428
416
  <span class="cline-any cline-neutral">&nbsp;</span>
429
417
  <span class="cline-any cline-yes">4x</span>
418
+ <span class="cline-any cline-yes">2x</span>
419
+ <span class="cline-any cline-yes">2x</span>
420
+ <span class="cline-any cline-yes">2x</span>
421
+ <span class="cline-any cline-yes">2x</span>
422
+ <span class="cline-any cline-yes">2x</span>
430
423
  <span class="cline-any cline-no">&nbsp;</span>
431
424
  <span class="cline-any cline-no">&nbsp;</span>
432
- <span class="cline-any cline-neutral">&nbsp;</span>
433
425
  <span class="cline-any cline-no">&nbsp;</span>
434
426
  <span class="cline-any cline-neutral">&nbsp;</span>
435
- <span class="cline-any cline-neutral">&nbsp;</span>
436
- <span class="cline-any cline-neutral">&nbsp;</span>
437
- <span class="cline-any cline-yes">4x</span>
438
- <span class="cline-any cline-yes">2x</span>
439
- <span class="cline-any cline-yes">2x</span>
440
- <span class="cline-any cline-yes">4x</span>
441
- <span class="cline-any cline-yes">4x</span>
442
427
  <span class="cline-any cline-no">&nbsp;</span>
443
428
  <span class="cline-any cline-neutral">&nbsp;</span>
444
429
  <span class="cline-any cline-neutral">&nbsp;</span>
445
- <span class="cline-any cline-neutral">&nbsp;</span>
446
- <span class="cline-any cline-neutral">&nbsp;</span>
447
- <span class="cline-any cline-neutral">&nbsp;</span>
448
- <span class="cline-any cline-neutral">&nbsp;</span>
449
- <span class="cline-any cline-yes">4x</span>
450
- <span class="cline-any cline-yes">4x</span>
451
- <span class="cline-any cline-yes">4x</span>
452
- <span class="cline-any cline-neutral">&nbsp;</span>
453
- <span class="cline-any cline-yes">4x</span>
454
- <span class="cline-any cline-yes">4x</span>
455
- <span class="cline-any cline-neutral">&nbsp;</span>
456
430
  <span class="cline-any cline-yes">4x</span>
457
431
  <span class="cline-any cline-yes">2x</span>
458
432
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -461,10 +435,9 @@
461
435
  <span class="cline-any cline-neutral">&nbsp;</span>
462
436
  <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import viewTemplate from "./viewBuilder"
463
437
  import { apiFileReturn } from "../../../utilities/fileSystem"
464
- import * as exporters from "./exporters"
438
+ import { csv, json, jsonWithSchema, Format, isFormat } from "./exporters"
465
439
  import { deleteView, getView, getViews, saveView } from "./utils"
466
440
  import { fetchView } from "../row"
467
- import { FieldTypes } from "../../../constants"
468
441
  import { context, events } from "@budibase/backend-core"
469
442
  import { DocumentType } from "../../../db/utils"
470
443
  import sdk from "../../../sdk"
@@ -476,6 +449,7 @@ import {
476
449
  TableSchema,
477
450
  View,
478
451
  } from "@budibase/types"
452
+ import { cleanExportRows } from "../row/utils"
479
453
  &nbsp;
480
454
  const { cloneDeep, isEqual } = require("lodash")
481
455
  &nbsp;
@@ -588,9 +562,13 @@ export async function exportView(ctx: BBContext) {
588
562
  const viewName = decodeURIComponent(ctx.query.view as string)
589
563
  const view = await getView(viewName)
590
564
  &nbsp;
591
- const format = ctx.query.format as string
592
- <span class="missing-if-branch" title="if path not taken" >I</span>if (!format || !Object.values(exporters.ExportFormats).includes(format)) {
593
- <span class="cstat-no" title="statement not covered" > ctx.throw(400, "Format must be specified, either csv or json")</span>
565
+ const format = ctx.query.format as unknown
566
+ &nbsp;
567
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (!isFormat(format)) {
568
+ <span class="cstat-no" title="statement not covered" > ctx.throw(</span>
569
+ 400,
570
+ "Format must be specified, either csv, json or jsonWithSchema"
571
+ )
594
572
  }
595
573
  &nbsp;
596
574
  if (view) {
@@ -619,37 +597,20 @@ export async function exportView(ctx: BBContext) {
619
597
  schema = table.schema
620
598
  }
621
599
  &nbsp;
622
- // remove any relationships
623
- const relationships = Object.entries(schema)
624
- .filter(entry =&gt; entry[1].type === FieldTypes.LINK)
625
- .map(<span class="fstat-no" title="function not covered" >entry =&gt; <span class="cstat-no" title="statement not covered" >e</span>ntry[0])</span>
626
- // iterate relationship columns and remove from and row and schema
627
- relationships.forEach(<span class="fstat-no" title="function not covered" >column =&gt; {</span>
628
- <span class="cstat-no" title="statement not covered" > rows.forEach(<span class="fstat-no" title="function not covered" >row =&gt; {</span></span>
629
- <span class="cstat-no" title="statement not covered" > delete row[column]</span>
630
- })
631
- <span class="cstat-no" title="statement not covered" > delete schema[column]</span>
632
- })
600
+ let exportRows = cleanExportRows(rows, schema, format, [])
633
601
  &nbsp;
634
- // make sure no "undefined" entries appear in the CSV
635
- if (format === exporters.ExportFormats.CSV) {
636
- const schemaKeys = Object.keys(schema)
637
- for (let key of schemaKeys) {
638
- for (let row of rows) {
639
- <span class="missing-if-branch" title="if path not taken" >I</span>if (row[key] == null) {
640
- <span class="cstat-no" title="statement not covered" > row[key] = ""</span>
641
- }
642
- }
643
- }
602
+ if (format === Format.CSV) {
603
+ ctx.attachment(`${viewName}.csv`)
604
+ ctx.body = apiFileReturn(csv(Object.keys(schema), exportRows))
605
+ } else if (format === Format.JSON) {
606
+ ctx.attachment(`${viewName}.json`)
607
+ ctx.body = apiFileReturn(json(exportRows))
608
+ } 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>
609
+ <span class="cstat-no" title="statement not covered" > ctx.attachment(`${viewName}.json`)</span>
610
+ <span class="cstat-no" title="statement not covered" > ctx.body = apiFileReturn(jsonWithSchema(schema, exportRows))</span>
611
+ } else {
612
+ <span class="cstat-no" title="statement not covered" > throw "Format not recognised"</span>
644
613
  }
645
- &nbsp;
646
- // Export part
647
- let headers = Object.keys(schema)
648
- const exporter = format === "csv" ? exporters.csv : exporters.json
649
- const filename = `${viewName}.${format}`
650
- // send down the file
651
- ctx.attachment(filename)
652
- ctx.body = apiFileReturn(exporter(headers, rows))
653
614
  &nbsp;
654
615
  if (viewName.startsWith(DocumentType.TABLE)) {
655
616
  await events.table.exported(table, format as TableExportFormat)
@@ -664,7 +625,7 @@ export async function exportView(ctx: BBContext) {
664
625
  <div class='footer quiet pad2 space-top1 center small'>
665
626
  Code coverage generated by
666
627
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
667
- at Wed Jan 11 2023 09:50:52 GMT+0000 (Coordinated Universal Time)
628
+ at Wed Feb 01 2023 18:03:38 GMT+0000 (Coordinated Universal Time)
668
629
  </div>
669
630
  <script src="../../../../prettify.js"></script>
670
631
  <script>
@@ -234,10 +234,10 @@
234
234
  <span class="cline-any cline-neutral">&nbsp;</span>
235
235
  <span class="cline-any cline-neutral">&nbsp;</span>
236
236
  <span class="cline-any cline-neutral">&nbsp;</span>
237
- <span class="cline-any cline-yes">55x</span>
238
- <span class="cline-any cline-yes">55x</span>
239
- <span class="cline-any cline-yes">55x</span>
240
- <span class="cline-any cline-yes">55x</span>
237
+ <span class="cline-any cline-yes">56x</span>
238
+ <span class="cline-any cline-yes">56x</span>
239
+ <span class="cline-any cline-yes">56x</span>
240
+ <span class="cline-any cline-yes">56x</span>
241
241
  <span class="cline-any cline-neutral">&nbsp;</span>
242
242
  <span class="cline-any cline-neutral">&nbsp;</span>
243
243
  <span class="cline-any cline-yes">4x</span>
@@ -565,7 +565,7 @@ export async function getFromMemoryDoc(db: Database, viewName: string) {
565
565
  <div class='footer quiet pad2 space-top1 center small'>
566
566
  Code coverage generated by
567
567
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
568
- at Wed Jan 11 2023 09:50:52 GMT+0000 (Coordinated Universal Time)
568
+ at Wed Feb 01 2023 18:03:38 GMT+0000 (Coordinated Universal Time)
569
569
  </div>
570
570
  <script src="../../../../prettify.js"></script>
571
571
  <script>
@@ -270,7 +270,7 @@
270
270
  <span class="cline-any cline-neutral">&nbsp;</span>
271
271
  <span class="cline-any cline-neutral">&nbsp;</span>
272
272
  <span class="cline-any cline-neutral">&nbsp;</span>
273
- <span class="cline-any cline-yes">56x</span>
273
+ <span class="cline-any cline-yes">57x</span>
274
274
  <span class="cline-any cline-neutral">&nbsp;</span>
275
275
  <span class="cline-any cline-neutral">&nbsp;</span>
276
276
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -282,7 +282,7 @@
282
282
  <span class="cline-any cline-neutral">&nbsp;</span>
283
283
  <span class="cline-any cline-neutral">&nbsp;</span>
284
284
  <span class="cline-any cline-neutral">&nbsp;</span>
285
- <span class="cline-any cline-yes">56x</span>
285
+ <span class="cline-any cline-yes">57x</span>
286
286
  <span class="cline-any cline-neutral">&nbsp;</span>
287
287
  <span class="cline-any cline-neutral">&nbsp;</span>
288
288
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -297,19 +297,19 @@
297
297
  <span class="cline-any cline-neutral">&nbsp;</span>
298
298
  <span class="cline-any cline-neutral">&nbsp;</span>
299
299
  <span class="cline-any cline-neutral">&nbsp;</span>
300
- <span class="cline-any cline-yes">56x</span>
300
+ <span class="cline-any cline-yes">57x</span>
301
301
  <span class="cline-any cline-neutral">&nbsp;</span>
302
302
  <span class="cline-any cline-neutral">&nbsp;</span>
303
303
  <span class="cline-any cline-neutral">&nbsp;</span>
304
304
  <span class="cline-any cline-neutral">&nbsp;</span>
305
305
  <span class="cline-any cline-neutral">&nbsp;</span>
306
- <span class="cline-any cline-yes">56x</span>
306
+ <span class="cline-any cline-yes">57x</span>
307
307
  <span class="cline-any cline-neutral">&nbsp;</span>
308
308
  <span class="cline-any cline-neutral">&nbsp;</span>
309
309
  <span class="cline-any cline-neutral">&nbsp;</span>
310
310
  <span class="cline-any cline-neutral">&nbsp;</span>
311
311
  <span class="cline-any cline-neutral">&nbsp;</span>
312
- <span class="cline-any cline-yes">56x</span>
312
+ <span class="cline-any cline-yes">57x</span>
313
313
  <span class="cline-any cline-neutral">&nbsp;</span>
314
314
  <span class="cline-any cline-neutral">&nbsp;</span>
315
315
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -661,7 +661,7 @@ export default function ({
661
661
  <div class='footer quiet pad2 space-top1 center small'>
662
662
  Code coverage generated by
663
663
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
664
- at Wed Jan 11 2023 09:50:52 GMT+0000 (Coordinated Universal Time)
664
+ at Wed Feb 01 2023 18:03:38 GMT+0000 (Coordinated Universal Time)
665
665
  </div>
666
666
  <script src="../../../../prettify.js"></script>
667
667
  <script>
@@ -39,7 +39,7 @@
39
39
  <div class='fl pad1y space-right2'>
40
40
  <span class="strong">100% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>11/11</span>
42
+ <span class='fraction'>13/13</span>
43
43
  </div>
44
44
 
45
45
 
@@ -161,22 +161,24 @@
161
161
  <a name='L96'></a><a href='#L96'>96</a>
162
162
  <a name='L97'></a><a href='#L97'>97</a>
163
163
  <a name='L98'></a><a href='#L98'>98</a>
164
- <a name='L99'></a><a href='#L99'>99</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">54x</span>
165
- <span class="cline-any cline-yes">54x</span>
166
- <span class="cline-any cline-yes">54x</span>
164
+ <a name='L99'></a><a href='#L99'>99</a>
165
+ <a name='L100'></a><a href='#L100'>100</a>
166
+ <a name='L101'></a><a href='#L101'>101</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">55x</span>
167
+ <span class="cline-any cline-yes">55x</span>
168
+ <span class="cline-any cline-yes">55x</span>
167
169
  <span class="cline-any cline-neutral">&nbsp;</span>
168
170
  <span class="cline-any cline-neutral">&nbsp;</span>
169
171
  <span class="cline-any cline-neutral">&nbsp;</span>
170
172
  <span class="cline-any cline-neutral">&nbsp;</span>
171
173
  <span class="cline-any cline-neutral">&nbsp;</span>
172
- <span class="cline-any cline-yes">54x</span>
173
- <span class="cline-any cline-yes">54x</span>
174
- <span class="cline-any cline-yes">54x</span>
175
- <span class="cline-any cline-yes">54x</span>
174
+ <span class="cline-any cline-yes">55x</span>
175
+ <span class="cline-any cline-yes">55x</span>
176
+ <span class="cline-any cline-yes">55x</span>
177
+ <span class="cline-any cline-yes">55x</span>
176
178
  <span class="cline-any cline-neutral">&nbsp;</span>
177
- <span class="cline-any cline-yes">54x</span>
179
+ <span class="cline-any cline-yes">55x</span>
178
180
  <span class="cline-any cline-neutral">&nbsp;</span>
179
- <span class="cline-any cline-yes">54x</span>
181
+ <span class="cline-any cline-yes">55x</span>
180
182
  <span class="cline-any cline-yes">2x</span>
181
183
  <span class="cline-any cline-yes">2x</span>
182
184
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -186,7 +188,7 @@
186
188
  <span class="cline-any cline-yes">2x</span>
187
189
  <span class="cline-any cline-neutral">&nbsp;</span>
188
190
  <span class="cline-any cline-neutral">&nbsp;</span>
189
- <span class="cline-any cline-yes">62x</span>
191
+ <span class="cline-any cline-yes">63x</span>
190
192
  <span class="cline-any cline-yes">9x</span>
191
193
  <span class="cline-any cline-yes">9x</span>
192
194
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -194,14 +196,14 @@
194
196
  <span class="cline-any cline-neutral">&nbsp;</span>
195
197
  <span class="cline-any cline-neutral">&nbsp;</span>
196
198
  <span class="cline-any cline-neutral">&nbsp;</span>
197
- <span class="cline-any cline-yes">54x</span>
199
+ <span class="cline-any cline-yes">55x</span>
198
200
  <span class="cline-any cline-yes">1x</span>
199
201
  <span class="cline-any cline-neutral">&nbsp;</span>
200
202
  <span class="cline-any cline-neutral">&nbsp;</span>
201
203
  <span class="cline-any cline-neutral">&nbsp;</span>
202
204
  <span class="cline-any cline-neutral">&nbsp;</span>
203
205
  <span class="cline-any cline-neutral">&nbsp;</span>
204
- <span class="cline-any cline-yes">54x</span>
206
+ <span class="cline-any cline-yes">55x</span>
205
207
  <span class="cline-any cline-yes">1x</span>
206
208
  <span class="cline-any cline-yes">1x</span>
207
209
  <span class="cline-any cline-yes">1x</span>
@@ -226,7 +228,8 @@
226
228
  <span class="cline-any cline-yes">1x</span>
227
229
  <span class="cline-any cline-neutral">&nbsp;</span>
228
230
  <span class="cline-any cline-neutral">&nbsp;</span>
229
- <span class="cline-any cline-yes">54x</span>
231
+ <span class="cline-any cline-neutral">&nbsp;</span>
232
+ <span class="cline-any cline-yes">55x</span>
230
233
  <span class="cline-any cline-yes">1x</span>
231
234
  <span class="cline-any cline-yes">1x</span>
232
235
  <span class="cline-any cline-yes">1x</span>
@@ -259,6 +262,7 @@
259
262
  <span class="cline-any cline-neutral">&nbsp;</span>
260
263
  <span class="cline-any cline-neutral">&nbsp;</span>
261
264
  <span class="cline-any cline-neutral">&nbsp;</span>
265
+ <span class="cline-any cline-neutral">&nbsp;</span>
262
266
  <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import { getWebhookParams } from "../../db/utils"
263
267
  import * as triggers from "../../automations/triggers"
264
268
  import { db as dbCore, context } from "@budibase/backend-core"
@@ -300,62 +304,64 @@ export async function destroy(ctx: BBContext) {
300
304
  }
301
305
  &nbsp;
302
306
  export async function buildSchema(ctx: BBContext) {
303
- await context.updateAppId(ctx.params.instance)
304
- const db = context.getAppDB()
305
- const webhook = (await db.get(ctx.params.id)) as Webhook
306
- webhook.bodySchema = toJsonSchema(ctx.request.body)
307
- // update the automation outputs
308
- if (webhook.action.type === WebhookActionType.AUTOMATION) {
309
- let automation = (await db.get(webhook.action.target)) as Automation
310
- const autoOutputs = automation.definition.trigger.schema.outputs
311
- let properties = webhook.bodySchema.properties
312
- // reset webhook outputs
313
- autoOutputs.properties = {
314
- body: autoOutputs.properties.body,
315
- }
316
- for (let prop of Object.keys(properties)) {
317
- autoOutputs.properties[prop] = {
318
- type: properties[prop].type,
319
- description: AUTOMATION_DESCRIPTION,
307
+ await context.doInAppContext(ctx.params.instance, async () =&gt; {
308
+ const db = context.getAppDB()
309
+ const webhook = (await db.get(ctx.params.id)) as Webhook
310
+ webhook.bodySchema = toJsonSchema(ctx.request.body)
311
+ // update the automation outputs
312
+ if (webhook.action.type === WebhookActionType.AUTOMATION) {
313
+ let automation = (await db.get(webhook.action.target)) as Automation
314
+ const autoOutputs = automation.definition.trigger.schema.outputs
315
+ let properties = webhook.bodySchema.properties
316
+ // reset webhook outputs
317
+ autoOutputs.properties = {
318
+ body: autoOutputs.properties.body,
319
+ }
320
+ for (let prop of Object.keys(properties)) {
321
+ autoOutputs.properties[prop] = {
322
+ type: properties[prop].type,
323
+ description: AUTOMATION_DESCRIPTION,
324
+ }
320
325
  }
326
+ await db.put(automation)
321
327
  }
322
- await db.put(automation)
323
- }
324
- ctx.body = await db.put(webhook)
328
+ ctx.body = await db.put(webhook)
329
+ })
325
330
  }
326
331
  &nbsp;
327
332
  export async function trigger(ctx: BBContext) {
328
333
  const prodAppId = dbCore.getProdAppID(ctx.params.instance)
329
- await context.updateAppId(prodAppId)
330
- try {
331
- const db = context.getAppDB()
332
- const webhook = (await db.get(ctx.params.id)) as Webhook
333
- // validate against the schema
334
- <span class="missing-if-branch" title="if path not taken" >I</span>if (webhook.bodySchema) {
335
- <span class="cstat-no" title="statement not covered" > validate(ctx.request.body, webhook.bodySchema)</span>
336
- }
337
- const target = await db.get(webhook.action.target)
338
- if (webhook.action.type === WebhookActionType.AUTOMATION) {
339
- // trigger with both the pure request and then expand it
340
- // incase the user has produced a schema to bind to
341
- await triggers.externalTrigger(target, {
342
- body: ctx.request.body,
343
- ...ctx.request.body,
344
- appId: prodAppId,
345
- })
346
- }
347
- ctx.status = 200
348
- ctx.body = {
349
- message: "Webhook trigger fired successfully",
350
- }
351
- } catch (err: any) {
352
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (err.status === 404) {</span>
353
- <span class="cstat-no" title="statement not covered" > ctx.status = 200</span>
354
- <span class="cstat-no" title="statement not covered" > ctx.body = {</span>
355
- message: "Application not deployed yet.",
334
+ await context.doInAppContext(prodAppId, async () =&gt; {
335
+ try {
336
+ const db = context.getAppDB()
337
+ const webhook = (await db.get(ctx.params.id)) as Webhook
338
+ // validate against the schema
339
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (webhook.bodySchema) {
340
+ <span class="cstat-no" title="statement not covered" > validate(ctx.request.body, webhook.bodySchema)</span>
341
+ }
342
+ const target = await db.get(webhook.action.target)
343
+ if (webhook.action.type === WebhookActionType.AUTOMATION) {
344
+ // trigger with both the pure request and then expand it
345
+ // incase the user has produced a schema to bind to
346
+ await triggers.externalTrigger(target, {
347
+ body: ctx.request.body,
348
+ ...ctx.request.body,
349
+ appId: prodAppId,
350
+ })
351
+ }
352
+ ctx.status = 200
353
+ ctx.body = {
354
+ message: "Webhook trigger fired successfully",
355
+ }
356
+ } catch (err: any) {
357
+ <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (err.status === 404) {</span>
358
+ <span class="cstat-no" title="statement not covered" > ctx.status = 200</span>
359
+ <span class="cstat-no" title="statement not covered" > ctx.body = {</span>
360
+ message: "Application not deployed yet.",
361
+ }
356
362
  }
357
363
  }
358
- }
364
+ })
359
365
  }
360
366
  &nbsp;</pre></td></tr></table></pre>
361
367
 
@@ -364,7 +370,7 @@ export async function trigger(ctx: BBContext) {
364
370
  <div class='footer quiet pad2 space-top1 center small'>
365
371
  Code coverage generated by
366
372
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
367
- at Wed Jan 11 2023 09:50:52 GMT+0000 (Coordinated Universal Time)
373
+ at Wed Feb 01 2023 18:03:38 GMT+0000 (Coordinated Universal Time)
368
374
  </div>
369
375
  <script src="../../../prettify.js"></script>
370
376
  <script>
@@ -101,7 +101,7 @@
101
101
  <div class='footer quiet pad2 space-top1 center small'>
102
102
  Code coverage generated by
103
103
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
104
- at Wed Jan 11 2023 09:50:52 GMT+0000 (Coordinated Universal Time)
104
+ at Wed Feb 01 2023 18:03:38 GMT+0000 (Coordinated Universal Time)
105
105
  </div>
106
106
  <script src="../../prettify.js"></script>
107
107
  <script>