@budibase/server 2.2.26 → 2.2.27-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (657) hide show
  1. package/Dockerfile +1 -1
  2. package/__mocks__/aws-sdk.ts +19 -0
  3. package/__mocks__/node-fetch.ts +80 -0
  4. package/builder/assets/{bb-emblem.4e4717da.svg → bb-emblem.05f7ae7a.svg} +1 -1
  5. package/builder/assets/bg.29e85dd5.png +0 -0
  6. package/builder/assets/bulgaria.bd68393d.png +0 -0
  7. package/builder/assets/covanta.72c46c1e.png +0 -0
  8. package/builder/assets/index.3dd03883.css +6 -0
  9. package/builder/assets/index.f9b8b175.js +1802 -0
  10. package/builder/assets/schnellecke.cf1837a8.png +0 -0
  11. package/builder/index.html +3 -3
  12. package/coverage/clover.xml +6618 -6528
  13. package/coverage/coverage-final.json +282 -276
  14. package/coverage/lcov-report/index.html +489 -444
  15. package/coverage/lcov-report/src/api/controllers/analytics.ts.html +9 -9
  16. package/coverage/lcov-report/src/api/controllers/apikeys.ts.html +6 -6
  17. package/coverage/lcov-report/src/api/controllers/application.ts.html +362 -266
  18. package/coverage/lcov-report/src/api/controllers/auth.ts.html +12 -12
  19. package/coverage/lcov-report/src/api/controllers/automation.ts.html +61 -61
  20. package/coverage/lcov-report/src/api/controllers/backup.ts.html +8 -8
  21. package/coverage/lcov-report/src/api/controllers/cloud.ts.html +93 -81
  22. package/coverage/lcov-report/src/api/controllers/component.ts.html +12 -12
  23. package/coverage/lcov-report/src/api/controllers/datasource.ts.html +122 -98
  24. package/coverage/lcov-report/src/api/controllers/deploy/Deployment.ts.html +21 -18
  25. package/coverage/lcov-report/src/api/controllers/deploy/index.html +21 -21
  26. package/coverage/lcov-report/src/api/controllers/deploy/index.ts.html +142 -196
  27. package/coverage/lcov-report/src/api/controllers/dev.ts.html +28 -28
  28. package/coverage/lcov-report/src/api/controllers/index.html +115 -115
  29. package/coverage/lcov-report/src/api/controllers/integration.ts.html +5 -5
  30. package/coverage/lcov-report/src/api/controllers/layout.ts.html +9 -9
  31. package/coverage/lcov-report/src/api/controllers/metadata.ts.html +11 -11
  32. package/coverage/lcov-report/src/api/controllers/migrations.ts.html +6 -6
  33. package/coverage/lcov-report/src/api/controllers/permission.ts.html +14 -14
  34. package/coverage/lcov-report/src/api/controllers/plugin/file.ts.html +20 -20
  35. package/coverage/lcov-report/src/api/controllers/plugin/github.ts.html +62 -62
  36. package/coverage/lcov-report/src/api/controllers/plugin/index.html +72 -72
  37. package/coverage/lcov-report/src/api/controllers/plugin/index.ts.html +150 -135
  38. package/coverage/lcov-report/src/api/controllers/plugin/npm.ts.html +56 -56
  39. package/coverage/lcov-report/src/api/controllers/plugin/uploaders.ts.html +11 -11
  40. package/coverage/lcov-report/src/api/controllers/plugin/url.ts.html +18 -18
  41. package/coverage/lcov-report/src/api/controllers/plugin/utils.ts.html +20 -20
  42. package/coverage/lcov-report/src/api/controllers/public/applications.ts.html +75 -24
  43. package/coverage/lcov-report/src/api/controllers/public/index.html +58 -58
  44. package/coverage/lcov-report/src/api/controllers/public/mapping/applications.ts.html +7 -7
  45. package/coverage/lcov-report/src/api/controllers/public/mapping/index.html +25 -25
  46. package/coverage/lcov-report/src/api/controllers/public/mapping/index.ts.html +9 -9
  47. package/coverage/lcov-report/src/api/controllers/public/mapping/queries.ts.html +8 -8
  48. package/coverage/lcov-report/src/api/controllers/public/mapping/rows.ts.html +4 -4
  49. package/coverage/lcov-report/src/api/controllers/public/mapping/tables.ts.html +4 -4
  50. package/coverage/lcov-report/src/api/controllers/public/mapping/users.ts.html +4 -4
  51. package/coverage/lcov-report/src/api/controllers/public/queries.ts.html +15 -15
  52. package/coverage/lcov-report/src/api/controllers/public/rows.ts.html +21 -21
  53. package/coverage/lcov-report/src/api/controllers/public/tables.ts.html +21 -21
  54. package/coverage/lcov-report/src/api/controllers/public/users.ts.html +27 -27
  55. package/coverage/lcov-report/src/api/controllers/public/utils.ts.html +8 -8
  56. package/coverage/lcov-report/src/api/controllers/query/import/index.html +8 -8
  57. package/coverage/lcov-report/src/api/controllers/query/import/index.ts.html +11 -11
  58. package/coverage/lcov-report/src/api/controllers/query/import/sources/base/index.html +14 -14
  59. package/coverage/lcov-report/src/api/controllers/query/import/sources/base/index.ts.html +14 -14
  60. package/coverage/lcov-report/src/api/controllers/query/import/sources/base/openapi.ts.html +8 -8
  61. package/coverage/lcov-report/src/api/controllers/query/import/sources/curl.ts.html +12 -12
  62. package/coverage/lcov-report/src/api/controllers/query/import/sources/index.html +23 -23
  63. package/coverage/lcov-report/src/api/controllers/query/import/sources/openapi2.ts.html +16 -16
  64. package/coverage/lcov-report/src/api/controllers/query/import/sources/openapi3.ts.html +20 -20
  65. package/coverage/lcov-report/src/api/controllers/query/index.html +20 -20
  66. package/coverage/lcov-report/src/api/controllers/query/index.ts.html +131 -107
  67. package/coverage/lcov-report/src/api/controllers/query/validation.ts.html +11 -11
  68. package/coverage/lcov-report/src/api/controllers/role.ts.html +9 -9
  69. package/coverage/lcov-report/src/api/controllers/routing.ts.html +10 -10
  70. package/coverage/lcov-report/src/api/controllers/row/ExternalRequest.ts.html +56 -41
  71. package/coverage/lcov-report/src/api/controllers/row/external.ts.html +87 -57
  72. package/coverage/lcov-report/src/api/controllers/row/index.html +66 -66
  73. package/coverage/lcov-report/src/api/controllers/row/index.ts.html +37 -37
  74. package/coverage/lcov-report/src/api/controllers/row/internal.ts.html +181 -106
  75. package/coverage/lcov-report/src/api/controllers/row/internalSearch.ts.html +146 -146
  76. package/coverage/lcov-report/src/api/controllers/row/staticFormula.ts.html +44 -35
  77. package/coverage/lcov-report/src/api/controllers/row/utils.ts.html +156 -39
  78. package/coverage/lcov-report/src/api/controllers/screen.ts.html +31 -31
  79. package/coverage/lcov-report/src/api/controllers/script.ts.html +19 -19
  80. package/coverage/lcov-report/src/api/controllers/static/index.html +18 -18
  81. package/coverage/lcov-report/src/api/controllers/static/index.ts.html +56 -71
  82. package/coverage/lcov-report/src/api/controllers/table/bulkFormula.ts.html +60 -60
  83. package/coverage/lcov-report/src/api/controllers/table/external.ts.html +56 -50
  84. package/coverage/lcov-report/src/api/controllers/table/index.html +48 -48
  85. package/coverage/lcov-report/src/api/controllers/table/index.ts.html +157 -70
  86. package/coverage/lcov-report/src/api/controllers/table/internal.ts.html +58 -61
  87. package/coverage/lcov-report/src/api/controllers/table/utils.ts.html +109 -112
  88. package/coverage/lcov-report/src/api/controllers/templates.ts.html +21 -21
  89. package/coverage/lcov-report/src/api/controllers/user.ts.html +159 -135
  90. package/coverage/lcov-report/src/api/controllers/view/exporters.ts.html +64 -19
  91. package/coverage/lcov-report/src/api/controllers/view/index.html +38 -38
  92. package/coverage/lcov-report/src/api/controllers/view/index.ts.html +97 -133
  93. package/coverage/lcov-report/src/api/controllers/view/utils.ts.html +31 -31
  94. package/coverage/lcov-report/src/api/controllers/view/viewBuilder.ts.html +37 -37
  95. package/coverage/lcov-report/src/api/controllers/webhook.ts.html +69 -63
  96. package/coverage/lcov-report/src/api/index.html +15 -15
  97. package/coverage/lcov-report/src/api/index.ts.html +40 -40
  98. package/coverage/lcov-report/src/api/routes/analytics.ts.html +10 -10
  99. package/coverage/lcov-report/src/api/routes/apikeys.ts.html +11 -11
  100. package/coverage/lcov-report/src/api/routes/application.ts.html +46 -13
  101. package/coverage/lcov-report/src/api/routes/auth.ts.html +9 -9
  102. package/coverage/lcov-report/src/api/routes/automation.ts.html +14 -14
  103. package/coverage/lcov-report/src/api/routes/backup.ts.html +11 -11
  104. package/coverage/lcov-report/src/api/routes/cloud.ts.html +11 -11
  105. package/coverage/lcov-report/src/api/routes/component.ts.html +11 -11
  106. package/coverage/lcov-report/src/api/routes/datasource.ts.html +12 -12
  107. package/coverage/lcov-report/src/api/routes/deploy.ts.html +11 -14
  108. package/coverage/lcov-report/src/api/routes/dev.ts.html +17 -17
  109. package/coverage/lcov-report/src/api/routes/index.html +68 -68
  110. package/coverage/lcov-report/src/api/routes/index.ts.html +49 -40
  111. package/coverage/lcov-report/src/api/routes/integration.ts.html +11 -11
  112. package/coverage/lcov-report/src/api/routes/layout.ts.html +11 -11
  113. package/coverage/lcov-report/src/api/routes/metadata.ts.html +12 -12
  114. package/coverage/lcov-report/src/api/routes/migrations.ts.html +10 -10
  115. package/coverage/lcov-report/src/api/routes/permission.ts.html +12 -12
  116. package/coverage/lcov-report/src/api/routes/plugin.ts.html +10 -10
  117. package/coverage/lcov-report/src/api/routes/public/applications.ts.html +147 -15
  118. package/coverage/lcov-report/src/api/routes/public/index.html +27 -27
  119. package/coverage/lcov-report/src/api/routes/public/index.ts.html +60 -60
  120. package/coverage/lcov-report/src/api/routes/public/middleware/index.html +15 -15
  121. package/coverage/lcov-report/src/api/routes/public/middleware/mapper.ts.html +28 -16
  122. package/coverage/lcov-report/src/api/routes/public/queries.ts.html +11 -11
  123. package/coverage/lcov-report/src/api/routes/public/rows.ts.html +14 -14
  124. package/coverage/lcov-report/src/api/routes/public/tables.ts.html +14 -14
  125. package/coverage/lcov-report/src/api/routes/public/tests/index.html +7 -7
  126. package/coverage/lcov-report/src/api/routes/public/tests/utils.ts.html +5 -5
  127. package/coverage/lcov-report/src/api/routes/public/users.ts.html +14 -14
  128. package/coverage/lcov-report/src/api/routes/public/utils/Endpoint.ts.html +21 -21
  129. package/coverage/lcov-report/src/api/routes/public/utils/index.html +5 -5
  130. package/coverage/lcov-report/src/api/routes/query.ts.html +14 -14
  131. package/coverage/lcov-report/src/api/routes/role.ts.html +12 -12
  132. package/coverage/lcov-report/src/api/routes/routing.ts.html +11 -11
  133. package/coverage/lcov-report/src/api/routes/row.ts.html +14 -14
  134. package/coverage/lcov-report/src/api/routes/screen.ts.html +12 -12
  135. package/coverage/lcov-report/src/api/routes/script.ts.html +13 -13
  136. package/coverage/lcov-report/src/api/routes/static.ts.html +18 -18
  137. package/coverage/lcov-report/src/api/routes/table.ts.html +29 -98
  138. package/coverage/lcov-report/src/api/routes/templates.ts.html +11 -11
  139. package/coverage/lcov-report/src/api/routes/tests/utilities/TestFunctions.ts.html +27 -27
  140. package/coverage/lcov-report/src/api/routes/tests/utilities/index.html +23 -23
  141. package/coverage/lcov-report/src/api/routes/tests/utilities/index.ts.html +33 -33
  142. package/coverage/lcov-report/src/api/routes/user.ts.html +12 -12
  143. package/coverage/lcov-report/src/api/routes/utils/index.html +3 -3
  144. package/coverage/lcov-report/src/api/routes/utils/validators.ts.html +44 -44
  145. package/coverage/lcov-report/src/api/routes/view.ts.html +13 -13
  146. package/coverage/lcov-report/src/api/routes/webhook.ts.html +13 -13
  147. package/coverage/lcov-report/src/app.ts.html +53 -47
  148. package/coverage/lcov-report/src/automations/actions.ts.html +31 -31
  149. package/coverage/lcov-report/src/automations/automationUtils.ts.html +127 -55
  150. package/coverage/lcov-report/src/automations/bullboard.ts.html +19 -19
  151. package/coverage/lcov-report/src/automations/index.html +54 -54
  152. package/coverage/lcov-report/src/automations/index.ts.html +23 -23
  153. package/coverage/lcov-report/src/automations/logging/index.html +3 -3
  154. package/coverage/lcov-report/src/automations/logging/index.ts.html +15 -15
  155. package/coverage/lcov-report/src/automations/steps/bash.ts.html +34 -34
  156. package/coverage/lcov-report/src/automations/steps/createRow.ts.html +9 -9
  157. package/coverage/lcov-report/src/automations/steps/delay.ts.html +7 -7
  158. package/coverage/lcov-report/src/automations/steps/deleteRow.ts.html +9 -9
  159. package/coverage/lcov-report/src/automations/steps/discord.ts.html +33 -33
  160. package/coverage/lcov-report/src/automations/steps/executeQuery.ts.html +35 -35
  161. package/coverage/lcov-report/src/automations/steps/executeScript.ts.html +31 -31
  162. package/coverage/lcov-report/src/automations/steps/filter.ts.html +12 -12
  163. package/coverage/lcov-report/src/automations/steps/index.html +129 -129
  164. package/coverage/lcov-report/src/automations/steps/integromat.ts.html +10 -10
  165. package/coverage/lcov-report/src/automations/steps/loop.ts.html +5 -5
  166. package/coverage/lcov-report/src/automations/steps/outgoingWebhook.ts.html +19 -19
  167. package/coverage/lcov-report/src/automations/steps/queryRows.ts.html +43 -43
  168. package/coverage/lcov-report/src/automations/steps/sendSmtpEmail.ts.html +28 -28
  169. package/coverage/lcov-report/src/automations/steps/serverLog.ts.html +19 -19
  170. package/coverage/lcov-report/src/automations/steps/slack.ts.html +10 -10
  171. package/coverage/lcov-report/src/automations/steps/updateRow.ts.html +12 -12
  172. package/coverage/lcov-report/src/automations/steps/utils.ts.html +18 -18
  173. package/coverage/lcov-report/src/automations/steps/zapier.ts.html +22 -22
  174. package/coverage/lcov-report/src/automations/tests/utilities/index.html +15 -15
  175. package/coverage/lcov-report/src/automations/tests/utilities/index.ts.html +32 -32
  176. package/coverage/lcov-report/src/automations/triggerInfo/app.ts.html +6 -6
  177. package/coverage/lcov-report/src/automations/triggerInfo/cron.ts.html +6 -6
  178. package/coverage/lcov-report/src/automations/triggerInfo/index.html +17 -17
  179. package/coverage/lcov-report/src/automations/triggerInfo/index.ts.html +10 -10
  180. package/coverage/lcov-report/src/automations/triggerInfo/rowDeleted.ts.html +6 -6
  181. package/coverage/lcov-report/src/automations/triggerInfo/rowSaved.ts.html +6 -6
  182. package/coverage/lcov-report/src/automations/triggerInfo/rowUpdated.ts.html +6 -6
  183. package/coverage/lcov-report/src/automations/triggerInfo/webhook.ts.html +6 -6
  184. package/coverage/lcov-report/src/automations/triggers.ts.html +53 -38
  185. package/coverage/lcov-report/src/automations/utils.ts.html +80 -80
  186. package/coverage/lcov-report/src/constants/index.html +19 -19
  187. package/coverage/lcov-report/src/constants/index.ts.html +103 -103
  188. package/coverage/lcov-report/src/constants/layouts.ts.html +9 -9
  189. package/coverage/lcov-report/src/constants/screens.ts.html +5 -5
  190. package/coverage/lcov-report/src/db/defaultData/datasource_bb_default.ts.html +45 -45
  191. package/coverage/lcov-report/src/db/defaultData/employeeImport.ts.html +8 -8
  192. package/coverage/lcov-report/src/db/defaultData/expensesImport.ts.html +8 -8
  193. package/coverage/lcov-report/src/db/defaultData/index.html +43 -43
  194. package/coverage/lcov-report/src/db/defaultData/inventoryImport.ts.html +8 -8
  195. package/coverage/lcov-report/src/db/defaultData/jobsImport.ts.html +8 -8
  196. package/coverage/lcov-report/src/db/dynamoClient.ts.html +26 -26
  197. package/coverage/lcov-report/src/db/inMemoryView.ts.html +13 -13
  198. package/coverage/lcov-report/src/db/index.html +34 -34
  199. package/coverage/lcov-report/src/db/index.ts.html +10 -10
  200. package/coverage/lcov-report/src/db/linkedRows/LinkController.ts.html +38 -38
  201. package/coverage/lcov-report/src/db/linkedRows/LinkDocument.ts.html +7 -7
  202. package/coverage/lcov-report/src/db/linkedRows/index.html +37 -37
  203. package/coverage/lcov-report/src/db/linkedRows/index.ts.html +40 -40
  204. package/coverage/lcov-report/src/db/linkedRows/linkUtils.ts.html +25 -25
  205. package/coverage/lcov-report/src/db/newid.ts.html +5 -5
  206. package/coverage/lcov-report/src/db/utils.ts.html +90 -90
  207. package/coverage/lcov-report/src/definitions/automations.ts.html +9 -6
  208. package/coverage/lcov-report/src/definitions/index.html +5 -20
  209. package/coverage/lcov-report/src/environment.ts.html +44 -32
  210. package/coverage/lcov-report/src/events/AutomationEmitter.ts.html +14 -14
  211. package/coverage/lcov-report/src/events/BudibaseEmitter.ts.html +8 -8
  212. package/coverage/lcov-report/src/events/index.html +20 -20
  213. package/coverage/lcov-report/src/events/index.ts.html +7 -7
  214. package/coverage/lcov-report/src/events/utils.ts.html +11 -11
  215. package/coverage/lcov-report/src/index.html +47 -47
  216. package/coverage/lcov-report/src/index.ts.html +8 -8
  217. package/coverage/lcov-report/src/integrations/airtable.ts.html +10 -10
  218. package/coverage/lcov-report/src/integrations/arangodb.ts.html +9 -9
  219. package/coverage/lcov-report/src/integrations/base/index.html +29 -29
  220. package/coverage/lcov-report/src/integrations/base/query.ts.html +15 -9
  221. package/coverage/lcov-report/src/integrations/base/sql.ts.html +38 -38
  222. package/coverage/lcov-report/src/integrations/base/sqlTable.ts.html +23 -23
  223. package/coverage/lcov-report/src/integrations/base/utils.ts.html +5 -5
  224. package/coverage/lcov-report/src/integrations/couchdb.ts.html +109 -31
  225. package/coverage/lcov-report/src/integrations/dynamodb.ts.html +17 -17
  226. package/coverage/lcov-report/src/integrations/elasticsearch.ts.html +27 -15
  227. package/coverage/lcov-report/src/integrations/firebase.ts.html +12 -12
  228. package/coverage/lcov-report/src/integrations/googlesheets.ts.html +42 -42
  229. package/coverage/lcov-report/src/integrations/index.html +130 -130
  230. package/coverage/lcov-report/src/integrations/index.ts.html +50 -62
  231. package/coverage/lcov-report/src/integrations/microsoftSqlServer.ts.html +31 -31
  232. package/coverage/lcov-report/src/integrations/mongodb.ts.html +421 -289
  233. package/coverage/lcov-report/src/integrations/mysql.ts.html +28 -28
  234. package/coverage/lcov-report/src/integrations/oracle.ts.html +31 -31
  235. package/coverage/lcov-report/src/integrations/postgres.ts.html +54 -54
  236. package/coverage/lcov-report/src/integrations/queries/index.html +19 -19
  237. package/coverage/lcov-report/src/integrations/queries/sql.ts.html +24 -159
  238. package/coverage/lcov-report/src/integrations/redis.ts.html +8 -8
  239. package/coverage/lcov-report/src/integrations/rest.ts.html +43 -52
  240. package/coverage/lcov-report/src/integrations/s3.ts.html +17 -17
  241. package/coverage/lcov-report/src/integrations/snowflake.ts.html +15 -15
  242. package/coverage/lcov-report/src/integrations/tests/TestConfiguration.js.html +1 -1
  243. package/coverage/lcov-report/src/integrations/tests/index.html +1 -1
  244. package/coverage/lcov-report/src/integrations/utils.ts.html +54 -54
  245. package/coverage/lcov-report/src/middleware/appInfo.ts.html +11 -11
  246. package/coverage/lcov-report/src/middleware/authorized.ts.html +49 -37
  247. package/coverage/lcov-report/src/middleware/builder.ts.html +26 -26
  248. package/coverage/lcov-report/src/middleware/currentapp.ts.html +50 -47
  249. package/coverage/lcov-report/src/middleware/index.html +40 -40
  250. package/coverage/lcov-report/src/middleware/joi-validator.ts.html +10 -10
  251. package/coverage/lcov-report/src/middleware/publicApi.ts.html +9 -9
  252. package/coverage/lcov-report/src/middleware/resourceId.ts.html +23 -23
  253. package/coverage/lcov-report/src/middleware/selfhost.ts.html +2 -2
  254. package/coverage/lcov-report/src/middleware/utils.ts.html +4 -4
  255. package/coverage/lcov-report/src/migrations/functions/appUrls.ts.html +6 -6
  256. package/coverage/lcov-report/src/migrations/functions/backfill/app/automations.ts.html +7 -7
  257. package/coverage/lcov-report/src/migrations/functions/backfill/app/datasources.ts.html +7 -7
  258. package/coverage/lcov-report/src/migrations/functions/backfill/app/index.html +31 -31
  259. package/coverage/lcov-report/src/migrations/functions/backfill/app/layouts.ts.html +8 -8
  260. package/coverage/lcov-report/src/migrations/functions/backfill/app/queries.ts.html +13 -13
  261. package/coverage/lcov-report/src/migrations/functions/backfill/app/roles.ts.html +7 -7
  262. package/coverage/lcov-report/src/migrations/functions/backfill/app/screens.ts.html +7 -7
  263. package/coverage/lcov-report/src/migrations/functions/backfill/app/tables.ts.html +8 -8
  264. package/coverage/lcov-report/src/migrations/functions/backfill/app.ts.html +21 -21
  265. package/coverage/lcov-report/src/migrations/functions/backfill/global/configs.ts.html +17 -14
  266. package/coverage/lcov-report/src/migrations/functions/backfill/global/index.html +19 -19
  267. package/coverage/lcov-report/src/migrations/functions/backfill/global/quotas.ts.html +9 -9
  268. package/coverage/lcov-report/src/migrations/functions/backfill/global/users.ts.html +13 -13
  269. package/coverage/lcov-report/src/migrations/functions/backfill/global.ts.html +23 -23
  270. package/coverage/lcov-report/src/migrations/functions/backfill/index.html +26 -26
  271. package/coverage/lcov-report/src/migrations/functions/backfill/index.ts.html +7 -7
  272. package/coverage/lcov-report/src/migrations/functions/backfill/installation.ts.html +14 -14
  273. package/coverage/lcov-report/src/migrations/functions/index.html +18 -18
  274. package/coverage/lcov-report/src/migrations/functions/syncQuotas.ts.html +8 -8
  275. package/coverage/lcov-report/src/migrations/functions/tableSettings.ts.html +11 -11
  276. package/coverage/lcov-report/src/migrations/functions/usageQuotas/index.html +11 -11
  277. package/coverage/lcov-report/src/migrations/functions/usageQuotas/index.ts.html +3 -3
  278. package/coverage/lcov-report/src/migrations/functions/usageQuotas/syncApps.ts.html +6 -6
  279. package/coverage/lcov-report/src/migrations/functions/usageQuotas/syncPlugins.ts.html +8 -8
  280. package/coverage/lcov-report/src/migrations/functions/usageQuotas/syncRows.ts.html +7 -7
  281. package/coverage/lcov-report/src/migrations/functions/userEmailViewCasing.ts.html +4 -4
  282. package/coverage/lcov-report/src/migrations/index.html +15 -15
  283. package/coverage/lcov-report/src/migrations/index.ts.html +43 -43
  284. package/coverage/lcov-report/src/migrations/tests/helpers.ts.html +4 -4
  285. package/coverage/lcov-report/src/migrations/tests/index.html +6 -6
  286. package/coverage/lcov-report/src/migrations/tests/structures.ts.html +3 -3
  287. package/coverage/lcov-report/src/sdk/app/applications/index.html +20 -20
  288. package/coverage/lcov-report/src/sdk/app/applications/index.ts.html +6 -6
  289. package/coverage/lcov-report/src/sdk/app/applications/sync.ts.html +34 -34
  290. package/coverage/lcov-report/src/sdk/app/applications/utils.ts.html +15 -15
  291. package/coverage/lcov-report/src/sdk/app/automations/index.html +7 -7
  292. package/coverage/lcov-report/src/sdk/app/automations/index.ts.html +5 -5
  293. package/coverage/lcov-report/src/sdk/app/automations/webhook.ts.html +8 -8
  294. package/coverage/lcov-report/src/sdk/app/backups/constants.ts.html +5 -5
  295. package/coverage/lcov-report/src/sdk/app/backups/exports.ts.html +30 -30
  296. package/coverage/lcov-report/src/sdk/app/backups/imports.ts.html +45 -57
  297. package/coverage/lcov-report/src/sdk/app/backups/index.html +42 -42
  298. package/coverage/lcov-report/src/sdk/app/backups/index.ts.html +7 -7
  299. package/coverage/lcov-report/src/sdk/app/backups/statistics.ts.html +73 -73
  300. package/coverage/lcov-report/src/sdk/app/datasources/datasources.ts.html +493 -0
  301. package/coverage/lcov-report/src/sdk/app/datasources/index.html +131 -0
  302. package/coverage/lcov-report/src/sdk/app/datasources/index.ts.html +100 -0
  303. package/coverage/lcov-report/src/sdk/app/queries/index.html +131 -0
  304. package/coverage/lcov-report/src/{utilities/statusCodes.ts.html → sdk/app/queries/index.ts.html} +22 -28
  305. package/coverage/lcov-report/src/{definitions/datasource.ts.html → sdk/app/queries/queries.ts.html} +82 -82
  306. package/coverage/lcov-report/src/sdk/app/rows/attachments.ts.html +8 -8
  307. package/coverage/lcov-report/src/sdk/app/rows/index.html +8 -8
  308. package/coverage/lcov-report/src/sdk/app/rows/index.ts.html +6 -6
  309. package/coverage/lcov-report/src/sdk/app/rows/rows.ts.html +4 -4
  310. package/coverage/lcov-report/src/sdk/app/tables/index.html +15 -15
  311. package/coverage/lcov-report/src/sdk/app/tables/index.ts.html +29 -20
  312. package/coverage/lcov-report/src/sdk/index.html +7 -7
  313. package/coverage/lcov-report/src/sdk/index.ts.html +24 -12
  314. package/coverage/lcov-report/src/sdk/users/index.html +10 -10
  315. package/coverage/lcov-report/src/sdk/users/index.ts.html +5 -5
  316. package/coverage/lcov-report/src/sdk/users/utils.ts.html +35 -35
  317. package/coverage/lcov-report/src/sdk/utils/index.html +116 -0
  318. package/coverage/lcov-report/src/sdk/utils/index.ts.html +133 -0
  319. package/coverage/lcov-report/src/startup.ts.html +48 -63
  320. package/coverage/lcov-report/src/tests/utilities/TestConfiguration.ts.html +218 -152
  321. package/coverage/lcov-report/src/tests/utilities/controllers.ts.html +20 -20
  322. package/coverage/lcov-report/src/tests/utilities/index.html +33 -33
  323. package/coverage/lcov-report/src/tests/utilities/index.ts.html +2 -2
  324. package/coverage/lcov-report/src/tests/utilities/structures.ts.html +235 -46
  325. package/coverage/lcov-report/src/threads/automation.ts.html +212 -251
  326. package/coverage/lcov-report/src/threads/index.html +46 -46
  327. package/coverage/lcov-report/src/threads/index.ts.html +39 -39
  328. package/coverage/lcov-report/src/threads/query.ts.html +140 -101
  329. package/coverage/lcov-report/src/threads/utils.ts.html +29 -29
  330. package/coverage/lcov-report/src/utilities/budibaseDir.ts.html +5 -5
  331. package/coverage/lcov-report/src/utilities/centralPath.ts.html +11 -11
  332. package/coverage/lcov-report/src/utilities/fileSystem/app.ts.html +343 -0
  333. package/coverage/lcov-report/src/utilities/fileSystem/clientLibrary.ts.html +20 -20
  334. package/coverage/lcov-report/src/utilities/fileSystem/filesystem.ts.html +601 -0
  335. package/coverage/lcov-report/src/utilities/fileSystem/index.html +88 -28
  336. package/coverage/lcov-report/src/utilities/fileSystem/index.ts.html +20 -1049
  337. package/coverage/lcov-report/src/utilities/fileSystem/plugin.ts.html +277 -0
  338. package/coverage/lcov-report/src/utilities/fileSystem/processor.ts.html +9 -9
  339. package/coverage/lcov-report/src/utilities/fileSystem/template.ts.html +193 -0
  340. package/coverage/lcov-report/src/utilities/global.ts.html +60 -60
  341. package/coverage/lcov-report/src/utilities/index.html +89 -119
  342. package/coverage/lcov-report/src/utilities/index.ts.html +40 -172
  343. package/coverage/lcov-report/src/utilities/redis.ts.html +38 -38
  344. package/coverage/lcov-report/src/utilities/routing/index.html +1 -1
  345. package/coverage/lcov-report/src/utilities/routing/index.ts.html +5 -5
  346. package/coverage/lcov-report/src/utilities/rowProcessor/index.html +34 -34
  347. package/coverage/lcov-report/src/utilities/rowProcessor/index.ts.html +102 -75
  348. package/coverage/lcov-report/src/utilities/rowProcessor/map.ts.html +9 -9
  349. package/coverage/lcov-report/src/utilities/rowProcessor/utils.ts.html +54 -54
  350. package/coverage/lcov-report/src/utilities/{csvParser.ts.html → schema.ts.html} +174 -234
  351. package/coverage/lcov-report/src/utilities/scriptRunner.ts.html +33 -33
  352. package/coverage/lcov-report/src/utilities/security.ts.html +13 -13
  353. package/coverage/lcov-report/src/utilities/usageQuota/index.html +9 -9
  354. package/coverage/lcov-report/src/utilities/usageQuota/rows.ts.html +38 -38
  355. package/coverage/lcov-report/src/utilities/usageQuota/usageQuoteReset.ts.html +3 -3
  356. package/coverage/lcov-report/src/utilities/users.ts.html +7 -7
  357. package/coverage/lcov-report/src/utilities/workerRequests.ts.html +89 -62
  358. package/coverage/lcov-report/src/watch.ts.html +20 -20
  359. package/coverage/lcov-report/src/websocket.ts.html +15 -15
  360. package/coverage/lcov.info +13499 -12800
  361. package/dist/api/controllers/application.js +120 -109
  362. package/dist/api/controllers/cloud.js +6 -2
  363. package/dist/api/controllers/datasource.js +24 -15
  364. package/dist/api/controllers/deploy/index.js +43 -60
  365. package/dist/api/controllers/plugin/index.js +6 -6
  366. package/dist/api/controllers/public/applications.js +22 -1
  367. package/dist/api/controllers/query/index.js +23 -13
  368. package/dist/api/controllers/row/ExternalRequest.js +12 -4
  369. package/dist/api/controllers/row/external.js +20 -13
  370. package/dist/api/controllers/row/internal.js +52 -27
  371. package/dist/api/controllers/row/staticFormula.js +1 -1
  372. package/dist/api/controllers/row/utils.js +35 -3
  373. package/dist/api/controllers/static/index.js +47 -47
  374. package/dist/api/controllers/static/templates/BudibaseApp.svelte +0 -1
  375. package/dist/api/controllers/table/external.js +16 -35
  376. package/dist/api/controllers/table/index.js +44 -15
  377. package/dist/api/controllers/table/internal.js +6 -7
  378. package/dist/api/controllers/table/utils.js +9 -9
  379. package/dist/api/controllers/user.js +14 -6
  380. package/dist/api/controllers/view/exporters.js +22 -6
  381. package/dist/api/controllers/view/index.js +23 -58
  382. package/dist/api/controllers/view/viewBuilder.js +15 -2
  383. package/dist/api/controllers/webhook.js +45 -43
  384. package/dist/api/routes/analytics.js +2 -1
  385. package/dist/api/routes/apikeys.js +2 -1
  386. package/dist/api/routes/application.js +5 -1
  387. package/dist/api/routes/auth.js +2 -1
  388. package/dist/api/routes/automation.js +2 -1
  389. package/dist/api/routes/backup.js +2 -1
  390. package/dist/api/routes/cloud.js +2 -1
  391. package/dist/api/routes/component.js +2 -1
  392. package/dist/api/routes/datasource.js +2 -1
  393. package/dist/api/routes/deploy.js +3 -3
  394. package/dist/api/routes/dev.js +2 -1
  395. package/dist/api/routes/index.js +2 -0
  396. package/dist/api/routes/integration.js +2 -1
  397. package/dist/api/routes/layout.js +2 -1
  398. package/dist/api/routes/metadata.js +2 -1
  399. package/dist/api/routes/migrations.js +2 -1
  400. package/dist/api/routes/permission.js +2 -1
  401. package/dist/api/routes/public/applications.js +37 -0
  402. package/dist/api/routes/public/middleware/mapper.js +3 -0
  403. package/dist/api/routes/query.js +2 -1
  404. package/dist/api/routes/role.js +2 -1
  405. package/dist/api/routes/routing.js +2 -1
  406. package/dist/api/routes/row.js +2 -2
  407. package/dist/api/routes/screen.js +2 -1
  408. package/dist/api/routes/script.js +2 -1
  409. package/dist/api/routes/static.js +6 -5
  410. package/dist/api/routes/table.js +8 -38
  411. package/dist/api/routes/templates.js +2 -1
  412. package/dist/api/routes/user.js +2 -1
  413. package/dist/api/routes/utils/validators.js +1 -1
  414. package/dist/api/routes/view.js +2 -1
  415. package/dist/api/routes/webhook.js +2 -1
  416. package/dist/app.js +9 -7
  417. package/dist/automations/automationUtils.js +26 -1
  418. package/dist/automations/logging/index.js +5 -25
  419. package/dist/automations/triggers.js +1 -0
  420. package/dist/db/index.js +5 -2
  421. package/dist/db/linkedRows/LinkController.js +2 -1
  422. package/dist/db/linkedRows/LinkDocument.js +2 -1
  423. package/dist/db/newid.js +4 -2
  424. package/dist/definitions/datasource.js +0 -6
  425. package/dist/environment.js +7 -2
  426. package/dist/events/AutomationEmitter.js +2 -1
  427. package/dist/events/BudibaseEmitter.js +2 -1
  428. package/dist/events/index.js +2 -1
  429. package/dist/index.js +2 -2
  430. package/dist/integrations/base/query.js +7 -2
  431. package/dist/integrations/base/sqlTable.js +14 -14
  432. package/dist/integrations/couchdb.js +34 -8
  433. package/dist/integrations/dynamodb.js +8 -5
  434. package/dist/integrations/elasticsearch.js +7 -3
  435. package/dist/integrations/googlesheets.js +1 -1
  436. package/dist/integrations/index.js +6 -7
  437. package/dist/integrations/mongodb.js +311 -271
  438. package/dist/integrations/mysql.js +2 -2
  439. package/dist/integrations/queries/sql.js +73 -100
  440. package/dist/integrations/rest.js +16 -18
  441. package/dist/middleware/authorized.js +2 -1
  442. package/dist/middleware/builder.js +4 -2
  443. package/dist/middleware/currentapp.js +6 -3
  444. package/dist/middleware/publicApi.js +4 -2
  445. package/dist/middleware/selfhost.js +4 -1
  446. package/dist/migrations/functions/backfill/global/configs.js +4 -4
  447. package/dist/package.json +12 -8
  448. package/dist/sdk/app/backups/imports.js +2 -6
  449. package/dist/sdk/app/datasources/datasources.js +147 -0
  450. package/dist/sdk/app/datasources/index.js +27 -0
  451. package/dist/sdk/app/queries/index.js +27 -0
  452. package/dist/sdk/app/queries/queries.js +60 -0
  453. package/dist/sdk/app/tables/index.js +6 -2
  454. package/dist/sdk/index.js +4 -0
  455. package/dist/sdk/utils/index.js +29 -0
  456. package/dist/startup.js +17 -17
  457. package/dist/threads/automation.js +22 -35
  458. package/dist/threads/index.js +4 -4
  459. package/dist/threads/query.js +27 -13
  460. package/dist/tsconfig.build.tsbuildinfo +1 -1
  461. package/dist/utilities/fileSystem/app.js +97 -0
  462. package/dist/utilities/fileSystem/clientLibrary.js +3 -3
  463. package/dist/utilities/fileSystem/filesystem.js +184 -0
  464. package/dist/utilities/fileSystem/index.js +18 -342
  465. package/dist/utilities/fileSystem/plugin.js +66 -0
  466. package/dist/utilities/fileSystem/template.js +47 -0
  467. package/dist/utilities/index.js +1 -44
  468. package/dist/utilities/rowProcessor/index.js +12 -4
  469. package/dist/utilities/schema.js +108 -0
  470. package/dist/utilities/scriptRunner.js +2 -1
  471. package/dist/utilities/statusCodes.js +2 -1
  472. package/dist/utilities/workerRequests.js +2 -0
  473. package/dist/watch.js +2 -25
  474. package/jest.config.ts +5 -2
  475. package/package.json +13 -9
  476. package/scripts/dev/manage.js +3 -2
  477. package/specs/openapi.json +84 -0
  478. package/specs/openapi.yaml +53 -0
  479. package/specs/resources/application.js +19 -0
  480. package/src/api/controllers/application.ts +142 -110
  481. package/src/api/controllers/auth.ts +2 -2
  482. package/src/api/controllers/cloud.ts +10 -6
  483. package/src/api/controllers/datasource.ts +33 -25
  484. package/src/api/controllers/deploy/Deployment.ts +1 -0
  485. package/src/api/controllers/deploy/index.ts +40 -58
  486. package/src/api/controllers/plugin/index.ts +14 -9
  487. package/src/api/controllers/public/applications.ts +17 -0
  488. package/src/api/controllers/query/index.ts +49 -41
  489. package/src/api/controllers/row/ExternalRequest.ts +8 -3
  490. package/src/api/controllers/row/external.ts +24 -14
  491. package/src/api/controllers/row/internal.ts +66 -41
  492. package/src/api/controllers/row/staticFormula.ts +5 -2
  493. package/src/api/controllers/row/utils.ts +42 -3
  494. package/src/api/controllers/static/index.ts +22 -27
  495. package/src/api/controllers/static/templates/BudibaseApp.svelte +0 -1
  496. package/src/api/controllers/table/external.ts +18 -16
  497. package/src/api/controllers/table/index.ts +46 -17
  498. package/src/api/controllers/table/internal.ts +6 -7
  499. package/src/api/controllers/table/utils.ts +12 -13
  500. package/src/api/controllers/user.ts +21 -13
  501. package/src/api/controllers/view/exporters.ts +20 -5
  502. package/src/api/controllers/view/index.ts +30 -42
  503. package/src/api/controllers/view/tests/viewBuilder.spec.js +1 -1
  504. package/src/api/controllers/view/viewBuilder.ts +1 -1
  505. package/src/api/controllers/webhook.ts +48 -46
  506. package/src/api/routes/analytics.ts +1 -1
  507. package/src/api/routes/apikeys.ts +1 -1
  508. package/src/api/routes/application.ts +12 -1
  509. package/src/api/routes/auth.ts +1 -1
  510. package/src/api/routes/automation.ts +1 -1
  511. package/src/api/routes/backup.ts +1 -1
  512. package/src/api/routes/cloud.ts +1 -1
  513. package/src/api/routes/component.ts +1 -1
  514. package/src/api/routes/datasource.ts +1 -1
  515. package/src/api/routes/deploy.ts +1 -2
  516. package/src/api/routes/dev.ts +1 -1
  517. package/src/api/routes/index.ts +6 -3
  518. package/src/api/routes/integration.ts +1 -1
  519. package/src/api/routes/layout.ts +1 -1
  520. package/src/api/routes/metadata.ts +1 -1
  521. package/src/api/routes/migrations.ts +1 -1
  522. package/src/api/routes/permission.ts +1 -1
  523. package/src/api/routes/public/applications.ts +44 -0
  524. package/src/api/routes/public/middleware/mapper.ts +4 -0
  525. package/src/api/routes/query.ts +1 -1
  526. package/src/api/routes/role.ts +1 -1
  527. package/src/api/routes/routing.ts +1 -1
  528. package/src/api/routes/row.ts +1 -1
  529. package/src/api/routes/screen.ts +1 -1
  530. package/src/api/routes/script.ts +1 -1
  531. package/src/api/routes/static.ts +2 -2
  532. package/src/api/routes/table.ts +16 -39
  533. package/src/api/routes/templates.ts +1 -1
  534. package/src/api/routes/tests/__snapshots__/{datasource.spec.js.snap → datasource.spec.ts.snap} +0 -0
  535. package/src/api/routes/tests/{application.spec.js → application.spec.ts} +94 -18
  536. package/src/api/routes/tests/{backup.spec.js → backup.spec.ts} +17 -6
  537. package/src/api/routes/tests/cloud.spec.ts +65 -0
  538. package/src/api/routes/tests/data/budibase-component-1.0.1.tgz +0 -0
  539. package/src/api/routes/tests/data/comment-box-1.0.2.tar.gz +0 -0
  540. package/src/api/routes/tests/data/export-test.tar.gz +0 -0
  541. package/src/api/routes/tests/{datasource.spec.js → datasource.spec.ts} +56 -14
  542. package/src/api/routes/tests/misc.spec.js +4 -10
  543. package/src/api/routes/tests/permissions.spec.js +1 -1
  544. package/src/api/routes/tests/plugin.spec.ts +179 -0
  545. package/src/api/routes/tests/routing.spec.js +1 -2
  546. package/src/api/routes/tests/row.spec.js +4 -2
  547. package/src/api/routes/tests/static.spec.js +2 -17
  548. package/src/api/routes/tests/table.spec.js +16 -32
  549. package/src/api/routes/tests/user.spec.js +105 -0
  550. package/src/api/routes/tests/utilities/TestFunctions.ts +1 -1
  551. package/src/api/routes/tests/utilities/index.ts +2 -2
  552. package/src/api/routes/tests/webhook.spec.js +1 -1
  553. package/src/api/routes/user.ts +1 -1
  554. package/src/api/routes/utils/validators.ts +1 -1
  555. package/src/api/routes/view.ts +1 -1
  556. package/src/api/routes/webhook.ts +1 -1
  557. package/src/app.ts +5 -3
  558. package/src/automations/automationUtils.ts +24 -0
  559. package/src/automations/logging/index.ts +1 -1
  560. package/src/automations/tests/bash.spec.js +34 -0
  561. package/src/automations/tests/discord.spec.js +27 -0
  562. package/src/automations/tests/executeQuery.spec.js +49 -0
  563. package/src/automations/tests/executeScript.spec.js +48 -0
  564. package/src/automations/tests/loop.spec.ts +45 -0
  565. package/src/automations/tests/sendSmtpEmail.spec.js +71 -0
  566. package/src/automations/tests/serverLog.spec.js +22 -0
  567. package/src/automations/tests/utilities/index.ts +2 -2
  568. package/src/automations/tests/zapier.spec.js +27 -0
  569. package/src/automations/triggers.ts +6 -1
  570. package/src/automations/unitTests/automationUtils.spec.ts +65 -0
  571. package/src/db/index.ts +1 -1
  572. package/src/db/linkedRows/LinkController.ts +1 -1
  573. package/src/db/linkedRows/LinkDocument.ts +1 -1
  574. package/src/db/newid.ts +1 -1
  575. package/src/db/tests/linkController.spec.js +1 -1
  576. package/src/definitions/automations.ts +1 -0
  577. package/src/definitions/datasource.ts +0 -41
  578. package/src/definitions/openapi.ts +10 -0
  579. package/src/environment.ts +6 -2
  580. package/src/events/AutomationEmitter.ts +1 -1
  581. package/src/events/BudibaseEmitter.ts +1 -1
  582. package/src/events/index.ts +1 -1
  583. package/src/index.ts +1 -1
  584. package/src/integrations/base/query.ts +3 -1
  585. package/src/integrations/base/sqlTable.ts +1 -1
  586. package/src/integrations/couchdb.ts +40 -14
  587. package/src/integrations/dynamodb.ts +3 -3
  588. package/src/integrations/elasticsearch.ts +8 -4
  589. package/src/integrations/googlesheets.ts +1 -1
  590. package/src/integrations/index.ts +5 -9
  591. package/src/integrations/mongodb.ts +315 -271
  592. package/src/integrations/mysql.ts +1 -1
  593. package/src/integrations/queries/sql.ts +5 -50
  594. package/src/integrations/rest.ts +16 -19
  595. package/src/integrations/tests/couchdb.spec.ts +33 -21
  596. package/src/integrations/tests/rest.spec.ts +19 -15
  597. package/src/middleware/authorized.ts +5 -1
  598. package/src/middleware/builder.ts +1 -1
  599. package/src/middleware/currentapp.ts +4 -3
  600. package/src/middleware/publicApi.ts +1 -1
  601. package/src/middleware/selfhost.ts +1 -1
  602. package/src/middleware/tests/authorized.spec.js +1 -1
  603. package/src/middleware/tests/currentapp.spec.js +1 -1
  604. package/src/middleware/tests/selfhost.spec.js +1 -1
  605. package/src/migrations/functions/backfill/global/configs.ts +5 -4
  606. package/src/migrations/functions/usageQuotas/tests/syncRows.spec.ts +10 -6
  607. package/src/sdk/app/backups/imports.ts +2 -6
  608. package/src/sdk/app/datasources/datasources.ts +136 -0
  609. package/src/sdk/app/datasources/index.ts +5 -0
  610. package/src/sdk/app/queries/index.ts +5 -0
  611. package/src/sdk/app/queries/queries.ts +50 -0
  612. package/src/sdk/app/tables/index.ts +6 -3
  613. package/src/sdk/index.ts +4 -0
  614. package/src/sdk/tests/attachments.spec.ts +1 -4
  615. package/src/sdk/utils/index.ts +16 -0
  616. package/src/startup.ts +3 -8
  617. package/src/tests/jestEnv.ts +13 -0
  618. package/src/tests/jestSetup.ts +4 -15
  619. package/src/tests/utilities/TestConfiguration.ts +38 -16
  620. package/src/tests/utilities/structures.ts +65 -2
  621. package/src/threads/automation.ts +22 -35
  622. package/src/threads/definitions.ts +3 -0
  623. package/src/threads/index.ts +1 -1
  624. package/src/threads/query.ts +28 -15
  625. package/src/utilities/fileSystem/app.ts +86 -0
  626. package/src/utilities/fileSystem/clientLibrary.ts +1 -1
  627. package/src/utilities/fileSystem/filesystem.ts +172 -0
  628. package/src/utilities/fileSystem/index.ts +5 -348
  629. package/src/utilities/fileSystem/plugin.ts +64 -0
  630. package/src/utilities/fileSystem/template.ts +36 -0
  631. package/src/utilities/index.ts +1 -45
  632. package/src/utilities/rowProcessor/index.ts +17 -8
  633. package/src/utilities/rowProcessor/tests/utils.spec.ts +57 -0
  634. package/src/utilities/schema.ts +141 -0
  635. package/src/utilities/scriptRunner.ts +1 -1
  636. package/src/utilities/statusCodes.ts +1 -1
  637. package/src/utilities/workerRequests.ts +10 -1
  638. package/src/watch.ts +1 -1
  639. package/tsconfig.build.json +2 -0
  640. package/tsconfig.json +2 -1
  641. package/builder/assets/index.96b9ffed.css +0 -6
  642. package/builder/assets/index.fae8f9eb.js +0 -1024
  643. package/coverage/lcov-report/src/utilities/plugins.ts.html +0 -151
  644. package/dist/api/routes/tests/utilities/TestFunctions.js +0 -167
  645. package/dist/api/routes/tests/utilities/index.js +0 -131
  646. package/dist/automations/tests/utilities/index.js +0 -81
  647. package/dist/tests/utilities/TestConfiguration.js +0 -562
  648. package/dist/tests/utilities/controllers.js +0 -40
  649. package/dist/tests/utilities/structures.js +0 -168
  650. package/dist/utilities/csvParser.js +0 -152
  651. package/dist/utilities/plugins.js +0 -26
  652. package/src/api/routes/tests/deployment.spec.ts +0 -25
  653. package/src/automations/unitTests/automationUtils.spec.js +0 -17
  654. package/src/utilities/csvParser.ts +0 -161
  655. package/src/utilities/plugins.ts +0 -22
  656. package/src/utilities/tests/__snapshots__/csvParser.spec.js.snap +0 -15
  657. package/src/utilities/tests/csvParser.spec.js +0 -112
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">90.56% </span>
26
+ <span class="strong">88.77% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>96/106</span>
28
+ <span class='fraction'>87/98</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">91.22% </span>
33
+ <span class="strong">86.79% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>52/57</span>
35
+ <span class='fraction'>46/53</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">75% </span>
40
+ <span class="strong">85.71% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>9/12</span>
42
+ <span class='fraction'>12/14</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">91.26% </span>
47
+ <span class="strong">89.69% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>94/103</span>
49
+ <span class='fraction'>87/97</span>
50
50
  </div>
51
51
 
52
52
 
@@ -255,27 +255,15 @@
255
255
  <a name='L190'></a><a href='#L190'>190</a>
256
256
  <a name='L191'></a><a href='#L191'>191</a>
257
257
  <a name='L192'></a><a href='#L192'>192</a>
258
- <a name='L193'></a><a href='#L193'>193</a>
259
- <a name='L194'></a><a href='#L194'>194</a>
260
- <a name='L195'></a><a href='#L195'>195</a>
261
- <a name='L196'></a><a href='#L196'>196</a>
262
- <a name='L197'></a><a href='#L197'>197</a>
263
- <a name='L198'></a><a href='#L198'>198</a>
264
- <a name='L199'></a><a href='#L199'>199</a>
265
- <a name='L200'></a><a href='#L200'>200</a>
266
- <a name='L201'></a><a href='#L201'>201</a>
267
- <a name='L202'></a><a href='#L202'>202</a>
268
- <a name='L203'></a><a href='#L203'>203</a>
269
- <a name='L204'></a><a href='#L204'>204</a>
270
- <a name='L205'></a><a href='#L205'>205</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">46x</span>
271
- <span class="cline-any cline-yes">46x</span>
272
- <span class="cline-any cline-yes">46x</span>
273
- <span class="cline-any cline-yes">46x</span>
274
- <span class="cline-any cline-yes">46x</span>
275
- <span class="cline-any cline-yes">46x</span>
276
- <span class="cline-any cline-yes">46x</span>
277
- <span class="cline-any cline-yes">46x</span>
278
- <span class="cline-any cline-yes">46x</span>
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>
260
+ <span class="cline-any cline-yes">55x</span>
261
+ <span class="cline-any cline-yes">55x</span>
262
+ <span class="cline-any cline-yes">55x</span>
263
+ <span class="cline-any cline-yes">55x</span>
264
+ <span class="cline-any cline-yes">55x</span>
265
+ <span class="cline-any cline-yes">55x</span>
266
+ <span class="cline-any cline-yes">55x</span>
279
267
  <span class="cline-any cline-neutral">&nbsp;</span>
280
268
  <span class="cline-any cline-neutral">&nbsp;</span>
281
269
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -284,65 +272,66 @@
284
272
  <span class="cline-any cline-neutral">&nbsp;</span>
285
273
  <span class="cline-any cline-neutral">&nbsp;</span>
286
274
  <span class="cline-any cline-neutral">&nbsp;</span>
275
+ <span class="cline-any cline-yes">55x</span>
287
276
  <span class="cline-any cline-neutral">&nbsp;</span>
288
- <span class="cline-any cline-yes">46x</span>
277
+ <span class="cline-any cline-yes">55x</span>
289
278
  <span class="cline-any cline-neutral">&nbsp;</span>
290
- <span class="cline-any cline-yes">46x</span>
279
+ <span class="cline-any cline-yes">55x</span>
291
280
  <span class="cline-any cline-yes">1x</span>
292
281
  <span class="cline-any cline-neutral">&nbsp;</span>
293
282
  <span class="cline-any cline-neutral">&nbsp;</span>
294
- <span class="cline-any cline-yes">46x</span>
295
- <span class="cline-any cline-yes">23x</span>
296
- <span class="cline-any cline-yes">23x</span>
283
+ <span class="cline-any cline-yes">65x</span>
284
+ <span class="cline-any cline-yes">24x</span>
285
+ <span class="cline-any cline-yes">24x</span>
297
286
  <span class="cline-any cline-neutral">&nbsp;</span>
298
- <span class="cline-any cline-yes">23x</span>
299
- <span class="cline-any cline-yes">23x</span>
287
+ <span class="cline-any cline-yes">24x</span>
288
+ <span class="cline-any cline-yes">24x</span>
300
289
  <span class="cline-any cline-neutral">&nbsp;</span>
301
- <span class="cline-any cline-yes">23x</span>
302
290
  <span class="cline-any cline-yes">24x</span>
291
+ <span class="cline-any cline-yes">25x</span>
303
292
  <span class="cline-any cline-neutral">&nbsp;</span>
304
293
  <span class="cline-any cline-neutral">&nbsp;</span>
305
- <span class="cline-any cline-yes">23x</span>
306
- <span class="cline-any cline-yes">23x</span>
294
+ <span class="cline-any cline-yes">24x</span>
295
+ <span class="cline-any cline-yes">24x</span>
307
296
  <span class="cline-any cline-neutral">&nbsp;</span>
308
- <span class="cline-any cline-yes">23x</span>
297
+ <span class="cline-any cline-yes">24x</span>
309
298
  <span class="cline-any cline-no">&nbsp;</span>
310
299
  <span class="cline-any cline-neutral">&nbsp;</span>
311
300
  <span class="cline-any cline-neutral">&nbsp;</span>
312
- <span class="cline-any cline-yes">23x</span>
301
+ <span class="cline-any cline-yes">24x</span>
313
302
  <span class="cline-any cline-neutral">&nbsp;</span>
314
303
  <span class="cline-any cline-neutral">&nbsp;</span>
315
- <span class="cline-any cline-yes">23x</span>
316
- <span class="cline-any cline-yes">23x</span>
304
+ <span class="cline-any cline-yes">24x</span>
305
+ <span class="cline-any cline-yes">24x</span>
317
306
  <span class="cline-any cline-yes">7x</span>
318
307
  <span class="cline-any cline-neutral">&nbsp;</span>
319
- <span class="cline-any cline-yes">23x</span>
320
- <span class="cline-any cline-yes">23x</span>
308
+ <span class="cline-any cline-yes">24x</span>
309
+ <span class="cline-any cline-yes">24x</span>
321
310
  <span class="cline-any cline-no">&nbsp;</span>
322
311
  <span class="cline-any cline-no">&nbsp;</span>
323
312
  <span class="cline-any cline-neutral">&nbsp;</span>
324
- <span class="cline-any cline-yes">23x</span>
325
- <span class="cline-any cline-yes">23x</span>
313
+ <span class="cline-any cline-yes">24x</span>
314
+ <span class="cline-any cline-yes">24x</span>
326
315
  <span class="cline-any cline-neutral">&nbsp;</span>
327
- <span class="cline-any cline-yes">23x</span>
316
+ <span class="cline-any cline-yes">24x</span>
328
317
  <span class="cline-any cline-neutral">&nbsp;</span>
329
318
  <span class="cline-any cline-neutral">&nbsp;</span>
330
319
  <span class="cline-any cline-neutral">&nbsp;</span>
331
320
  <span class="cline-any cline-neutral">&nbsp;</span>
332
321
  <span class="cline-any cline-neutral">&nbsp;</span>
333
- <span class="cline-any cline-yes">46x</span>
334
- <span class="cline-any cline-yes">23x</span>
335
- <span class="cline-any cline-yes">23x</span>
322
+ <span class="cline-any cline-no">&nbsp;</span>
323
+ <span class="cline-any cline-yes">24x</span>
324
+ <span class="cline-any cline-yes">24x</span>
336
325
  <span class="cline-any cline-neutral">&nbsp;</span>
337
- <span class="cline-any cline-yes">23x</span>
326
+ <span class="cline-any cline-yes">24x</span>
338
327
  <span class="cline-any cline-yes">1x</span>
339
328
  <span class="cline-any cline-neutral">&nbsp;</span>
340
329
  <span class="cline-any cline-neutral">&nbsp;</span>
341
- <span class="cline-any cline-yes">23x</span>
342
- <span class="cline-any cline-yes">12x</span>
330
+ <span class="cline-any cline-yes">24x</span>
331
+ <span class="cline-any cline-yes">13x</span>
343
332
  <span class="cline-any cline-neutral">&nbsp;</span>
344
333
  <span class="cline-any cline-neutral">&nbsp;</span>
345
- <span class="cline-any cline-yes">23x</span>
334
+ <span class="cline-any cline-yes">24x</span>
346
335
  <span class="cline-any cline-neutral">&nbsp;</span>
347
336
  <span class="cline-any cline-neutral">&nbsp;</span>
348
337
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -351,23 +340,23 @@
351
340
  <span class="cline-any cline-neutral">&nbsp;</span>
352
341
  <span class="cline-any cline-neutral">&nbsp;</span>
353
342
  <span class="cline-any cline-neutral">&nbsp;</span>
354
- <span class="cline-any cline-yes">46x</span>
355
- <span class="cline-any cline-yes">23x</span>
343
+ <span class="cline-any cline-no">&nbsp;</span>
344
+ <span class="cline-any cline-yes">24x</span>
356
345
  <span class="cline-any cline-neutral">&nbsp;</span>
357
346
  <span class="cline-any cline-neutral">&nbsp;</span>
358
347
  <span class="cline-any cline-neutral">&nbsp;</span>
359
348
  <span class="cline-any cline-neutral">&nbsp;</span>
360
- <span class="cline-any cline-yes">23x</span>
349
+ <span class="cline-any cline-yes">24x</span>
361
350
  <span class="cline-any cline-neutral">&nbsp;</span>
362
- <span class="cline-any cline-yes">23x</span>
351
+ <span class="cline-any cline-yes">24x</span>
363
352
  <span class="cline-any cline-yes">1x</span>
364
353
  <span class="cline-any cline-neutral">&nbsp;</span>
365
354
  <span class="cline-any cline-neutral">&nbsp;</span>
366
- <span class="cline-any cline-yes">23x</span>
355
+ <span class="cline-any cline-yes">24x</span>
367
356
  <span class="cline-any cline-yes">4x</span>
368
357
  <span class="cline-any cline-neutral">&nbsp;</span>
369
358
  <span class="cline-any cline-neutral">&nbsp;</span>
370
- <span class="cline-any cline-yes">23x</span>
359
+ <span class="cline-any cline-yes">24x</span>
371
360
  <span class="cline-any cline-neutral">&nbsp;</span>
372
361
  <span class="cline-any cline-neutral">&nbsp;</span>
373
362
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -377,16 +366,16 @@
377
366
  <span class="cline-any cline-neutral">&nbsp;</span>
378
367
  <span class="cline-any cline-neutral">&nbsp;</span>
379
368
  <span class="cline-any cline-neutral">&nbsp;</span>
380
- <span class="cline-any cline-yes">23x</span>
381
- <span class="cline-any cline-yes">18x</span>
369
+ <span class="cline-any cline-yes">24x</span>
370
+ <span class="cline-any cline-yes">19x</span>
382
371
  <span class="cline-any cline-neutral">&nbsp;</span>
383
372
  <span class="cline-any cline-yes">5x</span>
384
373
  <span class="cline-any cline-neutral">&nbsp;</span>
385
- <span class="cline-any cline-yes">23x</span>
386
- <span class="cline-any cline-yes">23x</span>
374
+ <span class="cline-any cline-yes">24x</span>
375
+ <span class="cline-any cline-yes">24x</span>
387
376
  <span class="cline-any cline-neutral">&nbsp;</span>
388
377
  <span class="cline-any cline-neutral">&nbsp;</span>
389
- <span class="cline-any cline-yes">46x</span>
378
+ <span class="cline-any cline-yes">55x</span>
390
379
  <span class="cline-any cline-yes">1x</span>
391
380
  <span class="cline-any cline-yes">1x</span>
392
381
  <span class="cline-any cline-yes">1x</span>
@@ -398,15 +387,19 @@
398
387
  <span class="cline-any cline-yes">1x</span>
399
388
  <span class="cline-any cline-neutral">&nbsp;</span>
400
389
  <span class="cline-any cline-neutral">&nbsp;</span>
401
- <span class="cline-any cline-yes">46x</span>
390
+ <span class="cline-any cline-yes">55x</span>
402
391
  <span class="cline-any cline-yes">4x</span>
403
392
  <span class="cline-any cline-yes">4x</span>
404
393
  <span class="cline-any cline-neutral">&nbsp;</span>
405
394
  <span class="cline-any cline-yes">4x</span>
395
+ <span class="cline-any cline-neutral">&nbsp;</span>
406
396
  <span class="cline-any cline-yes">4x</span>
407
397
  <span class="cline-any cline-no">&nbsp;</span>
408
398
  <span class="cline-any cline-neutral">&nbsp;</span>
409
399
  <span class="cline-any cline-neutral">&nbsp;</span>
400
+ <span class="cline-any cline-neutral">&nbsp;</span>
401
+ <span class="cline-any cline-neutral">&nbsp;</span>
402
+ <span class="cline-any cline-neutral">&nbsp;</span>
410
403
  <span class="cline-any cline-yes">4x</span>
411
404
  <span class="cline-any cline-yes">2x</span>
412
405
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -433,38 +426,21 @@
433
426
  <span class="cline-any cline-yes">4x</span>
434
427
  <span class="cline-any cline-neutral">&nbsp;</span>
435
428
  <span class="cline-any cline-neutral">&nbsp;</span>
436
- <span class="cline-any cline-neutral">&nbsp;</span>
437
429
  <span class="cline-any cline-yes">4x</span>
438
- <span class="cline-any cline-yes">8x</span>
439
- <span class="cline-any cline-no">&nbsp;</span>
440
430
  <span class="cline-any cline-neutral">&nbsp;</span>
441
431
  <span class="cline-any cline-yes">4x</span>
432
+ <span class="cline-any cline-yes">2x</span>
433
+ <span class="cline-any cline-yes">2x</span>
434
+ <span class="cline-any cline-yes">2x</span>
435
+ <span class="cline-any cline-yes">2x</span>
436
+ <span class="cline-any cline-yes">2x</span>
442
437
  <span class="cline-any cline-no">&nbsp;</span>
443
438
  <span class="cline-any cline-no">&nbsp;</span>
444
- <span class="cline-any cline-neutral">&nbsp;</span>
445
439
  <span class="cline-any cline-no">&nbsp;</span>
446
440
  <span class="cline-any cline-neutral">&nbsp;</span>
447
- <span class="cline-any cline-neutral">&nbsp;</span>
448
- <span class="cline-any cline-neutral">&nbsp;</span>
449
- <span class="cline-any cline-yes">4x</span>
450
- <span class="cline-any cline-yes">2x</span>
451
- <span class="cline-any cline-yes">2x</span>
452
- <span class="cline-any cline-yes">4x</span>
453
- <span class="cline-any cline-yes">4x</span>
454
441
  <span class="cline-any cline-no">&nbsp;</span>
455
442
  <span class="cline-any cline-neutral">&nbsp;</span>
456
443
  <span class="cline-any cline-neutral">&nbsp;</span>
457
- <span class="cline-any cline-neutral">&nbsp;</span>
458
- <span class="cline-any cline-neutral">&nbsp;</span>
459
- <span class="cline-any cline-neutral">&nbsp;</span>
460
- <span class="cline-any cline-neutral">&nbsp;</span>
461
- <span class="cline-any cline-yes">4x</span>
462
- <span class="cline-any cline-yes">4x</span>
463
- <span class="cline-any cline-yes">4x</span>
464
- <span class="cline-any cline-neutral">&nbsp;</span>
465
- <span class="cline-any cline-yes">4x</span>
466
- <span class="cline-any cline-yes">4x</span>
467
- <span class="cline-any cline-neutral">&nbsp;</span>
468
444
  <span class="cline-any cline-yes">4x</span>
469
445
  <span class="cline-any cline-yes">2x</span>
470
446
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -473,29 +449,30 @@
473
449
  <span class="cline-any cline-neutral">&nbsp;</span>
474
450
  <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import viewTemplate from "./viewBuilder"
475
451
  import { apiFileReturn } from "../../../utilities/fileSystem"
476
- import * as exporters from "./exporters"
452
+ import { csv, json, jsonWithSchema, Format, isFormat } from "./exporters"
477
453
  import { deleteView, getView, getViews, saveView } from "./utils"
478
454
  import { fetchView } from "../row"
479
- import { FieldTypes } from "../../../constants"
480
455
  import { context, events } from "@budibase/backend-core"
481
456
  import { DocumentType } from "../../../db/utils"
482
457
  import sdk from "../../../sdk"
458
+ import { FieldTypes } from "../../../constants"
483
459
  import {
484
- BBContext,
460
+ Ctx,
485
461
  Row,
486
462
  Table,
487
463
  TableExportFormat,
488
464
  TableSchema,
489
465
  View,
490
466
  } from "@budibase/types"
467
+ import { cleanExportRows } from "../row/utils"
491
468
  &nbsp;
492
469
  const { cloneDeep, isEqual } = require("lodash")
493
470
  &nbsp;
494
- export async function fetch(ctx: BBContext) {
471
+ export async function fetch(ctx: Ctx) {
495
472
  ctx.body = await getViews()
496
473
  }
497
474
  &nbsp;
498
- export async function save(ctx: BBContext) {
475
+ export async function save(ctx: Ctx) {
499
476
  const db = context.getAppDB()
500
477
  const { originalName, ...viewToSave } = ctx.request.body
501
478
  &nbsp;
@@ -534,7 +511,7 @@ export async function save(ctx: BBContext) {
534
511
  }
535
512
  }
536
513
  &nbsp;
537
- export async function calculationEvents(existingView: View, newView: View) {
514
+ export async function <span class="cstat-no" title="statement not covered" >calculationEvents<span class="fstat-no" title="function not covered" >(</span>e</span>xistingView: View, newView: View) {
538
515
  const existingCalculation = existingView &amp;&amp; existingView.calculation
539
516
  const newCalculation = newView &amp;&amp; newView.calculation
540
517
  &nbsp;
@@ -555,7 +532,7 @@ export async function calculationEvents(existingView: View, newView: View) {
555
532
  }
556
533
  }
557
534
  &nbsp;
558
- export async function filterEvents(existingView: View, newView: View) {
535
+ export async function <span class="cstat-no" title="statement not covered" >filterEvents<span class="fstat-no" title="function not covered" >(</span>e</span>xistingView: View, newView: View) {
559
536
  const hasExistingFilters = !!(
560
537
  existingView &amp;&amp;
561
538
  existingView.filters &amp;&amp;
@@ -590,9 +567,9 @@ async function handleViewEvents(existingView: View, newView: View) {
590
567
  await filterEvents(existingView, newView)
591
568
  }
592
569
  &nbsp;
593
- export async function destroy(ctx: BBContext) {
570
+ export async function destroy(ctx: Ctx) {
594
571
  const db = context.getAppDB()
595
- const viewName = decodeURI(ctx.params.viewName)
572
+ const viewName = decodeURIComponent(ctx.params.viewName)
596
573
  const view = await deleteView(viewName)
597
574
  const table = await db.get(view.meta.tableId)
598
575
  delete table.views[viewName]
@@ -602,13 +579,17 @@ export async function destroy(ctx: BBContext) {
602
579
  ctx.body = view
603
580
  }
604
581
  &nbsp;
605
- export async function exportView(ctx: BBContext) {
606
- const viewName = decodeURI(ctx.query.view as string)
582
+ export async function exportView(ctx: Ctx) {
583
+ const viewName = decodeURIComponent(ctx.query.view as string)
607
584
  const view = await getView(viewName)
608
585
  &nbsp;
609
- const format = ctx.query.format as string
610
- <span class="missing-if-branch" title="if path not taken" >I</span>if (!format || !Object.values(exporters.ExportFormats).includes(format)) {
611
- <span class="cstat-no" title="statement not covered" > ctx.throw(400, "Format must be specified, either csv or json")</span>
586
+ const format = ctx.query.format as unknown
587
+ &nbsp;
588
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (!isFormat(format)) {
589
+ <span class="cstat-no" title="statement not covered" > ctx.throw(</span>
590
+ 400,
591
+ "Format must be specified, either csv, json or jsonWithSchema"
592
+ )
612
593
  }
613
594
  &nbsp;
614
595
  if (view) {
@@ -637,37 +618,20 @@ export async function exportView(ctx: BBContext) {
637
618
  schema = table.schema
638
619
  }
639
620
  &nbsp;
640
- // remove any relationships
641
- const relationships = Object.entries(schema)
642
- .filter(entry =&gt; entry[1].type === FieldTypes.LINK)
643
- .map(<span class="fstat-no" title="function not covered" >entry </span>=&gt; <span class="cstat-no" title="statement not covered" >entry[0])</span>
644
- // iterate relationship columns and remove from and row and schema
645
- relationships.forEach(<span class="fstat-no" title="function not covered" >column </span>=&gt; {
646
- <span class="cstat-no" title="statement not covered" > rows.forEach(<span class="fstat-no" title="function not covered" >row </span>=&gt; {</span>
647
- <span class="cstat-no" title="statement not covered" > delete row[column]</span>
648
- })
649
- <span class="cstat-no" title="statement not covered" > delete schema[column]</span>
650
- })
621
+ let exportRows = cleanExportRows(rows, schema, format, [])
651
622
  &nbsp;
652
- // make sure no "undefined" entries appear in the CSV
653
- if (format === exporters.ExportFormats.CSV) {
654
- const schemaKeys = Object.keys(schema)
655
- for (let key of schemaKeys) {
656
- for (let row of rows) {
657
- <span class="missing-if-branch" title="if path not taken" >I</span>if (row[key] == null) {
658
- <span class="cstat-no" title="statement not covered" > row[key] = ""</span>
659
- }
660
- }
661
- }
623
+ if (format === Format.CSV) {
624
+ ctx.attachment(`${viewName}.csv`)
625
+ ctx.body = apiFileReturn(csv(Object.keys(schema), exportRows))
626
+ } else if (format === Format.JSON) {
627
+ ctx.attachment(`${viewName}.json`)
628
+ ctx.body = apiFileReturn(json(exportRows))
629
+ } else <span class="cstat-no" title="statement not covered" ><span class="missing-if-branch" title="else path not taken" >E</span>if (format === Format.JSON_WITH_SCHEMA) {</span>
630
+ <span class="cstat-no" title="statement not covered" > ctx.attachment(`${viewName}.json`)</span>
631
+ <span class="cstat-no" title="statement not covered" > ctx.body = apiFileReturn(jsonWithSchema(schema, exportRows))</span>
632
+ } else {
633
+ <span class="cstat-no" title="statement not covered" > throw "Format not recognised"</span>
662
634
  }
663
- &nbsp;
664
- // Export part
665
- let headers = Object.keys(schema)
666
- const exporter = format === "csv" ? exporters.csv : exporters.json
667
- const filename = `${viewName}.${format}`
668
- // send down the file
669
- ctx.attachment(filename)
670
- ctx.body = apiFileReturn(exporter(headers, rows))
671
635
  &nbsp;
672
636
  if (viewName.startsWith(DocumentType.TABLE)) {
673
637
  await events.table.exported(table, format as TableExportFormat)
@@ -682,7 +646,7 @@ export async function exportView(ctx: BBContext) {
682
646
  <div class='footer quiet pad2 space-top1 center small'>
683
647
  Code coverage generated by
684
648
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
685
- at Thu Feb 02 2023 11:56:48 GMT+0000 (Coordinated Universal Time)
649
+ at Sun Feb 05 2023 23:27:19 GMT+0000 (Coordinated Universal Time)
686
650
  </div>
687
651
  <script src="../../../../prettify.js"></script>
688
652
  <script>
@@ -23,9 +23,9 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">51.72% </span>
26
+ <span class="strong">50.57% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>45/87</span>
28
+ <span class='fraction'>44/87</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">66.66% </span>
40
+ <span class="strong">76.47% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>6/9</span>
42
+ <span class='fraction'>13/17</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">51.72% </span>
47
+ <span class="strong">50.57% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>45/87</span>
49
+ <span class='fraction'>44/87</span>
50
50
  </div>
51
51
 
52
52
 
@@ -228,19 +228,19 @@
228
228
  <a name='L163'></a><a href='#L163'>163</a>
229
229
  <a name='L164'></a><a href='#L164'>164</a>
230
230
  <a name='L165'></a><a href='#L165'>165</a>
231
- <a name='L166'></a><a href='#L166'>166</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">47x</span>
231
+ <a name='L166'></a><a href='#L166'>166</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
232
232
  <span class="cline-any cline-neutral">&nbsp;</span>
233
233
  <span class="cline-any cline-neutral">&nbsp;</span>
234
234
  <span class="cline-any cline-neutral">&nbsp;</span>
235
235
  <span class="cline-any cline-neutral">&nbsp;</span>
236
236
  <span class="cline-any cline-neutral">&nbsp;</span>
237
+ <span class="cline-any cline-yes">56x</span>
238
+ <span class="cline-any cline-yes">56x</span>
239
+ <span class="cline-any cline-yes">56x</span>
240
+ <span class="cline-any cline-yes">56x</span>
237
241
  <span class="cline-any cline-neutral">&nbsp;</span>
238
- <span class="cline-any cline-yes">47x</span>
239
- <span class="cline-any cline-yes">47x</span>
240
- <span class="cline-any cline-yes">47x</span>
241
242
  <span class="cline-any cline-neutral">&nbsp;</span>
242
- <span class="cline-any cline-neutral">&nbsp;</span>
243
- <span class="cline-any cline-yes">47x</span>
243
+ <span class="cline-any cline-yes">4x</span>
244
244
  <span class="cline-any cline-yes">4x</span>
245
245
  <span class="cline-any cline-yes">4x</span>
246
246
  <span class="cline-any cline-yes">4x</span>
@@ -265,18 +265,18 @@
265
265
  <span class="cline-any cline-neutral">&nbsp;</span>
266
266
  <span class="cline-any cline-neutral">&nbsp;</span>
267
267
  <span class="cline-any cline-neutral">&nbsp;</span>
268
- <span class="cline-any cline-yes">47x</span>
268
+ <span class="cline-any cline-yes">2x</span>
269
269
  <span class="cline-any cline-yes">2x</span>
270
270
  <span class="cline-any cline-yes">2x</span>
271
271
  <span class="cline-any cline-yes">2x</span>
272
272
  <span class="cline-any cline-yes">2x</span>
273
273
  <span class="cline-any cline-yes">2x</span>
274
274
  <span class="cline-any cline-neutral">&nbsp;</span>
275
- <span class="cline-any cline-yes">5x</span>
276
- <span class="cline-any cline-yes">5x</span>
275
+ <span class="cline-any cline-yes">6x</span>
276
+ <span class="cline-any cline-yes">6x</span>
277
277
  <span class="cline-any cline-yes">4x</span>
278
278
  <span class="cline-any cline-neutral">&nbsp;</span>
279
- <span class="cline-any cline-yes">1x</span>
279
+ <span class="cline-any cline-yes">2x</span>
280
280
  <span class="cline-any cline-neutral">&nbsp;</span>
281
281
  <span class="cline-any cline-neutral">&nbsp;</span>
282
282
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -299,23 +299,23 @@
299
299
  <span class="cline-any cline-yes">2x</span>
300
300
  <span class="cline-any cline-neutral">&nbsp;</span>
301
301
  <span class="cline-any cline-neutral">&nbsp;</span>
302
- <span class="cline-any cline-yes">47x</span>
302
+ <span class="cline-any cline-yes">24x</span>
303
303
  <span class="cline-any cline-neutral">&nbsp;</span>
304
304
  <span class="cline-any cline-neutral">&nbsp;</span>
305
305
  <span class="cline-any cline-neutral">&nbsp;</span>
306
306
  <span class="cline-any cline-neutral">&nbsp;</span>
307
- <span class="cline-any cline-yes">23x</span>
308
- <span class="cline-any cline-yes">23x</span>
309
- <span class="cline-any cline-yes">23x</span>
310
- <span class="cline-any cline-yes">23x</span>
307
+ <span class="cline-any cline-yes">24x</span>
308
+ <span class="cline-any cline-yes">24x</span>
309
+ <span class="cline-any cline-yes">24x</span>
310
+ <span class="cline-any cline-yes">24x</span>
311
311
  <span class="cline-any cline-neutral">&nbsp;</span>
312
312
  <span class="cline-any cline-neutral">&nbsp;</span>
313
313
  <span class="cline-any cline-neutral">&nbsp;</span>
314
314
  <span class="cline-any cline-neutral">&nbsp;</span>
315
- <span class="cline-any cline-yes">23x</span>
315
+ <span class="cline-any cline-yes">24x</span>
316
316
  <span class="cline-any cline-no">&nbsp;</span>
317
317
  <span class="cline-any cline-neutral">&nbsp;</span>
318
- <span class="cline-any cline-yes">23x</span>
318
+ <span class="cline-any cline-yes">24x</span>
319
319
  <span class="cline-any cline-neutral">&nbsp;</span>
320
320
  <span class="cline-any cline-no">&nbsp;</span>
321
321
  <span class="cline-any cline-no">&nbsp;</span>
@@ -341,7 +341,7 @@
341
341
  <span class="cline-any cline-neutral">&nbsp;</span>
342
342
  <span class="cline-any cline-neutral">&nbsp;</span>
343
343
  <span class="cline-any cline-neutral">&nbsp;</span>
344
- <span class="cline-any cline-yes">47x</span>
344
+ <span class="cline-any cline-yes">1x</span>
345
345
  <span class="cline-any cline-yes">1x</span>
346
346
  <span class="cline-any cline-yes">1x</span>
347
347
  <span class="cline-any cline-yes">1x</span>
@@ -357,7 +357,7 @@
357
357
  <span class="cline-any cline-neutral">&nbsp;</span>
358
358
  <span class="cline-any cline-neutral">&nbsp;</span>
359
359
  <span class="cline-any cline-neutral">&nbsp;</span>
360
- <span class="cline-any cline-yes">47x</span>
360
+ <span class="cline-any cline-no">&nbsp;</span>
361
361
  <span class="cline-any cline-neutral">&nbsp;</span>
362
362
  <span class="cline-any cline-no">&nbsp;</span>
363
363
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -367,7 +367,7 @@
367
367
  <span class="cline-any cline-no">&nbsp;</span>
368
368
  <span class="cline-any cline-neutral">&nbsp;</span>
369
369
  <span class="cline-any cline-neutral">&nbsp;</span>
370
- <span class="cline-any cline-yes">47x</span>
370
+ <span class="cline-any cline-yes">6x</span>
371
371
  <span class="cline-any cline-no">&nbsp;</span>
372
372
  <span class="cline-any cline-no">&nbsp;</span>
373
373
  <span class="cline-any cline-no">&nbsp;</span>
@@ -375,7 +375,7 @@
375
375
  <span class="cline-any cline-no">&nbsp;</span>
376
376
  <span class="cline-any cline-neutral">&nbsp;</span>
377
377
  <span class="cline-any cline-neutral">&nbsp;</span>
378
- <span class="cline-any cline-yes">47x</span>
378
+ <span class="cline-any cline-yes">6x</span>
379
379
  <span class="cline-any cline-yes">6x</span>
380
380
  <span class="cline-any cline-yes">6x</span>
381
381
  <span class="cline-any cline-yes">6x</span>
@@ -384,7 +384,7 @@
384
384
  <span class="cline-any cline-yes">5x</span>
385
385
  <span class="cline-any cline-neutral">&nbsp;</span>
386
386
  <span class="cline-any cline-neutral">&nbsp;</span>
387
- <span class="cline-any cline-yes">47x</span>
387
+ <span class="cline-any cline-yes">6x</span>
388
388
  <span class="cline-any cline-yes">1x</span>
389
389
  <span class="cline-any cline-no">&nbsp;</span>
390
390
  <span class="cline-any cline-no">&nbsp;</span>
@@ -453,7 +453,7 @@ export async function getViews() {
453
453
  include_docs: true,
454
454
  })
455
455
  )
456
- ).rows.map(<span class="fstat-no" title="function not covered" >row </span>=&gt; <span class="cstat-no" title="statement not covered" >row.doc)</span>
456
+ ).rows.map(<span class="fstat-no" title="function not covered" >row =&gt; <span class="cstat-no" title="statement not covered" >r</span>ow.doc)</span>
457
457
  <span class="cstat-no" title="statement not covered" > for (let viewDoc of views) {</span>
458
458
  <span class="cstat-no" title="statement not covered" > response.push({</span>
459
459
  name: viewDoc.name,
@@ -522,7 +522,7 @@ export async function deleteView(viewName: string) {
522
522
  }
523
523
  }
524
524
  &nbsp;
525
- export async function <span class="fstat-no" title="function not covered" >migrateToInMemoryView(</span>db: Database, viewName: string) {
525
+ export async function <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >migrateToInMemoryView<span class="fstat-no" title="function not covered" >(</span></span>d</span>b: Database, viewName: string) {
526
526
  // delete the view initially
527
527
  const designDoc = <span class="cstat-no" title="statement not covered" >await db.get("_design/database")</span>
528
528
  // run the view back through the view builder to update it
@@ -565,7 +565,7 @@ export async function getFromMemoryDoc(db: Database, viewName: string) {
565
565
  <div class='footer quiet pad2 space-top1 center small'>
566
566
  Code coverage generated by
567
567
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
568
- at Thu Feb 02 2023 11:56:48 GMT+0000 (Coordinated Universal Time)
568
+ at Sun Feb 05 2023 23:27:19 GMT+0000 (Coordinated Universal Time)
569
569
  </div>
570
570
  <script src="../../../../prettify.js"></script>
571
571
  <script>