@budibase/server 2.3.12 → 2.3.14-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 (552) hide show
  1. package/__mocks__/aws-sdk.ts +1 -1
  2. package/builder/assets/{index.4488f38d.css → index.a534ca24.css} +1 -1
  3. package/builder/assets/{index.e0b69cb5.js → index.d7529be1.js} +275 -275
  4. package/builder/index.html +2 -2
  5. package/coverage/clover.xml +11936 -7197
  6. package/coverage/coverage-final.json +356 -271
  7. package/coverage/lcov-report/index.html +420 -195
  8. package/coverage/lcov-report/src/api/controllers/analytics.ts.html +6 -6
  9. package/coverage/lcov-report/src/api/controllers/apikeys.ts.html +5 -5
  10. package/coverage/lcov-report/src/api/controllers/application.ts.html +140 -140
  11. package/coverage/lcov-report/src/api/controllers/auth.ts.html +9 -9
  12. package/coverage/lcov-report/src/api/controllers/automation.ts.html +47 -47
  13. package/coverage/lcov-report/src/api/controllers/backup.ts.html +6 -6
  14. package/coverage/lcov-report/src/api/controllers/cloud.ts.html +26 -26
  15. package/coverage/lcov-report/src/api/controllers/component.ts.html +5 -5
  16. package/coverage/lcov-report/src/api/controllers/datasource.ts.html +37 -37
  17. package/coverage/lcov-report/src/api/controllers/deploy/Deployment.ts.html +14 -14
  18. package/coverage/lcov-report/src/api/controllers/deploy/index.html +1 -1
  19. package/coverage/lcov-report/src/api/controllers/deploy/index.ts.html +81 -81
  20. package/coverage/lcov-report/src/api/controllers/dev.ts.html +26 -26
  21. package/coverage/lcov-report/src/api/controllers/index.html +37 -37
  22. package/coverage/lcov-report/src/api/controllers/integration.ts.html +4 -4
  23. package/coverage/lcov-report/src/api/controllers/layout.ts.html +15 -15
  24. package/coverage/lcov-report/src/api/controllers/metadata.ts.html +9 -9
  25. package/coverage/lcov-report/src/api/controllers/migrations.ts.html +4 -4
  26. package/coverage/lcov-report/src/api/controllers/permission.ts.html +34 -34
  27. package/coverage/lcov-report/src/api/controllers/plugin/file.ts.html +2 -2
  28. package/coverage/lcov-report/src/api/controllers/plugin/github.ts.html +4 -4
  29. package/coverage/lcov-report/src/api/controllers/plugin/index.html +1 -1
  30. package/coverage/lcov-report/src/api/controllers/plugin/index.ts.html +18 -18
  31. package/coverage/lcov-report/src/api/controllers/plugin/npm.ts.html +5 -5
  32. package/coverage/lcov-report/src/api/controllers/plugin/uploaders.ts.html +5 -5
  33. package/coverage/lcov-report/src/api/controllers/plugin/url.ts.html +3 -3
  34. package/coverage/lcov-report/src/api/controllers/plugin/utils.ts.html +3 -3
  35. package/coverage/lcov-report/src/api/controllers/public/applications.ts.html +6 -6
  36. package/coverage/lcov-report/src/api/controllers/public/index.html +1 -1
  37. package/coverage/lcov-report/src/api/controllers/public/mapping/applications.ts.html +2 -2
  38. package/coverage/lcov-report/src/api/controllers/public/mapping/index.html +1 -1
  39. package/coverage/lcov-report/src/api/controllers/public/mapping/index.ts.html +7 -7
  40. package/coverage/lcov-report/src/api/controllers/public/mapping/queries.ts.html +2 -2
  41. package/coverage/lcov-report/src/api/controllers/public/mapping/rows.ts.html +2 -2
  42. package/coverage/lcov-report/src/api/controllers/public/mapping/tables.ts.html +2 -2
  43. package/coverage/lcov-report/src/api/controllers/public/mapping/users.ts.html +2 -2
  44. package/coverage/lcov-report/src/api/controllers/public/queries.ts.html +4 -4
  45. package/coverage/lcov-report/src/api/controllers/public/rows.ts.html +5 -5
  46. package/coverage/lcov-report/src/api/controllers/public/tables.ts.html +4 -4
  47. package/coverage/lcov-report/src/api/controllers/public/users.ts.html +6 -6
  48. package/coverage/lcov-report/src/api/controllers/public/utils.ts.html +4 -4
  49. package/coverage/lcov-report/src/api/controllers/query/import/index.html +1 -1
  50. package/coverage/lcov-report/src/api/controllers/query/import/index.ts.html +7 -7
  51. package/coverage/lcov-report/src/api/controllers/query/import/sources/base/index.html +1 -1
  52. package/coverage/lcov-report/src/api/controllers/query/import/sources/base/index.ts.html +3 -3
  53. package/coverage/lcov-report/src/api/controllers/query/import/sources/base/openapi.ts.html +5 -5
  54. package/coverage/lcov-report/src/api/controllers/query/import/sources/curl.ts.html +7 -7
  55. package/coverage/lcov-report/src/api/controllers/query/import/sources/index.html +1 -1
  56. package/coverage/lcov-report/src/api/controllers/query/import/sources/openapi2.ts.html +9 -9
  57. package/coverage/lcov-report/src/api/controllers/query/import/sources/openapi3.ts.html +13 -13
  58. package/coverage/lcov-report/src/api/controllers/query/import/sources/tests/curl/curl.spec.js.html +391 -0
  59. package/coverage/lcov-report/src/api/controllers/query/import/sources/tests/curl/index.html +116 -0
  60. package/coverage/lcov-report/src/api/controllers/query/import/sources/tests/openapi2/index.html +116 -0
  61. package/coverage/lcov-report/src/api/controllers/query/import/sources/tests/openapi2/openapi2.spec.js.html +796 -0
  62. package/coverage/lcov-report/src/api/controllers/query/import/sources/tests/openapi3/index.html +116 -0
  63. package/coverage/lcov-report/src/api/controllers/query/import/sources/tests/openapi3/openapi3.spec.js.html +805 -0
  64. package/coverage/lcov-report/src/api/controllers/query/import/tests/index.html +116 -0
  65. package/coverage/lcov-report/src/api/controllers/query/import/tests/index.spec.js.html +568 -0
  66. package/coverage/lcov-report/src/api/controllers/query/index.html +10 -10
  67. package/coverage/lcov-report/src/api/controllers/query/index.ts.html +61 -55
  68. package/coverage/lcov-report/src/api/controllers/query/validation.ts.html +9 -9
  69. package/coverage/lcov-report/src/api/controllers/role.ts.html +8 -8
  70. package/coverage/lcov-report/src/api/controllers/routing.ts.html +6 -6
  71. package/coverage/lcov-report/src/api/controllers/row/ExternalRequest.ts.html +431 -419
  72. package/coverage/lcov-report/src/api/controllers/row/external.ts.html +211 -175
  73. package/coverage/lcov-report/src/api/controllers/row/index.html +42 -42
  74. package/coverage/lcov-report/src/api/controllers/row/index.ts.html +79 -79
  75. package/coverage/lcov-report/src/api/controllers/row/internal.ts.html +34 -34
  76. package/coverage/lcov-report/src/api/controllers/row/internalSearch.ts.html +6 -6
  77. package/coverage/lcov-report/src/api/controllers/row/staticFormula.ts.html +22 -22
  78. package/coverage/lcov-report/src/api/controllers/row/utils.ts.html +31 -31
  79. package/coverage/lcov-report/src/api/controllers/screen.ts.html +26 -26
  80. package/coverage/lcov-report/src/api/controllers/script.ts.html +2 -2
  81. package/coverage/lcov-report/src/api/controllers/static/index.html +1 -1
  82. package/coverage/lcov-report/src/api/controllers/static/index.ts.html +22 -22
  83. package/coverage/lcov-report/src/api/controllers/table/bulkFormula.ts.html +51 -51
  84. package/coverage/lcov-report/src/api/controllers/table/external.ts.html +198 -195
  85. package/coverage/lcov-report/src/api/controllers/table/index.html +47 -47
  86. package/coverage/lcov-report/src/api/controllers/table/index.ts.html +42 -42
  87. package/coverage/lcov-report/src/api/controllers/table/internal.ts.html +61 -61
  88. package/coverage/lcov-report/src/api/controllers/table/utils.ts.html +63 -63
  89. package/coverage/lcov-report/src/api/controllers/templates.ts.html +7 -7
  90. package/coverage/lcov-report/src/api/controllers/user.ts.html +28 -28
  91. package/coverage/lcov-report/src/api/controllers/view/exporters.ts.html +2 -2
  92. package/coverage/lcov-report/src/api/controllers/view/index.html +1 -1
  93. package/coverage/lcov-report/src/api/controllers/view/index.ts.html +16 -16
  94. package/coverage/lcov-report/src/api/controllers/view/tests/index.html +116 -0
  95. package/coverage/lcov-report/src/api/controllers/view/tests/viewBuilder.spec.js.html +277 -0
  96. package/coverage/lcov-report/src/api/controllers/view/utils.ts.html +5 -5
  97. package/coverage/lcov-report/src/api/controllers/view/viewBuilder.ts.html +7 -7
  98. package/coverage/lcov-report/src/api/controllers/webhook.ts.html +25 -25
  99. package/coverage/lcov-report/src/api/index.html +1 -1
  100. package/coverage/lcov-report/src/api/index.ts.html +27 -27
  101. package/coverage/lcov-report/src/api/routes/analytics.ts.html +7 -7
  102. package/coverage/lcov-report/src/api/routes/apikeys.ts.html +8 -8
  103. package/coverage/lcov-report/src/api/routes/application.ts.html +10 -10
  104. package/coverage/lcov-report/src/api/routes/auth.ts.html +6 -6
  105. package/coverage/lcov-report/src/api/routes/automation.ts.html +11 -11
  106. package/coverage/lcov-report/src/api/routes/backup.ts.html +8 -8
  107. package/coverage/lcov-report/src/api/routes/cloud.ts.html +8 -8
  108. package/coverage/lcov-report/src/api/routes/component.ts.html +8 -8
  109. package/coverage/lcov-report/src/api/routes/datasource.ts.html +9 -9
  110. package/coverage/lcov-report/src/api/routes/deploy.ts.html +8 -8
  111. package/coverage/lcov-report/src/api/routes/dev.ts.html +13 -13
  112. package/coverage/lcov-report/src/api/routes/index.html +1 -1
  113. package/coverage/lcov-report/src/api/routes/index.ts.html +35 -35
  114. package/coverage/lcov-report/src/api/routes/integration.ts.html +8 -8
  115. package/coverage/lcov-report/src/api/routes/layout.ts.html +8 -8
  116. package/coverage/lcov-report/src/api/routes/metadata.ts.html +9 -9
  117. package/coverage/lcov-report/src/api/routes/migrations.ts.html +7 -7
  118. package/coverage/lcov-report/src/api/routes/permission.ts.html +9 -9
  119. package/coverage/lcov-report/src/api/routes/plugin.ts.html +8 -8
  120. package/coverage/lcov-report/src/api/routes/public/applications.ts.html +14 -17
  121. package/coverage/lcov-report/src/api/routes/public/index.html +1 -1
  122. package/coverage/lcov-report/src/api/routes/public/index.ts.html +52 -52
  123. package/coverage/lcov-report/src/api/routes/public/middleware/index.html +1 -1
  124. package/coverage/lcov-report/src/api/routes/public/middleware/mapper.ts.html +4 -4
  125. package/coverage/lcov-report/src/api/routes/public/queries.ts.html +9 -9
  126. package/coverage/lcov-report/src/api/routes/public/rows.ts.html +12 -12
  127. package/coverage/lcov-report/src/api/routes/public/tables.ts.html +12 -12
  128. package/coverage/lcov-report/src/api/routes/public/tests/compare.spec.js.html +583 -0
  129. package/coverage/lcov-report/src/api/routes/public/tests/index.html +42 -12
  130. package/coverage/lcov-report/src/api/routes/public/tests/users.spec.js.html +199 -0
  131. package/coverage/lcov-report/src/api/routes/public/tests/utils.ts.html +78 -27
  132. package/coverage/lcov-report/src/api/routes/public/users.ts.html +12 -12
  133. package/coverage/lcov-report/src/api/routes/public/utils/Endpoint.ts.html +19 -19
  134. package/coverage/lcov-report/src/api/routes/public/utils/index.html +1 -1
  135. package/coverage/lcov-report/src/api/routes/query.ts.html +11 -11
  136. package/coverage/lcov-report/src/api/routes/role.ts.html +9 -9
  137. package/coverage/lcov-report/src/api/routes/routing.ts.html +8 -8
  138. package/coverage/lcov-report/src/api/routes/row.ts.html +11 -11
  139. package/coverage/lcov-report/src/api/routes/screen.ts.html +9 -9
  140. package/coverage/lcov-report/src/api/routes/script.ts.html +1 -1
  141. package/coverage/lcov-report/src/api/routes/static.ts.html +14 -14
  142. package/coverage/lcov-report/src/api/routes/table.ts.html +11 -11
  143. package/coverage/lcov-report/src/api/routes/templates.ts.html +8 -8
  144. package/coverage/lcov-report/src/api/routes/tests/analytics.spec.js.html +271 -0
  145. package/coverage/lcov-report/src/api/routes/tests/apikeys.spec.js.html +259 -0
  146. package/coverage/lcov-report/src/api/routes/tests/application.spec.ts.html +1066 -0
  147. package/coverage/lcov-report/src/api/routes/tests/auth.spec.js.html +154 -0
  148. package/coverage/lcov-report/src/api/routes/tests/automation.spec.js.html +1123 -0
  149. package/coverage/lcov-report/src/api/routes/tests/backup.spec.ts.html +223 -0
  150. package/coverage/lcov-report/src/api/routes/tests/cloud.seq.spec.ts.html +268 -0
  151. package/coverage/lcov-report/src/api/routes/tests/component.spec.js.html +178 -0
  152. package/coverage/lcov-report/src/api/routes/tests/datasource.spec.ts.html +799 -0
  153. package/coverage/lcov-report/src/api/routes/tests/dev.spec.js.html +202 -0
  154. package/coverage/lcov-report/src/api/routes/tests/environmentVariables.spec.ts.html +517 -0
  155. package/coverage/lcov-report/src/api/routes/tests/index.html +536 -0
  156. package/coverage/lcov-report/src/api/routes/tests/integration.spec.js.html +238 -0
  157. package/coverage/lcov-report/src/api/routes/tests/internalSearch.spec.js.html +670 -0
  158. package/coverage/lcov-report/src/api/routes/tests/layout.spec.js.html +259 -0
  159. package/coverage/lcov-report/src/api/routes/tests/metadata.spec.js.html +280 -0
  160. package/coverage/lcov-report/src/api/routes/tests/misc.spec.js.html +358 -0
  161. package/coverage/lcov-report/src/api/routes/tests/permissions.spec.js.html +484 -0
  162. package/coverage/lcov-report/src/api/routes/tests/plugin.spec.ts.html +622 -0
  163. package/coverage/lcov-report/src/api/routes/tests/query.seq.spec.js.html +1699 -0
  164. package/coverage/lcov-report/src/api/routes/tests/role.spec.js.html +478 -0
  165. package/coverage/lcov-report/src/api/routes/tests/routing.spec.js.html +430 -0
  166. package/coverage/lcov-report/src/api/routes/tests/row.spec.js.html +1804 -0
  167. package/coverage/lcov-report/src/api/routes/tests/screen.spec.js.html +391 -0
  168. package/coverage/lcov-report/src/api/routes/tests/static.spec.js.html +541 -0
  169. package/coverage/lcov-report/src/api/routes/tests/table.spec.js.html +991 -0
  170. package/coverage/lcov-report/src/api/routes/tests/templates.spec.js.html +154 -0
  171. package/coverage/lcov-report/src/api/routes/tests/user.spec.js.html +679 -0
  172. package/coverage/lcov-report/src/api/routes/tests/utilities/TestFunctions.ts.html +110 -41
  173. package/coverage/lcov-report/src/api/routes/tests/utilities/index.html +19 -19
  174. package/coverage/lcov-report/src/api/routes/tests/utilities/index.ts.html +29 -23
  175. package/coverage/lcov-report/src/api/routes/tests/view.spec.js.html +1342 -0
  176. package/coverage/lcov-report/src/api/routes/tests/webhook.spec.js.html +484 -0
  177. package/coverage/lcov-report/src/api/routes/user.ts.html +9 -9
  178. package/coverage/lcov-report/src/api/routes/utils/index.html +1 -1
  179. package/coverage/lcov-report/src/api/routes/utils/validators.ts.html +42 -42
  180. package/coverage/lcov-report/src/api/routes/view.ts.html +10 -10
  181. package/coverage/lcov-report/src/api/routes/webhook.ts.html +10 -10
  182. package/coverage/lcov-report/src/app.ts.html +59 -44
  183. package/coverage/lcov-report/src/automations/actions.ts.html +24 -24
  184. package/coverage/lcov-report/src/automations/automationUtils.ts.html +4 -4
  185. package/coverage/lcov-report/src/automations/bullboard.ts.html +9 -9
  186. package/coverage/lcov-report/src/automations/index.html +27 -27
  187. package/coverage/lcov-report/src/automations/index.ts.html +5 -5
  188. package/coverage/lcov-report/src/automations/logging/index.html +1 -1
  189. package/coverage/lcov-report/src/automations/logging/index.ts.html +10 -10
  190. package/coverage/lcov-report/src/automations/steps/bash.ts.html +8 -8
  191. package/coverage/lcov-report/src/automations/steps/createRow.ts.html +7 -7
  192. package/coverage/lcov-report/src/automations/steps/delay.ts.html +5 -5
  193. package/coverage/lcov-report/src/automations/steps/deleteRow.ts.html +7 -7
  194. package/coverage/lcov-report/src/automations/steps/discord.ts.html +8 -8
  195. package/coverage/lcov-report/src/automations/steps/executeQuery.ts.html +7 -7
  196. package/coverage/lcov-report/src/automations/steps/executeScript.ts.html +7 -7
  197. package/coverage/lcov-report/src/automations/steps/filter.ts.html +6 -6
  198. package/coverage/lcov-report/src/automations/steps/index.html +1 -1
  199. package/coverage/lcov-report/src/automations/steps/integromat.ts.html +6 -6
  200. package/coverage/lcov-report/src/automations/steps/loop.ts.html +3 -3
  201. package/coverage/lcov-report/src/automations/steps/outgoingWebhook.ts.html +9 -9
  202. package/coverage/lcov-report/src/automations/steps/queryRows.ts.html +13 -13
  203. package/coverage/lcov-report/src/automations/steps/sendSmtpEmail.ts.html +6 -6
  204. package/coverage/lcov-report/src/automations/steps/serverLog.ts.html +4 -4
  205. package/coverage/lcov-report/src/automations/steps/slack.ts.html +6 -6
  206. package/coverage/lcov-report/src/automations/steps/updateRow.ts.html +7 -7
  207. package/coverage/lcov-report/src/automations/steps/utils.ts.html +1 -1
  208. package/coverage/lcov-report/src/automations/steps/zapier.ts.html +6 -6
  209. package/coverage/lcov-report/src/automations/tests/automation.spec.js.html +337 -0
  210. package/coverage/lcov-report/src/automations/tests/bash.spec.js.html +187 -0
  211. package/coverage/lcov-report/src/automations/tests/createRow.spec.ts.html +223 -0
  212. package/coverage/lcov-report/src/automations/tests/delay.spec.js.html +133 -0
  213. package/coverage/lcov-report/src/automations/tests/deleteRow.spec.ts.html +250 -0
  214. package/coverage/lcov-report/src/automations/tests/discord.spec.js.html +166 -0
  215. package/coverage/lcov-report/src/automations/tests/executeQuery.spec.js.html +229 -0
  216. package/coverage/lcov-report/src/automations/tests/executeScript.spec.js.html +229 -0
  217. package/coverage/lcov-report/src/automations/tests/filter.spec.js.html +232 -0
  218. package/coverage/lcov-report/src/automations/tests/index.html +341 -0
  219. package/coverage/lcov-report/src/automations/tests/loop.spec.ts.html +220 -0
  220. package/coverage/lcov-report/src/automations/tests/outgoingWebhook.spec.js.html +202 -0
  221. package/coverage/lcov-report/src/automations/tests/queryRows.spec.js.html +436 -0
  222. package/coverage/lcov-report/src/automations/tests/sendSmtpEmail.spec.js.html +298 -0
  223. package/coverage/lcov-report/src/automations/tests/serverLog.spec.js.html +151 -0
  224. package/coverage/lcov-report/src/automations/tests/updateRow.spec.js.html +217 -0
  225. package/coverage/lcov-report/src/automations/tests/utilities/index.html +1 -1
  226. package/coverage/lcov-report/src/automations/tests/utilities/index.ts.html +1 -1
  227. package/coverage/lcov-report/src/automations/tests/zapier.spec.js.html +166 -0
  228. package/coverage/lcov-report/src/automations/triggerInfo/app.ts.html +3 -3
  229. package/coverage/lcov-report/src/automations/triggerInfo/cron.ts.html +3 -3
  230. package/coverage/lcov-report/src/automations/triggerInfo/index.html +1 -1
  231. package/coverage/lcov-report/src/automations/triggerInfo/index.ts.html +8 -8
  232. package/coverage/lcov-report/src/automations/triggerInfo/rowDeleted.ts.html +3 -3
  233. package/coverage/lcov-report/src/automations/triggerInfo/rowSaved.ts.html +3 -3
  234. package/coverage/lcov-report/src/automations/triggerInfo/rowUpdated.ts.html +3 -3
  235. package/coverage/lcov-report/src/automations/triggerInfo/webhook.ts.html +3 -3
  236. package/coverage/lcov-report/src/automations/triggers.ts.html +44 -44
  237. package/coverage/lcov-report/src/automations/unitTests/automationUtils.spec.ts.html +280 -0
  238. package/coverage/lcov-report/src/automations/unitTests/index.html +116 -0
  239. package/coverage/lcov-report/src/automations/utils.ts.html +63 -63
  240. package/coverage/lcov-report/src/constants/index.html +16 -16
  241. package/coverage/lcov-report/src/constants/index.ts.html +33 -99
  242. package/coverage/lcov-report/src/constants/layouts.ts.html +4 -4
  243. package/coverage/lcov-report/src/constants/screens.ts.html +5 -5
  244. package/coverage/lcov-report/src/db/defaultData/datasource_bb_default.ts.html +33 -45
  245. package/coverage/lcov-report/src/db/defaultData/employeeImport.ts.html +2 -2
  246. package/coverage/lcov-report/src/db/defaultData/expensesImport.ts.html +2 -2
  247. package/coverage/lcov-report/src/db/defaultData/index.html +11 -11
  248. package/coverage/lcov-report/src/db/defaultData/inventoryImport.ts.html +2 -2
  249. package/coverage/lcov-report/src/db/defaultData/jobsImport.ts.html +2 -2
  250. package/coverage/lcov-report/src/db/dynamoClient.ts.html +15 -15
  251. package/coverage/lcov-report/src/db/inMemoryView.ts.html +4 -4
  252. package/coverage/lcov-report/src/db/index.html +16 -16
  253. package/coverage/lcov-report/src/db/index.ts.html +19 -19
  254. package/coverage/lcov-report/src/db/linkedRows/LinkController.ts.html +26 -23
  255. package/coverage/lcov-report/src/db/linkedRows/LinkDocument.ts.html +4 -4
  256. package/coverage/lcov-report/src/db/linkedRows/index.html +10 -10
  257. package/coverage/lcov-report/src/db/linkedRows/index.ts.html +23 -23
  258. package/coverage/lcov-report/src/db/linkedRows/linkUtils.ts.html +10 -10
  259. package/coverage/lcov-report/src/db/newid.ts.html +4 -4
  260. package/coverage/lcov-report/src/db/tests/index.html +131 -0
  261. package/coverage/lcov-report/src/db/tests/linkController.spec.js.html +793 -0
  262. package/coverage/lcov-report/src/db/tests/linkTests.spec.js.html +277 -0
  263. package/coverage/lcov-report/src/db/utils.ts.html +52 -52
  264. package/coverage/lcov-report/src/definitions/automations.ts.html +2 -2
  265. package/coverage/lcov-report/src/definitions/index.html +1 -1
  266. package/coverage/lcov-report/src/environment.ts.html +34 -31
  267. package/coverage/lcov-report/src/events/AutomationEmitter.ts.html +6 -6
  268. package/coverage/lcov-report/src/events/BudibaseEmitter.ts.html +6 -6
  269. package/coverage/lcov-report/src/events/index.html +1 -1
  270. package/coverage/lcov-report/src/events/index.ts.html +4 -4
  271. package/coverage/lcov-report/src/events/utils.ts.html +10 -10
  272. package/coverage/lcov-report/src/index.html +23 -23
  273. package/coverage/lcov-report/src/index.ts.html +1 -1
  274. package/coverage/lcov-report/src/integration-test/index.html +116 -0
  275. package/coverage/lcov-report/src/integration-test/postgres.spec.ts.html +2341 -0
  276. package/coverage/lcov-report/src/integrations/airtable.ts.html +5 -5
  277. package/coverage/lcov-report/src/integrations/arangodb.ts.html +5 -5
  278. package/coverage/lcov-report/src/integrations/base/index.html +30 -30
  279. package/coverage/lcov-report/src/integrations/base/query.ts.html +9 -9
  280. package/coverage/lcov-report/src/integrations/base/sql.ts.html +217 -187
  281. package/coverage/lcov-report/src/integrations/base/sqlTable.ts.html +107 -107
  282. package/coverage/lcov-report/src/integrations/base/utils.ts.html +5 -5
  283. package/coverage/lcov-report/src/integrations/couchdb.ts.html +5 -5
  284. package/coverage/lcov-report/src/integrations/dynamodb.ts.html +6 -6
  285. package/coverage/lcov-report/src/integrations/elasticsearch.ts.html +5 -5
  286. package/coverage/lcov-report/src/integrations/firebase.ts.html +5 -5
  287. package/coverage/lcov-report/src/integrations/googlesheets.ts.html +11 -11
  288. package/coverage/lcov-report/src/integrations/index.html +27 -27
  289. package/coverage/lcov-report/src/integrations/index.ts.html +40 -40
  290. package/coverage/lcov-report/src/integrations/microsoftSqlServer.ts.html +8 -8
  291. package/coverage/lcov-report/src/integrations/mongodb.ts.html +11 -11
  292. package/coverage/lcov-report/src/integrations/mysql.ts.html +10 -10
  293. package/coverage/lcov-report/src/integrations/oracle.ts.html +14 -14
  294. package/coverage/lcov-report/src/integrations/postgres.ts.html +68 -68
  295. package/coverage/lcov-report/src/integrations/queries/index.html +1 -1
  296. package/coverage/lcov-report/src/integrations/queries/sql.ts.html +8 -8
  297. package/coverage/lcov-report/src/integrations/redis.ts.html +5 -5
  298. package/coverage/lcov-report/src/integrations/rest.ts.html +15 -15
  299. package/coverage/lcov-report/src/integrations/s3.ts.html +6 -6
  300. package/coverage/lcov-report/src/integrations/snowflake.ts.html +5 -5
  301. package/coverage/lcov-report/src/integrations/tests/TestConfiguration.js.html +1 -1
  302. package/coverage/lcov-report/src/integrations/tests/airtable.spec.ts.html +310 -0
  303. package/coverage/lcov-report/src/integrations/tests/arangodb.spec.ts.html +199 -0
  304. package/coverage/lcov-report/src/integrations/tests/couchdb.spec.ts.html +349 -0
  305. package/coverage/lcov-report/src/integrations/tests/dynamodb.spec.ts.html +550 -0
  306. package/coverage/lcov-report/src/integrations/tests/elasticsearch.spec.ts.html +331 -0
  307. package/coverage/lcov-report/src/integrations/tests/firebase.spec.ts.html +376 -0
  308. package/coverage/lcov-report/src/integrations/tests/index.html +230 -5
  309. package/coverage/lcov-report/src/integrations/tests/microsoftSqlServer.spec.ts.html +253 -0
  310. package/coverage/lcov-report/src/integrations/tests/mongo.spec.ts.html +1087 -0
  311. package/coverage/lcov-report/src/integrations/tests/mysql.spec.ts.html +484 -0
  312. package/coverage/lcov-report/src/integrations/tests/oracle.spec.ts.html +373 -0
  313. package/coverage/lcov-report/src/integrations/tests/postgres.spec.ts.html +328 -0
  314. package/coverage/lcov-report/src/integrations/tests/redis.spec.ts.html +337 -0
  315. package/coverage/lcov-report/src/integrations/tests/rest.spec.ts.html +1870 -0
  316. package/coverage/lcov-report/src/integrations/tests/s3.spec.ts.html +421 -0
  317. package/coverage/lcov-report/src/integrations/tests/sql.spec.ts.html +1753 -0
  318. package/coverage/lcov-report/src/integrations/utils.ts.html +77 -77
  319. package/coverage/lcov-report/src/middleware/appInfo.ts.html +5 -5
  320. package/coverage/lcov-report/src/middleware/authorized.ts.html +29 -29
  321. package/coverage/lcov-report/src/middleware/builder.ts.html +17 -17
  322. package/coverage/lcov-report/src/middleware/currentapp.ts.html +53 -53
  323. package/coverage/lcov-report/src/middleware/index.html +15 -15
  324. package/coverage/lcov-report/src/middleware/joi-validator.ts.html +1 -1
  325. package/coverage/lcov-report/src/middleware/publicApi.ts.html +4 -4
  326. package/coverage/lcov-report/src/middleware/resourceId.ts.html +28 -28
  327. package/coverage/lcov-report/src/middleware/selfhost.ts.html +1 -1
  328. package/coverage/lcov-report/src/middleware/tests/authorized.spec.js.html +574 -0
  329. package/coverage/lcov-report/src/middleware/tests/currentapp.spec.js.html +814 -0
  330. package/coverage/lcov-report/src/middleware/tests/index.html +161 -0
  331. package/coverage/lcov-report/src/middleware/tests/resourceId.spec.js.html +397 -0
  332. package/coverage/lcov-report/src/middleware/tests/selfhost.spec.js.html +214 -0
  333. package/coverage/lcov-report/src/middleware/utils.ts.html +4 -4
  334. package/coverage/lcov-report/src/migrations/functions/appUrls.ts.html +4 -4
  335. package/coverage/lcov-report/src/migrations/functions/backfill/app/automations.ts.html +5 -5
  336. package/coverage/lcov-report/src/migrations/functions/backfill/app/datasources.ts.html +5 -5
  337. package/coverage/lcov-report/src/migrations/functions/backfill/app/index.html +1 -1
  338. package/coverage/lcov-report/src/migrations/functions/backfill/app/layouts.ts.html +5 -5
  339. package/coverage/lcov-report/src/migrations/functions/backfill/app/queries.ts.html +7 -7
  340. package/coverage/lcov-report/src/migrations/functions/backfill/app/roles.ts.html +5 -5
  341. package/coverage/lcov-report/src/migrations/functions/backfill/app/screens.ts.html +5 -5
  342. package/coverage/lcov-report/src/migrations/functions/backfill/app/tables.ts.html +4 -4
  343. package/coverage/lcov-report/src/migrations/functions/backfill/app.ts.html +19 -19
  344. package/coverage/lcov-report/src/migrations/functions/backfill/global/configs.ts.html +6 -6
  345. package/coverage/lcov-report/src/migrations/functions/backfill/global/index.html +1 -1
  346. package/coverage/lcov-report/src/migrations/functions/backfill/global/quotas.ts.html +7 -7
  347. package/coverage/lcov-report/src/migrations/functions/backfill/global/users.ts.html +6 -6
  348. package/coverage/lcov-report/src/migrations/functions/backfill/global.ts.html +15 -15
  349. package/coverage/lcov-report/src/migrations/functions/backfill/index.html +1 -1
  350. package/coverage/lcov-report/src/migrations/functions/backfill/index.ts.html +5 -5
  351. package/coverage/lcov-report/src/migrations/functions/backfill/installation.ts.html +8 -8
  352. package/coverage/lcov-report/src/migrations/functions/index.html +1 -1
  353. package/coverage/lcov-report/src/migrations/functions/syncQuotas.ts.html +6 -6
  354. package/coverage/lcov-report/src/migrations/functions/tableSettings.ts.html +6 -6
  355. package/coverage/lcov-report/src/migrations/functions/tests/appUrls.spec.js.html +163 -0
  356. package/coverage/lcov-report/src/migrations/functions/tests/index.html +161 -0
  357. package/coverage/lcov-report/src/migrations/functions/tests/syncQuotas.spec.js.html +163 -0
  358. package/coverage/lcov-report/src/migrations/functions/tests/tableSettings.spec.ts.html +517 -0
  359. package/coverage/lcov-report/src/migrations/functions/tests/userEmailViewCasing.spec.js.html +190 -0
  360. package/coverage/lcov-report/src/migrations/functions/usageQuotas/index.html +1 -1
  361. package/coverage/lcov-report/src/migrations/functions/usageQuotas/index.ts.html +2 -2
  362. package/coverage/lcov-report/src/migrations/functions/usageQuotas/syncApps.ts.html +5 -5
  363. package/coverage/lcov-report/src/migrations/functions/usageQuotas/syncPlugins.ts.html +4 -4
  364. package/coverage/lcov-report/src/migrations/functions/usageQuotas/syncRows.ts.html +6 -6
  365. package/coverage/lcov-report/src/migrations/functions/usageQuotas/tests/index.html +131 -0
  366. package/coverage/lcov-report/src/migrations/functions/usageQuotas/tests/syncApps.spec.ts.html +190 -0
  367. package/coverage/lcov-report/src/migrations/functions/usageQuotas/tests/syncRows.spec.ts.html +244 -0
  368. package/coverage/lcov-report/src/migrations/functions/userEmailViewCasing.ts.html +3 -3
  369. package/coverage/lcov-report/src/migrations/index.html +1 -1
  370. package/coverage/lcov-report/src/migrations/index.ts.html +32 -32
  371. package/coverage/lcov-report/src/migrations/tests/helpers.ts.html +1 -1
  372. package/coverage/lcov-report/src/migrations/tests/index.html +23 -8
  373. package/coverage/lcov-report/src/migrations/tests/index.spec.ts.html +511 -0
  374. package/coverage/lcov-report/src/migrations/tests/structures.ts.html +1 -1
  375. package/coverage/lcov-report/src/sdk/app/applications/index.html +1 -1
  376. package/coverage/lcov-report/src/sdk/app/applications/index.ts.html +4 -4
  377. package/coverage/lcov-report/src/sdk/app/applications/sync.ts.html +22 -22
  378. package/coverage/lcov-report/src/sdk/app/applications/utils.ts.html +9 -9
  379. package/coverage/lcov-report/src/sdk/app/automations/index.html +1 -1
  380. package/coverage/lcov-report/src/sdk/app/automations/index.ts.html +3 -3
  381. package/coverage/lcov-report/src/sdk/app/automations/webhook.ts.html +10 -10
  382. package/coverage/lcov-report/src/sdk/app/backups/constants.ts.html +3 -3
  383. package/coverage/lcov-report/src/sdk/app/backups/exports.ts.html +41 -23
  384. package/coverage/lcov-report/src/sdk/app/backups/imports.ts.html +18 -18
  385. package/coverage/lcov-report/src/sdk/app/backups/index.html +10 -10
  386. package/coverage/lcov-report/src/sdk/app/backups/index.ts.html +5 -5
  387. package/coverage/lcov-report/src/sdk/app/backups/statistics.ts.html +7 -7
  388. package/coverage/lcov-report/src/sdk/app/datasources/datasources.ts.html +69 -60
  389. package/coverage/lcov-report/src/sdk/app/datasources/index.html +19 -19
  390. package/coverage/lcov-report/src/sdk/app/datasources/index.ts.html +3 -3
  391. package/coverage/lcov-report/src/sdk/app/queries/index.html +1 -1
  392. package/coverage/lcov-report/src/sdk/app/queries/index.ts.html +3 -3
  393. package/coverage/lcov-report/src/sdk/app/queries/queries.ts.html +11 -11
  394. package/coverage/lcov-report/src/sdk/app/rows/attachments.ts.html +6 -6
  395. package/coverage/lcov-report/src/sdk/app/rows/index.html +1 -1
  396. package/coverage/lcov-report/src/sdk/app/rows/index.ts.html +4 -4
  397. package/coverage/lcov-report/src/sdk/app/rows/rows.ts.html +4 -4
  398. package/coverage/lcov-report/src/sdk/app/tables/index.html +1 -1
  399. package/coverage/lcov-report/src/sdk/app/tables/index.ts.html +10 -10
  400. package/coverage/lcov-report/src/sdk/index.html +1 -1
  401. package/coverage/lcov-report/src/sdk/index.ts.html +11 -11
  402. package/coverage/lcov-report/src/sdk/tests/attachments.spec.ts.html +313 -0
  403. package/coverage/lcov-report/src/sdk/tests/index.html +116 -0
  404. package/coverage/lcov-report/src/sdk/users/index.html +1 -1
  405. package/coverage/lcov-report/src/sdk/users/index.ts.html +3 -3
  406. package/coverage/lcov-report/src/sdk/users/utils.ts.html +31 -31
  407. package/coverage/lcov-report/src/sdk/utils/index.html +1 -1
  408. package/coverage/lcov-report/src/sdk/utils/index.ts.html +11 -11
  409. package/coverage/lcov-report/src/startup.ts.html +42 -42
  410. package/coverage/lcov-report/src/tests/utilities/TestConfiguration.ts.html +421 -193
  411. package/coverage/lcov-report/src/tests/utilities/controllers.ts.html +15 -15
  412. package/coverage/lcov-report/src/tests/utilities/index.html +28 -28
  413. package/coverage/lcov-report/src/tests/utilities/index.ts.html +1 -1
  414. package/coverage/lcov-report/src/tests/utilities/structures.ts.html +77 -35
  415. package/coverage/lcov-report/src/threads/automation.ts.html +22 -22
  416. package/coverage/lcov-report/src/threads/index.html +1 -1
  417. package/coverage/lcov-report/src/threads/index.ts.html +24 -24
  418. package/coverage/lcov-report/src/threads/query.ts.html +76 -76
  419. package/coverage/lcov-report/src/threads/utils.ts.html +12 -12
  420. package/coverage/lcov-report/src/utilities/budibaseDir.ts.html +3 -3
  421. package/coverage/lcov-report/src/utilities/centralPath.ts.html +2 -2
  422. package/coverage/lcov-report/src/utilities/fileSystem/app.ts.html +17 -17
  423. package/coverage/lcov-report/src/utilities/fileSystem/clientLibrary.ts.html +8 -8
  424. package/coverage/lcov-report/src/utilities/fileSystem/filesystem.ts.html +25 -25
  425. package/coverage/lcov-report/src/utilities/fileSystem/index.html +1 -1
  426. package/coverage/lcov-report/src/utilities/fileSystem/index.ts.html +6 -6
  427. package/coverage/lcov-report/src/utilities/fileSystem/plugin.ts.html +8 -8
  428. package/coverage/lcov-report/src/utilities/fileSystem/processor.ts.html +1 -1
  429. package/coverage/lcov-report/src/utilities/fileSystem/template.ts.html +7 -7
  430. package/coverage/lcov-report/src/utilities/global.ts.html +40 -40
  431. package/coverage/lcov-report/src/utilities/index.html +34 -19
  432. package/coverage/lcov-report/src/utilities/index.ts.html +26 -26
  433. package/coverage/lcov-report/src/utilities/redis.ts.html +12 -12
  434. package/coverage/lcov-report/src/utilities/retry.ts.html +139 -0
  435. package/coverage/lcov-report/src/utilities/routing/index.html +1 -1
  436. package/coverage/lcov-report/src/utilities/routing/index.ts.html +4 -4
  437. package/coverage/lcov-report/src/utilities/rowProcessor/index.html +19 -19
  438. package/coverage/lcov-report/src/utilities/rowProcessor/index.ts.html +49 -49
  439. package/coverage/lcov-report/src/utilities/rowProcessor/map.ts.html +3 -3
  440. package/coverage/lcov-report/src/utilities/rowProcessor/tests/index.html +116 -0
  441. package/coverage/lcov-report/src/utilities/rowProcessor/tests/utils.spec.ts.html +256 -0
  442. package/coverage/lcov-report/src/utilities/rowProcessor/utils.ts.html +38 -38
  443. package/coverage/lcov-report/src/utilities/schema.ts.html +3 -3
  444. package/coverage/lcov-report/src/utilities/scriptRunner.ts.html +5 -5
  445. package/coverage/lcov-report/src/utilities/security.ts.html +22 -22
  446. package/coverage/lcov-report/src/utilities/usageQuota/index.html +1 -1
  447. package/coverage/lcov-report/src/utilities/usageQuota/rows.ts.html +35 -35
  448. package/coverage/lcov-report/src/utilities/usageQuota/usageQuoteReset.ts.html +1 -1
  449. package/coverage/lcov-report/src/utilities/users.ts.html +4 -4
  450. package/coverage/lcov-report/src/utilities/workerRequests.ts.html +15 -15
  451. package/coverage/lcov-report/src/watch.ts.html +7 -7
  452. package/coverage/lcov-report/src/websocket.ts.html +5 -5
  453. package/coverage/lcov.info +20061 -12327
  454. package/dist/api/controllers/query/index.js +2 -0
  455. package/dist/api/controllers/row/ExternalRequest.js +4 -2
  456. package/dist/api/controllers/row/external.js +12 -1
  457. package/dist/api/controllers/table/external.js +8 -8
  458. package/dist/api/routes/public/tests/utils.js +29 -2
  459. package/dist/api/routes/tests/utilities/index.js +131 -0
  460. package/dist/app.js +8 -4
  461. package/dist/constants/index.js +4 -24
  462. package/dist/db/defaultData/datasource_bb_default.js +6 -5
  463. package/dist/db/linkedRows/LinkController.js +9 -8
  464. package/dist/environment.js +1 -0
  465. package/dist/integrations/base/sql.js +10 -3
  466. package/dist/package.json +8 -6
  467. package/dist/sdk/app/backups/exports.js +8 -2
  468. package/dist/sdk/app/datasources/datasources.js +3 -0
  469. package/dist/tests/utilities/TestConfiguration.js +626 -0
  470. package/dist/tests/utilities/controllers.js +40 -0
  471. package/dist/tests/utilities/structures.js +234 -0
  472. package/dist/tsconfig.build.tsbuildinfo +1 -1
  473. package/dist/utilities/retry.js +30 -0
  474. package/jest-testcontainers-config.js +8 -0
  475. package/jest.config.ts +28 -11
  476. package/package.json +9 -7
  477. package/scripts/integrations/postgres/emp-territory.sql +32 -0
  478. package/scripts/load/create-many-apps.js +24 -0
  479. package/scripts/load/create-many-rows.js +30 -0
  480. package/scripts/load/utils.js +66 -0
  481. package/specs/openapi.json +6 -6
  482. package/specs/openapi.yaml +3 -3
  483. package/src/api/controllers/query/import/tests/index.spec.js +1 -1
  484. package/src/api/controllers/query/index.ts +2 -0
  485. package/src/api/controllers/row/ExternalRequest.ts +6 -2
  486. package/src/api/controllers/row/external.ts +13 -1
  487. package/src/api/controllers/table/external.ts +3 -2
  488. package/src/api/routes/public/applications.ts +0 -1
  489. package/src/api/routes/public/tests/compare.spec.js +1 -1
  490. package/src/api/routes/public/tests/users.spec.js +1 -1
  491. package/src/api/routes/public/tests/utils.ts +25 -8
  492. package/src/api/routes/tests/__snapshots__/datasource.spec.ts.snap +1 -1
  493. package/src/api/routes/tests/analytics.spec.js +4 -1
  494. package/src/api/routes/tests/apikeys.spec.js +1 -1
  495. package/src/api/routes/tests/application.spec.ts +20 -6
  496. package/src/api/routes/tests/auth.spec.js +2 -2
  497. package/src/api/routes/tests/automation.spec.js +6 -2
  498. package/src/api/routes/tests/backup.spec.ts +4 -13
  499. package/src/api/routes/tests/{cloud.spec.ts → cloud.seq.spec.ts} +11 -15
  500. package/src/api/routes/tests/component.spec.js +1 -1
  501. package/src/api/routes/tests/datasource.spec.ts +20 -3
  502. package/src/api/routes/tests/dev.spec.js +1 -1
  503. package/src/api/routes/tests/environmentVariables.spec.ts +144 -0
  504. package/src/api/routes/tests/integration.spec.js +1 -1
  505. package/src/api/routes/tests/layout.spec.js +1 -1
  506. package/src/api/routes/tests/metadata.spec.js +1 -1
  507. package/src/api/routes/tests/misc.spec.js +1 -1
  508. package/src/api/routes/tests/permissions.spec.js +4 -1
  509. package/src/api/routes/tests/{query.spec.js → query.seq.spec.js} +22 -1
  510. package/src/api/routes/tests/role.spec.js +6 -1
  511. package/src/api/routes/tests/routing.spec.js +1 -1
  512. package/src/api/routes/tests/row.spec.js +11 -3
  513. package/src/api/routes/tests/screen.spec.js +1 -1
  514. package/src/api/routes/tests/static.spec.js +2 -1
  515. package/src/api/routes/tests/table.spec.js +1 -1
  516. package/src/api/routes/tests/templates.spec.js +1 -1
  517. package/src/api/routes/tests/user.spec.js +12 -12
  518. package/src/api/routes/tests/utilities/TestFunctions.ts +25 -2
  519. package/src/api/routes/tests/utilities/index.ts +5 -3
  520. package/src/api/routes/tests/view.spec.js +4 -1
  521. package/src/api/routes/tests/webhook.spec.js +11 -2
  522. package/src/app.ts +9 -4
  523. package/src/automations/tests/automation.spec.js +4 -4
  524. package/src/automations/tests/bash.spec.js +1 -1
  525. package/src/automations/tests/discord.spec.js +1 -1
  526. package/src/automations/tests/executeQuery.spec.js +2 -3
  527. package/src/automations/tests/executeScript.spec.js +1 -1
  528. package/src/automations/tests/outgoingWebhook.spec.js +1 -1
  529. package/src/automations/tests/sendSmtpEmail.spec.js +1 -1
  530. package/src/automations/tests/serverLog.spec.js +1 -1
  531. package/src/automations/tests/updateRow.spec.js +1 -1
  532. package/src/automations/tests/zapier.spec.js +1 -1
  533. package/src/constants/index.ts +1 -23
  534. package/src/db/defaultData/datasource_bb_default.ts +6 -10
  535. package/src/db/linkedRows/LinkController.ts +2 -1
  536. package/src/db/tests/linkController.spec.js +4 -1
  537. package/src/db/tests/linkTests.spec.js +1 -1
  538. package/src/environment.ts +1 -0
  539. package/src/integration-test/postgres.spec.ts +752 -0
  540. package/src/integrations/base/sql.ts +15 -5
  541. package/src/integrations/oracle.ts +1 -1
  542. package/src/migrations/functions/tests/appUrls.spec.js +1 -1
  543. package/src/migrations/functions/tests/syncQuotas.spec.js +1 -1
  544. package/src/migrations/functions/tests/userEmailViewCasing.spec.js +1 -1
  545. package/src/migrations/tests/index.spec.ts +13 -20
  546. package/src/sdk/app/backups/exports.ts +8 -2
  547. package/src/sdk/app/datasources/datasources.ts +3 -0
  548. package/src/tests/jestEnv.ts +2 -6
  549. package/src/tests/jestSetup.ts +8 -7
  550. package/src/tests/utilities/TestConfiguration.ts +126 -50
  551. package/src/tests/utilities/structures.ts +16 -2
  552. package/src/utilities/retry.ts +18 -0
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">92% </span>
26
+ <span class="strong">91.76% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>69/75</span>
28
+ <span class='fraction'>78/85</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">86.66% </span>
33
+ <span class="strong">68.75% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>13/15</span>
35
+ <span class='fraction'>11/16</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">87.5% </span>
40
+ <span class="strong">89.28% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>21/24</span>
42
+ <span class='fraction'>25/28</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">93.44% </span>
47
+ <span class="strong">92.64% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>57/61</span>
49
+ <span class='fraction'>63/68</span>
50
50
  </div>
51
51
 
52
52
 
@@ -218,13 +218,37 @@
218
218
  <a name='L153'></a><a href='#L153'>153</a>
219
219
  <a name='L154'></a><a href='#L154'>154</a>
220
220
  <a name='L155'></a><a href='#L155'>155</a>
221
- <a name='L156'></a><a href='#L156'>156</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">15x</span>
222
- <span class="cline-any cline-yes">15x</span>
223
- <span class="cline-any cline-yes">15x</span>
224
- <span class="cline-any cline-yes">15x</span>
225
- <span class="cline-any cline-yes">15x</span>
226
- <span class="cline-any cline-yes">15x</span>
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></td><td class="line-coverage quiet"><span class="cline-any cline-yes">16x</span>
245
+ <span class="cline-any cline-yes">16x</span>
246
+ <span class="cline-any cline-yes">16x</span>
247
+ <span class="cline-any cline-yes">16x</span>
248
+ <span class="cline-any cline-yes">16x</span>
249
+ <span class="cline-any cline-yes">16x</span>
227
250
  <span class="cline-any cline-neutral">&nbsp;</span>
251
+ <span class="cline-any cline-yes">16x</span>
228
252
  <span class="cline-any cline-neutral">&nbsp;</span>
229
253
  <span class="cline-any cline-neutral">&nbsp;</span>
230
254
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -232,41 +256,45 @@
232
256
  <span class="cline-any cline-neutral">&nbsp;</span>
233
257
  <span class="cline-any cline-neutral">&nbsp;</span>
234
258
  <span class="cline-any cline-neutral">&nbsp;</span>
235
- <span class="cline-any cline-yes">27x</span>
236
- <span class="cline-any cline-yes">27x</span>
237
- <span class="cline-any cline-yes">27x</span>
238
259
  <span class="cline-any cline-neutral">&nbsp;</span>
260
+ <span class="cline-any cline-yes">5x</span>
261
+ <span class="cline-any cline-yes">5x</span>
262
+ <span class="cline-any cline-yes">5x</span>
239
263
  <span class="cline-any cline-neutral">&nbsp;</span>
240
264
  <span class="cline-any cline-neutral">&nbsp;</span>
241
265
  <span class="cline-any cline-neutral">&nbsp;</span>
242
- <span class="cline-any cline-yes">29x</span>
243
- <span class="cline-any cline-yes">29x</span>
244
266
  <span class="cline-any cline-neutral">&nbsp;</span>
267
+ <span class="cline-any cline-yes">7x</span>
268
+ <span class="cline-any cline-yes">7x</span>
245
269
  <span class="cline-any cline-neutral">&nbsp;</span>
246
270
  <span class="cline-any cline-neutral">&nbsp;</span>
247
- <span class="cline-any cline-yes">15x</span>
271
+ <span class="cline-any cline-neutral">&nbsp;</span>
272
+ <span class="cline-any cline-yes">16x</span>
248
273
  <span class="cline-any cline-yes">1x</span>
249
274
  <span class="cline-any cline-yes">1x</span>
250
275
  <span class="cline-any cline-yes">1x</span>
251
276
  <span class="cline-any cline-neutral">&nbsp;</span>
252
277
  <span class="cline-any cline-neutral">&nbsp;</span>
253
- <span class="cline-any cline-yes">21x</span>
254
- <span class="cline-any cline-yes">21x</span>
255
- <span class="cline-any cline-yes">21x</span>
256
- <span class="cline-any cline-yes">21x</span>
257
- <span class="cline-any cline-yes">21x</span>
258
- <span class="cline-any cline-yes">21x</span>
278
+ <span class="cline-any cline-yes">16x</span>
279
+ <span class="cline-any cline-neutral">&nbsp;</span>
280
+ <span class="cline-any cline-neutral">&nbsp;</span>
281
+ <span class="cline-any cline-neutral">&nbsp;</span>
259
282
  <span class="cline-any cline-yes">1x</span>
283
+ <span class="cline-any cline-yes">1x</span>
284
+ <span class="cline-any cline-yes">1x</span>
285
+ <span class="cline-any cline-yes">1x</span>
286
+ <span class="cline-any cline-yes">1x</span>
287
+ <span class="cline-any cline-no">&nbsp;</span>
260
288
  <span class="cline-any cline-neutral">&nbsp;</span>
261
- <span class="cline-any cline-yes">20x</span>
262
- <span class="cline-any cline-yes">26x</span>
263
- <span class="cline-any cline-yes">26x</span>
264
- <span class="cline-any cline-yes">26x</span>
289
+ <span class="cline-any cline-yes">5x</span>
290
+ <span class="cline-any cline-yes">4x</span>
291
+ <span class="cline-any cline-yes">4x</span>
292
+ <span class="cline-any cline-yes">4x</span>
265
293
  <span class="cline-any cline-neutral">&nbsp;</span>
266
294
  <span class="cline-any cline-neutral">&nbsp;</span>
267
295
  <span class="cline-any cline-neutral">&nbsp;</span>
268
296
  <span class="cline-any cline-neutral">&nbsp;</span>
269
- <span class="cline-any cline-yes">15x</span>
297
+ <span class="cline-any cline-yes">16x</span>
270
298
  <span class="cline-any cline-yes">1x</span>
271
299
  <span class="cline-any cline-yes">1x</span>
272
300
  <span class="cline-any cline-no">&nbsp;</span>
@@ -275,6 +303,24 @@
275
303
  <span class="cline-any cline-neutral">&nbsp;</span>
276
304
  <span class="cline-any cline-neutral">&nbsp;</span>
277
305
  <span class="cline-any cline-neutral">&nbsp;</span>
306
+ <span class="cline-any cline-yes">16x</span>
307
+ <span class="cline-any cline-yes">1x</span>
308
+ <span class="cline-any cline-yes">1x</span>
309
+ <span class="cline-any cline-neutral">&nbsp;</span>
310
+ <span class="cline-any cline-neutral">&nbsp;</span>
311
+ <span class="cline-any cline-neutral">&nbsp;</span>
312
+ <span class="cline-any cline-neutral">&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-neutral">&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-yes">1x</span>
319
+ <span class="cline-any cline-yes">2x</span>
320
+ <span class="cline-any cline-yes">351x</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-neutral">&nbsp;</span>
278
324
  <span class="cline-any cline-yes">29x</span>
279
325
  <span class="cline-any cline-neutral">&nbsp;</span>
280
326
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -292,7 +338,7 @@
292
338
  <span class="cline-any cline-yes">29x</span>
293
339
  <span class="cline-any cline-neutral">&nbsp;</span>
294
340
  <span class="cline-any cline-neutral">&nbsp;</span>
295
- <span class="cline-any cline-yes">15x</span>
341
+ <span class="cline-any cline-yes">16x</span>
296
342
  <span class="cline-any cline-neutral">&nbsp;</span>
297
343
  <span class="cline-any cline-neutral">&nbsp;</span>
298
344
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -309,7 +355,7 @@
309
355
  <span class="cline-any cline-neutral">&nbsp;</span>
310
356
  <span class="cline-any cline-neutral">&nbsp;</span>
311
357
  <span class="cline-any cline-neutral">&nbsp;</span>
312
- <span class="cline-any cline-yes">15x</span>
358
+ <span class="cline-any cline-yes">16x</span>
313
359
  <span class="cline-any cline-neutral">&nbsp;</span>
314
360
  <span class="cline-any cline-neutral">&nbsp;</span>
315
361
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -344,11 +390,11 @@
344
390
  <span class="cline-any cline-neutral">&nbsp;</span>
345
391
  <span class="cline-any cline-neutral">&nbsp;</span>
346
392
  <span class="cline-any cline-neutral">&nbsp;</span>
347
- <span class="cline-any cline-yes">15x</span>
393
+ <span class="cline-any cline-yes">16x</span>
348
394
  <span class="cline-any cline-no">&nbsp;</span>
349
395
  <span class="cline-any cline-neutral">&nbsp;</span>
350
396
  <span class="cline-any cline-neutral">&nbsp;</span>
351
- <span class="cline-any cline-yes">15x</span>
397
+ <span class="cline-any cline-yes">16x</span>
352
398
  <span class="cline-any cline-yes">2x</span>
353
399
  <span class="cline-any cline-yes">2x</span>
354
400
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -364,7 +410,7 @@
364
410
  <span class="cline-any cline-neutral">&nbsp;</span>
365
411
  <span class="cline-any cline-neutral">&nbsp;</span>
366
412
  <span class="cline-any cline-neutral">&nbsp;</span>
367
- <span class="cline-any cline-yes">15x</span>
413
+ <span class="cline-any cline-yes">16x</span>
368
414
  <span class="cline-any cline-yes">2x</span>
369
415
  <span class="cline-any cline-yes">2x</span>
370
416
  <span class="cline-any cline-yes">2x</span>
@@ -379,6 +425,8 @@ import { AppStatus } from "../../../../db/utils"
379
425
  import { roles, tenancy, context } from "@budibase/backend-core"
380
426
  import { TENANT_ID } from "../../../../tests/utilities/structures"
381
427
  import env from "../../../../environment"
428
+ import { db } from "@budibase/backend-core"
429
+ import Nano from "@budibase/nano"
382
430
  &nbsp;
383
431
  class Request {
384
432
  appId: any
@@ -405,15 +453,18 @@ export const getAllTableRows = async (config: any) =&gt; {
405
453
  return req.body
406
454
  }
407
455
  &nbsp;
408
- export const clearAllApps = async (tenantId = TENANT_ID) =&gt; {
456
+ export const clearAllApps = async (
457
+ tenantId = <span class="branch-0 cbranch-no" title="branch not covered" >TENANT_ID,</span>
458
+ exceptions: Array&lt;string&gt; = <span class="branch-0 cbranch-no" title="branch not covered" >[]</span>
459
+ ) =&gt; {
409
460
  await tenancy.doInTenant(tenantId, async () =&gt; {
410
461
  const req: any = { query: { status: AppStatus.DEV }, user: { tenantId } }
411
462
  await appController.fetch(req)
412
463
  const apps = req.body
413
- if (!apps || apps.length &lt;= 0) {
414
- return
464
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (!apps || apps.length &lt;= 0) {
465
+ <span class="cstat-no" title="statement not covered" > return</span>
415
466
  }
416
- for (let app of apps) {
467
+ for (let app of apps.filter((x: any) =&gt; !exceptions.includes(x.appId))) {
417
468
  const { appId } = app
418
469
  const req = new Request(null, { appId })
419
470
  await runRequest(appId, appController.destroy, req)
@@ -430,6 +481,24 @@ export const clearAllAutomations = async (config: any) =&gt; {
430
481
  }
431
482
  }
432
483
  &nbsp;
484
+ export const wipeDb = async () =&gt; {
485
+ const couchInfo = db.getCouchInfo()
486
+ const nano = Nano({
487
+ url: couchInfo.url,
488
+ requestDefaults: {
489
+ headers: {
490
+ Authorization: couchInfo.cookie,
491
+ },
492
+ },
493
+ parseUrl: false,
494
+ })
495
+ let dbs
496
+ do {
497
+ dbs = await nano.db.list()
498
+ await Promise.all(dbs.map(x =&gt; nano.db.destroy(x)))
499
+ } while (dbs.length)
500
+ }
501
+ &nbsp;
433
502
  export const createRequest = (
434
503
  request: any,
435
504
  method: any,
@@ -535,7 +604,7 @@ export const runInProd = async (func: any) =&gt; {
535
604
  <div class='footer quiet pad2 space-top1 center small'>
536
605
  Code coverage generated by
537
606
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
538
- at Mon Feb 13 2023 11:21:28 GMT+0000 (Coordinated Universal Time)
607
+ at Tue Feb 14 2023 18:11:53 GMT+0000 (Coordinated Universal Time)
539
608
  </div>
540
609
  <script src="../../../../../prettify.js"></script>
541
610
  <script>
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">90.59% </span>
26
+ <span class="strong">90.55% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>106/117</span>
28
+ <span class='fraction'>115/127</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">84.21% </span>
33
+ <span class="strong">70% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>16/19</span>
35
+ <span class='fraction'>14/20</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">86.95% </span>
40
+ <span class="strong">88% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>40/46</span>
42
+ <span class='fraction'>44/50</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">91% </span>
47
+ <span class="strong">90.65% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>91/100</span>
49
+ <span class='fraction'>97/107</span>
50
50
  </div>
51
51
 
52
52
 
@@ -80,17 +80,17 @@
80
80
  </thead>
81
81
  <tbody><tr>
82
82
  <td class="file high" data-value="TestFunctions.ts"><a href="TestFunctions.ts.html">TestFunctions.ts</a></td>
83
- <td data-value="92" class="pic high">
84
- <div class="chart"><div class="cover-fill" style="width: 92%"></div><div class="cover-empty" style="width: 8%"></div></div>
83
+ <td data-value="91.76" class="pic high">
84
+ <div class="chart"><div class="cover-fill" style="width: 91%"></div><div class="cover-empty" style="width: 9%"></div></div>
85
85
  </td>
86
- <td data-value="92" class="pct high">92%</td>
87
- <td data-value="75" class="abs high">69/75</td>
88
- <td data-value="86.66" class="pct high">86.66%</td>
89
- <td data-value="15" class="abs high">13/15</td>
90
- <td data-value="87.5" class="pct high">87.5%</td>
91
- <td data-value="24" class="abs high">21/24</td>
92
- <td data-value="93.44" class="pct high">93.44%</td>
93
- <td data-value="61" class="abs high">57/61</td>
86
+ <td data-value="91.76" class="pct high">91.76%</td>
87
+ <td data-value="85" class="abs high">78/85</td>
88
+ <td data-value="68.75" class="pct medium">68.75%</td>
89
+ <td data-value="16" class="abs medium">11/16</td>
90
+ <td data-value="89.28" class="pct high">89.28%</td>
91
+ <td data-value="28" class="abs high">25/28</td>
92
+ <td data-value="92.64" class="pct high">92.64%</td>
93
+ <td data-value="68" class="abs high">63/68</td>
94
94
  </tr>
95
95
 
96
96
  <tr>
@@ -116,7 +116,7 @@
116
116
  <div class='footer quiet pad2 space-top1 center small'>
117
117
  Code coverage generated by
118
118
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
119
- at Mon Feb 13 2023 11:21:28 GMT+0000 (Coordinated Universal Time)
119
+ at Tue Feb 14 2023 18:11:53 GMT+0000 (Coordinated Universal Time)
120
120
  </div>
121
121
  <script src="../../../../../prettify.js"></script>
122
122
  <script>
@@ -157,9 +157,12 @@
157
157
  <a name='L92'></a><a href='#L92'>92</a>
158
158
  <a name='L93'></a><a href='#L93'>93</a>
159
159
  <a name='L94'></a><a href='#L94'>94</a>
160
- <a name='L95'></a><a href='#L95'>95</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">29x</span>
161
- <span class="cline-any cline-yes">29x</span>
162
- <span class="cline-any cline-yes">29x</span>
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></td><td class="line-coverage quiet"><span class="cline-any cline-yes">31x</span>
163
+ <span class="cline-any cline-yes">31x</span>
164
+ <span class="cline-any cline-neutral">&nbsp;</span>
165
+ <span class="cline-any cline-yes">31x</span>
163
166
  <span class="cline-any cline-neutral">&nbsp;</span>
164
167
  <span class="cline-any cline-neutral">&nbsp;</span>
165
168
  <span class="cline-any cline-yes">6x</span>
@@ -173,7 +176,7 @@
173
176
  <span class="cline-any cline-neutral">&nbsp;</span>
174
177
  <span class="cline-any cline-neutral">&nbsp;</span>
175
178
  <span class="cline-any cline-neutral">&nbsp;</span>
176
- <span class="cline-any cline-yes">29x</span>
179
+ <span class="cline-any cline-yes">31x</span>
177
180
  <span class="cline-any cline-neutral">&nbsp;</span>
178
181
  <span class="cline-any cline-no">&nbsp;</span>
179
182
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -205,35 +208,36 @@
205
208
  <span class="cline-any cline-neutral">&nbsp;</span>
206
209
  <span class="cline-any cline-neutral">&nbsp;</span>
207
210
  <span class="cline-any cline-neutral">&nbsp;</span>
208
- <span class="cline-any cline-no">&nbsp;</span>
209
- <span class="cline-any cline-yes">29x</span>
210
- <span class="cline-any cline-yes">29x</span>
211
- <span class="cline-any cline-neutral">&nbsp;</span>
212
- <span class="cline-any cline-neutral">&nbsp;</span>
213
- <span class="cline-any cline-yes">29x</span>
214
- <span class="cline-any cline-yes">29x</span>
215
- <span class="cline-any cline-yes">29x</span>
216
211
  <span class="cline-any cline-neutral">&nbsp;</span>
212
+ <span class="cline-any cline-no">&nbsp;</span>
213
+ <span class="cline-any cline-yes">31x</span>
214
+ <span class="cline-any cline-yes">31x</span>
217
215
  <span class="cline-any cline-neutral">&nbsp;</span>
218
216
  <span class="cline-any cline-neutral">&nbsp;</span>
219
- <span class="cline-any cline-yes">29x</span>
220
- <span class="cline-any cline-yes">29x</span>
217
+ <span class="cline-any cline-yes">30x</span>
218
+ <span class="cline-any cline-yes">30x</span>
219
+ <span class="cline-any cline-yes">30x</span>
221
220
  <span class="cline-any cline-neutral">&nbsp;</span>
222
221
  <span class="cline-any cline-neutral">&nbsp;</span>
223
- <span class="cline-any cline-yes">29x</span>
224
- <span class="cline-any cline-yes">29x</span>
225
- <span class="cline-any cline-yes">27x</span>
226
222
  <span class="cline-any cline-neutral">&nbsp;</span>
227
- <span class="cline-any cline-yes">29x</span>
223
+ <span class="cline-any cline-yes">30x</span>
224
+ <span class="cline-any cline-yes">30x</span>
228
225
  <span class="cline-any cline-neutral">&nbsp;</span>
229
226
  <span class="cline-any cline-neutral">&nbsp;</span>
230
227
  <span class="cline-any cline-yes">31x</span>
231
228
  <span class="cline-any cline-yes">31x</span>
232
- <span class="cline-any cline-yes">2x</span>
229
+ <span class="cline-any cline-yes">28x</span>
233
230
  <span class="cline-any cline-neutral">&nbsp;</span>
234
231
  <span class="cline-any cline-yes">31x</span>
235
232
  <span class="cline-any cline-neutral">&nbsp;</span>
236
233
  <span class="cline-any cline-neutral">&nbsp;</span>
234
+ <span class="cline-any cline-yes">34x</span>
235
+ <span class="cline-any cline-yes">34x</span>
236
+ <span class="cline-any cline-yes">3x</span>
237
+ <span class="cline-any cline-neutral">&nbsp;</span>
238
+ <span class="cline-any cline-yes">34x</span>
239
+ <span class="cline-any cline-neutral">&nbsp;</span>
240
+ <span class="cline-any cline-neutral">&nbsp;</span>
237
241
  <span class="cline-any cline-yes">4x</span>
238
242
  <span class="cline-any cline-neutral">&nbsp;</span>
239
243
  <span class="cline-any cline-yes">4x</span>
@@ -253,6 +257,7 @@
253
257
  <span class="cline-any cline-neutral">&nbsp;</span>
254
258
  <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import TestConfig from "../../../../tests/utilities/TestConfiguration"
255
259
  import env from "../../../../environment"
260
+ import supertest from "supertest"
256
261
  export * as structures from "../../../../tests/utilities/structures"
257
262
  &nbsp;
258
263
  function user() {
@@ -297,7 +302,8 @@ export function delay(ms: number) {
297
302
  return new Promise(resolve =&gt; setTimeout(resolve, ms))
298
303
  }
299
304
  &nbsp;
300
- let request: any, config: any
305
+ let request: supertest.SuperTest&lt;supertest.Test&gt; | undefined | null,
306
+ config: TestConfig | null
301
307
  &nbsp;
302
308
  export function <span class="cstat-no" title="statement not covered" >beforeAll<span class="fstat-no" title="function not covered" >(</span>) {</span>
303
309
  config = new TestConfig()
@@ -318,14 +324,14 @@ export function getRequest() {
318
324
  if (!request) {
319
325
  beforeAll()
320
326
  }
321
- return request
327
+ return request!
322
328
  }
323
329
  &nbsp;
324
330
  export function getConfig() {
325
331
  if (!config) {
326
332
  beforeAll()
327
333
  }
328
- return config
334
+ return config!
329
335
  }
330
336
  &nbsp;
331
337
  export async function switchToSelfHosted(func: any) {
@@ -352,7 +358,7 @@ export async function switchToSelfHosted(func: any) {
352
358
  <div class='footer quiet pad2 space-top1 center small'>
353
359
  Code coverage generated by
354
360
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
355
- at Mon Feb 13 2023 11:21:28 GMT+0000 (Coordinated Universal Time)
361
+ at Tue Feb 14 2023 18:11:53 GMT+0000 (Coordinated Universal Time)
356
362
  </div>
357
363
  <script src="../../../../../prettify.js"></script>
358
364
  <script>