@budibase/server 2.2.12-alpha.3 → 2.2.12-alpha.31

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 (500) hide show
  1. package/builder/assets/{bb-emblem.4e4717da.svg → bb-emblem.05f7ae7a.svg} +1 -1
  2. package/builder/assets/index.2203da4c.css +6 -0
  3. package/builder/assets/{index.8a1f534a.js → index.d48f71a4.js} +411 -423
  4. package/builder/index.html +2 -2
  5. package/coverage/clover.xml +1959 -2080
  6. package/coverage/coverage-final.json +278 -279
  7. package/coverage/lcov-report/index.html +391 -391
  8. package/coverage/lcov-report/src/api/controllers/analytics.ts.html +4 -4
  9. package/coverage/lcov-report/src/api/controllers/apikeys.ts.html +2 -2
  10. package/coverage/lcov-report/src/api/controllers/application.ts.html +82 -82
  11. package/coverage/lcov-report/src/api/controllers/auth.ts.html +2 -2
  12. package/coverage/lcov-report/src/api/controllers/automation.ts.html +17 -17
  13. package/coverage/lcov-report/src/api/controllers/backup.ts.html +3 -3
  14. package/coverage/lcov-report/src/api/controllers/cloud.ts.html +5 -5
  15. package/coverage/lcov-report/src/api/controllers/component.ts.html +8 -8
  16. package/coverage/lcov-report/src/api/controllers/datasource.ts.html +23 -23
  17. package/coverage/lcov-report/src/api/controllers/deploy/Deployment.ts.html +16 -16
  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 +73 -73
  20. package/coverage/lcov-report/src/api/controllers/dev.ts.html +15 -15
  21. package/coverage/lcov-report/src/api/controllers/index.html +98 -98
  22. package/coverage/lcov-report/src/api/controllers/integration.ts.html +2 -2
  23. package/coverage/lcov-report/src/api/controllers/layout.ts.html +5 -5
  24. package/coverage/lcov-report/src/api/controllers/metadata.ts.html +3 -3
  25. package/coverage/lcov-report/src/api/controllers/migrations.ts.html +3 -3
  26. package/coverage/lcov-report/src/api/controllers/permission.ts.html +4 -4
  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 +17 -17
  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 +21 -21
  31. package/coverage/lcov-report/src/api/controllers/plugin/npm.ts.html +7 -7
  32. package/coverage/lcov-report/src/api/controllers/plugin/uploaders.ts.html +5 -5
  33. package/coverage/lcov-report/src/api/controllers/plugin/url.ts.html +2 -2
  34. package/coverage/lcov-report/src/api/controllers/plugin/utils.ts.html +2 -2
  35. package/coverage/lcov-report/src/api/controllers/public/applications.ts.html +27 -27
  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 +6 -6
  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 +3 -3
  40. package/coverage/lcov-report/src/api/controllers/public/mapping/queries.ts.html +7 -7
  41. package/coverage/lcov-report/src/api/controllers/public/mapping/rows.ts.html +3 -3
  42. package/coverage/lcov-report/src/api/controllers/public/mapping/tables.ts.html +3 -3
  43. package/coverage/lcov-report/src/api/controllers/public/mapping/users.ts.html +3 -3
  44. package/coverage/lcov-report/src/api/controllers/public/queries.ts.html +13 -13
  45. package/coverage/lcov-report/src/api/controllers/public/rows.ts.html +18 -18
  46. package/coverage/lcov-report/src/api/controllers/public/tables.ts.html +19 -19
  47. package/coverage/lcov-report/src/api/controllers/public/users.ts.html +24 -24
  48. package/coverage/lcov-report/src/api/controllers/public/utils.ts.html +5 -5
  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 +5 -5
  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 +13 -13
  53. package/coverage/lcov-report/src/api/controllers/query/import/sources/base/openapi.ts.html +5 -5
  54. package/coverage/lcov-report/src/api/controllers/query/import/sources/curl.ts.html +6 -6
  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 +8 -8
  57. package/coverage/lcov-report/src/api/controllers/query/import/sources/openapi3.ts.html +8 -8
  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 +20 -20
  60. package/coverage/lcov-report/src/api/controllers/query/validation.ts.html +5 -5
  61. package/coverage/lcov-report/src/api/controllers/role.ts.html +4 -4
  62. package/coverage/lcov-report/src/api/controllers/routing.ts.html +5 -5
  63. package/coverage/lcov-report/src/api/controllers/row/ExternalRequest.ts.html +48 -30
  64. package/coverage/lcov-report/src/api/controllers/row/external.ts.html +38 -38
  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 +12 -12
  67. package/coverage/lcov-report/src/api/controllers/row/internal.ts.html +39 -36
  68. package/coverage/lcov-report/src/api/controllers/row/internalSearch.ts.html +28 -28
  69. package/coverage/lcov-report/src/api/controllers/row/staticFormula.ts.html +14 -14
  70. package/coverage/lcov-report/src/api/controllers/row/utils.ts.html +7 -7
  71. package/coverage/lcov-report/src/api/controllers/screen.ts.html +8 -8
  72. package/coverage/lcov-report/src/api/controllers/script.ts.html +10 -10
  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 +17 -17
  75. package/coverage/lcov-report/src/api/controllers/table/bulkFormula.ts.html +10 -10
  76. package/coverage/lcov-report/src/api/controllers/table/external.ts.html +33 -33
  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 +128 -41
  79. package/coverage/lcov-report/src/api/controllers/table/internal.ts.html +19 -22
  80. package/coverage/lcov-report/src/api/controllers/table/utils.ts.html +52 -55
  81. package/coverage/lcov-report/src/api/controllers/templates.ts.html +15 -15
  82. package/coverage/lcov-report/src/api/controllers/user.ts.html +101 -77
  83. package/coverage/lcov-report/src/api/controllers/view/exporters.ts.html +63 -18
  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 +62 -35
  86. package/coverage/lcov-report/src/api/controllers/view/utils.ts.html +19 -19
  87. package/coverage/lcov-report/src/api/controllers/view/viewBuilder.ts.html +3 -3
  88. package/coverage/lcov-report/src/api/controllers/webhook.ts.html +4 -4
  89. package/coverage/lcov-report/src/api/index.html +15 -15
  90. package/coverage/lcov-report/src/api/index.ts.html +10 -10
  91. package/coverage/lcov-report/src/api/routes/analytics.ts.html +4 -4
  92. package/coverage/lcov-report/src/api/routes/apikeys.ts.html +4 -4
  93. package/coverage/lcov-report/src/api/routes/application.ts.html +4 -4
  94. package/coverage/lcov-report/src/api/routes/auth.ts.html +4 -4
  95. package/coverage/lcov-report/src/api/routes/automation.ts.html +5 -5
  96. package/coverage/lcov-report/src/api/routes/backup.ts.html +4 -4
  97. package/coverage/lcov-report/src/api/routes/cloud.ts.html +4 -4
  98. package/coverage/lcov-report/src/api/routes/component.ts.html +4 -4
  99. package/coverage/lcov-report/src/api/routes/datasource.ts.html +5 -5
  100. package/coverage/lcov-report/src/api/routes/deploy.ts.html +4 -4
  101. package/coverage/lcov-report/src/api/routes/dev.ts.html +5 -5
  102. package/coverage/lcov-report/src/api/routes/index.html +66 -66
  103. package/coverage/lcov-report/src/api/routes/index.ts.html +5 -5
  104. package/coverage/lcov-report/src/api/routes/integration.ts.html +4 -4
  105. package/coverage/lcov-report/src/api/routes/layout.ts.html +4 -4
  106. package/coverage/lcov-report/src/api/routes/metadata.ts.html +5 -5
  107. package/coverage/lcov-report/src/api/routes/migrations.ts.html +4 -4
  108. package/coverage/lcov-report/src/api/routes/permission.ts.html +4 -4
  109. package/coverage/lcov-report/src/api/routes/plugin.ts.html +3 -3
  110. package/coverage/lcov-report/src/api/routes/public/applications.ts.html +3 -3
  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 +10 -10
  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 +10 -10
  115. package/coverage/lcov-report/src/api/routes/public/queries.ts.html +3 -3
  116. package/coverage/lcov-report/src/api/routes/public/rows.ts.html +3 -3
  117. package/coverage/lcov-report/src/api/routes/public/tables.ts.html +3 -3
  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 +3 -3
  121. package/coverage/lcov-report/src/api/routes/public/utils/Endpoint.ts.html +4 -4
  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 +5 -5
  124. package/coverage/lcov-report/src/api/routes/role.ts.html +4 -4
  125. package/coverage/lcov-report/src/api/routes/routing.ts.html +4 -4
  126. package/coverage/lcov-report/src/api/routes/row.ts.html +3 -3
  127. package/coverage/lcov-report/src/api/routes/screen.ts.html +4 -4
  128. package/coverage/lcov-report/src/api/routes/script.ts.html +13 -13
  129. package/coverage/lcov-report/src/api/routes/static.ts.html +6 -6
  130. package/coverage/lcov-report/src/api/routes/table.ts.html +20 -89
  131. package/coverage/lcov-report/src/api/routes/templates.ts.html +4 -4
  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 +4 -4
  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 +8 -8
  138. package/coverage/lcov-report/src/api/routes/view.ts.html +4 -4
  139. package/coverage/lcov-report/src/api/routes/webhook.ts.html +4 -4
  140. package/coverage/lcov-report/src/app.ts.html +22 -16
  141. package/coverage/lcov-report/src/automations/actions.ts.html +9 -9
  142. package/coverage/lcov-report/src/automations/automationUtils.ts.html +15 -15
  143. package/coverage/lcov-report/src/automations/bullboard.ts.html +12 -12
  144. package/coverage/lcov-report/src/automations/index.html +52 -52
  145. package/coverage/lcov-report/src/automations/index.ts.html +16 -16
  146. package/coverage/lcov-report/src/automations/logging/index.html +3 -3
  147. package/coverage/lcov-report/src/automations/logging/index.ts.html +5 -5
  148. package/coverage/lcov-report/src/automations/steps/bash.ts.html +5 -5
  149. package/coverage/lcov-report/src/automations/steps/createRow.ts.html +4 -4
  150. package/coverage/lcov-report/src/automations/steps/delay.ts.html +4 -4
  151. package/coverage/lcov-report/src/automations/steps/deleteRow.ts.html +4 -4
  152. package/coverage/lcov-report/src/automations/steps/discord.ts.html +5 -5
  153. package/coverage/lcov-report/src/automations/steps/executeQuery.ts.html +4 -4
  154. package/coverage/lcov-report/src/automations/steps/executeScript.ts.html +4 -4
  155. package/coverage/lcov-report/src/automations/steps/filter.ts.html +8 -8
  156. package/coverage/lcov-report/src/automations/steps/index.html +71 -71
  157. package/coverage/lcov-report/src/automations/steps/integromat.ts.html +6 -6
  158. package/coverage/lcov-report/src/automations/steps/loop.ts.html +3 -3
  159. package/coverage/lcov-report/src/automations/steps/outgoingWebhook.ts.html +12 -12
  160. package/coverage/lcov-report/src/automations/steps/queryRows.ts.html +12 -12
  161. package/coverage/lcov-report/src/automations/steps/sendSmtpEmail.ts.html +5 -5
  162. package/coverage/lcov-report/src/automations/steps/serverLog.ts.html +5 -5
  163. package/coverage/lcov-report/src/automations/steps/slack.ts.html +6 -6
  164. package/coverage/lcov-report/src/automations/steps/updateRow.ts.html +4 -4
  165. package/coverage/lcov-report/src/automations/steps/utils.ts.html +4 -4
  166. package/coverage/lcov-report/src/automations/steps/zapier.ts.html +4 -4
  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 +14 -14
  169. package/coverage/lcov-report/src/automations/triggerInfo/app.ts.html +5 -5
  170. package/coverage/lcov-report/src/automations/triggerInfo/cron.ts.html +5 -5
  171. package/coverage/lcov-report/src/automations/triggerInfo/index.html +17 -17
  172. package/coverage/lcov-report/src/automations/triggerInfo/index.ts.html +4 -4
  173. package/coverage/lcov-report/src/automations/triggerInfo/rowDeleted.ts.html +5 -5
  174. package/coverage/lcov-report/src/automations/triggerInfo/rowSaved.ts.html +5 -5
  175. package/coverage/lcov-report/src/automations/triggerInfo/rowUpdated.ts.html +5 -5
  176. package/coverage/lcov-report/src/automations/triggerInfo/webhook.ts.html +5 -5
  177. package/coverage/lcov-report/src/automations/triggers.ts.html +11 -11
  178. package/coverage/lcov-report/src/automations/utils.ts.html +37 -37
  179. package/coverage/lcov-report/src/constants/index.html +19 -19
  180. package/coverage/lcov-report/src/constants/index.ts.html +103 -103
  181. package/coverage/lcov-report/src/constants/layouts.ts.html +6 -6
  182. package/coverage/lcov-report/src/constants/screens.ts.html +2 -2
  183. package/coverage/lcov-report/src/db/defaultData/datasource_bb_default.ts.html +25 -25
  184. package/coverage/lcov-report/src/db/defaultData/employeeImport.ts.html +7 -7
  185. package/coverage/lcov-report/src/db/defaultData/expensesImport.ts.html +7 -7
  186. package/coverage/lcov-report/src/db/defaultData/index.html +43 -43
  187. package/coverage/lcov-report/src/db/defaultData/inventoryImport.ts.html +7 -7
  188. package/coverage/lcov-report/src/db/defaultData/jobsImport.ts.html +7 -7
  189. package/coverage/lcov-report/src/db/dynamoClient.ts.html +12 -12
  190. package/coverage/lcov-report/src/db/inMemoryView.ts.html +10 -10
  191. package/coverage/lcov-report/src/db/index.html +32 -32
  192. package/coverage/lcov-report/src/db/index.ts.html +3 -3
  193. package/coverage/lcov-report/src/db/linkedRows/LinkController.ts.html +22 -22
  194. package/coverage/lcov-report/src/db/linkedRows/LinkDocument.ts.html +4 -4
  195. package/coverage/lcov-report/src/db/linkedRows/index.html +37 -37
  196. package/coverage/lcov-report/src/db/linkedRows/index.ts.html +18 -18
  197. package/coverage/lcov-report/src/db/linkedRows/linkUtils.ts.html +15 -15
  198. package/coverage/lcov-report/src/db/newid.ts.html +4 -4
  199. package/coverage/lcov-report/src/db/utils.ts.html +59 -59
  200. package/coverage/lcov-report/src/definitions/automations.ts.html +4 -4
  201. package/coverage/lcov-report/src/definitions/datasource.ts.html +4 -4
  202. package/coverage/lcov-report/src/definitions/index.html +4 -4
  203. package/coverage/lcov-report/src/environment.ts.html +25 -25
  204. package/coverage/lcov-report/src/events/AutomationEmitter.ts.html +7 -7
  205. package/coverage/lcov-report/src/events/BudibaseEmitter.ts.html +4 -4
  206. package/coverage/lcov-report/src/events/index.html +20 -20
  207. package/coverage/lcov-report/src/events/index.ts.html +5 -5
  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 +8 -8
  212. package/coverage/lcov-report/src/integrations/arangodb.ts.html +7 -7
  213. package/coverage/lcov-report/src/integrations/base/index.html +20 -20
  214. package/coverage/lcov-report/src/integrations/base/query.ts.html +2 -2
  215. package/coverage/lcov-report/src/integrations/base/sql.ts.html +28 -28
  216. package/coverage/lcov-report/src/integrations/base/sqlTable.ts.html +15 -15
  217. package/coverage/lcov-report/src/integrations/base/utils.ts.html +2 -2
  218. package/coverage/lcov-report/src/integrations/couchdb.ts.html +8 -8
  219. package/coverage/lcov-report/src/integrations/dynamodb.ts.html +12 -12
  220. package/coverage/lcov-report/src/integrations/elasticsearch.ts.html +7 -7
  221. package/coverage/lcov-report/src/integrations/firebase.ts.html +10 -10
  222. package/coverage/lcov-report/src/integrations/googlesheets.ts.html +33 -33
  223. package/coverage/lcov-report/src/integrations/index.html +123 -123
  224. package/coverage/lcov-report/src/integrations/index.ts.html +13 -13
  225. package/coverage/lcov-report/src/integrations/microsoftSqlServer.ts.html +26 -26
  226. package/coverage/lcov-report/src/integrations/mongodb.ts.html +15 -15
  227. package/coverage/lcov-report/src/integrations/mysql.ts.html +20 -20
  228. package/coverage/lcov-report/src/integrations/oracle.ts.html +21 -21
  229. package/coverage/lcov-report/src/integrations/postgres.ts.html +15 -15
  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 +5 -5
  233. package/coverage/lcov-report/src/integrations/rest.ts.html +15 -15
  234. package/coverage/lcov-report/src/integrations/s3.ts.html +14 -14
  235. package/coverage/lcov-report/src/integrations/snowflake.ts.html +12 -12
  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 +34 -34
  239. package/coverage/lcov-report/src/middleware/appInfo.ts.html +8 -8
  240. package/coverage/lcov-report/src/middleware/authorized.ts.html +26 -14
  241. package/coverage/lcov-report/src/middleware/builder.ts.html +12 -12
  242. package/coverage/lcov-report/src/middleware/currentapp.ts.html +14 -11
  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 +7 -7
  246. package/coverage/lcov-report/src/middleware/resourceId.ts.html +6 -6
  247. package/coverage/lcov-report/src/middleware/selfhost.ts.html +2 -2
  248. package/coverage/lcov-report/src/middleware/utils.ts.html +2 -2
  249. package/coverage/lcov-report/src/migrations/functions/appUrls.ts.html +4 -4
  250. package/coverage/lcov-report/src/migrations/functions/backfill/app/automations.ts.html +3 -3
  251. package/coverage/lcov-report/src/migrations/functions/backfill/app/datasources.ts.html +3 -3
  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 +4 -4
  254. package/coverage/lcov-report/src/migrations/functions/backfill/app/queries.ts.html +7 -7
  255. package/coverage/lcov-report/src/migrations/functions/backfill/app/roles.ts.html +3 -3
  256. package/coverage/lcov-report/src/migrations/functions/backfill/app/screens.ts.html +3 -3
  257. package/coverage/lcov-report/src/migrations/functions/backfill/app/tables.ts.html +5 -5
  258. package/coverage/lcov-report/src/migrations/functions/backfill/app.ts.html +3 -3
  259. package/coverage/lcov-report/src/migrations/functions/backfill/global/configs.ts.html +6 -6
  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 +3 -3
  262. package/coverage/lcov-report/src/migrations/functions/backfill/global/users.ts.html +8 -8
  263. package/coverage/lcov-report/src/migrations/functions/backfill/global.ts.html +11 -11
  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 +3 -3
  266. package/coverage/lcov-report/src/migrations/functions/backfill/installation.ts.html +7 -7
  267. package/coverage/lcov-report/src/migrations/functions/index.html +18 -18
  268. package/coverage/lcov-report/src/migrations/functions/syncQuotas.ts.html +4 -4
  269. package/coverage/lcov-report/src/migrations/functions/tableSettings.ts.html +7 -7
  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 +2 -2
  272. package/coverage/lcov-report/src/migrations/functions/usageQuotas/syncApps.ts.html +2 -2
  273. package/coverage/lcov-report/src/migrations/functions/usageQuotas/syncPlugins.ts.html +5 -5
  274. package/coverage/lcov-report/src/migrations/functions/usageQuotas/syncRows.ts.html +2 -2
  275. package/coverage/lcov-report/src/migrations/functions/userEmailViewCasing.ts.html +3 -3
  276. package/coverage/lcov-report/src/migrations/index.html +15 -15
  277. package/coverage/lcov-report/src/migrations/index.ts.html +13 -13
  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 +3 -3
  283. package/coverage/lcov-report/src/sdk/app/applications/sync.ts.html +20 -20
  284. package/coverage/lcov-report/src/sdk/app/applications/utils.ts.html +13 -13
  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 +3 -3
  287. package/coverage/lcov-report/src/sdk/app/automations/webhook.ts.html +6 -6
  288. package/coverage/lcov-report/src/sdk/app/backups/constants.ts.html +3 -3
  289. package/coverage/lcov-report/src/sdk/app/backups/exports.ts.html +15 -15
  290. package/coverage/lcov-report/src/sdk/app/backups/imports.ts.html +8 -8
  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 +3 -3
  293. package/coverage/lcov-report/src/sdk/app/backups/statistics.ts.html +7 -7
  294. package/coverage/lcov-report/src/sdk/app/rows/attachments.ts.html +3 -3
  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 +3 -3
  297. package/coverage/lcov-report/src/sdk/app/rows/rows.ts.html +1 -1
  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 +7 -7
  300. package/coverage/lcov-report/src/sdk/index.html +5 -5
  301. package/coverage/lcov-report/src/sdk/index.ts.html +4 -4
  302. package/coverage/lcov-report/src/sdk/users/index.html +6 -6
  303. package/coverage/lcov-report/src/sdk/users/index.ts.html +3 -3
  304. package/coverage/lcov-report/src/sdk/users/utils.ts.html +23 -23
  305. package/coverage/lcov-report/src/startup.ts.html +10 -25
  306. package/coverage/lcov-report/src/tests/utilities/TestConfiguration.ts.html +61 -61
  307. package/coverage/lcov-report/src/tests/utilities/controllers.ts.html +11 -11
  308. package/coverage/lcov-report/src/tests/utilities/index.html +26 -26
  309. package/coverage/lcov-report/src/tests/utilities/index.ts.html +2 -2
  310. package/coverage/lcov-report/src/tests/utilities/structures.ts.html +30 -30
  311. package/coverage/lcov-report/src/threads/automation.ts.html +20 -20
  312. package/coverage/lcov-report/src/threads/index.html +39 -39
  313. package/coverage/lcov-report/src/threads/index.ts.html +17 -17
  314. package/coverage/lcov-report/src/threads/query.ts.html +12 -12
  315. package/coverage/lcov-report/src/threads/utils.ts.html +19 -19
  316. package/coverage/lcov-report/src/utilities/budibaseDir.ts.html +5 -5
  317. package/coverage/lcov-report/src/utilities/centralPath.ts.html +6 -6
  318. package/coverage/lcov-report/src/utilities/fileSystem/app.ts.html +22 -22
  319. package/coverage/lcov-report/src/utilities/fileSystem/clientLibrary.ts.html +19 -19
  320. package/coverage/lcov-report/src/utilities/fileSystem/filesystem.ts.html +35 -35
  321. package/coverage/lcov-report/src/utilities/fileSystem/index.html +42 -42
  322. package/coverage/lcov-report/src/utilities/fileSystem/index.ts.html +6 -6
  323. package/coverage/lcov-report/src/utilities/fileSystem/plugin.ts.html +13 -13
  324. package/coverage/lcov-report/src/utilities/fileSystem/processor.ts.html +9 -9
  325. package/coverage/lcov-report/src/utilities/fileSystem/template.ts.html +11 -11
  326. package/coverage/lcov-report/src/utilities/global.ts.html +51 -51
  327. package/coverage/lcov-report/src/utilities/index.html +74 -89
  328. package/coverage/lcov-report/src/utilities/index.ts.html +25 -25
  329. package/coverage/lcov-report/src/utilities/redis.ts.html +25 -25
  330. package/coverage/lcov-report/src/utilities/routing/index.html +1 -1
  331. package/coverage/lcov-report/src/utilities/routing/index.ts.html +2 -2
  332. package/coverage/lcov-report/src/utilities/rowProcessor/index.html +32 -32
  333. package/coverage/lcov-report/src/utilities/rowProcessor/index.ts.html +20 -20
  334. package/coverage/lcov-report/src/utilities/rowProcessor/map.ts.html +8 -8
  335. package/coverage/lcov-report/src/utilities/rowProcessor/utils.ts.html +15 -15
  336. package/coverage/lcov-report/src/utilities/{csvParser.ts.html → schema.ts.html} +174 -234
  337. package/coverage/lcov-report/src/utilities/scriptRunner.ts.html +4 -4
  338. package/coverage/lcov-report/src/utilities/security.ts.html +10 -10
  339. package/coverage/lcov-report/src/utilities/usageQuota/index.html +9 -9
  340. package/coverage/lcov-report/src/utilities/usageQuota/rows.ts.html +5 -5
  341. package/coverage/lcov-report/src/utilities/usageQuota/usageQuoteReset.ts.html +3 -3
  342. package/coverage/lcov-report/src/utilities/users.ts.html +4 -4
  343. package/coverage/lcov-report/src/utilities/workerRequests.ts.html +57 -30
  344. package/coverage/lcov-report/src/watch.ts.html +13 -13
  345. package/coverage/lcov-report/src/websocket.ts.html +3 -3
  346. package/coverage/lcov.info +7522 -7169
  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/db/index.js +5 -2
  391. package/dist/db/linkedRows/LinkController.js +2 -1
  392. package/dist/db/linkedRows/LinkDocument.js +2 -1
  393. package/dist/db/newid.js +4 -2
  394. package/dist/environment.js +2 -1
  395. package/dist/events/AutomationEmitter.js +2 -1
  396. package/dist/events/BudibaseEmitter.js +2 -1
  397. package/dist/events/index.js +2 -1
  398. package/dist/integrations/index.js +5 -5
  399. package/dist/middleware/authorized.js +2 -1
  400. package/dist/middleware/builder.js +4 -2
  401. package/dist/middleware/currentapp.js +6 -3
  402. package/dist/middleware/publicApi.js +4 -2
  403. package/dist/middleware/selfhost.js +4 -1
  404. package/dist/package.json +9 -7
  405. package/dist/startup.js +17 -17
  406. package/dist/threads/index.js +4 -4
  407. package/dist/tsconfig.build.tsbuildinfo +1 -1
  408. package/dist/utilities/fileSystem/filesystem.js +3 -3
  409. package/dist/utilities/schema.js +108 -0
  410. package/dist/utilities/scriptRunner.js +2 -1
  411. package/dist/utilities/statusCodes.js +2 -1
  412. package/dist/utilities/workerRequests.js +2 -0
  413. package/dist/watch.js +2 -25
  414. package/jest.config.ts +5 -2
  415. package/package.json +10 -8
  416. package/src/api/controllers/query/index.ts +2 -2
  417. package/src/api/controllers/row/ExternalRequest.ts +6 -0
  418. package/src/api/controllers/row/internal.ts +10 -9
  419. package/src/api/controllers/static/index.ts +1 -1
  420. package/src/api/controllers/static/templates/BudibaseApp.svelte +0 -1
  421. package/src/api/controllers/table/external.ts +10 -10
  422. package/src/api/controllers/table/index.ts +46 -17
  423. package/src/api/controllers/table/internal.ts +6 -7
  424. package/src/api/controllers/table/utils.ts +12 -13
  425. package/src/api/controllers/user.ts +21 -13
  426. package/src/api/controllers/view/exporters.ts +20 -5
  427. package/src/api/controllers/view/index.ts +21 -12
  428. package/src/api/controllers/view/tests/viewBuilder.spec.js +1 -1
  429. package/src/api/controllers/view/viewBuilder.ts +1 -1
  430. package/src/api/routes/analytics.ts +1 -1
  431. package/src/api/routes/apikeys.ts +1 -1
  432. package/src/api/routes/application.ts +1 -1
  433. package/src/api/routes/auth.ts +1 -1
  434. package/src/api/routes/automation.ts +1 -1
  435. package/src/api/routes/backup.ts +1 -1
  436. package/src/api/routes/cloud.ts +1 -1
  437. package/src/api/routes/component.ts +1 -1
  438. package/src/api/routes/datasource.ts +1 -1
  439. package/src/api/routes/deploy.ts +1 -1
  440. package/src/api/routes/dev.ts +1 -1
  441. package/src/api/routes/integration.ts +1 -1
  442. package/src/api/routes/layout.ts +1 -1
  443. package/src/api/routes/metadata.ts +1 -1
  444. package/src/api/routes/migrations.ts +1 -1
  445. package/src/api/routes/permission.ts +1 -1
  446. package/src/api/routes/query.ts +1 -1
  447. package/src/api/routes/role.ts +1 -1
  448. package/src/api/routes/routing.ts +1 -1
  449. package/src/api/routes/screen.ts +1 -1
  450. package/src/api/routes/script.ts +1 -1
  451. package/src/api/routes/static.ts +2 -2
  452. package/src/api/routes/table.ts +16 -39
  453. package/src/api/routes/templates.ts +1 -1
  454. package/src/api/routes/tests/misc.spec.js +4 -10
  455. package/src/api/routes/tests/plugin.spec.ts +10 -10
  456. package/src/api/routes/tests/table.spec.js +8 -30
  457. package/src/api/routes/tests/user.spec.js +20 -1
  458. package/src/api/routes/tests/utilities/TestFunctions.ts +1 -1
  459. package/src/api/routes/user.ts +1 -1
  460. package/src/api/routes/utils/validators.ts +1 -1
  461. package/src/api/routes/view.ts +1 -1
  462. package/src/api/routes/webhook.ts +1 -1
  463. package/src/app.ts +5 -3
  464. package/src/automations/logging/index.ts +1 -1
  465. package/src/db/index.ts +1 -1
  466. package/src/db/linkedRows/LinkController.ts +1 -1
  467. package/src/db/linkedRows/LinkDocument.ts +1 -1
  468. package/src/db/newid.ts +1 -1
  469. package/src/db/tests/linkController.spec.js +1 -1
  470. package/src/environment.ts +1 -1
  471. package/src/events/AutomationEmitter.ts +1 -1
  472. package/src/events/BudibaseEmitter.ts +1 -1
  473. package/src/events/index.ts +1 -1
  474. package/src/integrations/index.ts +4 -4
  475. package/src/integrations/tests/rest.spec.ts +15 -13
  476. package/src/middleware/authorized.ts +5 -1
  477. package/src/middleware/builder.ts +1 -1
  478. package/src/middleware/currentapp.ts +4 -3
  479. package/src/middleware/publicApi.ts +1 -1
  480. package/src/middleware/selfhost.ts +1 -1
  481. package/src/middleware/tests/authorized.spec.js +1 -1
  482. package/src/middleware/tests/currentapp.spec.js +1 -1
  483. package/src/middleware/tests/selfhost.spec.js +1 -1
  484. package/src/startup.ts +3 -8
  485. package/src/tests/jestEnv.ts +13 -0
  486. package/src/tests/jestSetup.ts +0 -14
  487. package/src/tests/utilities/TestConfiguration.ts +1 -1
  488. package/src/threads/index.ts +1 -1
  489. package/src/utilities/fileSystem/filesystem.ts +1 -1
  490. package/src/utilities/schema.ts +141 -0
  491. package/src/utilities/scriptRunner.ts +1 -1
  492. package/src/utilities/statusCodes.ts +1 -1
  493. package/src/utilities/workerRequests.ts +10 -1
  494. package/src/watch.ts +1 -1
  495. package/builder/assets/index.fa480d5b.css +0 -6
  496. package/coverage/lcov-report/src/utilities/statusCodes.ts.html +0 -106
  497. package/dist/utilities/csvParser.js +0 -152
  498. package/src/utilities/csvParser.ts +0 -161
  499. package/src/utilities/tests/__snapshots__/csvParser.spec.js.snap +0 -15
  500. 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,14 +177,48 @@
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>
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">55x</span>
181
210
  <span class="cline-any cline-yes">55x</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>
182
215
  <span class="cline-any cline-yes">55x</span>
183
216
  <span class="cline-any cline-yes">55x</span>
184
217
  <span class="cline-any cline-yes">55x</span>
185
218
  <span class="cline-any cline-yes">55x</span>
186
219
  <span class="cline-any cline-neutral">&nbsp;</span>
187
220
  <span class="cline-any cline-yes">55x</span>
221
+ <span class="cline-any cline-yes">55x</span>
188
222
  <span class="cline-any cline-neutral">&nbsp;</span>
189
223
  <span class="cline-any cline-neutral">&nbsp;</span>
190
224
  <span class="cline-any cline-yes">134x</span>
@@ -227,16 +261,16 @@
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>
264
+ <span class="cline-any cline-yes">80x</span>
231
265
  <span class="cline-any cline-yes">26x</span>
232
266
  <span class="cline-any cline-yes">26x</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>
269
+ <span class="cline-any cline-yes">177x</span>
236
270
  <span class="cline-any cline-yes">130x</span>
237
271
  <span class="cline-any cline-yes">130x</span>
238
- <span class="cline-any cline-neutral">&nbsp;</span>
239
272
  <span class="cline-any cline-yes">130x</span>
273
+ <span class="cline-any cline-neutral">&nbsp;</span>
240
274
  <span class="cline-any cline-yes">130x</span>
241
275
  <span class="cline-any cline-yes">130x</span>
242
276
  <span class="cline-any cline-yes">124x</span>
@@ -265,7 +299,7 @@
265
299
  <span class="cline-any cline-yes">3x</span>
266
300
  <span class="cline-any cline-neutral">&nbsp;</span>
267
301
  <span class="cline-any cline-neutral">&nbsp;</span>
268
- <span class="cline-any cline-yes">55x</span>
302
+ <span class="cline-any cline-yes">54x</span>
269
303
  <span class="cline-any cline-yes">1x</span>
270
304
  <span class="cline-any cline-yes">1x</span>
271
305
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -275,30 +309,59 @@
275
309
  <span class="cline-any cline-yes">1x</span>
276
310
  <span class="cline-any cline-neutral">&nbsp;</span>
277
311
  <span class="cline-any cline-neutral">&nbsp;</span>
278
- <span class="cline-any cline-yes">55x</span>
312
+ <span class="cline-any cline-yes">54x</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">54x</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">54x</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 11:12:48 GMT+0000 (Coordinated Universal Time)
502
+ at Fri Jan 20 2023 13:27:05 GMT+0000 (Coordinated Universal Time)
416
503
  </div>
417
504
  <script src="../../../../prettify.js"></script>
418
505
  <script>
@@ -23,9 +23,9 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">78.02% </span>
26
+ <span class="strong">77.27% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>71/91</span>
28
+ <span class='fraction'>68/88</span>
29
29
  </div>
30
30
 
31
31
 
@@ -37,16 +37,16 @@
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">57.14% </span>
40
+ <span class="strong">70% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>4/7</span>
42
+ <span class='fraction'>7/10</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">79.31% </span>
47
+ <span class="strong">79.06% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>69/87</span>
49
+ <span class='fraction'>68/86</span>
50
50
  </div>
51
51
 
52
52
 
@@ -254,9 +254,7 @@
254
254
  <a name='L189'></a><a href='#L189'>189</a>
255
255
  <a name='L190'></a><a href='#L190'>190</a>
256
256
  <a name='L191'></a><a href='#L191'>191</a>
257
- <a name='L192'></a><a href='#L192'>192</a>
258
- <a name='L193'></a><a href='#L193'>193</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">55x</span>
259
- <span class="cline-any cline-yes">55x</span>
257
+ <a name='L192'></a><a href='#L192'>192</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">55x</span>
260
258
  <span class="cline-any cline-yes">55x</span>
261
259
  <span class="cline-any cline-yes">55x</span>
262
260
  <span class="cline-any cline-yes">55x</span>
@@ -266,8 +264,8 @@
266
264
  <span class="cline-any cline-neutral">&nbsp;</span>
267
265
  <span class="cline-any cline-neutral">&nbsp;</span>
268
266
  <span class="cline-any cline-yes">55x</span>
269
- <span class="cline-any cline-neutral">&nbsp;</span>
270
267
  <span class="cline-any cline-yes">55x</span>
268
+ <span class="cline-any cline-neutral">&nbsp;</span>
271
269
  <span class="cline-any cline-yes">55x</span>
272
270
  <span class="cline-any cline-yes">55x</span>
273
271
  <span class="cline-any cline-yes">55x</span>
@@ -291,7 +289,7 @@
291
289
  <span class="cline-any cline-yes">130x</span>
292
290
  <span class="cline-any cline-neutral">&nbsp;</span>
293
291
  <span class="cline-any cline-neutral">&nbsp;</span>
294
- <span class="cline-any cline-yes">55x</span>
292
+ <span class="cline-any cline-yes">130x</span>
295
293
  <span class="cline-any cline-yes">130x</span>
296
294
  <span class="cline-any cline-yes">130x</span>
297
295
  <span class="cline-any cline-yes">130x</span>
@@ -394,7 +392,7 @@
394
392
  <span class="cline-any cline-yes">130x</span>
395
393
  <span class="cline-any cline-neutral">&nbsp;</span>
396
394
  <span class="cline-any cline-neutral">&nbsp;</span>
397
- <span class="cline-any cline-yes">55x</span>
395
+ <span class="cline-any cline-yes">3x</span>
398
396
  <span class="cline-any cline-yes">3x</span>
399
397
  <span class="cline-any cline-yes">3x</span>
400
398
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -441,7 +439,7 @@
441
439
  <span class="cline-any cline-yes">3x</span>
442
440
  <span class="cline-any cline-neutral">&nbsp;</span>
443
441
  <span class="cline-any cline-neutral">&nbsp;</span>
444
- <span class="cline-any cline-yes">55x</span>
442
+ <span class="cline-any cline-yes">1x</span>
445
443
  <span class="cline-any cline-yes">1x</span>
446
444
  <span class="cline-any cline-yes">1x</span>
447
445
  <span class="cline-any cline-yes">1x</span>
@@ -452,7 +450,7 @@ import { getRowParams, generateTableID } from "../../../db/utils"
452
450
  import { FieldTypes } from "../../../constants"
453
451
  import { TableSaveFunctions, hasTypeChanged, handleDataImport } from "./utils"
454
452
  import { context } from "@budibase/backend-core"
455
- import { isTest } from "../../../environment"
453
+ import env from "../../../environment"
456
454
  import {
457
455
  cleanupAttachments,
458
456
  fixAutoColumnSubType,
@@ -462,7 +460,6 @@ import { Table } from "@budibase/types"
462
460
  import { quotas } from "@budibase/pro"
463
461
  import { isEqual } from "lodash"
464
462
  import { cloneDeep } from "lodash/fp"
465
- import env from "../../../environment"
466
463
  import sdk from "../../../sdk"
467
464
  &nbsp;
468
465
  function checkAutoColumns(table: Table, oldTable: Table) {
@@ -485,7 +482,7 @@ function checkAutoColumns(table: Table, oldTable: Table) {
485
482
  &nbsp;
486
483
  export async function save(ctx: any) {
487
484
  const db = context.getAppDB()
488
- const { dataImport, ...rest } = ctx.request.body
485
+ const { rows, ...rest } = ctx.request.body
489
486
  let tableToSave = {
490
487
  type: "table",
491
488
  _id: generateTableID(),
@@ -511,7 +508,7 @@ export async function save(ctx: any) {
511
508
  const tableSaveFunctions = new TableSaveFunctions({
512
509
  user: ctx.user,
513
510
  oldTable,
514
- dataImport,
511
+ importRows: rows,
515
512
  })
516
513
  tableToSave = await tableSaveFunctions.before(tableToSave)
517
514
  &nbsp;
@@ -597,7 +594,7 @@ export async function destroy(ctx: any) {
597
594
  })
598
595
  )
599
596
  await db.bulkDocs(
600
- rowsData.rows.map(<span class="fstat-no" title="function not covered" >(r</span>ow: any) =&gt; <span class="cstat-no" title="statement not covered" >({ ...row.doc, _deleted: true }))</span>
597
+ rowsData.rows.map(<span class="fstat-no" title="function not covered" >(r</span>ow: any) =&gt; (<span class="cstat-no" title="statement not covered" >{ ...row.doc, _deleted: true }))</span>
601
598
  )
602
599
  await quotas.removeRows(rowsData.rows.length, {
603
600
  tableId: ctx.params.tableId,
@@ -613,7 +610,7 @@ export async function destroy(ctx: any) {
613
610
  await db.remove(tableToDelete._id, tableToDelete._rev)
614
611
  &nbsp;
615
612
  // remove table search index
616
- <span class="missing-if-branch" title="if path not taken" >I</span>if (!isTest() || env.COUCH_DB_URL) {
613
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (!env.isTest() || env.COUCH_DB_URL) {
617
614
  const currentIndexes = <span class="cstat-no" title="statement not covered" >await db.getIndexes()</span>
618
615
  const existingIndex = <span class="cstat-no" title="statement not covered" >currentIndexes.indexes.find(</span>
619
616
  <span class="fstat-no" title="function not covered" > (e</span>xisting: any) =&gt; <span class="cstat-no" title="statement not covered" >existing.name === `search:${ctx.params.tableId}`</span>
@@ -635,8 +632,8 @@ export async function destroy(ctx: any) {
635
632
  &nbsp;
636
633
  export async function bulkImport(ctx: any) {
637
634
  const table = await sdk.tables.getTable(ctx.params.tableId)
638
- const { dataImport } = ctx.request.body
639
- await handleDataImport(ctx.user, table, dataImport)
635
+ const { rows } = ctx.request.body
636
+ await handleDataImport(ctx.user, table, rows)
640
637
  return table
641
638
  }
642
639
  &nbsp;</pre></td></tr></table></pre>
@@ -646,7 +643,7 @@ export async function bulkImport(ctx: any) {
646
643
  <div class='footer quiet pad2 space-top1 center small'>
647
644
  Code coverage generated by
648
645
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
649
- at Tue Jan 10 2023 11:12:48 GMT+0000 (Coordinated Universal Time)
646
+ at Fri Jan 20 2023 13:27:05 GMT+0000 (Coordinated Universal Time)
650
647
  </div>
651
648
  <script src="../../../../prettify.js"></script>
652
649
  <script>