@budibase/server 2.2.12-alpha.7 → 2.2.12-alpha.70

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 (484) hide show
  1. package/Dockerfile +1 -1
  2. package/__mocks__/node-fetch.ts +2 -0
  3. package/builder/assets/{bb-emblem.4e4717da.svg → bb-emblem.05f7ae7a.svg} +1 -1
  4. package/builder/assets/bg.29e85dd5.png +0 -0
  5. package/builder/assets/bulgaria.bd68393d.png +0 -0
  6. package/builder/assets/covanta.72c46c1e.png +0 -0
  7. package/builder/assets/index.80bd6b61.css +6 -0
  8. package/builder/assets/index.c1b13e6f.js +1798 -0
  9. package/builder/assets/schnellecke.cf1837a8.png +0 -0
  10. package/builder/index.html +3 -3
  11. package/coverage/clover.xml +5113 -4924
  12. package/coverage/coverage-final.json +268 -264
  13. package/coverage/lcov-report/index.html +202 -157
  14. package/coverage/lcov-report/src/api/controllers/analytics.ts.html +6 -6
  15. package/coverage/lcov-report/src/api/controllers/apikeys.ts.html +5 -5
  16. package/coverage/lcov-report/src/api/controllers/application.ts.html +185 -164
  17. package/coverage/lcov-report/src/api/controllers/auth.ts.html +9 -9
  18. package/coverage/lcov-report/src/api/controllers/automation.ts.html +24 -24
  19. package/coverage/lcov-report/src/api/controllers/backup.ts.html +6 -6
  20. package/coverage/lcov-report/src/api/controllers/cloud.ts.html +15 -15
  21. package/coverage/lcov-report/src/api/controllers/component.ts.html +5 -5
  22. package/coverage/lcov-report/src/api/controllers/datasource.ts.html +112 -88
  23. package/coverage/lcov-report/src/api/controllers/deploy/Deployment.ts.html +14 -14
  24. package/coverage/lcov-report/src/api/controllers/deploy/index.html +1 -1
  25. package/coverage/lcov-report/src/api/controllers/deploy/index.ts.html +80 -80
  26. package/coverage/lcov-report/src/api/controllers/dev.ts.html +17 -17
  27. package/coverage/lcov-report/src/api/controllers/index.html +36 -36
  28. package/coverage/lcov-report/src/api/controllers/integration.ts.html +4 -4
  29. package/coverage/lcov-report/src/api/controllers/layout.ts.html +6 -6
  30. package/coverage/lcov-report/src/api/controllers/metadata.ts.html +9 -9
  31. package/coverage/lcov-report/src/api/controllers/migrations.ts.html +4 -4
  32. package/coverage/lcov-report/src/api/controllers/permission.ts.html +13 -13
  33. package/coverage/lcov-report/src/api/controllers/plugin/file.ts.html +2 -2
  34. package/coverage/lcov-report/src/api/controllers/plugin/github.ts.html +4 -4
  35. package/coverage/lcov-report/src/api/controllers/plugin/index.html +19 -19
  36. package/coverage/lcov-report/src/api/controllers/plugin/index.ts.html +29 -29
  37. package/coverage/lcov-report/src/api/controllers/plugin/npm.ts.html +5 -5
  38. package/coverage/lcov-report/src/api/controllers/plugin/uploaders.ts.html +5 -5
  39. package/coverage/lcov-report/src/api/controllers/plugin/url.ts.html +3 -3
  40. package/coverage/lcov-report/src/api/controllers/plugin/utils.ts.html +3 -3
  41. package/coverage/lcov-report/src/api/controllers/public/applications.ts.html +6 -6
  42. package/coverage/lcov-report/src/api/controllers/public/index.html +1 -1
  43. package/coverage/lcov-report/src/api/controllers/public/mapping/applications.ts.html +2 -2
  44. package/coverage/lcov-report/src/api/controllers/public/mapping/index.html +1 -1
  45. package/coverage/lcov-report/src/api/controllers/public/mapping/index.ts.html +7 -7
  46. package/coverage/lcov-report/src/api/controllers/public/mapping/queries.ts.html +2 -2
  47. package/coverage/lcov-report/src/api/controllers/public/mapping/rows.ts.html +2 -2
  48. package/coverage/lcov-report/src/api/controllers/public/mapping/tables.ts.html +2 -2
  49. package/coverage/lcov-report/src/api/controllers/public/mapping/users.ts.html +2 -2
  50. package/coverage/lcov-report/src/api/controllers/public/queries.ts.html +4 -4
  51. package/coverage/lcov-report/src/api/controllers/public/rows.ts.html +5 -5
  52. package/coverage/lcov-report/src/api/controllers/public/tables.ts.html +4 -4
  53. package/coverage/lcov-report/src/api/controllers/public/users.ts.html +6 -6
  54. package/coverage/lcov-report/src/api/controllers/public/utils.ts.html +4 -4
  55. package/coverage/lcov-report/src/api/controllers/query/import/index.html +1 -1
  56. package/coverage/lcov-report/src/api/controllers/query/import/index.ts.html +7 -7
  57. package/coverage/lcov-report/src/api/controllers/query/import/sources/base/index.html +1 -1
  58. package/coverage/lcov-report/src/api/controllers/query/import/sources/base/index.ts.html +3 -3
  59. package/coverage/lcov-report/src/api/controllers/query/import/sources/base/openapi.ts.html +5 -5
  60. package/coverage/lcov-report/src/api/controllers/query/import/sources/curl.ts.html +7 -7
  61. package/coverage/lcov-report/src/api/controllers/query/import/sources/index.html +1 -1
  62. package/coverage/lcov-report/src/api/controllers/query/import/sources/openapi2.ts.html +9 -9
  63. package/coverage/lcov-report/src/api/controllers/query/import/sources/openapi3.ts.html +13 -13
  64. package/coverage/lcov-report/src/api/controllers/query/index.html +7 -7
  65. package/coverage/lcov-report/src/api/controllers/query/index.ts.html +89 -65
  66. package/coverage/lcov-report/src/api/controllers/query/validation.ts.html +9 -9
  67. package/coverage/lcov-report/src/api/controllers/role.ts.html +8 -8
  68. package/coverage/lcov-report/src/api/controllers/routing.ts.html +6 -6
  69. package/coverage/lcov-report/src/api/controllers/row/ExternalRequest.ts.html +36 -18
  70. package/coverage/lcov-report/src/api/controllers/row/external.ts.html +60 -30
  71. package/coverage/lcov-report/src/api/controllers/row/index.html +40 -40
  72. package/coverage/lcov-report/src/api/controllers/row/index.ts.html +34 -34
  73. package/coverage/lcov-report/src/api/controllers/row/internal.ts.html +142 -70
  74. package/coverage/lcov-report/src/api/controllers/row/internalSearch.ts.html +120 -120
  75. package/coverage/lcov-report/src/api/controllers/row/staticFormula.ts.html +22 -22
  76. package/coverage/lcov-report/src/api/controllers/row/utils.ts.html +152 -38
  77. package/coverage/lcov-report/src/api/controllers/screen.ts.html +7 -7
  78. package/coverage/lcov-report/src/api/controllers/script.ts.html +2 -2
  79. package/coverage/lcov-report/src/api/controllers/static/index.html +1 -1
  80. package/coverage/lcov-report/src/api/controllers/static/index.ts.html +39 -42
  81. package/coverage/lcov-report/src/api/controllers/table/bulkFormula.ts.html +52 -52
  82. package/coverage/lcov-report/src/api/controllers/table/external.ts.html +43 -37
  83. package/coverage/lcov-report/src/api/controllers/table/index.html +34 -34
  84. package/coverage/lcov-report/src/api/controllers/table/index.ts.html +155 -68
  85. package/coverage/lcov-report/src/api/controllers/table/internal.ts.html +47 -47
  86. package/coverage/lcov-report/src/api/controllers/table/utils.ts.html +66 -69
  87. package/coverage/lcov-report/src/api/controllers/templates.ts.html +7 -7
  88. package/coverage/lcov-report/src/api/controllers/user.ts.html +99 -75
  89. package/coverage/lcov-report/src/api/controllers/view/exporters.ts.html +62 -17
  90. package/coverage/lcov-report/src/api/controllers/view/index.html +29 -29
  91. package/coverage/lcov-report/src/api/controllers/view/index.ts.html +53 -92
  92. package/coverage/lcov-report/src/api/controllers/view/utils.ts.html +5 -5
  93. package/coverage/lcov-report/src/api/controllers/view/viewBuilder.ts.html +6 -6
  94. package/coverage/lcov-report/src/api/controllers/webhook.ts.html +69 -63
  95. package/coverage/lcov-report/src/api/index.html +1 -1
  96. package/coverage/lcov-report/src/api/index.ts.html +27 -27
  97. package/coverage/lcov-report/src/api/routes/analytics.ts.html +7 -7
  98. package/coverage/lcov-report/src/api/routes/apikeys.ts.html +8 -8
  99. package/coverage/lcov-report/src/api/routes/application.ts.html +10 -10
  100. package/coverage/lcov-report/src/api/routes/auth.ts.html +6 -6
  101. package/coverage/lcov-report/src/api/routes/automation.ts.html +11 -11
  102. package/coverage/lcov-report/src/api/routes/backup.ts.html +8 -8
  103. package/coverage/lcov-report/src/api/routes/cloud.ts.html +8 -8
  104. package/coverage/lcov-report/src/api/routes/component.ts.html +8 -8
  105. package/coverage/lcov-report/src/api/routes/datasource.ts.html +9 -9
  106. package/coverage/lcov-report/src/api/routes/deploy.ts.html +8 -8
  107. package/coverage/lcov-report/src/api/routes/dev.ts.html +13 -13
  108. package/coverage/lcov-report/src/api/routes/index.html +5 -5
  109. package/coverage/lcov-report/src/api/routes/index.ts.html +42 -36
  110. package/coverage/lcov-report/src/api/routes/integration.ts.html +8 -8
  111. package/coverage/lcov-report/src/api/routes/layout.ts.html +8 -8
  112. package/coverage/lcov-report/src/api/routes/metadata.ts.html +9 -9
  113. package/coverage/lcov-report/src/api/routes/migrations.ts.html +7 -7
  114. package/coverage/lcov-report/src/api/routes/permission.ts.html +9 -9
  115. package/coverage/lcov-report/src/api/routes/plugin.ts.html +8 -8
  116. package/coverage/lcov-report/src/api/routes/public/applications.ts.html +14 -14
  117. package/coverage/lcov-report/src/api/routes/public/index.html +1 -1
  118. package/coverage/lcov-report/src/api/routes/public/index.ts.html +52 -52
  119. package/coverage/lcov-report/src/api/routes/public/middleware/index.html +1 -1
  120. package/coverage/lcov-report/src/api/routes/public/middleware/mapper.ts.html +4 -4
  121. package/coverage/lcov-report/src/api/routes/public/queries.ts.html +9 -9
  122. package/coverage/lcov-report/src/api/routes/public/rows.ts.html +12 -12
  123. package/coverage/lcov-report/src/api/routes/public/tables.ts.html +12 -12
  124. package/coverage/lcov-report/src/api/routes/public/tests/index.html +1 -1
  125. package/coverage/lcov-report/src/api/routes/public/tests/utils.ts.html +1 -1
  126. package/coverage/lcov-report/src/api/routes/public/users.ts.html +12 -12
  127. package/coverage/lcov-report/src/api/routes/public/utils/Endpoint.ts.html +19 -19
  128. package/coverage/lcov-report/src/api/routes/public/utils/index.html +1 -1
  129. package/coverage/lcov-report/src/api/routes/query.ts.html +11 -11
  130. package/coverage/lcov-report/src/api/routes/role.ts.html +9 -9
  131. package/coverage/lcov-report/src/api/routes/routing.ts.html +8 -8
  132. package/coverage/lcov-report/src/api/routes/row.ts.html +12 -12
  133. package/coverage/lcov-report/src/api/routes/screen.ts.html +9 -9
  134. package/coverage/lcov-report/src/api/routes/script.ts.html +1 -1
  135. package/coverage/lcov-report/src/api/routes/static.ts.html +14 -14
  136. package/coverage/lcov-report/src/api/routes/table.ts.html +26 -95
  137. package/coverage/lcov-report/src/api/routes/templates.ts.html +8 -8
  138. package/coverage/lcov-report/src/api/routes/tests/utilities/TestFunctions.ts.html +1 -1
  139. package/coverage/lcov-report/src/api/routes/tests/utilities/index.html +1 -1
  140. package/coverage/lcov-report/src/api/routes/tests/utilities/index.ts.html +1 -1
  141. package/coverage/lcov-report/src/api/routes/user.ts.html +9 -9
  142. package/coverage/lcov-report/src/api/routes/utils/index.html +1 -1
  143. package/coverage/lcov-report/src/api/routes/utils/validators.ts.html +43 -43
  144. package/coverage/lcov-report/src/api/routes/view.ts.html +10 -10
  145. package/coverage/lcov-report/src/api/routes/webhook.ts.html +10 -10
  146. package/coverage/lcov-report/src/app.ts.html +13 -7
  147. package/coverage/lcov-report/src/automations/actions.ts.html +27 -27
  148. package/coverage/lcov-report/src/automations/automationUtils.ts.html +59 -59
  149. package/coverage/lcov-report/src/automations/bullboard.ts.html +9 -9
  150. package/coverage/lcov-report/src/automations/index.html +30 -30
  151. package/coverage/lcov-report/src/automations/index.ts.html +10 -10
  152. package/coverage/lcov-report/src/automations/logging/index.html +1 -1
  153. package/coverage/lcov-report/src/automations/logging/index.ts.html +7 -7
  154. package/coverage/lcov-report/src/automations/steps/bash.ts.html +8 -8
  155. package/coverage/lcov-report/src/automations/steps/createRow.ts.html +7 -7
  156. package/coverage/lcov-report/src/automations/steps/delay.ts.html +5 -5
  157. package/coverage/lcov-report/src/automations/steps/deleteRow.ts.html +7 -7
  158. package/coverage/lcov-report/src/automations/steps/discord.ts.html +8 -8
  159. package/coverage/lcov-report/src/automations/steps/executeQuery.ts.html +7 -7
  160. package/coverage/lcov-report/src/automations/steps/executeScript.ts.html +7 -7
  161. package/coverage/lcov-report/src/automations/steps/filter.ts.html +6 -6
  162. package/coverage/lcov-report/src/automations/steps/index.html +15 -15
  163. package/coverage/lcov-report/src/automations/steps/integromat.ts.html +6 -6
  164. package/coverage/lcov-report/src/automations/steps/loop.ts.html +3 -3
  165. package/coverage/lcov-report/src/automations/steps/outgoingWebhook.ts.html +9 -9
  166. package/coverage/lcov-report/src/automations/steps/queryRows.ts.html +38 -38
  167. package/coverage/lcov-report/src/automations/steps/sendSmtpEmail.ts.html +6 -6
  168. package/coverage/lcov-report/src/automations/steps/serverLog.ts.html +7 -7
  169. package/coverage/lcov-report/src/automations/steps/slack.ts.html +6 -6
  170. package/coverage/lcov-report/src/automations/steps/updateRow.ts.html +7 -7
  171. package/coverage/lcov-report/src/automations/steps/utils.ts.html +10 -10
  172. package/coverage/lcov-report/src/automations/steps/zapier.ts.html +6 -6
  173. package/coverage/lcov-report/src/automations/tests/utilities/index.html +1 -1
  174. package/coverage/lcov-report/src/automations/tests/utilities/index.ts.html +13 -13
  175. package/coverage/lcov-report/src/automations/triggerInfo/app.ts.html +3 -3
  176. package/coverage/lcov-report/src/automations/triggerInfo/cron.ts.html +3 -3
  177. package/coverage/lcov-report/src/automations/triggerInfo/index.html +1 -1
  178. package/coverage/lcov-report/src/automations/triggerInfo/index.ts.html +8 -8
  179. package/coverage/lcov-report/src/automations/triggerInfo/rowDeleted.ts.html +3 -3
  180. package/coverage/lcov-report/src/automations/triggerInfo/rowSaved.ts.html +3 -3
  181. package/coverage/lcov-report/src/automations/triggerInfo/rowUpdated.ts.html +3 -3
  182. package/coverage/lcov-report/src/automations/triggerInfo/webhook.ts.html +3 -3
  183. package/coverage/lcov-report/src/automations/triggers.ts.html +52 -37
  184. package/coverage/lcov-report/src/automations/utils.ts.html +52 -52
  185. package/coverage/lcov-report/src/constants/index.html +1 -1
  186. package/coverage/lcov-report/src/constants/index.ts.html +2 -2
  187. package/coverage/lcov-report/src/constants/layouts.ts.html +4 -4
  188. package/coverage/lcov-report/src/constants/screens.ts.html +3 -3
  189. package/coverage/lcov-report/src/db/defaultData/datasource_bb_default.ts.html +22 -22
  190. package/coverage/lcov-report/src/db/defaultData/employeeImport.ts.html +2 -2
  191. package/coverage/lcov-report/src/db/defaultData/expensesImport.ts.html +2 -2
  192. package/coverage/lcov-report/src/db/defaultData/index.html +1 -1
  193. package/coverage/lcov-report/src/db/defaultData/inventoryImport.ts.html +2 -2
  194. package/coverage/lcov-report/src/db/defaultData/jobsImport.ts.html +2 -2
  195. package/coverage/lcov-report/src/db/dynamoClient.ts.html +15 -15
  196. package/coverage/lcov-report/src/db/inMemoryView.ts.html +4 -4
  197. package/coverage/lcov-report/src/db/index.html +1 -1
  198. package/coverage/lcov-report/src/db/index.ts.html +9 -9
  199. package/coverage/lcov-report/src/db/linkedRows/LinkController.ts.html +18 -18
  200. package/coverage/lcov-report/src/db/linkedRows/LinkDocument.ts.html +4 -4
  201. package/coverage/lcov-report/src/db/linkedRows/index.html +1 -1
  202. package/coverage/lcov-report/src/db/linkedRows/index.ts.html +27 -27
  203. package/coverage/lcov-report/src/db/linkedRows/linkUtils.ts.html +13 -13
  204. package/coverage/lcov-report/src/db/newid.ts.html +4 -4
  205. package/coverage/lcov-report/src/db/utils.ts.html +40 -40
  206. package/coverage/lcov-report/src/definitions/automations.ts.html +6 -3
  207. package/coverage/lcov-report/src/definitions/index.html +5 -20
  208. package/coverage/lcov-report/src/environment.ts.html +10 -10
  209. package/coverage/lcov-report/src/events/AutomationEmitter.ts.html +8 -8
  210. package/coverage/lcov-report/src/events/BudibaseEmitter.ts.html +5 -5
  211. package/coverage/lcov-report/src/events/index.html +1 -1
  212. package/coverage/lcov-report/src/events/index.ts.html +4 -4
  213. package/coverage/lcov-report/src/events/utils.ts.html +1 -1
  214. package/coverage/lcov-report/src/index.html +13 -13
  215. package/coverage/lcov-report/src/index.ts.html +5 -5
  216. package/coverage/lcov-report/src/integrations/airtable.ts.html +5 -5
  217. package/coverage/lcov-report/src/integrations/arangodb.ts.html +5 -5
  218. package/coverage/lcov-report/src/integrations/base/index.html +11 -11
  219. package/coverage/lcov-report/src/integrations/base/query.ts.html +14 -8
  220. package/coverage/lcov-report/src/integrations/base/sql.ts.html +12 -12
  221. package/coverage/lcov-report/src/integrations/base/sqlTable.ts.html +8 -8
  222. package/coverage/lcov-report/src/integrations/base/utils.ts.html +5 -5
  223. package/coverage/lcov-report/src/integrations/couchdb.ts.html +110 -32
  224. package/coverage/lcov-report/src/integrations/dynamodb.ts.html +9 -9
  225. package/coverage/lcov-report/src/integrations/elasticsearch.ts.html +26 -14
  226. package/coverage/lcov-report/src/integrations/firebase.ts.html +5 -5
  227. package/coverage/lcov-report/src/integrations/googlesheets.ts.html +11 -11
  228. package/coverage/lcov-report/src/integrations/index.html +47 -47
  229. package/coverage/lcov-report/src/integrations/index.ts.html +49 -49
  230. package/coverage/lcov-report/src/integrations/microsoftSqlServer.ts.html +8 -8
  231. package/coverage/lcov-report/src/integrations/mongodb.ts.html +417 -285
  232. package/coverage/lcov-report/src/integrations/mysql.ts.html +11 -11
  233. package/coverage/lcov-report/src/integrations/oracle.ts.html +13 -13
  234. package/coverage/lcov-report/src/integrations/postgres.ts.html +10 -10
  235. package/coverage/lcov-report/src/integrations/queries/index.html +19 -19
  236. package/coverage/lcov-report/src/integrations/queries/sql.ts.html +15 -150
  237. package/coverage/lcov-report/src/integrations/redis.ts.html +5 -5
  238. package/coverage/lcov-report/src/integrations/rest.ts.html +36 -45
  239. package/coverage/lcov-report/src/integrations/s3.ts.html +6 -6
  240. package/coverage/lcov-report/src/integrations/snowflake.ts.html +5 -5
  241. package/coverage/lcov-report/src/integrations/tests/TestConfiguration.js.html +1 -1
  242. package/coverage/lcov-report/src/integrations/tests/index.html +1 -1
  243. package/coverage/lcov-report/src/integrations/utils.ts.html +18 -18
  244. package/coverage/lcov-report/src/middleware/appInfo.ts.html +5 -5
  245. package/coverage/lcov-report/src/middleware/authorized.ts.html +27 -27
  246. package/coverage/lcov-report/src/middleware/builder.ts.html +17 -17
  247. package/coverage/lcov-report/src/middleware/currentapp.ts.html +45 -42
  248. package/coverage/lcov-report/src/middleware/index.html +1 -1
  249. package/coverage/lcov-report/src/middleware/joi-validator.ts.html +1 -1
  250. package/coverage/lcov-report/src/middleware/publicApi.ts.html +4 -4
  251. package/coverage/lcov-report/src/middleware/resourceId.ts.html +21 -21
  252. package/coverage/lcov-report/src/middleware/selfhost.ts.html +1 -1
  253. package/coverage/lcov-report/src/middleware/utils.ts.html +4 -4
  254. package/coverage/lcov-report/src/migrations/functions/appUrls.ts.html +4 -4
  255. package/coverage/lcov-report/src/migrations/functions/backfill/app/automations.ts.html +5 -5
  256. package/coverage/lcov-report/src/migrations/functions/backfill/app/datasources.ts.html +5 -5
  257. package/coverage/lcov-report/src/migrations/functions/backfill/app/index.html +1 -1
  258. package/coverage/lcov-report/src/migrations/functions/backfill/app/layouts.ts.html +5 -5
  259. package/coverage/lcov-report/src/migrations/functions/backfill/app/queries.ts.html +7 -7
  260. package/coverage/lcov-report/src/migrations/functions/backfill/app/roles.ts.html +5 -5
  261. package/coverage/lcov-report/src/migrations/functions/backfill/app/screens.ts.html +5 -5
  262. package/coverage/lcov-report/src/migrations/functions/backfill/app/tables.ts.html +4 -4
  263. package/coverage/lcov-report/src/migrations/functions/backfill/app.ts.html +19 -19
  264. package/coverage/lcov-report/src/migrations/functions/backfill/global/configs.ts.html +6 -6
  265. package/coverage/lcov-report/src/migrations/functions/backfill/global/index.html +1 -1
  266. package/coverage/lcov-report/src/migrations/functions/backfill/global/quotas.ts.html +7 -7
  267. package/coverage/lcov-report/src/migrations/functions/backfill/global/users.ts.html +6 -6
  268. package/coverage/lcov-report/src/migrations/functions/backfill/global.ts.html +15 -15
  269. package/coverage/lcov-report/src/migrations/functions/backfill/index.html +1 -1
  270. package/coverage/lcov-report/src/migrations/functions/backfill/index.ts.html +5 -5
  271. package/coverage/lcov-report/src/migrations/functions/backfill/installation.ts.html +8 -8
  272. package/coverage/lcov-report/src/migrations/functions/index.html +1 -1
  273. package/coverage/lcov-report/src/migrations/functions/syncQuotas.ts.html +6 -6
  274. package/coverage/lcov-report/src/migrations/functions/tableSettings.ts.html +6 -6
  275. package/coverage/lcov-report/src/migrations/functions/usageQuotas/index.html +1 -1
  276. package/coverage/lcov-report/src/migrations/functions/usageQuotas/index.ts.html +2 -2
  277. package/coverage/lcov-report/src/migrations/functions/usageQuotas/syncApps.ts.html +5 -5
  278. package/coverage/lcov-report/src/migrations/functions/usageQuotas/syncPlugins.ts.html +4 -4
  279. package/coverage/lcov-report/src/migrations/functions/usageQuotas/syncRows.ts.html +6 -6
  280. package/coverage/lcov-report/src/migrations/functions/userEmailViewCasing.ts.html +3 -3
  281. package/coverage/lcov-report/src/migrations/index.html +1 -1
  282. package/coverage/lcov-report/src/migrations/index.ts.html +32 -32
  283. package/coverage/lcov-report/src/migrations/tests/helpers.ts.html +1 -1
  284. package/coverage/lcov-report/src/migrations/tests/index.html +1 -1
  285. package/coverage/lcov-report/src/migrations/tests/structures.ts.html +1 -1
  286. package/coverage/lcov-report/src/sdk/app/applications/index.html +1 -1
  287. package/coverage/lcov-report/src/sdk/app/applications/index.ts.html +4 -4
  288. package/coverage/lcov-report/src/sdk/app/applications/sync.ts.html +22 -22
  289. package/coverage/lcov-report/src/sdk/app/applications/utils.ts.html +9 -9
  290. package/coverage/lcov-report/src/sdk/app/automations/index.html +1 -1
  291. package/coverage/lcov-report/src/sdk/app/automations/index.ts.html +3 -3
  292. package/coverage/lcov-report/src/sdk/app/automations/webhook.ts.html +3 -3
  293. package/coverage/lcov-report/src/sdk/app/backups/constants.ts.html +3 -3
  294. package/coverage/lcov-report/src/sdk/app/backups/exports.ts.html +17 -17
  295. package/coverage/lcov-report/src/sdk/app/backups/imports.ts.html +18 -18
  296. package/coverage/lcov-report/src/sdk/app/backups/index.html +1 -1
  297. package/coverage/lcov-report/src/sdk/app/backups/index.ts.html +5 -5
  298. package/coverage/lcov-report/src/sdk/app/backups/statistics.ts.html +7 -7
  299. package/coverage/lcov-report/src/sdk/app/datasources/datasources.ts.html +493 -0
  300. package/coverage/lcov-report/src/sdk/app/datasources/index.html +131 -0
  301. package/coverage/lcov-report/src/sdk/app/datasources/index.ts.html +100 -0
  302. package/coverage/lcov-report/src/sdk/app/queries/index.html +131 -0
  303. package/coverage/lcov-report/src/sdk/app/queries/index.ts.html +100 -0
  304. package/coverage/lcov-report/src/{definitions/datasource.ts.html → sdk/app/queries/queries.ts.html} +82 -82
  305. package/coverage/lcov-report/src/sdk/app/rows/attachments.ts.html +6 -6
  306. package/coverage/lcov-report/src/sdk/app/rows/index.html +1 -1
  307. package/coverage/lcov-report/src/sdk/app/rows/index.ts.html +4 -4
  308. package/coverage/lcov-report/src/sdk/app/rows/rows.ts.html +4 -4
  309. package/coverage/lcov-report/src/sdk/app/tables/index.html +11 -11
  310. package/coverage/lcov-report/src/sdk/app/tables/index.ts.html +27 -18
  311. package/coverage/lcov-report/src/sdk/index.html +5 -5
  312. package/coverage/lcov-report/src/sdk/index.ts.html +23 -11
  313. package/coverage/lcov-report/src/sdk/users/index.html +1 -1
  314. package/coverage/lcov-report/src/sdk/users/index.ts.html +3 -3
  315. package/coverage/lcov-report/src/sdk/users/utils.ts.html +28 -28
  316. package/coverage/lcov-report/src/sdk/utils/index.html +116 -0
  317. package/coverage/lcov-report/src/sdk/utils/index.ts.html +133 -0
  318. package/coverage/lcov-report/src/startup.ts.html +34 -34
  319. package/coverage/lcov-report/src/tests/utilities/TestConfiguration.ts.html +134 -125
  320. package/coverage/lcov-report/src/tests/utilities/controllers.ts.html +15 -15
  321. package/coverage/lcov-report/src/tests/utilities/index.html +21 -21
  322. package/coverage/lcov-report/src/tests/utilities/index.ts.html +1 -1
  323. package/coverage/lcov-report/src/tests/utilities/structures.ts.html +213 -24
  324. package/coverage/lcov-report/src/threads/automation.ts.html +216 -186
  325. package/coverage/lcov-report/src/threads/index.html +30 -30
  326. package/coverage/lcov-report/src/threads/index.ts.html +24 -24
  327. package/coverage/lcov-report/src/threads/query.ts.html +68 -29
  328. package/coverage/lcov-report/src/threads/utils.ts.html +9 -9
  329. package/coverage/lcov-report/src/utilities/budibaseDir.ts.html +2 -2
  330. package/coverage/lcov-report/src/utilities/centralPath.ts.html +11 -11
  331. package/coverage/lcov-report/src/utilities/fileSystem/app.ts.html +9 -9
  332. package/coverage/lcov-report/src/utilities/fileSystem/clientLibrary.ts.html +1 -1
  333. package/coverage/lcov-report/src/utilities/fileSystem/filesystem.ts.html +27 -21
  334. package/coverage/lcov-report/src/utilities/fileSystem/index.html +21 -21
  335. package/coverage/lcov-report/src/utilities/fileSystem/index.ts.html +1 -1
  336. package/coverage/lcov-report/src/utilities/fileSystem/plugin.ts.html +5 -8
  337. package/coverage/lcov-report/src/utilities/fileSystem/processor.ts.html +1 -1
  338. package/coverage/lcov-report/src/utilities/fileSystem/template.ts.html +3 -3
  339. package/coverage/lcov-report/src/utilities/global.ts.html +40 -40
  340. package/coverage/lcov-report/src/utilities/index.html +39 -39
  341. package/coverage/lcov-report/src/utilities/index.ts.html +12 -12
  342. package/coverage/lcov-report/src/utilities/redis.ts.html +12 -12
  343. package/coverage/lcov-report/src/utilities/routing/index.html +1 -1
  344. package/coverage/lcov-report/src/utilities/routing/index.ts.html +4 -4
  345. package/coverage/lcov-report/src/utilities/rowProcessor/index.html +1 -1
  346. package/coverage/lcov-report/src/utilities/rowProcessor/index.ts.html +50 -50
  347. package/coverage/lcov-report/src/utilities/rowProcessor/map.ts.html +3 -3
  348. package/coverage/lcov-report/src/utilities/rowProcessor/utils.ts.html +14 -14
  349. package/coverage/lcov-report/src/utilities/{csvParser.ts.html → schema.ts.html} +173 -233
  350. package/coverage/lcov-report/src/utilities/scriptRunner.ts.html +5 -5
  351. package/coverage/lcov-report/src/utilities/security.ts.html +4 -4
  352. package/coverage/lcov-report/src/utilities/usageQuota/index.html +1 -1
  353. package/coverage/lcov-report/src/utilities/usageQuota/rows.ts.html +4 -4
  354. package/coverage/lcov-report/src/utilities/usageQuota/usageQuoteReset.ts.html +1 -1
  355. package/coverage/lcov-report/src/utilities/users.ts.html +4 -4
  356. package/coverage/lcov-report/src/utilities/workerRequests.ts.html +38 -11
  357. package/coverage/lcov-report/src/watch.ts.html +7 -7
  358. package/coverage/lcov-report/src/websocket.ts.html +3 -3
  359. package/coverage/lcov.info +7892 -7532
  360. package/dist/api/controllers/application.js +73 -74
  361. package/dist/api/controllers/cloud.js +1 -1
  362. package/dist/api/controllers/datasource.js +24 -15
  363. package/dist/api/controllers/query/index.js +18 -11
  364. package/dist/api/controllers/row/ExternalRequest.js +12 -3
  365. package/dist/api/controllers/row/external.js +20 -13
  366. package/dist/api/controllers/row/internal.js +40 -15
  367. package/dist/api/controllers/row/utils.js +35 -3
  368. package/dist/api/controllers/static/index.js +38 -38
  369. package/dist/api/controllers/static/templates/BudibaseApp.svelte +0 -1
  370. package/dist/api/controllers/table/external.js +16 -35
  371. package/dist/api/controllers/table/index.js +44 -15
  372. package/dist/api/controllers/table/internal.js +4 -4
  373. package/dist/api/controllers/table/utils.js +9 -9
  374. package/dist/api/controllers/user.js +14 -6
  375. package/dist/api/controllers/view/exporters.js +22 -6
  376. package/dist/api/controllers/view/index.js +20 -56
  377. package/dist/api/controllers/webhook.js +45 -43
  378. package/dist/api/routes/index.js +2 -0
  379. package/dist/api/routes/row.js +2 -2
  380. package/dist/api/routes/table.js +6 -37
  381. package/dist/api/routes/utils/validators.js +1 -1
  382. package/dist/app.js +1 -0
  383. package/dist/automations/triggers.js +1 -0
  384. package/dist/definitions/datasource.js +0 -6
  385. package/dist/index.js +2 -2
  386. package/dist/integrations/base/query.js +7 -2
  387. package/dist/integrations/base/sqlTable.js +14 -14
  388. package/dist/integrations/couchdb.js +34 -8
  389. package/dist/integrations/dynamodb.js +8 -5
  390. package/dist/integrations/elasticsearch.js +7 -3
  391. package/dist/integrations/index.js +5 -5
  392. package/dist/integrations/mongodb.js +311 -271
  393. package/dist/integrations/mysql.js +2 -2
  394. package/dist/integrations/queries/sql.js +73 -100
  395. package/dist/integrations/rest.js +16 -18
  396. package/dist/middleware/currentapp.js +4 -2
  397. package/dist/package.json +7 -7
  398. package/dist/sdk/app/datasources/datasources.js +147 -0
  399. package/dist/sdk/app/datasources/index.js +27 -0
  400. package/dist/sdk/app/queries/index.js +27 -0
  401. package/dist/sdk/app/queries/queries.js +60 -0
  402. package/dist/sdk/app/tables/index.js +6 -2
  403. package/dist/sdk/index.js +4 -0
  404. package/dist/sdk/utils/index.js +29 -0
  405. package/dist/threads/automation.js +18 -7
  406. package/dist/threads/query.js +27 -13
  407. package/dist/tsconfig.build.tsbuildinfo +1 -1
  408. package/dist/utilities/fileSystem/filesystem.js +36 -34
  409. package/dist/utilities/fileSystem/plugin.js +17 -14
  410. package/dist/utilities/fileSystem/template.js +7 -4
  411. package/dist/utilities/schema.js +108 -0
  412. package/dist/utilities/workerRequests.js +2 -0
  413. package/package.json +8 -8
  414. package/scripts/dev/manage.js +3 -2
  415. package/src/api/controllers/application.ts +81 -74
  416. package/src/api/controllers/cloud.ts +1 -1
  417. package/src/api/controllers/datasource.ts +33 -25
  418. package/src/api/controllers/query/index.ts +47 -39
  419. package/src/api/controllers/row/ExternalRequest.ts +8 -2
  420. package/src/api/controllers/row/external.ts +24 -14
  421. package/src/api/controllers/row/internal.ts +42 -18
  422. package/src/api/controllers/row/utils.ts +40 -2
  423. package/src/api/controllers/static/index.ts +17 -18
  424. package/src/api/controllers/static/templates/BudibaseApp.svelte +0 -1
  425. package/src/api/controllers/table/external.ts +18 -16
  426. package/src/api/controllers/table/index.ts +46 -17
  427. package/src/api/controllers/table/internal.ts +4 -4
  428. package/src/api/controllers/table/utils.ts +12 -13
  429. package/src/api/controllers/user.ts +21 -13
  430. package/src/api/controllers/view/exporters.ts +20 -5
  431. package/src/api/controllers/view/index.ts +22 -35
  432. package/src/api/controllers/webhook.ts +48 -46
  433. package/src/api/routes/index.ts +2 -0
  434. package/src/api/routes/row.ts +1 -1
  435. package/src/api/routes/table.ts +15 -38
  436. package/src/api/routes/tests/datasource.spec.ts +35 -1
  437. package/src/api/routes/tests/misc.spec.js +4 -10
  438. package/src/api/routes/tests/table.spec.js +8 -30
  439. package/src/api/routes/tests/user.spec.js +20 -1
  440. package/src/api/routes/utils/validators.ts +1 -1
  441. package/src/app.ts +3 -1
  442. package/src/automations/tests/loop.spec.ts +45 -0
  443. package/src/automations/triggers.ts +6 -1
  444. package/src/definitions/automations.ts +1 -0
  445. package/src/definitions/datasource.ts +0 -41
  446. package/src/index.ts +1 -1
  447. package/src/integrations/base/query.ts +3 -1
  448. package/src/integrations/base/sqlTable.ts +1 -1
  449. package/src/integrations/couchdb.ts +40 -14
  450. package/src/integrations/dynamodb.ts +3 -3
  451. package/src/integrations/elasticsearch.ts +8 -4
  452. package/src/integrations/index.ts +4 -4
  453. package/src/integrations/mongodb.ts +315 -271
  454. package/src/integrations/mysql.ts +1 -1
  455. package/src/integrations/queries/sql.ts +5 -50
  456. package/src/integrations/rest.ts +16 -19
  457. package/src/integrations/tests/couchdb.spec.ts +33 -21
  458. package/src/integrations/tests/rest.spec.ts +4 -2
  459. package/src/middleware/currentapp.ts +3 -2
  460. package/src/migrations/functions/usageQuotas/tests/syncRows.spec.ts +10 -6
  461. package/src/sdk/app/datasources/datasources.ts +136 -0
  462. package/src/sdk/app/datasources/index.ts +5 -0
  463. package/src/sdk/app/queries/index.ts +5 -0
  464. package/src/sdk/app/queries/queries.ts +50 -0
  465. package/src/sdk/app/tables/index.ts +6 -3
  466. package/src/sdk/index.ts +4 -0
  467. package/src/sdk/utils/index.ts +16 -0
  468. package/src/tests/utilities/TestConfiguration.ts +15 -12
  469. package/src/tests/utilities/structures.ts +65 -2
  470. package/src/threads/automation.ts +18 -8
  471. package/src/threads/definitions.ts +3 -0
  472. package/src/threads/query.ts +28 -15
  473. package/src/utilities/fileSystem/filesystem.ts +6 -4
  474. package/src/utilities/fileSystem/plugin.ts +3 -4
  475. package/src/utilities/fileSystem/template.ts +2 -2
  476. package/src/utilities/schema.ts +141 -0
  477. package/src/utilities/workerRequests.ts +10 -1
  478. package/tsconfig.json +2 -1
  479. package/builder/assets/index.e386f2c1.js +0 -1023
  480. package/builder/assets/index.fa480d5b.css +0 -6
  481. package/dist/utilities/csvParser.js +0 -152
  482. package/src/utilities/csvParser.ts +0 -161
  483. package/src/utilities/tests/__snapshots__/csvParser.spec.js.snap +0 -15
  484. 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">82.6% </span>
26
+ <span class="strong">88.88% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>76/92</span>
28
+ <span class='fraction'>88/99</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">40% </span>
33
+ <span class="strong">66.66% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>8/20</span>
35
+ <span class='fraction'>14/21</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">85% </span>
40
+ <span class="strong">95.23% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>17/20</span>
42
+ <span class='fraction'>20/21</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">82.41% </span>
47
+ <span class="strong">88.77% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>75/91</span>
49
+ <span class='fraction'>87/98</span>
50
50
  </div>
51
51
 
52
52
 
@@ -238,25 +238,35 @@
238
238
  <a name='L173'></a><a href='#L173'>173</a>
239
239
  <a name='L174'></a><a href='#L174'>174</a>
240
240
  <a name='L175'></a><a href='#L175'>175</a>
241
- <a name='L176'></a><a href='#L176'>176</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">56x</span>
241
+ <a name='L176'></a><a href='#L176'>176</a>
242
+ <a name='L177'></a><a href='#L177'>177</a>
243
+ <a name='L178'></a><a href='#L178'>178</a>
244
+ <a name='L179'></a><a href='#L179'>179</a>
245
+ <a name='L180'></a><a href='#L180'>180</a>
246
+ <a name='L181'></a><a href='#L181'>181</a>
247
+ <a name='L182'></a><a href='#L182'>182</a>
248
+ <a name='L183'></a><a href='#L183'>183</a>
249
+ <a name='L184'></a><a href='#L184'>184</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">57x</span>
242
250
  <span class="cline-any cline-neutral">&nbsp;</span>
243
- <span class="cline-any cline-yes">56x</span>
244
- <span class="cline-any cline-yes">56x</span>
251
+ <span class="cline-any cline-yes">57x</span>
252
+ <span class="cline-any cline-yes">57x</span>
245
253
  <span class="cline-any cline-neutral">&nbsp;</span>
246
254
  <span class="cline-any cline-neutral">&nbsp;</span>
247
255
  <span class="cline-any cline-neutral">&nbsp;</span>
248
256
  <span class="cline-any cline-neutral">&nbsp;</span>
257
+ <span class="cline-any cline-yes">57x</span>
249
258
  <span class="cline-any cline-neutral">&nbsp;</span>
250
- <span class="cline-any cline-yes">56x</span>
259
+ <span class="cline-any cline-yes">57x</span>
251
260
  <span class="cline-any cline-neutral">&nbsp;</span>
252
- <span class="cline-any cline-yes">56x</span>
261
+ <span class="cline-any cline-yes">55x</span>
262
+ <span class="cline-any cline-yes">2x</span>
253
263
  <span class="cline-any cline-neutral">&nbsp;</span>
254
- <span class="cline-any cline-yes">54x</span>
255
- <span class="cline-any cline-yes">1x</span>
264
+ <span class="cline-any cline-yes">2x</span>
256
265
  <span class="cline-any cline-neutral">&nbsp;</span>
257
- <span class="cline-any cline-yes">1x</span>
258
- <span class="cline-any cline-yes">1x</span>
259
- <span class="cline-any cline-yes">1x</span>
266
+ <span class="cline-any cline-yes">2x</span>
267
+ <span class="cline-any cline-neutral">&nbsp;</span>
268
+ <span class="cline-any cline-yes">2x</span>
269
+ <span class="cline-any cline-yes">2x</span>
260
270
  <span class="cline-any cline-neutral">&nbsp;</span>
261
271
  <span class="cline-any cline-no">&nbsp;</span>
262
272
  <span class="cline-any cline-no">&nbsp;</span>
@@ -265,66 +275,72 @@
265
275
  <span class="cline-any cline-no">&nbsp;</span>
266
276
  <span class="cline-any cline-neutral">&nbsp;</span>
267
277
  <span class="cline-any cline-neutral">&nbsp;</span>
268
- <span class="cline-any cline-yes">1x</span>
269
278
  <span class="cline-any cline-neutral">&nbsp;</span>
270
- <span class="cline-any cline-yes">1x</span>
271
- <span class="cline-any cline-yes">1x</span>
272
- <span class="cline-any cline-yes">1x</span>
279
+ <span class="cline-any cline-yes">2x</span>
280
+ <span class="cline-any cline-yes">2x</span>
273
281
  <span class="cline-any cline-neutral">&nbsp;</span>
274
282
  <span class="cline-any cline-neutral">&nbsp;</span>
283
+ <span class="cline-any cline-yes">2x</span>
275
284
  <span class="cline-any cline-neutral">&nbsp;</span>
276
- <span class="cline-any cline-yes">1x</span>
277
- <span class="cline-any cline-yes">1x</span>
285
+ <span class="cline-any cline-yes">2x</span>
286
+ <span class="cline-any cline-yes">2x</span>
287
+ <span class="cline-any cline-yes">2x</span>
278
288
  <span class="cline-any cline-neutral">&nbsp;</span>
279
- <span class="cline-any cline-no">&nbsp;</span>
280
- <span class="cline-any cline-no">&nbsp;</span>
281
- <span class="cline-any cline-no">&nbsp;</span>
282
289
  <span class="cline-any cline-neutral">&nbsp;</span>
283
- <span class="cline-any cline-yes">1x</span>
284
- <span class="cline-any cline-yes">12x</span>
285
- <span class="cline-any cline-yes">12x</span>
286
- <span class="cline-any cline-yes">12x</span>
287
- <span class="cline-any cline-yes">24x</span>
288
- <span class="cline-any cline-no">&nbsp;</span>
289
290
  <span class="cline-any cline-neutral">&nbsp;</span>
290
- <span class="cline-any cline-yes">24x</span>
291
- <span class="cline-any cline-yes">24x</span>
292
- <span class="cline-any cline-yes">24x</span>
291
+ <span class="cline-any cline-yes">2x</span>
292
+ <span class="cline-any cline-yes">1x</span>
293
293
  <span class="cline-any cline-neutral">&nbsp;</span>
294
- <span class="cline-any cline-yes">24x</span>
295
- <span class="cline-any cline-yes">24x</span>
294
+ <span class="cline-any cline-yes">1x</span>
295
+ <span class="cline-any cline-yes">1x</span>
296
+ <span class="cline-any cline-yes">1x</span>
296
297
  <span class="cline-any cline-neutral">&nbsp;</span>
297
- <span class="cline-any cline-yes">23x</span>
298
+ <span class="cline-any cline-yes">2x</span>
299
+ <span class="cline-any cline-yes">14x</span>
300
+ <span class="cline-any cline-yes">14x</span>
301
+ <span class="cline-any cline-yes">14x</span>
302
+ <span class="cline-any cline-yes">14x</span>
303
+ <span class="cline-any cline-yes">28x</span>
298
304
  <span class="cline-any cline-no">&nbsp;</span>
299
305
  <span class="cline-any cline-neutral">&nbsp;</span>
300
- <span class="cline-any cline-yes">23x</span>
306
+ <span class="cline-any cline-yes">28x</span>
307
+ <span class="cline-any cline-yes">28x</span>
308
+ <span class="cline-any cline-yes">28x</span>
301
309
  <span class="cline-any cline-neutral">&nbsp;</span>
310
+ <span class="cline-any cline-yes">28x</span>
311
+ <span class="cline-any cline-yes">28x</span>
302
312
  <span class="cline-any cline-neutral">&nbsp;</span>
313
+ <span class="cline-any cline-yes">26x</span>
314
+ <span class="cline-any cline-yes">25x</span>
303
315
  <span class="cline-any cline-neutral">&nbsp;</span>
316
+ <span class="cline-any cline-yes">1x</span>
304
317
  <span class="cline-any cline-neutral">&nbsp;</span>
305
- <span class="cline-any cline-yes">24x</span>
306
- <span class="cline-any cline-no">&nbsp;</span>
307
318
  <span class="cline-any cline-neutral">&nbsp;</span>
308
- <span class="cline-any cline-yes">24x</span>
309
319
  <span class="cline-any cline-neutral">&nbsp;</span>
310
320
  <span class="cline-any cline-neutral">&nbsp;</span>
321
+ <span class="cline-any cline-yes">3x</span>
322
+ <span class="cline-any cline-yes">1x</span>
323
+ <span class="cline-any cline-yes">1x</span>
311
324
  <span class="cline-any cline-neutral">&nbsp;</span>
312
325
  <span class="cline-any cline-neutral">&nbsp;</span>
313
326
  <span class="cline-any cline-neutral">&nbsp;</span>
327
+ <span class="cline-any cline-yes">2x</span>
328
+ <span class="cline-any cline-yes">2x</span>
314
329
  <span class="cline-any cline-neutral">&nbsp;</span>
330
+ <span class="cline-any cline-yes">2x</span>
315
331
  <span class="cline-any cline-neutral">&nbsp;</span>
316
- <span class="cline-any cline-yes">24x</span>
317
- <span class="cline-any cline-yes">24x</span>
332
+ <span class="cline-any cline-yes">2x</span>
333
+ <span class="cline-any cline-yes">2x</span>
318
334
  <span class="cline-any cline-neutral">&nbsp;</span>
319
335
  <span class="cline-any cline-neutral">&nbsp;</span>
320
336
  <span class="cline-any cline-neutral">&nbsp;</span>
321
337
  <span class="cline-any cline-neutral">&nbsp;</span>
322
- <span class="cline-any cline-yes">1x</span>
338
+ <span class="cline-any cline-yes">2x</span>
323
339
  <span class="cline-any cline-neutral">&nbsp;</span>
324
340
  <span class="cline-any cline-neutral">&nbsp;</span>
325
341
  <span class="cline-any cline-neutral">&nbsp;</span>
326
342
  <span class="cline-any cline-neutral">&nbsp;</span>
327
- <span class="cline-any cline-yes">54x</span>
343
+ <span class="cline-any cline-yes">55x</span>
328
344
  <span class="cline-any cline-yes">2x</span>
329
345
  <span class="cline-any cline-yes">2x</span>
330
346
  <span class="cline-any cline-yes">2x</span>
@@ -343,7 +359,7 @@
343
359
  <span class="cline-any cline-yes">2x</span>
344
360
  <span class="cline-any cline-neutral">&nbsp;</span>
345
361
  <span class="cline-any cline-neutral">&nbsp;</span>
346
- <span class="cline-any cline-yes">54x</span>
362
+ <span class="cline-any cline-yes">55x</span>
347
363
  <span class="cline-any cline-neutral">&nbsp;</span>
348
364
  <span class="cline-any cline-no">&nbsp;</span>
349
365
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -353,7 +369,7 @@
353
369
  <span class="cline-any cline-no">&nbsp;</span>
354
370
  <span class="cline-any cline-neutral">&nbsp;</span>
355
371
  <span class="cline-any cline-neutral">&nbsp;</span>
356
- <span class="cline-any cline-yes">54x</span>
372
+ <span class="cline-any cline-yes">55x</span>
357
373
  <span class="cline-any cline-yes">1x</span>
358
374
  <span class="cline-any cline-yes">1x</span>
359
375
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -365,7 +381,7 @@
365
381
  <span class="cline-any cline-yes">1x</span>
366
382
  <span class="cline-any cline-neutral">&nbsp;</span>
367
383
  <span class="cline-any cline-neutral">&nbsp;</span>
368
- <span class="cline-any cline-yes">54x</span>
384
+ <span class="cline-any cline-yes">55x</span>
369
385
  <span class="cline-any cline-yes">1x</span>
370
386
  <span class="cline-any cline-yes">1x</span>
371
387
  <span class="cline-any cline-yes">1x</span>
@@ -378,11 +394,11 @@
378
394
  <span class="cline-any cline-neutral">&nbsp;</span>
379
395
  <span class="cline-any cline-neutral">&nbsp;</span>
380
396
  <span class="cline-any cline-neutral">&nbsp;</span>
381
- <span class="cline-any cline-yes">54x</span>
397
+ <span class="cline-any cline-yes">55x</span>
382
398
  <span class="cline-any cline-yes">1x</span>
383
399
  <span class="cline-any cline-neutral">&nbsp;</span>
384
400
  <span class="cline-any cline-neutral">&nbsp;</span>
385
- <span class="cline-any cline-yes">54x</span>
401
+ <span class="cline-any cline-yes">55x</span>
386
402
  <span class="cline-any cline-yes">5x</span>
387
403
  <span class="cline-any cline-yes">5x</span>
388
404
  <span class="cline-any cline-yes">5x</span>
@@ -401,7 +417,7 @@
401
417
  <span class="cline-any cline-yes">3x</span>
402
418
  <span class="cline-any cline-neutral">&nbsp;</span>
403
419
  <span class="cline-any cline-neutral">&nbsp;</span>
404
- <span class="cline-any cline-yes">54x</span>
420
+ <span class="cline-any cline-yes">55x</span>
405
421
  <span class="cline-any cline-yes">1x</span>
406
422
  <span class="cline-any cline-yes">1x</span>
407
423
  <span class="cline-any cline-yes">1x</span>
@@ -419,19 +435,21 @@ import { getGlobalUsers, getRawGlobalUser } from "../../utilities/global"
419
435
  import { getFullUser } from "../../utilities/users"
420
436
  import {
421
437
  context,
422
- constants,
423
438
  roles as rolesCore,
424
439
  db as dbCore,
425
440
  } from "@budibase/backend-core"
426
- import { BBContext, User } from "@budibase/types"
441
+ import { BBContext, Ctx, SyncUserRequest, User } from "@budibase/types"
427
442
  import sdk from "../../sdk"
428
443
  &nbsp;
429
- export async function syncUser(ctx: BBContext) {
444
+ export async function syncUser(ctx: Ctx&lt;SyncUserRequest&gt;) {
430
445
  let deleting = false,
431
446
  user: User | any
432
447
  const userId = ctx.params.id
448
+ &nbsp;
449
+ const previousUser = ctx.request.body?.previousUser
450
+ &nbsp;
433
451
  try {
434
- user = await getRawGlobalUser(userId)
452
+ user = (await getRawGlobalUser(userId)) as User
435
453
  } catch (err: any) {
436
454
  <span class="cstat-no" title="statement not covered" > if (err &amp;&amp; err.status === 404) {</span>
437
455
  <span class="cstat-no" title="statement not covered" > user = {}</span>
@@ -440,6 +458,11 @@ export async function syncUser(ctx: BBContext) {
440
458
  <span class="cstat-no" title="statement not covered" > throw err</span>
441
459
  }
442
460
  }
461
+ &nbsp;
462
+ let previousApps = previousUser
463
+ ? Object.keys(previousUser.roles).map(appId =&gt; appId)
464
+ : []
465
+ &nbsp;
443
466
  const roles = deleting ? <span class="branch-0 cbranch-no" title="branch not covered" >{} : u</span>ser.roles
444
467
  // remove props which aren't useful to metadata
445
468
  delete user.password
@@ -448,15 +471,16 @@ export async function syncUser(ctx: BBContext) {
448
471
  // run through all production appIDs in the users roles
449
472
  let prodAppIds
450
473
  // if they are a builder then get all production app IDs
451
- if ((user.builder &amp;&amp; user.builder.global) || <span class="branch-2 cbranch-no" title="branch not covered" >deleting) {</span>
474
+ if ((user.builder &amp;&amp; user.builder.global) || deleting) {
452
475
  prodAppIds = await dbCore.getProdAppIDs()
453
- } else <span class="missing-if-branch" title="else path not taken" >E</span>{
454
- <span class="cstat-no" title="statement not covered" > prodAppIds = Object.entries(roles)</span>
455
- .filter(<span class="fstat-no" title="function not covered" >entry =&gt; <span class="cstat-no" title="statement not covered" >e</span>ntry[1] !== rolesCore.BUILTIN_ROLE_IDS.PUBLIC)</span>
456
- .map(<span class="fstat-no" title="function not covered" >([</span>appId]) =&gt; <span class="cstat-no" title="statement not covered" >appId)</span>
476
+ } else {
477
+ prodAppIds = Object.entries(roles)
478
+ .filter(entry =&gt; entry[1] !== rolesCore.BUILTIN_ROLE_IDS.PUBLIC)
479
+ .map(([appId]) =&gt; appId)
457
480
  }
458
- for (let prodAppId of prodAppIds) {
481
+ for (let prodAppId of new Set([...prodAppIds, ...previousApps])) {
459
482
  const roleId = roles[prodAppId]
483
+ const deleteFromApp = !roleId
460
484
  const devAppId = dbCore.getDevelopmentAppID(prodAppId)
461
485
  for (let appId of [prodAppId, devAppId]) {
462
486
  <span class="missing-if-branch" title="if path not taken" >I</span>if (!(await dbCore.dbExists(appId))) {
@@ -469,24 +493,24 @@ export async function syncUser(ctx: BBContext) {
469
493
  try {
470
494
  metadata = await db.get(metadataId)
471
495
  } catch (err) {
472
- <span class="missing-if-branch" title="if path not taken" >I</span>if (deleting) {
473
- <span class="cstat-no" title="statement not covered" > return</span>
496
+ if (deleteFromApp) {
497
+ return
474
498
  }
475
499
  metadata = {
476
500
  tableId: InternalTables.USER_METADATA,
477
501
  }
478
502
  }
503
+ &nbsp;
504
+ if (deleteFromApp) {
505
+ await db.remove(metadata)
506
+ return
507
+ }
508
+ &nbsp;
479
509
  // assign the roleId for the metadata doc
480
- <span class="missing-if-branch" title="if path not taken" >I</span>if (roleId) {
481
- <span class="cstat-no" title="statement not covered" > metadata.roleId = roleId</span>
510
+ if (roleId) {
511
+ metadata.roleId = roleId
482
512
  }
483
- let combined = !deleting
484
- ? sdk.users.combineMetadataAndUser(user, metadata)
485
- : <span class="branch-1 cbranch-no" title="branch not covered" >{</span>
486
- ...metadata,
487
- status: constants.UserStatus.INACTIVE,
488
- metadata: rolesCore.BUILTIN_ROLE_IDS.PUBLIC,
489
- }
513
+ let combined = sdk.users.combineMetadataAndUser(user, metadata)
490
514
  // if its null then there was no updates required
491
515
  if (combined) {
492
516
  await db.put(combined)
@@ -595,7 +619,7 @@ export async function getFlags(ctx: BBContext) {
595
619
  <div class='footer quiet pad2 space-top1 center small'>
596
620
  Code coverage generated by
597
621
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
598
- at Wed Jan 11 2023 10:34:19 GMT+0000 (Coordinated Universal Time)
622
+ at Fri Feb 03 2023 13:37:27 GMT+0000 (Coordinated Universal Time)
599
623
  </div>
600
624
  <script src="../../../prettify.js"></script>
601
625
  <script>
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">100% </span>
26
+ <span class="strong">73.91% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>13/13</span>
28
+ <span class='fraction'>17/23</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">50% </span>
33
+ <span class="strong">57.14% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>2/4</span>
35
+ <span class='fraction'>4/7</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">100% </span>
40
+ <span class="strong">75% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>7/7</span>
42
+ <span class='fraction'>9/12</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">100% </span>
47
+ <span class="strong">68.42% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>11/11</span>
49
+ <span class='fraction'>13/19</span>
50
50
  </div>
51
51
 
52
52
 
@@ -61,7 +61,7 @@
61
61
  </div>
62
62
  </template>
63
63
  </div>
64
- <div class='status-line high'></div>
64
+ <div class='status-line medium'></div>
65
65
  <pre><table class="coverage">
66
66
  <tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
67
67
  <a name='L2'></a><a href='#L2'>2</a>
@@ -91,7 +91,22 @@
91
91
  <a name='L26'></a><a href='#L26'>26</a>
92
92
  <a name='L27'></a><a href='#L27'>27</a>
93
93
  <a name='L28'></a><a href='#L28'>28</a>
94
- <a name='L29'></a><a href='#L29'>29</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
94
+ <a name='L29'></a><a href='#L29'>29</a>
95
+ <a name='L30'></a><a href='#L30'>30</a>
96
+ <a name='L31'></a><a href='#L31'>31</a>
97
+ <a name='L32'></a><a href='#L32'>32</a>
98
+ <a name='L33'></a><a href='#L33'>33</a>
99
+ <a name='L34'></a><a href='#L34'>34</a>
100
+ <a name='L35'></a><a href='#L35'>35</a>
101
+ <a name='L36'></a><a href='#L36'>36</a>
102
+ <a name='L37'></a><a href='#L37'>37</a>
103
+ <a name='L38'></a><a href='#L38'>38</a>
104
+ <a name='L39'></a><a href='#L39'>39</a>
105
+ <a name='L40'></a><a href='#L40'>40</a>
106
+ <a name='L41'></a><a href='#L41'>41</a>
107
+ <a name='L42'></a><a href='#L42'>42</a>
108
+ <a name='L43'></a><a href='#L43'>43</a>
109
+ <a name='L44'></a><a href='#L44'>44</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
95
110
  <span class="cline-any cline-neutral">&nbsp;</span>
96
111
  <span class="cline-any cline-yes">2x</span>
97
112
  <span class="cline-any cline-yes">4x</span>
@@ -115,11 +130,26 @@
115
130
  <span class="cline-any cline-yes">4x</span>
116
131
  <span class="cline-any cline-neutral">&nbsp;</span>
117
132
  <span class="cline-any cline-neutral">&nbsp;</span>
118
- <span class="cline-any cline-yes">55x</span>
133
+ <span class="cline-any cline-no">&nbsp;</span>
134
+ <span class="cline-any cline-no">&nbsp;</span>
135
+ <span class="cline-any cline-no">&nbsp;</span>
136
+ <span class="cline-any cline-no">&nbsp;</span>
137
+ <span class="cline-any cline-no">&nbsp;</span>
119
138
  <span class="cline-any cline-neutral">&nbsp;</span>
120
139
  <span class="cline-any cline-neutral">&nbsp;</span>
140
+ <span class="cline-any cline-no">&nbsp;</span>
121
141
  <span class="cline-any cline-neutral">&nbsp;</span>
122
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import { Row } from "@budibase/types"
142
+ <span class="cline-any cline-neutral">&nbsp;</span>
143
+ <span class="cline-any cline-yes">57x</span>
144
+ <span class="cline-any cline-neutral">&nbsp;</span>
145
+ <span class="cline-any cline-neutral">&nbsp;</span>
146
+ <span class="cline-any cline-neutral">&nbsp;</span>
147
+ <span class="cline-any cline-neutral">&nbsp;</span>
148
+ <span class="cline-any cline-neutral">&nbsp;</span>
149
+ <span class="cline-any cline-yes">4x</span>
150
+ <span class="cline-any cline-yes">4x</span>
151
+ <span class="cline-any cline-neutral">&nbsp;</span>
152
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import { Row, TableSchema } from "@budibase/types"
123
153
  &nbsp;
124
154
  export function csv(headers: string[], rows: Row[]) {
125
155
  let csv = headers.map(key =&gt; `"${key}"`).join(",")
@@ -139,13 +169,28 @@ export function csv(headers: string[], rows: Row[]) {
139
169
  return csv
140
170
  }
141
171
  &nbsp;
142
- export function json(headers: string[], rows: Row[]) {
172
+ export function json(rows: Row[]) {
143
173
  return JSON.stringify(rows, undefined, 2)
144
174
  }
145
175
  &nbsp;
146
- export const ExportFormats = {
147
- CSV: "csv",
148
- JSON: "json",
176
+ export function <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >jsonWithSchema<span class="fstat-no" title="function not covered" >(</span></span>s</span>chema: TableSchema, rows: Row[]) {
177
+ const newSchema: TableSchema = <span class="cstat-no" title="statement not covered" >{}</span>
178
+ <span class="cstat-no" title="statement not covered" > Object.values(schema).forEach(<span class="fstat-no" title="function not covered" >column =&gt; {</span></span>
179
+ <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (!column.autocolumn) {</span>
180
+ <span class="cstat-no" title="statement not covered" > newSchema[column.name] = column</span>
181
+ }
182
+ })
183
+ <span class="cstat-no" title="statement not covered" > return JSON.stringify({ schema: newSchema, rows }, undefined, 2)</span>
184
+ }
185
+ &nbsp;
186
+ export enum Format {
187
+ CSV = "csv",
188
+ JSON = "json",
189
+ JSON_WITH_SCHEMA = "jsonWithSchema",
190
+ }
191
+ &nbsp;
192
+ export function isFormat(format: any): format is Format {
193
+ return Object.values(Format).includes(format as Format)
149
194
  }
150
195
  &nbsp;</pre></td></tr></table></pre>
151
196
 
@@ -154,7 +199,7 @@ export const ExportFormats = {
154
199
  <div class='footer quiet pad2 space-top1 center small'>
155
200
  Code coverage generated by
156
201
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
157
- at Wed Jan 11 2023 10:34:19 GMT+0000 (Coordinated Universal Time)
202
+ at Fri Feb 03 2023 13:37:27 GMT+0000 (Coordinated Universal Time)
158
203
  </div>
159
204
  <script src="../../../../prettify.js"></script>
160
205
  <script>
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">75.93% </span>
26
+ <span class="strong">74.18% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>183/241</span>
28
+ <span class='fraction'>181/244</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">77.27% </span>
33
+ <span class="strong">75.22% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>85/110</span>
35
+ <span class='fraction'>85/113</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">80.43% </span>
40
+ <span class="strong">80.85% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>37/46</span>
42
+ <span class='fraction'>38/47</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">76.05% </span>
47
+ <span class="strong">74.05% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>181/238</span>
49
+ <span class='fraction'>177/239</span>
50
50
  </div>
51
51
 
52
52
 
@@ -79,33 +79,33 @@
79
79
  </tr>
80
80
  </thead>
81
81
  <tbody><tr>
82
- <td class="file high" data-value="exporters.ts"><a href="exporters.ts.html">exporters.ts</a></td>
83
- <td data-value="100" class="pic high">
84
- <div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
82
+ <td class="file medium" data-value="exporters.ts"><a href="exporters.ts.html">exporters.ts</a></td>
83
+ <td data-value="73.91" class="pic medium">
84
+ <div class="chart"><div class="cover-fill" style="width: 73%"></div><div class="cover-empty" style="width: 27%"></div></div>
85
85
  </td>
86
- <td data-value="100" class="pct high">100%</td>
87
- <td data-value="13" class="abs high">13/13</td>
88
- <td data-value="50" class="pct medium">50%</td>
89
- <td data-value="4" class="abs medium">2/4</td>
90
- <td data-value="100" class="pct high">100%</td>
91
- <td data-value="7" class="abs high">7/7</td>
92
- <td data-value="100" class="pct high">100%</td>
93
- <td data-value="11" class="abs high">11/11</td>
86
+ <td data-value="73.91" class="pct medium">73.91%</td>
87
+ <td data-value="23" class="abs medium">17/23</td>
88
+ <td data-value="57.14" class="pct medium">57.14%</td>
89
+ <td data-value="7" class="abs medium">4/7</td>
90
+ <td data-value="75" class="pct medium">75%</td>
91
+ <td data-value="12" class="abs medium">9/12</td>
92
+ <td data-value="68.42" class="pct medium">68.42%</td>
93
+ <td data-value="19" class="abs medium">13/19</td>
94
94
  </tr>
95
95
 
96
96
  <tr>
97
97
  <td class="file high" data-value="index.ts"><a href="index.ts.html">index.ts</a></td>
98
- <td data-value="88.23" class="pic high">
98
+ <td data-value="88.42" class="pic high">
99
99
  <div class="chart"><div class="cover-fill" style="width: 88%"></div><div class="cover-empty" style="width: 12%"></div></div>
100
100
  </td>
101
- <td data-value="88.23" class="pct high">88.23%</td>
102
- <td data-value="102" class="abs high">90/102</td>
103
- <td data-value="90.56" class="pct high">90.56%</td>
104
- <td data-value="53" class="abs high">48/53</td>
105
- <td data-value="70.58" class="pct medium">70.58%</td>
106
- <td data-value="17" class="abs medium">12/17</td>
107
- <td data-value="89.1" class="pct high">89.1%</td>
108
- <td data-value="101" class="abs high">90/101</td>
101
+ <td data-value="88.42" class="pct high">88.42%</td>
102
+ <td data-value="95" class="abs high">84/95</td>
103
+ <td data-value="86.79" class="pct high">86.79%</td>
104
+ <td data-value="53" class="abs high">46/53</td>
105
+ <td data-value="84.61" class="pct high">84.61%</td>
106
+ <td data-value="13" class="abs high">11/13</td>
107
+ <td data-value="89.36" class="pct high">89.36%</td>
108
+ <td data-value="94" class="abs high">84/94</td>
109
109
  </tr>
110
110
 
111
111
  <tr>
@@ -146,7 +146,7 @@
146
146
  <div class='footer quiet pad2 space-top1 center small'>
147
147
  Code coverage generated by
148
148
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
149
- at Wed Jan 11 2023 10:34:19 GMT+0000 (Coordinated Universal Time)
149
+ at Fri Feb 03 2023 13:37:27 GMT+0000 (Coordinated Universal Time)
150
150
  </div>
151
151
  <script src="../../../../prettify.js"></script>
152
152
  <script>