@budibase/server 2.2.11 → 2.2.12-alpha.1

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.5e79c3b5.js} +363 -360
  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
@@ -85,6 +85,43 @@ write.push(new Endpoint_1.default("put", "/applications/:appId", applications_1.
85
85
  * $ref: '#/components/examples/application'
86
86
  */
87
87
  write.push(new Endpoint_1.default("delete", "/applications/:appId", applications_1.default.destroy));
88
+ /**
89
+ * @openapi
90
+ * /applications/{appId}/unpublish:
91
+ * post:
92
+ * operationId: unpublish
93
+ * summary: Unpublish an application
94
+ * tags:
95
+ * - applications
96
+ * parameters:
97
+ * - $ref: '#/components/parameters/appIdUrl'
98
+ * responses:
99
+ * 204:
100
+ * description: The app was published successfully.
101
+ */
102
+ write.push(new Endpoint_1.default("post", "/applications/:appId/unpublish", applications_1.default.unpublish));
103
+ /**
104
+ * @openapi
105
+ * /applications/{appId}/publish:
106
+ * post:
107
+ * operationId: publish
108
+ * summary: Unpublish an application
109
+ * tags:
110
+ * - applications
111
+ * parameters:
112
+ * - $ref: '#/components/parameters/appIdUrl'
113
+ * responses:
114
+ * 200:
115
+ * description: Returns the deployment object.
116
+ * content:
117
+ * application/json:
118
+ * schema:
119
+ * $ref: '#/components/schemas/deploymentOutput'
120
+ * examples:
121
+ * deployment:
122
+ * $ref: '#/components/examples/deploymentOutput'
123
+ */
124
+ write.push(new Endpoint_1.default("post", "/applications/:appId/publish", applications_1.default.publish));
88
125
  /**
89
126
  * @openapi
90
127
  * /applications/{appId}:
@@ -66,6 +66,9 @@ function processQueries(ctx) {
66
66
  }
67
67
  }
68
68
  exports.default = (ctx, next) => __awaiter(void 0, void 0, void 0, function* () {
69
+ if (!ctx.body) {
70
+ return yield next();
71
+ }
69
72
  let urlParts = ctx.url.split("/");
70
73
  urlParts = urlParts.slice(4, urlParts.length);
71
74
  let body = {};
@@ -12,9 +12,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
12
12
  return (mod && mod.__esModule) ? mod : { "default": mod };
13
13
  };
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.stringSplit = exports.substituteLoopStep = exports.getError = exports.cleanUpRow = exports.cleanInputValues = void 0;
15
+ exports.typecastForLooping = exports.stringSplit = exports.substituteLoopStep = exports.getError = exports.cleanUpRow = exports.cleanInputValues = void 0;
16
16
  const string_templates_1 = require("@budibase/string-templates");
17
17
  const sdk_1 = __importDefault(require("../sdk"));
18
+ const automations_1 = require("../definitions/automations");
18
19
  /**
19
20
  * When values are input to the system generally they will be of type string as this is required for template strings.
20
21
  * This can generate some odd scenarios as the Schema of the automation requires a number but the builder might supply
@@ -132,3 +133,27 @@ function stringSplit(value) {
132
133
  return value;
133
134
  }
134
135
  exports.stringSplit = stringSplit;
136
+ function typecastForLooping(loopStep, input) {
137
+ if (!input || !input.binding) {
138
+ return null;
139
+ }
140
+ try {
141
+ switch (loopStep.inputs.option) {
142
+ case automations_1.LoopStepType.ARRAY:
143
+ if (typeof input.binding === "string") {
144
+ return JSON.parse(input.binding);
145
+ }
146
+ break;
147
+ case automations_1.LoopStepType.STRING:
148
+ if (Array.isArray(input.binding)) {
149
+ return input.binding.join(",");
150
+ }
151
+ break;
152
+ }
153
+ }
154
+ catch (err) {
155
+ throw new Error("Unable to cast to correct type");
156
+ }
157
+ return input.binding;
158
+ }
159
+ exports.typecastForLooping = typecastForLooping;
@@ -69,7 +69,6 @@ const environment = {
69
69
  // flags
70
70
  ALLOW_DEV_AUTOMATIONS: process.env.ALLOW_DEV_AUTOMATIONS,
71
71
  DISABLE_THREADING: process.env.DISABLE_THREADING,
72
- DISABLE_DEVELOPER_LICENSE: process.env.DISABLE_DEVELOPER_LICENSE,
73
72
  DISABLE_AUTOMATION_LOGS: process.env.DISABLE_AUTOMATION_LOGS,
74
73
  MULTI_TENANCY: process.env.MULTI_TENANCY,
75
74
  ENABLE_ANALYTICS: process.env.ENABLE_ANALYTICS,
@@ -107,5 +106,10 @@ for (let [key, value] of Object.entries(environment)) {
107
106
  // @ts-ignore
108
107
  environment[key] = 0;
109
108
  }
109
+ // handle the edge case of "false" to disable an environment variable
110
+ if (value === "false") {
111
+ // @ts-ignore
112
+ environment[key] = 0;
113
+ }
110
114
  }
111
115
  module.exports = environment;
@@ -242,7 +242,7 @@ class GoogleSheetsIntegration {
242
242
  return __awaiter(this, void 0, void 0, function* () {
243
243
  try {
244
244
  yield this.connect();
245
- return yield this.client.addSheet({ title: name });
245
+ return yield this.client.addSheet({ title: name, headerValues: ["test"] });
246
246
  }
247
247
  catch (err) {
248
248
  console.error("Error creating new table in google sheets", err);
@@ -95,7 +95,6 @@ function getDefinitions() {
95
95
  }
96
96
  exports.getDefinitions = getDefinitions;
97
97
  function getIntegration(integration) {
98
- var _a;
99
98
  return __awaiter(this, void 0, void 0, function* () {
100
99
  if (INTEGRATIONS[integration]) {
101
100
  return INTEGRATIONS[integration];
@@ -105,7 +104,7 @@ function getIntegration(integration) {
105
104
  for (let plugin of plugins) {
106
105
  if (plugin.name === integration) {
107
106
  // need to use commonJS require due to its dynamic runtime nature
108
- const retrieved = yield (0, fileSystem_1.getDatasourcePlugin)(plugin.name, plugin.jsUrl, (_a = plugin.schema) === null || _a === void 0 ? void 0 : _a.hash);
107
+ const retrieved = yield (0, fileSystem_1.getDatasourcePlugin)(plugin);
109
108
  if (retrieved.integration) {
110
109
  return retrieved.integration;
111
110
  }
@@ -29,15 +29,15 @@ const backfill = (globalDb, timestamp) => __awaiter(void 0, void 0, void 0, func
29
29
  yield backend_core_1.events.email.SMTPCreated(timestamp);
30
30
  }
31
31
  if ((0, types_1.isGoogleConfig)(config)) {
32
- yield backend_core_1.events.auth.SSOCreated("google", timestamp);
32
+ yield backend_core_1.events.auth.SSOCreated(types_1.ConfigType.GOOGLE, timestamp);
33
33
  if (config.config.activated) {
34
- yield backend_core_1.events.auth.SSOActivated("google", timestamp);
34
+ yield backend_core_1.events.auth.SSOActivated(types_1.ConfigType.GOOGLE, timestamp);
35
35
  }
36
36
  }
37
37
  if ((0, types_1.isOIDCConfig)(config)) {
38
- yield backend_core_1.events.auth.SSOCreated("oidc", timestamp);
38
+ yield backend_core_1.events.auth.SSOCreated(types_1.ConfigType.OIDC, timestamp);
39
39
  if (config.config.configs[0].activated) {
40
- yield backend_core_1.events.auth.SSOActivated("oidc", timestamp);
40
+ yield backend_core_1.events.auth.SSOActivated(types_1.ConfigType.OIDC, timestamp);
41
41
  }
42
42
  }
43
43
  if ((0, types_1.isSettingsConfig)(config)) {
package/dist/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@budibase/server",
3
3
  "email": "hi@budibase.com",
4
- "version": "2.2.10",
4
+ "version": "2.2.12-alpha.0",
5
5
  "description": "Budibase Web Server",
6
6
  "main": "src/index.ts",
7
7
  "repository": {
@@ -43,11 +43,11 @@
43
43
  "license": "GPL-3.0",
44
44
  "dependencies": {
45
45
  "@apidevtools/swagger-parser": "10.0.3",
46
- "@budibase/backend-core": "^2.2.10",
47
- "@budibase/client": "^2.2.10",
48
- "@budibase/pro": "2.2.10",
49
- "@budibase/string-templates": "^2.2.10",
50
- "@budibase/types": "^2.2.10",
46
+ "@budibase/backend-core": "2.2.12-alpha.0",
47
+ "@budibase/client": "2.2.12-alpha.0",
48
+ "@budibase/pro": "2.2.11",
49
+ "@budibase/string-templates": "2.2.12-alpha.0",
50
+ "@budibase/types": "2.2.12-alpha.0",
51
51
  "@bull-board/api": "3.7.0",
52
52
  "@bull-board/koa": "3.9.4",
53
53
  "@elastic/elasticsearch": "7.10.0",
@@ -130,13 +130,15 @@
130
130
  "@types/ioredis": "4.28.10",
131
131
  "@types/jest": "27.5.1",
132
132
  "@types/koa": "2.13.4",
133
- "@types/koa__router": "8.0.11",
133
+ "@types/koa__router": "8.0.8",
134
134
  "@types/lodash": "4.14.180",
135
135
  "@types/node": "14.18.20",
136
136
  "@types/node-fetch": "2.6.1",
137
137
  "@types/oracledb": "5.2.2",
138
138
  "@types/pouchdb": "6.4.0",
139
139
  "@types/redis": "4.0.11",
140
+ "@types/server-destroy": "1.0.1",
141
+ "@types/tar": "6.1.3",
140
142
  "@typescript-eslint/parser": "5.45.0",
141
143
  "apidoc": "0.50.4",
142
144
  "babel-jest": "27.5.1",
@@ -27,17 +27,13 @@ const uuid = require("uuid/v4");
27
27
  const tar = require("tar");
28
28
  function rewriteAttachmentUrl(appId, attachment) {
29
29
  // URL looks like: /prod-budi-app-assets/appId/attachments/file.csv
30
- const urlParts = attachment.url.split("/");
31
- // drop the first empty element
32
- urlParts.shift();
33
- // get the prefix
34
- const prefix = urlParts.shift();
30
+ const urlParts = attachment.key.split("/");
35
31
  // remove the app ID
36
32
  urlParts.shift();
37
33
  // add new app ID
38
34
  urlParts.unshift(appId);
39
35
  const key = urlParts.join("/");
40
- return Object.assign(Object.assign({}, attachment), { key, url: `/${prefix}/${key}` });
36
+ return Object.assign(Object.assign({}, attachment), { key, url: "" });
41
37
  }
42
38
  function updateAttachmentColumns(prodAppId, db) {
43
39
  return __awaiter(this, void 0, void 0, function* () {
@@ -47,7 +47,6 @@ const triggerInfo_1 = require("../automations/triggerInfo");
47
47
  const constants_1 = require("../constants");
48
48
  const logging_1 = require("../automations/logging");
49
49
  const types_1 = require("@budibase/types");
50
- const automations_1 = require("../definitions/automations");
51
50
  const backend_core_1 = require("@budibase/backend-core");
52
51
  const string_templates_1 = require("@budibase/string-templates");
53
52
  const fp_1 = require("lodash/fp");
@@ -56,31 +55,8 @@ const FILTER_STEP_ID = actions.ACTION_DEFINITIONS.FILTER.stepId;
56
55
  const LOOP_STEP_ID = actions.ACTION_DEFINITIONS.LOOP.stepId;
57
56
  const CRON_STEP_ID = triggerInfo_1.definitions.CRON.stepId;
58
57
  const STOPPED_STATUS = { success: true, status: types_1.AutomationStatus.STOPPED };
59
- function typecastForLooping(loopStep, input) {
60
- if (!input || !input.binding) {
61
- return null;
62
- }
63
- try {
64
- switch (loopStep.inputs.option) {
65
- case automations_1.LoopStepType.ARRAY:
66
- if (typeof input.binding === "string") {
67
- return JSON.parse(input.binding);
68
- }
69
- break;
70
- case automations_1.LoopStepType.STRING:
71
- if (Array.isArray(input.binding)) {
72
- return input.binding.join(",");
73
- }
74
- break;
75
- }
76
- }
77
- catch (err) {
78
- throw new Error("Unable to cast to correct type");
79
- }
80
- return input.binding;
81
- }
82
58
  function getLoopIterations(loopStep, input) {
83
- const binding = typecastForLooping(loopStep, input);
59
+ const binding = automationUtils.typecastForLooping(loopStep, input);
84
60
  if (!loopStep || !binding) {
85
61
  return 1;
86
62
  }
@@ -269,7 +245,7 @@ class Orchestrator {
269
245
  let newInput = yield (0, string_templates_1.processObject)(loopStep.inputs, (0, fp_1.cloneDeep)(this._context));
270
246
  let tempOutput = { items: loopSteps, iterations: iterationCount };
271
247
  try {
272
- newInput.binding = typecastForLooping(loopStep, newInput);
248
+ newInput.binding = automationUtils.typecastForLooping(loopStep, newInput);
273
249
  }
274
250
  catch (err) {
275
251
  this.updateContextAndOutput(loopStepNumber, step, tempOutput, {
@@ -391,7 +367,7 @@ class Orchestrator {
391
367
  }
392
368
  // Delete the step after the loop step as it's irrelevant, since information is included
393
369
  // in the loop step
394
- if (wasLoopStep) {
370
+ if (wasLoopStep && !loopStep) {
395
371
  this._context.steps.splice(loopStepNumber + 1, 1);
396
372
  wasLoopStep = false;
397
373
  }
@@ -408,8 +384,8 @@ class Orchestrator {
408
384
  inputs: step.inputs,
409
385
  });
410
386
  this._context.steps[loopStepNumber] = tempOutput;
411
- loopSteps = undefined;
412
387
  wasLoopStep = true;
388
+ loopSteps = [];
413
389
  }
414
390
  }
415
391
  // store the logs for the automation run