@budibase/server 1.0.98 → 1.0.101

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 (237) hide show
  1. package/builder/assets/index.cca3db8c.js +1291 -0
  2. package/builder/assets/{index.7c8961b4.css → index.ea3718aa.css} +2 -2
  3. package/builder/assets/{vendor.a7c6ad0a.js → vendor.8e34a169.js} +1 -1
  4. package/builder/index.html +3 -3
  5. package/coverage/clover.xml +354 -334
  6. package/coverage/coverage-final.json +15 -15
  7. package/coverage/lcov-report/api/controllers/analytics.js.html +1 -1
  8. package/coverage/lcov-report/api/controllers/apikeys.js.html +1 -1
  9. package/coverage/lcov-report/api/controllers/application.js.html +1 -1
  10. package/coverage/lcov-report/api/controllers/auth.js.html +1 -1
  11. package/coverage/lcov-report/api/controllers/automation.js.html +1 -1
  12. package/coverage/lcov-report/api/controllers/backup.js.html +1 -1
  13. package/coverage/lcov-report/api/controllers/cloud.js.html +1 -1
  14. package/coverage/lcov-report/api/controllers/component.js.html +4 -4
  15. package/coverage/lcov-report/api/controllers/datasource.js.html +1 -1
  16. package/coverage/lcov-report/api/controllers/dev.js.html +1 -1
  17. package/coverage/lcov-report/api/controllers/index.html +18 -18
  18. package/coverage/lcov-report/api/controllers/integration.js.html +59 -11
  19. package/coverage/lcov-report/api/controllers/layout.js.html +1 -1
  20. package/coverage/lcov-report/api/controllers/metadata.js.html +1 -1
  21. package/coverage/lcov-report/api/controllers/migrations.js.html +1 -1
  22. package/coverage/lcov-report/api/controllers/permission.js.html +7 -7
  23. package/coverage/lcov-report/api/controllers/query/index.html +1 -1
  24. package/coverage/lcov-report/api/controllers/query/index.js.html +1 -1
  25. package/coverage/lcov-report/api/controllers/query/validation.js.html +2 -2
  26. package/coverage/lcov-report/api/controllers/role.js.html +1 -1
  27. package/coverage/lcov-report/api/controllers/routing.js.html +1 -1
  28. package/coverage/lcov-report/api/controllers/row/external.js.html +1 -1
  29. package/coverage/lcov-report/api/controllers/row/index.html +10 -10
  30. package/coverage/lcov-report/api/controllers/row/index.js.html +1 -1
  31. package/coverage/lcov-report/api/controllers/row/internal.js.html +19 -7
  32. package/coverage/lcov-report/api/controllers/row/internalSearch.js.html +1 -1
  33. package/coverage/lcov-report/api/controllers/row/staticFormula.js.html +1 -1
  34. package/coverage/lcov-report/api/controllers/row/utils.js.html +6 -6
  35. package/coverage/lcov-report/api/controllers/screen.js.html +1 -1
  36. package/coverage/lcov-report/api/controllers/script.js.html +1 -1
  37. package/coverage/lcov-report/api/controllers/table/bulkFormula.js.html +1 -1
  38. package/coverage/lcov-report/api/controllers/table/external.js.html +1 -1
  39. package/coverage/lcov-report/api/controllers/table/index.html +1 -1
  40. package/coverage/lcov-report/api/controllers/table/index.js.html +1 -1
  41. package/coverage/lcov-report/api/controllers/table/internal.js.html +1 -1
  42. package/coverage/lcov-report/api/controllers/table/utils.js.html +1 -1
  43. package/coverage/lcov-report/api/controllers/templates.js.html +1 -1
  44. package/coverage/lcov-report/api/controllers/user.js.html +1 -1
  45. package/coverage/lcov-report/api/controllers/view/exporters.js.html +1 -1
  46. package/coverage/lcov-report/api/controllers/view/index.html +1 -1
  47. package/coverage/lcov-report/api/controllers/view/index.js.html +1 -1
  48. package/coverage/lcov-report/api/controllers/view/utils.js.html +1 -1
  49. package/coverage/lcov-report/api/controllers/view/viewBuilder.js.html +1 -1
  50. package/coverage/lcov-report/api/controllers/webhook.js.html +1 -1
  51. package/coverage/lcov-report/api/index.html +1 -1
  52. package/coverage/lcov-report/api/index.js.html +1 -1
  53. package/coverage/lcov-report/api/routes/analytics.js.html +3 -3
  54. package/coverage/lcov-report/api/routes/apikeys.js.html +1 -1
  55. package/coverage/lcov-report/api/routes/application.js.html +1 -1
  56. package/coverage/lcov-report/api/routes/auth.js.html +1 -1
  57. package/coverage/lcov-report/api/routes/automation.js.html +1 -1
  58. package/coverage/lcov-report/api/routes/backup.js.html +1 -1
  59. package/coverage/lcov-report/api/routes/cloud.js.html +1 -1
  60. package/coverage/lcov-report/api/routes/component.js.html +1 -1
  61. package/coverage/lcov-report/api/routes/datasource.js.html +1 -1
  62. package/coverage/lcov-report/api/routes/deploy.js.html +1 -1
  63. package/coverage/lcov-report/api/routes/dev.js.html +1 -1
  64. package/coverage/lcov-report/api/routes/index.html +1 -1
  65. package/coverage/lcov-report/api/routes/index.js.html +1 -1
  66. package/coverage/lcov-report/api/routes/integration.js.html +1 -1
  67. package/coverage/lcov-report/api/routes/layout.js.html +1 -1
  68. package/coverage/lcov-report/api/routes/metadata.js.html +1 -1
  69. package/coverage/lcov-report/api/routes/migrations.js.html +1 -1
  70. package/coverage/lcov-report/api/routes/permission.js.html +1 -1
  71. package/coverage/lcov-report/api/routes/query.js.html +1 -1
  72. package/coverage/lcov-report/api/routes/role.js.html +1 -1
  73. package/coverage/lcov-report/api/routes/routing.js.html +1 -1
  74. package/coverage/lcov-report/api/routes/row.js.html +1 -1
  75. package/coverage/lcov-report/api/routes/screen.js.html +1 -1
  76. package/coverage/lcov-report/api/routes/script.js.html +1 -1
  77. package/coverage/lcov-report/api/routes/static.js.html +1 -1
  78. package/coverage/lcov-report/api/routes/table.js.html +2 -2
  79. package/coverage/lcov-report/api/routes/templates.js.html +1 -1
  80. package/coverage/lcov-report/api/routes/user.js.html +1 -1
  81. package/coverage/lcov-report/api/routes/utils/index.html +1 -1
  82. package/coverage/lcov-report/api/routes/utils/validators.js.html +1 -1
  83. package/coverage/lcov-report/api/routes/view.js.html +1 -1
  84. package/coverage/lcov-report/api/routes/webhook.js.html +1 -1
  85. package/coverage/lcov-report/automations/actions.js.html +1 -1
  86. package/coverage/lcov-report/automations/automationUtils.js.html +1 -1
  87. package/coverage/lcov-report/automations/bullboard.js.html +1 -1
  88. package/coverage/lcov-report/automations/index.html +12 -12
  89. package/coverage/lcov-report/automations/index.js.html +1 -1
  90. package/coverage/lcov-report/automations/steps/bash.js.html +1 -1
  91. package/coverage/lcov-report/automations/steps/createRow.js.html +1 -1
  92. package/coverage/lcov-report/automations/steps/delay.js.html +1 -1
  93. package/coverage/lcov-report/automations/steps/deleteRow.js.html +1 -1
  94. package/coverage/lcov-report/automations/steps/discord.js.html +1 -1
  95. package/coverage/lcov-report/automations/steps/executeQuery.js.html +1 -1
  96. package/coverage/lcov-report/automations/steps/executeScript.js.html +1 -1
  97. package/coverage/lcov-report/automations/steps/filter.js.html +1 -1
  98. package/coverage/lcov-report/automations/steps/index.html +1 -1
  99. package/coverage/lcov-report/automations/steps/integromat.js.html +1 -1
  100. package/coverage/lcov-report/automations/steps/outgoingWebhook.js.html +1 -1
  101. package/coverage/lcov-report/automations/steps/queryRows.js.html +1 -1
  102. package/coverage/lcov-report/automations/steps/sendSmtpEmail.js.html +1 -1
  103. package/coverage/lcov-report/automations/steps/serverLog.js.html +1 -1
  104. package/coverage/lcov-report/automations/steps/slack.js.html +1 -1
  105. package/coverage/lcov-report/automations/steps/updateRow.js.html +1 -1
  106. package/coverage/lcov-report/automations/steps/utils.js.html +1 -1
  107. package/coverage/lcov-report/automations/steps/zapier.js.html +1 -1
  108. package/coverage/lcov-report/automations/triggerInfo/app.js.html +1 -1
  109. package/coverage/lcov-report/automations/triggerInfo/cron.js.html +1 -1
  110. package/coverage/lcov-report/automations/triggerInfo/index.html +1 -1
  111. package/coverage/lcov-report/automations/triggerInfo/index.js.html +1 -1
  112. package/coverage/lcov-report/automations/triggerInfo/rowDeleted.js.html +1 -1
  113. package/coverage/lcov-report/automations/triggerInfo/rowSaved.js.html +1 -1
  114. package/coverage/lcov-report/automations/triggerInfo/rowUpdated.js.html +1 -1
  115. package/coverage/lcov-report/automations/triggerInfo/webhook.js.html +1 -1
  116. package/coverage/lcov-report/automations/triggers.js.html +1 -1
  117. package/coverage/lcov-report/automations/utils.js.html +20 -8
  118. package/coverage/lcov-report/constants/index.html +1 -1
  119. package/coverage/lcov-report/constants/index.js.html +1 -1
  120. package/coverage/lcov-report/constants/layouts.js.html +1 -1
  121. package/coverage/lcov-report/constants/screens.js.html +1 -1
  122. package/coverage/lcov-report/db/client.js.html +1 -1
  123. package/coverage/lcov-report/db/inMemoryView.js.html +1 -1
  124. package/coverage/lcov-report/db/index.html +1 -1
  125. package/coverage/lcov-report/db/index.js.html +1 -1
  126. package/coverage/lcov-report/db/linkedRows/LinkController.js.html +1 -1
  127. package/coverage/lcov-report/db/linkedRows/index.html +1 -1
  128. package/coverage/lcov-report/db/linkedRows/index.js.html +10 -10
  129. package/coverage/lcov-report/db/linkedRows/linkUtils.js.html +7 -7
  130. package/coverage/lcov-report/db/newid.js.html +2 -2
  131. package/coverage/lcov-report/db/utils.js.html +2 -2
  132. package/coverage/lcov-report/events/AutomationEmitter.js.html +1 -1
  133. package/coverage/lcov-report/events/index.html +1 -1
  134. package/coverage/lcov-report/events/index.js.html +1 -1
  135. package/coverage/lcov-report/events/utils.js.html +1 -1
  136. package/coverage/lcov-report/index.html +31 -31
  137. package/coverage/lcov-report/integrations/tests/TestConfiguration.js.html +1 -1
  138. package/coverage/lcov-report/integrations/tests/index.html +1 -1
  139. package/coverage/lcov-report/middleware/appInfo.js.html +1 -1
  140. package/coverage/lcov-report/middleware/authorized.js.html +75 -15
  141. package/coverage/lcov-report/middleware/builder.js.html +1 -1
  142. package/coverage/lcov-report/middleware/currentapp.js.html +1 -1
  143. package/coverage/lcov-report/middleware/index.html +15 -15
  144. package/coverage/lcov-report/middleware/joi-validator.js.html +1 -1
  145. package/coverage/lcov-report/middleware/publicApi.js.html +1 -1
  146. package/coverage/lcov-report/middleware/resourceId.js.html +1 -1
  147. package/coverage/lcov-report/middleware/selfhost.js.html +1 -1
  148. package/coverage/lcov-report/middleware/usageQuota.js.html +1 -1
  149. package/coverage/lcov-report/middleware/utils.js.html +1 -1
  150. package/coverage/lcov-report/threads/automation.js.html +1 -1
  151. package/coverage/lcov-report/threads/index.html +1 -1
  152. package/coverage/lcov-report/threads/index.js.html +1 -1
  153. package/coverage/lcov-report/threads/query.js.html +1 -1
  154. package/coverage/lcov-report/threads/utils.js.html +1 -1
  155. package/coverage/lcov-report/utilities/bcrypt.js.html +1 -1
  156. package/coverage/lcov-report/utilities/budibaseDir.js.html +1 -1
  157. package/coverage/lcov-report/utilities/centralPath.js.html +1 -1
  158. package/coverage/lcov-report/utilities/csvParser.js.html +1 -1
  159. package/coverage/lcov-report/utilities/global.js.html +1 -1
  160. package/coverage/lcov-report/utilities/index.html +1 -1
  161. package/coverage/lcov-report/utilities/index.js.html +1 -1
  162. package/coverage/lcov-report/utilities/queue/inMemoryQueue.js.html +1 -1
  163. package/coverage/lcov-report/utilities/queue/index.html +1 -1
  164. package/coverage/lcov-report/utilities/routing/index.html +1 -1
  165. package/coverage/lcov-report/utilities/routing/index.js.html +1 -1
  166. package/coverage/lcov-report/utilities/rowProcessor/index.html +1 -1
  167. package/coverage/lcov-report/utilities/rowProcessor/index.js.html +12 -12
  168. package/coverage/lcov-report/utilities/rowProcessor/utils.js.html +8 -8
  169. package/coverage/lcov-report/utilities/scriptRunner.js.html +1 -1
  170. package/coverage/lcov-report/utilities/security.js.html +1 -1
  171. package/coverage/lcov-report/utilities/statusCodes.js.html +1 -1
  172. package/coverage/lcov-report/utilities/usageQuota/index.html +1 -1
  173. package/coverage/lcov-report/utilities/usageQuota/index.js.html +1 -1
  174. package/coverage/lcov-report/utilities/usageQuota/rows.js.html +1 -1
  175. package/coverage/lcov-report/utilities/usageQuota/usageQuoteReset.js.html +1 -1
  176. package/coverage/lcov-report/utilities/users.js.html +1 -1
  177. package/coverage/lcov-report/utilities/workerRequests.js.html +1 -1
  178. package/coverage/lcov.info +584 -546
  179. package/dist/api/controllers/integration.js +15 -1
  180. package/dist/api/controllers/permission.js +3 -4
  181. package/dist/api/controllers/query/import/index.js +2 -1
  182. package/dist/api/controllers/query/import/sources/base/index.js +12 -1
  183. package/dist/api/controllers/query/import/sources/curl.js +2 -2
  184. package/dist/api/controllers/query/import/sources/openapi3.js +174 -0
  185. package/dist/api/controllers/query/import/sources/tests/openapi3/data/crud/crud.json +253 -0
  186. package/dist/api/controllers/query/import/sources/tests/openapi3/data/petstore/petstore.json +1225 -0
  187. package/dist/api/controllers/row/internal.js +2 -1
  188. package/dist/api/routes/analytics.js +2 -2
  189. package/dist/api/routes/table.js +1 -1
  190. package/dist/automations/utils.js +3 -1
  191. package/dist/definitions/datasource.js +1 -0
  192. package/dist/environment.js +2 -0
  193. package/dist/integrations/base/sql.js +16 -9
  194. package/dist/integrations/dynamodb.js +3 -1
  195. package/dist/integrations/firebase.js +192 -0
  196. package/dist/integrations/googlesheets.js +17 -1
  197. package/dist/integrations/index.js +4 -1
  198. package/dist/integrations/mysql.js +14 -1
  199. package/dist/integrations/rest.js +2 -1
  200. package/dist/middleware/authorized.js +24 -7
  201. package/dist/package.json +7 -4
  202. package/dist/tsconfig.tsbuildinfo +1 -1
  203. package/package.json +8 -5
  204. package/scripts/dev/manage.js +2 -1
  205. package/specs/openapi.json +23 -3
  206. package/specs/openapi.yaml +20 -4
  207. package/specs/resources/query.js +27 -5
  208. package/src/api/controllers/integration.js +17 -1
  209. package/src/api/controllers/permission.js +3 -3
  210. package/src/api/controllers/query/import/index.ts +2 -1
  211. package/src/api/controllers/query/import/sources/base/index.ts +12 -2
  212. package/src/api/controllers/query/import/sources/curl.ts +2 -2
  213. package/src/api/controllers/query/import/sources/openapi3.ts +205 -0
  214. package/src/api/controllers/query/import/sources/tests/openapi3/data/crud/crud.json +253 -0
  215. package/src/api/controllers/query/import/sources/tests/openapi3/data/crud/crud.yaml +153 -0
  216. package/src/api/controllers/query/import/sources/tests/openapi3/data/petstore/petstore.json +1225 -0
  217. package/src/api/controllers/query/import/sources/tests/openapi3/data/petstore/petstore.yaml +804 -0
  218. package/src/api/controllers/query/import/sources/tests/openapi3/openapi3.spec.js +240 -0
  219. package/src/api/controllers/query/import/tests/index.spec.js +43 -0
  220. package/src/api/controllers/row/internal.js +5 -1
  221. package/src/api/routes/analytics.js +2 -2
  222. package/src/api/routes/table.js +1 -1
  223. package/src/api/routes/tests/misc.spec.js +2 -2
  224. package/src/automations/utils.js +5 -1
  225. package/src/definitions/datasource.ts +2 -5
  226. package/src/definitions/openapi.ts +480 -470
  227. package/src/environment.js +2 -0
  228. package/src/integrations/base/sql.ts +14 -9
  229. package/src/integrations/dynamodb.ts +3 -1
  230. package/src/integrations/firebase.ts +205 -0
  231. package/src/integrations/googlesheets.ts +16 -1
  232. package/src/integrations/index.ts +4 -1
  233. package/src/integrations/mysql.ts +15 -1
  234. package/src/integrations/rest.ts +2 -1
  235. package/src/integrations/tests/sql.spec.js +51 -0
  236. package/src/middleware/authorized.js +26 -6
  237. package/builder/assets/index.2dcb5072.js +0 -1291
@@ -208,7 +208,7 @@ exports.runView = <span class="fstat-no" title="function not covered" >as</span>
208
208
  <div class='footer quiet pad2 space-top1 center small'>
209
209
  Code coverage generated by
210
210
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
211
- at Fri Mar 25 2022 16:59:20 GMT+0000 (Coordinated Universal Time)
211
+ at Wed Mar 30 2022 16:29:25 GMT+0000 (Coordinated Universal Time)
212
212
  </div>
213
213
  </div>
214
214
  <script src="../prettify.js"></script>
@@ -155,7 +155,7 @@
155
155
  <div class='footer quiet pad2 space-top1 center small'>
156
156
  Code coverage generated by
157
157
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
158
- at Fri Mar 25 2022 16:59:20 GMT+0000 (Coordinated Universal Time)
158
+ at Wed Mar 30 2022 16:29:25 GMT+0000 (Coordinated Universal Time)
159
159
  </div>
160
160
  </div>
161
161
  <script src="../prettify.js"></script>
@@ -73,7 +73,7 @@ module.exports = client
73
73
  <div class='footer quiet pad2 space-top1 center small'>
74
74
  Code coverage generated by
75
75
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
76
- at Fri Mar 25 2022 16:59:20 GMT+0000 (Coordinated Universal Time)
76
+ at Wed Mar 30 2022 16:29:25 GMT+0000 (Coordinated Universal Time)
77
77
  </div>
78
78
  </div>
79
79
  <script src="../prettify.js"></script>
@@ -1456,7 +1456,7 @@ module.exports = LinkController
1456
1456
  <div class='footer quiet pad2 space-top1 center small'>
1457
1457
  Code coverage generated by
1458
1458
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
1459
- at Fri Mar 25 2022 16:59:20 GMT+0000 (Coordinated Universal Time)
1459
+ at Wed Mar 30 2022 16:29:25 GMT+0000 (Coordinated Universal Time)
1460
1460
  </div>
1461
1461
  </div>
1462
1462
  <script src="../../prettify.js"></script>
@@ -125,7 +125,7 @@
125
125
  <div class='footer quiet pad2 space-top1 center small'>
126
126
  Code coverage generated by
127
127
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
128
- at Fri Mar 25 2022 16:59:20 GMT+0000 (Coordinated Universal Time)
128
+ at Wed Mar 30 2022 16:29:25 GMT+0000 (Coordinated Universal Time)
129
129
  </div>
130
130
  </div>
131
131
  <script src="../../prettify.js"></script>
@@ -416,9 +416,9 @@
416
416
  <span class="cline-any cline-neutral">&nbsp;</span>
417
417
  <span class="cline-any cline-neutral">&nbsp;</span>
418
418
  <span class="cline-any cline-yes">40x</span>
419
- <span class="cline-any cline-yes">107x</span>
420
- <span class="cline-any cline-yes">107x</span>
421
- <span class="cline-any cline-yes">77x</span>
419
+ <span class="cline-any cline-yes">113x</span>
420
+ <span class="cline-any cline-yes">113x</span>
421
+ <span class="cline-any cline-yes">83x</span>
422
422
  <span class="cline-any cline-neutral">&nbsp;</span>
423
423
  <span class="cline-any cline-neutral">&nbsp;</span>
424
424
  <span class="cline-any cline-yes">30x</span>
@@ -456,13 +456,13 @@
456
456
  <span class="cline-any cline-neutral">&nbsp;</span>
457
457
  <span class="cline-any cline-yes">40x</span>
458
458
  <span class="cline-any cline-neutral">&nbsp;</span>
459
- <span class="cline-any cline-yes">27x</span>
460
- <span class="cline-any cline-yes">27x</span>
461
- <span class="cline-any cline-neutral">&nbsp;</span>
462
459
  <span class="cline-any cline-yes">33x</span>
463
460
  <span class="cline-any cline-yes">33x</span>
464
- <span class="cline-any cline-yes">105x</span>
465
- <span class="cline-any cline-yes">96x</span>
461
+ <span class="cline-any cline-neutral">&nbsp;</span>
462
+ <span class="cline-any cline-yes">39x</span>
463
+ <span class="cline-any cline-yes">39x</span>
464
+ <span class="cline-any cline-yes">117x</span>
465
+ <span class="cline-any cline-yes">108x</span>
466
466
  <span class="cline-any cline-neutral">&nbsp;</span>
467
467
  <span class="cline-any cline-yes">9x</span>
468
468
  <span class="cline-any cline-yes">9x</span>
@@ -477,7 +477,7 @@
477
477
  <span class="cline-any cline-yes">9x</span>
478
478
  <span class="cline-any cline-neutral">&nbsp;</span>
479
479
  <span class="cline-any cline-neutral">&nbsp;</span>
480
- <span class="cline-any cline-yes">27x</span>
480
+ <span class="cline-any cline-yes">33x</span>
481
481
  <span class="cline-any cline-neutral">&nbsp;</span>
482
482
  <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">const LinkController = require("./LinkController")
483
483
  const {
@@ -697,7 +697,7 @@ exports.squashLinksToPrimaryDisplay = async (table, enriched) =&gt; {
697
697
  <div class='footer quiet pad2 space-top1 center small'>
698
698
  Code coverage generated by
699
699
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
700
- at Fri Mar 25 2022 16:59:20 GMT+0000 (Coordinated Universal Time)
700
+ at Wed Mar 30 2022 16:29:25 GMT+0000 (Coordinated Universal Time)
701
701
  </div>
702
702
  </div>
703
703
  <script src="../../prettify.js"></script>
@@ -258,16 +258,16 @@
258
258
  <span class="cline-any cline-neutral">&nbsp;</span>
259
259
  <span class="cline-any cline-neutral">&nbsp;</span>
260
260
  <span class="cline-any cline-yes">40x</span>
261
- <span class="cline-any cline-yes">107x</span>
262
- <span class="cline-any cline-yes">310x</span>
261
+ <span class="cline-any cline-yes">113x</span>
262
+ <span class="cline-any cline-yes">322x</span>
263
263
  <span class="cline-any cline-yes">53x</span>
264
264
  <span class="cline-any cline-neutral">&nbsp;</span>
265
265
  <span class="cline-any cline-neutral">&nbsp;</span>
266
266
  <span class="cline-any cline-yes">40x</span>
267
- <span class="cline-any cline-yes">62x</span>
268
- <span class="cline-any cline-yes">62x</span>
269
- <span class="cline-any cline-yes">62x</span>
270
- <span class="cline-any cline-yes">35x</span>
267
+ <span class="cline-any cline-yes">68x</span>
268
+ <span class="cline-any cline-yes">68x</span>
269
+ <span class="cline-any cline-yes">68x</span>
270
+ <span class="cline-any cline-yes">41x</span>
271
271
  <span class="cline-any cline-neutral">&nbsp;</span>
272
272
  <span class="cline-any cline-yes">27x</span>
273
273
  <span class="cline-any cline-yes">27x</span>
@@ -412,7 +412,7 @@ exports.getRelatedTableForField = (table, fieldName) =&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 Fri Mar 25 2022 16:59:20 GMT+0000 (Coordinated Universal Time)
415
+ at Wed Mar 30 2022 16:29:25 GMT+0000 (Coordinated Universal Time)
416
416
  </div>
417
417
  </div>
418
418
  <script src="../../prettify.js"></script>
@@ -65,7 +65,7 @@
65
65
  <a name='L6'></a><a href='#L6'>6</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">55x</span>
66
66
  <span class="cline-any cline-neutral">&nbsp;</span>
67
67
  <span class="cline-any cline-yes">55x</span>
68
- <span class="cline-any cline-yes">945x</span>
68
+ <span class="cline-any cline-yes">995x</span>
69
69
  <span class="cline-any cline-neutral">&nbsp;</span>
70
70
  <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">const { v4 } = require("uuid")
71
71
  &nbsp;
@@ -79,7 +79,7 @@ module.exports = function () {
79
79
  <div class='footer quiet pad2 space-top1 center small'>
80
80
  Code coverage generated by
81
81
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
82
- at Fri Mar 25 2022 16:59:20 GMT+0000 (Coordinated Universal Time)
82
+ at Wed Mar 30 2022 16:29:25 GMT+0000 (Coordinated Universal Time)
83
83
  </div>
84
84
  </div>
85
85
  <script src="../prettify.js"></script>
@@ -782,7 +782,7 @@
782
782
  <span class="cline-any cline-neutral">&nbsp;</span>
783
783
  <span class="cline-any cline-neutral">&nbsp;</span>
784
784
  <span class="cline-any cline-yes">55x</span>
785
- <span class="cline-any cline-yes">81x</span>
785
+ <span class="cline-any cline-yes">131x</span>
786
786
  <span class="cline-any cline-neutral">&nbsp;</span>
787
787
  <span class="cline-any cline-neutral">&nbsp;</span>
788
788
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -1237,7 +1237,7 @@ exports.getMultiIDParams = ids =&gt; {
1237
1237
  <div class='footer quiet pad2 space-top1 center small'>
1238
1238
  Code coverage generated by
1239
1239
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
1240
- at Fri Mar 25 2022 16:59:20 GMT+0000 (Coordinated Universal Time)
1240
+ at Wed Mar 30 2022 16:29:25 GMT+0000 (Coordinated Universal Time)
1241
1241
  </div>
1242
1242
  </div>
1243
1243
  <script src="../prettify.js"></script>
@@ -217,7 +217,7 @@ module.exports = AutomationEmitter
217
217
  <div class='footer quiet pad2 space-top1 center small'>
218
218
  Code coverage generated by
219
219
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
220
- at Fri Mar 25 2022 16:59:20 GMT+0000 (Coordinated Universal Time)
220
+ at Wed Mar 30 2022 16:29:25 GMT+0000 (Coordinated Universal Time)
221
221
  </div>
222
222
  </div>
223
223
  <script src="../prettify.js"></script>
@@ -125,7 +125,7 @@
125
125
  <div class='footer quiet pad2 space-top1 center small'>
126
126
  Code coverage generated by
127
127
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
128
- at Fri Mar 25 2022 16:59:20 GMT+0000 (Coordinated Universal Time)
128
+ at Wed Mar 30 2022 16:29:25 GMT+0000 (Coordinated Universal Time)
129
129
  </div>
130
130
  </div>
131
131
  <script src="../prettify.js"></script>
@@ -154,7 +154,7 @@ module.exports = emitter
154
154
  <div class='footer quiet pad2 space-top1 center small'>
155
155
  Code coverage generated by
156
156
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
157
- at Fri Mar 25 2022 16:59:20 GMT+0000 (Coordinated Universal Time)
157
+ at Wed Mar 30 2022 16:29:25 GMT+0000 (Coordinated Universal Time)
158
158
  </div>
159
159
  </div>
160
160
  <script src="../prettify.js"></script>
@@ -178,7 +178,7 @@ exports.tableEmission = ({ emitter, eventName, appId, table, metadata }) =&gt; {
178
178
  <div class='footer quiet pad2 space-top1 center small'>
179
179
  Code coverage generated by
180
180
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
181
- at Fri Mar 25 2022 16:59:20 GMT+0000 (Coordinated Universal Time)
181
+ at Wed Mar 30 2022 16:29:25 GMT+0000 (Coordinated Universal Time)
182
182
  </div>
183
183
  </div>
184
184
  <script src="../prettify.js"></script>
@@ -23,16 +23,16 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">73.54% </span>
26
+ <span class="strong">73.51% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>3781/5141</span>
28
+ <span class='fraction'>3794/5161</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">54.24% </span>
33
+ <span class="strong">54.3% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>1124/2072</span>
35
+ <span class='fraction'>1135/2090</span>
36
36
  </div>
37
37
 
38
38
 
@@ -44,9 +44,9 @@
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">73.84% </span>
47
+ <span class="strong">73.8% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>3732/5054</span>
49
+ <span class='fraction'>3745/5074</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.91" class="pic medium">
92
+ <td data-value="70.84" 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.91" class="pct medium">70.91%</td>
96
- <td data-value="1114" class="abs medium">790/1114</td>
97
- <td data-value="47.12" class="pct low">47.12%</td>
98
- <td data-value="365" class="abs low">172/365</td>
95
+ <td data-value="70.84" class="pct medium">70.84%</td>
96
+ <td data-value="1125" class="abs medium">797/1125</td>
97
+ <td data-value="46.73" class="pct low">46.73%</td>
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="71.01" class="pct medium">71.01%</td>
102
- <td data-value="1097" class="abs medium">779/1097</td>
101
+ <td data-value="70.93" class="pct medium">70.93%</td>
102
+ <td data-value="1108" class="abs medium">786/1108</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.68" class="pic medium">
122
+ <td data-value="61.73" 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.68" class="pct medium">61.68%</td>
126
- <td data-value="689" class="abs medium">425/689</td>
125
+ <td data-value="61.73" class="pct medium">61.73%</td>
126
+ <td data-value="690" class="abs medium">426/690</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.83" class="pct medium">61.83%</td>
132
- <td data-value="676" class="abs medium">418/676</td>
131
+ <td data-value="61.89" class="pct medium">61.89%</td>
132
+ <td data-value="677" class="abs medium">419/677</td>
133
133
  </tr>
134
134
 
135
135
  <tr>
@@ -194,17 +194,17 @@
194
194
 
195
195
  <tr>
196
196
  <td class="file high" data-value="automations"><a href="automations/index.html">automations</a></td>
197
- <td data-value="84.5" class="pic high">
197
+ <td data-value="84.18" class="pic high">
198
198
  <div class="chart"><div class="cover-fill" style="width: 84%"></div><div class="cover-empty" style="width: 16%"></div></div>
199
199
  </td>
200
- <td data-value="84.5" class="pct high">84.5%</td>
201
- <td data-value="213" class="abs high">180/213</td>
200
+ <td data-value="84.18" class="pct high">84.18%</td>
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
204
  <td data-value="81.48" class="pct high">81.48%</td>
205
205
  <td data-value="27" class="abs high">22/27</td>
206
- <td data-value="84.5" class="pct high">84.5%</td>
207
- <td data-value="213" class="abs high">180/213</td>
206
+ <td data-value="84.18" class="pct high">84.18%</td>
207
+ <td data-value="215" class="abs high">181/215</td>
208
208
  </tr>
209
209
 
210
210
  <tr>
@@ -314,17 +314,17 @@
314
314
 
315
315
  <tr>
316
316
  <td class="file high" data-value="middleware"><a href="middleware/index.html">middleware</a></td>
317
- <td data-value="81.56" class="pic high">
317
+ <td data-value="81.25" class="pic high">
318
318
  <div class="chart"><div class="cover-fill" style="width: 81%"></div><div class="cover-empty" style="width: 19%"></div></div>
319
319
  </td>
320
- <td data-value="81.56" class="pct high">81.56%</td>
321
- <td data-value="282" class="abs high">230/282</td>
322
- <td data-value="70.21" class="pct medium">70.21%</td>
323
- <td data-value="188" class="abs medium">132/188</td>
320
+ <td data-value="81.25" class="pct high">81.25%</td>
321
+ <td data-value="288" class="abs high">234/288</td>
322
+ <td data-value="70.44" class="pct medium">70.44%</td>
323
+ <td data-value="203" class="abs medium">143/203</td>
324
324
  <td data-value="86.84" class="pct high">86.84%</td>
325
325
  <td data-value="38" class="abs high">33/38</td>
326
- <td data-value="82.43" class="pct high">82.43%</td>
327
- <td data-value="279" class="abs high">230/279</td>
326
+ <td data-value="82.1" class="pct high">82.1%</td>
327
+ <td data-value="285" class="abs high">234/285</td>
328
328
  </tr>
329
329
 
330
330
  <tr>
@@ -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 Fri Mar 25 2022 16:59:20 GMT+0000 (Coordinated Universal Time)
428
+ at Wed Mar 30 2022 16:29:25 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 Fri Mar 25 2022 16:59:20 GMT+0000 (Coordinated Universal Time)
67
+ at Wed Mar 30 2022 16:29:25 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 Fri Mar 25 2022 16:59:20 GMT+0000 (Coordinated Universal Time)
98
+ at Wed Mar 30 2022 16:29:25 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 Fri Mar 25 2022 16:59:20 GMT+0000 (Coordinated Universal Time)
124
+ at Wed Mar 30 2022 16:29:25 GMT+0000 (Coordinated Universal Time)
125
125
  </div>
126
126
  </div>
127
127
  <script src="../prettify.js"></script>
@@ -23,16 +23,16 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">90.9% </span>
26
+ <span class="strong">88% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>40/44</span>
28
+ <span class='fraction'>44/50</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">87.5% </span>
33
+ <span class="strong">82.97% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>28/32</span>
35
+ <span class='fraction'>39/47</span>
36
36
  </div>
37
37
 
38
38
 
@@ -44,9 +44,9 @@
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">93.02% </span>
47
+ <span class="strong">89.79% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>40/43</span>
49
+ <span class='fraction'>44/49</span>
50
50
  </div>
51
51
 
52
52
 
@@ -163,7 +163,27 @@
163
163
  <a name='L104'></a><a href='#L104'>104</a>
164
164
  <a name='L105'></a><a href='#L105'>105</a>
165
165
  <a name='L106'></a><a href='#L106'>106</a>
166
- <a name='L107'></a><a href='#L107'>107</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
166
+ <a name='L107'></a><a href='#L107'>107</a>
167
+ <a name='L108'></a><a href='#L108'>108</a>
168
+ <a name='L109'></a><a href='#L109'>109</a>
169
+ <a name='L110'></a><a href='#L110'>110</a>
170
+ <a name='L111'></a><a href='#L111'>111</a>
171
+ <a name='L112'></a><a href='#L112'>112</a>
172
+ <a name='L113'></a><a href='#L113'>113</a>
173
+ <a name='L114'></a><a href='#L114'>114</a>
174
+ <a name='L115'></a><a href='#L115'>115</a>
175
+ <a name='L116'></a><a href='#L116'>116</a>
176
+ <a name='L117'></a><a href='#L117'>117</a>
177
+ <a name='L118'></a><a href='#L118'>118</a>
178
+ <a name='L119'></a><a href='#L119'>119</a>
179
+ <a name='L120'></a><a href='#L120'>120</a>
180
+ <a name='L121'></a><a href='#L121'>121</a>
181
+ <a name='L122'></a><a href='#L122'>122</a>
182
+ <a name='L123'></a><a href='#L123'>123</a>
183
+ <a name='L124'></a><a href='#L124'>124</a>
184
+ <a name='L125'></a><a href='#L125'>125</a>
185
+ <a name='L126'></a><a href='#L126'>126</a>
186
+ <a name='L127'></a><a href='#L127'>127</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
167
187
  <span class="cline-any cline-neutral">&nbsp;</span>
168
188
  <span class="cline-any cline-neutral">&nbsp;</span>
169
189
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -171,6 +191,7 @@
171
191
  <span class="cline-any cline-neutral">&nbsp;</span>
172
192
  <span class="cline-any cline-neutral">&nbsp;</span>
173
193
  <span class="cline-any cline-neutral">&nbsp;</span>
194
+ <span class="cline-any cline-neutral">&nbsp;</span>
174
195
  <span class="cline-any cline-yes">25x</span>
175
196
  <span class="cline-any cline-yes">25x</span>
176
197
  <span class="cline-any cline-yes">25x</span>
@@ -247,14 +268,24 @@
247
268
  <span class="cline-any cline-neutral">&nbsp;</span>
248
269
  <span class="cline-any cline-neutral">&nbsp;</span>
249
270
  <span class="cline-any cline-yes">181x</span>
271
+ <span class="cline-any cline-neutral">&nbsp;</span>
272
+ <span class="cline-any cline-neutral">&nbsp;</span>
273
+ <span class="cline-any cline-yes">181x</span>
274
+ <span class="cline-any cline-neutral">&nbsp;</span>
275
+ <span class="cline-any cline-neutral">&nbsp;</span>
250
276
  <span class="cline-any cline-yes">181x</span>
251
277
  <span class="cline-any cline-yes">181x</span>
252
278
  <span class="cline-any cline-yes">69x</span>
279
+ <span class="cline-any cline-yes">69x</span>
280
+ <span class="cline-any cline-no">&nbsp;</span>
281
+ <span class="cline-any cline-neutral">&nbsp;</span>
253
282
  <span class="cline-any cline-neutral">&nbsp;</span>
254
283
  <span class="cline-any cline-neutral">&nbsp;</span>
255
284
  <span class="cline-any cline-neutral">&nbsp;</span>
256
285
  <span class="cline-any cline-yes">181x</span>
257
- <span class="cline-any cline-yes">181x</span>
286
+ <span class="cline-any cline-neutral">&nbsp;</span>
287
+ <span class="cline-any cline-neutral">&nbsp;</span>
288
+ <span class="cline-any cline-neutral">&nbsp;</span>
258
289
  <span class="cline-any cline-yes">1x</span>
259
290
  <span class="cline-any cline-neutral">&nbsp;</span>
260
291
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -263,10 +294,19 @@
263
294
  <span class="cline-any cline-yes">3x</span>
264
295
  <span class="cline-any cline-neutral">&nbsp;</span>
265
296
  <span class="cline-any cline-neutral">&nbsp;</span>
297
+ <span class="cline-any cline-yes">177x</span>
266
298
  <span class="cline-any cline-neutral">&nbsp;</span>
267
299
  <span class="cline-any cline-yes">177x</span>
268
300
  <span class="cline-any cline-neutral">&nbsp;</span>
269
301
  <span class="cline-any cline-neutral">&nbsp;</span>
302
+ <span class="cline-any cline-yes">27x</span>
303
+ <span class="cline-any cline-no">&nbsp;</span>
304
+ <span class="cline-any cline-neutral">&nbsp;</span>
305
+ <span class="cline-any cline-yes">27x</span>
306
+ <span class="cline-any cline-neutral">&nbsp;</span>
307
+ <span class="cline-any cline-neutral">&nbsp;</span>
308
+ <span class="cline-any cline-neutral">&nbsp;</span>
309
+ <span class="cline-any cline-neutral">&nbsp;</span>
270
310
  <span class="cline-any cline-yes">150x</span>
271
311
  <span class="cline-any cline-neutral">&nbsp;</span>
272
312
  <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">const {
@@ -276,6 +316,7 @@
276
316
  } = require("@budibase/backend-core/roles")
277
317
  const {
278
318
  PermissionTypes,
319
+ PermissionLevels,
279
320
  doesHaveBasePermission,
280
321
  } = require("@budibase/backend-core/permissions")
281
322
  const builderMiddleware = require("./builder")
@@ -335,7 +376,7 @@ const checkAuthorizedResource = async (
335
376
  }
336
377
  &nbsp;
337
378
  module.exports =
338
- (permType, permLevel = null) =&gt;
379
+ (permType, permLevel = null, opts = { schema: false }) =&gt;
339
380
  async (ctx, next) =&gt; {
340
381
  // webhooks don't need authentication, each webhook unique
341
382
  // also internal requests (between services) don't need authorized
@@ -352,15 +393,25 @@ module.exports =
352
393
  await builderMiddleware(ctx, permType)
353
394
  &nbsp;
354
395
  // get the resource roles
355
- let resourceRoles = []
396
+ let resourceRoles = [],
397
+ otherLevelRoles
398
+ const otherLevel =
399
+ permLevel === PermissionLevels.READ
400
+ ? PermissionLevels.WRITE
401
+ : PermissionLevels.READ
356
402
  const appId = getAppId()
357
403
  if (appId &amp;&amp; hasResource(ctx)) {
358
404
  resourceRoles = await getRequiredResourceRole(permLevel, ctx)
405
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (opts &amp;&amp; opts.schema) {
406
+ <span class="cstat-no" title="statement not covered" > otherLevelRoles = await getRequiredResourceRole(otherLevel, ctx)</span>
407
+ }
359
408
  }
360
409
  &nbsp;
361
410
  // if the resource is public, proceed
362
- const isPublicResource = resourceRoles.includes(BUILTIN_ROLE_IDS.PUBLIC)
363
- if (isPublicResource) {
411
+ if (
412
+ resourceRoles.includes(BUILTIN_ROLE_IDS.PUBLIC) ||
413
+ (otherLevelRoles &amp;&amp; <span class="branch-2 cbranch-no" title="branch not covered" >otherLevelRoles.includes(BUILTIN_ROLE_IDS.PUBLIC))</span>
414
+ ) {
364
415
  return next()
365
416
  }
366
417
  &nbsp;
@@ -369,8 +420,17 @@ module.exports =
369
420
  return ctx.throw(403, "Session not authenticated")
370
421
  }
371
422
  &nbsp;
372
- // check authorized
373
- await checkAuthorized(ctx, resourceRoles, permType, permLevel)
423
+ try {
424
+ // check authorized
425
+ await checkAuthorized(ctx, resourceRoles, permType, permLevel)
426
+ } catch (err) {
427
+ // this is a schema, check if
428
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (opts &amp;&amp; opts.schema &amp;&amp; <span class="branch-2 cbranch-no" title="branch not covered" >permLevel)</span> {
429
+ <span class="cstat-no" title="statement not covered" > await checkAuthorized(ctx, otherLevelRoles, permType, otherLevel)</span>
430
+ } else {
431
+ throw err
432
+ }
433
+ }
374
434
  &nbsp;
375
435
  // csrf protection
376
436
  return csrf(ctx, next)
@@ -382,7 +442,7 @@ module.exports =
382
442
  <div class='footer quiet pad2 space-top1 center small'>
383
443
  Code coverage generated by
384
444
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
385
- at Fri Mar 25 2022 16:59:20 GMT+0000 (Coordinated Universal Time)
445
+ at Wed Mar 30 2022 16:29:25 GMT+0000 (Coordinated Universal Time)
386
446
  </div>
387
447
  </div>
388
448
  <script src="../prettify.js"></script>
@@ -298,7 +298,7 @@ module.exports = async (ctx, permType) =&gt; {
298
298
  <div class='footer quiet pad2 space-top1 center small'>
299
299
  Code coverage generated by
300
300
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
301
- at Fri Mar 25 2022 16:59:20 GMT+0000 (Coordinated Universal Time)
301
+ at Wed Mar 30 2022 16:29:25 GMT+0000 (Coordinated Universal Time)
302
302
  </div>
303
303
  </div>
304
304
  <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 Fri Mar 25 2022 16:59:20 GMT+0000 (Coordinated Universal Time)
415
+ at Wed Mar 30 2022 16:29:25 GMT+0000 (Coordinated Universal Time)
416
416
  </div>
417
417
  </div>
418
418
  <script src="../prettify.js"></script>