@budibase/server 2.2.11-alpha.1 → 2.2.11

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 (469) hide show
  1. package/__mocks__/aws-sdk.ts +0 -19
  2. package/__mocks__/node-fetch.ts +0 -78
  3. package/builder/assets/{index.f0a10c2a.js → index.7481e2b4.js} +359 -362
  4. package/builder/assets/{index.fa480d5b.css → index.9cb087df.css} +2 -2
  5. package/builder/index.html +2 -2
  6. package/coverage/clover.xml +5075 -5062
  7. package/coverage/coverage-final.json +265 -265
  8. package/coverage/lcov-report/index.html +222 -207
  9. package/coverage/lcov-report/src/api/controllers/analytics.ts.html +7 -7
  10. package/coverage/lcov-report/src/api/controllers/apikeys.ts.html +5 -5
  11. package/coverage/lcov-report/src/api/controllers/application.ts.html +183 -258
  12. package/coverage/lcov-report/src/api/controllers/auth.ts.html +11 -11
  13. package/coverage/lcov-report/src/api/controllers/automation.ts.html +51 -51
  14. package/coverage/lcov-report/src/api/controllers/backup.ts.html +6 -6
  15. package/coverage/lcov-report/src/api/controllers/cloud.ts.html +79 -91
  16. package/coverage/lcov-report/src/api/controllers/component.ts.html +5 -5
  17. package/coverage/lcov-report/src/api/controllers/datasource.ts.html +30 -30
  18. package/coverage/lcov-report/src/api/controllers/deploy/Deployment.ts.html +14 -17
  19. package/coverage/lcov-report/src/api/controllers/deploy/index.html +19 -19
  20. package/coverage/lcov-report/src/api/controllers/deploy/index.ts.html +195 -141
  21. package/coverage/lcov-report/src/api/controllers/dev.ts.html +18 -18
  22. package/coverage/lcov-report/src/api/controllers/index.html +51 -51
  23. package/coverage/lcov-report/src/api/controllers/integration.ts.html +4 -4
  24. package/coverage/lcov-report/src/api/controllers/layout.ts.html +6 -6
  25. package/coverage/lcov-report/src/api/controllers/metadata.ts.html +9 -9
  26. package/coverage/lcov-report/src/api/controllers/migrations.ts.html +4 -4
  27. package/coverage/lcov-report/src/api/controllers/permission.ts.html +13 -13
  28. package/coverage/lcov-report/src/api/controllers/plugin/file.ts.html +19 -19
  29. package/coverage/lcov-report/src/api/controllers/plugin/github.ts.html +63 -63
  30. package/coverage/lcov-report/src/api/controllers/plugin/index.html +72 -72
  31. package/coverage/lcov-report/src/api/controllers/plugin/index.ts.html +135 -150
  32. package/coverage/lcov-report/src/api/controllers/plugin/npm.ts.html +55 -55
  33. package/coverage/lcov-report/src/api/controllers/plugin/uploaders.ts.html +11 -11
  34. package/coverage/lcov-report/src/api/controllers/plugin/url.ts.html +18 -18
  35. package/coverage/lcov-report/src/api/controllers/plugin/utils.ts.html +20 -20
  36. package/coverage/lcov-report/src/api/controllers/public/applications.ts.html +16 -67
  37. package/coverage/lcov-report/src/api/controllers/public/index.html +15 -15
  38. package/coverage/lcov-report/src/api/controllers/public/mapping/applications.ts.html +2 -2
  39. package/coverage/lcov-report/src/api/controllers/public/mapping/index.html +1 -1
  40. package/coverage/lcov-report/src/api/controllers/public/mapping/index.ts.html +7 -7
  41. package/coverage/lcov-report/src/api/controllers/public/mapping/queries.ts.html +2 -2
  42. package/coverage/lcov-report/src/api/controllers/public/mapping/rows.ts.html +2 -2
  43. package/coverage/lcov-report/src/api/controllers/public/mapping/tables.ts.html +2 -2
  44. package/coverage/lcov-report/src/api/controllers/public/mapping/users.ts.html +2 -2
  45. package/coverage/lcov-report/src/api/controllers/public/queries.ts.html +6 -6
  46. package/coverage/lcov-report/src/api/controllers/public/rows.ts.html +10 -10
  47. package/coverage/lcov-report/src/api/controllers/public/tables.ts.html +9 -9
  48. package/coverage/lcov-report/src/api/controllers/public/users.ts.html +11 -11
  49. package/coverage/lcov-report/src/api/controllers/public/utils.ts.html +6 -6
  50. package/coverage/lcov-report/src/api/controllers/query/import/index.html +1 -1
  51. package/coverage/lcov-report/src/api/controllers/query/import/index.ts.html +8 -8
  52. package/coverage/lcov-report/src/api/controllers/query/import/sources/base/index.html +1 -1
  53. package/coverage/lcov-report/src/api/controllers/query/import/sources/base/index.ts.html +8 -8
  54. package/coverage/lcov-report/src/api/controllers/query/import/sources/base/openapi.ts.html +5 -5
  55. package/coverage/lcov-report/src/api/controllers/query/import/sources/curl.ts.html +8 -8
  56. package/coverage/lcov-report/src/api/controllers/query/import/sources/index.html +1 -1
  57. package/coverage/lcov-report/src/api/controllers/query/import/sources/openapi2.ts.html +10 -10
  58. package/coverage/lcov-report/src/api/controllers/query/import/sources/openapi3.ts.html +14 -14
  59. package/coverage/lcov-report/src/api/controllers/query/index.html +19 -19
  60. package/coverage/lcov-report/src/api/controllers/query/index.ts.html +60 -60
  61. package/coverage/lcov-report/src/api/controllers/query/validation.ts.html +9 -9
  62. package/coverage/lcov-report/src/api/controllers/role.ts.html +8 -8
  63. package/coverage/lcov-report/src/api/controllers/routing.ts.html +6 -6
  64. package/coverage/lcov-report/src/api/controllers/row/ExternalRequest.ts.html +15 -12
  65. package/coverage/lcov-report/src/api/controllers/row/external.ts.html +20 -20
  66. package/coverage/lcov-report/src/api/controllers/row/index.html +1 -1
  67. package/coverage/lcov-report/src/api/controllers/row/index.ts.html +14 -14
  68. package/coverage/lcov-report/src/api/controllers/row/internal.ts.html +52 -55
  69. package/coverage/lcov-report/src/api/controllers/row/internalSearch.ts.html +9 -9
  70. package/coverage/lcov-report/src/api/controllers/row/staticFormula.ts.html +12 -21
  71. package/coverage/lcov-report/src/api/controllers/row/utils.ts.html +14 -17
  72. package/coverage/lcov-report/src/api/controllers/screen.ts.html +26 -26
  73. package/coverage/lcov-report/src/api/controllers/script.ts.html +18 -18
  74. package/coverage/lcov-report/src/api/controllers/static/index.html +11 -11
  75. package/coverage/lcov-report/src/api/controllers/static/index.ts.html +44 -32
  76. package/coverage/lcov-report/src/api/controllers/table/bulkFormula.ts.html +10 -10
  77. package/coverage/lcov-report/src/api/controllers/table/external.ts.html +14 -14
  78. package/coverage/lcov-report/src/api/controllers/table/index.html +19 -19
  79. package/coverage/lcov-report/src/api/controllers/table/index.ts.html +14 -14
  80. package/coverage/lcov-report/src/api/controllers/table/internal.ts.html +17 -17
  81. package/coverage/lcov-report/src/api/controllers/table/utils.ts.html +51 -51
  82. package/coverage/lcov-report/src/api/controllers/templates.ts.html +7 -7
  83. package/coverage/lcov-report/src/api/controllers/user.ts.html +119 -119
  84. package/coverage/lcov-report/src/api/controllers/view/exporters.ts.html +4 -4
  85. package/coverage/lcov-report/src/api/controllers/view/index.html +1 -1
  86. package/coverage/lcov-report/src/api/controllers/view/index.ts.html +49 -49
  87. package/coverage/lcov-report/src/api/controllers/view/utils.ts.html +22 -22
  88. package/coverage/lcov-report/src/api/controllers/view/viewBuilder.ts.html +33 -33
  89. package/coverage/lcov-report/src/api/controllers/webhook.ts.html +14 -14
  90. package/coverage/lcov-report/src/api/index.html +1 -1
  91. package/coverage/lcov-report/src/api/index.ts.html +33 -33
  92. package/coverage/lcov-report/src/api/routes/analytics.ts.html +7 -7
  93. package/coverage/lcov-report/src/api/routes/apikeys.ts.html +8 -8
  94. package/coverage/lcov-report/src/api/routes/application.ts.html +11 -44
  95. package/coverage/lcov-report/src/api/routes/auth.ts.html +6 -6
  96. package/coverage/lcov-report/src/api/routes/automation.ts.html +11 -11
  97. package/coverage/lcov-report/src/api/routes/backup.ts.html +8 -8
  98. package/coverage/lcov-report/src/api/routes/cloud.ts.html +8 -8
  99. package/coverage/lcov-report/src/api/routes/component.ts.html +8 -8
  100. package/coverage/lcov-report/src/api/routes/datasource.ts.html +9 -9
  101. package/coverage/lcov-report/src/api/routes/deploy.ts.html +11 -8
  102. package/coverage/lcov-report/src/api/routes/dev.ts.html +13 -13
  103. package/coverage/lcov-report/src/api/routes/index.html +7 -7
  104. package/coverage/lcov-report/src/api/routes/index.ts.html +37 -40
  105. package/coverage/lcov-report/src/api/routes/integration.ts.html +8 -8
  106. package/coverage/lcov-report/src/api/routes/layout.ts.html +8 -8
  107. package/coverage/lcov-report/src/api/routes/metadata.ts.html +9 -9
  108. package/coverage/lcov-report/src/api/routes/migrations.ts.html +7 -7
  109. package/coverage/lcov-report/src/api/routes/permission.ts.html +9 -9
  110. package/coverage/lcov-report/src/api/routes/plugin.ts.html +8 -8
  111. package/coverage/lcov-report/src/api/routes/public/applications.ts.html +14 -146
  112. package/coverage/lcov-report/src/api/routes/public/index.html +7 -7
  113. package/coverage/lcov-report/src/api/routes/public/index.ts.html +52 -52
  114. package/coverage/lcov-report/src/api/routes/public/middleware/index.html +15 -15
  115. package/coverage/lcov-report/src/api/routes/public/middleware/mapper.ts.html +16 -28
  116. package/coverage/lcov-report/src/api/routes/public/queries.ts.html +9 -9
  117. package/coverage/lcov-report/src/api/routes/public/rows.ts.html +12 -12
  118. package/coverage/lcov-report/src/api/routes/public/tables.ts.html +12 -12
  119. package/coverage/lcov-report/src/api/routes/public/tests/index.html +1 -1
  120. package/coverage/lcov-report/src/api/routes/public/tests/utils.ts.html +1 -1
  121. package/coverage/lcov-report/src/api/routes/public/users.ts.html +12 -12
  122. package/coverage/lcov-report/src/api/routes/public/utils/Endpoint.ts.html +19 -19
  123. package/coverage/lcov-report/src/api/routes/public/utils/index.html +1 -1
  124. package/coverage/lcov-report/src/api/routes/query.ts.html +11 -11
  125. package/coverage/lcov-report/src/api/routes/role.ts.html +9 -9
  126. package/coverage/lcov-report/src/api/routes/routing.ts.html +8 -8
  127. package/coverage/lcov-report/src/api/routes/row.ts.html +11 -11
  128. package/coverage/lcov-report/src/api/routes/screen.ts.html +9 -9
  129. package/coverage/lcov-report/src/api/routes/script.ts.html +1 -1
  130. package/coverage/lcov-report/src/api/routes/static.ts.html +14 -14
  131. package/coverage/lcov-report/src/api/routes/table.ts.html +11 -11
  132. package/coverage/lcov-report/src/api/routes/templates.ts.html +8 -8
  133. package/coverage/lcov-report/src/api/routes/tests/utilities/TestFunctions.ts.html +15 -15
  134. package/coverage/lcov-report/src/api/routes/tests/utilities/index.html +1 -1
  135. package/coverage/lcov-report/src/api/routes/tests/utilities/index.ts.html +24 -24
  136. package/coverage/lcov-report/src/api/routes/user.ts.html +9 -9
  137. package/coverage/lcov-report/src/api/routes/utils/index.html +1 -1
  138. package/coverage/lcov-report/src/api/routes/utils/validators.ts.html +42 -42
  139. package/coverage/lcov-report/src/api/routes/view.ts.html +10 -10
  140. package/coverage/lcov-report/src/api/routes/webhook.ts.html +10 -10
  141. package/coverage/lcov-report/src/app.ts.html +32 -32
  142. package/coverage/lcov-report/src/automations/actions.ts.html +25 -25
  143. package/coverage/lcov-report/src/automations/automationUtils.ts.html +19 -91
  144. package/coverage/lcov-report/src/automations/bullboard.ts.html +11 -11
  145. package/coverage/lcov-report/src/automations/index.html +19 -19
  146. package/coverage/lcov-report/src/automations/index.ts.html +13 -13
  147. package/coverage/lcov-report/src/automations/logging/index.html +1 -1
  148. package/coverage/lcov-report/src/automations/logging/index.ts.html +11 -11
  149. package/coverage/lcov-report/src/automations/steps/bash.ts.html +34 -34
  150. package/coverage/lcov-report/src/automations/steps/createRow.ts.html +7 -7
  151. package/coverage/lcov-report/src/automations/steps/delay.ts.html +5 -5
  152. package/coverage/lcov-report/src/automations/steps/deleteRow.ts.html +7 -7
  153. package/coverage/lcov-report/src/automations/steps/discord.ts.html +33 -33
  154. package/coverage/lcov-report/src/automations/steps/executeQuery.ts.html +35 -35
  155. package/coverage/lcov-report/src/automations/steps/executeScript.ts.html +31 -31
  156. package/coverage/lcov-report/src/automations/steps/filter.ts.html +6 -6
  157. package/coverage/lcov-report/src/automations/steps/index.html +83 -83
  158. package/coverage/lcov-report/src/automations/steps/integromat.ts.html +6 -6
  159. package/coverage/lcov-report/src/automations/steps/loop.ts.html +3 -3
  160. package/coverage/lcov-report/src/automations/steps/outgoingWebhook.ts.html +14 -14
  161. package/coverage/lcov-report/src/automations/steps/queryRows.ts.html +17 -17
  162. package/coverage/lcov-report/src/automations/steps/sendSmtpEmail.ts.html +28 -28
  163. package/coverage/lcov-report/src/automations/steps/serverLog.ts.html +18 -18
  164. package/coverage/lcov-report/src/automations/steps/slack.ts.html +6 -6
  165. package/coverage/lcov-report/src/automations/steps/updateRow.ts.html +7 -7
  166. package/coverage/lcov-report/src/automations/steps/utils.ts.html +16 -16
  167. package/coverage/lcov-report/src/automations/steps/zapier.ts.html +22 -22
  168. package/coverage/lcov-report/src/automations/tests/utilities/index.html +5 -5
  169. package/coverage/lcov-report/src/automations/tests/utilities/index.ts.html +26 -26
  170. package/coverage/lcov-report/src/automations/triggerInfo/app.ts.html +3 -3
  171. package/coverage/lcov-report/src/automations/triggerInfo/cron.ts.html +3 -3
  172. package/coverage/lcov-report/src/automations/triggerInfo/index.html +1 -1
  173. package/coverage/lcov-report/src/automations/triggerInfo/index.ts.html +8 -8
  174. package/coverage/lcov-report/src/automations/triggerInfo/rowDeleted.ts.html +3 -3
  175. package/coverage/lcov-report/src/automations/triggerInfo/rowSaved.ts.html +3 -3
  176. package/coverage/lcov-report/src/automations/triggerInfo/rowUpdated.ts.html +3 -3
  177. package/coverage/lcov-report/src/automations/triggerInfo/webhook.ts.html +3 -3
  178. package/coverage/lcov-report/src/automations/triggers.ts.html +21 -21
  179. package/coverage/lcov-report/src/automations/utils.ts.html +56 -56
  180. package/coverage/lcov-report/src/constants/index.html +1 -1
  181. package/coverage/lcov-report/src/constants/index.ts.html +92 -92
  182. package/coverage/lcov-report/src/constants/layouts.ts.html +4 -4
  183. package/coverage/lcov-report/src/constants/screens.ts.html +5 -5
  184. package/coverage/lcov-report/src/db/defaultData/datasource_bb_default.ts.html +23 -23
  185. package/coverage/lcov-report/src/db/defaultData/employeeImport.ts.html +2 -2
  186. package/coverage/lcov-report/src/db/defaultData/expensesImport.ts.html +2 -2
  187. package/coverage/lcov-report/src/db/defaultData/index.html +1 -1
  188. package/coverage/lcov-report/src/db/defaultData/inventoryImport.ts.html +2 -2
  189. package/coverage/lcov-report/src/db/defaultData/jobsImport.ts.html +2 -2
  190. package/coverage/lcov-report/src/db/dynamoClient.ts.html +16 -16
  191. package/coverage/lcov-report/src/db/inMemoryView.ts.html +5 -5
  192. package/coverage/lcov-report/src/db/index.html +19 -19
  193. package/coverage/lcov-report/src/db/index.ts.html +9 -9
  194. package/coverage/lcov-report/src/db/linkedRows/LinkController.ts.html +8 -8
  195. package/coverage/lcov-report/src/db/linkedRows/LinkDocument.ts.html +4 -4
  196. package/coverage/lcov-report/src/db/linkedRows/index.html +1 -1
  197. package/coverage/lcov-report/src/db/linkedRows/index.ts.html +15 -15
  198. package/coverage/lcov-report/src/db/linkedRows/linkUtils.ts.html +12 -12
  199. package/coverage/lcov-report/src/db/newid.ts.html +4 -4
  200. package/coverage/lcov-report/src/db/utils.ts.html +79 -79
  201. package/coverage/lcov-report/src/definitions/automations.ts.html +4 -4
  202. package/coverage/lcov-report/src/definitions/datasource.ts.html +4 -4
  203. package/coverage/lcov-report/src/definitions/index.html +1 -1
  204. package/coverage/lcov-report/src/environment.ts.html +28 -40
  205. package/coverage/lcov-report/src/events/AutomationEmitter.ts.html +6 -6
  206. package/coverage/lcov-report/src/events/BudibaseEmitter.ts.html +5 -5
  207. package/coverage/lcov-report/src/events/index.html +1 -1
  208. package/coverage/lcov-report/src/events/index.ts.html +4 -4
  209. package/coverage/lcov-report/src/events/utils.ts.html +3 -3
  210. package/coverage/lcov-report/src/index.html +25 -25
  211. package/coverage/lcov-report/src/index.ts.html +1 -1
  212. package/coverage/lcov-report/src/integrations/airtable.ts.html +5 -5
  213. package/coverage/lcov-report/src/integrations/arangodb.ts.html +5 -5
  214. package/coverage/lcov-report/src/integrations/base/index.html +1 -1
  215. package/coverage/lcov-report/src/integrations/base/query.ts.html +3 -3
  216. package/coverage/lcov-report/src/integrations/base/sql.ts.html +14 -14
  217. package/coverage/lcov-report/src/integrations/base/sqlTable.ts.html +8 -8
  218. package/coverage/lcov-report/src/integrations/base/utils.ts.html +3 -3
  219. package/coverage/lcov-report/src/integrations/couchdb.ts.html +5 -5
  220. package/coverage/lcov-report/src/integrations/dynamodb.ts.html +6 -6
  221. package/coverage/lcov-report/src/integrations/elasticsearch.ts.html +5 -5
  222. package/coverage/lcov-report/src/integrations/firebase.ts.html +5 -5
  223. package/coverage/lcov-report/src/integrations/googlesheets.ts.html +12 -12
  224. package/coverage/lcov-report/src/integrations/index.html +5 -5
  225. package/coverage/lcov-report/src/integrations/index.ts.html +47 -35
  226. package/coverage/lcov-report/src/integrations/microsoftSqlServer.ts.html +8 -8
  227. package/coverage/lcov-report/src/integrations/mongodb.ts.html +5 -5
  228. package/coverage/lcov-report/src/integrations/mysql.ts.html +10 -10
  229. package/coverage/lcov-report/src/integrations/oracle.ts.html +13 -13
  230. package/coverage/lcov-report/src/integrations/postgres.ts.html +42 -42
  231. package/coverage/lcov-report/src/integrations/queries/index.html +1 -1
  232. package/coverage/lcov-report/src/integrations/queries/sql.ts.html +13 -13
  233. package/coverage/lcov-report/src/integrations/redis.ts.html +5 -5
  234. package/coverage/lcov-report/src/integrations/rest.ts.html +16 -16
  235. package/coverage/lcov-report/src/integrations/s3.ts.html +6 -6
  236. package/coverage/lcov-report/src/integrations/snowflake.ts.html +5 -5
  237. package/coverage/lcov-report/src/integrations/tests/TestConfiguration.js.html +1 -1
  238. package/coverage/lcov-report/src/integrations/tests/index.html +1 -1
  239. package/coverage/lcov-report/src/integrations/utils.ts.html +36 -36
  240. package/coverage/lcov-report/src/middleware/appInfo.ts.html +7 -7
  241. package/coverage/lcov-report/src/middleware/authorized.ts.html +28 -28
  242. package/coverage/lcov-report/src/middleware/builder.ts.html +17 -17
  243. package/coverage/lcov-report/src/middleware/currentapp.ts.html +39 -39
  244. package/coverage/lcov-report/src/middleware/index.html +1 -1
  245. package/coverage/lcov-report/src/middleware/joi-validator.ts.html +1 -1
  246. package/coverage/lcov-report/src/middleware/publicApi.ts.html +4 -4
  247. package/coverage/lcov-report/src/middleware/resourceId.ts.html +22 -22
  248. package/coverage/lcov-report/src/middleware/selfhost.ts.html +1 -1
  249. package/coverage/lcov-report/src/middleware/utils.ts.html +4 -4
  250. package/coverage/lcov-report/src/migrations/functions/appUrls.ts.html +4 -4
  251. package/coverage/lcov-report/src/migrations/functions/backfill/app/automations.ts.html +5 -5
  252. package/coverage/lcov-report/src/migrations/functions/backfill/app/datasources.ts.html +5 -5
  253. package/coverage/lcov-report/src/migrations/functions/backfill/app/index.html +1 -1
  254. package/coverage/lcov-report/src/migrations/functions/backfill/app/layouts.ts.html +5 -5
  255. package/coverage/lcov-report/src/migrations/functions/backfill/app/queries.ts.html +7 -7
  256. package/coverage/lcov-report/src/migrations/functions/backfill/app/roles.ts.html +5 -5
  257. package/coverage/lcov-report/src/migrations/functions/backfill/app/screens.ts.html +5 -5
  258. package/coverage/lcov-report/src/migrations/functions/backfill/app/tables.ts.html +4 -4
  259. package/coverage/lcov-report/src/migrations/functions/backfill/app.ts.html +19 -19
  260. package/coverage/lcov-report/src/migrations/functions/backfill/global/configs.ts.html +10 -13
  261. package/coverage/lcov-report/src/migrations/functions/backfill/global/index.html +1 -1
  262. package/coverage/lcov-report/src/migrations/functions/backfill/global/quotas.ts.html +7 -7
  263. package/coverage/lcov-report/src/migrations/functions/backfill/global/users.ts.html +6 -6
  264. package/coverage/lcov-report/src/migrations/functions/backfill/global.ts.html +15 -15
  265. package/coverage/lcov-report/src/migrations/functions/backfill/index.html +1 -1
  266. package/coverage/lcov-report/src/migrations/functions/backfill/index.ts.html +5 -5
  267. package/coverage/lcov-report/src/migrations/functions/backfill/installation.ts.html +8 -8
  268. package/coverage/lcov-report/src/migrations/functions/index.html +1 -1
  269. package/coverage/lcov-report/src/migrations/functions/syncQuotas.ts.html +6 -6
  270. package/coverage/lcov-report/src/migrations/functions/tableSettings.ts.html +6 -6
  271. package/coverage/lcov-report/src/migrations/functions/usageQuotas/index.html +1 -1
  272. package/coverage/lcov-report/src/migrations/functions/usageQuotas/index.ts.html +2 -2
  273. package/coverage/lcov-report/src/migrations/functions/usageQuotas/syncApps.ts.html +5 -5
  274. package/coverage/lcov-report/src/migrations/functions/usageQuotas/syncPlugins.ts.html +4 -4
  275. package/coverage/lcov-report/src/migrations/functions/usageQuotas/syncRows.ts.html +6 -6
  276. package/coverage/lcov-report/src/migrations/functions/userEmailViewCasing.ts.html +3 -3
  277. package/coverage/lcov-report/src/migrations/index.html +1 -1
  278. package/coverage/lcov-report/src/migrations/index.ts.html +32 -32
  279. package/coverage/lcov-report/src/migrations/tests/helpers.ts.html +1 -1
  280. package/coverage/lcov-report/src/migrations/tests/index.html +1 -1
  281. package/coverage/lcov-report/src/migrations/tests/structures.ts.html +1 -1
  282. package/coverage/lcov-report/src/sdk/app/applications/index.html +15 -15
  283. package/coverage/lcov-report/src/sdk/app/applications/index.ts.html +4 -4
  284. package/coverage/lcov-report/src/sdk/app/applications/sync.ts.html +34 -34
  285. package/coverage/lcov-report/src/sdk/app/applications/utils.ts.html +9 -9
  286. package/coverage/lcov-report/src/sdk/app/automations/index.html +1 -1
  287. package/coverage/lcov-report/src/sdk/app/automations/index.ts.html +3 -3
  288. package/coverage/lcov-report/src/sdk/app/automations/webhook.ts.html +6 -6
  289. package/coverage/lcov-report/src/sdk/app/backups/constants.ts.html +3 -3
  290. package/coverage/lcov-report/src/sdk/app/backups/exports.ts.html +17 -17
  291. package/coverage/lcov-report/src/sdk/app/backups/imports.ts.html +99 -117
  292. package/coverage/lcov-report/src/sdk/app/backups/index.html +30 -30
  293. package/coverage/lcov-report/src/sdk/app/backups/index.ts.html +5 -5
  294. package/coverage/lcov-report/src/sdk/app/backups/statistics.ts.html +73 -73
  295. package/coverage/lcov-report/src/sdk/app/rows/attachments.ts.html +265 -0
  296. package/coverage/lcov-report/src/sdk/app/rows/index.html +146 -0
  297. package/coverage/lcov-report/src/sdk/app/rows/index.ts.html +106 -0
  298. package/coverage/lcov-report/src/sdk/app/rows/rows.ts.html +139 -0
  299. package/coverage/lcov-report/src/sdk/app/tables/index.html +1 -1
  300. package/coverage/lcov-report/src/sdk/app/tables/index.ts.html +8 -8
  301. package/coverage/lcov-report/src/sdk/index.html +5 -5
  302. package/coverage/lcov-report/src/sdk/index.ts.html +16 -10
  303. package/coverage/lcov-report/src/sdk/users/index.html +5 -5
  304. package/coverage/lcov-report/src/sdk/users/index.ts.html +3 -3
  305. package/coverage/lcov-report/src/sdk/users/utils.ts.html +34 -34
  306. package/coverage/lcov-report/src/startup.ts.html +42 -42
  307. package/coverage/lcov-report/src/tests/utilities/TestConfiguration.ts.html +125 -182
  308. package/coverage/lcov-report/src/tests/utilities/controllers.ts.html +15 -15
  309. package/coverage/lcov-report/src/tests/utilities/index.html +15 -15
  310. package/coverage/lcov-report/src/tests/utilities/index.ts.html +1 -1
  311. package/coverage/lcov-report/src/tests/utilities/structures.ts.html +30 -30
  312. package/coverage/lcov-report/src/threads/automation.ts.html +103 -34
  313. package/coverage/lcov-report/src/threads/index.html +19 -19
  314. package/coverage/lcov-report/src/threads/index.ts.html +25 -25
  315. package/coverage/lcov-report/src/threads/query.ts.html +71 -71
  316. package/coverage/lcov-report/src/threads/utils.ts.html +18 -18
  317. package/coverage/lcov-report/src/utilities/budibaseDir.ts.html +3 -3
  318. package/coverage/lcov-report/src/utilities/centralPath.ts.html +4 -4
  319. package/coverage/lcov-report/src/utilities/csvParser.ts.html +8 -8
  320. package/coverage/lcov-report/src/utilities/fileSystem/clientLibrary.ts.html +12 -12
  321. package/coverage/lcov-report/src/utilities/fileSystem/index.html +19 -79
  322. package/coverage/lcov-report/src/utilities/fileSystem/index.ts.html +1049 -20
  323. package/coverage/lcov-report/src/utilities/fileSystem/processor.ts.html +1 -1
  324. package/coverage/lcov-report/src/utilities/global.ts.html +43 -43
  325. package/coverage/lcov-report/src/utilities/index.html +63 -48
  326. package/coverage/lcov-report/src/utilities/index.ts.html +168 -36
  327. package/coverage/lcov-report/src/utilities/plugins.ts.html +151 -0
  328. package/coverage/lcov-report/src/utilities/redis.ts.html +32 -32
  329. package/coverage/lcov-report/src/utilities/routing/index.html +1 -1
  330. package/coverage/lcov-report/src/utilities/routing/index.ts.html +5 -5
  331. package/coverage/lcov-report/src/utilities/rowProcessor/index.html +28 -28
  332. package/coverage/lcov-report/src/utilities/rowProcessor/index.ts.html +33 -60
  333. package/coverage/lcov-report/src/utilities/rowProcessor/map.ts.html +3 -3
  334. package/coverage/lcov-report/src/utilities/rowProcessor/utils.ts.html +38 -38
  335. package/coverage/lcov-report/src/utilities/scriptRunner.ts.html +32 -32
  336. package/coverage/lcov-report/src/utilities/security.ts.html +6 -6
  337. package/coverage/lcov-report/src/utilities/statusCodes.ts.html +1 -1
  338. package/coverage/lcov-report/src/utilities/usageQuota/index.html +1 -1
  339. package/coverage/lcov-report/src/utilities/usageQuota/rows.ts.html +35 -35
  340. package/coverage/lcov-report/src/utilities/usageQuota/usageQuoteReset.ts.html +1 -1
  341. package/coverage/lcov-report/src/utilities/users.ts.html +6 -6
  342. package/coverage/lcov-report/src/utilities/workerRequests.ts.html +56 -56
  343. package/coverage/lcov-report/src/watch.ts.html +9 -9
  344. package/coverage/lcov-report/src/websocket.ts.html +15 -15
  345. package/coverage/lcov.info +7220 -7210
  346. package/dist/api/controllers/application.js +35 -47
  347. package/dist/api/controllers/cloud.js +2 -6
  348. package/dist/api/controllers/deploy/index.js +60 -43
  349. package/dist/api/controllers/plugin/index.js +6 -6
  350. package/dist/api/controllers/public/applications.js +1 -22
  351. package/dist/api/controllers/row/ExternalRequest.js +1 -0
  352. package/dist/api/controllers/row/internal.js +12 -12
  353. package/dist/api/controllers/row/staticFormula.js +1 -1
  354. package/dist/api/controllers/static/index.js +11 -8
  355. package/dist/api/controllers/view/index.js +2 -2
  356. package/dist/api/routes/application.js +0 -3
  357. package/dist/api/routes/deploy.js +2 -1
  358. package/dist/api/routes/public/applications.js +0 -37
  359. package/dist/api/routes/public/middleware/mapper.js +0 -3
  360. package/dist/api/routes/tests/utilities/TestFunctions.js +167 -0
  361. package/dist/api/routes/tests/utilities/index.js +131 -0
  362. package/dist/automations/automationUtils.js +1 -26
  363. package/dist/automations/tests/utilities/index.js +81 -0
  364. package/dist/environment.js +1 -5
  365. package/dist/integrations/googlesheets.js +1 -1
  366. package/dist/integrations/index.js +2 -1
  367. package/dist/migrations/functions/backfill/global/configs.js +4 -4
  368. package/dist/package.json +7 -9
  369. package/dist/sdk/app/backups/imports.js +26 -38
  370. package/dist/sdk/app/rows/attachments.js +61 -0
  371. package/dist/sdk/app/rows/index.js +28 -0
  372. package/dist/sdk/app/rows/rows.js +30 -0
  373. package/dist/sdk/index.js +2 -0
  374. package/dist/tests/utilities/TestConfiguration.js +562 -0
  375. package/dist/tests/utilities/controllers.js +40 -0
  376. package/dist/tests/utilities/structures.js +168 -0
  377. package/dist/threads/automation.js +28 -4
  378. package/dist/tsconfig.build.tsbuildinfo +1 -1
  379. package/dist/utilities/fileSystem/clientLibrary.js +3 -3
  380. package/dist/utilities/fileSystem/index.js +342 -18
  381. package/dist/utilities/index.js +44 -1
  382. package/dist/utilities/plugins.js +26 -0
  383. package/dist/utilities/rowProcessor/index.js +4 -12
  384. package/package.json +8 -10
  385. package/scripts/dev/manage.js +16 -0
  386. package/specs/openapi.json +0 -84
  387. package/specs/openapi.yaml +0 -53
  388. package/specs/resources/application.js +0 -19
  389. package/src/api/controllers/application.ts +36 -61
  390. package/src/api/controllers/auth.ts +2 -2
  391. package/src/api/controllers/cloud.ts +6 -10
  392. package/src/api/controllers/deploy/Deployment.ts +0 -1
  393. package/src/api/controllers/deploy/index.ts +58 -40
  394. package/src/api/controllers/plugin/index.ts +9 -14
  395. package/src/api/controllers/public/applications.ts +0 -17
  396. package/src/api/controllers/row/ExternalRequest.ts +1 -0
  397. package/src/api/controllers/row/internal.ts +23 -24
  398. package/src/api/controllers/row/staticFormula.ts +2 -5
  399. package/src/api/controllers/row/utils.ts +1 -2
  400. package/src/api/controllers/static/index.ts +10 -6
  401. package/src/api/controllers/view/index.ts +2 -2
  402. package/src/api/routes/application.ts +0 -11
  403. package/src/api/routes/deploy.ts +1 -0
  404. package/src/api/routes/index.ts +3 -4
  405. package/src/api/routes/public/applications.ts +0 -44
  406. package/src/api/routes/public/middleware/mapper.ts +0 -4
  407. package/src/api/routes/tests/__snapshots__/{datasource.spec.ts.snap → datasource.spec.js.snap} +0 -0
  408. package/src/api/routes/tests/analytics.spec.js +1 -1
  409. package/src/api/routes/tests/{application.spec.ts → application.spec.js} +18 -94
  410. package/src/api/routes/tests/{backup.spec.ts → backup.spec.js} +6 -17
  411. package/src/api/routes/tests/{datasource.spec.ts → datasource.spec.js} +15 -23
  412. package/src/api/routes/tests/deployment.spec.ts +25 -0
  413. package/src/api/routes/tests/permissions.spec.js +1 -1
  414. package/src/api/routes/tests/routing.spec.js +2 -1
  415. package/src/api/routes/tests/row.spec.js +2 -4
  416. package/src/api/routes/tests/static.spec.js +17 -2
  417. package/src/api/routes/tests/table.spec.js +2 -8
  418. package/src/api/routes/tests/user.spec.js +0 -86
  419. package/src/api/routes/tests/utilities/index.ts +2 -2
  420. package/src/api/routes/tests/webhook.spec.js +1 -1
  421. package/src/automations/automationUtils.ts +0 -24
  422. package/src/automations/tests/utilities/index.ts +2 -2
  423. package/src/automations/unitTests/automationUtils.spec.js +17 -0
  424. package/src/definitions/openapi.ts +0 -10
  425. package/src/environment.ts +1 -5
  426. package/src/integrations/googlesheets.ts +1 -1
  427. package/src/integrations/index.ts +5 -1
  428. package/src/migrations/functions/backfill/global/configs.ts +4 -5
  429. package/src/sdk/app/backups/imports.ts +40 -46
  430. package/src/sdk/app/rows/attachments.ts +60 -0
  431. package/src/sdk/app/rows/index.ts +7 -0
  432. package/src/sdk/app/rows/rows.ts +18 -0
  433. package/src/sdk/index.ts +2 -0
  434. package/src/sdk/tests/attachments.spec.ts +79 -0
  435. package/src/tests/jestSetup.ts +1 -4
  436. package/src/tests/utilities/TestConfiguration.ts +4 -23
  437. package/src/threads/automation.ts +27 -4
  438. package/src/utilities/fileSystem/clientLibrary.ts +1 -1
  439. package/src/utilities/fileSystem/index.ts +348 -5
  440. package/src/utilities/index.ts +45 -1
  441. package/src/utilities/plugins.ts +22 -0
  442. package/src/utilities/rowProcessor/index.ts +8 -17
  443. package/tsconfig.build.json +0 -2
  444. package/coverage/lcov-report/src/utilities/fileSystem/app.ts.html +0 -343
  445. package/coverage/lcov-report/src/utilities/fileSystem/filesystem.ts.html +0 -595
  446. package/coverage/lcov-report/src/utilities/fileSystem/plugin.ts.html +0 -280
  447. package/coverage/lcov-report/src/utilities/fileSystem/template.ts.html +0 -193
  448. package/dist/utilities/fileSystem/app.js +0 -97
  449. package/dist/utilities/fileSystem/filesystem.js +0 -182
  450. package/dist/utilities/fileSystem/plugin.js +0 -63
  451. package/dist/utilities/fileSystem/template.js +0 -44
  452. package/src/api/routes/tests/cloud.spec.ts +0 -65
  453. package/src/api/routes/tests/data/budibase-component-1.0.1.tgz +0 -0
  454. package/src/api/routes/tests/data/comment-box-1.0.2.tar.gz +0 -0
  455. package/src/api/routes/tests/data/export-test.tar.gz +0 -0
  456. package/src/api/routes/tests/plugin.spec.ts +0 -179
  457. package/src/automations/tests/bash.spec.js +0 -34
  458. package/src/automations/tests/discord.spec.js +0 -27
  459. package/src/automations/tests/executeQuery.spec.js +0 -49
  460. package/src/automations/tests/executeScript.spec.js +0 -48
  461. package/src/automations/tests/sendSmtpEmail.spec.js +0 -71
  462. package/src/automations/tests/serverLog.spec.js +0 -22
  463. package/src/automations/tests/zapier.spec.js +0 -27
  464. package/src/automations/unitTests/automationUtils.spec.ts +0 -65
  465. package/src/utilities/fileSystem/app.ts +0 -86
  466. package/src/utilities/fileSystem/filesystem.ts +0 -170
  467. package/src/utilities/fileSystem/plugin.ts +0 -65
  468. package/src/utilities/fileSystem/template.ts +0 -36
  469. package/src/utilities/rowProcessor/tests/utils.spec.ts +0 -57
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">100% </span>
26
+ <span class="strong">18.18% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>33/33</span>
28
+ <span class='fraction'>6/33</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">100% </span>
33
+ <span class="strong">0% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>2/2</span>
35
+ <span class='fraction'>0/2</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">100% </span>
40
+ <span class="strong">0% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>14/14</span>
42
+ <span class='fraction'>0/14</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">100% </span>
47
+ <span class="strong">18.75% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>32/32</span>
49
+ <span class='fraction'>6/32</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 low'></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>
@@ -132,9 +132,9 @@
132
132
  <a name='L67'></a><a href='#L67'>67</a>
133
133
  <a name='L68'></a><a href='#L68'>68</a>
134
134
  <a name='L69'></a><a href='#L69'>69</a>
135
- <a name='L70'></a><a href='#L70'>70</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">57x</span>
135
+ <a name='L70'></a><a href='#L70'>70</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">50x</span>
136
136
  <span class="cline-any cline-neutral">&nbsp;</span>
137
- <span class="cline-any cline-yes">57x</span>
137
+ <span class="cline-any cline-yes">50x</span>
138
138
  <span class="cline-any cline-neutral">&nbsp;</span>
139
139
  <span class="cline-any cline-neutral">&nbsp;</span>
140
140
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -142,59 +142,59 @@
142
142
  <span class="cline-any cline-neutral">&nbsp;</span>
143
143
  <span class="cline-any cline-neutral">&nbsp;</span>
144
144
  <span class="cline-any cline-neutral">&nbsp;</span>
145
- <span class="cline-any cline-yes">4x</span>
146
- <span class="cline-any cline-yes">3x</span>
145
+ <span class="cline-any cline-no">&nbsp;</span>
146
+ <span class="cline-any cline-no">&nbsp;</span>
147
147
  <span class="cline-any cline-neutral">&nbsp;</span>
148
- <span class="cline-any cline-yes">1x</span>
149
- <span class="cline-any cline-yes">1x</span>
150
- <span class="cline-any cline-yes">1x</span>
151
- <span class="cline-any cline-yes">1x</span>
148
+ <span class="cline-any cline-no">&nbsp;</span>
149
+ <span class="cline-any cline-no">&nbsp;</span>
150
+ <span class="cline-any cline-no">&nbsp;</span>
151
+ <span class="cline-any cline-no">&nbsp;</span>
152
152
  <span class="cline-any cline-neutral">&nbsp;</span>
153
153
  <span class="cline-any cline-neutral">&nbsp;</span>
154
154
  <span class="cline-any cline-neutral">&nbsp;</span>
155
155
  <span class="cline-any cline-neutral">&nbsp;</span>
156
- <span class="cline-any cline-yes">57x</span>
157
- <span class="cline-any cline-yes">1x</span>
156
+ <span class="cline-any cline-yes">50x</span>
157
+ <span class="cline-any cline-no">&nbsp;</span>
158
158
  <span class="cline-any cline-neutral">&nbsp;</span>
159
- <span class="cline-any cline-yes">1x</span>
160
- <span class="cline-any cline-yes">1x</span>
161
- <span class="cline-any cline-yes">1x</span>
162
- <span class="cline-any cline-yes">1x</span>
159
+ <span class="cline-any cline-no">&nbsp;</span>
160
+ <span class="cline-any cline-no">&nbsp;</span>
161
+ <span class="cline-any cline-no">&nbsp;</span>
162
+ <span class="cline-any cline-no">&nbsp;</span>
163
163
  <span class="cline-any cline-neutral">&nbsp;</span>
164
164
  <span class="cline-any cline-neutral">&nbsp;</span>
165
165
  <span class="cline-any cline-neutral">&nbsp;</span>
166
166
  <span class="cline-any cline-neutral">&nbsp;</span>
167
167
  <span class="cline-any cline-neutral">&nbsp;</span>
168
- <span class="cline-any cline-yes">57x</span>
169
- <span class="cline-any cline-yes">1x</span>
168
+ <span class="cline-any cline-yes">50x</span>
169
+ <span class="cline-any cline-no">&nbsp;</span>
170
170
  <span class="cline-any cline-neutral">&nbsp;</span>
171
- <span class="cline-any cline-yes">1x</span>
172
- <span class="cline-any cline-yes">1x</span>
173
- <span class="cline-any cline-yes">1x</span>
171
+ <span class="cline-any cline-no">&nbsp;</span>
172
+ <span class="cline-any cline-no">&nbsp;</span>
173
+ <span class="cline-any cline-no">&nbsp;</span>
174
174
  <span class="cline-any cline-neutral">&nbsp;</span>
175
175
  <span class="cline-any cline-neutral">&nbsp;</span>
176
176
  <span class="cline-any cline-neutral">&nbsp;</span>
177
177
  <span class="cline-any cline-neutral">&nbsp;</span>
178
178
  <span class="cline-any cline-neutral">&nbsp;</span>
179
- <span class="cline-any cline-yes">57x</span>
180
- <span class="cline-any cline-yes">1x</span>
179
+ <span class="cline-any cline-yes">50x</span>
180
+ <span class="cline-any cline-no">&nbsp;</span>
181
181
  <span class="cline-any cline-neutral">&nbsp;</span>
182
- <span class="cline-any cline-yes">1x</span>
183
- <span class="cline-any cline-yes">1x</span>
184
- <span class="cline-any cline-yes">1x</span>
182
+ <span class="cline-any cline-no">&nbsp;</span>
183
+ <span class="cline-any cline-no">&nbsp;</span>
184
+ <span class="cline-any cline-no">&nbsp;</span>
185
185
  <span class="cline-any cline-neutral">&nbsp;</span>
186
186
  <span class="cline-any cline-neutral">&nbsp;</span>
187
187
  <span class="cline-any cline-neutral">&nbsp;</span>
188
188
  <span class="cline-any cline-neutral">&nbsp;</span>
189
189
  <span class="cline-any cline-neutral">&nbsp;</span>
190
- <span class="cline-any cline-yes">57x</span>
191
- <span class="cline-any cline-yes">1x</span>
192
- <span class="cline-any cline-yes">1x</span>
193
- <span class="cline-any cline-yes">1x</span>
194
- <span class="cline-any cline-yes">1x</span>
195
- <span class="cline-any cline-yes">1x</span>
196
- <span class="cline-any cline-yes">1x</span>
197
- <span class="cline-any cline-yes">1x</span>
190
+ <span class="cline-any cline-yes">50x</span>
191
+ <span class="cline-any cline-no">&nbsp;</span>
192
+ <span class="cline-any cline-no">&nbsp;</span>
193
+ <span class="cline-any cline-no">&nbsp;</span>
194
+ <span class="cline-any cline-no">&nbsp;</span>
195
+ <span class="cline-any cline-no">&nbsp;</span>
196
+ <span class="cline-any cline-no">&nbsp;</span>
197
+ <span class="cline-any cline-no">&nbsp;</span>
198
198
  <span class="cline-any cline-neutral">&nbsp;</span>
199
199
  <span class="cline-any cline-neutral">&nbsp;</span>
200
200
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -210,60 +210,60 @@ import {
210
210
  getScreenParams,
211
211
  } from "../../../db/utils"
212
212
  &nbsp;
213
- async function runInContext(appId: string, cb: any, db?: Database) {
214
- if (db) {
215
- return cb(db)
213
+ async function <span class="fstat-no" title="function not covered" >runInContext(</span>appId: string, cb: any, db?: Database) {
214
+ <span class="cstat-no" title="statement not covered" > if (db) {</span>
215
+ <span class="cstat-no" title="statement not covered" > return cb(db)</span>
216
216
  } else {
217
- const devAppId = dbCore.getDevAppID(appId)
218
- return context.doInAppContext(devAppId, () =&gt; {
219
- const db = context.getAppDB()
220
- return cb(db)
217
+ const devAppId = <span class="cstat-no" title="statement not covered" >dbCore.getDevAppID(appId)</span>
218
+ <span class="cstat-no" title="statement not covered" > return context.doInAppContext(devAppId, <span class="fstat-no" title="function not covered" >() =</span>&gt; {</span>
219
+ const db = <span class="cstat-no" title="statement not covered" >context.getAppDB()</span>
220
+ <span class="cstat-no" title="statement not covered" > return cb(db)</span>
221
221
  })
222
222
  }
223
223
  }
224
224
  &nbsp;
225
- export async function calculateDatasourceCount(appId: string, db?: Database) {
226
- return runInContext(
225
+ export async function <span class="fstat-no" title="function not covered" >calculateDatasourceCount(</span>appId: string, db?: Database) {
226
+ <span class="cstat-no" title="statement not covered" > return runInContext(</span>
227
227
  appId,
228
- async (db: Database) =&gt; {
229
- const datasourceList = await db.allDocs(getDatasourceParams())
230
- const tableList = await db.allDocs(getTableParams())
231
- return datasourceList.rows.length + tableList.rows.length
228
+ <span class="fstat-no" title="function not covered" > async (d</span>b: Database) =&gt;<span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" > {</span></span>
229
+ const datasourceList = <span class="cstat-no" title="statement not covered" >await db.allDocs(getDatasourceParams())</span>
230
+ const tableList = <span class="cstat-no" title="statement not covered" >await db.allDocs(getTableParams())</span>
231
+ <span class="cstat-no" title="statement not covered" > return datasourceList.rows.length + tableList.rows.length</span>
232
232
  },
233
233
  db
234
234
  )
235
235
  }
236
236
  &nbsp;
237
- export async function calculateAutomationCount(appId: string, db?: Database) {
238
- return runInContext(
237
+ export async function <span class="fstat-no" title="function not covered" >calculateAutomationCount(</span>appId: string, db?: Database) {
238
+ <span class="cstat-no" title="statement not covered" > return runInContext(</span>
239
239
  appId,
240
- async (db: Database) =&gt; {
241
- const automationList = await db.allDocs(getAutomationParams())
242
- return automationList.rows.length
240
+ <span class="fstat-no" title="function not covered" > async (d</span>b: Database) =&gt;<span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" > {</span></span>
241
+ const automationList = <span class="cstat-no" title="statement not covered" >await db.allDocs(getAutomationParams())</span>
242
+ <span class="cstat-no" title="statement not covered" > return automationList.rows.length</span>
243
243
  },
244
244
  db
245
245
  )
246
246
  }
247
247
  &nbsp;
248
- export async function calculateScreenCount(appId: string, db?: Database) {
249
- return runInContext(
248
+ export async function <span class="fstat-no" title="function not covered" >calculateScreenCount(</span>appId: string, db?: Database) {
249
+ <span class="cstat-no" title="statement not covered" > return runInContext(</span>
250
250
  appId,
251
- async (db: Database) =&gt; {
252
- const screenList = await db.allDocs(getScreenParams())
253
- return screenList.rows.length
251
+ <span class="fstat-no" title="function not covered" > async (d</span>b: Database) =&gt;<span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" > {</span></span>
252
+ const screenList = <span class="cstat-no" title="statement not covered" >await db.allDocs(getScreenParams())</span>
253
+ <span class="cstat-no" title="statement not covered" > return screenList.rows.length</span>
254
254
  },
255
255
  db
256
256
  )
257
257
  }
258
258
  &nbsp;
259
- export async function calculateBackupStats(appId: string) {
260
- return runInContext(appId, async (db: Database) =&gt; {
261
- const promises = []
262
- promises.push(calculateDatasourceCount(appId, db))
263
- promises.push(calculateAutomationCount(appId, db))
264
- promises.push(calculateScreenCount(appId, db))
265
- const responses = await Promise.all(promises)
266
- return {
259
+ export async function <span class="fstat-no" title="function not covered" >calculateBackupStats(</span>appId: string) {
260
+ <span class="cstat-no" title="statement not covered" > return runInContext(appId, <span class="fstat-no" title="function not covered" >async (d</span>b: Database) =&gt;<span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" > {</span></span></span>
261
+ const promises = <span class="cstat-no" title="statement not covered" >[]</span>
262
+ <span class="cstat-no" title="statement not covered" > promises.push(calculateDatasourceCount(appId, db))</span>
263
+ <span class="cstat-no" title="statement not covered" > promises.push(calculateAutomationCount(appId, db))</span>
264
+ <span class="cstat-no" title="statement not covered" > promises.push(calculateScreenCount(appId, db))</span>
265
+ const responses = <span class="cstat-no" title="statement not covered" >await Promise.all(promises)</span>
266
+ <span class="cstat-no" title="statement not covered" > return {</span>
267
267
  datasources: responses[0],
268
268
  automations: responses[1],
269
269
  screens: responses[2],
@@ -277,7 +277,7 @@ export async function calculateBackupStats(appId: string) {
277
277
  <div class='footer quiet pad2 space-top1 center small'>
278
278
  Code coverage generated by
279
279
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
280
- at Fri Jan 06 2023 11:09:36 GMT+0000 (Coordinated Universal Time)
280
+ at Fri Jan 06 2023 17:12:09 GMT+0000 (Coordinated Universal Time)
281
281
  </div>
282
282
  <script src="../../../../prettify.js"></script>
283
283
  <script>
@@ -0,0 +1,265 @@
1
+
2
+ <!doctype html>
3
+ <html lang="en">
4
+
5
+ <head>
6
+ <title>Code coverage report for src/sdk/app/rows/attachments.ts</title>
7
+ <meta charset="utf-8" />
8
+ <link rel="stylesheet" href="../../../../prettify.css" />
9
+ <link rel="stylesheet" href="../../../../base.css" />
10
+ <link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.png" />
11
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
12
+ <style type='text/css'>
13
+ .coverage-summary .sorter {
14
+ background-image: url(../../../../sort-arrow-sprite.png);
15
+ }
16
+ </style>
17
+ </head>
18
+
19
+ <body>
20
+ <div class='wrapper'>
21
+ <div class='pad1'>
22
+ <h1><a href="../../../../index.html">All files</a> / <a href="index.html">src/sdk/app/rows</a> attachments.ts</h1>
23
+ <div class='clearfix'>
24
+
25
+ <div class='fl pad1y space-right2'>
26
+ <span class="strong">100% </span>
27
+ <span class="quiet">Statements</span>
28
+ <span class='fraction'>29/29</span>
29
+ </div>
30
+
31
+
32
+ <div class='fl pad1y space-right2'>
33
+ <span class="strong">100% </span>
34
+ <span class="quiet">Branches</span>
35
+ <span class='fraction'>3/3</span>
36
+ </div>
37
+
38
+
39
+ <div class='fl pad1y space-right2'>
40
+ <span class="strong">100% </span>
41
+ <span class="quiet">Functions</span>
42
+ <span class='fraction'>3/3</span>
43
+ </div>
44
+
45
+
46
+ <div class='fl pad1y space-right2'>
47
+ <span class="strong">100% </span>
48
+ <span class="quiet">Lines</span>
49
+ <span class='fraction'>28/28</span>
50
+ </div>
51
+
52
+
53
+ </div>
54
+ <p class="quiet">
55
+ Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
56
+ </p>
57
+ <template id="filterTemplate">
58
+ <div class="quiet">
59
+ Filter:
60
+ <input oninput="onInput()" type="search" id="fileSearch">
61
+ </div>
62
+ </template>
63
+ </div>
64
+ <div class='status-line high'></div>
65
+ <pre><table class="coverage">
66
+ <tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
67
+ <a name='L2'></a><a href='#L2'>2</a>
68
+ <a name='L3'></a><a href='#L3'>3</a>
69
+ <a name='L4'></a><a href='#L4'>4</a>
70
+ <a name='L5'></a><a href='#L5'>5</a>
71
+ <a name='L6'></a><a href='#L6'>6</a>
72
+ <a name='L7'></a><a href='#L7'>7</a>
73
+ <a name='L8'></a><a href='#L8'>8</a>
74
+ <a name='L9'></a><a href='#L9'>9</a>
75
+ <a name='L10'></a><a href='#L10'>10</a>
76
+ <a name='L11'></a><a href='#L11'>11</a>
77
+ <a name='L12'></a><a href='#L12'>12</a>
78
+ <a name='L13'></a><a href='#L13'>13</a>
79
+ <a name='L14'></a><a href='#L14'>14</a>
80
+ <a name='L15'></a><a href='#L15'>15</a>
81
+ <a name='L16'></a><a href='#L16'>16</a>
82
+ <a name='L17'></a><a href='#L17'>17</a>
83
+ <a name='L18'></a><a href='#L18'>18</a>
84
+ <a name='L19'></a><a href='#L19'>19</a>
85
+ <a name='L20'></a><a href='#L20'>20</a>
86
+ <a name='L21'></a><a href='#L21'>21</a>
87
+ <a name='L22'></a><a href='#L22'>22</a>
88
+ <a name='L23'></a><a href='#L23'>23</a>
89
+ <a name='L24'></a><a href='#L24'>24</a>
90
+ <a name='L25'></a><a href='#L25'>25</a>
91
+ <a name='L26'></a><a href='#L26'>26</a>
92
+ <a name='L27'></a><a href='#L27'>27</a>
93
+ <a name='L28'></a><a href='#L28'>28</a>
94
+ <a name='L29'></a><a href='#L29'>29</a>
95
+ <a name='L30'></a><a href='#L30'>30</a>
96
+ <a name='L31'></a><a href='#L31'>31</a>
97
+ <a name='L32'></a><a href='#L32'>32</a>
98
+ <a name='L33'></a><a href='#L33'>33</a>
99
+ <a name='L34'></a><a href='#L34'>34</a>
100
+ <a name='L35'></a><a href='#L35'>35</a>
101
+ <a name='L36'></a><a href='#L36'>36</a>
102
+ <a name='L37'></a><a href='#L37'>37</a>
103
+ <a name='L38'></a><a href='#L38'>38</a>
104
+ <a name='L39'></a><a href='#L39'>39</a>
105
+ <a name='L40'></a><a href='#L40'>40</a>
106
+ <a name='L41'></a><a href='#L41'>41</a>
107
+ <a name='L42'></a><a href='#L42'>42</a>
108
+ <a name='L43'></a><a href='#L43'>43</a>
109
+ <a name='L44'></a><a href='#L44'>44</a>
110
+ <a name='L45'></a><a href='#L45'>45</a>
111
+ <a name='L46'></a><a href='#L46'>46</a>
112
+ <a name='L47'></a><a href='#L47'>47</a>
113
+ <a name='L48'></a><a href='#L48'>48</a>
114
+ <a name='L49'></a><a href='#L49'>49</a>
115
+ <a name='L50'></a><a href='#L50'>50</a>
116
+ <a name='L51'></a><a href='#L51'>51</a>
117
+ <a name='L52'></a><a href='#L52'>52</a>
118
+ <a name='L53'></a><a href='#L53'>53</a>
119
+ <a name='L54'></a><a href='#L54'>54</a>
120
+ <a name='L55'></a><a href='#L55'>55</a>
121
+ <a name='L56'></a><a href='#L56'>56</a>
122
+ <a name='L57'></a><a href='#L57'>57</a>
123
+ <a name='L58'></a><a href='#L58'>58</a>
124
+ <a name='L59'></a><a href='#L59'>59</a>
125
+ <a name='L60'></a><a href='#L60'>60</a>
126
+ <a name='L61'></a><a href='#L61'>61</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
127
+ <span class="cline-any cline-yes">50x</span>
128
+ <span class="cline-any cline-yes">50x</span>
129
+ <span class="cline-any cline-yes">50x</span>
130
+ <span class="cline-any cline-neutral">&nbsp;</span>
131
+ <span class="cline-any cline-neutral">&nbsp;</span>
132
+ <span class="cline-any cline-yes">50x</span>
133
+ <span class="cline-any cline-neutral">&nbsp;</span>
134
+ <span class="cline-any cline-neutral">&nbsp;</span>
135
+ <span class="cline-any cline-neutral">&nbsp;</span>
136
+ <span class="cline-any cline-neutral">&nbsp;</span>
137
+ <span class="cline-any cline-neutral">&nbsp;</span>
138
+ <span class="cline-any cline-neutral">&nbsp;</span>
139
+ <span class="cline-any cline-yes">2x</span>
140
+ <span class="cline-any cline-neutral">&nbsp;</span>
141
+ <span class="cline-any cline-neutral">&nbsp;</span>
142
+ <span class="cline-any cline-neutral">&nbsp;</span>
143
+ <span class="cline-any cline-neutral">&nbsp;</span>
144
+ <span class="cline-any cline-neutral">&nbsp;</span>
145
+ <span class="cline-any cline-neutral">&nbsp;</span>
146
+ <span class="cline-any cline-neutral">&nbsp;</span>
147
+ <span class="cline-any cline-yes">2x</span>
148
+ <span class="cline-any cline-yes">2x</span>
149
+ <span class="cline-any cline-yes">1x</span>
150
+ <span class="cline-any cline-neutral">&nbsp;</span>
151
+ <span class="cline-any cline-yes">2x</span>
152
+ <span class="cline-any cline-neutral">&nbsp;</span>
153
+ <span class="cline-any cline-neutral">&nbsp;</span>
154
+ <span class="cline-any cline-yes">50x</span>
155
+ <span class="cline-any cline-neutral">&nbsp;</span>
156
+ <span class="cline-any cline-yes">2x</span>
157
+ <span class="cline-any cline-yes">2x</span>
158
+ <span class="cline-any cline-yes">2x</span>
159
+ <span class="cline-any cline-yes">7x</span>
160
+ <span class="cline-any cline-yes">1x</span>
161
+ <span class="cline-any cline-neutral">&nbsp;</span>
162
+ <span class="cline-any cline-neutral">&nbsp;</span>
163
+ <span class="cline-any cline-neutral">&nbsp;</span>
164
+ <span class="cline-any cline-yes">2x</span>
165
+ <span class="cline-any cline-yes">1x</span>
166
+ <span class="cline-any cline-neutral">&nbsp;</span>
167
+ <span class="cline-any cline-yes">1x</span>
168
+ <span class="cline-any cline-yes">1x</span>
169
+ <span class="cline-any cline-yes">1x</span>
170
+ <span class="cline-any cline-yes">1x</span>
171
+ <span class="cline-any cline-yes">2x</span>
172
+ <span class="cline-any cline-neutral">&nbsp;</span>
173
+ <span class="cline-any cline-neutral">&nbsp;</span>
174
+ <span class="cline-any cline-neutral">&nbsp;</span>
175
+ <span class="cline-any cline-neutral">&nbsp;</span>
176
+ <span class="cline-any cline-neutral">&nbsp;</span>
177
+ <span class="cline-any cline-yes">2x</span>
178
+ <span class="cline-any cline-yes">2x</span>
179
+ <span class="cline-any cline-yes">2x</span>
180
+ <span class="cline-any cline-yes">2x</span>
181
+ <span class="cline-any cline-yes">2x</span>
182
+ <span class="cline-any cline-neutral">&nbsp;</span>
183
+ <span class="cline-any cline-neutral">&nbsp;</span>
184
+ <span class="cline-any cline-yes">1x</span>
185
+ <span class="cline-any cline-neutral">&nbsp;</span>
186
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import { CouchFindOptions, Table, Row } from "@budibase/types"
187
+ import { db as dbCore } from "@budibase/backend-core"
188
+ import { DocumentType, SEPARATOR } from "../../../db/utils"
189
+ import { FieldTypes } from "../../../constants"
190
+ &nbsp;
191
+ // default limit - seems to work well for performance
192
+ export const FIND_LIMIT = 25
193
+ &nbsp;
194
+ function generateAttachmentFindParams(
195
+ tableId: string,
196
+ attachmentCols: string[],
197
+ bookmark: null | string
198
+ ) {
199
+ const params: CouchFindOptions = {
200
+ selector: {
201
+ _id: {
202
+ $regex: `^${DocumentType.ROW}${SEPARATOR}${tableId}`,
203
+ },
204
+ },
205
+ limit: FIND_LIMIT,
206
+ }
207
+ attachmentCols.forEach(col =&gt; (params.selector[col] = { $exists: true }))
208
+ if (bookmark) {
209
+ params.bookmark = bookmark
210
+ }
211
+ return params
212
+ }
213
+ &nbsp;
214
+ export async function getRowsWithAttachments(appId: string, table: Table) {
215
+ // iterate through attachment documents and update them
216
+ const db = dbCore.getDB(appId)
217
+ const attachmentCols: string[] = []
218
+ for (let [key, column] of Object.entries(table.schema)) {
219
+ if (column.type === FieldTypes.ATTACHMENT) {
220
+ attachmentCols.push(key)
221
+ }
222
+ }
223
+ // no attachment columns, nothing to do
224
+ if (attachmentCols.length === 0) {
225
+ return { rows: [], columns: [] }
226
+ }
227
+ let bookmark: null | string = null,
228
+ rowsLength = 0,
229
+ rowList: Row[] = []
230
+ do {
231
+ const params = generateAttachmentFindParams(
232
+ table._id!,
233
+ attachmentCols,
234
+ bookmark
235
+ )
236
+ // use the CouchDB Mango query API to lookup rows that have attachments
237
+ const resp = await dbCore.directCouchFind(db.name, params)
238
+ bookmark = resp.bookmark
239
+ rowsLength = resp.rows.length
240
+ const rows = resp.rows
241
+ rowList = rowList.concat(rows)
242
+ } while (rowsLength === FIND_LIMIT)
243
+ // write back the updated attachments
244
+ return { rows: rowList, columns: attachmentCols }
245
+ }
246
+ &nbsp;</pre></td></tr></table></pre>
247
+
248
+ <div class='push'></div><!-- for sticky footer -->
249
+ </div><!-- /wrapper -->
250
+ <div class='footer quiet pad2 space-top1 center small'>
251
+ Code coverage generated by
252
+ <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
253
+ at Fri Jan 06 2023 17:12:09 GMT+0000 (Coordinated Universal Time)
254
+ </div>
255
+ <script src="../../../../prettify.js"></script>
256
+ <script>
257
+ window.onload = function () {
258
+ prettyPrint();
259
+ };
260
+ </script>
261
+ <script src="../../../../sorter.js"></script>
262
+ <script src="../../../../block-navigation.js"></script>
263
+ </body>
264
+ </html>
265
+