@budibase/server 2.2.11 → 2.2.12-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 (460) hide show
  1. package/__mocks__/aws-sdk.ts +19 -0
  2. package/__mocks__/node-fetch.ts +78 -0
  3. package/builder/assets/{index.7481e2b4.js → index.a4f7991a.js} +362 -359
  4. package/builder/assets/{index.9cb087df.css → index.fa480d5b.css} +2 -2
  5. package/builder/index.html +2 -2
  6. package/coverage/clover.xml +5038 -5004
  7. package/coverage/coverage-final.json +268 -265
  8. package/coverage/lcov-report/index.html +206 -206
  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 +258 -183
  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 +91 -79
  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 +17 -14
  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 +141 -195
  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 +150 -135
  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 +67 -16
  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 +12 -15
  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 +55 -52
  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 +21 -12
  71. package/coverage/lcov-report/src/api/controllers/row/utils.ts.html +17 -14
  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 +32 -44
  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 +44 -11
  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 +8 -11
  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 +40 -37
  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 +146 -14
  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 +28 -16
  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 +91 -19
  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 +80 -80
  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 +40 -28
  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 +35 -47
  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 +13 -10
  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 +41 -53
  292. package/coverage/lcov-report/src/sdk/app/backups/index.html +28 -28
  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 +6 -6
  296. package/coverage/lcov-report/src/sdk/app/rows/index.html +1 -1
  297. package/coverage/lcov-report/src/sdk/app/rows/index.ts.html +4 -4
  298. package/coverage/lcov-report/src/sdk/app/rows/rows.ts.html +4 -4
  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 +5 -5
  301. package/coverage/lcov-report/src/sdk/index.html +1 -1
  302. package/coverage/lcov-report/src/sdk/index.ts.html +9 -9
  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 +182 -125
  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 +34 -103
  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/app.ts.html +343 -0
  321. package/coverage/lcov-report/src/utilities/fileSystem/clientLibrary.ts.html +12 -12
  322. package/coverage/lcov-report/src/utilities/fileSystem/filesystem.ts.html +595 -0
  323. package/coverage/lcov-report/src/utilities/fileSystem/index.html +79 -19
  324. package/coverage/lcov-report/src/utilities/fileSystem/index.ts.html +20 -1049
  325. package/coverage/lcov-report/src/utilities/fileSystem/plugin.ts.html +280 -0
  326. package/coverage/lcov-report/src/utilities/fileSystem/processor.ts.html +1 -1
  327. package/coverage/lcov-report/src/utilities/fileSystem/template.ts.html +193 -0
  328. package/coverage/lcov-report/src/utilities/global.ts.html +43 -43
  329. package/coverage/lcov-report/src/utilities/index.html +48 -63
  330. package/coverage/lcov-report/src/utilities/index.ts.html +36 -168
  331. package/coverage/lcov-report/src/utilities/redis.ts.html +32 -32
  332. package/coverage/lcov-report/src/utilities/routing/index.html +1 -1
  333. package/coverage/lcov-report/src/utilities/routing/index.ts.html +5 -5
  334. package/coverage/lcov-report/src/utilities/rowProcessor/index.html +28 -28
  335. package/coverage/lcov-report/src/utilities/rowProcessor/index.ts.html +60 -33
  336. package/coverage/lcov-report/src/utilities/rowProcessor/map.ts.html +3 -3
  337. package/coverage/lcov-report/src/utilities/rowProcessor/utils.ts.html +38 -38
  338. package/coverage/lcov-report/src/utilities/scriptRunner.ts.html +32 -32
  339. package/coverage/lcov-report/src/utilities/security.ts.html +6 -6
  340. package/coverage/lcov-report/src/utilities/statusCodes.ts.html +1 -1
  341. package/coverage/lcov-report/src/utilities/usageQuota/index.html +1 -1
  342. package/coverage/lcov-report/src/utilities/usageQuota/rows.ts.html +35 -35
  343. package/coverage/lcov-report/src/utilities/usageQuota/usageQuoteReset.ts.html +1 -1
  344. package/coverage/lcov-report/src/utilities/users.ts.html +6 -6
  345. package/coverage/lcov-report/src/utilities/workerRequests.ts.html +56 -56
  346. package/coverage/lcov-report/src/watch.ts.html +9 -9
  347. package/coverage/lcov-report/src/websocket.ts.html +15 -15
  348. package/coverage/lcov.info +7198 -7131
  349. package/dist/api/controllers/application.js +47 -35
  350. package/dist/api/controllers/cloud.js +6 -2
  351. package/dist/api/controllers/deploy/index.js +43 -60
  352. package/dist/api/controllers/plugin/index.js +6 -6
  353. package/dist/api/controllers/public/applications.js +22 -1
  354. package/dist/api/controllers/row/ExternalRequest.js +0 -1
  355. package/dist/api/controllers/row/internal.js +12 -12
  356. package/dist/api/controllers/row/staticFormula.js +1 -1
  357. package/dist/api/controllers/static/index.js +8 -11
  358. package/dist/api/controllers/view/index.js +2 -2
  359. package/dist/api/routes/application.js +3 -0
  360. package/dist/api/routes/deploy.js +1 -2
  361. package/dist/api/routes/public/applications.js +37 -0
  362. package/dist/api/routes/public/middleware/mapper.js +3 -0
  363. package/dist/automations/automationUtils.js +26 -1
  364. package/dist/environment.js +5 -1
  365. package/dist/integrations/googlesheets.js +1 -1
  366. package/dist/integrations/index.js +1 -2
  367. package/dist/migrations/functions/backfill/global/configs.js +4 -4
  368. package/dist/package.json +9 -7
  369. package/dist/sdk/app/backups/imports.js +2 -6
  370. package/dist/threads/automation.js +4 -28
  371. package/dist/tsconfig.build.tsbuildinfo +1 -1
  372. package/dist/utilities/fileSystem/app.js +97 -0
  373. package/dist/utilities/fileSystem/clientLibrary.js +3 -3
  374. package/dist/utilities/fileSystem/filesystem.js +182 -0
  375. package/dist/utilities/fileSystem/index.js +18 -342
  376. package/dist/utilities/fileSystem/plugin.js +63 -0
  377. package/dist/utilities/fileSystem/template.js +44 -0
  378. package/dist/utilities/index.js +1 -44
  379. package/dist/utilities/rowProcessor/index.js +12 -4
  380. package/package.json +10 -8
  381. package/scripts/dev/manage.js +0 -16
  382. package/specs/openapi.json +84 -0
  383. package/specs/openapi.yaml +53 -0
  384. package/specs/resources/application.js +19 -0
  385. package/src/api/controllers/application.ts +61 -36
  386. package/src/api/controllers/auth.ts +2 -2
  387. package/src/api/controllers/cloud.ts +10 -6
  388. package/src/api/controllers/deploy/Deployment.ts +1 -0
  389. package/src/api/controllers/deploy/index.ts +40 -58
  390. package/src/api/controllers/plugin/index.ts +14 -9
  391. package/src/api/controllers/public/applications.ts +17 -0
  392. package/src/api/controllers/row/ExternalRequest.ts +0 -1
  393. package/src/api/controllers/row/internal.ts +24 -23
  394. package/src/api/controllers/row/staticFormula.ts +5 -2
  395. package/src/api/controllers/row/utils.ts +2 -1
  396. package/src/api/controllers/static/index.ts +6 -10
  397. package/src/api/controllers/view/index.ts +2 -2
  398. package/src/api/routes/application.ts +11 -0
  399. package/src/api/routes/deploy.ts +0 -1
  400. package/src/api/routes/index.ts +4 -3
  401. package/src/api/routes/public/applications.ts +44 -0
  402. package/src/api/routes/public/middleware/mapper.ts +4 -0
  403. package/src/api/routes/tests/__snapshots__/{datasource.spec.js.snap → datasource.spec.ts.snap} +0 -0
  404. package/src/api/routes/tests/{application.spec.js → application.spec.ts} +94 -18
  405. package/src/api/routes/tests/{backup.spec.js → backup.spec.ts} +17 -6
  406. package/src/api/routes/tests/cloud.spec.ts +65 -0
  407. package/src/api/routes/tests/data/budibase-component-1.0.1.tgz +0 -0
  408. package/src/api/routes/tests/data/comment-box-1.0.2.tar.gz +0 -0
  409. package/src/api/routes/tests/data/export-test.tar.gz +0 -0
  410. package/src/api/routes/tests/{datasource.spec.js → datasource.spec.ts} +23 -15
  411. package/src/api/routes/tests/permissions.spec.js +1 -1
  412. package/src/api/routes/tests/plugin.spec.ts +179 -0
  413. package/src/api/routes/tests/routing.spec.js +1 -2
  414. package/src/api/routes/tests/row.spec.js +4 -2
  415. package/src/api/routes/tests/static.spec.js +2 -17
  416. package/src/api/routes/tests/table.spec.js +8 -2
  417. package/src/api/routes/tests/user.spec.js +86 -0
  418. package/src/api/routes/tests/utilities/index.ts +2 -2
  419. package/src/api/routes/tests/webhook.spec.js +1 -1
  420. package/src/automations/automationUtils.ts +24 -0
  421. package/src/automations/tests/bash.spec.js +34 -0
  422. package/src/automations/tests/discord.spec.js +27 -0
  423. package/src/automations/tests/executeQuery.spec.js +49 -0
  424. package/src/automations/tests/executeScript.spec.js +48 -0
  425. package/src/automations/tests/sendSmtpEmail.spec.js +71 -0
  426. package/src/automations/tests/serverLog.spec.js +22 -0
  427. package/src/automations/tests/utilities/index.ts +2 -2
  428. package/src/automations/tests/zapier.spec.js +27 -0
  429. package/src/automations/unitTests/automationUtils.spec.ts +65 -0
  430. package/src/definitions/openapi.ts +10 -0
  431. package/src/environment.ts +5 -1
  432. package/src/integrations/googlesheets.ts +1 -1
  433. package/src/integrations/index.ts +1 -5
  434. package/src/migrations/functions/backfill/global/configs.ts +5 -4
  435. package/src/sdk/app/backups/imports.ts +2 -6
  436. package/src/sdk/tests/attachments.spec.ts +1 -4
  437. package/src/tests/jestSetup.ts +4 -1
  438. package/src/tests/utilities/TestConfiguration.ts +23 -4
  439. package/src/threads/automation.ts +4 -27
  440. package/src/utilities/fileSystem/app.ts +86 -0
  441. package/src/utilities/fileSystem/clientLibrary.ts +1 -1
  442. package/src/utilities/fileSystem/filesystem.ts +170 -0
  443. package/src/utilities/fileSystem/index.ts +5 -348
  444. package/src/utilities/fileSystem/plugin.ts +65 -0
  445. package/src/utilities/fileSystem/template.ts +36 -0
  446. package/src/utilities/index.ts +1 -45
  447. package/src/utilities/rowProcessor/index.ts +17 -8
  448. package/src/utilities/rowProcessor/tests/utils.spec.ts +57 -0
  449. package/tsconfig.build.json +2 -0
  450. package/coverage/lcov-report/src/utilities/plugins.ts.html +0 -151
  451. package/dist/api/routes/tests/utilities/TestFunctions.js +0 -167
  452. package/dist/api/routes/tests/utilities/index.js +0 -131
  453. package/dist/automations/tests/utilities/index.js +0 -81
  454. package/dist/tests/utilities/TestConfiguration.js +0 -562
  455. package/dist/tests/utilities/controllers.js +0 -40
  456. package/dist/tests/utilities/structures.js +0 -168
  457. package/dist/utilities/plugins.js +0 -26
  458. package/src/api/routes/tests/deployment.spec.ts +0 -25
  459. package/src/automations/unitTests/automationUtils.spec.js +0 -17
  460. package/src/utilities/plugins.ts +0 -22
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">26.08% </span>
26
+ <span class="strong">95.65% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>18/69</span>
28
+ <span class='fraction'>66/69</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">1.58% </span>
33
+ <span class="strong">42.85% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>1/63</span>
35
+ <span class='fraction'>27/63</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">12.5% </span>
40
+ <span class="strong">87.5% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>1/8</span>
42
+ <span class='fraction'>7/8</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">26.86% </span>
47
+ <span class="strong">97.01% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>18/67</span>
49
+ <span class='fraction'>65/67</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 low'></div>
64
+ <div class='status-line high'></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>
@@ -196,146 +196,160 @@
196
196
  <a name='L131'></a><a href='#L131'>131</a>
197
197
  <a name='L132'></a><a href='#L132'>132</a>
198
198
  <a name='L133'></a><a href='#L133'>133</a>
199
- <a name='L134'></a><a href='#L134'>134</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">48x</span>
200
- <span class="cline-any cline-yes">48x</span>
201
- <span class="cline-any cline-yes">48x</span>
202
- <span class="cline-any cline-yes">48x</span>
203
- <span class="cline-any cline-yes">48x</span>
204
- <span class="cline-any cline-yes">48x</span>
205
- <span class="cline-any cline-yes">48x</span>
206
- <span class="cline-any cline-neutral">&nbsp;</span>
207
- <span class="cline-any cline-yes">48x</span>
208
- <span class="cline-any cline-yes">2x</span>
209
- <span class="cline-any cline-yes">2x</span>
199
+ <a name='L134'></a><a href='#L134'>134</a>
200
+ <a name='L135'></a><a href='#L135'>135</a>
201
+ <a name='L136'></a><a href='#L136'>136</a>
202
+ <a name='L137'></a><a href='#L137'>137</a>
203
+ <a name='L138'></a><a href='#L138'>138</a>
204
+ <a name='L139'></a><a href='#L139'>139</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">56x</span>
205
+ <span class="cline-any cline-yes">56x</span>
210
206
  <span class="cline-any cline-neutral">&nbsp;</span>
211
207
  <span class="cline-any cline-neutral">&nbsp;</span>
212
208
  <span class="cline-any cline-neutral">&nbsp;</span>
213
209
  <span class="cline-any cline-neutral">&nbsp;</span>
214
- <span class="cline-any cline-yes">2x</span>
215
- <span class="cline-any cline-yes">2x</span>
210
+ <span class="cline-any cline-neutral">&nbsp;</span>
211
+ <span class="cline-any cline-yes">56x</span>
212
+ <span class="cline-any cline-yes">56x</span>
213
+ <span class="cline-any cline-yes">56x</span>
214
+ <span class="cline-any cline-yes">56x</span>
215
+ <span class="cline-any cline-neutral">&nbsp;</span>
216
+ <span class="cline-any cline-yes">56x</span>
217
+ <span class="cline-any cline-yes">5x</span>
218
+ <span class="cline-any cline-yes">5x</span>
219
+ <span class="cline-any cline-neutral">&nbsp;</span>
220
+ <span class="cline-any cline-neutral">&nbsp;</span>
221
+ <span class="cline-any cline-neutral">&nbsp;</span>
222
+ <span class="cline-any cline-neutral">&nbsp;</span>
223
+ <span class="cline-any cline-yes">5x</span>
224
+ <span class="cline-any cline-yes">5x</span>
225
+ <span class="cline-any cline-yes">5x</span>
216
226
  <span class="cline-any cline-yes">2x</span>
217
227
  <span class="cline-any cline-neutral">&nbsp;</span>
218
- <span class="cline-any cline-no">&nbsp;</span>
228
+ <span class="cline-any cline-yes">3x</span>
219
229
  <span class="cline-any cline-neutral">&nbsp;</span>
220
230
  <span class="cline-any cline-neutral">&nbsp;</span>
221
231
  <span class="cline-any cline-neutral">&nbsp;</span>
222
- <span class="cline-any cline-yes">48x</span>
232
+ <span class="cline-any cline-yes">56x</span>
223
233
  <span class="cline-any cline-neutral">&nbsp;</span>
224
- <span class="cline-any cline-no">&nbsp;</span>
234
+ <span class="cline-any cline-yes">5x</span>
225
235
  <span class="cline-any cline-neutral">&nbsp;</span>
226
236
  <span class="cline-any cline-neutral">&nbsp;</span>
227
- <span class="cline-any cline-no">&nbsp;</span>
228
- <span class="cline-any cline-no">&nbsp;</span>
237
+ <span class="cline-any cline-yes">5x</span>
238
+ <span class="cline-any cline-yes">5x</span>
229
239
  <span class="cline-any cline-neutral">&nbsp;</span>
230
- <span class="cline-any cline-no">&nbsp;</span>
231
- <span class="cline-any cline-no">&nbsp;</span>
232
- <span class="cline-any cline-no">&nbsp;</span>
240
+ <span class="cline-any cline-yes">5x</span>
241
+ <span class="cline-any cline-yes">5x</span>
242
+ <span class="cline-any cline-yes">4x</span>
233
243
  <span class="cline-any cline-neutral">&nbsp;</span>
234
- <span class="cline-any cline-no">&nbsp;</span>
244
+ <span class="cline-any cline-yes">4x</span>
235
245
  <span class="cline-any cline-neutral">&nbsp;</span>
236
246
  <span class="cline-any cline-neutral">&nbsp;</span>
237
247
  <span class="cline-any cline-neutral">&nbsp;</span>
238
248
  <span class="cline-any cline-neutral">&nbsp;</span>
239
- <span class="cline-any cline-no">&nbsp;</span>
249
+ <span class="cline-any cline-yes">1x</span>
240
250
  <span class="cline-any cline-neutral">&nbsp;</span>
241
- <span class="cline-any cline-no">&nbsp;</span>
251
+ <span class="cline-any cline-yes">1x</span>
242
252
  <span class="cline-any cline-neutral">&nbsp;</span>
243
253
  <span class="cline-any cline-neutral">&nbsp;</span>
244
254
  <span class="cline-any cline-neutral">&nbsp;</span>
245
- <span class="cline-any cline-yes">48x</span>
246
- <span class="cline-any cline-no">&nbsp;</span>
255
+ <span class="cline-any cline-yes">56x</span>
256
+ <span class="cline-any cline-yes">4x</span>
247
257
  <span class="cline-any cline-neutral">&nbsp;</span>
248
- <span class="cline-any cline-no">&nbsp;</span>
258
+ <span class="cline-any cline-yes">4x</span>
249
259
  <span class="cline-any cline-neutral">&nbsp;</span>
250
260
  <span class="cline-any cline-neutral">&nbsp;</span>
251
261
  <span class="cline-any cline-neutral">&nbsp;</span>
252
- <span class="cline-any cline-no">&nbsp;</span>
262
+ <span class="cline-any cline-yes">4x</span>
253
263
  <span class="cline-any cline-neutral">&nbsp;</span>
254
- <span class="cline-any cline-no">&nbsp;</span>
264
+ <span class="cline-any cline-yes">4x</span>
255
265
  <span class="cline-any cline-neutral">&nbsp;</span>
256
266
  <span class="cline-any cline-neutral">&nbsp;</span>
257
- <span class="cline-any cline-no">&nbsp;</span>
258
- <span class="cline-any cline-no">&nbsp;</span>
259
- <span class="cline-any cline-no">&nbsp;</span>
260
- <span class="cline-any cline-no">&nbsp;</span>
267
+ <span class="cline-any cline-yes">1x</span>
268
+ <span class="cline-any cline-yes">1x</span>
269
+ <span class="cline-any cline-yes">1x</span>
270
+ <span class="cline-any cline-yes">1x</span>
261
271
  <span class="cline-any cline-neutral">&nbsp;</span>
262
272
  <span class="cline-any cline-neutral">&nbsp;</span>
263
- <span class="cline-any cline-no">&nbsp;</span>
264
- <span class="cline-any cline-no">&nbsp;</span>
265
- <span class="cline-any cline-no">&nbsp;</span>
266
- <span class="cline-any cline-no">&nbsp;</span>
273
+ <span class="cline-any cline-yes">2x</span>
274
+ <span class="cline-any cline-yes">1x</span>
275
+ <span class="cline-any cline-yes">1x</span>
276
+ <span class="cline-any cline-yes">1x</span>
267
277
  <span class="cline-any cline-neutral">&nbsp;</span>
268
- <span class="cline-any cline-no">&nbsp;</span>
278
+ <span class="cline-any cline-yes">1x</span>
269
279
  <span class="cline-any cline-neutral">&nbsp;</span>
270
- <span class="cline-any cline-no">&nbsp;</span>
271
- <span class="cline-any cline-no">&nbsp;</span>
272
- <span class="cline-any cline-no">&nbsp;</span>
273
- <span class="cline-any cline-no">&nbsp;</span>
280
+ <span class="cline-any cline-yes">1x</span>
281
+ <span class="cline-any cline-yes">1x</span>
282
+ <span class="cline-any cline-yes">1x</span>
283
+ <span class="cline-any cline-yes">1x</span>
274
284
  <span class="cline-any cline-neutral">&nbsp;</span>
275
285
  <span class="cline-any cline-neutral">&nbsp;</span>
276
- <span class="cline-any cline-no">&nbsp;</span>
286
+ <span class="cline-any cline-yes">3x</span>
277
287
  <span class="cline-any cline-neutral">&nbsp;</span>
278
288
  <span class="cline-any cline-neutral">&nbsp;</span>
279
- <span class="cline-any cline-no">&nbsp;</span>
289
+ <span class="cline-any cline-yes">3x</span>
280
290
  <span class="cline-any cline-no">&nbsp;</span>
281
291
  <span class="cline-any cline-neutral">&nbsp;</span>
282
292
  <span class="cline-any cline-neutral">&nbsp;</span>
283
293
  <span class="cline-any cline-neutral">&nbsp;</span>
284
294
  <span class="cline-any cline-neutral">&nbsp;</span>
285
- <span class="cline-any cline-no">&nbsp;</span>
295
+ <span class="cline-any cline-yes">3x</span>
286
296
  <span class="cline-any cline-neutral">&nbsp;</span>
287
- <span class="cline-any cline-no">&nbsp;</span>
288
- <span class="cline-any cline-no">&nbsp;</span>
297
+ <span class="cline-any cline-yes">3x</span>
298
+ <span class="cline-any cline-yes">3x</span>
289
299
  <span class="cline-any cline-neutral">&nbsp;</span>
290
300
  <span class="cline-any cline-neutral">&nbsp;</span>
291
301
  <span class="cline-any cline-neutral">&nbsp;</span>
292
- <span class="cline-any cline-no">&nbsp;</span>
302
+ <span class="cline-any cline-yes">3x</span>
293
303
  <span class="cline-any cline-neutral">&nbsp;</span>
294
- <span class="cline-any cline-no">&nbsp;</span>
304
+ <span class="cline-any cline-yes">1x</span>
295
305
  <span class="cline-any cline-neutral">&nbsp;</span>
296
- <span class="cline-any cline-no">&nbsp;</span>
306
+ <span class="cline-any cline-yes">1x</span>
297
307
  <span class="cline-any cline-neutral">&nbsp;</span>
298
308
  <span class="cline-any cline-neutral">&nbsp;</span>
299
309
  <span class="cline-any cline-neutral">&nbsp;</span>
300
- <span class="cline-any cline-yes">48x</span>
301
- <span class="cline-any cline-no">&nbsp;</span>
310
+ <span class="cline-any cline-yes">56x</span>
311
+ <span class="cline-any cline-yes">3x</span>
302
312
  <span class="cline-any cline-neutral">&nbsp;</span>
303
313
  <span class="cline-any cline-neutral">&nbsp;</span>
304
- <span class="cline-any cline-yes">48x</span>
305
- <span class="cline-any cline-no">&nbsp;</span>
314
+ <span class="cline-any cline-yes">56x</span>
315
+ <span class="cline-any cline-yes">2x</span>
306
316
  <span class="cline-any cline-neutral">&nbsp;</span>
307
- <span class="cline-any cline-no">&nbsp;</span>
308
- <span class="cline-any cline-no">&nbsp;</span>
317
+ <span class="cline-any cline-yes">2x</span>
318
+ <span class="cline-any cline-yes">2x</span>
309
319
  <span class="cline-any cline-neutral">&nbsp;</span>
310
- <span class="cline-any cline-no">&nbsp;</span>
320
+ <span class="cline-any cline-yes">1x</span>
311
321
  <span class="cline-any cline-neutral">&nbsp;</span>
312
- <span class="cline-any cline-no">&nbsp;</span>
322
+ <span class="cline-any cline-yes">1x</span>
313
323
  <span class="cline-any cline-neutral">&nbsp;</span>
314
324
  <span class="cline-any cline-neutral">&nbsp;</span>
315
325
  <span class="cline-any cline-neutral">&nbsp;</span>
316
- <span class="cline-any cline-yes">48x</span>
326
+ <span class="cline-any cline-yes">56x</span>
317
327
  <span class="cline-any cline-neutral">&nbsp;</span>
318
328
  <span class="cline-any cline-neutral">&nbsp;</span>
319
329
  <span class="cline-any cline-neutral">&nbsp;</span>
320
- <span class="cline-any cline-no">&nbsp;</span>
321
- <span class="cline-any cline-no">&nbsp;</span>
330
+ <span class="cline-any cline-yes">5x</span>
331
+ <span class="cline-any cline-yes">5x</span>
322
332
  <span class="cline-any cline-neutral">&nbsp;</span>
323
333
  <span class="cline-any cline-neutral">&nbsp;</span>
324
- <span class="cline-any cline-no">&nbsp;</span>
334
+ <span class="cline-any cline-yes">5x</span>
325
335
  <span class="cline-any cline-no">&nbsp;</span>
326
336
  <span class="cline-any cline-neutral">&nbsp;</span>
327
337
  <span class="cline-any cline-neutral">&nbsp;</span>
328
- <span class="cline-any cline-no">&nbsp;</span>
329
- <span class="cline-any cline-no">&nbsp;</span>
330
- <span class="cline-any cline-no">&nbsp;</span>
338
+ <span class="cline-any cline-yes">5x</span>
339
+ <span class="cline-any cline-yes">4x</span>
340
+ <span class="cline-any cline-yes">4x</span>
331
341
  <span class="cline-any cline-neutral">&nbsp;</span>
332
342
  <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import { npmUpload, urlUpload, githubUpload, fileUpload } from "./uploaders"
333
- import { plugins as pluginCore, tenancy } from "@budibase/backend-core"
334
- import { PluginType, FileType, PluginSource } from "@budibase/types"
343
+ import {
344
+ plugins as pluginCore,
345
+ db as dbCore,
346
+ tenancy,
347
+ objectStore,
348
+ } from "@budibase/backend-core"
349
+ import { PluginType, FileType, PluginSource, Plugin } from "@budibase/types"
335
350
  import env from "../../../environment"
336
351
  import { ClientAppSocket } from "../../../websocket"
337
- import { db as dbCore } from "@budibase/backend-core"
338
- import { plugins } from "@budibase/pro"
352
+ import { sdk as pro } from "@budibase/pro"
339
353
  &nbsp;
340
354
  export async function getPlugins(type?: PluginType) {
341
355
  const db = tenancy.getGlobalDB()
@@ -344,123 +358,124 @@ export async function getPlugins(type?: PluginType) {
344
358
  include_docs: true,
345
359
  })
346
360
  )
347
- const plugins = response.rows.map(<span class="fstat-no" title="function not covered" >(r</span>ow: any) =&gt; <span class="cstat-no" title="statement not covered" >row.doc)</span>
361
+ let plugins = response.rows.map((row: any) =&gt; row.doc) as Plugin[]
362
+ plugins = objectStore.enrichPluginURLs(plugins)
348
363
  if (type) {
349
- return plugins.filter(<span class="fstat-no" title="function not covered" >(p</span>lugin: any) =&gt; <span class="cstat-no" title="statement not covered" >plugin.schema?.type === type)</span>
350
- } else <span class="missing-if-branch" title="else path not taken" >E</span>{
351
- <span class="cstat-no" title="statement not covered" > return plugins</span>
364
+ return plugins.filter(<span class="fstat-no" title="function not covered" >(p</span>lugin: Plugin) =&gt; <span class="cstat-no" title="statement not covered" >plugin.schema?.type === type)</span>
365
+ } else {
366
+ return plugins
352
367
  }
353
368
  }
354
369
  &nbsp;
355
- export async function <span class="fstat-no" title="function not covered" >upload(</span>ctx: any) {
370
+ export async function upload(ctx: any) {
356
371
  const plugins: FileType[] =
357
- <span class="cstat-no" title="statement not covered" > ctx.request.files.file.length &gt; 1</span>
358
- ? Array.from(ctx.request.files.file)
372
+ ctx.request.files.file.length &gt; 1
373
+ ? <span class="branch-0 cbranch-no" title="branch not covered" >Array.from(ctx.request.files.file)</span>
359
374
  : [ctx.request.files.file]
360
- <span class="cstat-no" title="statement not covered" > try {</span>
361
- let docs = <span class="cstat-no" title="statement not covered" >[]</span>
375
+ try {
376
+ let docs = []
362
377
  // can do single or multiple plugins
363
- <span class="cstat-no" title="statement not covered" > for (let plugin of plugins) {</span>
364
- const doc = <span class="cstat-no" title="statement not covered" >await processUploadedPlugin(plugin, PluginSource.FILE)</span>
365
- <span class="cstat-no" title="statement not covered" > docs.push(doc)</span>
378
+ for (let plugin of plugins) {
379
+ const doc = await processUploadedPlugin(plugin, PluginSource.FILE)
380
+ docs.push(doc)
366
381
  }
367
- <span class="cstat-no" title="statement not covered" > ctx.body = {</span>
382
+ ctx.body = {
368
383
  message: "Plugin(s) uploaded successfully",
369
384
  plugins: docs,
370
385
  }
371
386
  } catch (err: any) {
372
- const errMsg = <span class="cstat-no" title="statement not covered" >err?.message ? err?.message : err</span>
387
+ const errMsg = err<span class="branch-0 cbranch-no" title="branch not covered" >?.m</span>essage ? <span class="branch-0 cbranch-no" title="branch not covered" >err?.message </span>: err
373
388
  &nbsp;
374
- <span class="cstat-no" title="statement not covered" > ctx.throw(400, `Failed to import plugin: ${errMsg}`)</span>
389
+ ctx.throw(400, `Failed to import plugin: ${errMsg}`)
375
390
  }
376
391
  }
377
392
  &nbsp;
378
- export async function <span class="fstat-no" title="function not covered" >create(</span>ctx: any) {
379
- const { source, url, headers, githubToken } = <span class="cstat-no" title="statement not covered" >ctx.request.body</span>
393
+ export async function create(ctx: any) {
394
+ const { source, url, headers, githubToken } = ctx.request.body
380
395
  &nbsp;
381
- <span class="cstat-no" title="statement not covered" > try {</span>
396
+ try {
382
397
  let metadata
383
398
  let directory
384
399
  // Generating random name as a backup and needed for url
385
- let name = <span class="cstat-no" title="statement not covered" >"PLUGIN_" + Math.floor(100000 + Math.random() * 900000)</span>
400
+ let name = "PLUGIN_" + Math.floor(100000 + Math.random() * 900000)
386
401
  &nbsp;
387
- <span class="cstat-no" title="statement not covered" > switch (source) {</span>
402
+ switch (source) {
388
403
  case PluginSource.NPM:
389
404
  const { metadata: metadataNpm, directory: directoryNpm } =
390
- <span class="cstat-no" title="statement not covered" > await npmUpload(url, name)</span>
391
- <span class="cstat-no" title="statement not covered" > metadata = metadataNpm</span>
392
- <span class="cstat-no" title="statement not covered" > directory = directoryNpm</span>
393
- <span class="cstat-no" title="statement not covered" > break</span>
405
+ await npmUpload(url, name)
406
+ metadata = metadataNpm
407
+ directory = directoryNpm
408
+ break
394
409
  case PluginSource.GITHUB:
395
410
  const { metadata: metadataGithub, directory: directoryGithub } =
396
- <span class="cstat-no" title="statement not covered" > await githubUpload(url, name, githubToken)</span>
397
- <span class="cstat-no" title="statement not covered" > metadata = metadataGithub</span>
398
- <span class="cstat-no" title="statement not covered" > directory = directoryGithub</span>
399
- <span class="cstat-no" title="statement not covered" > break</span>
411
+ await githubUpload(url, name, githubToken)
412
+ metadata = metadataGithub
413
+ directory = directoryGithub
414
+ break
400
415
  case PluginSource.URL:
401
- const headersObj = <span class="cstat-no" title="statement not covered" >headers || {}</span>
416
+ const headersObj = headers || {}
402
417
  const { metadata: metadataUrl, directory: directoryUrl } =
403
- <span class="cstat-no" title="statement not covered" > await urlUpload(url, name, headersObj)</span>
404
- <span class="cstat-no" title="statement not covered" > metadata = metadataUrl</span>
405
- <span class="cstat-no" title="statement not covered" > directory = directoryUrl</span>
406
- <span class="cstat-no" title="statement not covered" > break</span>
418
+ await urlUpload(url, name, headersObj)
419
+ metadata = metadataUrl
420
+ directory = directoryUrl
421
+ break
407
422
  }
408
423
  &nbsp;
409
- <span class="cstat-no" title="statement not covered" > pluginCore.validate(metadata?.schema)</span>
424
+ pluginCore.validate(metadata<span class="branch-0 cbranch-no" title="branch not covered" >?.s</span>chema)
410
425
  &nbsp;
411
426
  // Only allow components in cloud
412
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (!env.SELF_HOSTED &amp;&amp; metadata?.schema?.type !== PluginType.COMPONENT) {</span>
427
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (!env.SELF_HOSTED &amp;&amp; <span class="branch-1 cbranch-no" title="branch not covered" >metadata?.schema?.type !== PluginType.COMPONENT)</span> {
413
428
  <span class="cstat-no" title="statement not covered" > throw new Error(</span>
414
429
  "Only component plugins are supported outside of self-host"
415
430
  )
416
431
  }
417
432
  &nbsp;
418
- const doc = <span class="cstat-no" title="statement not covered" >await plugins.storePlugin(metadata, directory, source)</span>
433
+ const doc = await pro.plugins.storePlugin(metadata, directory, source)
419
434
  &nbsp;
420
- <span class="cstat-no" title="statement not covered" > ClientAppSocket.emit("plugins-update", { name, hash: doc.hash })</span>
421
- <span class="cstat-no" title="statement not covered" > ctx.body = {</span>
435
+ ClientAppSocket.emit("plugins-update", { name, hash: doc.hash })
436
+ ctx.body = {
422
437
  message: "Plugin uploaded successfully",
423
438
  plugins: [doc],
424
439
  }
425
- <span class="cstat-no" title="statement not covered" > ctx.body = { plugin: doc }</span>
440
+ ctx.body = { plugin: doc }
426
441
  } catch (err: any) {
427
- const errMsg = <span class="cstat-no" title="statement not covered" >err?.message ? err?.message : err</span>
442
+ const errMsg = err<span class="branch-0 cbranch-no" title="branch not covered" >?.m</span>essage ? err<span class="branch-0 cbranch-no" title="branch not covered" >?.m</span>essage : <span class="branch-1 cbranch-no" title="branch not covered" >err</span>
428
443
  &nbsp;
429
- <span class="cstat-no" title="statement not covered" > ctx.throw(400, `Failed to import plugin: ${errMsg}`)</span>
444
+ ctx.throw(400, `Failed to import plugin: ${errMsg}`)
430
445
  }
431
446
  }
432
447
  &nbsp;
433
- export async function <span class="fstat-no" title="function not covered" >fetch(</span>ctx: any) {
434
- <span class="cstat-no" title="statement not covered" > ctx.body = await getPlugins()</span>
448
+ export async function fetch(ctx: any) {
449
+ ctx.body = await getPlugins()
435
450
  }
436
451
  &nbsp;
437
- export async function <span class="fstat-no" title="function not covered" >destroy(</span>ctx: any) {
438
- const { pluginId } = <span class="cstat-no" title="statement not covered" >ctx.params</span>
452
+ export async function destroy(ctx: any) {
453
+ const { pluginId } = ctx.params
439
454
  &nbsp;
440
- <span class="cstat-no" title="statement not covered" > try {</span>
441
- <span class="cstat-no" title="statement not covered" > await plugins.deletePlugin(pluginId)</span>
455
+ try {
456
+ await pro.plugins.deletePlugin(pluginId)
442
457
  &nbsp;
443
- <span class="cstat-no" title="statement not covered" > ctx.body = { message: `Plugin ${ctx.params.pluginId} deleted.` }</span>
458
+ ctx.body = { message: `Plugin ${ctx.params.pluginId} deleted.` }
444
459
  } catch (err: any) {
445
- <span class="cstat-no" title="statement not covered" > ctx.throw(400, err.message)</span>
460
+ ctx.throw(400, err.message)
446
461
  }
447
462
  }
448
463
  &nbsp;
449
- export async function <span class="fstat-no" title="function not covered" >processUploadedPlugin(</span>
464
+ export async function processUploadedPlugin(
450
465
  plugin: FileType,
451
466
  source?: PluginSource
452
467
  ) {
453
- const { metadata, directory } = <span class="cstat-no" title="statement not covered" >await fileUpload(plugin)</span>
454
- <span class="cstat-no" title="statement not covered" > pluginCore.validate(metadata?.schema)</span>
468
+ const { metadata, directory } = await fileUpload(plugin)
469
+ pluginCore.validate(metadata<span class="branch-0 cbranch-no" title="branch not covered" >?.s</span>chema)
455
470
  &nbsp;
456
471
  // Only allow components in cloud
457
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (!env.SELF_HOSTED &amp;&amp; metadata?.schema?.type !== PluginType.COMPONENT) {</span>
472
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (!env.SELF_HOSTED &amp;&amp; <span class="branch-1 cbranch-no" title="branch not covered" >metadata?.schema?.type !== PluginType.COMPONENT)</span> {
458
473
  <span class="cstat-no" title="statement not covered" > throw new Error("Only component plugins are supported outside of self-host")</span>
459
474
  }
460
475
  &nbsp;
461
- const doc = <span class="cstat-no" title="statement not covered" >await plugins.storePlugin(metadata, directory, source)</span>
462
- <span class="cstat-no" title="statement not covered" > ClientAppSocket.emit("plugin-update", { name: doc.name, hash: doc.hash })</span>
463
- <span class="cstat-no" title="statement not covered" > return doc</span>
476
+ const doc = await pro.plugins.storePlugin(metadata, directory, source)
477
+ ClientAppSocket.emit("plugin-update", { name: doc.name, hash: doc.hash })
478
+ return doc
464
479
  }
465
480
  &nbsp;</pre></td></tr></table></pre>
466
481
 
@@ -469,7 +484,7 @@ export async function <span class="fstat-no" title="function not covered" >proce
469
484
  <div class='footer quiet pad2 space-top1 center small'>
470
485
  Code coverage generated by
471
486
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
472
- at Fri Jan 06 2023 17:12:09 GMT+0000 (Coordinated Universal Time)
487
+ at Fri Jan 06 2023 17:46:06 GMT+0000 (Coordinated Universal Time)
473
488
  </div>
474
489
  <script src="../../../../prettify.js"></script>
475
490
  <script>