@budibase/server 2.1.39 → 2.1.40-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 (785) hide show
  1. package/__mocks__/aws-sdk.ts +14 -0
  2. package/__mocks__/node-fetch.ts +5 -1
  3. package/builder/assets/{index.534f6c29.css → index.144dddb2.css} +2 -2
  4. package/builder/assets/{index.a89ac148.js → index.93f18258.js} +308 -308
  5. package/builder/index.html +2 -2
  6. package/coverage/clover.xml +10747 -3757
  7. package/coverage/coverage-final.json +266 -118
  8. package/coverage/lcov-report/index.html +679 -184
  9. package/coverage/lcov-report/src/api/controllers/analytics.ts.html +190 -0
  10. package/coverage/lcov-report/{api/controllers/apikeys.js.html → src/api/controllers/apikeys.ts.html} +26 -26
  11. package/coverage/lcov-report/src/api/controllers/application.ts.html +2038 -0
  12. package/coverage/lcov-report/src/api/controllers/auth.ts.html +301 -0
  13. package/coverage/lcov-report/{api/controllers/automation.js.html → src/api/controllers/automation.ts.html} +75 -75
  14. package/coverage/lcov-report/src/api/controllers/backup.ts.html +148 -0
  15. package/coverage/lcov-report/{api/controllers/cloud.js.html → src/api/controllers/cloud.ts.html} +47 -47
  16. package/coverage/lcov-report/src/api/controllers/component.ts.html +259 -0
  17. package/coverage/lcov-report/{api/controllers/datasource.js.html → src/api/controllers/datasource.ts.html} +246 -87
  18. package/coverage/lcov-report/src/api/controllers/deploy/Deployment.ts.html +259 -0
  19. package/coverage/lcov-report/{utilities/rowProcessor → src/api/controllers/deploy}/index.html +40 -40
  20. package/coverage/lcov-report/src/api/controllers/deploy/index.ts.html +730 -0
  21. package/coverage/lcov-report/{api/controllers/dev.js.html → src/api/controllers/dev.ts.html} +53 -71
  22. package/coverage/lcov-report/src/api/controllers/index.html +431 -0
  23. package/coverage/lcov-report/{api/controllers/integration.js.html → src/api/controllers/integration.ts.html} +19 -22
  24. package/coverage/lcov-report/{api/controllers/layout.js.html → src/api/controllers/layout.ts.html} +26 -26
  25. package/coverage/lcov-report/{api/controllers/metadata.js.html → src/api/controllers/metadata.ts.html} +26 -23
  26. package/coverage/lcov-report/{api/controllers/migrations.js.html → src/api/controllers/migrations.ts.html} +18 -15
  27. package/coverage/lcov-report/{api/controllers/permission.js.html → src/api/controllers/permission.ts.html} +80 -71
  28. package/coverage/lcov-report/src/api/controllers/plugin/file.ts.html +130 -0
  29. package/coverage/lcov-report/src/api/controllers/plugin/github.ts.html +310 -0
  30. package/coverage/lcov-report/src/api/controllers/plugin/index.html +206 -0
  31. package/coverage/lcov-report/src/api/controllers/plugin/index.ts.html +484 -0
  32. package/coverage/lcov-report/src/api/controllers/plugin/npm.ts.html +253 -0
  33. package/coverage/lcov-report/src/api/controllers/plugin/uploaders.ts.html +97 -0
  34. package/coverage/lcov-report/src/api/controllers/plugin/url.ts.html +121 -0
  35. package/coverage/lcov-report/src/api/controllers/plugin/utils.ts.html +136 -0
  36. package/coverage/lcov-report/src/api/controllers/public/applications.ts.html +334 -0
  37. package/coverage/lcov-report/src/api/controllers/public/index.html +191 -0
  38. package/coverage/lcov-report/src/api/controllers/public/mapping/applications.ts.html +181 -0
  39. package/coverage/lcov-report/src/api/controllers/public/mapping/index.html +191 -0
  40. package/coverage/lcov-report/src/api/controllers/public/mapping/index.ts.html +124 -0
  41. package/coverage/lcov-report/src/api/controllers/public/mapping/queries.ts.html +202 -0
  42. package/coverage/lcov-report/src/api/controllers/public/mapping/rows.ts.html +178 -0
  43. package/coverage/lcov-report/src/api/controllers/public/mapping/tables.ts.html +163 -0
  44. package/coverage/lcov-report/src/api/controllers/public/mapping/users.ts.html +181 -0
  45. package/coverage/lcov-report/src/api/controllers/public/queries.ts.html +145 -0
  46. package/coverage/lcov-report/src/api/controllers/public/rows.ts.html +328 -0
  47. package/coverage/lcov-report/src/api/controllers/public/tables.ts.html +253 -0
  48. package/coverage/lcov-report/src/api/controllers/public/users.ts.html +268 -0
  49. package/coverage/lcov-report/src/api/controllers/public/utils.ts.html +220 -0
  50. package/coverage/lcov-report/src/api/controllers/query/import/index.html +116 -0
  51. package/coverage/lcov-report/src/api/controllers/query/import/index.ts.html +373 -0
  52. package/coverage/lcov-report/src/api/controllers/query/import/sources/base/index.html +131 -0
  53. package/coverage/lcov-report/src/api/controllers/query/import/sources/base/index.ts.html +379 -0
  54. package/coverage/lcov-report/src/api/controllers/query/import/sources/base/openapi.ts.html +157 -0
  55. package/coverage/lcov-report/src/api/controllers/query/import/sources/curl.ts.html +403 -0
  56. package/coverage/lcov-report/src/api/controllers/query/import/sources/index.html +146 -0
  57. package/coverage/lcov-report/src/api/controllers/query/import/sources/openapi2.ts.html +586 -0
  58. package/coverage/lcov-report/src/api/controllers/query/import/sources/openapi3.ts.html +712 -0
  59. package/coverage/lcov-report/src/api/controllers/query/index.html +131 -0
  60. package/coverage/lcov-report/src/api/controllers/query/index.ts.html +976 -0
  61. package/coverage/lcov-report/{api/controllers/query/validation.js.html → src/api/controllers/query/validation.ts.html} +17 -17
  62. package/coverage/lcov-report/{api/controllers/role.js.html → src/api/controllers/role.ts.html} +44 -56
  63. package/coverage/lcov-report/{api/controllers/routing.js.html → src/api/controllers/routing.ts.html} +65 -56
  64. package/coverage/lcov-report/src/api/controllers/row/ExternalRequest.ts.html +2260 -0
  65. package/coverage/lcov-report/{api/controllers/row/external.js.html → src/api/controllers/row/external.ts.html} +145 -94
  66. package/coverage/lcov-report/{api → src/api}/controllers/row/index.html +82 -52
  67. package/coverage/lcov-report/src/api/controllers/row/index.ts.html +541 -0
  68. package/coverage/lcov-report/{api/controllers/row/internal.js.html → src/api/controllers/row/internal.ts.html} +137 -95
  69. package/coverage/lcov-report/{api/controllers/row/internalSearch.js.html → src/api/controllers/row/internalSearch.ts.html} +182 -110
  70. package/coverage/lcov-report/{api/controllers/row/staticFormula.js.html → src/api/controllers/row/staticFormula.ts.html} +66 -51
  71. package/coverage/lcov-report/{api/controllers/row/utils.js.html → src/api/controllers/row/utils.ts.html} +77 -47
  72. package/coverage/lcov-report/src/api/controllers/screen.ts.html +463 -0
  73. package/coverage/lcov-report/{api/controllers/script.js.html → src/api/controllers/script.ts.html} +17 -14
  74. package/coverage/lcov-report/src/api/controllers/static/index.html +116 -0
  75. package/coverage/lcov-report/src/api/controllers/static/index.ts.html +694 -0
  76. package/coverage/lcov-report/{api/controllers/table/bulkFormula.js.html → src/api/controllers/table/bulkFormula.ts.html} +96 -54
  77. package/coverage/lcov-report/{api/controllers/table/external.js.html → src/api/controllers/table/external.ts.html} +196 -103
  78. package/coverage/lcov-report/src/api/controllers/table/index.html +176 -0
  79. package/coverage/lcov-report/{api/controllers/table/index.js.html → src/api/controllers/table/index.ts.html} +46 -37
  80. package/coverage/lcov-report/src/api/controllers/table/internal.ts.html +661 -0
  81. package/coverage/lcov-report/src/api/controllers/table/utils.ts.html +1255 -0
  82. package/coverage/lcov-report/{api/controllers/templates.js.html → src/api/controllers/templates.ts.html} +34 -25
  83. package/coverage/lcov-report/{api/controllers/user.js.html → src/api/controllers/user.ts.html} +79 -85
  84. package/coverage/lcov-report/{api/controllers/view/exporters.js.html → src/api/controllers/view/exporters.ts.html} +20 -14
  85. package/coverage/lcov-report/{api → src/api}/controllers/view/index.html +36 -36
  86. package/coverage/lcov-report/{api/controllers/view/index.js.html → src/api/controllers/view/index.ts.html} +75 -48
  87. package/coverage/lcov-report/{api/controllers/view/utils.js.html → src/api/controllers/view/utils.ts.html} +61 -43
  88. package/coverage/lcov-report/{api/controllers/view/viewBuilder.js.html → src/api/controllers/view/viewBuilder.ts.html} +74 -32
  89. package/coverage/lcov-report/src/api/controllers/webhook.ts.html +379 -0
  90. package/coverage/lcov-report/{api → src/api}/index.html +23 -23
  91. package/coverage/lcov-report/{api/index.js.html → src/api/index.ts.html} +35 -56
  92. package/coverage/lcov-report/{api/routes/analytics.js.html → src/api/routes/analytics.ts.html} +14 -14
  93. package/coverage/lcov-report/{api/routes/integration.js.html → src/api/routes/apikeys.ts.html} +18 -18
  94. package/coverage/lcov-report/{constants/screens.js.html → src/api/routes/application.ts.html} +63 -63
  95. package/coverage/lcov-report/src/api/routes/auth.ts.html +109 -0
  96. package/coverage/lcov-report/{api/routes/automation.js.html → src/api/routes/automation.ts.html} +48 -42
  97. package/coverage/lcov-report/{api/routes/cloud.js.html → src/api/routes/backup.ts.html} +21 -21
  98. package/coverage/lcov-report/{api/routes/deploy.js.html → src/api/routes/cloud.ts.html} +25 -22
  99. package/coverage/lcov-report/{api/routes/component.js.html → src/api/routes/component.ts.html} +17 -17
  100. package/coverage/lcov-report/src/api/routes/datasource.ts.html +265 -0
  101. package/coverage/lcov-report/src/api/routes/deploy.ts.html +148 -0
  102. package/coverage/lcov-report/src/api/routes/dev.ts.html +199 -0
  103. package/coverage/lcov-report/{api → src/api}/routes/index.html +167 -47
  104. package/coverage/lcov-report/src/api/routes/index.ts.html +289 -0
  105. package/coverage/lcov-report/src/api/routes/integration.ts.html +133 -0
  106. package/coverage/lcov-report/{api/routes/layout.js.html → src/api/routes/layout.ts.html} +18 -18
  107. package/coverage/lcov-report/{api/routes/metadata.js.html → src/api/routes/metadata.ts.html} +24 -24
  108. package/coverage/lcov-report/src/api/routes/migrations.ts.html +127 -0
  109. package/coverage/lcov-report/{api/routes/permission.js.html → src/api/routes/permission.ts.html} +48 -24
  110. package/coverage/lcov-report/src/api/routes/plugin.ts.html +151 -0
  111. package/coverage/lcov-report/src/api/routes/public/applications.ts.html +541 -0
  112. package/coverage/lcov-report/src/api/routes/public/index.html +191 -0
  113. package/coverage/lcov-report/src/api/routes/public/index.ts.html +493 -0
  114. package/coverage/lcov-report/src/api/routes/public/middleware/index.html +116 -0
  115. package/coverage/lcov-report/src/api/routes/public/middleware/mapper.ts.html +328 -0
  116. package/coverage/lcov-report/src/api/routes/public/queries.ts.html +313 -0
  117. package/coverage/lcov-report/src/api/routes/public/rows.ts.html +598 -0
  118. package/coverage/lcov-report/src/api/routes/public/tables.ts.html +586 -0
  119. package/coverage/lcov-report/src/api/routes/public/users.ts.html +511 -0
  120. package/coverage/lcov-report/src/api/routes/public/utils/Endpoint.ts.html +238 -0
  121. package/coverage/lcov-report/src/api/routes/public/utils/index.html +116 -0
  122. package/coverage/lcov-report/{api/routes/query.js.html → src/api/routes/query.ts.html} +33 -42
  123. package/coverage/lcov-report/{utilities/routing/index.js.html → src/api/routes/role.ts.html} +39 -42
  124. package/coverage/lcov-report/{api/routes/routing.js.html → src/api/routes/routing.ts.html} +17 -17
  125. package/coverage/lcov-report/src/api/routes/row.ts.html +883 -0
  126. package/coverage/lcov-report/{api/routes/screen.js.html → src/api/routes/screen.ts.html} +36 -21
  127. package/coverage/lcov-report/{api/routes/script.js.html → src/api/routes/script.ts.html} +17 -17
  128. package/coverage/lcov-report/src/api/routes/static.ts.html +280 -0
  129. package/coverage/lcov-report/{api/routes/table.js.html → src/api/routes/table.ts.html} +24 -33
  130. package/coverage/lcov-report/{api/routes/templates.js.html → src/api/routes/templates.ts.html} +18 -18
  131. package/coverage/lcov-report/src/api/routes/tests/utilities/TestFunctions.ts.html +550 -0
  132. package/coverage/lcov-report/src/api/routes/tests/utilities/index.html +131 -0
  133. package/coverage/lcov-report/src/api/routes/tests/utilities/index.ts.html +367 -0
  134. package/coverage/lcov-report/{api/routes/user.js.html → src/api/routes/user.ts.html} +29 -35
  135. package/coverage/lcov-report/{api → src/api}/routes/utils/index.html +15 -15
  136. package/coverage/lcov-report/{api/routes/utils/validators.js.html → src/api/routes/utils/validators.ts.html} +46 -58
  137. package/coverage/lcov-report/{api/routes/view.js.html → src/api/routes/view.ts.html} +40 -31
  138. package/coverage/lcov-report/src/api/routes/webhook.ts.html +166 -0
  139. package/coverage/lcov-report/src/app.ts.html +406 -0
  140. package/coverage/lcov-report/{automations/actions.js.html → src/automations/actions.ts.html} +50 -41
  141. package/coverage/lcov-report/{automations/automationUtils.js.html → src/automations/automationUtils.ts.html} +30 -27
  142. package/coverage/lcov-report/{automations/bullboard.js.html → src/automations/bullboard.ts.html} +30 -33
  143. package/coverage/lcov-report/{automations → src/automations}/index.html +63 -48
  144. package/coverage/lcov-report/{api/routes/dev.js.html → src/automations/index.ts.html} +42 -42
  145. package/coverage/lcov-report/src/automations/logging/index.html +116 -0
  146. package/coverage/lcov-report/{events/utils.js.html → src/automations/logging/index.ts.html} +70 -70
  147. package/coverage/lcov-report/{automations/steps/bash.js.html → src/automations/steps/bash.ts.html} +40 -25
  148. package/coverage/lcov-report/src/automations/steps/createRow.ts.html +382 -0
  149. package/coverage/lcov-report/{automations/steps/delay.js.html → src/automations/steps/delay.ts.html} +32 -17
  150. package/coverage/lcov-report/src/automations/steps/deleteRow.ts.html +349 -0
  151. package/coverage/lcov-report/{automations/steps/discord.js.html → src/automations/steps/discord.ts.html} +38 -23
  152. package/coverage/lcov-report/{automations/steps/executeQuery.js.html → src/automations/steps/executeQuery.ts.html} +41 -26
  153. package/coverage/lcov-report/{automations/steps/executeScript.js.html → src/automations/steps/executeScript.ts.html} +54 -24
  154. package/coverage/lcov-report/{automations/steps/filter.js.html → src/automations/steps/filter.ts.html} +36 -27
  155. package/coverage/lcov-report/src/automations/steps/index.html +371 -0
  156. package/coverage/lcov-report/{automations/steps/integromat.js.html → src/automations/steps/integromat.ts.html} +35 -20
  157. package/coverage/lcov-report/{automations/steps/loop.js.html → src/automations/steps/loop.ts.html} +21 -15
  158. package/coverage/lcov-report/{automations/steps/outgoingWebhook.js.html → src/automations/steps/outgoingWebhook.ts.html} +48 -33
  159. package/coverage/lcov-report/{automations/steps/queryRows.js.html → src/automations/steps/queryRows.ts.html} +94 -58
  160. package/coverage/lcov-report/{automations/steps/sendSmtpEmail.js.html → src/automations/steps/sendSmtpEmail.ts.html} +37 -22
  161. package/coverage/lcov-report/{automations/steps/serverLog.js.html → src/automations/steps/serverLog.ts.html} +38 -20
  162. package/coverage/lcov-report/{automations/steps/slack.js.html → src/automations/steps/slack.ts.html} +35 -20
  163. package/coverage/lcov-report/{automations/steps/updateRow.js.html → src/automations/steps/updateRow.ts.html} +36 -21
  164. package/coverage/lcov-report/{automations/steps/utils.js.html → src/automations/steps/utils.ts.html} +44 -26
  165. package/coverage/lcov-report/{automations/steps/zapier.js.html → src/automations/steps/zapier.ts.html} +38 -20
  166. package/coverage/lcov-report/src/automations/tests/utilities/index.html +116 -0
  167. package/coverage/lcov-report/src/automations/tests/utilities/index.ts.html +265 -0
  168. package/coverage/lcov-report/src/automations/triggerInfo/app.ts.html +196 -0
  169. package/coverage/lcov-report/{automations/triggerInfo/cron.js.html → src/automations/triggerInfo/cron.ts.html} +30 -15
  170. package/coverage/lcov-report/{automations → src/automations}/triggerInfo/index.html +31 -31
  171. package/coverage/lcov-report/{automations/triggerInfo/index.js.html → src/automations/triggerInfo/index.ts.html} +17 -17
  172. package/coverage/lcov-report/{automations/triggerInfo/rowDeleted.js.html → src/automations/triggerInfo/rowDeleted.ts.html} +30 -15
  173. package/coverage/lcov-report/{automations/triggerInfo/rowSaved.js.html → src/automations/triggerInfo/rowSaved.ts.html} +30 -15
  174. package/coverage/lcov-report/{automations/triggerInfo/rowUpdated.js.html → src/automations/triggerInfo/rowUpdated.ts.html} +30 -15
  175. package/coverage/lcov-report/{automations/triggerInfo/webhook.js.html → src/automations/triggerInfo/webhook.ts.html} +30 -15
  176. package/coverage/lcov-report/{automations/triggers.js.html → src/automations/triggers.ts.html} +59 -47
  177. package/coverage/lcov-report/src/automations/utils.ts.html +886 -0
  178. package/coverage/lcov-report/{constants → src/constants}/index.html +26 -26
  179. package/coverage/lcov-report/{constants/index.js.html → src/constants/index.ts.html} +173 -185
  180. package/coverage/lcov-report/{constants/layouts.js.html → src/constants/layouts.ts.html} +16 -34
  181. package/coverage/lcov-report/{api/routes/datasource.js.html → src/constants/screens.ts.html} +56 -65
  182. package/coverage/lcov-report/src/db/defaultData/datasource_bb_default.ts.html +2032 -0
  183. package/coverage/lcov-report/src/db/defaultData/employeeImport.ts.html +541 -0
  184. package/coverage/lcov-report/src/db/defaultData/expensesImport.ts.html +427 -0
  185. package/coverage/lcov-report/src/db/defaultData/index.html +176 -0
  186. package/coverage/lcov-report/src/db/defaultData/inventoryImport.ts.html +403 -0
  187. package/coverage/lcov-report/src/db/defaultData/jobsImport.ts.html +559 -0
  188. package/coverage/lcov-report/src/db/dynamoClient.ts.html +526 -0
  189. package/coverage/lcov-report/{db/inMemoryView.js.html → src/db/inMemoryView.ts.html} +44 -26
  190. package/coverage/lcov-report/{db → src/db}/index.html +48 -33
  191. package/coverage/lcov-report/src/db/index.ts.html +133 -0
  192. package/coverage/lcov-report/{db/linkedRows/LinkController.js.html → src/db/linkedRows/LinkController.ts.html} +92 -155
  193. package/coverage/lcov-report/src/db/linkedRows/LinkDocument.ts.html +265 -0
  194. package/coverage/lcov-report/src/db/linkedRows/index.html +161 -0
  195. package/coverage/lcov-report/{db/linkedRows/index.js.html → src/db/linkedRows/index.ts.html} +83 -68
  196. package/coverage/lcov-report/{db/linkedRows/linkUtils.js.html → src/db/linkedRows/linkUtils.ts.html} +73 -46
  197. package/coverage/lcov-report/{db/newid.js.html → src/db/newid.ts.html} +11 -11
  198. package/coverage/lcov-report/{db/utils.js.html → src/db/utils.ts.html} +105 -153
  199. package/coverage/lcov-report/{automations/triggerInfo/app.js.html → src/definitions/automations.ts.html} +42 -42
  200. package/coverage/lcov-report/src/definitions/datasource.ts.html +235 -0
  201. package/coverage/lcov-report/src/definitions/index.html +131 -0
  202. package/coverage/lcov-report/src/environment.ts.html +457 -0
  203. package/coverage/lcov-report/{events/AutomationEmitter.js.html → src/events/AutomationEmitter.ts.html} +36 -21
  204. package/coverage/lcov-report/{events/index.js.html → src/events/BudibaseEmitter.ts.html} +23 -26
  205. package/coverage/lcov-report/{events → src/events}/index.html +48 -33
  206. package/coverage/lcov-report/src/events/index.ts.html +100 -0
  207. package/coverage/lcov-report/src/events/utils.ts.html +319 -0
  208. package/coverage/lcov-report/src/index.html +191 -0
  209. package/coverage/lcov-report/{db/index.js.html → src/index.ts.html} +35 -35
  210. package/coverage/lcov-report/{utilities/queue/inMemoryQueue.js.html → src/integrations/airtable.ts.html} +213 -135
  211. package/coverage/lcov-report/src/integrations/arangodb.ts.html +415 -0
  212. package/coverage/lcov-report/src/integrations/base/index.html +161 -0
  213. package/coverage/lcov-report/src/integrations/base/query.ts.html +133 -0
  214. package/coverage/lcov-report/src/integrations/base/sql.ts.html +1951 -0
  215. package/coverage/lcov-report/src/integrations/base/sqlTable.ts.html +691 -0
  216. package/coverage/lcov-report/src/integrations/base/utils.ts.html +121 -0
  217. package/coverage/lcov-report/src/integrations/couchdb.ts.html +406 -0
  218. package/coverage/lcov-report/src/integrations/dynamodb.ts.html +745 -0
  219. package/coverage/lcov-report/src/integrations/elasticsearch.ts.html +634 -0
  220. package/coverage/lcov-report/src/integrations/firebase.ts.html +646 -0
  221. package/coverage/lcov-report/src/integrations/googlesheets.ts.html +1315 -0
  222. package/coverage/lcov-report/src/integrations/index.html +371 -0
  223. package/coverage/lcov-report/src/integrations/index.ts.html +445 -0
  224. package/coverage/lcov-report/src/integrations/microsoftSqlServer.ts.html +1006 -0
  225. package/coverage/lcov-report/src/integrations/mongodb.ts.html +1867 -0
  226. package/coverage/lcov-report/src/integrations/mysql.ts.html +964 -0
  227. package/coverage/lcov-report/src/integrations/oracle.ts.html +1474 -0
  228. package/coverage/lcov-report/src/integrations/postgres.ts.html +1069 -0
  229. package/coverage/lcov-report/src/integrations/queries/index.html +116 -0
  230. package/coverage/lcov-report/src/integrations/queries/sql.ts.html +463 -0
  231. package/coverage/lcov-report/src/integrations/redis.ts.html +550 -0
  232. package/coverage/lcov-report/src/integrations/rest.ts.html +1381 -0
  233. package/coverage/lcov-report/src/integrations/s3.ts.html +862 -0
  234. package/coverage/lcov-report/src/integrations/snowflake.ts.html +376 -0
  235. package/coverage/lcov-report/{integrations → src/integrations}/tests/TestConfiguration.js.html +10 -10
  236. package/coverage/lcov-report/{integrations → src/integrations}/tests/index.html +10 -10
  237. package/coverage/lcov-report/src/integrations/utils.ts.html +1018 -0
  238. package/coverage/lcov-report/{middleware/appInfo.js.html → src/middleware/appInfo.ts.html} +31 -28
  239. package/coverage/lcov-report/src/middleware/authorized.ts.html +460 -0
  240. package/coverage/lcov-report/{middleware/builder.js.html → src/middleware/builder.ts.html} +43 -37
  241. package/coverage/lcov-report/{middleware/currentapp.js.html → src/middleware/currentapp.ts.html} +77 -68
  242. package/coverage/lcov-report/{middleware → src/middleware}/index.html +78 -63
  243. package/coverage/lcov-report/{middleware/joi-validator.js.html → src/middleware/joi-validator.ts.html} +25 -22
  244. package/coverage/lcov-report/{middleware/publicApi.js.html → src/middleware/publicApi.ts.html} +24 -24
  245. package/coverage/lcov-report/{middleware/resourceId.js.html → src/middleware/resourceId.ts.html} +40 -25
  246. package/coverage/lcov-report/{api/routes/apikeys.js.html → src/middleware/selfhost.ts.html} +27 -27
  247. package/coverage/lcov-report/{middleware/utils.js.html → src/middleware/utils.ts.html} +19 -13
  248. package/coverage/lcov-report/src/migrations/functions/appUrls.ts.html +187 -0
  249. package/coverage/lcov-report/src/migrations/functions/backfill/app/automations.ts.html +163 -0
  250. package/coverage/lcov-report/src/migrations/functions/backfill/app/datasources.ts.html +151 -0
  251. package/coverage/lcov-report/src/migrations/functions/backfill/app/index.html +206 -0
  252. package/coverage/lcov-report/{automations/index.js.html → src/migrations/functions/backfill/app/layouts.ts.html} +53 -53
  253. package/coverage/lcov-report/src/migrations/functions/backfill/app/queries.ts.html +226 -0
  254. package/coverage/lcov-report/src/migrations/functions/backfill/app/roles.ts.html +151 -0
  255. package/coverage/lcov-report/src/migrations/functions/backfill/app/screens.ts.html +151 -0
  256. package/coverage/lcov-report/src/migrations/functions/backfill/app/tables.ts.html +166 -0
  257. package/coverage/lcov-report/src/migrations/functions/backfill/app.ts.html +532 -0
  258. package/coverage/lcov-report/src/migrations/functions/backfill/global/configs.ts.html +283 -0
  259. package/coverage/lcov-report/src/migrations/functions/backfill/global/index.html +146 -0
  260. package/coverage/lcov-report/src/migrations/functions/backfill/global/quotas.ts.html +265 -0
  261. package/coverage/lcov-report/src/migrations/functions/backfill/global/users.ts.html +232 -0
  262. package/coverage/lcov-report/src/migrations/functions/backfill/global.ts.html +724 -0
  263. package/coverage/lcov-report/src/migrations/functions/backfill/index.html +161 -0
  264. package/coverage/lcov-report/src/migrations/functions/backfill/index.ts.html +106 -0
  265. package/coverage/lcov-report/src/migrations/functions/backfill/installation.ts.html +235 -0
  266. package/coverage/lcov-report/src/migrations/functions/index.html +146 -0
  267. package/coverage/lcov-report/{api/routes/role.js.html → src/migrations/functions/syncQuotas.ts.html} +32 -32
  268. package/coverage/lcov-report/src/migrations/functions/usageQuotas/index.html +161 -0
  269. package/coverage/lcov-report/src/migrations/functions/usageQuotas/index.ts.html +94 -0
  270. package/coverage/lcov-report/src/migrations/functions/usageQuotas/syncApps.ts.html +127 -0
  271. package/coverage/lcov-report/src/migrations/functions/usageQuotas/syncPlugins.ts.html +115 -0
  272. package/coverage/lcov-report/src/migrations/functions/usageQuotas/syncRows.ts.html +169 -0
  273. package/coverage/lcov-report/src/migrations/functions/userEmailViewCasing.ts.html +124 -0
  274. package/coverage/lcov-report/{utilities/queue → src/migrations}/index.html +23 -23
  275. package/coverage/lcov-report/src/migrations/index.ts.html +403 -0
  276. package/coverage/lcov-report/src/migrations/tests/helpers.ts.html +205 -0
  277. package/coverage/lcov-report/src/migrations/tests/index.html +131 -0
  278. package/coverage/lcov-report/src/migrations/tests/structures.ts.html +283 -0
  279. package/coverage/lcov-report/src/sdk/app/automations/index.html +131 -0
  280. package/coverage/lcov-report/src/sdk/app/automations/index.ts.html +100 -0
  281. package/coverage/lcov-report/src/sdk/app/automations/webhook.ts.html +214 -0
  282. package/coverage/lcov-report/src/sdk/app/backups/constants.ts.html +91 -0
  283. package/coverage/lcov-report/src/sdk/app/backups/exports.ts.html +604 -0
  284. package/coverage/lcov-report/src/sdk/app/backups/imports.ts.html +682 -0
  285. package/coverage/lcov-report/src/sdk/app/backups/index.html +176 -0
  286. package/coverage/lcov-report/src/sdk/app/backups/index.ts.html +112 -0
  287. package/coverage/lcov-report/src/sdk/app/backups/statistics.ts.html +292 -0
  288. package/coverage/lcov-report/src/sdk/app/tables/index.html +116 -0
  289. package/coverage/lcov-report/src/sdk/app/tables/index.ts.html +265 -0
  290. package/coverage/lcov-report/{utilities/routing → src/sdk}/index.html +10 -10
  291. package/coverage/lcov-report/{api/routes/migrations.js.html → src/sdk/index.ts.html} +24 -21
  292. package/coverage/lcov-report/src/startup.ts.html +499 -0
  293. package/coverage/lcov-report/src/tests/utilities/TestConfiguration.ts.html +1966 -0
  294. package/coverage/lcov-report/src/tests/utilities/controllers.ts.html +127 -0
  295. package/coverage/lcov-report/src/tests/utilities/index.html +161 -0
  296. package/coverage/lcov-report/{middleware/selfhost.js.html → src/tests/utilities/index.ts.html} +33 -30
  297. package/coverage/lcov-report/src/tests/utilities/structures.ts.html +667 -0
  298. package/coverage/lcov-report/src/threads/automation.ts.html +1594 -0
  299. package/coverage/lcov-report/src/threads/index.html +161 -0
  300. package/coverage/lcov-report/src/threads/index.ts.html +418 -0
  301. package/coverage/lcov-report/src/threads/query.ts.html +961 -0
  302. package/coverage/lcov-report/src/threads/utils.ts.html +373 -0
  303. package/coverage/lcov-report/{utilities/budibaseDir.js.html → src/utilities/budibaseDir.ts.html} +12 -12
  304. package/coverage/lcov-report/{utilities/centralPath.js.html → src/utilities/centralPath.ts.html} +13 -13
  305. package/coverage/lcov-report/{utilities/csvParser.js.html → src/utilities/csvParser.ts.html} +104 -56
  306. package/coverage/lcov-report/src/utilities/fileSystem/clientLibrary.ts.html +547 -0
  307. package/coverage/lcov-report/{api/controllers/table → src/utilities/fileSystem}/index.html +43 -43
  308. package/coverage/lcov-report/src/utilities/fileSystem/index.ts.html +1117 -0
  309. package/coverage/lcov-report/src/utilities/fileSystem/processor.ts.html +142 -0
  310. package/coverage/lcov-report/{utilities/global.js.html → src/utilities/global.ts.html} +107 -74
  311. package/coverage/lcov-report/{utilities → src/utilities}/index.html +92 -77
  312. package/coverage/lcov-report/{utilities/index.js.html → src/utilities/index.ts.html} +78 -54
  313. package/coverage/lcov-report/{utilities/plugins.js.html → src/utilities/plugins.ts.html} +22 -19
  314. package/coverage/lcov-report/src/utilities/redis.ts.html +343 -0
  315. package/coverage/lcov-report/{api/controllers/query → src/utilities/routing}/index.html +8 -8
  316. package/coverage/lcov-report/src/utilities/routing/index.ts.html +181 -0
  317. package/coverage/lcov-report/src/utilities/rowProcessor/index.html +146 -0
  318. package/coverage/lcov-report/{utilities/rowProcessor/index.js.html → src/utilities/rowProcessor/index.ts.html} +115 -346
  319. package/coverage/lcov-report/src/utilities/rowProcessor/map.ts.html +373 -0
  320. package/coverage/lcov-report/{utilities/rowProcessor/utils.js.html → src/utilities/rowProcessor/utils.ts.html} +50 -38
  321. package/coverage/lcov-report/{utilities/scriptRunner.js.html → src/utilities/scriptRunner.ts.html} +28 -16
  322. package/coverage/lcov-report/{utilities/security.js.html → src/utilities/security.ts.html} +56 -74
  323. package/coverage/lcov-report/{utilities/statusCodes.js.html → src/utilities/statusCodes.ts.html} +11 -11
  324. package/coverage/lcov-report/{utilities → src/utilities}/usageQuota/index.html +28 -28
  325. package/coverage/lcov-report/{utilities/usageQuota/rows.js.html → src/utilities/usageQuota/rows.ts.html} +34 -46
  326. package/coverage/lcov-report/{utilities/usageQuota/usageQuoteReset.js.html → src/utilities/usageQuota/usageQuoteReset.ts.html} +13 -13
  327. package/coverage/lcov-report/{utilities/users.js.html → src/utilities/users.ts.html} +29 -35
  328. package/coverage/lcov-report/{utilities/workerRequests.js.html → src/utilities/workerRequests.ts.html} +129 -114
  329. package/coverage/lcov-report/src/watch.ts.html +196 -0
  330. package/coverage/lcov-report/src/websocket.ts.html +163 -0
  331. package/coverage/lcov.info +19514 -6962
  332. package/dist/api/controllers/apikeys.js +12 -9
  333. package/dist/api/controllers/application.js +48 -45
  334. package/dist/api/controllers/automation.js +122 -82
  335. package/dist/api/controllers/cloud.js +84 -71
  336. package/dist/api/controllers/component.js +4 -2
  337. package/dist/api/controllers/datasource.js +144 -92
  338. package/dist/api/controllers/deploy/Deployment.js +10 -6
  339. package/dist/api/controllers/deploy/index.js +13 -16
  340. package/dist/api/controllers/dev.js +96 -81
  341. package/dist/api/controllers/integration.js +11 -8
  342. package/dist/api/controllers/layout.js +18 -15
  343. package/dist/api/controllers/metadata.js +51 -37
  344. package/dist/api/controllers/migrations.js +19 -11
  345. package/dist/api/controllers/permission.js +52 -43
  346. package/dist/api/controllers/plugin/index.js +6 -7
  347. package/dist/api/controllers/plugin/utils.js +2 -1
  348. package/dist/api/controllers/public/applications.js +17 -9
  349. package/dist/api/controllers/public/tables.js +29 -9
  350. package/dist/api/controllers/public/utils.js +2 -2
  351. package/dist/api/controllers/query/import/index.js +1 -2
  352. package/dist/api/controllers/query/index.js +10 -13
  353. package/dist/api/controllers/query/validation.js +41 -33
  354. package/dist/api/controllers/role.js +29 -27
  355. package/dist/api/controllers/routing.js +71 -58
  356. package/dist/api/controllers/row/ExternalRequest.js +538 -542
  357. package/dist/api/controllers/row/external.js +258 -190
  358. package/dist/api/controllers/row/index.js +43 -14
  359. package/dist/api/controllers/row/internal.js +354 -295
  360. package/dist/api/controllers/row/internalSearch.js +95 -80
  361. package/dist/api/controllers/row/staticFormula.js +125 -112
  362. package/dist/api/controllers/row/utils.js +122 -84
  363. package/dist/api/controllers/screen.js +81 -66
  364. package/dist/api/controllers/script.js +13 -6
  365. package/dist/api/controllers/static/index.js +11 -14
  366. package/dist/api/controllers/table/bulkFormula.js +47 -35
  367. package/dist/api/controllers/table/external.js +89 -53
  368. package/dist/api/controllers/table/index.js +64 -31
  369. package/dist/api/controllers/table/internal.js +5 -6
  370. package/dist/api/controllers/table/utils.js +39 -35
  371. package/dist/api/controllers/templates.js +17 -10
  372. package/dist/api/controllers/user.js +82 -70
  373. package/dist/api/controllers/view/exporters.js +8 -4
  374. package/dist/api/controllers/view/index.js +201 -153
  375. package/dist/api/controllers/view/utils.js +151 -121
  376. package/dist/api/controllers/view/viewBuilder.js +4 -16
  377. package/dist/api/controllers/webhook.js +25 -2
  378. package/dist/api/index.js +38 -34
  379. package/dist/api/routes/analytics.js +29 -3
  380. package/dist/api/routes/apikeys.js +33 -7
  381. package/dist/api/routes/application.js +8 -9
  382. package/dist/api/routes/auth.js +1 -2
  383. package/dist/api/routes/automation.js +46 -20
  384. package/dist/api/routes/backup.js +3 -4
  385. package/dist/api/routes/cloud.js +32 -6
  386. package/dist/api/routes/component.js +32 -6
  387. package/dist/api/routes/datasource.js +39 -13
  388. package/dist/api/routes/deploy.js +34 -8
  389. package/dist/api/routes/dev.js +36 -10
  390. package/dist/api/routes/integration.js +33 -7
  391. package/dist/api/routes/layout.js +33 -7
  392. package/dist/api/routes/metadata.js +36 -10
  393. package/dist/api/routes/migrations.js +32 -6
  394. package/dist/api/routes/permission.js +38 -12
  395. package/dist/api/routes/plugin.js +5 -5
  396. package/dist/api/routes/public/index.js +11 -11
  397. package/dist/api/routes/query.js +42 -15
  398. package/dist/api/routes/role.js +36 -10
  399. package/dist/api/routes/routing.js +32 -6
  400. package/dist/api/routes/row.js +12 -11
  401. package/dist/api/routes/screen.js +35 -9
  402. package/dist/api/routes/script.js +32 -6
  403. package/dist/api/routes/static.js +9 -9
  404. package/dist/api/routes/table.js +40 -13
  405. package/dist/api/routes/templates.js +33 -7
  406. package/dist/api/routes/tests/utilities/TestFunctions.js +6 -8
  407. package/dist/api/routes/tests/utilities/index.js +69 -32
  408. package/dist/api/routes/user.js +40 -13
  409. package/dist/api/routes/utils/validators.js +142 -126
  410. package/dist/api/routes/view.js +38 -12
  411. package/dist/api/routes/webhook.js +1 -2
  412. package/dist/app.js +22 -22
  413. package/dist/automations/actions.js +53 -24
  414. package/dist/automations/automationUtils.js +31 -19
  415. package/dist/automations/bullboard.js +59 -29
  416. package/dist/automations/index.js +23 -18
  417. package/dist/automations/steps/bash.js +40 -10
  418. package/dist/automations/steps/createRow.js +2 -1
  419. package/dist/automations/steps/delay.js +9 -5
  420. package/dist/automations/steps/deleteRow.js +2 -1
  421. package/dist/automations/steps/discord.js +14 -7
  422. package/dist/automations/steps/executeQuery.js +34 -7
  423. package/dist/automations/steps/executeScript.js +34 -7
  424. package/dist/automations/steps/filter.js +20 -18
  425. package/dist/automations/steps/integromat.js +14 -7
  426. package/dist/automations/steps/loop.js +4 -1
  427. package/dist/automations/steps/outgoingWebhook.js +45 -14
  428. package/dist/automations/steps/queryRows.js +71 -38
  429. package/dist/automations/steps/sendSmtpEmail.js +33 -6
  430. package/dist/automations/steps/serverLog.js +12 -8
  431. package/dist/automations/steps/slack.js +14 -7
  432. package/dist/automations/steps/updateRow.js +34 -7
  433. package/dist/automations/steps/utils.js +22 -16
  434. package/dist/automations/steps/zapier.js +15 -7
  435. package/dist/automations/tests/utilities/index.js +62 -38
  436. package/dist/automations/triggerInfo/app.js +4 -1
  437. package/dist/automations/triggerInfo/cron.js +4 -1
  438. package/dist/automations/triggerInfo/index.js +31 -6
  439. package/dist/automations/triggerInfo/rowDeleted.js +4 -1
  440. package/dist/automations/triggerInfo/rowSaved.js +4 -1
  441. package/dist/automations/triggerInfo/rowUpdated.js +4 -1
  442. package/dist/automations/triggerInfo/webhook.js +4 -1
  443. package/dist/automations/triggers.js +90 -57
  444. package/dist/automations/utils.js +9 -8
  445. package/dist/constants/index.js +118 -104
  446. package/dist/constants/layouts.js +7 -10
  447. package/dist/constants/screens.js +49 -44
  448. package/dist/db/defaultData/datasource_bb_default.js +571 -0
  449. package/dist/db/defaultData/employeeImport.js +155 -0
  450. package/dist/db/defaultData/expensesImport.js +117 -0
  451. package/dist/db/defaultData/inventoryImport.js +109 -0
  452. package/dist/db/defaultData/jobsImport.js +152 -0
  453. package/dist/db/dynamoClient.js +20 -20
  454. package/dist/db/inMemoryView.js +47 -38
  455. package/dist/db/index.js +7 -4
  456. package/dist/db/linkedRows/LinkController.js +51 -70
  457. package/dist/db/linkedRows/LinkDocument.js +32 -0
  458. package/dist/db/linkedRows/index.js +93 -81
  459. package/dist/db/linkedRows/linkUtils.js +42 -32
  460. package/dist/db/utils.js +146 -119
  461. package/dist/db/views/staticViews.js +91 -74
  462. package/dist/environment.js +9 -6
  463. package/dist/events/AutomationEmitter.js +13 -10
  464. package/dist/events/BudibaseEmitter.js +24 -0
  465. package/dist/events/index.js +5 -23
  466. package/dist/events/utils.js +18 -10
  467. package/dist/integrations/elasticsearch.js +26 -2
  468. package/dist/integrations/googlesheets.js +5 -6
  469. package/dist/integrations/index.js +15 -6
  470. package/dist/integrations/s3.js +157 -1
  471. package/dist/middleware/appInfo.js +14 -9
  472. package/dist/middleware/authorized.js +22 -21
  473. package/dist/middleware/builder.js +41 -40
  474. package/dist/middleware/currentapp.js +39 -37
  475. package/dist/middleware/joi-validator.js +17 -10
  476. package/dist/middleware/publicApi.js +5 -6
  477. package/dist/middleware/resourceId.js +16 -9
  478. package/dist/middleware/selfhost.js +5 -4
  479. package/dist/middleware/utils.js +5 -2
  480. package/dist/migrations/functions/appUrls.js +2 -2
  481. package/dist/migrations/functions/backfill/global.js +1 -1
  482. package/dist/migrations/functions/usageQuotas/syncApps.js +3 -4
  483. package/dist/migrations/functions/usageQuotas/syncRows.js +3 -4
  484. package/dist/migrations/functions/userEmailViewCasing.js +3 -3
  485. package/dist/package.json +10 -44
  486. package/dist/sdk/app/backups/exports.js +1 -2
  487. package/dist/sdk/app/backups/imports.js +2 -3
  488. package/dist/sdk/app/tables/index.js +5 -5
  489. package/dist/startup.js +10 -10
  490. package/dist/tests/utilities/TestConfiguration.js +111 -87
  491. package/dist/tests/utilities/controllers.js +38 -15
  492. package/dist/tests/utilities/structures.js +72 -53
  493. package/dist/threads/automation.js +49 -27
  494. package/dist/threads/query.js +17 -19
  495. package/dist/threads/utils.js +33 -8
  496. package/dist/tsconfig.build.tsbuildinfo +1 -1
  497. package/dist/utilities/budibaseDir.js +4 -2
  498. package/dist/utilities/centralPath.js +14 -7
  499. package/dist/utilities/csvParser.js +27 -21
  500. package/dist/utilities/fileSystem/clientLibrary.js +87 -73
  501. package/dist/utilities/fileSystem/index.js +202 -175
  502. package/dist/utilities/fileSystem/processor.js +8 -3
  503. package/dist/utilities/global.js +87 -66
  504. package/dist/utilities/index.js +102 -75
  505. package/dist/utilities/plugins.js +15 -9
  506. package/dist/utilities/redis.js +100 -65
  507. package/dist/utilities/routing/index.js +27 -23
  508. package/dist/utilities/rowProcessor/index.js +133 -191
  509. package/dist/utilities/rowProcessor/map.js +99 -0
  510. package/dist/utilities/rowProcessor/utils.js +35 -26
  511. package/dist/utilities/scriptRunner.js +8 -5
  512. package/dist/utilities/security.js +39 -35
  513. package/dist/utilities/usageQuota/rows.js +56 -49
  514. package/dist/utilities/users.js +31 -28
  515. package/dist/utilities/workerRequests.js +115 -82
  516. package/dist/watch.js +1 -2
  517. package/jest.config.ts +33 -0
  518. package/package.json +11 -45
  519. package/scripts/exportAppTemplate.js +2 -2
  520. package/scripts/localdomain.js +34 -6
  521. package/src/api/controllers/{apikeys.js → apikeys.ts} +10 -10
  522. package/src/api/controllers/application.ts +56 -42
  523. package/src/api/controllers/auth.ts +4 -3
  524. package/src/api/controllers/{automation.js → automation.ts} +48 -48
  525. package/src/api/controllers/{cloud.js → cloud.ts} +24 -24
  526. package/src/api/controllers/component.ts +2 -1
  527. package/src/api/controllers/{datasource.js → datasource.ts} +100 -47
  528. package/src/api/controllers/deploy/{Deployment.js → Deployment.ts} +13 -10
  529. package/src/api/controllers/deploy/index.ts +13 -25
  530. package/src/api/controllers/{dev.js → dev.ts} +31 -37
  531. package/src/api/controllers/integration.ts +13 -0
  532. package/src/api/controllers/{layout.js → layout.ts} +8 -8
  533. package/src/api/controllers/{metadata.js → metadata.ts} +11 -10
  534. package/src/api/controllers/migrations.ts +14 -0
  535. package/src/api/controllers/{permission.js → permission.ts} +49 -46
  536. package/src/api/controllers/plugin/index.ts +4 -5
  537. package/src/api/controllers/plugin/utils.ts +3 -5
  538. package/src/api/controllers/public/applications.ts +15 -9
  539. package/src/api/controllers/public/rows.ts +1 -1
  540. package/src/api/controllers/public/tables.ts +2 -2
  541. package/src/api/controllers/public/utils.ts +2 -2
  542. package/src/api/controllers/query/import/index.ts +2 -3
  543. package/src/api/controllers/query/index.ts +11 -14
  544. package/src/api/controllers/query/{validation.js → validation.ts} +7 -7
  545. package/src/api/controllers/{role.js → role.ts} +21 -25
  546. package/src/api/controllers/{routing.js → routing.ts} +37 -34
  547. package/src/api/controllers/row/ExternalRequest.ts +602 -624
  548. package/src/api/controllers/row/{external.js → external.ts} +79 -62
  549. package/src/api/controllers/row/index.ts +19 -11
  550. package/src/api/controllers/row/{internal.js → internal.ts} +87 -73
  551. package/src/api/controllers/row/{internalSearch.js → internalSearch.ts} +92 -68
  552. package/src/api/controllers/row/{staticFormula.js → staticFormula.ts} +30 -25
  553. package/src/api/controllers/row/{utils.js → utils.ts} +32 -22
  554. package/src/api/controllers/screen.ts +10 -6
  555. package/src/api/controllers/script.ts +12 -0
  556. package/src/api/controllers/static/index.ts +14 -16
  557. package/src/api/controllers/table/{bulkFormula.js → bulkFormula.ts} +39 -25
  558. package/src/api/controllers/table/{external.js → external.ts} +86 -55
  559. package/src/api/controllers/table/{index.js → index.ts} +21 -18
  560. package/src/api/controllers/table/internal.ts +5 -6
  561. package/src/api/controllers/table/utils.ts +26 -21
  562. package/src/api/controllers/{templates.js → templates.ts} +10 -7
  563. package/src/api/controllers/{user.js → user.ts} +47 -49
  564. package/src/api/controllers/view/{exporters.js → exporters.ts} +5 -3
  565. package/src/api/controllers/view/{index.js → index.ts} +36 -27
  566. package/src/api/controllers/view/{utils.js → utils.ts} +26 -20
  567. package/src/api/controllers/view/{viewBuilder.js → viewBuilder.ts} +25 -11
  568. package/src/api/controllers/webhook.ts +1 -1
  569. package/src/api/{index.js → index.ts} +15 -22
  570. package/src/api/routes/analytics.ts +9 -0
  571. package/src/api/routes/apikeys.ts +12 -0
  572. package/src/api/routes/application.ts +17 -9
  573. package/src/api/routes/auth.ts +2 -2
  574. package/src/api/routes/automation.ts +87 -0
  575. package/src/api/routes/backup.ts +8 -4
  576. package/src/api/routes/cloud.ts +18 -0
  577. package/src/api/routes/component.ts +14 -0
  578. package/src/api/routes/datasource.ts +60 -0
  579. package/src/api/routes/deploy.ts +21 -0
  580. package/src/api/routes/dev.ts +38 -0
  581. package/src/api/routes/integration.ts +16 -0
  582. package/src/api/routes/layout.ts +16 -0
  583. package/src/api/routes/{metadata.js → metadata.ts} +13 -13
  584. package/src/api/routes/migrations.ts +14 -0
  585. package/src/api/routes/permission.ts +41 -0
  586. package/src/api/routes/plugin.ts +14 -6
  587. package/src/api/routes/public/index.ts +11 -14
  588. package/src/api/routes/public/tests/compare.spec.js +1 -1
  589. package/src/api/routes/{query.js → query.ts} +19 -22
  590. package/src/api/routes/role.ts +24 -0
  591. package/src/api/routes/routing.ts +14 -0
  592. package/src/api/routes/row.ts +13 -15
  593. package/src/api/routes/screen.ts +23 -0
  594. package/src/api/routes/script.ts +10 -0
  595. package/src/api/routes/static.ts +7 -10
  596. package/src/api/routes/{table.js → table.ts} +10 -13
  597. package/src/api/routes/templates.ts +16 -0
  598. package/src/api/routes/tests/analytics.spec.js +1 -1
  599. package/src/api/routes/tests/backup.spec.js +9 -1
  600. package/src/api/routes/tests/deployment.spec.ts +1 -1
  601. package/src/api/routes/tests/permissions.spec.js +2 -1
  602. package/src/api/routes/tests/query.spec.js +15 -10
  603. package/src/api/routes/tests/role.spec.js +7 -9
  604. package/src/api/routes/tests/routing.spec.js +2 -1
  605. package/src/api/routes/tests/row.spec.js +3 -4
  606. package/src/api/routes/tests/static.spec.js +2 -2
  607. package/src/api/routes/tests/table.spec.js +40 -36
  608. package/src/api/routes/tests/user.spec.js +2 -1
  609. package/src/api/routes/tests/utilities/TestFunctions.ts +6 -8
  610. package/src/api/routes/tests/utilities/{index.js → index.ts} +12 -12
  611. package/src/api/routes/user.ts +51 -0
  612. package/src/api/routes/utils/{validators.js → validators.ts} +33 -37
  613. package/src/api/routes/view.ts +34 -0
  614. package/src/api/routes/webhook.ts +2 -2
  615. package/src/app.ts +15 -14
  616. package/src/automations/{actions.js → actions.ts} +26 -23
  617. package/src/automations/{automationUtils.js → automationUtils.ts} +13 -12
  618. package/src/automations/bullboard.ts +38 -0
  619. package/src/automations/index.ts +26 -0
  620. package/src/automations/steps/{bash.js → bash.ts} +13 -8
  621. package/src/automations/steps/createRow.ts +8 -3
  622. package/src/automations/steps/{delay.js → delay.ts} +9 -4
  623. package/src/automations/steps/deleteRow.ts +8 -3
  624. package/src/automations/steps/{discord.js → discord.ts} +10 -5
  625. package/src/automations/steps/{executeQuery.js → executeQuery.ts} +12 -7
  626. package/src/automations/steps/{executeScript.js → executeScript.ts} +17 -7
  627. package/src/automations/steps/{filter.js → filter.ts} +12 -9
  628. package/src/automations/steps/{integromat.js → integromat.ts} +10 -5
  629. package/src/automations/steps/{loop.js → loop.ts} +4 -2
  630. package/src/automations/steps/{outgoingWebhook.js → outgoingWebhook.ts} +18 -13
  631. package/src/automations/steps/{queryRows.js → queryRows.ts} +48 -36
  632. package/src/automations/steps/{sendSmtpEmail.js → sendSmtpEmail.ts} +10 -5
  633. package/src/automations/steps/{serverLog.js → serverLog.ts} +9 -3
  634. package/src/automations/steps/{slack.js → slack.ts} +10 -5
  635. package/src/automations/steps/{updateRow.js → updateRow.ts} +12 -7
  636. package/src/automations/steps/{utils.js → utils.ts} +10 -4
  637. package/src/automations/steps/{zapier.js → zapier.ts} +11 -5
  638. package/src/automations/tests/updateRow.spec.js +0 -1
  639. package/src/automations/tests/utilities/index.ts +60 -0
  640. package/src/automations/triggerInfo/{app.js → app.ts} +7 -2
  641. package/src/automations/triggerInfo/{cron.js → cron.ts} +7 -2
  642. package/src/automations/triggerInfo/index.ts +15 -0
  643. package/src/automations/triggerInfo/{rowDeleted.js → rowDeleted.ts} +7 -2
  644. package/src/automations/triggerInfo/{rowSaved.js → rowSaved.ts} +7 -2
  645. package/src/automations/triggerInfo/{rowUpdated.js → rowUpdated.ts} +7 -2
  646. package/src/automations/triggerInfo/{webhook.js → webhook.ts} +7 -2
  647. package/src/automations/{triggers.js → triggers.ts} +30 -26
  648. package/src/automations/utils.ts +9 -12
  649. package/src/constants/index.ts +204 -0
  650. package/src/constants/{layouts.js → layouts.ts} +3 -9
  651. package/src/constants/screens.ts +48 -0
  652. package/src/db/defaultData/datasource_bb_default.ts +649 -0
  653. package/src/db/defaultData/employeeImport.ts +152 -0
  654. package/src/db/defaultData/expensesImport.ts +114 -0
  655. package/src/db/defaultData/inventoryImport.ts +106 -0
  656. package/src/db/defaultData/jobsImport.ts +158 -0
  657. package/src/db/{dynamoClient.js → dynamoClient.ts} +39 -19
  658. package/src/db/{inMemoryView.js → inMemoryView.ts} +15 -9
  659. package/src/db/index.ts +16 -0
  660. package/src/db/linkedRows/{LinkController.js → LinkController.ts} +64 -85
  661. package/src/db/linkedRows/LinkDocument.ts +60 -0
  662. package/src/db/linkedRows/{index.js → index.ts} +43 -38
  663. package/src/db/linkedRows/{linkUtils.js → linkUtils.ts} +33 -24
  664. package/src/db/{newid.js → newid.ts} +1 -1
  665. package/src/db/tests/linkController.spec.js +73 -57
  666. package/src/db/tests/linkTests.spec.js +17 -14
  667. package/src/db/{utils.js → utils.ts} +77 -93
  668. package/src/db/views/{staticViews.js → staticViews.ts} +20 -13
  669. package/src/{environment.js → environment.ts} +11 -7
  670. package/src/events/{AutomationEmitter.js → AutomationEmitter.ts} +12 -7
  671. package/src/events/{index.js → BudibaseEmitter.ts} +7 -8
  672. package/src/events/index.ts +5 -0
  673. package/src/events/utils.ts +78 -0
  674. package/src/integrations/base/sql.ts +1 -1
  675. package/src/integrations/base/sqlTable.ts +1 -1
  676. package/src/integrations/elasticsearch.ts +32 -2
  677. package/src/integrations/googlesheets.ts +5 -7
  678. package/src/integrations/index.ts +45 -41
  679. package/src/integrations/s3.ts +179 -3
  680. package/src/integrations/tests/s3.spec.ts +85 -1
  681. package/src/integrations/utils.ts +6 -2
  682. package/src/middleware/appInfo.ts +20 -0
  683. package/src/middleware/authorized.ts +21 -28
  684. package/src/middleware/{builder.js → builder.ts} +17 -15
  685. package/src/middleware/{currentapp.js → currentapp.ts} +42 -39
  686. package/src/middleware/{joi-validator.js → joi-validator.ts} +9 -8
  687. package/src/middleware/publicApi.ts +21 -0
  688. package/src/middleware/{resourceId.js → resourceId.ts} +16 -11
  689. package/src/middleware/{selfhost.js → selfhost.ts} +4 -2
  690. package/src/middleware/tests/authorized.spec.js +5 -6
  691. package/src/middleware/tests/currentapp.spec.js +118 -63
  692. package/src/middleware/{utils.js → utils.ts} +3 -1
  693. package/src/migrations/functions/appUrls.ts +2 -2
  694. package/src/migrations/functions/backfill/app/tables.ts +2 -5
  695. package/src/migrations/functions/backfill/global.ts +1 -1
  696. package/src/migrations/functions/tests/appUrls.spec.js +4 -4
  697. package/src/migrations/functions/tests/userEmailViewCasing.spec.js +14 -9
  698. package/src/migrations/functions/usageQuotas/syncApps.ts +3 -4
  699. package/src/migrations/functions/usageQuotas/syncRows.ts +4 -5
  700. package/src/migrations/functions/usageQuotas/tests/syncRows.spec.ts +7 -7
  701. package/src/migrations/functions/userEmailViewCasing.ts +3 -3
  702. package/src/migrations/tests/index.spec.ts +1 -1
  703. package/src/sdk/app/backups/exports.ts +5 -3
  704. package/src/sdk/app/backups/imports.ts +7 -14
  705. package/src/sdk/app/backups/statistics.ts +9 -18
  706. package/src/sdk/app/tables/index.ts +7 -8
  707. package/src/startup.ts +5 -5
  708. package/{scripts/jestSetup.js → src/tests/jestSetup.ts} +11 -2
  709. package/src/tests/utilities/{TestConfiguration.js → TestConfiguration.ts} +111 -78
  710. package/src/tests/utilities/controllers.ts +14 -0
  711. package/src/tests/utilities/{index.js → index.ts} +2 -2
  712. package/src/tests/utilities/{structures.js → structures.ts} +41 -36
  713. package/src/threads/automation.ts +18 -19
  714. package/src/threads/query.ts +11 -16
  715. package/src/threads/utils.ts +4 -5
  716. package/src/utilities/budibaseDir.ts +3 -0
  717. package/src/utilities/{centralPath.js → centralPath.ts} +3 -3
  718. package/src/utilities/{csvParser.js → csvParser.ts} +42 -26
  719. package/src/utilities/fileSystem/{clientLibrary.js → clientLibrary.ts} +20 -20
  720. package/src/utilities/fileSystem/{index.js → index.ts} +55 -63
  721. package/src/utilities/fileSystem/{processor.js → processor.ts} +3 -5
  722. package/src/utilities/global.ts +138 -0
  723. package/src/utilities/{index.js → index.ts} +40 -32
  724. package/src/utilities/{plugins.js → plugins.ts} +5 -4
  725. package/src/utilities/{redis.js → redis.ts} +21 -20
  726. package/src/utilities/routing/index.ts +32 -0
  727. package/src/utilities/rowProcessor/{index.js → index.ts} +67 -144
  728. package/src/utilities/rowProcessor/map.ts +96 -0
  729. package/src/utilities/rowProcessor/{utils.js → utils.ts} +19 -15
  730. package/src/utilities/{scriptRunner.js → scriptRunner.ts} +8 -4
  731. package/src/utilities/security.ts +65 -0
  732. package/src/utilities/{statusCodes.js → statusCodes.ts} +1 -1
  733. package/src/utilities/usageQuota/{rows.js → rows.ts} +14 -18
  734. package/src/utilities/usageQuota/{usageQuoteReset.js → usageQuoteReset.ts} +1 -1
  735. package/src/utilities/{users.js → users.ts} +11 -13
  736. package/src/utilities/{workerRequests.js → workerRequests.ts} +43 -38
  737. package/src/watch.ts +2 -3
  738. package/tsconfig.build.json +1 -2
  739. package/tsconfig.json +3 -1
  740. package/coverage/lcov-report/api/controllers/index.html +0 -326
  741. package/coverage/lcov-report/automations/steps/index.html +0 -341
  742. package/coverage/lcov-report/db/linkedRows/index.html +0 -146
  743. package/dist/integrations/tests/TestConfiguration.js +0 -1
  744. package/dist/utilities/fileSystem/utilities.js +0 -22
  745. package/dist/utilities/queue/inMemoryQueue.js +0 -126
  746. package/src/api/controllers/integration.js +0 -14
  747. package/src/api/controllers/migrations.js +0 -13
  748. package/src/api/controllers/script.js +0 -11
  749. package/src/api/routes/analytics.js +0 -9
  750. package/src/api/routes/apikeys.js +0 -12
  751. package/src/api/routes/automation.js +0 -85
  752. package/src/api/routes/cloud.js +0 -14
  753. package/src/api/routes/component.js +0 -14
  754. package/src/api/routes/datasource.js +0 -51
  755. package/src/api/routes/deploy.js +0 -17
  756. package/src/api/routes/dev.js +0 -26
  757. package/src/api/routes/integration.js +0 -12
  758. package/src/api/routes/layout.js +0 -16
  759. package/src/api/routes/migrations.js +0 -14
  760. package/src/api/routes/permission.js +0 -33
  761. package/src/api/routes/role.js +0 -15
  762. package/src/api/routes/routing.js +0 -14
  763. package/src/api/routes/screen.js +0 -18
  764. package/src/api/routes/script.js +0 -10
  765. package/src/api/routes/templates.js +0 -16
  766. package/src/api/routes/user.js +0 -53
  767. package/src/api/routes/view.js +0 -31
  768. package/src/automations/bullboard.js +0 -39
  769. package/src/automations/index.js +0 -29
  770. package/src/automations/tests/utilities/index.js +0 -51
  771. package/src/automations/triggerInfo/index.js +0 -15
  772. package/src/constants/index.js +0 -208
  773. package/src/constants/screens.js +0 -46
  774. package/src/db/index.js +0 -16
  775. package/src/events/utils.js +0 -38
  776. package/src/middleware/appInfo.js +0 -19
  777. package/src/middleware/publicApi.js +0 -21
  778. package/src/module.d.ts +0 -14
  779. package/src/tests/utilities/controllers.js +0 -16
  780. package/src/utilities/budibaseDir.js +0 -3
  781. package/src/utilities/fileSystem/utilities.js +0 -36
  782. package/src/utilities/global.js +0 -127
  783. package/src/utilities/queue/inMemoryQueue.js +0 -122
  784. package/src/utilities/routing/index.js +0 -25
  785. package/src/utilities/security.js +0 -71
@@ -0,0 +1,730 @@
1
+
2
+ <!doctype html>
3
+ <html lang="en">
4
+
5
+ <head>
6
+ <title>Code coverage report for src/api/controllers/deploy/index.ts</title>
7
+ <meta charset="utf-8" />
8
+ <link rel="stylesheet" href="../../../../prettify.css" />
9
+ <link rel="stylesheet" href="../../../../base.css" />
10
+ <link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.png" />
11
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
12
+ <style type='text/css'>
13
+ .coverage-summary .sorter {
14
+ background-image: url(../../../../sort-arrow-sprite.png);
15
+ }
16
+ </style>
17
+ </head>
18
+
19
+ <body>
20
+ <div class='wrapper'>
21
+ <div class='pad1'>
22
+ <h1><a href="../../../../index.html">All files</a> / <a href="index.html">src/api/controllers/deploy</a> index.ts</h1>
23
+ <div class='clearfix'>
24
+
25
+ <div class='fl pad1y space-right2'>
26
+ <span class="strong">72.17% </span>
27
+ <span class="quiet">Statements</span>
28
+ <span class='fraction'>83/115</span>
29
+ </div>
30
+
31
+
32
+ <div class='fl pad1y space-right2'>
33
+ <span class="strong">25% </span>
34
+ <span class="quiet">Branches</span>
35
+ <span class='fraction'>2/8</span>
36
+ </div>
37
+
38
+
39
+ <div class='fl pad1y space-right2'>
40
+ <span class="strong">50% </span>
41
+ <span class="quiet">Functions</span>
42
+ <span class='fraction'>5/10</span>
43
+ </div>
44
+
45
+
46
+ <div class='fl pad1y space-right2'>
47
+ <span class="strong">72.8% </span>
48
+ <span class="quiet">Lines</span>
49
+ <span class='fraction'>83/114</span>
50
+ </div>
51
+
52
+
53
+ </div>
54
+ <p class="quiet">
55
+ Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
56
+ </p>
57
+ <template id="filterTemplate">
58
+ <div class="quiet">
59
+ Filter:
60
+ <input oninput="onInput()" type="search" id="fileSearch">
61
+ </div>
62
+ </template>
63
+ </div>
64
+ <div class='status-line medium'></div>
65
+ <pre><table class="coverage">
66
+ <tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
67
+ <a name='L2'></a><a href='#L2'>2</a>
68
+ <a name='L3'></a><a href='#L3'>3</a>
69
+ <a name='L4'></a><a href='#L4'>4</a>
70
+ <a name='L5'></a><a href='#L5'>5</a>
71
+ <a name='L6'></a><a href='#L6'>6</a>
72
+ <a name='L7'></a><a href='#L7'>7</a>
73
+ <a name='L8'></a><a href='#L8'>8</a>
74
+ <a name='L9'></a><a href='#L9'>9</a>
75
+ <a name='L10'></a><a href='#L10'>10</a>
76
+ <a name='L11'></a><a href='#L11'>11</a>
77
+ <a name='L12'></a><a href='#L12'>12</a>
78
+ <a name='L13'></a><a href='#L13'>13</a>
79
+ <a name='L14'></a><a href='#L14'>14</a>
80
+ <a name='L15'></a><a href='#L15'>15</a>
81
+ <a name='L16'></a><a href='#L16'>16</a>
82
+ <a name='L17'></a><a href='#L17'>17</a>
83
+ <a name='L18'></a><a href='#L18'>18</a>
84
+ <a name='L19'></a><a href='#L19'>19</a>
85
+ <a name='L20'></a><a href='#L20'>20</a>
86
+ <a name='L21'></a><a href='#L21'>21</a>
87
+ <a name='L22'></a><a href='#L22'>22</a>
88
+ <a name='L23'></a><a href='#L23'>23</a>
89
+ <a name='L24'></a><a href='#L24'>24</a>
90
+ <a name='L25'></a><a href='#L25'>25</a>
91
+ <a name='L26'></a><a href='#L26'>26</a>
92
+ <a name='L27'></a><a href='#L27'>27</a>
93
+ <a name='L28'></a><a href='#L28'>28</a>
94
+ <a name='L29'></a><a href='#L29'>29</a>
95
+ <a name='L30'></a><a href='#L30'>30</a>
96
+ <a name='L31'></a><a href='#L31'>31</a>
97
+ <a name='L32'></a><a href='#L32'>32</a>
98
+ <a name='L33'></a><a href='#L33'>33</a>
99
+ <a name='L34'></a><a href='#L34'>34</a>
100
+ <a name='L35'></a><a href='#L35'>35</a>
101
+ <a name='L36'></a><a href='#L36'>36</a>
102
+ <a name='L37'></a><a href='#L37'>37</a>
103
+ <a name='L38'></a><a href='#L38'>38</a>
104
+ <a name='L39'></a><a href='#L39'>39</a>
105
+ <a name='L40'></a><a href='#L40'>40</a>
106
+ <a name='L41'></a><a href='#L41'>41</a>
107
+ <a name='L42'></a><a href='#L42'>42</a>
108
+ <a name='L43'></a><a href='#L43'>43</a>
109
+ <a name='L44'></a><a href='#L44'>44</a>
110
+ <a name='L45'></a><a href='#L45'>45</a>
111
+ <a name='L46'></a><a href='#L46'>46</a>
112
+ <a name='L47'></a><a href='#L47'>47</a>
113
+ <a name='L48'></a><a href='#L48'>48</a>
114
+ <a name='L49'></a><a href='#L49'>49</a>
115
+ <a name='L50'></a><a href='#L50'>50</a>
116
+ <a name='L51'></a><a href='#L51'>51</a>
117
+ <a name='L52'></a><a href='#L52'>52</a>
118
+ <a name='L53'></a><a href='#L53'>53</a>
119
+ <a name='L54'></a><a href='#L54'>54</a>
120
+ <a name='L55'></a><a href='#L55'>55</a>
121
+ <a name='L56'></a><a href='#L56'>56</a>
122
+ <a name='L57'></a><a href='#L57'>57</a>
123
+ <a name='L58'></a><a href='#L58'>58</a>
124
+ <a name='L59'></a><a href='#L59'>59</a>
125
+ <a name='L60'></a><a href='#L60'>60</a>
126
+ <a name='L61'></a><a href='#L61'>61</a>
127
+ <a name='L62'></a><a href='#L62'>62</a>
128
+ <a name='L63'></a><a href='#L63'>63</a>
129
+ <a name='L64'></a><a href='#L64'>64</a>
130
+ <a name='L65'></a><a href='#L65'>65</a>
131
+ <a name='L66'></a><a href='#L66'>66</a>
132
+ <a name='L67'></a><a href='#L67'>67</a>
133
+ <a name='L68'></a><a href='#L68'>68</a>
134
+ <a name='L69'></a><a href='#L69'>69</a>
135
+ <a name='L70'></a><a href='#L70'>70</a>
136
+ <a name='L71'></a><a href='#L71'>71</a>
137
+ <a name='L72'></a><a href='#L72'>72</a>
138
+ <a name='L73'></a><a href='#L73'>73</a>
139
+ <a name='L74'></a><a href='#L74'>74</a>
140
+ <a name='L75'></a><a href='#L75'>75</a>
141
+ <a name='L76'></a><a href='#L76'>76</a>
142
+ <a name='L77'></a><a href='#L77'>77</a>
143
+ <a name='L78'></a><a href='#L78'>78</a>
144
+ <a name='L79'></a><a href='#L79'>79</a>
145
+ <a name='L80'></a><a href='#L80'>80</a>
146
+ <a name='L81'></a><a href='#L81'>81</a>
147
+ <a name='L82'></a><a href='#L82'>82</a>
148
+ <a name='L83'></a><a href='#L83'>83</a>
149
+ <a name='L84'></a><a href='#L84'>84</a>
150
+ <a name='L85'></a><a href='#L85'>85</a>
151
+ <a name='L86'></a><a href='#L86'>86</a>
152
+ <a name='L87'></a><a href='#L87'>87</a>
153
+ <a name='L88'></a><a href='#L88'>88</a>
154
+ <a name='L89'></a><a href='#L89'>89</a>
155
+ <a name='L90'></a><a href='#L90'>90</a>
156
+ <a name='L91'></a><a href='#L91'>91</a>
157
+ <a name='L92'></a><a href='#L92'>92</a>
158
+ <a name='L93'></a><a href='#L93'>93</a>
159
+ <a name='L94'></a><a href='#L94'>94</a>
160
+ <a name='L95'></a><a href='#L95'>95</a>
161
+ <a name='L96'></a><a href='#L96'>96</a>
162
+ <a name='L97'></a><a href='#L97'>97</a>
163
+ <a name='L98'></a><a href='#L98'>98</a>
164
+ <a name='L99'></a><a href='#L99'>99</a>
165
+ <a name='L100'></a><a href='#L100'>100</a>
166
+ <a name='L101'></a><a href='#L101'>101</a>
167
+ <a name='L102'></a><a href='#L102'>102</a>
168
+ <a name='L103'></a><a href='#L103'>103</a>
169
+ <a name='L104'></a><a href='#L104'>104</a>
170
+ <a name='L105'></a><a href='#L105'>105</a>
171
+ <a name='L106'></a><a href='#L106'>106</a>
172
+ <a name='L107'></a><a href='#L107'>107</a>
173
+ <a name='L108'></a><a href='#L108'>108</a>
174
+ <a name='L109'></a><a href='#L109'>109</a>
175
+ <a name='L110'></a><a href='#L110'>110</a>
176
+ <a name='L111'></a><a href='#L111'>111</a>
177
+ <a name='L112'></a><a href='#L112'>112</a>
178
+ <a name='L113'></a><a href='#L113'>113</a>
179
+ <a name='L114'></a><a href='#L114'>114</a>
180
+ <a name='L115'></a><a href='#L115'>115</a>
181
+ <a name='L116'></a><a href='#L116'>116</a>
182
+ <a name='L117'></a><a href='#L117'>117</a>
183
+ <a name='L118'></a><a href='#L118'>118</a>
184
+ <a name='L119'></a><a href='#L119'>119</a>
185
+ <a name='L120'></a><a href='#L120'>120</a>
186
+ <a name='L121'></a><a href='#L121'>121</a>
187
+ <a name='L122'></a><a href='#L122'>122</a>
188
+ <a name='L123'></a><a href='#L123'>123</a>
189
+ <a name='L124'></a><a href='#L124'>124</a>
190
+ <a name='L125'></a><a href='#L125'>125</a>
191
+ <a name='L126'></a><a href='#L126'>126</a>
192
+ <a name='L127'></a><a href='#L127'>127</a>
193
+ <a name='L128'></a><a href='#L128'>128</a>
194
+ <a name='L129'></a><a href='#L129'>129</a>
195
+ <a name='L130'></a><a href='#L130'>130</a>
196
+ <a name='L131'></a><a href='#L131'>131</a>
197
+ <a name='L132'></a><a href='#L132'>132</a>
198
+ <a name='L133'></a><a href='#L133'>133</a>
199
+ <a name='L134'></a><a href='#L134'>134</a>
200
+ <a name='L135'></a><a href='#L135'>135</a>
201
+ <a name='L136'></a><a href='#L136'>136</a>
202
+ <a name='L137'></a><a href='#L137'>137</a>
203
+ <a name='L138'></a><a href='#L138'>138</a>
204
+ <a name='L139'></a><a href='#L139'>139</a>
205
+ <a name='L140'></a><a href='#L140'>140</a>
206
+ <a name='L141'></a><a href='#L141'>141</a>
207
+ <a name='L142'></a><a href='#L142'>142</a>
208
+ <a name='L143'></a><a href='#L143'>143</a>
209
+ <a name='L144'></a><a href='#L144'>144</a>
210
+ <a name='L145'></a><a href='#L145'>145</a>
211
+ <a name='L146'></a><a href='#L146'>146</a>
212
+ <a name='L147'></a><a href='#L147'>147</a>
213
+ <a name='L148'></a><a href='#L148'>148</a>
214
+ <a name='L149'></a><a href='#L149'>149</a>
215
+ <a name='L150'></a><a href='#L150'>150</a>
216
+ <a name='L151'></a><a href='#L151'>151</a>
217
+ <a name='L152'></a><a href='#L152'>152</a>
218
+ <a name='L153'></a><a href='#L153'>153</a>
219
+ <a name='L154'></a><a href='#L154'>154</a>
220
+ <a name='L155'></a><a href='#L155'>155</a>
221
+ <a name='L156'></a><a href='#L156'>156</a>
222
+ <a name='L157'></a><a href='#L157'>157</a>
223
+ <a name='L158'></a><a href='#L158'>158</a>
224
+ <a name='L159'></a><a href='#L159'>159</a>
225
+ <a name='L160'></a><a href='#L160'>160</a>
226
+ <a name='L161'></a><a href='#L161'>161</a>
227
+ <a name='L162'></a><a href='#L162'>162</a>
228
+ <a name='L163'></a><a href='#L163'>163</a>
229
+ <a name='L164'></a><a href='#L164'>164</a>
230
+ <a name='L165'></a><a href='#L165'>165</a>
231
+ <a name='L166'></a><a href='#L166'>166</a>
232
+ <a name='L167'></a><a href='#L167'>167</a>
233
+ <a name='L168'></a><a href='#L168'>168</a>
234
+ <a name='L169'></a><a href='#L169'>169</a>
235
+ <a name='L170'></a><a href='#L170'>170</a>
236
+ <a name='L171'></a><a href='#L171'>171</a>
237
+ <a name='L172'></a><a href='#L172'>172</a>
238
+ <a name='L173'></a><a href='#L173'>173</a>
239
+ <a name='L174'></a><a href='#L174'>174</a>
240
+ <a name='L175'></a><a href='#L175'>175</a>
241
+ <a name='L176'></a><a href='#L176'>176</a>
242
+ <a name='L177'></a><a href='#L177'>177</a>
243
+ <a name='L178'></a><a href='#L178'>178</a>
244
+ <a name='L179'></a><a href='#L179'>179</a>
245
+ <a name='L180'></a><a href='#L180'>180</a>
246
+ <a name='L181'></a><a href='#L181'>181</a>
247
+ <a name='L182'></a><a href='#L182'>182</a>
248
+ <a name='L183'></a><a href='#L183'>183</a>
249
+ <a name='L184'></a><a href='#L184'>184</a>
250
+ <a name='L185'></a><a href='#L185'>185</a>
251
+ <a name='L186'></a><a href='#L186'>186</a>
252
+ <a name='L187'></a><a href='#L187'>187</a>
253
+ <a name='L188'></a><a href='#L188'>188</a>
254
+ <a name='L189'></a><a href='#L189'>189</a>
255
+ <a name='L190'></a><a href='#L190'>190</a>
256
+ <a name='L191'></a><a href='#L191'>191</a>
257
+ <a name='L192'></a><a href='#L192'>192</a>
258
+ <a name='L193'></a><a href='#L193'>193</a>
259
+ <a name='L194'></a><a href='#L194'>194</a>
260
+ <a name='L195'></a><a href='#L195'>195</a>
261
+ <a name='L196'></a><a href='#L196'>196</a>
262
+ <a name='L197'></a><a href='#L197'>197</a>
263
+ <a name='L198'></a><a href='#L198'>198</a>
264
+ <a name='L199'></a><a href='#L199'>199</a>
265
+ <a name='L200'></a><a href='#L200'>200</a>
266
+ <a name='L201'></a><a href='#L201'>201</a>
267
+ <a name='L202'></a><a href='#L202'>202</a>
268
+ <a name='L203'></a><a href='#L203'>203</a>
269
+ <a name='L204'></a><a href='#L204'>204</a>
270
+ <a name='L205'></a><a href='#L205'>205</a>
271
+ <a name='L206'></a><a href='#L206'>206</a>
272
+ <a name='L207'></a><a href='#L207'>207</a>
273
+ <a name='L208'></a><a href='#L208'>208</a>
274
+ <a name='L209'></a><a href='#L209'>209</a>
275
+ <a name='L210'></a><a href='#L210'>210</a>
276
+ <a name='L211'></a><a href='#L211'>211</a>
277
+ <a name='L212'></a><a href='#L212'>212</a>
278
+ <a name='L213'></a><a href='#L213'>213</a>
279
+ <a name='L214'></a><a href='#L214'>214</a>
280
+ <a name='L215'></a><a href='#L215'>215</a>
281
+ <a name='L216'></a><a href='#L216'>216</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">44x</span>
282
+ <span class="cline-any cline-yes">44x</span>
283
+ <span class="cline-any cline-yes">44x</span>
284
+ <span class="cline-any cline-yes">44x</span>
285
+ <span class="cline-any cline-neutral">&nbsp;</span>
286
+ <span class="cline-any cline-neutral">&nbsp;</span>
287
+ <span class="cline-any cline-neutral">&nbsp;</span>
288
+ <span class="cline-any cline-neutral">&nbsp;</span>
289
+ <span class="cline-any cline-yes">44x</span>
290
+ <span class="cline-any cline-yes">44x</span>
291
+ <span class="cline-any cline-neutral">&nbsp;</span>
292
+ <span class="cline-any cline-neutral">&nbsp;</span>
293
+ <span class="cline-any cline-yes">44x</span>
294
+ <span class="cline-any cline-yes">44x</span>
295
+ <span class="cline-any cline-neutral">&nbsp;</span>
296
+ <span class="cline-any cline-neutral">&nbsp;</span>
297
+ <span class="cline-any cline-neutral">&nbsp;</span>
298
+ <span class="cline-any cline-neutral">&nbsp;</span>
299
+ <span class="cline-any cline-neutral">&nbsp;</span>
300
+ <span class="cline-any cline-neutral">&nbsp;</span>
301
+ <span class="cline-any cline-neutral">&nbsp;</span>
302
+ <span class="cline-any cline-no">&nbsp;</span>
303
+ <span class="cline-any cline-neutral">&nbsp;</span>
304
+ <span class="cline-any cline-no">&nbsp;</span>
305
+ <span class="cline-any cline-neutral">&nbsp;</span>
306
+ <span class="cline-any cline-no">&nbsp;</span>
307
+ <span class="cline-any cline-neutral">&nbsp;</span>
308
+ <span class="cline-any cline-neutral">&nbsp;</span>
309
+ <span class="cline-any cline-neutral">&nbsp;</span>
310
+ <span class="cline-any cline-no">&nbsp;</span>
311
+ <span class="cline-any cline-no">&nbsp;</span>
312
+ <span class="cline-any cline-no">&nbsp;</span>
313
+ <span class="cline-any cline-neutral">&nbsp;</span>
314
+ <span class="cline-any cline-neutral">&nbsp;</span>
315
+ <span class="cline-any cline-no">&nbsp;</span>
316
+ <span class="cline-any cline-neutral">&nbsp;</span>
317
+ <span class="cline-any cline-neutral">&nbsp;</span>
318
+ <span class="cline-any cline-neutral">&nbsp;</span>
319
+ <span class="cline-any cline-yes">504x</span>
320
+ <span class="cline-any cline-yes">504x</span>
321
+ <span class="cline-any cline-neutral">&nbsp;</span>
322
+ <span class="cline-any cline-neutral">&nbsp;</span>
323
+ <span class="cline-any cline-yes">504x</span>
324
+ <span class="cline-any cline-neutral">&nbsp;</span>
325
+ <span class="cline-any cline-yes">504x</span>
326
+ <span class="cline-any cline-neutral">&nbsp;</span>
327
+ <span class="cline-any cline-yes">243x</span>
328
+ <span class="cline-any cline-neutral">&nbsp;</span>
329
+ <span class="cline-any cline-neutral">&nbsp;</span>
330
+ <span class="cline-any cline-yes">504x</span>
331
+ <span class="cline-any cline-neutral">&nbsp;</span>
332
+ <span class="cline-any cline-neutral">&nbsp;</span>
333
+ <span class="cline-any cline-yes">504x</span>
334
+ <span class="cline-any cline-yes">252x</span>
335
+ <span class="cline-any cline-neutral">&nbsp;</span>
336
+ <span class="cline-any cline-yes">504x</span>
337
+ <span class="cline-any cline-neutral">&nbsp;</span>
338
+ <span class="cline-any cline-neutral">&nbsp;</span>
339
+ <span class="cline-any cline-neutral">&nbsp;</span>
340
+ <span class="cline-any cline-neutral">&nbsp;</span>
341
+ <span class="cline-any cline-neutral">&nbsp;</span>
342
+ <span class="cline-any cline-yes">504x</span>
343
+ <span class="cline-any cline-yes">504x</span>
344
+ <span class="cline-any cline-yes">504x</span>
345
+ <span class="cline-any cline-neutral">&nbsp;</span>
346
+ <span class="cline-any cline-neutral">&nbsp;</span>
347
+ <span class="cline-any cline-neutral">&nbsp;</span>
348
+ <span class="cline-any cline-yes">252x</span>
349
+ <span class="cline-any cline-yes">252x</span>
350
+ <span class="cline-any cline-yes">252x</span>
351
+ <span class="cline-any cline-neutral">&nbsp;</span>
352
+ <span class="cline-any cline-neutral">&nbsp;</span>
353
+ <span class="cline-any cline-neutral">&nbsp;</span>
354
+ <span class="cline-any cline-neutral">&nbsp;</span>
355
+ <span class="cline-any cline-neutral">&nbsp;</span>
356
+ <span class="cline-any cline-yes">1x</span>
357
+ <span class="cline-any cline-yes">252x</span>
358
+ <span class="cline-any cline-yes">252x</span>
359
+ <span class="cline-any cline-yes">252x</span>
360
+ <span class="cline-any cline-yes">252x</span>
361
+ <span class="cline-any cline-yes">252x</span>
362
+ <span class="cline-any cline-yes">252x</span>
363
+ <span class="cline-any cline-yes">252x</span>
364
+ <span class="cline-any cline-yes">252x</span>
365
+ <span class="cline-any cline-yes">1x</span>
366
+ <span class="cline-any cline-neutral">&nbsp;</span>
367
+ <span class="cline-any cline-yes">252x</span>
368
+ <span class="cline-any cline-yes">252x</span>
369
+ <span class="cline-any cline-neutral">&nbsp;</span>
370
+ <span class="cline-any cline-neutral">&nbsp;</span>
371
+ <span class="cline-any cline-neutral">&nbsp;</span>
372
+ <span class="cline-any cline-neutral">&nbsp;</span>
373
+ <span class="cline-any cline-yes">252x</span>
374
+ <span class="cline-any cline-yes">252x</span>
375
+ <span class="cline-any cline-yes">252x</span>
376
+ <span class="cline-any cline-yes">252x</span>
377
+ <span class="cline-any cline-neutral">&nbsp;</span>
378
+ <span class="cline-any cline-neutral">&nbsp;</span>
379
+ <span class="cline-any cline-yes">252x</span>
380
+ <span class="cline-any cline-neutral">&nbsp;</span>
381
+ <span class="cline-any cline-no">&nbsp;</span>
382
+ <span class="cline-any cline-neutral">&nbsp;</span>
383
+ <span class="cline-any cline-neutral">&nbsp;</span>
384
+ <span class="cline-any cline-neutral">&nbsp;</span>
385
+ <span class="cline-any cline-neutral">&nbsp;</span>
386
+ <span class="cline-any cline-neutral">&nbsp;</span>
387
+ <span class="cline-any cline-neutral">&nbsp;</span>
388
+ <span class="cline-any cline-neutral">&nbsp;</span>
389
+ <span class="cline-any cline-yes">252x</span>
390
+ <span class="cline-any cline-neutral">&nbsp;</span>
391
+ <span class="cline-any cline-neutral">&nbsp;</span>
392
+ <span class="cline-any cline-neutral">&nbsp;</span>
393
+ <span class="cline-any cline-yes">252x</span>
394
+ <span class="cline-any cline-yes">252x</span>
395
+ <span class="cline-any cline-yes">252x</span>
396
+ <span class="cline-any cline-yes">252x</span>
397
+ <span class="cline-any cline-yes">252x</span>
398
+ <span class="cline-any cline-yes">252x</span>
399
+ <span class="cline-any cline-yes">252x</span>
400
+ <span class="cline-any cline-neutral">&nbsp;</span>
401
+ <span class="cline-any cline-neutral">&nbsp;</span>
402
+ <span class="cline-any cline-yes">252x</span>
403
+ <span class="cline-any cline-yes">252x</span>
404
+ <span class="cline-any cline-yes">252x</span>
405
+ <span class="cline-any cline-yes">252x</span>
406
+ <span class="cline-any cline-yes">9x</span>
407
+ <span class="cline-any cline-neutral">&nbsp;</span>
408
+ <span class="cline-any cline-yes">243x</span>
409
+ <span class="cline-any cline-neutral">&nbsp;</span>
410
+ <span class="cline-any cline-neutral">&nbsp;</span>
411
+ <span class="cline-any cline-neutral">&nbsp;</span>
412
+ <span class="cline-any cline-yes">252x</span>
413
+ <span class="cline-any cline-yes">252x</span>
414
+ <span class="cline-any cline-yes">252x</span>
415
+ <span class="cline-any cline-neutral">&nbsp;</span>
416
+ <span class="cline-any cline-yes">252x</span>
417
+ <span class="cline-any cline-yes">252x</span>
418
+ <span class="cline-any cline-yes">252x</span>
419
+ <span class="cline-any cline-yes">252x</span>
420
+ <span class="cline-any cline-yes">252x</span>
421
+ <span class="cline-any cline-yes">252x</span>
422
+ <span class="cline-any cline-yes">252x</span>
423
+ <span class="cline-any cline-yes">252x</span>
424
+ <span class="cline-any cline-yes">252x</span>
425
+ <span class="cline-any cline-neutral">&nbsp;</span>
426
+ <span class="cline-any cline-no">&nbsp;</span>
427
+ <span class="cline-any cline-no">&nbsp;</span>
428
+ <span class="cline-any cline-no">&nbsp;</span>
429
+ <span class="cline-any cline-neutral">&nbsp;</span>
430
+ <span class="cline-any cline-neutral">&nbsp;</span>
431
+ <span class="cline-any cline-neutral">&nbsp;</span>
432
+ <span class="cline-any cline-neutral">&nbsp;</span>
433
+ <span class="cline-any cline-yes">252x</span>
434
+ <span class="cline-any cline-yes">252x</span>
435
+ <span class="cline-any cline-neutral">&nbsp;</span>
436
+ <span class="cline-any cline-neutral">&nbsp;</span>
437
+ <span class="cline-any cline-neutral">&nbsp;</span>
438
+ <span class="cline-any cline-neutral">&nbsp;</span>
439
+ <span class="cline-any cline-yes">44x</span>
440
+ <span class="cline-any cline-no">&nbsp;</span>
441
+ <span class="cline-any cline-no">&nbsp;</span>
442
+ <span class="cline-any cline-no">&nbsp;</span>
443
+ <span class="cline-any cline-no">&nbsp;</span>
444
+ <span class="cline-any cline-no">&nbsp;</span>
445
+ <span class="cline-any cline-no">&nbsp;</span>
446
+ <span class="cline-any cline-neutral">&nbsp;</span>
447
+ <span class="cline-any cline-no">&nbsp;</span>
448
+ <span class="cline-any cline-neutral">&nbsp;</span>
449
+ <span class="cline-any cline-no">&nbsp;</span>
450
+ <span class="cline-any cline-neutral">&nbsp;</span>
451
+ <span class="cline-any cline-neutral">&nbsp;</span>
452
+ <span class="cline-any cline-neutral">&nbsp;</span>
453
+ <span class="cline-any cline-yes">44x</span>
454
+ <span class="cline-any cline-no">&nbsp;</span>
455
+ <span class="cline-any cline-no">&nbsp;</span>
456
+ <span class="cline-any cline-no">&nbsp;</span>
457
+ <span class="cline-any cline-no">&nbsp;</span>
458
+ <span class="cline-any cline-neutral">&nbsp;</span>
459
+ <span class="cline-any cline-no">&nbsp;</span>
460
+ <span class="cline-any cline-neutral">&nbsp;</span>
461
+ <span class="cline-any cline-neutral">&nbsp;</span>
462
+ <span class="cline-any cline-neutral">&nbsp;</span>
463
+ <span class="cline-any cline-neutral">&nbsp;</span>
464
+ <span class="cline-any cline-neutral">&nbsp;</span>
465
+ <span class="cline-any cline-neutral">&nbsp;</span>
466
+ <span class="cline-any cline-yes">44x</span>
467
+ <span class="cline-any cline-no">&nbsp;</span>
468
+ <span class="cline-any cline-no">&nbsp;</span>
469
+ <span class="cline-any cline-no">&nbsp;</span>
470
+ <span class="cline-any cline-neutral">&nbsp;</span>
471
+ <span class="cline-any cline-no">&nbsp;</span>
472
+ <span class="cline-any cline-no">&nbsp;</span>
473
+ <span class="cline-any cline-neutral">&nbsp;</span>
474
+ <span class="cline-any cline-no">&nbsp;</span>
475
+ <span class="cline-any cline-neutral">&nbsp;</span>
476
+ <span class="cline-any cline-no">&nbsp;</span>
477
+ <span class="cline-any cline-neutral">&nbsp;</span>
478
+ <span class="cline-any cline-neutral">&nbsp;</span>
479
+ <span class="cline-any cline-yes">44x</span>
480
+ <span class="cline-any cline-yes">252x</span>
481
+ <span class="cline-any cline-yes">252x</span>
482
+ <span class="cline-any cline-yes">252x</span>
483
+ <span class="cline-any cline-yes">252x</span>
484
+ <span class="cline-any cline-yes">252x</span>
485
+ <span class="cline-any cline-yes">252x</span>
486
+ <span class="cline-any cline-neutral">&nbsp;</span>
487
+ <span class="cline-any cline-yes">252x</span>
488
+ <span class="cline-any cline-neutral">&nbsp;</span>
489
+ <span class="cline-any cline-yes">252x</span>
490
+ <span class="cline-any cline-neutral">&nbsp;</span>
491
+ <span class="cline-any cline-yes">252x</span>
492
+ <span class="cline-any cline-yes">252x</span>
493
+ <span class="cline-any cline-neutral">&nbsp;</span>
494
+ <span class="cline-any cline-neutral">&nbsp;</span>
495
+ <span class="cline-any cline-yes">44x</span>
496
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import Deployment from "./Deployment"
497
+ import { context, db as dbCore, events, cache } from "@budibase/backend-core"
498
+ import { DocumentType, getAutomationParams } from "../../../db/utils"
499
+ import {
500
+ clearMetadata,
501
+ disableAllCrons,
502
+ enableCronTrigger,
503
+ } from "../../../automations/utils"
504
+ import { backups } from "@budibase/pro"
505
+ import { AppBackupTrigger } from "@budibase/types"
506
+ &nbsp;
507
+ // the max time we can wait for an invalidation to complete before considering it failed
508
+ const MAX_PENDING_TIME_MS = 30 * 60000
509
+ const DeploymentStatus = {
510
+ SUCCESS: "SUCCESS",
511
+ PENDING: "PENDING",
512
+ FAILURE: "FAILURE",
513
+ }
514
+ &nbsp;
515
+ // checks that deployments are in a good state, any pending will be updated
516
+ async function <span class="fstat-no" title="function not covered" >checkAllDeployments(</span>deployments: any) {
517
+ let updated = <span class="cstat-no" title="statement not covered" >false</span>
518
+ let deployment: any
519
+ <span class="cstat-no" title="statement not covered" > for (deployment of Object.values(deployments.history)) {</span>
520
+ // check that no deployments have crashed etc and are now stuck
521
+ <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (</span>
522
+ deployment.status === DeploymentStatus.PENDING &amp;&amp;
523
+ Date.now() - deployment.updatedAt &gt; MAX_PENDING_TIME_MS
524
+ ) {
525
+ <span class="cstat-no" title="statement not covered" > deployment.status = DeploymentStatus.FAILURE</span>
526
+ <span class="cstat-no" title="statement not covered" > deployment.err = "Timed out"</span>
527
+ <span class="cstat-no" title="statement not covered" > updated = true</span>
528
+ }
529
+ }
530
+ <span class="cstat-no" title="statement not covered" > return { updated, deployments }</span>
531
+ }
532
+ &nbsp;
533
+ async function storeDeploymentHistory(deployment: any) {
534
+ const deploymentJSON = deployment.getJSON()
535
+ const db = context.getAppDB()
536
+ &nbsp;
537
+ let deploymentDoc
538
+ try {
539
+ // theres only one deployment doc per app database
540
+ deploymentDoc = await db.get(DocumentType.DEPLOYMENTS)
541
+ } catch (err) {
542
+ deploymentDoc = { _id: DocumentType.DEPLOYMENTS, history: {} }
543
+ }
544
+ &nbsp;
545
+ const deploymentId = deploymentJSON._id
546
+ &nbsp;
547
+ // first time deployment
548
+ if (!deploymentDoc.history[deploymentId])
549
+ deploymentDoc.history[deploymentId] = {}
550
+ &nbsp;
551
+ deploymentDoc.history[deploymentId] = {
552
+ ...deploymentDoc.history[deploymentId],
553
+ ...deploymentJSON,
554
+ updatedAt: Date.now(),
555
+ }
556
+ &nbsp;
557
+ await db.put(deploymentDoc)
558
+ deployment.fromJSON(deploymentDoc.history[deploymentId])
559
+ return deployment
560
+ }
561
+ &nbsp;
562
+ async function initDeployedApp(prodAppId: any) {
563
+ const db = context.getProdAppDB()
564
+ console.log("Reading automation docs")
565
+ const automations = (
566
+ await db.allDocs(
567
+ getAutomationParams(null, {
568
+ include_docs: true,
569
+ })
570
+ )
571
+ ).rows.map((row: any) =&gt; row.doc)
572
+ await clearMetadata()
573
+ console.log("You have " + automations.length + " automations")
574
+ const promises = []
575
+ console.log("Disabling prod crons..")
576
+ await disableAllCrons(prodAppId)
577
+ console.log("Prod Cron triggers disabled..")
578
+ console.log("Enabling cron triggers for deployed app..")
579
+ for (let automation of automations) {
580
+ promises.push(enableCronTrigger(prodAppId, automation))
581
+ }
582
+ await Promise.all(promises)
583
+ console.log("Enabled cron triggers for deployed app..")
584
+ }
585
+ &nbsp;
586
+ async function deployApp(deployment: any, userId: string) {
587
+ let replication
588
+ try {
589
+ const appId = context.getAppId()!
590
+ const devAppId = dbCore.getDevelopmentAppID(appId)
591
+ const productionAppId = dbCore.getProdAppID(appId)
592
+ &nbsp;
593
+ // don't try this if feature isn't allowed, will error
594
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (await backups.isEnabled()) {
595
+ // trigger backup initially
596
+ <span class="cstat-no" title="statement not covered" > await backups.triggerAppBackup(</span>
597
+ productionAppId,
598
+ AppBackupTrigger.PUBLISH,
599
+ {
600
+ createdBy: userId,
601
+ }
602
+ )
603
+ }
604
+ const config: any = {
605
+ source: devAppId,
606
+ target: productionAppId,
607
+ }
608
+ replication = new dbCore.Replication(config)
609
+ const devDb = context.getDevAppDB()
610
+ console.log("Compacting development DB")
611
+ await devDb.compact()
612
+ console.log("Replication object created")
613
+ await replication.replicate(replication.appReplicateOpts())
614
+ console.log("replication complete.. replacing app meta doc")
615
+ // app metadata is excluded as it is likely to be in conflict
616
+ // replicate the app metadata document manually
617
+ const db = context.getProdAppDB()
618
+ const appDoc = await devDb.get(DocumentType.APP_METADATA)
619
+ try {
620
+ const prodAppDoc = await db.get(DocumentType.APP_METADATA)
621
+ appDoc._rev = prodAppDoc._rev
622
+ } catch (err) {
623
+ delete appDoc._rev
624
+ }
625
+ &nbsp;
626
+ // switch to production app ID
627
+ deployment.appUrl = appDoc.url
628
+ appDoc.appId = productionAppId
629
+ appDoc.instance._id = productionAppId
630
+ // remove automation errors if they exist
631
+ delete appDoc.automationErrors
632
+ await db.put(appDoc)
633
+ await cache.app.invalidateAppMetadata(productionAppId)
634
+ console.log("New app doc written successfully.")
635
+ await initDeployedApp(productionAppId)
636
+ console.log("Deployed app initialised, setting deployment to successful")
637
+ deployment.setStatus(DeploymentStatus.SUCCESS)
638
+ await storeDeploymentHistory(deployment)
639
+ return appDoc
640
+ } catch (err: any) {
641
+ <span class="cstat-no" title="statement not covered" > deployment.setStatus(DeploymentStatus.FAILURE, err.message)</span>
642
+ <span class="cstat-no" title="statement not covered" > await storeDeploymentHistory(deployment)</span>
643
+ <span class="cstat-no" title="statement not covered" > throw {</span>
644
+ ...err,
645
+ message: `Deployment Failed: ${err.message}`,
646
+ }
647
+ } finally {
648
+ if (replication) {
649
+ await replication.close()
650
+ }
651
+ }
652
+ }
653
+ &nbsp;
654
+ export async function <span class="fstat-no" title="function not covered" >fetchDeployments(</span>ctx: any) {
655
+ <span class="cstat-no" title="statement not covered" > try {</span>
656
+ const db = <span class="cstat-no" title="statement not covered" >context.getAppDB()</span>
657
+ const deploymentDoc = <span class="cstat-no" title="statement not covered" >await db.get(DocumentType.DEPLOYMENTS)</span>
658
+ const { updated, deployments } = <span class="cstat-no" title="statement not covered" >await checkAllDeployments(deploymentDoc)</span>
659
+ <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (updated) {</span>
660
+ <span class="cstat-no" title="statement not covered" > await db.put(deployments)</span>
661
+ }
662
+ <span class="cstat-no" title="statement not covered" > ctx.body = Object.values(deployments.history).reverse()</span>
663
+ } catch (err) {
664
+ <span class="cstat-no" title="statement not covered" > ctx.body = []</span>
665
+ }
666
+ }
667
+ &nbsp;
668
+ export async function <span class="fstat-no" title="function not covered" >deploymentProgress(</span>ctx: any) {
669
+ <span class="cstat-no" title="statement not covered" > try {</span>
670
+ const db = <span class="cstat-no" title="statement not covered" >context.getAppDB()</span>
671
+ const deploymentDoc = <span class="cstat-no" title="statement not covered" >await db.get(DocumentType.DEPLOYMENTS)</span>
672
+ <span class="cstat-no" title="statement not covered" > ctx.body = deploymentDoc[ctx.params.deploymentId]</span>
673
+ } catch (err) {
674
+ <span class="cstat-no" title="statement not covered" > ctx.throw(</span>
675
+ 500,
676
+ `Error fetching data for deployment ${ctx.params.deploymentId}`
677
+ )
678
+ }
679
+ }
680
+ &nbsp;
681
+ const isFirstDeploy = <span class="fstat-no" title="function not covered" >async () =</span>&gt;<span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" > {</span></span>
682
+ <span class="cstat-no" title="statement not covered" > try {</span>
683
+ const db = <span class="cstat-no" title="statement not covered" >context.getProdAppDB()</span>
684
+ <span class="cstat-no" title="statement not covered" > await db.get(DocumentType.APP_METADATA)</span>
685
+ } catch (e: any) {
686
+ <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (e.status === 404) {</span>
687
+ <span class="cstat-no" title="statement not covered" > return true</span>
688
+ }
689
+ <span class="cstat-no" title="statement not covered" > throw e</span>
690
+ }
691
+ <span class="cstat-no" title="statement not covered" > return false</span>
692
+ }
693
+ &nbsp;
694
+ const _deployApp = async function (ctx: any) {
695
+ let deployment = new Deployment()
696
+ console.log("Deployment object created")
697
+ deployment.setStatus(DeploymentStatus.PENDING)
698
+ console.log("Deployment object set to pending")
699
+ deployment = await storeDeploymentHistory(deployment)
700
+ console.log("Stored deployment history")
701
+ &nbsp;
702
+ console.log("Deploying app...")
703
+ &nbsp;
704
+ let app = await deployApp(deployment, ctx.user._id)
705
+ &nbsp;
706
+ await events.app.published(app)
707
+ ctx.body = deployment
708
+ }
709
+ &nbsp;
710
+ export { _deployApp as deployApp }
711
+ &nbsp;</pre></td></tr></table></pre>
712
+
713
+ <div class='push'></div><!-- for sticky footer -->
714
+ </div><!-- /wrapper -->
715
+ <div class='footer quiet pad2 space-top1 center small'>
716
+ Code coverage generated by
717
+ <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
718
+ at Tue Nov 29 2022 11:32:32 GMT+0000 (Coordinated Universal Time)
719
+ </div>
720
+ <script src="../../../../prettify.js"></script>
721
+ <script>
722
+ window.onload = function () {
723
+ prettyPrint();
724
+ };
725
+ </script>
726
+ <script src="../../../../sorter.js"></script>
727
+ <script src="../../../../block-navigation.js"></script>
728
+ </body>
729
+ </html>
730
+