@budibase/server 2.2.12-alpha.4 → 2.2.12-alpha.40

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 (508) hide show
  1. package/builder/assets/{bb-emblem.4e4717da.svg → bb-emblem.05f7ae7a.svg} +1 -1
  2. package/builder/assets/index.80229ab4.css +6 -0
  3. package/builder/assets/{index.11f4795c.js → index.b8f2b884.js} +408 -419
  4. package/builder/index.html +2 -2
  5. package/coverage/clover.xml +4294 -4395
  6. package/coverage/coverage-final.json +278 -279
  7. package/coverage/lcov-report/index.html +395 -395
  8. package/coverage/lcov-report/src/api/controllers/analytics.ts.html +9 -9
  9. package/coverage/lcov-report/src/api/controllers/apikeys.ts.html +6 -6
  10. package/coverage/lcov-report/src/api/controllers/application.ts.html +105 -105
  11. package/coverage/lcov-report/src/api/controllers/auth.ts.html +10 -10
  12. package/coverage/lcov-report/src/api/controllers/automation.ts.html +37 -37
  13. package/coverage/lcov-report/src/api/controllers/backup.ts.html +8 -8
  14. package/coverage/lcov-report/src/api/controllers/cloud.ts.html +16 -16
  15. package/coverage/lcov-report/src/api/controllers/component.ts.html +12 -12
  16. package/coverage/lcov-report/src/api/controllers/datasource.ts.html +24 -24
  17. package/coverage/lcov-report/src/api/controllers/deploy/Deployment.ts.html +18 -18
  18. package/coverage/lcov-report/src/api/controllers/deploy/index.html +7 -7
  19. package/coverage/lcov-report/src/api/controllers/deploy/index.ts.html +83 -83
  20. package/coverage/lcov-report/src/api/controllers/dev.ts.html +28 -28
  21. package/coverage/lcov-report/src/api/controllers/index.html +98 -98
  22. package/coverage/lcov-report/src/api/controllers/integration.ts.html +5 -5
  23. package/coverage/lcov-report/src/api/controllers/layout.ts.html +9 -9
  24. package/coverage/lcov-report/src/api/controllers/metadata.ts.html +11 -11
  25. package/coverage/lcov-report/src/api/controllers/migrations.ts.html +6 -6
  26. package/coverage/lcov-report/src/api/controllers/permission.ts.html +14 -14
  27. package/coverage/lcov-report/src/api/controllers/plugin/file.ts.html +4 -4
  28. package/coverage/lcov-report/src/api/controllers/plugin/github.ts.html +20 -20
  29. package/coverage/lcov-report/src/api/controllers/plugin/index.html +31 -31
  30. package/coverage/lcov-report/src/api/controllers/plugin/index.ts.html +26 -26
  31. package/coverage/lcov-report/src/api/controllers/plugin/npm.ts.html +10 -10
  32. package/coverage/lcov-report/src/api/controllers/plugin/uploaders.ts.html +3 -3
  33. package/coverage/lcov-report/src/api/controllers/plugin/url.ts.html +4 -4
  34. package/coverage/lcov-report/src/api/controllers/plugin/utils.ts.html +4 -4
  35. package/coverage/lcov-report/src/api/controllers/public/applications.ts.html +31 -31
  36. package/coverage/lcov-report/src/api/controllers/public/index.html +58 -58
  37. package/coverage/lcov-report/src/api/controllers/public/mapping/applications.ts.html +7 -7
  38. package/coverage/lcov-report/src/api/controllers/public/mapping/index.html +25 -25
  39. package/coverage/lcov-report/src/api/controllers/public/mapping/index.ts.html +9 -9
  40. package/coverage/lcov-report/src/api/controllers/public/mapping/queries.ts.html +8 -8
  41. package/coverage/lcov-report/src/api/controllers/public/mapping/rows.ts.html +4 -4
  42. package/coverage/lcov-report/src/api/controllers/public/mapping/tables.ts.html +4 -4
  43. package/coverage/lcov-report/src/api/controllers/public/mapping/users.ts.html +4 -4
  44. package/coverage/lcov-report/src/api/controllers/public/queries.ts.html +15 -15
  45. package/coverage/lcov-report/src/api/controllers/public/rows.ts.html +21 -21
  46. package/coverage/lcov-report/src/api/controllers/public/tables.ts.html +21 -21
  47. package/coverage/lcov-report/src/api/controllers/public/users.ts.html +27 -27
  48. package/coverage/lcov-report/src/api/controllers/public/utils.ts.html +8 -8
  49. package/coverage/lcov-report/src/api/controllers/query/import/index.html +8 -8
  50. package/coverage/lcov-report/src/api/controllers/query/import/index.ts.html +11 -11
  51. package/coverage/lcov-report/src/api/controllers/query/import/sources/base/index.html +14 -14
  52. package/coverage/lcov-report/src/api/controllers/query/import/sources/base/index.ts.html +14 -14
  53. package/coverage/lcov-report/src/api/controllers/query/import/sources/base/openapi.ts.html +8 -8
  54. package/coverage/lcov-report/src/api/controllers/query/import/sources/curl.ts.html +12 -12
  55. package/coverage/lcov-report/src/api/controllers/query/import/sources/index.html +23 -23
  56. package/coverage/lcov-report/src/api/controllers/query/import/sources/openapi2.ts.html +16 -16
  57. package/coverage/lcov-report/src/api/controllers/query/import/sources/openapi3.ts.html +20 -20
  58. package/coverage/lcov-report/src/api/controllers/query/index.html +15 -15
  59. package/coverage/lcov-report/src/api/controllers/query/index.ts.html +28 -28
  60. package/coverage/lcov-report/src/api/controllers/query/validation.ts.html +9 -9
  61. package/coverage/lcov-report/src/api/controllers/role.ts.html +9 -9
  62. package/coverage/lcov-report/src/api/controllers/routing.ts.html +10 -10
  63. package/coverage/lcov-report/src/api/controllers/row/ExternalRequest.ts.html +55 -37
  64. package/coverage/lcov-report/src/api/controllers/row/external.ts.html +44 -44
  65. package/coverage/lcov-report/src/api/controllers/row/index.html +58 -58
  66. package/coverage/lcov-report/src/api/controllers/row/index.ts.html +36 -36
  67. package/coverage/lcov-report/src/api/controllers/row/internal.ts.html +77 -74
  68. package/coverage/lcov-report/src/api/controllers/row/internalSearch.ts.html +146 -146
  69. package/coverage/lcov-report/src/api/controllers/row/staticFormula.ts.html +33 -33
  70. package/coverage/lcov-report/src/api/controllers/row/utils.ts.html +28 -28
  71. package/coverage/lcov-report/src/api/controllers/screen.ts.html +12 -12
  72. package/coverage/lcov-report/src/api/controllers/script.ts.html +11 -11
  73. package/coverage/lcov-report/src/api/controllers/static/index.html +15 -15
  74. package/coverage/lcov-report/src/api/controllers/static/index.ts.html +34 -34
  75. package/coverage/lcov-report/src/api/controllers/table/bulkFormula.ts.html +60 -60
  76. package/coverage/lcov-report/src/api/controllers/table/external.ts.html +42 -42
  77. package/coverage/lcov-report/src/api/controllers/table/index.html +48 -48
  78. package/coverage/lcov-report/src/api/controllers/table/index.ts.html +155 -68
  79. package/coverage/lcov-report/src/api/controllers/table/internal.ts.html +58 -61
  80. package/coverage/lcov-report/src/api/controllers/table/utils.ts.html +93 -96
  81. package/coverage/lcov-report/src/api/controllers/templates.ts.html +21 -21
  82. package/coverage/lcov-report/src/api/controllers/user.ts.html +103 -79
  83. package/coverage/lcov-report/src/api/controllers/view/exporters.ts.html +64 -19
  84. package/coverage/lcov-report/src/api/controllers/view/index.html +38 -38
  85. package/coverage/lcov-report/src/api/controllers/view/index.ts.html +74 -47
  86. package/coverage/lcov-report/src/api/controllers/view/utils.ts.html +22 -22
  87. package/coverage/lcov-report/src/api/controllers/view/viewBuilder.ts.html +8 -8
  88. package/coverage/lcov-report/src/api/controllers/webhook.ts.html +15 -15
  89. package/coverage/lcov-report/src/api/index.html +15 -15
  90. package/coverage/lcov-report/src/api/index.ts.html +31 -31
  91. package/coverage/lcov-report/src/api/routes/analytics.ts.html +10 -10
  92. package/coverage/lcov-report/src/api/routes/apikeys.ts.html +11 -11
  93. package/coverage/lcov-report/src/api/routes/application.ts.html +13 -13
  94. package/coverage/lcov-report/src/api/routes/auth.ts.html +9 -9
  95. package/coverage/lcov-report/src/api/routes/automation.ts.html +14 -14
  96. package/coverage/lcov-report/src/api/routes/backup.ts.html +11 -11
  97. package/coverage/lcov-report/src/api/routes/cloud.ts.html +11 -11
  98. package/coverage/lcov-report/src/api/routes/component.ts.html +11 -11
  99. package/coverage/lcov-report/src/api/routes/datasource.ts.html +12 -12
  100. package/coverage/lcov-report/src/api/routes/deploy.ts.html +11 -11
  101. package/coverage/lcov-report/src/api/routes/dev.ts.html +17 -17
  102. package/coverage/lcov-report/src/api/routes/index.html +66 -66
  103. package/coverage/lcov-report/src/api/routes/index.ts.html +36 -36
  104. package/coverage/lcov-report/src/api/routes/integration.ts.html +11 -11
  105. package/coverage/lcov-report/src/api/routes/layout.ts.html +11 -11
  106. package/coverage/lcov-report/src/api/routes/metadata.ts.html +12 -12
  107. package/coverage/lcov-report/src/api/routes/migrations.ts.html +10 -10
  108. package/coverage/lcov-report/src/api/routes/permission.ts.html +12 -12
  109. package/coverage/lcov-report/src/api/routes/plugin.ts.html +10 -10
  110. package/coverage/lcov-report/src/api/routes/public/applications.ts.html +16 -16
  111. package/coverage/lcov-report/src/api/routes/public/index.html +24 -24
  112. package/coverage/lcov-report/src/api/routes/public/index.ts.html +60 -60
  113. package/coverage/lcov-report/src/api/routes/public/middleware/index.html +5 -5
  114. package/coverage/lcov-report/src/api/routes/public/middleware/mapper.ts.html +12 -12
  115. package/coverage/lcov-report/src/api/routes/public/queries.ts.html +11 -11
  116. package/coverage/lcov-report/src/api/routes/public/rows.ts.html +14 -14
  117. package/coverage/lcov-report/src/api/routes/public/tables.ts.html +14 -14
  118. package/coverage/lcov-report/src/api/routes/public/tests/index.html +7 -7
  119. package/coverage/lcov-report/src/api/routes/public/tests/utils.ts.html +5 -5
  120. package/coverage/lcov-report/src/api/routes/public/users.ts.html +14 -14
  121. package/coverage/lcov-report/src/api/routes/public/utils/Endpoint.ts.html +21 -21
  122. package/coverage/lcov-report/src/api/routes/public/utils/index.html +5 -5
  123. package/coverage/lcov-report/src/api/routes/query.ts.html +14 -14
  124. package/coverage/lcov-report/src/api/routes/role.ts.html +12 -12
  125. package/coverage/lcov-report/src/api/routes/routing.ts.html +11 -11
  126. package/coverage/lcov-report/src/api/routes/row.ts.html +13 -13
  127. package/coverage/lcov-report/src/api/routes/screen.ts.html +12 -12
  128. package/coverage/lcov-report/src/api/routes/script.ts.html +13 -13
  129. package/coverage/lcov-report/src/api/routes/static.ts.html +18 -18
  130. package/coverage/lcov-report/src/api/routes/table.ts.html +29 -98
  131. package/coverage/lcov-report/src/api/routes/templates.ts.html +11 -11
  132. package/coverage/lcov-report/src/api/routes/tests/utilities/TestFunctions.ts.html +13 -13
  133. package/coverage/lcov-report/src/api/routes/tests/utilities/index.html +23 -23
  134. package/coverage/lcov-report/src/api/routes/tests/utilities/index.ts.html +14 -14
  135. package/coverage/lcov-report/src/api/routes/user.ts.html +12 -12
  136. package/coverage/lcov-report/src/api/routes/utils/index.html +3 -3
  137. package/coverage/lcov-report/src/api/routes/utils/validators.ts.html +44 -44
  138. package/coverage/lcov-report/src/api/routes/view.ts.html +13 -13
  139. package/coverage/lcov-report/src/api/routes/webhook.ts.html +13 -13
  140. package/coverage/lcov-report/src/app.ts.html +22 -16
  141. package/coverage/lcov-report/src/automations/actions.ts.html +31 -31
  142. package/coverage/lcov-report/src/automations/automationUtils.ts.html +61 -61
  143. package/coverage/lcov-report/src/automations/bullboard.ts.html +19 -19
  144. package/coverage/lcov-report/src/automations/index.html +53 -53
  145. package/coverage/lcov-report/src/automations/index.ts.html +23 -23
  146. package/coverage/lcov-report/src/automations/logging/index.html +3 -3
  147. package/coverage/lcov-report/src/automations/logging/index.ts.html +10 -10
  148. package/coverage/lcov-report/src/automations/steps/bash.ts.html +11 -11
  149. package/coverage/lcov-report/src/automations/steps/createRow.ts.html +9 -9
  150. package/coverage/lcov-report/src/automations/steps/delay.ts.html +7 -7
  151. package/coverage/lcov-report/src/automations/steps/deleteRow.ts.html +9 -9
  152. package/coverage/lcov-report/src/automations/steps/discord.ts.html +11 -11
  153. package/coverage/lcov-report/src/automations/steps/executeQuery.ts.html +9 -9
  154. package/coverage/lcov-report/src/automations/steps/executeScript.ts.html +9 -9
  155. package/coverage/lcov-report/src/automations/steps/filter.ts.html +12 -12
  156. package/coverage/lcov-report/src/automations/steps/index.html +75 -75
  157. package/coverage/lcov-report/src/automations/steps/integromat.ts.html +10 -10
  158. package/coverage/lcov-report/src/automations/steps/loop.ts.html +5 -5
  159. package/coverage/lcov-report/src/automations/steps/outgoingWebhook.ts.html +19 -19
  160. package/coverage/lcov-report/src/automations/steps/queryRows.ts.html +43 -43
  161. package/coverage/lcov-report/src/automations/steps/sendSmtpEmail.ts.html +9 -9
  162. package/coverage/lcov-report/src/automations/steps/serverLog.ts.html +10 -10
  163. package/coverage/lcov-report/src/automations/steps/slack.ts.html +10 -10
  164. package/coverage/lcov-report/src/automations/steps/updateRow.ts.html +9 -9
  165. package/coverage/lcov-report/src/automations/steps/utils.ts.html +12 -12
  166. package/coverage/lcov-report/src/automations/steps/zapier.ts.html +8 -8
  167. package/coverage/lcov-report/src/automations/tests/utilities/index.html +15 -15
  168. package/coverage/lcov-report/src/automations/tests/utilities/index.ts.html +24 -24
  169. package/coverage/lcov-report/src/automations/triggerInfo/app.ts.html +6 -6
  170. package/coverage/lcov-report/src/automations/triggerInfo/cron.ts.html +6 -6
  171. package/coverage/lcov-report/src/automations/triggerInfo/index.html +17 -17
  172. package/coverage/lcov-report/src/automations/triggerInfo/index.ts.html +10 -10
  173. package/coverage/lcov-report/src/automations/triggerInfo/rowDeleted.ts.html +6 -6
  174. package/coverage/lcov-report/src/automations/triggerInfo/rowSaved.ts.html +6 -6
  175. package/coverage/lcov-report/src/automations/triggerInfo/rowUpdated.ts.html +6 -6
  176. package/coverage/lcov-report/src/automations/triggerInfo/webhook.ts.html +6 -6
  177. package/coverage/lcov-report/src/automations/triggers.ts.html +53 -38
  178. package/coverage/lcov-report/src/automations/utils.ts.html +65 -65
  179. package/coverage/lcov-report/src/constants/index.html +19 -19
  180. package/coverage/lcov-report/src/constants/index.ts.html +80 -80
  181. package/coverage/lcov-report/src/constants/layouts.ts.html +9 -9
  182. package/coverage/lcov-report/src/constants/screens.ts.html +4 -4
  183. package/coverage/lcov-report/src/db/defaultData/datasource_bb_default.ts.html +45 -45
  184. package/coverage/lcov-report/src/db/defaultData/employeeImport.ts.html +8 -8
  185. package/coverage/lcov-report/src/db/defaultData/expensesImport.ts.html +8 -8
  186. package/coverage/lcov-report/src/db/defaultData/index.html +43 -43
  187. package/coverage/lcov-report/src/db/defaultData/inventoryImport.ts.html +8 -8
  188. package/coverage/lcov-report/src/db/defaultData/jobsImport.ts.html +8 -8
  189. package/coverage/lcov-report/src/db/dynamoClient.ts.html +26 -26
  190. package/coverage/lcov-report/src/db/inMemoryView.ts.html +13 -13
  191. package/coverage/lcov-report/src/db/index.html +32 -32
  192. package/coverage/lcov-report/src/db/index.ts.html +10 -10
  193. package/coverage/lcov-report/src/db/linkedRows/LinkController.ts.html +38 -38
  194. package/coverage/lcov-report/src/db/linkedRows/LinkDocument.ts.html +7 -7
  195. package/coverage/lcov-report/src/db/linkedRows/index.html +37 -37
  196. package/coverage/lcov-report/src/db/linkedRows/index.ts.html +40 -40
  197. package/coverage/lcov-report/src/db/linkedRows/linkUtils.ts.html +25 -25
  198. package/coverage/lcov-report/src/db/newid.ts.html +5 -5
  199. package/coverage/lcov-report/src/db/utils.ts.html +75 -75
  200. package/coverage/lcov-report/src/definitions/automations.ts.html +5 -5
  201. package/coverage/lcov-report/src/definitions/datasource.ts.html +5 -5
  202. package/coverage/lcov-report/src/definitions/index.html +4 -4
  203. package/coverage/lcov-report/src/environment.ts.html +16 -16
  204. package/coverage/lcov-report/src/events/AutomationEmitter.ts.html +14 -14
  205. package/coverage/lcov-report/src/events/BudibaseEmitter.ts.html +8 -8
  206. package/coverage/lcov-report/src/events/index.html +20 -20
  207. package/coverage/lcov-report/src/events/index.ts.html +7 -7
  208. package/coverage/lcov-report/src/events/utils.ts.html +11 -11
  209. package/coverage/lcov-report/src/index.html +36 -36
  210. package/coverage/lcov-report/src/index.ts.html +6 -6
  211. package/coverage/lcov-report/src/integrations/airtable.ts.html +10 -10
  212. package/coverage/lcov-report/src/integrations/arangodb.ts.html +9 -9
  213. package/coverage/lcov-report/src/integrations/base/index.html +20 -20
  214. package/coverage/lcov-report/src/integrations/base/query.ts.html +3 -3
  215. package/coverage/lcov-report/src/integrations/base/sql.ts.html +37 -37
  216. package/coverage/lcov-report/src/integrations/base/sqlTable.ts.html +21 -21
  217. package/coverage/lcov-report/src/integrations/base/utils.ts.html +5 -5
  218. package/coverage/lcov-report/src/integrations/couchdb.ts.html +10 -10
  219. package/coverage/lcov-report/src/integrations/dynamodb.ts.html +15 -15
  220. package/coverage/lcov-report/src/integrations/elasticsearch.ts.html +9 -9
  221. package/coverage/lcov-report/src/integrations/firebase.ts.html +12 -12
  222. package/coverage/lcov-report/src/integrations/googlesheets.ts.html +41 -41
  223. package/coverage/lcov-report/src/integrations/index.html +125 -125
  224. package/coverage/lcov-report/src/integrations/index.ts.html +40 -40
  225. package/coverage/lcov-report/src/integrations/microsoftSqlServer.ts.html +31 -31
  226. package/coverage/lcov-report/src/integrations/mongodb.ts.html +421 -289
  227. package/coverage/lcov-report/src/integrations/mysql.ts.html +27 -27
  228. package/coverage/lcov-report/src/integrations/oracle.ts.html +31 -31
  229. package/coverage/lcov-report/src/integrations/postgres.ts.html +22 -22
  230. package/coverage/lcov-report/src/integrations/queries/index.html +5 -5
  231. package/coverage/lcov-report/src/integrations/queries/sql.ts.html +6 -6
  232. package/coverage/lcov-report/src/integrations/redis.ts.html +8 -8
  233. package/coverage/lcov-report/src/integrations/rest.ts.html +28 -28
  234. package/coverage/lcov-report/src/integrations/s3.ts.html +17 -17
  235. package/coverage/lcov-report/src/integrations/snowflake.ts.html +15 -15
  236. package/coverage/lcov-report/src/integrations/tests/TestConfiguration.js.html +1 -1
  237. package/coverage/lcov-report/src/integrations/tests/index.html +1 -1
  238. package/coverage/lcov-report/src/integrations/utils.ts.html +49 -49
  239. package/coverage/lcov-report/src/middleware/appInfo.ts.html +11 -11
  240. package/coverage/lcov-report/src/middleware/authorized.ts.html +31 -19
  241. package/coverage/lcov-report/src/middleware/builder.ts.html +15 -15
  242. package/coverage/lcov-report/src/middleware/currentapp.ts.html +18 -15
  243. package/coverage/lcov-report/src/middleware/index.html +40 -40
  244. package/coverage/lcov-report/src/middleware/joi-validator.ts.html +10 -10
  245. package/coverage/lcov-report/src/middleware/publicApi.ts.html +9 -9
  246. package/coverage/lcov-report/src/middleware/resourceId.ts.html +23 -23
  247. package/coverage/lcov-report/src/middleware/selfhost.ts.html +2 -2
  248. package/coverage/lcov-report/src/middleware/utils.ts.html +3 -3
  249. package/coverage/lcov-report/src/migrations/functions/appUrls.ts.html +6 -6
  250. package/coverage/lcov-report/src/migrations/functions/backfill/app/automations.ts.html +7 -7
  251. package/coverage/lcov-report/src/migrations/functions/backfill/app/datasources.ts.html +7 -7
  252. package/coverage/lcov-report/src/migrations/functions/backfill/app/index.html +31 -31
  253. package/coverage/lcov-report/src/migrations/functions/backfill/app/layouts.ts.html +8 -8
  254. package/coverage/lcov-report/src/migrations/functions/backfill/app/queries.ts.html +13 -13
  255. package/coverage/lcov-report/src/migrations/functions/backfill/app/roles.ts.html +7 -7
  256. package/coverage/lcov-report/src/migrations/functions/backfill/app/screens.ts.html +7 -7
  257. package/coverage/lcov-report/src/migrations/functions/backfill/app/tables.ts.html +8 -8
  258. package/coverage/lcov-report/src/migrations/functions/backfill/app.ts.html +21 -21
  259. package/coverage/lcov-report/src/migrations/functions/backfill/global/configs.ts.html +10 -10
  260. package/coverage/lcov-report/src/migrations/functions/backfill/global/index.html +19 -19
  261. package/coverage/lcov-report/src/migrations/functions/backfill/global/quotas.ts.html +9 -9
  262. package/coverage/lcov-report/src/migrations/functions/backfill/global/users.ts.html +13 -13
  263. package/coverage/lcov-report/src/migrations/functions/backfill/global.ts.html +23 -23
  264. package/coverage/lcov-report/src/migrations/functions/backfill/index.html +26 -26
  265. package/coverage/lcov-report/src/migrations/functions/backfill/index.ts.html +7 -7
  266. package/coverage/lcov-report/src/migrations/functions/backfill/installation.ts.html +14 -14
  267. package/coverage/lcov-report/src/migrations/functions/index.html +18 -18
  268. package/coverage/lcov-report/src/migrations/functions/syncQuotas.ts.html +8 -8
  269. package/coverage/lcov-report/src/migrations/functions/tableSettings.ts.html +11 -11
  270. package/coverage/lcov-report/src/migrations/functions/usageQuotas/index.html +11 -11
  271. package/coverage/lcov-report/src/migrations/functions/usageQuotas/index.ts.html +3 -3
  272. package/coverage/lcov-report/src/migrations/functions/usageQuotas/syncApps.ts.html +6 -6
  273. package/coverage/lcov-report/src/migrations/functions/usageQuotas/syncPlugins.ts.html +8 -8
  274. package/coverage/lcov-report/src/migrations/functions/usageQuotas/syncRows.ts.html +7 -7
  275. package/coverage/lcov-report/src/migrations/functions/userEmailViewCasing.ts.html +4 -4
  276. package/coverage/lcov-report/src/migrations/index.html +15 -15
  277. package/coverage/lcov-report/src/migrations/index.ts.html +43 -43
  278. package/coverage/lcov-report/src/migrations/tests/helpers.ts.html +4 -4
  279. package/coverage/lcov-report/src/migrations/tests/index.html +6 -6
  280. package/coverage/lcov-report/src/migrations/tests/structures.ts.html +3 -3
  281. package/coverage/lcov-report/src/sdk/app/applications/index.html +11 -11
  282. package/coverage/lcov-report/src/sdk/app/applications/index.ts.html +6 -6
  283. package/coverage/lcov-report/src/sdk/app/applications/sync.ts.html +24 -24
  284. package/coverage/lcov-report/src/sdk/app/applications/utils.ts.html +15 -15
  285. package/coverage/lcov-report/src/sdk/app/automations/index.html +7 -7
  286. package/coverage/lcov-report/src/sdk/app/automations/index.ts.html +5 -5
  287. package/coverage/lcov-report/src/sdk/app/automations/webhook.ts.html +8 -8
  288. package/coverage/lcov-report/src/sdk/app/backups/constants.ts.html +5 -5
  289. package/coverage/lcov-report/src/sdk/app/backups/exports.ts.html +30 -30
  290. package/coverage/lcov-report/src/sdk/app/backups/imports.ts.html +24 -24
  291. package/coverage/lcov-report/src/sdk/app/backups/index.html +27 -27
  292. package/coverage/lcov-report/src/sdk/app/backups/index.ts.html +7 -7
  293. package/coverage/lcov-report/src/sdk/app/backups/statistics.ts.html +12 -12
  294. package/coverage/lcov-report/src/sdk/app/rows/attachments.ts.html +8 -8
  295. package/coverage/lcov-report/src/sdk/app/rows/index.html +8 -8
  296. package/coverage/lcov-report/src/sdk/app/rows/index.ts.html +6 -6
  297. package/coverage/lcov-report/src/sdk/app/rows/rows.ts.html +4 -4
  298. package/coverage/lcov-report/src/sdk/app/tables/index.html +11 -11
  299. package/coverage/lcov-report/src/sdk/app/tables/index.ts.html +16 -16
  300. package/coverage/lcov-report/src/sdk/index.html +5 -5
  301. package/coverage/lcov-report/src/sdk/index.ts.html +11 -11
  302. package/coverage/lcov-report/src/sdk/users/index.html +6 -6
  303. package/coverage/lcov-report/src/sdk/users/index.ts.html +5 -5
  304. package/coverage/lcov-report/src/sdk/users/utils.ts.html +29 -29
  305. package/coverage/lcov-report/src/startup.ts.html +40 -55
  306. package/coverage/lcov-report/src/tests/utilities/TestConfiguration.ts.html +108 -108
  307. package/coverage/lcov-report/src/tests/utilities/controllers.ts.html +20 -20
  308. package/coverage/lcov-report/src/tests/utilities/index.html +30 -30
  309. package/coverage/lcov-report/src/tests/utilities/index.ts.html +2 -2
  310. package/coverage/lcov-report/src/tests/utilities/structures.ts.html +231 -42
  311. package/coverage/lcov-report/src/threads/automation.ts.html +202 -190
  312. package/coverage/lcov-report/src/threads/index.html +43 -43
  313. package/coverage/lcov-report/src/threads/index.ts.html +38 -38
  314. package/coverage/lcov-report/src/threads/query.ts.html +12 -12
  315. package/coverage/lcov-report/src/threads/utils.ts.html +26 -26
  316. package/coverage/lcov-report/src/utilities/budibaseDir.ts.html +4 -4
  317. package/coverage/lcov-report/src/utilities/centralPath.ts.html +5 -5
  318. package/coverage/lcov-report/src/utilities/fileSystem/app.ts.html +10 -10
  319. package/coverage/lcov-report/src/utilities/fileSystem/clientLibrary.ts.html +12 -12
  320. package/coverage/lcov-report/src/utilities/fileSystem/filesystem.ts.html +20 -20
  321. package/coverage/lcov-report/src/utilities/fileSystem/index.html +42 -42
  322. package/coverage/lcov-report/src/utilities/fileSystem/index.ts.html +1 -1
  323. package/coverage/lcov-report/src/utilities/fileSystem/plugin.ts.html +6 -6
  324. package/coverage/lcov-report/src/utilities/fileSystem/processor.ts.html +9 -9
  325. package/coverage/lcov-report/src/utilities/fileSystem/template.ts.html +5 -5
  326. package/coverage/lcov-report/src/utilities/global.ts.html +54 -54
  327. package/coverage/lcov-report/src/utilities/index.html +74 -89
  328. package/coverage/lcov-report/src/utilities/index.ts.html +32 -32
  329. package/coverage/lcov-report/src/utilities/redis.ts.html +35 -35
  330. package/coverage/lcov-report/src/utilities/routing/index.html +1 -1
  331. package/coverage/lcov-report/src/utilities/routing/index.ts.html +5 -5
  332. package/coverage/lcov-report/src/utilities/rowProcessor/index.html +32 -32
  333. package/coverage/lcov-report/src/utilities/rowProcessor/index.ts.html +67 -67
  334. package/coverage/lcov-report/src/utilities/rowProcessor/map.ts.html +9 -9
  335. package/coverage/lcov-report/src/utilities/rowProcessor/utils.ts.html +26 -26
  336. package/coverage/lcov-report/src/utilities/{csvParser.ts.html → schema.ts.html} +173 -233
  337. package/coverage/lcov-report/src/utilities/scriptRunner.ts.html +8 -8
  338. package/coverage/lcov-report/src/utilities/security.ts.html +13 -13
  339. package/coverage/lcov-report/src/utilities/usageQuota/index.html +9 -9
  340. package/coverage/lcov-report/src/utilities/usageQuota/rows.ts.html +8 -8
  341. package/coverage/lcov-report/src/utilities/usageQuota/usageQuoteReset.ts.html +3 -3
  342. package/coverage/lcov-report/src/utilities/users.ts.html +7 -7
  343. package/coverage/lcov-report/src/utilities/workerRequests.ts.html +61 -34
  344. package/coverage/lcov-report/src/watch.ts.html +20 -20
  345. package/coverage/lcov-report/src/websocket.ts.html +5 -5
  346. package/coverage/lcov.info +10214 -9826
  347. package/dist/api/controllers/query/index.js +5 -2
  348. package/dist/api/controllers/row/ExternalRequest.js +7 -0
  349. package/dist/api/controllers/row/internal.js +12 -8
  350. package/dist/api/controllers/static/index.js +7 -4
  351. package/dist/api/controllers/static/templates/BudibaseApp.svelte +0 -1
  352. package/dist/api/controllers/table/external.js +8 -30
  353. package/dist/api/controllers/table/index.js +44 -15
  354. package/dist/api/controllers/table/internal.js +6 -7
  355. package/dist/api/controllers/table/utils.js +9 -9
  356. package/dist/api/controllers/user.js +14 -6
  357. package/dist/api/controllers/view/exporters.js +22 -6
  358. package/dist/api/controllers/view/index.js +19 -34
  359. package/dist/api/controllers/view/viewBuilder.js +15 -2
  360. package/dist/api/routes/analytics.js +2 -1
  361. package/dist/api/routes/apikeys.js +2 -1
  362. package/dist/api/routes/application.js +2 -1
  363. package/dist/api/routes/auth.js +2 -1
  364. package/dist/api/routes/automation.js +2 -1
  365. package/dist/api/routes/backup.js +2 -1
  366. package/dist/api/routes/cloud.js +2 -1
  367. package/dist/api/routes/component.js +2 -1
  368. package/dist/api/routes/datasource.js +2 -1
  369. package/dist/api/routes/deploy.js +2 -1
  370. package/dist/api/routes/dev.js +2 -1
  371. package/dist/api/routes/integration.js +2 -1
  372. package/dist/api/routes/layout.js +2 -1
  373. package/dist/api/routes/metadata.js +2 -1
  374. package/dist/api/routes/migrations.js +2 -1
  375. package/dist/api/routes/permission.js +2 -1
  376. package/dist/api/routes/query.js +2 -1
  377. package/dist/api/routes/role.js +2 -1
  378. package/dist/api/routes/routing.js +2 -1
  379. package/dist/api/routes/screen.js +2 -1
  380. package/dist/api/routes/script.js +2 -1
  381. package/dist/api/routes/static.js +6 -5
  382. package/dist/api/routes/table.js +8 -38
  383. package/dist/api/routes/templates.js +2 -1
  384. package/dist/api/routes/user.js +2 -1
  385. package/dist/api/routes/utils/validators.js +1 -1
  386. package/dist/api/routes/view.js +2 -1
  387. package/dist/api/routes/webhook.js +2 -1
  388. package/dist/app.js +9 -7
  389. package/dist/automations/logging/index.js +5 -25
  390. package/dist/automations/triggers.js +1 -0
  391. package/dist/db/index.js +5 -2
  392. package/dist/db/linkedRows/LinkController.js +2 -1
  393. package/dist/db/linkedRows/LinkDocument.js +2 -1
  394. package/dist/db/newid.js +4 -2
  395. package/dist/environment.js +2 -1
  396. package/dist/events/AutomationEmitter.js +2 -1
  397. package/dist/events/BudibaseEmitter.js +2 -1
  398. package/dist/events/index.js +2 -1
  399. package/dist/integrations/index.js +5 -5
  400. package/dist/integrations/mongodb.js +311 -271
  401. package/dist/middleware/authorized.js +2 -1
  402. package/dist/middleware/builder.js +4 -2
  403. package/dist/middleware/currentapp.js +6 -3
  404. package/dist/middleware/publicApi.js +4 -2
  405. package/dist/middleware/selfhost.js +4 -1
  406. package/dist/package.json +9 -7
  407. package/dist/startup.js +17 -17
  408. package/dist/threads/automation.js +9 -5
  409. package/dist/threads/index.js +4 -4
  410. package/dist/tsconfig.build.tsbuildinfo +1 -1
  411. package/dist/utilities/fileSystem/filesystem.js +3 -3
  412. package/dist/utilities/schema.js +108 -0
  413. package/dist/utilities/scriptRunner.js +2 -1
  414. package/dist/utilities/statusCodes.js +2 -1
  415. package/dist/utilities/workerRequests.js +2 -0
  416. package/dist/watch.js +2 -25
  417. package/jest.config.ts +5 -2
  418. package/package.json +10 -8
  419. package/src/api/controllers/query/index.ts +2 -2
  420. package/src/api/controllers/row/ExternalRequest.ts +6 -0
  421. package/src/api/controllers/row/internal.ts +10 -9
  422. package/src/api/controllers/static/index.ts +1 -1
  423. package/src/api/controllers/static/templates/BudibaseApp.svelte +0 -1
  424. package/src/api/controllers/table/external.ts +10 -10
  425. package/src/api/controllers/table/index.ts +46 -17
  426. package/src/api/controllers/table/internal.ts +6 -7
  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 +21 -12
  431. package/src/api/controllers/view/tests/viewBuilder.spec.js +1 -1
  432. package/src/api/controllers/view/viewBuilder.ts +1 -1
  433. package/src/api/routes/analytics.ts +1 -1
  434. package/src/api/routes/apikeys.ts +1 -1
  435. package/src/api/routes/application.ts +1 -1
  436. package/src/api/routes/auth.ts +1 -1
  437. package/src/api/routes/automation.ts +1 -1
  438. package/src/api/routes/backup.ts +1 -1
  439. package/src/api/routes/cloud.ts +1 -1
  440. package/src/api/routes/component.ts +1 -1
  441. package/src/api/routes/datasource.ts +1 -1
  442. package/src/api/routes/deploy.ts +1 -1
  443. package/src/api/routes/dev.ts +1 -1
  444. package/src/api/routes/integration.ts +1 -1
  445. package/src/api/routes/layout.ts +1 -1
  446. package/src/api/routes/metadata.ts +1 -1
  447. package/src/api/routes/migrations.ts +1 -1
  448. package/src/api/routes/permission.ts +1 -1
  449. package/src/api/routes/query.ts +1 -1
  450. package/src/api/routes/role.ts +1 -1
  451. package/src/api/routes/routing.ts +1 -1
  452. package/src/api/routes/screen.ts +1 -1
  453. package/src/api/routes/script.ts +1 -1
  454. package/src/api/routes/static.ts +2 -2
  455. package/src/api/routes/table.ts +16 -39
  456. package/src/api/routes/templates.ts +1 -1
  457. package/src/api/routes/tests/misc.spec.js +4 -10
  458. package/src/api/routes/tests/plugin.spec.ts +10 -10
  459. package/src/api/routes/tests/table.spec.js +8 -30
  460. package/src/api/routes/tests/user.spec.js +20 -1
  461. package/src/api/routes/tests/utilities/TestFunctions.ts +1 -1
  462. package/src/api/routes/user.ts +1 -1
  463. package/src/api/routes/utils/validators.ts +1 -1
  464. package/src/api/routes/view.ts +1 -1
  465. package/src/api/routes/webhook.ts +1 -1
  466. package/src/app.ts +5 -3
  467. package/src/automations/logging/index.ts +1 -1
  468. package/src/automations/tests/loop.spec.ts +45 -0
  469. package/src/automations/triggers.ts +6 -1
  470. package/src/db/index.ts +1 -1
  471. package/src/db/linkedRows/LinkController.ts +1 -1
  472. package/src/db/linkedRows/LinkDocument.ts +1 -1
  473. package/src/db/newid.ts +1 -1
  474. package/src/db/tests/linkController.spec.js +1 -1
  475. package/src/environment.ts +1 -1
  476. package/src/events/AutomationEmitter.ts +1 -1
  477. package/src/events/BudibaseEmitter.ts +1 -1
  478. package/src/events/index.ts +1 -1
  479. package/src/integrations/index.ts +4 -4
  480. package/src/integrations/mongodb.ts +315 -271
  481. package/src/integrations/tests/rest.spec.ts +15 -13
  482. package/src/middleware/authorized.ts +5 -1
  483. package/src/middleware/builder.ts +1 -1
  484. package/src/middleware/currentapp.ts +4 -3
  485. package/src/middleware/publicApi.ts +1 -1
  486. package/src/middleware/selfhost.ts +1 -1
  487. package/src/middleware/tests/authorized.spec.js +1 -1
  488. package/src/middleware/tests/currentapp.spec.js +1 -1
  489. package/src/middleware/tests/selfhost.spec.js +1 -1
  490. package/src/startup.ts +3 -8
  491. package/src/tests/jestEnv.ts +13 -0
  492. package/src/tests/jestSetup.ts +0 -14
  493. package/src/tests/utilities/TestConfiguration.ts +1 -1
  494. package/src/tests/utilities/structures.ts +65 -2
  495. package/src/threads/automation.ts +9 -5
  496. package/src/threads/index.ts +1 -1
  497. package/src/utilities/fileSystem/filesystem.ts +1 -1
  498. package/src/utilities/schema.ts +141 -0
  499. package/src/utilities/scriptRunner.ts +1 -1
  500. package/src/utilities/statusCodes.ts +1 -1
  501. package/src/utilities/workerRequests.ts +10 -1
  502. package/src/watch.ts +1 -1
  503. package/builder/assets/index.fa480d5b.css +0 -6
  504. package/coverage/lcov-report/src/utilities/statusCodes.ts.html +0 -106
  505. package/dist/utilities/csvParser.js +0 -152
  506. package/src/utilities/csvParser.ts +0 -161
  507. package/src/utilities/tests/__snapshots__/csvParser.spec.js.snap +0 -15
  508. 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">85.93% </span>
26
+ <span class="strong">66.25% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>55/64</span>
28
+ <span class='fraction'>53/80</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">76.92% </span>
33
+ <span class="strong">50% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>20/26</span>
35
+ <span class='fraction'>15/30</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">77.77% </span>
40
+ <span class="strong">73.68% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>7/9</span>
42
+ <span class='fraction'>14/19</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">87.3% </span>
47
+ <span class="strong">67.08% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>55/63</span>
49
+ <span class='fraction'>53/79</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>
@@ -177,29 +177,63 @@
177
177
  <a name='L112'></a><a href='#L112'>112</a>
178
178
  <a name='L113'></a><a href='#L113'>113</a>
179
179
  <a name='L114'></a><a href='#L114'>114</a>
180
- <a name='L115'></a><a href='#L115'>115</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">55x</span>
181
- <span class="cline-any cline-yes">55x</span>
182
- <span class="cline-any cline-yes">55x</span>
183
- <span class="cline-any cline-yes">55x</span>
184
- <span class="cline-any cline-yes">55x</span>
185
- <span class="cline-any cline-yes">55x</span>
186
- <span class="cline-any cline-neutral">&nbsp;</span>
187
- <span class="cline-any cline-yes">55x</span>
188
- <span class="cline-any cline-neutral">&nbsp;</span>
189
- <span class="cline-any cline-neutral">&nbsp;</span>
190
- <span class="cline-any cline-yes">134x</span>
191
- <span class="cline-any cline-yes">130x</span>
192
- <span class="cline-any cline-neutral">&nbsp;</span>
193
- <span class="cline-any cline-yes">134x</span>
180
+ <a name='L115'></a><a href='#L115'>115</a>
181
+ <a name='L116'></a><a href='#L116'>116</a>
182
+ <a name='L117'></a><a href='#L117'>117</a>
183
+ <a name='L118'></a><a href='#L118'>118</a>
184
+ <a name='L119'></a><a href='#L119'>119</a>
185
+ <a name='L120'></a><a href='#L120'>120</a>
186
+ <a name='L121'></a><a href='#L121'>121</a>
187
+ <a name='L122'></a><a href='#L122'>122</a>
188
+ <a name='L123'></a><a href='#L123'>123</a>
189
+ <a name='L124'></a><a href='#L124'>124</a>
190
+ <a name='L125'></a><a href='#L125'>125</a>
191
+ <a name='L126'></a><a href='#L126'>126</a>
192
+ <a name='L127'></a><a href='#L127'>127</a>
193
+ <a name='L128'></a><a href='#L128'>128</a>
194
+ <a name='L129'></a><a href='#L129'>129</a>
195
+ <a name='L130'></a><a href='#L130'>130</a>
196
+ <a name='L131'></a><a href='#L131'>131</a>
197
+ <a name='L132'></a><a href='#L132'>132</a>
198
+ <a name='L133'></a><a href='#L133'>133</a>
199
+ <a name='L134'></a><a href='#L134'>134</a>
200
+ <a name='L135'></a><a href='#L135'>135</a>
201
+ <a name='L136'></a><a href='#L136'>136</a>
202
+ <a name='L137'></a><a href='#L137'>137</a>
203
+ <a name='L138'></a><a href='#L138'>138</a>
204
+ <a name='L139'></a><a href='#L139'>139</a>
205
+ <a name='L140'></a><a href='#L140'>140</a>
206
+ <a name='L141'></a><a href='#L141'>141</a>
207
+ <a name='L142'></a><a href='#L142'>142</a>
208
+ <a name='L143'></a><a href='#L143'>143</a>
209
+ <a name='L144'></a><a href='#L144'>144</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">56x</span>
210
+ <span class="cline-any cline-yes">56x</span>
211
+ <span class="cline-any cline-neutral">&nbsp;</span>
212
+ <span class="cline-any cline-neutral">&nbsp;</span>
213
+ <span class="cline-any cline-neutral">&nbsp;</span>
214
+ <span class="cline-any cline-neutral">&nbsp;</span>
215
+ <span class="cline-any cline-yes">56x</span>
216
+ <span class="cline-any cline-yes">56x</span>
217
+ <span class="cline-any cline-yes">56x</span>
218
+ <span class="cline-any cline-yes">56x</span>
219
+ <span class="cline-any cline-neutral">&nbsp;</span>
220
+ <span class="cline-any cline-yes">56x</span>
221
+ <span class="cline-any cline-yes">56x</span>
222
+ <span class="cline-any cline-neutral">&nbsp;</span>
223
+ <span class="cline-any cline-neutral">&nbsp;</span>
224
+ <span class="cline-any cline-yes">136x</span>
225
+ <span class="cline-any cline-yes">132x</span>
226
+ <span class="cline-any cline-neutral">&nbsp;</span>
227
+ <span class="cline-any cline-yes">136x</span>
194
228
  <span class="cline-any cline-no">&nbsp;</span>
195
- <span class="cline-any cline-yes">134x</span>
229
+ <span class="cline-any cline-yes">136x</span>
196
230
  <span class="cline-any cline-no">&nbsp;</span>
197
231
  <span class="cline-any cline-neutral">&nbsp;</span>
198
- <span class="cline-any cline-yes">134x</span>
232
+ <span class="cline-any cline-yes">136x</span>
199
233
  <span class="cline-any cline-neutral">&nbsp;</span>
200
234
  <span class="cline-any cline-neutral">&nbsp;</span>
201
235
  <span class="cline-any cline-neutral">&nbsp;</span>
202
- <span class="cline-any cline-yes">55x</span>
236
+ <span class="cline-any cline-yes">56x</span>
203
237
  <span class="cline-any cline-yes">2x</span>
204
238
  <span class="cline-any cline-neutral">&nbsp;</span>
205
239
  <span class="cline-any cline-yes">2x</span>
@@ -227,33 +261,33 @@
227
261
  <span class="cline-any cline-yes">2x</span>
228
262
  <span class="cline-any cline-neutral">&nbsp;</span>
229
263
  <span class="cline-any cline-neutral">&nbsp;</span>
230
- <span class="cline-any cline-yes">55x</span>
231
- <span class="cline-any cline-yes">26x</span>
232
- <span class="cline-any cline-yes">26x</span>
264
+ <span class="cline-any cline-yes">83x</span>
265
+ <span class="cline-any cline-yes">28x</span>
266
+ <span class="cline-any cline-yes">28x</span>
233
267
  <span class="cline-any cline-neutral">&nbsp;</span>
234
268
  <span class="cline-any cline-neutral">&nbsp;</span>
235
- <span class="cline-any cline-yes">55x</span>
236
- <span class="cline-any cline-yes">130x</span>
237
- <span class="cline-any cline-yes">130x</span>
269
+ <span class="cline-any cline-yes">180x</span>
270
+ <span class="cline-any cline-yes">132x</span>
271
+ <span class="cline-any cline-yes">132x</span>
272
+ <span class="cline-any cline-yes">132x</span>
238
273
  <span class="cline-any cline-neutral">&nbsp;</span>
239
- <span class="cline-any cline-yes">130x</span>
240
- <span class="cline-any cline-yes">130x</span>
241
- <span class="cline-any cline-yes">130x</span>
242
- <span class="cline-any cline-yes">124x</span>
274
+ <span class="cline-any cline-yes">132x</span>
275
+ <span class="cline-any cline-yes">132x</span>
276
+ <span class="cline-any cline-yes">126x</span>
243
277
  <span class="cline-any cline-neutral">&nbsp;</span>
244
278
  <span class="cline-any cline-yes">6x</span>
245
279
  <span class="cline-any cline-neutral">&nbsp;</span>
246
- <span class="cline-any cline-yes">130x</span>
280
+ <span class="cline-any cline-yes">132x</span>
247
281
  <span class="cline-any cline-yes">1x</span>
248
282
  <span class="cline-any cline-neutral">&nbsp;</span>
249
- <span class="cline-any cline-yes">130x</span>
250
- <span class="cline-any cline-yes">130x</span>
251
- <span class="cline-any cline-yes">130x</span>
283
+ <span class="cline-any cline-yes">132x</span>
284
+ <span class="cline-any cline-yes">132x</span>
285
+ <span class="cline-any cline-yes">132x</span>
252
286
  <span class="cline-any cline-neutral">&nbsp;</span>
253
- <span class="cline-any cline-yes">130x</span>
287
+ <span class="cline-any cline-yes">132x</span>
254
288
  <span class="cline-any cline-neutral">&nbsp;</span>
255
289
  <span class="cline-any cline-neutral">&nbsp;</span>
256
- <span class="cline-any cline-yes">55x</span>
290
+ <span class="cline-any cline-yes">56x</span>
257
291
  <span class="cline-any cline-yes">3x</span>
258
292
  <span class="cline-any cline-yes">3x</span>
259
293
  <span class="cline-any cline-yes">3x</span>
@@ -276,29 +310,58 @@
276
310
  <span class="cline-any cline-neutral">&nbsp;</span>
277
311
  <span class="cline-any cline-neutral">&nbsp;</span>
278
312
  <span class="cline-any cline-yes">55x</span>
313
+ <span class="cline-any cline-no">&nbsp;</span>
279
314
  <span class="cline-any cline-neutral">&nbsp;</span>
280
- <span class="cline-any cline-yes">1x</span>
315
+ <span class="cline-any cline-no">&nbsp;</span>
281
316
  <span class="cline-any cline-neutral">&nbsp;</span>
282
- <span class="cline-any cline-yes">1x</span>
317
+ <span class="cline-any cline-no">&nbsp;</span>
283
318
  <span class="cline-any cline-no">&nbsp;</span>
284
319
  <span class="cline-any cline-neutral">&nbsp;</span>
285
- <span class="cline-any cline-yes">1x</span>
286
320
  <span class="cline-any cline-neutral">&nbsp;</span>
321
+ <span class="cline-any cline-yes">55x</span>
322
+ <span class="cline-any cline-no">&nbsp;</span>
287
323
  <span class="cline-any cline-neutral">&nbsp;</span>
324
+ <span class="cline-any cline-no">&nbsp;</span>
325
+ <span class="cline-any cline-no">&nbsp;</span>
326
+ <span class="cline-any cline-no">&nbsp;</span>
327
+ <span class="cline-any cline-neutral">&nbsp;</span>
328
+ <span class="cline-any cline-no">&nbsp;</span>
329
+ <span class="cline-any cline-neutral">&nbsp;</span>
330
+ <span class="cline-any cline-neutral">&nbsp;</span>
331
+ <span class="cline-any cline-neutral">&nbsp;</span>
332
+ <span class="cline-any cline-yes">55x</span>
333
+ <span class="cline-any cline-neutral">&nbsp;</span>
334
+ <span class="cline-any cline-no">&nbsp;</span>
335
+ <span class="cline-any cline-neutral">&nbsp;</span>
336
+ <span class="cline-any cline-no">&nbsp;</span>
337
+ <span class="cline-any cline-no">&nbsp;</span>
338
+ <span class="cline-any cline-no">&nbsp;</span>
339
+ <span class="cline-any cline-no">&nbsp;</span>
340
+ <span class="cline-any cline-neutral">&nbsp;</span>
341
+ <span class="cline-any cline-no">&nbsp;</span>
342
+ <span class="cline-any cline-no">&nbsp;</span>
343
+ <span class="cline-any cline-neutral">&nbsp;</span>
344
+ <span class="cline-any cline-neutral">&nbsp;</span>
345
+ <span class="cline-any cline-no">&nbsp;</span>
346
+ <span class="cline-any cline-no">&nbsp;</span>
347
+ <span class="cline-any cline-no">&nbsp;</span>
288
348
  <span class="cline-any cline-neutral">&nbsp;</span>
289
- <span class="cline-any cline-yes">1x</span>
290
349
  <span class="cline-any cline-no">&nbsp;</span>
291
350
  <span class="cline-any cline-neutral">&nbsp;</span>
292
- <span class="cline-any cline-yes">1x</span>
293
351
  <span class="cline-any cline-neutral">&nbsp;</span>
294
352
  <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import * as internal from "./internal"
295
353
  import * as external from "./external"
296
- import * as csvParser from "../../../utilities/csvParser"
354
+ import {
355
+ validate as validateSchema,
356
+ isSchema,
357
+ isRows,
358
+ } from "../../../utilities/schema"
297
359
  import { isExternalTable, isSQL } from "../../../integrations/utils"
298
360
  import { getDatasourceParams } from "../../../db/utils"
299
361
  import { context, events } from "@budibase/backend-core"
300
362
  import { Table, BBContext } from "@budibase/types"
301
363
  import sdk from "../../../sdk"
364
+ import csv from "csvtojson"
302
365
  &nbsp;
303
366
  function pickApi({ tableId, table }: { tableId?: string; table?: Table }) {
304
367
  if (table &amp;&amp; !tableId) {
@@ -324,10 +387,10 @@ export async function fetch(ctx: BBContext) {
324
387
  })
325
388
  )
326
389
  &nbsp;
327
- const external = externalTables.rows.flatMap(<span class="fstat-no" title="function not covered" >tableDoc </span>=&gt; {
390
+ const external = externalTables.rows.flatMap(<span class="fstat-no" title="function not covered" >tableDoc =&gt; {</span>
328
391
  let entities = <span class="cstat-no" title="statement not covered" >tableDoc.doc.entities</span>
329
392
  <span class="cstat-no" title="statement not covered" > if (entities) {</span>
330
- <span class="cstat-no" title="statement not covered" > return Object.values(entities).map(<span class="fstat-no" title="function not covered" >(e</span>ntity: any) =&gt; <span class="cstat-no" title="statement not covered" >({</span></span>
393
+ <span class="cstat-no" title="statement not covered" > return Object.values(entities).map(<span class="fstat-no" title="function not covered" >(e</span>ntity: any) =&gt; (<span class="cstat-no" title="statement not covered" >{</span></span>
331
394
  ...entity,
332
395
  type: "external",
333
396
  sourceId: tableDoc.doc._id,
@@ -349,16 +412,16 @@ export async function find(ctx: BBContext) {
349
412
  export async function save(ctx: BBContext) {
350
413
  const appId = ctx.appId
351
414
  const table = ctx.request.body
352
- const importFormat =
353
- table.dataImport &amp;&amp; table.dataImport.csvString ? "csv" : undefined
415
+ const isImport = table.rows
416
+ &nbsp;
354
417
  const savedTable = await pickApi({ table }).save(ctx)
355
418
  if (!table._id) {
356
419
  await events.table.created(savedTable)
357
420
  } else {
358
421
  await events.table.updated(savedTable)
359
422
  }
360
- if (importFormat) {
361
- await events.table.imported(savedTable, importFormat)
423
+ if (isImport) {
424
+ await events.table.imported(savedTable)
362
425
  }
363
426
  ctx.status = 200
364
427
  ctx.message = `Table ${table.name} saved successfully.`
@@ -389,21 +452,45 @@ export async function bulkImport(ctx: BBContext) {
389
452
  ctx.body = { message: `Bulk rows created.` }
390
453
  }
391
454
  &nbsp;
392
- export async function validateCSVSchema(ctx: BBContext) {
393
- // tableId being specified means its an import to an existing table
394
- const { csvString, schema = {}, tableId } = ctx.request.body
395
- let existingTable
396
- <span class="missing-if-branch" title="if path not taken" >I</span>if (tableId) {
397
- <span class="cstat-no" title="statement not covered" > existingTable = await sdk.tables.getTable(tableId)</span>
455
+ export async function <span class="fstat-no" title="function not covered" >csvToJson(</span>ctx: BBContext) {
456
+ const { csvString } = <span class="cstat-no" title="statement not covered" >ctx.request.body</span>
457
+ &nbsp;
458
+ const result = <span class="cstat-no" title="statement not covered" >await csv().fromString(csvString)</span>
459
+ &nbsp;
460
+ <span class="cstat-no" title="statement not covered" > ctx.status = 200</span>
461
+ <span class="cstat-no" title="statement not covered" > ctx.body = result</span>
462
+ }
463
+ &nbsp;
464
+ export async function <span class="fstat-no" title="function not covered" >validateNewTableImport(</span>ctx: BBContext) {
465
+ const { rows, schema }: { rows: unknown; schema: unknown } = <span class="cstat-no" title="statement not covered" >ctx.request.body</span>
466
+ &nbsp;
467
+ <span class="cstat-no" title="statement not covered" > if (isRows(rows) &amp;&amp; isSchema(schema)) {</span>
468
+ <span class="cstat-no" title="statement not covered" > ctx.status = 200</span>
469
+ <span class="cstat-no" title="statement not covered" > ctx.body = validateSchema(rows, schema)</span>
470
+ } else {
471
+ <span class="cstat-no" title="statement not covered" > ctx.status = 422</span>
398
472
  }
399
- let result: Record&lt;string, any&gt; | undefined = await csvParser.parse(
400
- csvString,
401
- schema
402
- )
403
- <span class="missing-if-branch" title="if path not taken" >I</span>if (existingTable) {
404
- <span class="cstat-no" title="statement not covered" > result = csvParser.updateSchema({ schema: result, existingTable })</span>
473
+ }
474
+ &nbsp;
475
+ export async function <span class="fstat-no" title="function not covered" >validateExistingTableImport(</span>ctx: BBContext) {
476
+ const { rows, tableId }: { rows: unknown; tableId: unknown } =
477
+ <span class="cstat-no" title="statement not covered" > ctx.request.body</span>
478
+ &nbsp;
479
+ let schema = <span class="cstat-no" title="statement not covered" >null</span>
480
+ <span class="cstat-no" title="statement not covered" > if (tableId) {</span>
481
+ const table = <span class="cstat-no" title="statement not covered" >await sdk.tables.getTable(tableId)</span>
482
+ <span class="cstat-no" title="statement not covered" > schema = table.schema</span>
483
+ } else {
484
+ <span class="cstat-no" title="statement not covered" > ctx.status = 422</span>
485
+ <span class="cstat-no" title="statement not covered" > return</span>
486
+ }
487
+ &nbsp;
488
+ <span class="cstat-no" title="statement not covered" > if (tableId &amp;&amp; isRows(rows) &amp;&amp; isSchema(schema)) {</span>
489
+ <span class="cstat-no" title="statement not covered" > ctx.status = 200</span>
490
+ <span class="cstat-no" title="statement not covered" > ctx.body = validateSchema(rows, schema)</span>
491
+ } else {
492
+ <span class="cstat-no" title="statement not covered" > ctx.status = 422</span>
405
493
  }
406
- ctx.body = { schema: result }
407
494
  }
408
495
  &nbsp;</pre></td></tr></table></pre>
409
496
 
@@ -412,7 +499,7 @@ export async function validateCSVSchema(ctx: BBContext) {
412
499
  <div class='footer quiet pad2 space-top1 center small'>
413
500
  Code coverage generated by
414
501
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
415
- at Tue Jan 10 2023 14:54:34 GMT+0000 (Coordinated Universal Time)
502
+ at Wed Jan 25 2023 19:12:34 GMT+0000 (Coordinated Universal Time)
416
503
  </div>
417
504
  <script src="../../../../prettify.js"></script>
418
505
  <script>