@budibase/server 1.0.113 → 1.0.116

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 (238) hide show
  1. package/builder/assets/{index.e3e5909b.js → index.28d8c64f.js} +4 -4
  2. package/builder/index.html +1 -1
  3. package/coverage/clover.xml +1212 -1269
  4. package/coverage/coverage-final.json +86 -87
  5. package/coverage/lcov-report/api/controllers/analytics.js.html +1 -1
  6. package/coverage/lcov-report/api/controllers/apikeys.js.html +1 -1
  7. package/coverage/lcov-report/api/controllers/application.js.html +126 -120
  8. package/coverage/lcov-report/api/controllers/auth.js.html +1 -1
  9. package/coverage/lcov-report/api/controllers/automation.js.html +21 -21
  10. package/coverage/lcov-report/api/controllers/backup.js.html +1 -1
  11. package/coverage/lcov-report/api/controllers/cloud.js.html +1 -1
  12. package/coverage/lcov-report/api/controllers/component.js.html +1 -1
  13. package/coverage/lcov-report/api/controllers/datasource.js.html +16 -16
  14. package/coverage/lcov-report/api/controllers/dev.js.html +23 -14
  15. package/coverage/lcov-report/api/controllers/index.html +17 -17
  16. package/coverage/lcov-report/api/controllers/integration.js.html +1 -1
  17. package/coverage/lcov-report/api/controllers/layout.js.html +6 -6
  18. package/coverage/lcov-report/api/controllers/metadata.js.html +1 -1
  19. package/coverage/lcov-report/api/controllers/migrations.js.html +1 -1
  20. package/coverage/lcov-report/api/controllers/permission.js.html +15 -15
  21. package/coverage/lcov-report/api/controllers/query/index.html +1 -1
  22. package/coverage/lcov-report/api/controllers/query/index.js.html +19 -19
  23. package/coverage/lcov-report/api/controllers/query/validation.js.html +1 -1
  24. package/coverage/lcov-report/api/controllers/role.js.html +9 -9
  25. package/coverage/lcov-report/api/controllers/routing.js.html +1 -1
  26. package/coverage/lcov-report/api/controllers/row/external.js.html +19 -19
  27. package/coverage/lcov-report/api/controllers/row/index.html +10 -10
  28. package/coverage/lcov-report/api/controllers/row/index.js.html +14 -14
  29. package/coverage/lcov-report/api/controllers/row/internal.js.html +37 -34
  30. package/coverage/lcov-report/api/controllers/row/internalSearch.js.html +9 -9
  31. package/coverage/lcov-report/api/controllers/row/staticFormula.js.html +10 -10
  32. package/coverage/lcov-report/api/controllers/row/utils.js.html +12 -12
  33. package/coverage/lcov-report/api/controllers/screen.js.html +7 -7
  34. package/coverage/lcov-report/api/controllers/script.js.html +4 -4
  35. package/coverage/lcov-report/api/controllers/table/bulkFormula.js.html +9 -9
  36. package/coverage/lcov-report/api/controllers/table/external.js.html +12 -12
  37. package/coverage/lcov-report/api/controllers/table/index.html +1 -1
  38. package/coverage/lcov-report/api/controllers/table/index.js.html +14 -14
  39. package/coverage/lcov-report/api/controllers/table/internal.js.html +13 -13
  40. package/coverage/lcov-report/api/controllers/table/utils.js.html +30 -30
  41. package/coverage/lcov-report/api/controllers/templates.js.html +1 -1
  42. package/coverage/lcov-report/api/controllers/user.js.html +19 -19
  43. package/coverage/lcov-report/api/controllers/view/exporters.js.html +4 -4
  44. package/coverage/lcov-report/api/controllers/view/index.html +1 -1
  45. package/coverage/lcov-report/api/controllers/view/index.js.html +14 -14
  46. package/coverage/lcov-report/api/controllers/view/utils.js.html +12 -12
  47. package/coverage/lcov-report/api/controllers/view/viewBuilder.js.html +7 -7
  48. package/coverage/lcov-report/api/controllers/webhook.js.html +17 -17
  49. package/coverage/lcov-report/api/index.html +1 -1
  50. package/coverage/lcov-report/api/index.js.html +1 -1
  51. package/coverage/lcov-report/api/routes/analytics.js.html +1 -1
  52. package/coverage/lcov-report/api/routes/apikeys.js.html +1 -1
  53. package/coverage/lcov-report/api/routes/application.js.html +1 -1
  54. package/coverage/lcov-report/api/routes/auth.js.html +1 -1
  55. package/coverage/lcov-report/api/routes/automation.js.html +1 -1
  56. package/coverage/lcov-report/api/routes/backup.js.html +1 -1
  57. package/coverage/lcov-report/api/routes/cloud.js.html +1 -1
  58. package/coverage/lcov-report/api/routes/component.js.html +1 -1
  59. package/coverage/lcov-report/api/routes/datasource.js.html +1 -1
  60. package/coverage/lcov-report/api/routes/deploy.js.html +1 -1
  61. package/coverage/lcov-report/api/routes/dev.js.html +1 -1
  62. package/coverage/lcov-report/api/routes/index.html +1 -1
  63. package/coverage/lcov-report/api/routes/index.js.html +1 -1
  64. package/coverage/lcov-report/api/routes/integration.js.html +1 -1
  65. package/coverage/lcov-report/api/routes/layout.js.html +1 -1
  66. package/coverage/lcov-report/api/routes/metadata.js.html +1 -1
  67. package/coverage/lcov-report/api/routes/migrations.js.html +1 -1
  68. package/coverage/lcov-report/api/routes/permission.js.html +1 -1
  69. package/coverage/lcov-report/api/routes/query.js.html +1 -1
  70. package/coverage/lcov-report/api/routes/role.js.html +1 -1
  71. package/coverage/lcov-report/api/routes/routing.js.html +1 -1
  72. package/coverage/lcov-report/api/routes/row.js.html +1 -1
  73. package/coverage/lcov-report/api/routes/screen.js.html +1 -1
  74. package/coverage/lcov-report/api/routes/script.js.html +1 -1
  75. package/coverage/lcov-report/api/routes/static.js.html +1 -1
  76. package/coverage/lcov-report/api/routes/table.js.html +1 -1
  77. package/coverage/lcov-report/api/routes/templates.js.html +1 -1
  78. package/coverage/lcov-report/api/routes/user.js.html +1 -1
  79. package/coverage/lcov-report/api/routes/utils/index.html +1 -1
  80. package/coverage/lcov-report/api/routes/utils/validators.js.html +1 -1
  81. package/coverage/lcov-report/api/routes/view.js.html +1 -1
  82. package/coverage/lcov-report/api/routes/webhook.js.html +1 -1
  83. package/coverage/lcov-report/automations/actions.js.html +24 -24
  84. package/coverage/lcov-report/automations/automationUtils.js.html +5 -5
  85. package/coverage/lcov-report/automations/bullboard.js.html +16 -16
  86. package/coverage/lcov-report/automations/index.html +5 -5
  87. package/coverage/lcov-report/automations/index.js.html +1 -1
  88. package/coverage/lcov-report/automations/steps/bash.js.html +7 -7
  89. package/coverage/lcov-report/automations/steps/createRow.js.html +7 -7
  90. package/coverage/lcov-report/automations/steps/delay.js.html +4 -4
  91. package/coverage/lcov-report/automations/steps/deleteRow.js.html +7 -7
  92. package/coverage/lcov-report/automations/steps/discord.js.html +7 -7
  93. package/coverage/lcov-report/automations/steps/executeQuery.js.html +6 -6
  94. package/coverage/lcov-report/automations/steps/executeScript.js.html +6 -6
  95. package/coverage/lcov-report/automations/steps/filter.js.html +7 -7
  96. package/coverage/lcov-report/automations/steps/index.html +1 -1
  97. package/coverage/lcov-report/automations/steps/integromat.js.html +5 -5
  98. package/coverage/lcov-report/automations/steps/outgoingWebhook.js.html +8 -8
  99. package/coverage/lcov-report/automations/steps/queryRows.js.html +10 -10
  100. package/coverage/lcov-report/automations/steps/sendSmtpEmail.js.html +5 -5
  101. package/coverage/lcov-report/automations/steps/serverLog.js.html +3 -3
  102. package/coverage/lcov-report/automations/steps/slack.js.html +5 -5
  103. package/coverage/lcov-report/automations/steps/updateRow.js.html +6 -6
  104. package/coverage/lcov-report/automations/steps/utils.js.html +3 -3
  105. package/coverage/lcov-report/automations/steps/zapier.js.html +5 -5
  106. package/coverage/lcov-report/automations/triggerInfo/app.js.html +2 -2
  107. package/coverage/lcov-report/automations/triggerInfo/cron.js.html +2 -2
  108. package/coverage/lcov-report/automations/triggerInfo/index.html +1 -1
  109. package/coverage/lcov-report/automations/triggerInfo/index.js.html +8 -8
  110. package/coverage/lcov-report/automations/triggerInfo/rowDeleted.js.html +2 -2
  111. package/coverage/lcov-report/automations/triggerInfo/rowSaved.js.html +2 -2
  112. package/coverage/lcov-report/automations/triggerInfo/rowUpdated.js.html +2 -2
  113. package/coverage/lcov-report/automations/triggerInfo/webhook.js.html +2 -2
  114. package/coverage/lcov-report/automations/triggers.js.html +18 -18
  115. package/coverage/lcov-report/automations/utils.js.html +43 -40
  116. package/coverage/lcov-report/constants/index.html +1 -1
  117. package/coverage/lcov-report/constants/index.js.html +27 -27
  118. package/coverage/lcov-report/constants/layouts.js.html +5 -5
  119. package/coverage/lcov-report/constants/screens.js.html +4 -4
  120. package/coverage/lcov-report/db/inMemoryView.js.html +52 -49
  121. package/coverage/lcov-report/db/index.html +21 -36
  122. package/coverage/lcov-report/db/index.js.html +49 -10
  123. package/coverage/lcov-report/db/linkedRows/LinkController.js.html +7 -7
  124. package/coverage/lcov-report/db/linkedRows/index.html +1 -1
  125. package/coverage/lcov-report/db/linkedRows/index.js.html +18 -18
  126. package/coverage/lcov-report/db/linkedRows/linkUtils.js.html +13 -13
  127. package/coverage/lcov-report/db/newid.js.html +2 -2
  128. package/coverage/lcov-report/db/utils.js.html +13 -13
  129. package/coverage/lcov-report/events/AutomationEmitter.js.html +1 -1
  130. package/coverage/lcov-report/events/index.html +1 -1
  131. package/coverage/lcov-report/events/index.js.html +5 -5
  132. package/coverage/lcov-report/events/utils.js.html +3 -3
  133. package/coverage/lcov-report/index.html +52 -52
  134. package/coverage/lcov-report/integrations/tests/TestConfiguration.js.html +1 -1
  135. package/coverage/lcov-report/integrations/tests/index.html +1 -1
  136. package/coverage/lcov-report/middleware/appInfo.js.html +1 -1
  137. package/coverage/lcov-report/middleware/authorized.js.html +1 -1
  138. package/coverage/lcov-report/middleware/builder.js.html +15 -12
  139. package/coverage/lcov-report/middleware/currentapp.js.html +1 -1
  140. package/coverage/lcov-report/middleware/index.html +4 -4
  141. package/coverage/lcov-report/middleware/joi-validator.js.html +1 -1
  142. package/coverage/lcov-report/middleware/publicApi.js.html +1 -1
  143. package/coverage/lcov-report/middleware/resourceId.js.html +1 -1
  144. package/coverage/lcov-report/middleware/selfhost.js.html +1 -1
  145. package/coverage/lcov-report/middleware/usageQuota.js.html +1 -1
  146. package/coverage/lcov-report/middleware/utils.js.html +1 -1
  147. package/coverage/lcov-report/threads/automation.js.html +1 -1
  148. package/coverage/lcov-report/threads/index.html +34 -34
  149. package/coverage/lcov-report/threads/index.js.html +35 -17
  150. package/coverage/lcov-report/threads/query.js.html +20 -356
  151. package/coverage/lcov-report/threads/utils.js.html +19 -22
  152. package/coverage/lcov-report/utilities/bcrypt.js.html +1 -1
  153. package/coverage/lcov-report/utilities/budibaseDir.js.html +7 -7
  154. package/coverage/lcov-report/utilities/centralPath.js.html +4 -4
  155. package/coverage/lcov-report/utilities/csvParser.js.html +6 -6
  156. package/coverage/lcov-report/utilities/global.js.html +15 -15
  157. package/coverage/lcov-report/utilities/index.html +1 -1
  158. package/coverage/lcov-report/utilities/index.js.html +26 -26
  159. package/coverage/lcov-report/utilities/queue/inMemoryQueue.js.html +8 -8
  160. package/coverage/lcov-report/utilities/queue/index.html +1 -1
  161. package/coverage/lcov-report/utilities/routing/index.html +1 -1
  162. package/coverage/lcov-report/utilities/routing/index.js.html +1 -1
  163. package/coverage/lcov-report/utilities/rowProcessor/index.html +1 -1
  164. package/coverage/lcov-report/utilities/rowProcessor/index.js.html +18 -18
  165. package/coverage/lcov-report/utilities/rowProcessor/utils.js.html +4 -4
  166. package/coverage/lcov-report/utilities/scriptRunner.js.html +5 -5
  167. package/coverage/lcov-report/utilities/security.js.html +8 -8
  168. package/coverage/lcov-report/utilities/statusCodes.js.html +1 -1
  169. package/coverage/lcov-report/utilities/usageQuota/index.html +13 -13
  170. package/coverage/lcov-report/utilities/usageQuota/index.js.html +8 -8
  171. package/coverage/lcov-report/utilities/usageQuota/rows.js.html +38 -26
  172. package/coverage/lcov-report/utilities/usageQuota/usageQuoteReset.js.html +1 -1
  173. package/coverage/lcov-report/utilities/users.js.html +5 -5
  174. package/coverage/lcov-report/utilities/workerRequests.js.html +28 -28
  175. package/coverage/lcov.info +1570 -1660
  176. package/dist/api/controllers/application.js +4 -1
  177. package/dist/api/controllers/deploy/index.js +5 -1
  178. package/dist/api/controllers/dev.js +9 -5
  179. package/dist/api/controllers/row/internal.js +2 -1
  180. package/dist/api/controllers/webhook.js +2 -2
  181. package/dist/api/routes/tests/utilities/TestFunctions.js +1 -4
  182. package/dist/app.js +5 -2
  183. package/dist/automations/utils.js +6 -5
  184. package/dist/db/inMemoryView.js +33 -31
  185. package/dist/db/index.js +13 -2
  186. package/dist/integrations/couchdb.js +19 -25
  187. package/dist/integrations/queries/sql.js +108 -0
  188. package/dist/middleware/builder.js +10 -9
  189. package/dist/migrations/index.js +1 -5
  190. package/dist/package.json +5 -5
  191. package/dist/tests/utilities/TestConfiguration.js +66 -59
  192. package/dist/threads/index.js +6 -1
  193. package/dist/threads/query.js +4 -103
  194. package/dist/threads/utils.js +2 -3
  195. package/dist/tsconfig.tsbuildinfo +1 -1
  196. package/dist/utilities/fileSystem/index.js +27 -26
  197. package/dist/utilities/usageQuota/rows.js +16 -16
  198. package/package.json +6 -6
  199. package/scripts/exportAppTemplate.js +10 -8
  200. package/scripts/integrations/mysql/init.sql +1 -0
  201. package/src/api/controllers/application.js +3 -1
  202. package/src/api/controllers/deploy/index.js +4 -4
  203. package/src/api/controllers/dev.js +9 -6
  204. package/src/api/controllers/query/import/tests/index.spec.js +7 -11
  205. package/src/api/controllers/row/internal.js +2 -1
  206. package/src/api/controllers/webhook.js +2 -2
  207. package/src/api/routes/tests/row.spec.js +15 -11
  208. package/src/api/routes/tests/table.spec.js +3 -2
  209. package/src/api/routes/tests/utilities/TestFunctions.js +1 -5
  210. package/src/app.ts +2 -2
  211. package/src/automations/tests/deleteRow.spec.js +1 -1
  212. package/src/automations/utils.js +6 -5
  213. package/src/db/inMemoryView.js +37 -36
  214. package/src/db/index.js +15 -2
  215. package/src/db/tests/linkTests.spec.js +8 -7
  216. package/src/integrations/couchdb.ts +28 -24
  217. package/src/integrations/queries/sql.ts +125 -0
  218. package/src/integrations/tests/airtable.spec.js +3 -1
  219. package/src/integrations/tests/couchdb.spec.js +4 -1
  220. package/src/middleware/builder.js +10 -9
  221. package/src/middleware/tests/authorized.spec.js +0 -1
  222. package/src/middleware/tests/usageQuota.spec.js +6 -20
  223. package/src/migrations/functions/tests/appUrls.spec.js +8 -11
  224. package/src/migrations/functions/tests/userEmailViewCasing.spec.js +13 -10
  225. package/src/migrations/functions/usageQuotas/tests/syncApps.spec.js +25 -21
  226. package/src/migrations/functions/usageQuotas/tests/syncRows.spec.js +26 -24
  227. package/src/migrations/index.ts +1 -2
  228. package/src/module.d.ts +8 -0
  229. package/src/tests/utilities/TestConfiguration.js +62 -55
  230. package/src/threads/index.js +7 -1
  231. package/src/threads/query.js +7 -119
  232. package/src/threads/utils.js +2 -3
  233. package/src/utilities/fileSystem/index.js +30 -30
  234. package/src/utilities/usageQuota/rows.js +22 -18
  235. package/coverage/lcov-report/db/client.js.html +0 -173
  236. package/dist/db/client.js +0 -25
  237. package/scripts/replicateApp.js +0 -50
  238. package/src/db/client.js +0 -31
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">73.48% </span>
26
+ <span class="strong">73.84% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>3797/5167</span>
28
+ <span class='fraction'>3774/5111</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">54.15% </span>
33
+ <span class="strong">54.47% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>1135/2096</span>
35
+ <span class='fraction'>1127/2069</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">71.56% </span>
40
+ <span class="strong">71.7% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>526/735</span>
42
+ <span class='fraction'>527/735</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">73.77% </span>
47
+ <span class="strong">74.11% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>3748/5080</span>
49
+ <span class='fraction'>3725/5026</span>
50
50
  </div>
51
51
 
52
52
 
@@ -89,17 +89,17 @@
89
89
 
90
90
  <tr>
91
91
  <td class="file medium" data-value="api/controllers"><a href="api/controllers/index.html">api/controllers</a></td>
92
- <td data-value="70.84" class="pic medium">
92
+ <td data-value="70.71" class="pic medium">
93
93
  <div class="chart"><div class="cover-fill" style="width: 70%"></div><div class="cover-empty" style="width: 30%"></div></div>
94
94
  </td>
95
- <td data-value="70.84" class="pct medium">70.84%</td>
96
- <td data-value="1125" class="abs medium">797/1125</td>
95
+ <td data-value="70.71" class="pct medium">70.71%</td>
96
+ <td data-value="1127" class="abs medium">797/1127</td>
97
97
  <td data-value="46.73" class="pct low">46.73%</td>
98
98
  <td data-value="368" class="abs low">172/368</td>
99
99
  <td data-value="69.23" class="pct medium">69.23%</td>
100
100
  <td data-value="156" class="abs medium">108/156</td>
101
- <td data-value="70.93" class="pct medium">70.93%</td>
102
- <td data-value="1108" class="abs medium">786/1108</td>
101
+ <td data-value="70.74" class="pct medium">70.74%</td>
102
+ <td data-value="1111" class="abs medium">786/1111</td>
103
103
  </tr>
104
104
 
105
105
  <tr>
@@ -119,17 +119,17 @@
119
119
 
120
120
  <tr>
121
121
  <td class="file medium" data-value="api/controllers/row"><a href="api/controllers/row/index.html">api/controllers/row</a></td>
122
- <td data-value="61.73" class="pic medium">
122
+ <td data-value="61.79" class="pic medium">
123
123
  <div class="chart"><div class="cover-fill" style="width: 61%"></div><div class="cover-empty" style="width: 39%"></div></div>
124
124
  </td>
125
- <td data-value="61.73" class="pct medium">61.73%</td>
126
- <td data-value="690" class="abs medium">426/690</td>
125
+ <td data-value="61.79" class="pct medium">61.79%</td>
126
+ <td data-value="691" class="abs medium">427/691</td>
127
127
  <td data-value="42.61" class="pct low">42.61%</td>
128
128
  <td data-value="298" class="abs low">127/298</td>
129
129
  <td data-value="58.16" class="pct medium">58.16%</td>
130
130
  <td data-value="98" class="abs medium">57/98</td>
131
- <td data-value="61.89" class="pct medium">61.89%</td>
132
- <td data-value="677" class="abs medium">419/677</td>
131
+ <td data-value="61.94" class="pct medium">61.94%</td>
132
+ <td data-value="678" class="abs medium">420/678</td>
133
133
  </tr>
134
134
 
135
135
  <tr>
@@ -201,8 +201,8 @@
201
201
  <td data-value="215" class="abs high">181/215</td>
202
202
  <td data-value="80.2" class="pct high">80.2%</td>
203
203
  <td data-value="96" class="abs high">77/96</td>
204
- <td data-value="81.48" class="pct high">81.48%</td>
205
- <td data-value="27" class="abs high">22/27</td>
204
+ <td data-value="78.57" class="pct medium">78.57%</td>
205
+ <td data-value="28" class="abs medium">22/28</td>
206
206
  <td data-value="84.18" class="pct high">84.18%</td>
207
207
  <td data-value="215" class="abs high">181/215</td>
208
208
  </tr>
@@ -253,18 +253,18 @@
253
253
  </tr>
254
254
 
255
255
  <tr>
256
- <td class="file high" data-value="db"><a href="db/index.html">db</a></td>
257
- <td data-value="81.87" class="pic high">
258
- <div class="chart"><div class="cover-fill" style="width: 81%"></div><div class="cover-empty" style="width: 19%"></div></div>
256
+ <td class="file medium" data-value="db"><a href="db/index.html">db</a></td>
257
+ <td data-value="79.19" class="pic medium">
258
+ <div class="chart"><div class="cover-fill" style="width: 79%"></div><div class="cover-empty" style="width: 21%"></div></div>
259
259
  </td>
260
- <td data-value="81.87" class="pct high">81.87%</td>
261
- <td data-value="160" class="abs high">131/160</td>
262
- <td data-value="34.92" class="pct low">34.92%</td>
263
- <td data-value="63" class="abs low">22/63</td>
264
- <td data-value="75.67" class="pct medium">75.67%</td>
265
- <td data-value="37" class="abs medium">28/37</td>
266
- <td data-value="82.91" class="pct high">82.91%</td>
267
- <td data-value="158" class="abs high">131/158</td>
260
+ <td data-value="79.19" class="pct medium">79.19%</td>
261
+ <td data-value="149" class="abs medium">118/149</td>
262
+ <td data-value="32.78" class="pct low">32.78%</td>
263
+ <td data-value="61" class="abs low">20/61</td>
264
+ <td data-value="76.31" class="pct medium">76.31%</td>
265
+ <td data-value="38" class="abs medium">29/38</td>
266
+ <td data-value="80.27" class="pct high">80.27%</td>
267
+ <td data-value="147" class="abs high">118/147</td>
268
268
  </tr>
269
269
 
270
270
  <tr>
@@ -321,25 +321,25 @@
321
321
  <td data-value="288" class="abs high">234/288</td>
322
322
  <td data-value="70.44" class="pct medium">70.44%</td>
323
323
  <td data-value="203" class="abs medium">143/203</td>
324
- <td data-value="86.84" class="pct high">86.84%</td>
325
- <td data-value="38" class="abs high">33/38</td>
324
+ <td data-value="87.17" class="pct high">87.17%</td>
325
+ <td data-value="39" class="abs high">34/39</td>
326
326
  <td data-value="82.1" class="pct high">82.1%</td>
327
327
  <td data-value="285" class="abs high">234/285</td>
328
328
  </tr>
329
329
 
330
330
  <tr>
331
- <td class="file medium" data-value="threads"><a href="threads/index.html">threads</a></td>
332
- <td data-value="75.42" class="pic medium">
333
- <div class="chart"><div class="cover-fill" style="width: 75%"></div><div class="cover-empty" style="width: 25%"></div></div>
331
+ <td class="file high" data-value="threads"><a href="threads/index.html">threads</a></td>
332
+ <td data-value="85.77" class="pic high">
333
+ <div class="chart"><div class="cover-fill" style="width: 85%"></div><div class="cover-empty" style="width: 15%"></div></div>
334
334
  </td>
335
- <td data-value="75.42" class="pct medium">75.42%</td>
336
- <td data-value="293" class="abs medium">221/293</td>
337
- <td data-value="59.34" class="pct medium">59.34%</td>
338
- <td data-value="123" class="abs medium">73/123</td>
339
- <td data-value="88.09" class="pct high">88.09%</td>
340
- <td data-value="42" class="abs high">37/42</td>
341
- <td data-value="75.95" class="pct medium">75.95%</td>
342
- <td data-value="287" class="abs medium">218/287</td>
335
+ <td data-value="85.77" class="pct high">85.77%</td>
336
+ <td data-value="246" class="abs high">211/246</td>
337
+ <td data-value="68.36" class="pct medium">68.36%</td>
338
+ <td data-value="98" class="abs medium">67/98</td>
339
+ <td data-value="92.1" class="pct high">92.1%</td>
340
+ <td data-value="38" class="abs high">35/38</td>
341
+ <td data-value="86.3" class="pct high">86.3%</td>
342
+ <td data-value="241" class="abs high">208/241</td>
343
343
  </tr>
344
344
 
345
345
  <tr>
@@ -404,17 +404,17 @@
404
404
 
405
405
  <tr>
406
406
  <td class="file high" data-value="utilities/usageQuota"><a href="utilities/usageQuota/index.html">utilities/usageQuota</a></td>
407
- <td data-value="84.21" class="pic high">
407
+ <td data-value="84" class="pic high">
408
408
  <div class="chart"><div class="cover-fill" style="width: 84%"></div><div class="cover-empty" style="width: 16%"></div></div>
409
409
  </td>
410
- <td data-value="84.21" class="pct high">84.21%</td>
411
- <td data-value="76" class="abs high">64/76</td>
410
+ <td data-value="84" class="pct high">84%</td>
411
+ <td data-value="75" class="abs high">63/75</td>
412
412
  <td data-value="70.37" class="pct medium">70.37%</td>
413
413
  <td data-value="27" class="abs medium">19/27</td>
414
- <td data-value="80" class="pct high">80%</td>
415
- <td data-value="10" class="abs high">8/10</td>
416
- <td data-value="84.21" class="pct high">84.21%</td>
417
- <td data-value="76" class="abs high">64/76</td>
414
+ <td data-value="81.81" class="pct high">81.81%</td>
415
+ <td data-value="11" class="abs high">9/11</td>
416
+ <td data-value="84" class="pct high">84%</td>
417
+ <td data-value="75" class="abs high">63/75</td>
418
418
  </tr>
419
419
 
420
420
  </tbody>
@@ -425,7 +425,7 @@
425
425
  <div class='footer quiet pad2 space-top1 center small'>
426
426
  Code coverage generated by
427
427
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
428
- at Wed Apr 13 2022 12:20:55 GMT+0000 (Coordinated Universal Time)
428
+ at Fri Apr 22 2022 14:39:19 GMT+0000 (Coordinated Universal Time)
429
429
  </div>
430
430
  </div>
431
431
  <script src="prettify.js"></script>
@@ -64,7 +64,7 @@
64
64
  <div class='footer quiet pad2 space-top1 center small'>
65
65
  Code coverage generated by
66
66
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
67
- at Wed Apr 13 2022 12:20:55 GMT+0000 (Coordinated Universal Time)
67
+ at Fri Apr 22 2022 14:39:19 GMT+0000 (Coordinated Universal Time)
68
68
  </div>
69
69
  </div>
70
70
  <script src="../../prettify.js"></script>
@@ -95,7 +95,7 @@
95
95
  <div class='footer quiet pad2 space-top1 center small'>
96
96
  Code coverage generated by
97
97
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
98
- at Wed Apr 13 2022 12:20:55 GMT+0000 (Coordinated Universal Time)
98
+ at Fri Apr 22 2022 14:39:19 GMT+0000 (Coordinated Universal Time)
99
99
  </div>
100
100
  </div>
101
101
  <script src="../../prettify.js"></script>
@@ -121,7 +121,7 @@ exports.middleware =
121
121
  <div class='footer quiet pad2 space-top1 center small'>
122
122
  Code coverage generated by
123
123
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
124
- at Wed Apr 13 2022 12:20:55 GMT+0000 (Coordinated Universal Time)
124
+ at Fri Apr 22 2022 14:39:19 GMT+0000 (Coordinated Universal Time)
125
125
  </div>
126
126
  </div>
127
127
  <script src="../prettify.js"></script>
@@ -442,7 +442,7 @@ module.exports =
442
442
  <div class='footer quiet pad2 space-top1 center small'>
443
443
  Code coverage generated by
444
444
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
445
- at Wed Apr 13 2022 12:20:55 GMT+0000 (Coordinated Universal Time)
445
+ at Fri Apr 22 2022 14:39:19 GMT+0000 (Coordinated Universal Time)
446
446
  </div>
447
447
  </div>
448
448
  <script src="../prettify.js"></script>
@@ -39,7 +39,7 @@
39
39
  <div class='fl pad1y space-right2'>
40
40
  <span class="strong">100% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>3/3</span>
42
+ <span class='fraction'>4/4</span>
43
43
  </div>
44
44
 
45
45
 
@@ -135,7 +135,8 @@
135
135
  <a name='L76'></a><a href='#L76'>76</a>
136
136
  <a name='L77'></a><a href='#L77'>77</a>
137
137
  <a name='L78'></a><a href='#L78'>78</a>
138
- <a name='L79'></a><a href='#L79'>79</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">25x</span>
138
+ <a name='L79'></a><a href='#L79'>79</a>
139
+ <a name='L80'></a><a href='#L80'>80</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">25x</span>
139
140
  <span class="cline-any cline-neutral">&nbsp;</span>
140
141
  <span class="cline-any cline-neutral">&nbsp;</span>
141
142
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -195,6 +196,7 @@
195
196
  <span class="cline-any cline-yes">1x</span>
196
197
  <span class="cline-any cline-neutral">&nbsp;</span>
197
198
  <span class="cline-any cline-neutral">&nbsp;</span>
199
+ <span class="cline-any cline-neutral">&nbsp;</span>
198
200
  <span class="cline-any cline-yes">25x</span>
199
201
  <span class="cline-any cline-yes">181x</span>
200
202
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -220,7 +222,7 @@ const {
220
222
  checkDebounce,
221
223
  setDebounce,
222
224
  } = require("../utilities/redis")
223
- const { getDB } = require("@budibase/backend-core/db")
225
+ const { doWithDB } = require("@budibase/backend-core/db")
224
226
  const { DocumentTypes } = require("../db/utils")
225
227
  const { PermissionTypes } = require("@budibase/backend-core/permissions")
226
228
  const { app: appCache } = require("@budibase/backend-core/cache")
@@ -263,14 +265,15 @@ async function updateAppUpdatedAt(ctx) {
263
265
  <span class="missing-if-branch" title="if path not taken" >I</span>if (ctx.method === "GET" || (await checkDebounce(appId))) {
264
266
  <span class="cstat-no" title="statement not covered" > return</span>
265
267
  }
266
- const db = getDB(appId)
267
- const metadata = await db.get(DocumentTypes.APP_METADATA)
268
- metadata.updatedAt = new Date().toISOString()
269
- const response = await db.put(metadata)
270
- metadata._rev = response.rev
271
- await appCache.invalidateAppMetadata(appId, metadata)
272
- // set a new debounce record with a short TTL
273
- await setDebounce(appId, DEBOUNCE_TIME_SEC)
268
+ await doWithDB(appId, async db =&gt; {
269
+ const metadata = await db.get(DocumentTypes.APP_METADATA)
270
+ metadata.updatedAt = new Date().toISOString()
271
+ const response = await db.put(metadata)
272
+ metadata._rev = response.rev
273
+ await appCache.invalidateAppMetadata(appId, metadata)
274
+ // set a new debounce record with a short TTL
275
+ await setDebounce(appId, DEBOUNCE_TIME_SEC)
276
+ })
274
277
  }
275
278
  &nbsp;
276
279
  module.exports = async (ctx, permType) =&gt; {
@@ -298,7 +301,7 @@ module.exports = async (ctx, permType) =&gt; {
298
301
  <div class='footer quiet pad2 space-top1 center small'>
299
302
  Code coverage generated by
300
303
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
301
- at Wed Apr 13 2022 12:20:55 GMT+0000 (Coordinated Universal Time)
304
+ at Fri Apr 22 2022 14:39:19 GMT+0000 (Coordinated Universal Time)
302
305
  </div>
303
306
  </div>
304
307
  <script src="../prettify.js"></script>
@@ -412,7 +412,7 @@ module.exports = async (ctx, next) =&gt; {
412
412
  <div class='footer quiet pad2 space-top1 center small'>
413
413
  Code coverage generated by
414
414
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
415
- at Wed Apr 13 2022 12:20:55 GMT+0000 (Coordinated Universal Time)
415
+ at Fri Apr 22 2022 14:39:19 GMT+0000 (Coordinated Universal Time)
416
416
  </div>
417
417
  </div>
418
418
  <script src="../prettify.js"></script>
@@ -37,9 +37,9 @@
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">86.84% </span>
40
+ <span class="strong">87.17% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>33/38</span>
42
+ <span class='fraction'>34/39</span>
43
43
  </div>
44
44
 
45
45
 
@@ -112,7 +112,7 @@
112
112
  <td data-value="77.27" class="pct medium">77.27%</td>
113
113
  <td data-value="22" class="abs medium">17/22</td>
114
114
  <td data-value="100" class="pct high">100%</td>
115
- <td data-value="3" class="abs high">3/3</td>
115
+ <td data-value="4" class="abs high">4/4</td>
116
116
  <td data-value="88.88" class="pct high">88.88%</td>
117
117
  <td data-value="36" class="abs high">32/36</td>
118
118
  </tr>
@@ -230,7 +230,7 @@
230
230
  <div class='footer quiet pad2 space-top1 center small'>
231
231
  Code coverage generated by
232
232
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
233
- at Wed Apr 13 2022 12:20:55 GMT+0000 (Coordinated Universal Time)
233
+ at Fri Apr 22 2022 14:39:19 GMT+0000 (Coordinated Universal Time)
234
234
  </div>
235
235
  </div>
236
236
  <script src="../prettify.js"></script>
@@ -148,7 +148,7 @@ module.exports.params = schema =&gt; {
148
148
  <div class='footer quiet pad2 space-top1 center small'>
149
149
  Code coverage generated by
150
150
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
151
- at Wed Apr 13 2022 12:20:55 GMT+0000 (Coordinated Universal Time)
151
+ at Fri Apr 22 2022 14:39:19 GMT+0000 (Coordinated Universal Time)
152
152
  </div>
153
153
  </div>
154
154
  <script src="../prettify.js"></script>
@@ -127,7 +127,7 @@ module.exports = function ({ requiresAppId } = <span class="branch-0 cbranch-no"
127
127
  <div class='footer quiet pad2 space-top1 center small'>
128
128
  Code coverage generated by
129
129
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
130
- at Wed Apr 13 2022 12:20:55 GMT+0000 (Coordinated Universal Time)
130
+ at Fri Apr 22 2022 14:39:19 GMT+0000 (Coordinated Universal Time)
131
131
  </div>
132
132
  </div>
133
133
  <script src="../prettify.js"></script>
@@ -247,7 +247,7 @@ module.exports.bodySubResource = (main, sub) =&gt; {
247
247
  <div class='footer quiet pad2 space-top1 center small'>
248
248
  Code coverage generated by
249
249
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
250
- at Wed Apr 13 2022 12:20:55 GMT+0000 (Coordinated Universal Time)
250
+ at Fri Apr 22 2022 14:39:19 GMT+0000 (Coordinated Universal Time)
251
251
  </div>
252
252
  </div>
253
253
  <script src="../prettify.js"></script>
@@ -94,7 +94,7 @@ module.exports = async (ctx, next) =&gt; {
94
94
  <div class='footer quiet pad2 space-top1 center small'>
95
95
  Code coverage generated by
96
96
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
97
- at Wed Apr 13 2022 12:20:55 GMT+0000 (Coordinated Universal Time)
97
+ at Fri Apr 22 2022 14:39:19 GMT+0000 (Coordinated Universal Time)
98
98
  </div>
99
99
  </div>
100
100
  <script src="../prettify.js"></script>
@@ -556,7 +556,7 @@ const POST_CREATE = {
556
556
  <div class='footer quiet pad2 space-top1 center small'>
557
557
  Code coverage generated by
558
558
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
559
- at Wed Apr 13 2022 12:20:55 GMT+0000 (Coordinated Universal Time)
559
+ at Fri Apr 22 2022 14:39:19 GMT+0000 (Coordinated Universal Time)
560
560
  </div>
561
561
  </div>
562
562
  <script src="../prettify.js"></script>
@@ -85,7 +85,7 @@ exports.isWebhookEndpoint = ctx =&gt; {
85
85
  <div class='footer quiet pad2 space-top1 center small'>
86
86
  Code coverage generated by
87
87
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
88
- at Wed Apr 13 2022 12:20:55 GMT+0000 (Coordinated Universal Time)
88
+ at Fri Apr 22 2022 14:39:19 GMT+0000 (Coordinated Universal Time)
89
89
  </div>
90
90
  </div>
91
91
  <script src="../prettify.js"></script>
@@ -487,7 +487,7 @@ module.exports = (input, callback) =&gt; {
487
487
  <div class='footer quiet pad2 space-top1 center small'>
488
488
  Code coverage generated by
489
489
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
490
- at Wed Apr 13 2022 12:20:55 GMT+0000 (Coordinated Universal Time)
490
+ at Fri Apr 22 2022 14:39:19 GMT+0000 (Coordinated Universal Time)
491
491
  </div>
492
492
  </div>
493
493
  <script src="../prettify.js"></script>
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">75.42% </span>
26
+ <span class="strong">85.77% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>221/293</span>
28
+ <span class='fraction'>211/246</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">59.34% </span>
33
+ <span class="strong">68.36% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>73/123</span>
35
+ <span class='fraction'>67/98</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">88.09% </span>
40
+ <span class="strong">92.1% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>37/42</span>
42
+ <span class='fraction'>35/38</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">75.95% </span>
47
+ <span class="strong">86.3% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>218/287</span>
49
+ <span class='fraction'>208/241</span>
50
50
  </div>
51
51
 
52
52
 
@@ -55,7 +55,7 @@
55
55
  Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
56
56
  </p>
57
57
  </div>
58
- <div class='status-line medium'></div>
58
+ <div class='status-line high'></div>
59
59
  <div class="pad1">
60
60
  <table class="coverage-summary">
61
61
  <thead>
@@ -89,47 +89,47 @@
89
89
 
90
90
  <tr>
91
91
  <td class="file medium" data-value="index.js"><a href="index.js.html">index.js</a></td>
92
- <td data-value="79.31" class="pic medium">
93
- <div class="chart"><div class="cover-fill" style="width: 79%"></div><div class="cover-empty" style="width: 21%"></div></div>
92
+ <td data-value="75.75" class="pic medium">
93
+ <div class="chart"><div class="cover-fill" style="width: 75%"></div><div class="cover-empty" style="width: 25%"></div></div>
94
94
  </td>
95
- <td data-value="79.31" class="pct medium">79.31%</td>
96
- <td data-value="29" class="abs medium">23/29</td>
97
- <td data-value="55.55" class="pct medium">55.55%</td>
98
- <td data-value="18" class="abs medium">10/18</td>
95
+ <td data-value="75.75" class="pct medium">75.75%</td>
96
+ <td data-value="33" class="abs medium">25/33</td>
97
+ <td data-value="59.09" class="pct medium">59.09%</td>
98
+ <td data-value="22" class="abs medium">13/22</td>
99
99
  <td data-value="100" class="pct high">100%</td>
100
100
  <td data-value="5" class="abs high">5/5</td>
101
- <td data-value="79.31" class="pct medium">79.31%</td>
102
- <td data-value="29" class="abs medium">23/29</td>
101
+ <td data-value="75.75" class="pct medium">75.75%</td>
102
+ <td data-value="33" class="abs medium">25/33</td>
103
103
  </tr>
104
104
 
105
105
  <tr>
106
- <td class="file medium" data-value="query.js"><a href="query.js.html">query.js</a></td>
107
- <td data-value="68.62" class="pic medium">
108
- <div class="chart"><div class="cover-fill" style="width: 68%"></div><div class="cover-empty" style="width: 32%"></div></div>
106
+ <td class="file high" data-value="query.js"><a href="query.js.html">query.js</a></td>
107
+ <td data-value="91.26" class="pic high">
108
+ <div class="chart"><div class="cover-fill" style="width: 91%"></div><div class="cover-empty" style="width: 9%"></div></div>
109
109
  </td>
110
- <td data-value="68.62" class="pct medium">68.62%</td>
111
- <td data-value="153" class="abs medium">105/153</td>
112
- <td data-value="59.72" class="pct medium">59.72%</td>
113
- <td data-value="72" class="abs medium">43/72</td>
114
- <td data-value="82.35" class="pct high">82.35%</td>
115
- <td data-value="17" class="abs high">14/17</td>
116
- <td data-value="68.91" class="pct medium">68.91%</td>
117
- <td data-value="148" class="abs medium">102/148</td>
110
+ <td data-value="91.26" class="pct high">91.26%</td>
111
+ <td data-value="103" class="abs high">94/103</td>
112
+ <td data-value="79.06" class="pct medium">79.06%</td>
113
+ <td data-value="43" class="abs medium">34/43</td>
114
+ <td data-value="92.3" class="pct high">92.3%</td>
115
+ <td data-value="13" class="abs high">12/13</td>
116
+ <td data-value="91.91" class="pct high">91.91%</td>
117
+ <td data-value="99" class="abs high">91/99</td>
118
118
  </tr>
119
119
 
120
120
  <tr>
121
121
  <td class="file high" data-value="utils.js"><a href="utils.js.html">utils.js</a></td>
122
- <td data-value="81.57" class="pic high">
122
+ <td data-value="81.08" class="pic high">
123
123
  <div class="chart"><div class="cover-fill" style="width: 81%"></div><div class="cover-empty" style="width: 19%"></div></div>
124
124
  </td>
125
- <td data-value="81.57" class="pct high">81.57%</td>
126
- <td data-value="38" class="abs high">31/38</td>
125
+ <td data-value="81.08" class="pct high">81.08%</td>
126
+ <td data-value="37" class="abs high">30/37</td>
127
127
  <td data-value="64.28" class="pct medium">64.28%</td>
128
128
  <td data-value="14" class="abs medium">9/14</td>
129
129
  <td data-value="88.88" class="pct high">88.88%</td>
130
130
  <td data-value="9" class="abs high">8/9</td>
131
- <td data-value="83.78" class="pct high">83.78%</td>
132
- <td data-value="37" class="abs high">31/37</td>
131
+ <td data-value="83.33" class="pct high">83.33%</td>
132
+ <td data-value="36" class="abs high">30/36</td>
133
133
  </tr>
134
134
 
135
135
  </tbody>
@@ -140,7 +140,7 @@
140
140
  <div class='footer quiet pad2 space-top1 center small'>
141
141
  Code coverage generated by
142
142
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
143
- at Wed Apr 13 2022 12:20:55 GMT+0000 (Coordinated Universal Time)
143
+ at Fri Apr 22 2022 14:39:19 GMT+0000 (Coordinated Universal Time)
144
144
  </div>
145
145
  </div>
146
146
  <script src="../prettify.js"></script>