@budibase/server 2.2.12-alpha.5 → 2.2.13

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 (464) hide show
  1. package/__mocks__/aws-sdk.ts +0 -19
  2. package/__mocks__/node-fetch.ts +0 -78
  3. package/builder/assets/{index.fa480d5b.css → index.9cb087df.css} +2 -2
  4. package/builder/assets/{index.d930bfc5.js → index.ef02c146.js} +369 -372
  5. package/builder/index.html +2 -2
  6. package/coverage/clover.xml +5094 -5122
  7. package/coverage/coverage-final.json +265 -268
  8. package/coverage/lcov-report/index.html +215 -215
  9. package/coverage/lcov-report/src/api/controllers/analytics.ts.html +7 -7
  10. package/coverage/lcov-report/src/api/controllers/apikeys.ts.html +5 -5
  11. package/coverage/lcov-report/src/api/controllers/application.ts.html +183 -258
  12. package/coverage/lcov-report/src/api/controllers/auth.ts.html +11 -11
  13. package/coverage/lcov-report/src/api/controllers/automation.ts.html +51 -51
  14. package/coverage/lcov-report/src/api/controllers/backup.ts.html +6 -6
  15. package/coverage/lcov-report/src/api/controllers/cloud.ts.html +79 -91
  16. package/coverage/lcov-report/src/api/controllers/component.ts.html +5 -5
  17. package/coverage/lcov-report/src/api/controllers/datasource.ts.html +30 -30
  18. package/coverage/lcov-report/src/api/controllers/deploy/Deployment.ts.html +14 -17
  19. package/coverage/lcov-report/src/api/controllers/deploy/index.html +19 -19
  20. package/coverage/lcov-report/src/api/controllers/deploy/index.ts.html +195 -141
  21. package/coverage/lcov-report/src/api/controllers/dev.ts.html +18 -18
  22. package/coverage/lcov-report/src/api/controllers/index.html +51 -51
  23. package/coverage/lcov-report/src/api/controllers/integration.ts.html +4 -4
  24. package/coverage/lcov-report/src/api/controllers/layout.ts.html +6 -6
  25. package/coverage/lcov-report/src/api/controllers/metadata.ts.html +9 -9
  26. package/coverage/lcov-report/src/api/controllers/migrations.ts.html +4 -4
  27. package/coverage/lcov-report/src/api/controllers/permission.ts.html +13 -13
  28. package/coverage/lcov-report/src/api/controllers/plugin/file.ts.html +19 -19
  29. package/coverage/lcov-report/src/api/controllers/plugin/github.ts.html +63 -63
  30. package/coverage/lcov-report/src/api/controllers/plugin/index.html +72 -72
  31. package/coverage/lcov-report/src/api/controllers/plugin/index.ts.html +135 -150
  32. package/coverage/lcov-report/src/api/controllers/plugin/npm.ts.html +55 -55
  33. package/coverage/lcov-report/src/api/controllers/plugin/uploaders.ts.html +11 -11
  34. package/coverage/lcov-report/src/api/controllers/plugin/url.ts.html +18 -18
  35. package/coverage/lcov-report/src/api/controllers/plugin/utils.ts.html +20 -20
  36. package/coverage/lcov-report/src/api/controllers/public/applications.ts.html +16 -67
  37. package/coverage/lcov-report/src/api/controllers/public/index.html +15 -15
  38. package/coverage/lcov-report/src/api/controllers/public/mapping/applications.ts.html +2 -2
  39. package/coverage/lcov-report/src/api/controllers/public/mapping/index.html +1 -1
  40. package/coverage/lcov-report/src/api/controllers/public/mapping/index.ts.html +7 -7
  41. package/coverage/lcov-report/src/api/controllers/public/mapping/queries.ts.html +2 -2
  42. package/coverage/lcov-report/src/api/controllers/public/mapping/rows.ts.html +2 -2
  43. package/coverage/lcov-report/src/api/controllers/public/mapping/tables.ts.html +2 -2
  44. package/coverage/lcov-report/src/api/controllers/public/mapping/users.ts.html +2 -2
  45. package/coverage/lcov-report/src/api/controllers/public/queries.ts.html +6 -6
  46. package/coverage/lcov-report/src/api/controllers/public/rows.ts.html +10 -10
  47. package/coverage/lcov-report/src/api/controllers/public/tables.ts.html +9 -9
  48. package/coverage/lcov-report/src/api/controllers/public/users.ts.html +11 -11
  49. package/coverage/lcov-report/src/api/controllers/public/utils.ts.html +6 -6
  50. package/coverage/lcov-report/src/api/controllers/query/import/index.html +1 -1
  51. package/coverage/lcov-report/src/api/controllers/query/import/index.ts.html +8 -8
  52. package/coverage/lcov-report/src/api/controllers/query/import/sources/base/index.html +1 -1
  53. package/coverage/lcov-report/src/api/controllers/query/import/sources/base/index.ts.html +8 -8
  54. package/coverage/lcov-report/src/api/controllers/query/import/sources/base/openapi.ts.html +5 -5
  55. package/coverage/lcov-report/src/api/controllers/query/import/sources/curl.ts.html +8 -8
  56. package/coverage/lcov-report/src/api/controllers/query/import/sources/index.html +1 -1
  57. package/coverage/lcov-report/src/api/controllers/query/import/sources/openapi2.ts.html +10 -10
  58. package/coverage/lcov-report/src/api/controllers/query/import/sources/openapi3.ts.html +14 -14
  59. package/coverage/lcov-report/src/api/controllers/query/index.html +19 -19
  60. package/coverage/lcov-report/src/api/controllers/query/index.ts.html +60 -60
  61. package/coverage/lcov-report/src/api/controllers/query/validation.ts.html +9 -9
  62. package/coverage/lcov-report/src/api/controllers/role.ts.html +8 -8
  63. package/coverage/lcov-report/src/api/controllers/routing.ts.html +6 -6
  64. package/coverage/lcov-report/src/api/controllers/row/ExternalRequest.ts.html +15 -12
  65. package/coverage/lcov-report/src/api/controllers/row/external.ts.html +20 -20
  66. package/coverage/lcov-report/src/api/controllers/row/index.html +1 -1
  67. package/coverage/lcov-report/src/api/controllers/row/index.ts.html +14 -14
  68. package/coverage/lcov-report/src/api/controllers/row/internal.ts.html +52 -55
  69. package/coverage/lcov-report/src/api/controllers/row/internalSearch.ts.html +9 -9
  70. package/coverage/lcov-report/src/api/controllers/row/staticFormula.ts.html +12 -21
  71. package/coverage/lcov-report/src/api/controllers/row/utils.ts.html +14 -17
  72. package/coverage/lcov-report/src/api/controllers/screen.ts.html +26 -26
  73. package/coverage/lcov-report/src/api/controllers/script.ts.html +18 -18
  74. package/coverage/lcov-report/src/api/controllers/static/index.html +11 -11
  75. package/coverage/lcov-report/src/api/controllers/static/index.ts.html +44 -32
  76. package/coverage/lcov-report/src/api/controllers/table/bulkFormula.ts.html +10 -10
  77. package/coverage/lcov-report/src/api/controllers/table/external.ts.html +14 -14
  78. package/coverage/lcov-report/src/api/controllers/table/index.html +19 -19
  79. package/coverage/lcov-report/src/api/controllers/table/index.ts.html +14 -14
  80. package/coverage/lcov-report/src/api/controllers/table/internal.ts.html +17 -17
  81. package/coverage/lcov-report/src/api/controllers/table/utils.ts.html +70 -52
  82. package/coverage/lcov-report/src/api/controllers/templates.ts.html +7 -7
  83. package/coverage/lcov-report/src/api/controllers/user.ts.html +119 -119
  84. package/coverage/lcov-report/src/api/controllers/view/exporters.ts.html +4 -4
  85. package/coverage/lcov-report/src/api/controllers/view/index.html +24 -24
  86. package/coverage/lcov-report/src/api/controllers/view/index.ts.html +77 -59
  87. package/coverage/lcov-report/src/api/controllers/view/utils.ts.html +22 -22
  88. package/coverage/lcov-report/src/api/controllers/view/viewBuilder.ts.html +69 -51
  89. package/coverage/lcov-report/src/api/controllers/webhook.ts.html +14 -14
  90. package/coverage/lcov-report/src/api/index.html +1 -1
  91. package/coverage/lcov-report/src/api/index.ts.html +33 -33
  92. package/coverage/lcov-report/src/api/routes/analytics.ts.html +7 -7
  93. package/coverage/lcov-report/src/api/routes/apikeys.ts.html +8 -8
  94. package/coverage/lcov-report/src/api/routes/application.ts.html +11 -44
  95. package/coverage/lcov-report/src/api/routes/auth.ts.html +6 -6
  96. package/coverage/lcov-report/src/api/routes/automation.ts.html +11 -11
  97. package/coverage/lcov-report/src/api/routes/backup.ts.html +8 -8
  98. package/coverage/lcov-report/src/api/routes/cloud.ts.html +8 -8
  99. package/coverage/lcov-report/src/api/routes/component.ts.html +8 -8
  100. package/coverage/lcov-report/src/api/routes/datasource.ts.html +9 -9
  101. package/coverage/lcov-report/src/api/routes/deploy.ts.html +11 -8
  102. package/coverage/lcov-report/src/api/routes/dev.ts.html +13 -13
  103. package/coverage/lcov-report/src/api/routes/index.html +7 -7
  104. package/coverage/lcov-report/src/api/routes/index.ts.html +37 -40
  105. package/coverage/lcov-report/src/api/routes/integration.ts.html +8 -8
  106. package/coverage/lcov-report/src/api/routes/layout.ts.html +8 -8
  107. package/coverage/lcov-report/src/api/routes/metadata.ts.html +9 -9
  108. package/coverage/lcov-report/src/api/routes/migrations.ts.html +7 -7
  109. package/coverage/lcov-report/src/api/routes/permission.ts.html +9 -9
  110. package/coverage/lcov-report/src/api/routes/plugin.ts.html +8 -8
  111. package/coverage/lcov-report/src/api/routes/public/applications.ts.html +14 -146
  112. package/coverage/lcov-report/src/api/routes/public/index.html +7 -7
  113. package/coverage/lcov-report/src/api/routes/public/index.ts.html +52 -52
  114. package/coverage/lcov-report/src/api/routes/public/middleware/index.html +15 -15
  115. package/coverage/lcov-report/src/api/routes/public/middleware/mapper.ts.html +16 -28
  116. package/coverage/lcov-report/src/api/routes/public/queries.ts.html +9 -9
  117. package/coverage/lcov-report/src/api/routes/public/rows.ts.html +12 -12
  118. package/coverage/lcov-report/src/api/routes/public/tables.ts.html +12 -12
  119. package/coverage/lcov-report/src/api/routes/public/tests/index.html +1 -1
  120. package/coverage/lcov-report/src/api/routes/public/tests/utils.ts.html +1 -1
  121. package/coverage/lcov-report/src/api/routes/public/users.ts.html +12 -12
  122. package/coverage/lcov-report/src/api/routes/public/utils/Endpoint.ts.html +19 -19
  123. package/coverage/lcov-report/src/api/routes/public/utils/index.html +1 -1
  124. package/coverage/lcov-report/src/api/routes/query.ts.html +11 -11
  125. package/coverage/lcov-report/src/api/routes/role.ts.html +9 -9
  126. package/coverage/lcov-report/src/api/routes/routing.ts.html +8 -8
  127. package/coverage/lcov-report/src/api/routes/row.ts.html +11 -11
  128. package/coverage/lcov-report/src/api/routes/screen.ts.html +9 -9
  129. package/coverage/lcov-report/src/api/routes/script.ts.html +1 -1
  130. package/coverage/lcov-report/src/api/routes/static.ts.html +14 -14
  131. package/coverage/lcov-report/src/api/routes/table.ts.html +11 -11
  132. package/coverage/lcov-report/src/api/routes/templates.ts.html +8 -8
  133. package/coverage/lcov-report/src/api/routes/tests/utilities/TestFunctions.ts.html +15 -15
  134. package/coverage/lcov-report/src/api/routes/tests/utilities/index.html +1 -1
  135. package/coverage/lcov-report/src/api/routes/tests/utilities/index.ts.html +24 -24
  136. package/coverage/lcov-report/src/api/routes/user.ts.html +9 -9
  137. package/coverage/lcov-report/src/api/routes/utils/index.html +1 -1
  138. package/coverage/lcov-report/src/api/routes/utils/validators.ts.html +42 -42
  139. package/coverage/lcov-report/src/api/routes/view.ts.html +10 -10
  140. package/coverage/lcov-report/src/api/routes/webhook.ts.html +10 -10
  141. package/coverage/lcov-report/src/app.ts.html +32 -32
  142. package/coverage/lcov-report/src/automations/actions.ts.html +25 -25
  143. package/coverage/lcov-report/src/automations/automationUtils.ts.html +19 -91
  144. package/coverage/lcov-report/src/automations/bullboard.ts.html +11 -11
  145. package/coverage/lcov-report/src/automations/index.html +19 -19
  146. package/coverage/lcov-report/src/automations/index.ts.html +13 -13
  147. package/coverage/lcov-report/src/automations/logging/index.html +1 -1
  148. package/coverage/lcov-report/src/automations/logging/index.ts.html +11 -11
  149. package/coverage/lcov-report/src/automations/steps/bash.ts.html +34 -34
  150. package/coverage/lcov-report/src/automations/steps/createRow.ts.html +7 -7
  151. package/coverage/lcov-report/src/automations/steps/delay.ts.html +5 -5
  152. package/coverage/lcov-report/src/automations/steps/deleteRow.ts.html +7 -7
  153. package/coverage/lcov-report/src/automations/steps/discord.ts.html +33 -33
  154. package/coverage/lcov-report/src/automations/steps/executeQuery.ts.html +35 -35
  155. package/coverage/lcov-report/src/automations/steps/executeScript.ts.html +31 -31
  156. package/coverage/lcov-report/src/automations/steps/filter.ts.html +6 -6
  157. package/coverage/lcov-report/src/automations/steps/index.html +83 -83
  158. package/coverage/lcov-report/src/automations/steps/integromat.ts.html +6 -6
  159. package/coverage/lcov-report/src/automations/steps/loop.ts.html +3 -3
  160. package/coverage/lcov-report/src/automations/steps/outgoingWebhook.ts.html +14 -14
  161. package/coverage/lcov-report/src/automations/steps/queryRows.ts.html +17 -17
  162. package/coverage/lcov-report/src/automations/steps/sendSmtpEmail.ts.html +28 -28
  163. package/coverage/lcov-report/src/automations/steps/serverLog.ts.html +18 -18
  164. package/coverage/lcov-report/src/automations/steps/slack.ts.html +6 -6
  165. package/coverage/lcov-report/src/automations/steps/updateRow.ts.html +7 -7
  166. package/coverage/lcov-report/src/automations/steps/utils.ts.html +16 -16
  167. package/coverage/lcov-report/src/automations/steps/zapier.ts.html +22 -22
  168. package/coverage/lcov-report/src/automations/tests/utilities/index.html +5 -5
  169. package/coverage/lcov-report/src/automations/tests/utilities/index.ts.html +26 -26
  170. package/coverage/lcov-report/src/automations/triggerInfo/app.ts.html +3 -3
  171. package/coverage/lcov-report/src/automations/triggerInfo/cron.ts.html +3 -3
  172. package/coverage/lcov-report/src/automations/triggerInfo/index.html +1 -1
  173. package/coverage/lcov-report/src/automations/triggerInfo/index.ts.html +8 -8
  174. package/coverage/lcov-report/src/automations/triggerInfo/rowDeleted.ts.html +3 -3
  175. package/coverage/lcov-report/src/automations/triggerInfo/rowSaved.ts.html +3 -3
  176. package/coverage/lcov-report/src/automations/triggerInfo/rowUpdated.ts.html +3 -3
  177. package/coverage/lcov-report/src/automations/triggerInfo/webhook.ts.html +3 -3
  178. package/coverage/lcov-report/src/automations/triggers.ts.html +21 -21
  179. package/coverage/lcov-report/src/automations/utils.ts.html +56 -56
  180. package/coverage/lcov-report/src/constants/index.html +1 -1
  181. package/coverage/lcov-report/src/constants/index.ts.html +92 -92
  182. package/coverage/lcov-report/src/constants/layouts.ts.html +4 -4
  183. package/coverage/lcov-report/src/constants/screens.ts.html +5 -5
  184. package/coverage/lcov-report/src/db/defaultData/datasource_bb_default.ts.html +23 -23
  185. package/coverage/lcov-report/src/db/defaultData/employeeImport.ts.html +2 -2
  186. package/coverage/lcov-report/src/db/defaultData/expensesImport.ts.html +2 -2
  187. package/coverage/lcov-report/src/db/defaultData/index.html +1 -1
  188. package/coverage/lcov-report/src/db/defaultData/inventoryImport.ts.html +2 -2
  189. package/coverage/lcov-report/src/db/defaultData/jobsImport.ts.html +2 -2
  190. package/coverage/lcov-report/src/db/dynamoClient.ts.html +16 -16
  191. package/coverage/lcov-report/src/db/inMemoryView.ts.html +5 -5
  192. package/coverage/lcov-report/src/db/index.html +19 -19
  193. package/coverage/lcov-report/src/db/index.ts.html +9 -9
  194. package/coverage/lcov-report/src/db/linkedRows/LinkController.ts.html +8 -8
  195. package/coverage/lcov-report/src/db/linkedRows/LinkDocument.ts.html +4 -4
  196. package/coverage/lcov-report/src/db/linkedRows/index.html +1 -1
  197. package/coverage/lcov-report/src/db/linkedRows/index.ts.html +15 -15
  198. package/coverage/lcov-report/src/db/linkedRows/linkUtils.ts.html +12 -12
  199. package/coverage/lcov-report/src/db/newid.ts.html +4 -4
  200. package/coverage/lcov-report/src/db/utils.ts.html +80 -80
  201. package/coverage/lcov-report/src/definitions/automations.ts.html +4 -4
  202. package/coverage/lcov-report/src/definitions/datasource.ts.html +4 -4
  203. package/coverage/lcov-report/src/definitions/index.html +1 -1
  204. package/coverage/lcov-report/src/environment.ts.html +28 -40
  205. package/coverage/lcov-report/src/events/AutomationEmitter.ts.html +6 -6
  206. package/coverage/lcov-report/src/events/BudibaseEmitter.ts.html +5 -5
  207. package/coverage/lcov-report/src/events/index.html +1 -1
  208. package/coverage/lcov-report/src/events/index.ts.html +4 -4
  209. package/coverage/lcov-report/src/events/utils.ts.html +3 -3
  210. package/coverage/lcov-report/src/index.html +25 -25
  211. package/coverage/lcov-report/src/index.ts.html +1 -1
  212. package/coverage/lcov-report/src/integrations/airtable.ts.html +5 -5
  213. package/coverage/lcov-report/src/integrations/arangodb.ts.html +5 -5
  214. package/coverage/lcov-report/src/integrations/base/index.html +1 -1
  215. package/coverage/lcov-report/src/integrations/base/query.ts.html +3 -3
  216. package/coverage/lcov-report/src/integrations/base/sql.ts.html +14 -14
  217. package/coverage/lcov-report/src/integrations/base/sqlTable.ts.html +8 -8
  218. package/coverage/lcov-report/src/integrations/base/utils.ts.html +3 -3
  219. package/coverage/lcov-report/src/integrations/couchdb.ts.html +5 -5
  220. package/coverage/lcov-report/src/integrations/dynamodb.ts.html +6 -6
  221. package/coverage/lcov-report/src/integrations/elasticsearch.ts.html +5 -5
  222. package/coverage/lcov-report/src/integrations/firebase.ts.html +5 -5
  223. package/coverage/lcov-report/src/integrations/googlesheets.ts.html +12 -12
  224. package/coverage/lcov-report/src/integrations/index.html +5 -5
  225. package/coverage/lcov-report/src/integrations/index.ts.html +47 -35
  226. package/coverage/lcov-report/src/integrations/microsoftSqlServer.ts.html +8 -8
  227. package/coverage/lcov-report/src/integrations/mongodb.ts.html +5 -5
  228. package/coverage/lcov-report/src/integrations/mysql.ts.html +10 -10
  229. package/coverage/lcov-report/src/integrations/oracle.ts.html +13 -13
  230. package/coverage/lcov-report/src/integrations/postgres.ts.html +42 -42
  231. package/coverage/lcov-report/src/integrations/queries/index.html +1 -1
  232. package/coverage/lcov-report/src/integrations/queries/sql.ts.html +13 -13
  233. package/coverage/lcov-report/src/integrations/redis.ts.html +5 -5
  234. package/coverage/lcov-report/src/integrations/rest.ts.html +16 -16
  235. package/coverage/lcov-report/src/integrations/s3.ts.html +6 -6
  236. package/coverage/lcov-report/src/integrations/snowflake.ts.html +5 -5
  237. package/coverage/lcov-report/src/integrations/tests/TestConfiguration.js.html +1 -1
  238. package/coverage/lcov-report/src/integrations/tests/index.html +1 -1
  239. package/coverage/lcov-report/src/integrations/utils.ts.html +36 -36
  240. package/coverage/lcov-report/src/middleware/appInfo.ts.html +7 -7
  241. package/coverage/lcov-report/src/middleware/authorized.ts.html +28 -28
  242. package/coverage/lcov-report/src/middleware/builder.ts.html +17 -17
  243. package/coverage/lcov-report/src/middleware/currentapp.ts.html +39 -39
  244. package/coverage/lcov-report/src/middleware/index.html +1 -1
  245. package/coverage/lcov-report/src/middleware/joi-validator.ts.html +1 -1
  246. package/coverage/lcov-report/src/middleware/publicApi.ts.html +4 -4
  247. package/coverage/lcov-report/src/middleware/resourceId.ts.html +22 -22
  248. package/coverage/lcov-report/src/middleware/selfhost.ts.html +1 -1
  249. package/coverage/lcov-report/src/middleware/utils.ts.html +4 -4
  250. package/coverage/lcov-report/src/migrations/functions/appUrls.ts.html +4 -4
  251. package/coverage/lcov-report/src/migrations/functions/backfill/app/automations.ts.html +5 -5
  252. package/coverage/lcov-report/src/migrations/functions/backfill/app/datasources.ts.html +5 -5
  253. package/coverage/lcov-report/src/migrations/functions/backfill/app/index.html +1 -1
  254. package/coverage/lcov-report/src/migrations/functions/backfill/app/layouts.ts.html +5 -5
  255. package/coverage/lcov-report/src/migrations/functions/backfill/app/queries.ts.html +7 -7
  256. package/coverage/lcov-report/src/migrations/functions/backfill/app/roles.ts.html +5 -5
  257. package/coverage/lcov-report/src/migrations/functions/backfill/app/screens.ts.html +5 -5
  258. package/coverage/lcov-report/src/migrations/functions/backfill/app/tables.ts.html +4 -4
  259. package/coverage/lcov-report/src/migrations/functions/backfill/app.ts.html +19 -19
  260. package/coverage/lcov-report/src/migrations/functions/backfill/global/configs.ts.html +10 -13
  261. package/coverage/lcov-report/src/migrations/functions/backfill/global/index.html +1 -1
  262. package/coverage/lcov-report/src/migrations/functions/backfill/global/quotas.ts.html +7 -7
  263. package/coverage/lcov-report/src/migrations/functions/backfill/global/users.ts.html +6 -6
  264. package/coverage/lcov-report/src/migrations/functions/backfill/global.ts.html +15 -15
  265. package/coverage/lcov-report/src/migrations/functions/backfill/index.html +1 -1
  266. package/coverage/lcov-report/src/migrations/functions/backfill/index.ts.html +5 -5
  267. package/coverage/lcov-report/src/migrations/functions/backfill/installation.ts.html +8 -8
  268. package/coverage/lcov-report/src/migrations/functions/index.html +1 -1
  269. package/coverage/lcov-report/src/migrations/functions/syncQuotas.ts.html +6 -6
  270. package/coverage/lcov-report/src/migrations/functions/tableSettings.ts.html +6 -6
  271. package/coverage/lcov-report/src/migrations/functions/usageQuotas/index.html +1 -1
  272. package/coverage/lcov-report/src/migrations/functions/usageQuotas/index.ts.html +2 -2
  273. package/coverage/lcov-report/src/migrations/functions/usageQuotas/syncApps.ts.html +5 -5
  274. package/coverage/lcov-report/src/migrations/functions/usageQuotas/syncPlugins.ts.html +4 -4
  275. package/coverage/lcov-report/src/migrations/functions/usageQuotas/syncRows.ts.html +6 -6
  276. package/coverage/lcov-report/src/migrations/functions/userEmailViewCasing.ts.html +3 -3
  277. package/coverage/lcov-report/src/migrations/index.html +1 -1
  278. package/coverage/lcov-report/src/migrations/index.ts.html +32 -32
  279. package/coverage/lcov-report/src/migrations/tests/helpers.ts.html +1 -1
  280. package/coverage/lcov-report/src/migrations/tests/index.html +1 -1
  281. package/coverage/lcov-report/src/migrations/tests/structures.ts.html +1 -1
  282. package/coverage/lcov-report/src/sdk/app/applications/index.html +15 -15
  283. package/coverage/lcov-report/src/sdk/app/applications/index.ts.html +4 -4
  284. package/coverage/lcov-report/src/sdk/app/applications/sync.ts.html +34 -34
  285. package/coverage/lcov-report/src/sdk/app/applications/utils.ts.html +9 -9
  286. package/coverage/lcov-report/src/sdk/app/automations/index.html +1 -1
  287. package/coverage/lcov-report/src/sdk/app/automations/index.ts.html +3 -3
  288. package/coverage/lcov-report/src/sdk/app/automations/webhook.ts.html +6 -6
  289. package/coverage/lcov-report/src/sdk/app/backups/constants.ts.html +3 -3
  290. package/coverage/lcov-report/src/sdk/app/backups/exports.ts.html +17 -17
  291. package/coverage/lcov-report/src/sdk/app/backups/imports.ts.html +53 -41
  292. package/coverage/lcov-report/src/sdk/app/backups/index.html +28 -28
  293. package/coverage/lcov-report/src/sdk/app/backups/index.ts.html +5 -5
  294. package/coverage/lcov-report/src/sdk/app/backups/statistics.ts.html +73 -73
  295. package/coverage/lcov-report/src/sdk/app/rows/attachments.ts.html +6 -6
  296. package/coverage/lcov-report/src/sdk/app/rows/index.html +1 -1
  297. package/coverage/lcov-report/src/sdk/app/rows/index.ts.html +4 -4
  298. package/coverage/lcov-report/src/sdk/app/rows/rows.ts.html +4 -4
  299. package/coverage/lcov-report/src/sdk/app/tables/index.html +1 -1
  300. package/coverage/lcov-report/src/sdk/app/tables/index.ts.html +5 -5
  301. package/coverage/lcov-report/src/sdk/index.html +1 -1
  302. package/coverage/lcov-report/src/sdk/index.ts.html +9 -9
  303. package/coverage/lcov-report/src/sdk/users/index.html +5 -5
  304. package/coverage/lcov-report/src/sdk/users/index.ts.html +3 -3
  305. package/coverage/lcov-report/src/sdk/users/utils.ts.html +34 -34
  306. package/coverage/lcov-report/src/startup.ts.html +42 -42
  307. package/coverage/lcov-report/src/tests/utilities/TestConfiguration.ts.html +125 -182
  308. package/coverage/lcov-report/src/tests/utilities/controllers.ts.html +15 -15
  309. package/coverage/lcov-report/src/tests/utilities/index.html +15 -15
  310. package/coverage/lcov-report/src/tests/utilities/index.ts.html +1 -1
  311. package/coverage/lcov-report/src/tests/utilities/structures.ts.html +30 -30
  312. package/coverage/lcov-report/src/threads/automation.ts.html +103 -34
  313. package/coverage/lcov-report/src/threads/index.html +19 -19
  314. package/coverage/lcov-report/src/threads/index.ts.html +25 -25
  315. package/coverage/lcov-report/src/threads/query.ts.html +71 -71
  316. package/coverage/lcov-report/src/threads/utils.ts.html +18 -18
  317. package/coverage/lcov-report/src/utilities/budibaseDir.ts.html +3 -3
  318. package/coverage/lcov-report/src/utilities/centralPath.ts.html +4 -4
  319. package/coverage/lcov-report/src/utilities/csvParser.ts.html +8 -8
  320. package/coverage/lcov-report/src/utilities/fileSystem/clientLibrary.ts.html +12 -12
  321. package/coverage/lcov-report/src/utilities/fileSystem/index.html +19 -79
  322. package/coverage/lcov-report/src/utilities/fileSystem/index.ts.html +1049 -20
  323. package/coverage/lcov-report/src/utilities/fileSystem/processor.ts.html +1 -1
  324. package/coverage/lcov-report/src/utilities/global.ts.html +43 -43
  325. package/coverage/lcov-report/src/utilities/index.html +63 -48
  326. package/coverage/lcov-report/src/utilities/index.ts.html +168 -36
  327. package/coverage/lcov-report/src/utilities/plugins.ts.html +151 -0
  328. package/coverage/lcov-report/src/utilities/redis.ts.html +32 -32
  329. package/coverage/lcov-report/src/utilities/routing/index.html +1 -1
  330. package/coverage/lcov-report/src/utilities/routing/index.ts.html +5 -5
  331. package/coverage/lcov-report/src/utilities/rowProcessor/index.html +28 -28
  332. package/coverage/lcov-report/src/utilities/rowProcessor/index.ts.html +33 -60
  333. package/coverage/lcov-report/src/utilities/rowProcessor/map.ts.html +3 -3
  334. package/coverage/lcov-report/src/utilities/rowProcessor/utils.ts.html +38 -38
  335. package/coverage/lcov-report/src/utilities/scriptRunner.ts.html +32 -32
  336. package/coverage/lcov-report/src/utilities/security.ts.html +6 -6
  337. package/coverage/lcov-report/src/utilities/statusCodes.ts.html +1 -1
  338. package/coverage/lcov-report/src/utilities/usageQuota/index.html +1 -1
  339. package/coverage/lcov-report/src/utilities/usageQuota/rows.ts.html +35 -35
  340. package/coverage/lcov-report/src/utilities/usageQuota/usageQuoteReset.ts.html +1 -1
  341. package/coverage/lcov-report/src/utilities/users.ts.html +6 -6
  342. package/coverage/lcov-report/src/utilities/workerRequests.ts.html +56 -56
  343. package/coverage/lcov-report/src/watch.ts.html +9 -9
  344. package/coverage/lcov-report/src/websocket.ts.html +15 -15
  345. package/coverage/lcov.info +7320 -7367
  346. package/dist/api/controllers/application.js +35 -47
  347. package/dist/api/controllers/cloud.js +2 -6
  348. package/dist/api/controllers/deploy/index.js +60 -43
  349. package/dist/api/controllers/plugin/index.js +6 -6
  350. package/dist/api/controllers/public/applications.js +1 -22
  351. package/dist/api/controllers/row/ExternalRequest.js +1 -0
  352. package/dist/api/controllers/row/internal.js +12 -12
  353. package/dist/api/controllers/row/staticFormula.js +1 -1
  354. package/dist/api/controllers/static/index.js +11 -8
  355. package/dist/api/controllers/table/utils.js +2 -1
  356. package/dist/api/controllers/view/index.js +6 -5
  357. package/dist/api/controllers/view/viewBuilder.js +8 -2
  358. package/dist/api/routes/application.js +0 -3
  359. package/dist/api/routes/deploy.js +2 -1
  360. package/dist/api/routes/public/applications.js +0 -37
  361. package/dist/api/routes/public/middleware/mapper.js +0 -3
  362. package/dist/api/routes/tests/utilities/TestFunctions.js +167 -0
  363. package/dist/api/routes/tests/utilities/index.js +131 -0
  364. package/dist/automations/automationUtils.js +1 -26
  365. package/dist/automations/tests/utilities/index.js +81 -0
  366. package/dist/environment.js +1 -5
  367. package/dist/integrations/googlesheets.js +1 -1
  368. package/dist/integrations/index.js +2 -1
  369. package/dist/migrations/functions/backfill/global/configs.js +4 -4
  370. package/dist/package.json +7 -9
  371. package/dist/sdk/app/backups/imports.js +6 -2
  372. package/dist/tests/utilities/TestConfiguration.js +562 -0
  373. package/dist/tests/utilities/controllers.js +40 -0
  374. package/dist/tests/utilities/structures.js +168 -0
  375. package/dist/threads/automation.js +28 -4
  376. package/dist/tsconfig.build.tsbuildinfo +1 -1
  377. package/dist/utilities/fileSystem/clientLibrary.js +3 -3
  378. package/dist/utilities/fileSystem/index.js +342 -18
  379. package/dist/utilities/index.js +44 -1
  380. package/dist/utilities/plugins.js +26 -0
  381. package/dist/utilities/rowProcessor/index.js +4 -12
  382. package/package.json +8 -10
  383. package/scripts/dev/manage.js +16 -0
  384. package/specs/openapi.json +0 -84
  385. package/specs/openapi.yaml +0 -53
  386. package/specs/resources/application.js +0 -19
  387. package/src/api/controllers/application.ts +36 -61
  388. package/src/api/controllers/auth.ts +2 -2
  389. package/src/api/controllers/cloud.ts +6 -10
  390. package/src/api/controllers/deploy/Deployment.ts +0 -1
  391. package/src/api/controllers/deploy/index.ts +58 -40
  392. package/src/api/controllers/plugin/index.ts +9 -14
  393. package/src/api/controllers/public/applications.ts +0 -17
  394. package/src/api/controllers/row/ExternalRequest.ts +1 -0
  395. package/src/api/controllers/row/internal.ts +23 -24
  396. package/src/api/controllers/row/staticFormula.ts +2 -5
  397. package/src/api/controllers/row/utils.ts +1 -2
  398. package/src/api/controllers/static/index.ts +10 -6
  399. package/src/api/controllers/table/utils.ts +7 -1
  400. package/src/api/controllers/view/index.ts +11 -5
  401. package/src/api/controllers/view/viewBuilder.ts +14 -8
  402. package/src/api/routes/application.ts +0 -11
  403. package/src/api/routes/deploy.ts +1 -0
  404. package/src/api/routes/index.ts +3 -4
  405. package/src/api/routes/public/applications.ts +0 -44
  406. package/src/api/routes/public/middleware/mapper.ts +0 -4
  407. package/src/api/routes/tests/__snapshots__/{datasource.spec.ts.snap → datasource.spec.js.snap} +0 -0
  408. package/src/api/routes/tests/{application.spec.ts → application.spec.js} +18 -94
  409. package/src/api/routes/tests/{backup.spec.ts → backup.spec.js} +6 -17
  410. package/src/api/routes/tests/{datasource.spec.ts → datasource.spec.js} +15 -23
  411. package/src/api/routes/tests/deployment.spec.ts +25 -0
  412. package/src/api/routes/tests/permissions.spec.js +1 -1
  413. package/src/api/routes/tests/routing.spec.js +2 -1
  414. package/src/api/routes/tests/row.spec.js +2 -4
  415. package/src/api/routes/tests/static.spec.js +17 -2
  416. package/src/api/routes/tests/table.spec.js +2 -8
  417. package/src/api/routes/tests/user.spec.js +0 -86
  418. package/src/api/routes/tests/utilities/index.ts +2 -2
  419. package/src/api/routes/tests/webhook.spec.js +1 -1
  420. package/src/automations/automationUtils.ts +0 -24
  421. package/src/automations/tests/utilities/index.ts +2 -2
  422. package/src/automations/unitTests/automationUtils.spec.js +17 -0
  423. package/src/definitions/openapi.ts +0 -10
  424. package/src/environment.ts +1 -5
  425. package/src/integrations/googlesheets.ts +1 -1
  426. package/src/integrations/index.ts +5 -1
  427. package/src/migrations/functions/backfill/global/configs.ts +4 -5
  428. package/src/sdk/app/backups/imports.ts +6 -2
  429. package/src/sdk/tests/attachments.spec.ts +4 -1
  430. package/src/tests/jestSetup.ts +1 -4
  431. package/src/tests/utilities/TestConfiguration.ts +4 -23
  432. package/src/threads/automation.ts +27 -4
  433. package/src/utilities/fileSystem/clientLibrary.ts +1 -1
  434. package/src/utilities/fileSystem/index.ts +348 -5
  435. package/src/utilities/index.ts +45 -1
  436. package/src/utilities/plugins.ts +22 -0
  437. package/src/utilities/rowProcessor/index.ts +8 -17
  438. package/tsconfig.build.json +0 -2
  439. package/coverage/lcov-report/src/utilities/fileSystem/app.ts.html +0 -343
  440. package/coverage/lcov-report/src/utilities/fileSystem/filesystem.ts.html +0 -595
  441. package/coverage/lcov-report/src/utilities/fileSystem/plugin.ts.html +0 -280
  442. package/coverage/lcov-report/src/utilities/fileSystem/template.ts.html +0 -193
  443. package/dist/utilities/fileSystem/app.js +0 -97
  444. package/dist/utilities/fileSystem/filesystem.js +0 -182
  445. package/dist/utilities/fileSystem/plugin.js +0 -63
  446. package/dist/utilities/fileSystem/template.js +0 -44
  447. package/src/api/routes/tests/cloud.spec.ts +0 -65
  448. package/src/api/routes/tests/data/budibase-component-1.0.1.tgz +0 -0
  449. package/src/api/routes/tests/data/comment-box-1.0.2.tar.gz +0 -0
  450. package/src/api/routes/tests/data/export-test.tar.gz +0 -0
  451. package/src/api/routes/tests/plugin.spec.ts +0 -179
  452. package/src/automations/tests/bash.spec.js +0 -34
  453. package/src/automations/tests/discord.spec.js +0 -27
  454. package/src/automations/tests/executeQuery.spec.js +0 -49
  455. package/src/automations/tests/executeScript.spec.js +0 -48
  456. package/src/automations/tests/sendSmtpEmail.spec.js +0 -71
  457. package/src/automations/tests/serverLog.spec.js +0 -22
  458. package/src/automations/tests/zapier.spec.js +0 -27
  459. package/src/automations/unitTests/automationUtils.spec.ts +0 -65
  460. package/src/utilities/fileSystem/app.ts +0 -86
  461. package/src/utilities/fileSystem/filesystem.ts +0 -170
  462. package/src/utilities/fileSystem/plugin.ts +0 -65
  463. package/src/utilities/fileSystem/template.ts +0 -36
  464. package/src/utilities/rowProcessor/tests/utils.spec.ts +0 -57
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">90.2% </span>
26
+ <span class="strong">88.8% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>267/296</span>
28
+ <span class='fraction'>246/277</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">66.96% </span>
33
+ <span class="strong">68.03% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>75/112</span>
35
+ <span class='fraction'>83/122</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">95.65% </span>
40
+ <span class="strong">92.85% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>44/46</span>
42
+ <span class='fraction'>39/42</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">89.75% </span>
47
+ <span class="strong">88.38% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>254/283</span>
49
+ <span class='fraction'>236/267</span>
50
50
  </div>
51
51
 
52
52
 
@@ -665,40 +665,15 @@
665
665
  <a name='L600'></a><a href='#L600'>600</a>
666
666
  <a name='L601'></a><a href='#L601'>601</a>
667
667
  <a name='L602'></a><a href='#L602'>602</a>
668
- <a name='L603'></a><a href='#L603'>603</a>
669
- <a name='L604'></a><a href='#L604'>604</a>
670
- <a name='L605'></a><a href='#L605'>605</a>
671
- <a name='L606'></a><a href='#L606'>606</a>
672
- <a name='L607'></a><a href='#L607'>607</a>
673
- <a name='L608'></a><a href='#L608'>608</a>
674
- <a name='L609'></a><a href='#L609'>609</a>
675
- <a name='L610'></a><a href='#L610'>610</a>
676
- <a name='L611'></a><a href='#L611'>611</a>
677
- <a name='L612'></a><a href='#L612'>612</a>
678
- <a name='L613'></a><a href='#L613'>613</a>
679
- <a name='L614'></a><a href='#L614'>614</a>
680
- <a name='L615'></a><a href='#L615'>615</a>
681
- <a name='L616'></a><a href='#L616'>616</a>
682
- <a name='L617'></a><a href='#L617'>617</a>
683
- <a name='L618'></a><a href='#L618'>618</a>
684
- <a name='L619'></a><a href='#L619'>619</a>
685
- <a name='L620'></a><a href='#L620'>620</a>
686
- <a name='L621'></a><a href='#L621'>621</a>
687
- <a name='L622'></a><a href='#L622'>622</a>
688
- <a name='L623'></a><a href='#L623'>623</a>
689
- <a name='L624'></a><a href='#L624'>624</a>
690
- <a name='L625'></a><a href='#L625'>625</a>
691
- <a name='L626'></a><a href='#L626'>626</a>
692
- <a name='L627'></a><a href='#L627'>627</a>
693
- <a name='L628'></a><a href='#L628'>628</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">54x</span>
694
- <span class="cline-any cline-yes">54x</span>
695
- <span class="cline-any cline-yes">54x</span>
668
+ <a name='L603'></a><a href='#L603'>603</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">46x</span>
669
+ <span class="cline-any cline-yes">46x</span>
670
+ <span class="cline-any cline-yes">46x</span>
696
671
  <span class="cline-any cline-neutral">&nbsp;</span>
697
672
  <span class="cline-any cline-neutral">&nbsp;</span>
698
673
  <span class="cline-any cline-neutral">&nbsp;</span>
699
674
  <span class="cline-any cline-neutral">&nbsp;</span>
700
- <span class="cline-any cline-yes">54x</span>
701
- <span class="cline-any cline-yes">54x</span>
675
+ <span class="cline-any cline-yes">46x</span>
676
+ <span class="cline-any cline-yes">46x</span>
702
677
  <span class="cline-any cline-neutral">&nbsp;</span>
703
678
  <span class="cline-any cline-neutral">&nbsp;</span>
704
679
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -706,7 +681,7 @@
706
681
  <span class="cline-any cline-neutral">&nbsp;</span>
707
682
  <span class="cline-any cline-neutral">&nbsp;</span>
708
683
  <span class="cline-any cline-neutral">&nbsp;</span>
709
- <span class="cline-any cline-yes">54x</span>
684
+ <span class="cline-any cline-yes">46x</span>
710
685
  <span class="cline-any cline-neutral">&nbsp;</span>
711
686
  <span class="cline-any cline-neutral">&nbsp;</span>
712
687
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -716,32 +691,35 @@
716
691
  <span class="cline-any cline-neutral">&nbsp;</span>
717
692
  <span class="cline-any cline-neutral">&nbsp;</span>
718
693
  <span class="cline-any cline-neutral">&nbsp;</span>
694
+ <span class="cline-any cline-yes">46x</span>
695
+ <span class="cline-any cline-yes">46x</span>
696
+ <span class="cline-any cline-yes">46x</span>
697
+ <span class="cline-any cline-yes">46x</span>
719
698
  <span class="cline-any cline-neutral">&nbsp;</span>
720
- <span class="cline-any cline-yes">54x</span>
721
- <span class="cline-any cline-yes">54x</span>
722
- <span class="cline-any cline-yes">54x</span>
723
- <span class="cline-any cline-yes">54x</span>
724
- <span class="cline-any cline-yes">54x</span>
725
- <span class="cline-any cline-yes">54x</span>
726
699
  <span class="cline-any cline-neutral">&nbsp;</span>
727
700
  <span class="cline-any cline-neutral">&nbsp;</span>
728
701
  <span class="cline-any cline-neutral">&nbsp;</span>
702
+ <span class="cline-any cline-yes">46x</span>
703
+ <span class="cline-any cline-yes">46x</span>
729
704
  <span class="cline-any cline-neutral">&nbsp;</span>
730
- <span class="cline-any cline-yes">54x</span>
731
- <span class="cline-any cline-yes">54x</span>
732
- <span class="cline-any cline-yes">54x</span>
733
- <span class="cline-any cline-yes">54x</span>
734
- <span class="cline-any cline-yes">54x</span>
735
705
  <span class="cline-any cline-neutral">&nbsp;</span>
736
706
  <span class="cline-any cline-neutral">&nbsp;</span>
737
707
  <span class="cline-any cline-neutral">&nbsp;</span>
708
+ <span class="cline-any cline-yes">46x</span>
709
+ <span class="cline-any cline-yes">46x</span>
710
+ <span class="cline-any cline-yes">46x</span>
711
+ <span class="cline-any cline-yes">46x</span>
712
+ <span class="cline-any cline-yes">46x</span>
738
713
  <span class="cline-any cline-neutral">&nbsp;</span>
739
714
  <span class="cline-any cline-neutral">&nbsp;</span>
740
715
  <span class="cline-any cline-neutral">&nbsp;</span>
741
716
  <span class="cline-any cline-neutral">&nbsp;</span>
742
717
  <span class="cline-any cline-neutral">&nbsp;</span>
743
- <span class="cline-any cline-yes">54x</span>
744
- <span class="cline-any cline-yes">54x</span>
718
+ <span class="cline-any cline-neutral">&nbsp;</span>
719
+ <span class="cline-any cline-neutral">&nbsp;</span>
720
+ <span class="cline-any cline-yes">46x</span>
721
+ <span class="cline-any cline-yes">46x</span>
722
+ <span class="cline-any cline-yes">46x</span>
745
723
  <span class="cline-any cline-neutral">&nbsp;</span>
746
724
  <span class="cline-any cline-neutral">&nbsp;</span>
747
725
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -778,10 +756,10 @@
778
756
  <span class="cline-any cline-neutral">&nbsp;</span>
779
757
  <span class="cline-any cline-neutral">&nbsp;</span>
780
758
  <span class="cline-any cline-neutral">&nbsp;</span>
781
- <span class="cline-any cline-yes">292x</span>
759
+ <span class="cline-any cline-yes">254x</span>
782
760
  <span class="cline-any cline-yes">4x</span>
783
761
  <span class="cline-any cline-neutral">&nbsp;</span>
784
- <span class="cline-any cline-yes">1271x</span>
762
+ <span class="cline-any cline-yes">1169x</span>
785
763
  <span class="cline-any cline-no">&nbsp;</span>
786
764
  <span class="cline-any cline-neutral">&nbsp;</span>
787
765
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -793,25 +771,25 @@
793
771
  <span class="cline-any cline-neutral">&nbsp;</span>
794
772
  <span class="cline-any cline-neutral">&nbsp;</span>
795
773
  <span class="cline-any cline-neutral">&nbsp;</span>
796
- <span class="cline-any cline-yes">292x</span>
774
+ <span class="cline-any cline-yes">254x</span>
797
775
  <span class="cline-any cline-no">&nbsp;</span>
798
776
  <span class="cline-any cline-neutral">&nbsp;</span>
799
- <span class="cline-any cline-yes">292x</span>
777
+ <span class="cline-any cline-yes">254x</span>
800
778
  <span class="cline-any cline-yes">4x</span>
801
779
  <span class="cline-any cline-neutral">&nbsp;</span>
802
- <span class="cline-any cline-yes">1271x</span>
780
+ <span class="cline-any cline-yes">1169x</span>
803
781
  <span class="cline-any cline-no">&nbsp;</span>
804
782
  <span class="cline-any cline-neutral">&nbsp;</span>
805
783
  <span class="cline-any cline-neutral">&nbsp;</span>
806
784
  <span class="cline-any cline-neutral">&nbsp;</span>
807
785
  <span class="cline-any cline-neutral">&nbsp;</span>
808
- <span class="cline-any cline-yes">289x</span>
809
- <span class="cline-any cline-yes">289x</span>
810
- <span class="cline-any cline-yes">289x</span>
811
- <span class="cline-any cline-yes">289x</span>
786
+ <span class="cline-any cline-yes">251x</span>
787
+ <span class="cline-any cline-yes">251x</span>
788
+ <span class="cline-any cline-yes">251x</span>
789
+ <span class="cline-any cline-yes">251x</span>
812
790
  <span class="cline-any cline-neutral">&nbsp;</span>
813
- <span class="cline-any cline-yes">289x</span>
814
- <span class="cline-any cline-yes">289x</span>
791
+ <span class="cline-any cline-yes">251x</span>
792
+ <span class="cline-any cline-yes">251x</span>
815
793
  <span class="cline-any cline-neutral">&nbsp;</span>
816
794
  <span class="cline-any cline-neutral">&nbsp;</span>
817
795
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -820,30 +798,30 @@
820
798
  <span class="cline-any cline-neutral">&nbsp;</span>
821
799
  <span class="cline-any cline-neutral">&nbsp;</span>
822
800
  <span class="cline-any cline-neutral">&nbsp;</span>
823
- <span class="cline-any cline-yes">289x</span>
824
- <span class="cline-any cline-yes">289x</span>
825
- <span class="cline-any cline-yes">289x</span>
801
+ <span class="cline-any cline-yes">251x</span>
802
+ <span class="cline-any cline-yes">251x</span>
803
+ <span class="cline-any cline-yes">251x</span>
826
804
  <span class="cline-any cline-neutral">&nbsp;</span>
827
805
  <span class="cline-any cline-neutral">&nbsp;</span>
828
806
  <span class="cline-any cline-neutral">&nbsp;</span>
829
- <span class="cline-any cline-yes">289x</span>
807
+ <span class="cline-any cline-yes">251x</span>
830
808
  <span class="cline-any cline-yes">1x</span>
831
809
  <span class="cline-any cline-yes">1x</span>
832
810
  <span class="cline-any cline-no">&nbsp;</span>
833
811
  <span class="cline-any cline-neutral">&nbsp;</span>
834
- <span class="cline-any cline-yes">288x</span>
812
+ <span class="cline-any cline-yes">250x</span>
835
813
  <span class="cline-any cline-yes">2x</span>
836
814
  <span class="cline-any cline-neutral">&nbsp;</span>
837
815
  <span class="cline-any cline-neutral">&nbsp;</span>
838
- <span class="cline-any cline-yes">286x</span>
816
+ <span class="cline-any cline-yes">248x</span>
839
817
  <span class="cline-any cline-neutral">&nbsp;</span>
840
- <span class="cline-any cline-yes">286x</span>
818
+ <span class="cline-any cline-yes">248x</span>
841
819
  <span class="cline-any cline-neutral">&nbsp;</span>
842
820
  <span class="cline-any cline-no">&nbsp;</span>
843
821
  <span class="cline-any cline-neutral">&nbsp;</span>
844
822
  <span class="cline-any cline-neutral">&nbsp;</span>
845
823
  <span class="cline-any cline-neutral">&nbsp;</span>
846
- <span class="cline-any cline-yes">289x</span>
824
+ <span class="cline-any cline-yes">251x</span>
847
825
  <span class="cline-any cline-neutral">&nbsp;</span>
848
826
  <span class="cline-any cline-neutral">&nbsp;</span>
849
827
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -853,32 +831,32 @@
853
831
  <span class="cline-any cline-no">&nbsp;</span>
854
832
  <span class="cline-any cline-neutral">&nbsp;</span>
855
833
  <span class="cline-any cline-neutral">&nbsp;</span>
856
- <span class="cline-any cline-yes">54x</span>
857
- <span class="cline-any cline-yes">24x</span>
858
- <span class="cline-any cline-yes">24x</span>
859
- <span class="cline-any cline-yes">24x</span>
834
+ <span class="cline-any cline-yes">46x</span>
835
+ <span class="cline-any cline-yes">15x</span>
836
+ <span class="cline-any cline-yes">15x</span>
837
+ <span class="cline-any cline-yes">15x</span>
860
838
  <span class="cline-any cline-neutral">&nbsp;</span>
861
- <span class="cline-any cline-yes">24x</span>
862
- <span class="cline-any cline-yes">31x</span>
863
- <span class="cline-any cline-yes">31x</span>
839
+ <span class="cline-any cline-yes">15x</span>
840
+ <span class="cline-any cline-yes">23x</span>
841
+ <span class="cline-any cline-yes">23x</span>
864
842
  <span class="cline-any cline-neutral">&nbsp;</span>
865
- <span class="cline-any cline-yes">24x</span>
866
- <span class="cline-any cline-yes">24x</span>
867
- <span class="cline-any cline-yes">24x</span>
868
- <span class="cline-any cline-yes">31x</span>
869
- <span class="cline-any cline-yes">31x</span>
843
+ <span class="cline-any cline-yes">15x</span>
844
+ <span class="cline-any cline-yes">15x</span>
845
+ <span class="cline-any cline-yes">15x</span>
846
+ <span class="cline-any cline-yes">23x</span>
847
+ <span class="cline-any cline-yes">23x</span>
870
848
  <span class="cline-any cline-no">&nbsp;</span>
871
849
  <span class="cline-any cline-neutral">&nbsp;</span>
872
850
  <span class="cline-any cline-neutral">&nbsp;</span>
873
- <span class="cline-any cline-yes">31x</span>
851
+ <span class="cline-any cline-yes">23x</span>
874
852
  <span class="cline-any cline-neutral">&nbsp;</span>
875
853
  <span class="cline-any cline-neutral">&nbsp;</span>
876
854
  <span class="cline-any cline-neutral">&nbsp;</span>
877
855
  <span class="cline-any cline-neutral">&nbsp;</span>
878
- <span class="cline-any cline-yes">24x</span>
856
+ <span class="cline-any cline-yes">15x</span>
879
857
  <span class="cline-any cline-neutral">&nbsp;</span>
880
858
  <span class="cline-any cline-neutral">&nbsp;</span>
881
- <span class="cline-any cline-yes">54x</span>
859
+ <span class="cline-any cline-yes">46x</span>
882
860
  <span class="cline-any cline-yes">1x</span>
883
861
  <span class="cline-any cline-yes">1x</span>
884
862
  <span class="cline-any cline-yes">1x</span>
@@ -893,7 +871,7 @@
893
871
  <span class="cline-any cline-neutral">&nbsp;</span>
894
872
  <span class="cline-any cline-neutral">&nbsp;</span>
895
873
  <span class="cline-any cline-neutral">&nbsp;</span>
896
- <span class="cline-any cline-yes">54x</span>
874
+ <span class="cline-any cline-yes">46x</span>
897
875
  <span class="cline-any cline-yes">6x</span>
898
876
  <span class="cline-any cline-yes">6x</span>
899
877
  <span class="cline-any cline-yes">6x</span>
@@ -903,8 +881,6 @@
903
881
  <span class="cline-any cline-yes">6x</span>
904
882
  <span class="cline-any cline-neutral">&nbsp;</span>
905
883
  <span class="cline-any cline-neutral">&nbsp;</span>
906
- <span class="cline-any cline-neutral">&nbsp;</span>
907
- <span class="cline-any cline-neutral">&nbsp;</span>
908
884
  <span class="cline-any cline-yes">6x</span>
909
885
  <span class="cline-any cline-no">&nbsp;</span>
910
886
  <span class="cline-any cline-no">&nbsp;</span>
@@ -916,37 +892,32 @@
916
892
  <span class="cline-any cline-neutral">&nbsp;</span>
917
893
  <span class="cline-any cline-neutral">&nbsp;</span>
918
894
  <span class="cline-any cline-neutral">&nbsp;</span>
919
- <span class="cline-any cline-yes">6x</span>
920
- <span class="cline-any cline-neutral">&nbsp;</span>
921
- <span class="cline-any cline-neutral">&nbsp;</span>
922
- <span class="cline-any cline-neutral">&nbsp;</span>
923
- <span class="cline-any cline-neutral">&nbsp;</span>
924
895
  <span class="cline-any cline-neutral">&nbsp;</span>
925
896
  <span class="cline-any cline-neutral">&nbsp;</span>
926
897
  <span class="cline-any cline-neutral">&nbsp;</span>
927
898
  <span class="cline-any cline-neutral">&nbsp;</span>
928
- <span class="cline-any cline-yes">289x</span>
929
- <span class="cline-any cline-yes">289x</span>
930
- <span class="cline-any cline-yes">289x</span>
931
- <span class="cline-any cline-yes">289x</span>
932
- <span class="cline-any cline-yes">289x</span>
933
- <span class="cline-any cline-yes">289x</span>
899
+ <span class="cline-any cline-yes">251x</span>
900
+ <span class="cline-any cline-yes">251x</span>
901
+ <span class="cline-any cline-yes">251x</span>
902
+ <span class="cline-any cline-yes">251x</span>
903
+ <span class="cline-any cline-yes">251x</span>
904
+ <span class="cline-any cline-yes">251x</span>
934
905
  <span class="cline-any cline-neutral">&nbsp;</span>
935
- <span class="cline-any cline-yes">289x</span>
936
- <span class="cline-any cline-yes">289x</span>
906
+ <span class="cline-any cline-yes">251x</span>
907
+ <span class="cline-any cline-yes">251x</span>
937
908
  <span class="cline-any cline-neutral">&nbsp;</span>
938
909
  <span class="cline-any cline-neutral">&nbsp;</span>
939
910
  <span class="cline-any cline-neutral">&nbsp;</span>
940
911
  <span class="cline-any cline-neutral">&nbsp;</span>
941
- <span class="cline-any cline-yes">289x</span>
942
- <span class="cline-any cline-yes">4x</span>
912
+ <span class="cline-any cline-yes">251x</span>
913
+ <span class="cline-any cline-yes">2x</span>
943
914
  <span class="cline-any cline-neutral">&nbsp;</span>
944
- <span class="cline-any cline-yes">289x</span>
945
- <span class="cline-any cline-yes">289x</span>
946
- <span class="cline-any cline-yes">289x</span>
947
- <span class="cline-any cline-yes">289x</span>
915
+ <span class="cline-any cline-yes">251x</span>
916
+ <span class="cline-any cline-yes">251x</span>
917
+ <span class="cline-any cline-yes">251x</span>
918
+ <span class="cline-any cline-yes">251x</span>
948
919
  <span class="cline-any cline-neutral">&nbsp;</span>
949
- <span class="cline-any cline-yes">289x</span>
920
+ <span class="cline-any cline-yes">251x</span>
950
921
  <span class="cline-any cline-neutral">&nbsp;</span>
951
922
  <span class="cline-any cline-neutral">&nbsp;</span>
952
923
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -981,8 +952,8 @@
981
952
  <span class="cline-any cline-neutral">&nbsp;</span>
982
953
  <span class="cline-any cline-neutral">&nbsp;</span>
983
954
  <span class="cline-any cline-neutral">&nbsp;</span>
984
- <span class="cline-any cline-yes">289x</span>
985
- <span class="cline-any cline-yes">289x</span>
955
+ <span class="cline-any cline-yes">251x</span>
956
+ <span class="cline-any cline-yes">251x</span>
986
957
  <span class="cline-any cline-yes">1x</span>
987
958
  <span class="cline-any cline-neutral">&nbsp;</span>
988
959
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -1008,23 +979,23 @@
1008
979
  <span class="cline-any cline-neutral">&nbsp;</span>
1009
980
  <span class="cline-any cline-neutral">&nbsp;</span>
1010
981
  <span class="cline-any cline-neutral">&nbsp;</span>
1011
- <span class="cline-any cline-yes">289x</span>
1012
- <span class="cline-any cline-yes">289x</span>
982
+ <span class="cline-any cline-yes">251x</span>
983
+ <span class="cline-any cline-yes">251x</span>
1013
984
  <span class="cline-any cline-neutral">&nbsp;</span>
1014
985
  <span class="cline-any cline-neutral">&nbsp;</span>
1015
986
  <span class="cline-any cline-neutral">&nbsp;</span>
1016
987
  <span class="cline-any cline-neutral">&nbsp;</span>
1017
988
  <span class="cline-any cline-neutral">&nbsp;</span>
1018
989
  <span class="cline-any cline-neutral">&nbsp;</span>
1019
- <span class="cline-any cline-yes">289x</span>
1020
- <span class="cline-any cline-yes">289x</span>
990
+ <span class="cline-any cline-yes">251x</span>
991
+ <span class="cline-any cline-yes">251x</span>
1021
992
  <span class="cline-any cline-neutral">&nbsp;</span>
1022
993
  <span class="cline-any cline-neutral">&nbsp;</span>
1023
994
  <span class="cline-any cline-neutral">&nbsp;</span>
1024
- <span class="cline-any cline-yes">289x</span>
995
+ <span class="cline-any cline-yes">251x</span>
1025
996
  <span class="cline-any cline-neutral">&nbsp;</span>
1026
- <span class="cline-any cline-yes">289x</span>
1027
- <span class="cline-any cline-yes">289x</span>
997
+ <span class="cline-any cline-yes">251x</span>
998
+ <span class="cline-any cline-yes">251x</span>
1028
999
  <span class="cline-any cline-neutral">&nbsp;</span>
1029
1000
  <span class="cline-any cline-yes">3x</span>
1030
1001
  <span class="cline-any cline-yes">1x</span>
@@ -1038,23 +1009,23 @@
1038
1009
  <span class="cline-any cline-no">&nbsp;</span>
1039
1010
  <span class="cline-any cline-neutral">&nbsp;</span>
1040
1011
  <span class="cline-any cline-neutral">&nbsp;</span>
1041
- <span class="cline-any cline-yes">289x</span>
1012
+ <span class="cline-any cline-yes">251x</span>
1042
1013
  <span class="cline-any cline-neutral">&nbsp;</span>
1043
- <span class="cline-any cline-yes">289x</span>
1044
- <span class="cline-any cline-yes">292x</span>
1014
+ <span class="cline-any cline-yes">251x</span>
1015
+ <span class="cline-any cline-yes">254x</span>
1045
1016
  <span class="cline-any cline-neutral">&nbsp;</span>
1046
1017
  <span class="cline-any cline-neutral">&nbsp;</span>
1047
1018
  <span class="cline-any cline-neutral">&nbsp;</span>
1048
1019
  <span class="cline-any cline-neutral">&nbsp;</span>
1049
- <span class="cline-any cline-yes">289x</span>
1050
- <span class="cline-any cline-yes">289x</span>
1020
+ <span class="cline-any cline-yes">251x</span>
1021
+ <span class="cline-any cline-yes">251x</span>
1051
1022
  <span class="cline-any cline-neutral">&nbsp;</span>
1052
1023
  <span class="cline-any cline-neutral">&nbsp;</span>
1053
1024
  <span class="cline-any cline-neutral">&nbsp;</span>
1054
1025
  <span class="cline-any cline-neutral">&nbsp;</span>
1055
- <span class="cline-any cline-yes">289x</span>
1026
+ <span class="cline-any cline-yes">251x</span>
1056
1027
  <span class="cline-any cline-neutral">&nbsp;</span>
1057
- <span class="cline-any cline-yes">289x</span>
1028
+ <span class="cline-any cline-yes">251x</span>
1058
1029
  <span class="cline-any cline-yes">3x</span>
1059
1030
  <span class="cline-any cline-yes">3x</span>
1060
1031
  <span class="cline-any cline-yes">3x</span>
@@ -1076,17 +1047,17 @@
1076
1047
  <span class="cline-any cline-neutral">&nbsp;</span>
1077
1048
  <span class="cline-any cline-neutral">&nbsp;</span>
1078
1049
  <span class="cline-any cline-neutral">&nbsp;</span>
1079
- <span class="cline-any cline-yes">54x</span>
1080
- <span class="cline-any cline-yes">289x</span>
1081
- <span class="cline-any cline-yes">289x</span>
1082
- <span class="cline-any cline-yes">289x</span>
1083
- <span class="cline-any cline-yes">289x</span>
1084
- <span class="cline-any cline-yes">289x</span>
1050
+ <span class="cline-any cline-yes">46x</span>
1051
+ <span class="cline-any cline-yes">251x</span>
1052
+ <span class="cline-any cline-yes">251x</span>
1053
+ <span class="cline-any cline-yes">251x</span>
1054
+ <span class="cline-any cline-yes">251x</span>
1055
+ <span class="cline-any cline-yes">251x</span>
1085
1056
  <span class="cline-any cline-neutral">&nbsp;</span>
1086
1057
  <span class="cline-any cline-neutral">&nbsp;</span>
1087
1058
  <span class="cline-any cline-neutral">&nbsp;</span>
1088
1059
  <span class="cline-any cline-neutral">&nbsp;</span>
1089
- <span class="cline-any cline-yes">54x</span>
1060
+ <span class="cline-any cline-yes">46x</span>
1090
1061
  <span class="cline-any cline-yes">3x</span>
1091
1062
  <span class="cline-any cline-neutral">&nbsp;</span>
1092
1063
  <span class="cline-any cline-yes">3x</span>
@@ -1106,7 +1077,7 @@
1106
1077
  <span class="cline-any cline-yes">3x</span>
1107
1078
  <span class="cline-any cline-neutral">&nbsp;</span>
1108
1079
  <span class="cline-any cline-neutral">&nbsp;</span>
1109
- <span class="cline-any cline-yes">54x</span>
1080
+ <span class="cline-any cline-yes">46x</span>
1110
1081
  <span class="cline-any cline-neutral">&nbsp;</span>
1111
1082
  <span class="cline-any cline-yes">2x</span>
1112
1083
  <span class="cline-any cline-yes">2x</span>
@@ -1130,7 +1101,7 @@
1130
1101
  <span class="cline-any cline-yes">2x</span>
1131
1102
  <span class="cline-any cline-neutral">&nbsp;</span>
1132
1103
  <span class="cline-any cline-neutral">&nbsp;</span>
1133
- <span class="cline-any cline-yes">54x</span>
1104
+ <span class="cline-any cline-yes">46x</span>
1134
1105
  <span class="cline-any cline-neutral">&nbsp;</span>
1135
1106
  <span class="cline-any cline-yes">1x</span>
1136
1107
  <span class="cline-any cline-yes">1x</span>
@@ -1156,96 +1127,75 @@
1156
1127
  <span class="cline-any cline-yes">1x</span>
1157
1128
  <span class="cline-any cline-neutral">&nbsp;</span>
1158
1129
  <span class="cline-any cline-neutral">&nbsp;</span>
1159
- <span class="cline-any cline-yes">54x</span>
1160
- <span class="cline-any cline-yes">33x</span>
1161
- <span class="cline-any cline-yes">33x</span>
1162
1130
  <span class="cline-any cline-neutral">&nbsp;</span>
1163
- <span class="cline-any cline-yes">33x</span>
1164
- <span class="cline-any cline-yes">33x</span>
1131
+ <span class="cline-any cline-yes">23x</span>
1132
+ <span class="cline-any cline-yes">23x</span>
1165
1133
  <span class="cline-any cline-neutral">&nbsp;</span>
1166
- <span class="cline-any cline-yes">33x</span>
1134
+ <span class="cline-any cline-yes">23x</span>
1135
+ <span class="cline-any cline-yes">1x</span>
1136
+ <span class="cline-any cline-yes">1x</span>
1167
1137
  <span class="cline-any cline-neutral">&nbsp;</span>
1138
+ <span class="cline-any cline-yes">1x</span>
1168
1139
  <span class="cline-any cline-neutral">&nbsp;</span>
1169
- <span class="cline-any cline-yes">33x</span>
1170
1140
  <span class="cline-any cline-neutral">&nbsp;</span>
1171
- <span class="cline-any cline-yes">33x</span>
1172
- <span class="cline-any cline-yes">33x</span>
1141
+ <span class="cline-any cline-yes">23x</span>
1142
+ <span class="cline-any cline-yes">23x</span>
1143
+ <span class="cline-any cline-yes">23x</span>
1173
1144
  <span class="cline-any cline-neutral">&nbsp;</span>
1145
+ <span class="cline-any cline-yes">23x</span>
1146
+ <span class="cline-any cline-yes">1x</span>
1174
1147
  <span class="cline-any cline-neutral">&nbsp;</span>
1148
+ <span class="cline-any cline-yes">22x</span>
1149
+ <span class="cline-any cline-yes">22x</span>
1175
1150
  <span class="cline-any cline-neutral">&nbsp;</span>
1176
- <span class="cline-any cline-yes">30x</span>
1177
- <span class="cline-any cline-yes">30x</span>
1178
- <span class="cline-any cline-yes">30x</span>
1179
1151
  <span class="cline-any cline-neutral">&nbsp;</span>
1180
1152
  <span class="cline-any cline-neutral">&nbsp;</span>
1181
- <span class="cline-any cline-yes">30x</span>
1182
1153
  <span class="cline-any cline-neutral">&nbsp;</span>
1183
- <span class="cline-any cline-yes">30x</span>
1184
- <span class="cline-any cline-yes">30x</span>
1185
1154
  <span class="cline-any cline-neutral">&nbsp;</span>
1186
1155
  <span class="cline-any cline-neutral">&nbsp;</span>
1187
- <span class="cline-any cline-yes">30x</span>
1188
1156
  <span class="cline-any cline-neutral">&nbsp;</span>
1189
- <span class="cline-any cline-yes">30x</span>
1190
- <span class="cline-any cline-yes">30x</span>
1191
- <span class="cline-any cline-yes">30x</span>
1192
- <span class="cline-any cline-yes">30x</span>
1157
+ <span class="cline-any cline-yes">23x</span>
1158
+ <span class="cline-any cline-yes">1x</span>
1193
1159
  <span class="cline-any cline-neutral">&nbsp;</span>
1194
- <span class="cline-any cline-yes">30x</span>
1195
- <span class="cline-any cline-no">&nbsp;</span>
1196
1160
  <span class="cline-any cline-neutral">&nbsp;</span>
1197
1161
  <span class="cline-any cline-neutral">&nbsp;</span>
1198
- <span class="cline-any cline-yes">30x</span>
1199
- <span class="cline-any cline-yes">30x</span>
1200
- <span class="cline-any cline-yes">30x</span>
1162
+ <span class="cline-any cline-yes">22x</span>
1201
1163
  <span class="cline-any cline-neutral">&nbsp;</span>
1164
+ <span class="cline-any cline-yes">23x</span>
1165
+ <span class="cline-any cline-yes">23x</span>
1202
1166
  <span class="cline-any cline-neutral">&nbsp;</span>
1203
1167
  <span class="cline-any cline-neutral">&nbsp;</span>
1204
- <span class="cline-any cline-yes">33x</span>
1205
- <span class="cline-any cline-yes">33x</span>
1206
1168
  <span class="cline-any cline-neutral">&nbsp;</span>
1169
+ <span class="cline-any cline-yes">23x</span>
1170
+ <span class="cline-any cline-yes">23x</span>
1207
1171
  <span class="cline-any cline-neutral">&nbsp;</span>
1208
1172
  <span class="cline-any cline-neutral">&nbsp;</span>
1209
- <span class="cline-any cline-yes">33x</span>
1210
- <span class="cline-any cline-yes">33x</span>
1211
- <span class="cline-any cline-yes">33x</span>
1212
- <span class="cline-any cline-no">&nbsp;</span>
1213
1173
  <span class="cline-any cline-neutral">&nbsp;</span>
1174
+ <span class="cline-any cline-yes">23x</span>
1175
+ <span class="cline-any cline-yes">23x</span>
1176
+ <span class="cline-any cline-yes">23x</span>
1177
+ <span class="cline-any cline-no">&nbsp;</span>
1214
1178
  <span class="cline-any cline-neutral">&nbsp;</span>
1215
1179
  <span class="cline-any cline-neutral">&nbsp;</span>
1216
- <span class="cline-any cline-yes">54x</span>
1217
- <span class="cline-any cline-yes">30x</span>
1218
- <span class="cline-any cline-yes">30x</span>
1219
- <span class="cline-any cline-yes">30x</span>
1220
- <span class="cline-any cline-yes">30x</span>
1221
- <span class="cline-any cline-yes">30x</span>
1222
1180
  <span class="cline-any cline-neutral">&nbsp;</span>
1181
+ <span class="cline-any cline-yes">46x</span>
1182
+ <span class="cline-any cline-yes">23x</span>
1183
+ <span class="cline-any cline-yes">23x</span>
1184
+ <span class="cline-any cline-yes">23x</span>
1185
+ <span class="cline-any cline-yes">23x</span>
1186
+ <span class="cline-any cline-yes">23x</span>
1223
1187
  <span class="cline-any cline-neutral">&nbsp;</span>
1224
- <span class="cline-any cline-yes">54x</span>
1225
- <span class="cline-any cline-yes">3x</span>
1226
- <span class="cline-any cline-yes">3x</span>
1227
1188
  <span class="cline-any cline-neutral">&nbsp;</span>
1228
- <span class="cline-any cline-neutral">&nbsp;</span>
1229
- <span class="cline-any cline-yes">3x</span>
1189
+ <span class="cline-any cline-yes">46x</span>
1190
+ <span class="cline-any cline-no">&nbsp;</span>
1191
+ <span class="cline-any cline-no">&nbsp;</span>
1230
1192
  <span class="cline-any cline-no">&nbsp;</span>
1231
1193
  <span class="cline-any cline-neutral">&nbsp;</span>
1232
- <span class="cline-any cline-neutral">&nbsp;</span>
1233
- <span class="cline-any cline-yes">3x</span>
1234
- <span class="cline-any cline-yes">3x</span>
1235
- <span class="cline-any cline-yes">3x</span>
1236
- <span class="cline-any cline-yes">3x</span>
1237
- <span class="cline-any cline-neutral">&nbsp;</span>
1238
- <span class="cline-any cline-neutral">&nbsp;</span>
1239
- <span class="cline-any cline-yes">54x</span>
1240
- <span class="cline-any cline-yes">3x</span>
1241
- <span class="cline-any cline-yes">3x</span>
1242
- <span class="cline-any cline-yes">3x</span>
1243
- <span class="cline-any cline-neutral">&nbsp;</span>
1244
- <span class="cline-any cline-yes">1x</span>
1194
+ <span class="cline-any cline-no">&nbsp;</span>
1245
1195
  <span class="cline-any cline-neutral">&nbsp;</span>
1246
1196
  <span class="cline-any cline-neutral">&nbsp;</span>
1247
1197
  <span class="cline-any cline-neutral">&nbsp;</span>
1248
- <span class="cline-any cline-yes">54x</span>
1198
+ <span class="cline-any cline-yes">46x</span>
1249
1199
  <span class="cline-any cline-yes">6x</span>
1250
1200
  <span class="cline-any cline-yes">6x</span>
1251
1201
  <span class="cline-any cline-yes">6x</span>
@@ -1342,18 +1292,21 @@ import {
1342
1292
  errors,
1343
1293
  events,
1344
1294
  migrations,
1345
- objectStore,
1346
1295
  } from "@budibase/backend-core"
1347
1296
  import { USERS_TABLE_SCHEMA } from "../../constants"
1348
1297
  import { buildDefaultDocs } from "../../db/defaultData/datasource_bb_default"
1349
1298
  import { removeAppFromUserRoles } from "../../utilities/workerRequests"
1350
- import { stringToReadStream, isQsTrue } from "../../utilities"
1299
+ import {
1300
+ clientLibraryPath,
1301
+ stringToReadStream,
1302
+ isQsTrue,
1303
+ } from "../../utilities"
1351
1304
  import { getLocksById } from "../../utilities/redis"
1352
1305
  import {
1353
1306
  updateClientLibrary,
1354
1307
  backupClientLibrary,
1355
1308
  revertClientLibrary,
1356
- } from "../../utilities/fileSystem"
1309
+ } from "../../utilities/fileSystem/clientLibrary"
1357
1310
  import { cleanupAutomations } from "../../automations/utils"
1358
1311
  import { checkAppMetadata } from "../../automations/logging"
1359
1312
  import { getUniqueRows } from "../../utilities/usageQuota/rows"
@@ -1365,9 +1318,9 @@ import {
1365
1318
  MigrationType,
1366
1319
  BBContext,
1367
1320
  Database,
1368
- UserCtx,
1369
1321
  } from "@budibase/types"
1370
1322
  import { BASE_LAYOUT_PROP_IDS } from "../../constants/layouts"
1323
+ import { enrichPluginURLs } from "../../utilities/plugins"
1371
1324
  import sdk from "../../sdk"
1372
1325
  &nbsp;
1373
1326
  // utility function, need to do away with this
@@ -1489,7 +1442,7 @@ export async function fetch(ctx: BBContext) {
1489
1442
  .filter((app: any) =&gt; app.status === "development")
1490
1443
  .map((app: any) =&gt; app.appId)
1491
1444
  // get the locks for all the dev apps
1492
- if (dev || all) {
1445
+ if (dev || <span class="branch-1 cbranch-no" title="branch not covered" >all)</span> {
1493
1446
  const locks = await getLocksById(appIds)
1494
1447
  for (let app of apps) {
1495
1448
  const lock = locks[app.appId]
@@ -1520,34 +1473,27 @@ export async function fetchAppDefinition(ctx: BBContext) {
1520
1473
  }
1521
1474
  }
1522
1475
  &nbsp;
1523
- export async function fetchAppPackage(ctx: UserCtx) {
1476
+ export async function fetchAppPackage(ctx: BBContext) {
1524
1477
  const db = context.getAppDB()
1525
1478
  let application = await db.get(DocumentType.APP_METADATA)
1526
1479
  const layouts = await getLayouts()
1527
1480
  let screens = await getScreens()
1528
1481
  &nbsp;
1529
1482
  // Enrich plugin URLs
1530
- application.usedPlugins = objectStore.enrichPluginURLs(
1531
- application.usedPlugins
1532
- )
1483
+ application.usedPlugins = enrichPluginURLs(application.usedPlugins)
1533
1484
  &nbsp;
1534
1485
  // Only filter screens if the user is not a builder
1535
- <span class="missing-if-branch" title="if path not taken" >I</span>if (!(ctx.user.builder &amp;&amp; ctx.user.builder.global)) {
1486
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (!(ctx.user<span class="branch-0 cbranch-no" title="branch not covered" >?.b</span>uilder &amp;&amp; ctx.user.builder.global)) {
1536
1487
  const userRoleId = <span class="cstat-no" title="statement not covered" >getUserRoleId(ctx)</span>
1537
1488
  const accessController = <span class="cstat-no" title="statement not covered" >new roles.AccessController()</span>
1538
1489
  <span class="cstat-no" title="statement not covered" > screens = await accessController.checkScreensAccess(screens, userRoleId)</span>
1539
1490
  }
1540
- &nbsp;
1541
- const clientLibPath = objectStore.clientLibraryUrl(
1542
- ctx.params.appId,
1543
- application.version
1544
- )
1545
1491
  &nbsp;
1546
1492
  ctx.body = {
1547
1493
  application,
1548
1494
  screens,
1549
1495
  layouts,
1550
- clientLibPath,
1496
+ clientLibPath: clientLibraryPath(ctx.params.appId, application.version),
1551
1497
  }
1552
1498
  }
1553
1499
  &nbsp;
@@ -1693,7 +1639,7 @@ async function appPostCreate(ctx: BBContext, app: App) {
1693
1639
  <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (err.code &amp;&amp; err.code === errors.codes.USAGE_LIMIT_EXCEEDED) {</span>
1694
1640
  // this import resulted in row usage exceeding the quota
1695
1641
  // delete the app
1696
- // skip pre and post-steps as no rows have been added to quotas yet
1642
+ // skip pre- and post-steps as no rows have been added to quotas yet
1697
1643
  <span class="cstat-no" title="statement not covered" > ctx.params.appId = app.appId</span>
1698
1644
  <span class="cstat-no" title="statement not covered" > await destroyApp(ctx)</span>
1699
1645
  }
@@ -1783,47 +1729,41 @@ export async function revertClient(ctx: BBContext) {
1783
1729
  ctx.body = app
1784
1730
  }
1785
1731
  &nbsp;
1786
- const unpublishApp = async (ctx: any) =&gt; {
1787
- let appId = ctx.params.appId
1788
- appId = dbCore.getProdAppID(appId)
1789
- &nbsp;
1790
- const db = context.getProdAppDB()
1791
- const result = await db.destroy()
1792
- &nbsp;
1793
- await events.app.unpublished({ appId } as App)
1794
- &nbsp;
1795
- // automations only in production
1796
- await cleanupAutomations(appId)
1797
- &nbsp;
1798
- await cache.app.invalidateAppMetadata(appId)
1799
- return result
1800
- }
1801
- &nbsp;
1802
1732
  async function destroyApp(ctx: BBContext) {
1803
1733
  let appId = ctx.params.appId
1804
- appId = dbCore.getProdAppID(appId)
1805
- const devAppId = dbCore.getDevAppID(appId)
1734
+ let isUnpublish = ctx.query &amp;&amp; ctx.query.unpublish
1806
1735
  &nbsp;
1807
- // check if we need to unpublish first
1808
- if (await dbCore.dbExists(appId)) {
1809
- // app is deployed, run through unpublish flow
1736
+ if (isUnpublish) {
1737
+ appId = dbCore.getProdAppID(appId)
1738
+ const devAppId = dbCore.getDevAppID(appId)
1739
+ // sync before removing the published app
1810
1740
  await sdk.applications.syncApp(devAppId)
1811
- await unpublishApp(ctx)
1812
1741
  }
1813
1742
  &nbsp;
1814
- const db = dbCore.getDB(devAppId)
1815
- // standard app deletion flow
1743
+ const db = isUnpublish ? context.getProdAppDB() : context.getAppDB()
1816
1744
  const app = await db.get(DocumentType.APP_METADATA)
1817
1745
  const result = await db.destroy()
1818
- await quotas.removeApp()
1819
- await events.app.deleted(app)
1820
1746
  &nbsp;
1821
- <span class="missing-if-branch" title="if path not taken" >I</span>if (!env.isTest()) {
1822
- <span class="cstat-no" title="statement not covered" > await deleteApp(appId)</span>
1747
+ if (isUnpublish) {
1748
+ await events.app.unpublished(app)
1749
+ } else {
1750
+ await quotas.removeApp()
1751
+ await events.app.deleted(app)
1823
1752
  }
1824
1753
  &nbsp;
1825
- await removeAppFromUserRoles(ctx, appId)
1826
- await cache.app.invalidateAppMetadata(devAppId)
1754
+ /* istanbul ignore next */
1755
+ if (!env.isTest() &amp;&amp; !isUnpublish) {
1756
+ await deleteApp(appId)
1757
+ }
1758
+ // automations only in production
1759
+ if (isUnpublish) {
1760
+ await cleanupAutomations(appId)
1761
+ }
1762
+ // remove app role when the dev app is deleted (no trace of app anymore)
1763
+ else {
1764
+ await removeAppFromUserRoles(ctx, appId)
1765
+ }
1766
+ await cache.app.invalidateAppMetadata(appId)
1827
1767
  return result
1828
1768
  }
1829
1769
  &nbsp;
@@ -1848,27 +1788,12 @@ export async function destroy(ctx: BBContext) {
1848
1788
  ctx.body = result
1849
1789
  }
1850
1790
  &nbsp;
1851
- export const unpublish = async (ctx: BBContext) =&gt; {
1852
- const prodAppId = dbCore.getProdAppID(ctx.params.appId)
1853
- const dbExists = await dbCore.dbExists(prodAppId)
1854
- &nbsp;
1855
- // check app has been published
1856
- <span class="missing-if-branch" title="if path not taken" >I</span>if (!dbExists) {
1857
- <span class="cstat-no" title="statement not covered" > return ctx.throw(400, "App has not been published.")</span>
1858
- }
1859
- &nbsp;
1860
- await preDestroyApp(ctx)
1861
- await unpublishApp(ctx)
1862
- await postDestroyApp(ctx)
1863
- ctx.status = 204
1864
- }
1865
- &nbsp;
1866
- export async function sync(ctx: BBContext) {
1867
- const appId = ctx.params.appId
1868
- try {
1869
- ctx.body = await sdk.applications.syncApp(appId)
1791
+ export async function <span class="fstat-no" title="function not covered" >sync(</span>ctx: BBContext) {
1792
+ const appId = <span class="cstat-no" title="statement not covered" >ctx.params.appId</span>
1793
+ <span class="cstat-no" title="statement not covered" > try {</span>
1794
+ <span class="cstat-no" title="statement not covered" > ctx.body = await sdk.applications.syncApp(appId)</span>
1870
1795
  } catch (err: any) {
1871
- ctx.throw(err.status || 400, err.message)
1796
+ <span class="cstat-no" title="statement not covered" > ctx.throw(err.status || 400, err.message)</span>
1872
1797
  }
1873
1798
  }
1874
1799
  &nbsp;
@@ -1951,7 +1876,7 @@ async function migrateAppNavigation() {
1951
1876
  <div class='footer quiet pad2 space-top1 center small'>
1952
1877
  Code coverage generated by
1953
1878
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
1954
- at Tue Jan 10 2023 17:21:59 GMT+0000 (Coordinated Universal Time)
1879
+ at Tue Jan 10 2023 16:37:27 GMT+0000 (Coordinated Universal Time)
1955
1880
  </div>
1956
1881
  <script src="../../../prettify.js"></script>
1957
1882
  <script>