@budibase/server 1.1.25-alpha.2 → 1.1.27

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 (183) hide show
  1. package/builder/assets/{index.343949ab.css → index.5cf5be06.css} +2 -2
  2. package/builder/assets/index.e96881ab.js +979 -0
  3. package/builder/assets/{vendor.b0c43a06.js → vendor.7f11b0ca.js} +1 -1
  4. package/builder/index.html +3 -3
  5. package/coverage/clover.xml +220 -237
  6. package/coverage/coverage-final.json +7 -7
  7. package/coverage/lcov-report/api/controllers/apikeys.js.html +1 -1
  8. package/coverage/lcov-report/api/controllers/auth.js.html +1 -1
  9. package/coverage/lcov-report/api/controllers/automation.js.html +1 -1
  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 +1 -1
  14. package/coverage/lcov-report/api/controllers/dev.js.html +1 -1
  15. package/coverage/lcov-report/api/controllers/index.html +1 -1
  16. package/coverage/lcov-report/api/controllers/integration.js.html +1 -1
  17. package/coverage/lcov-report/api/controllers/layout.js.html +1 -1
  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 +1 -1
  21. package/coverage/lcov-report/api/controllers/query/index.html +1 -1
  22. package/coverage/lcov-report/api/controllers/query/validation.js.html +2 -2
  23. package/coverage/lcov-report/api/controllers/role.js.html +1 -1
  24. package/coverage/lcov-report/api/controllers/routing.js.html +1 -1
  25. package/coverage/lcov-report/api/controllers/row/external.js.html +1 -1
  26. package/coverage/lcov-report/api/controllers/row/index.html +18 -18
  27. package/coverage/lcov-report/api/controllers/row/internal.js.html +1 -1
  28. package/coverage/lcov-report/api/controllers/row/internalSearch.js.html +49 -94
  29. package/coverage/lcov-report/api/controllers/row/staticFormula.js.html +1 -1
  30. package/coverage/lcov-report/api/controllers/row/utils.js.html +1 -1
  31. package/coverage/lcov-report/api/controllers/screen.js.html +1 -1
  32. package/coverage/lcov-report/api/controllers/script.js.html +1 -1
  33. package/coverage/lcov-report/api/controllers/table/bulkFormula.js.html +1 -1
  34. package/coverage/lcov-report/api/controllers/table/external.js.html +1 -1
  35. package/coverage/lcov-report/api/controllers/table/index.html +1 -1
  36. package/coverage/lcov-report/api/controllers/table/index.js.html +1 -1
  37. package/coverage/lcov-report/api/controllers/templates.js.html +1 -1
  38. package/coverage/lcov-report/api/controllers/user.js.html +1 -1
  39. package/coverage/lcov-report/api/controllers/view/exporters.js.html +1 -1
  40. package/coverage/lcov-report/api/controllers/view/index.html +1 -1
  41. package/coverage/lcov-report/api/controllers/view/index.js.html +1 -1
  42. package/coverage/lcov-report/api/controllers/view/utils.js.html +1 -1
  43. package/coverage/lcov-report/api/controllers/view/viewBuilder.js.html +1 -1
  44. package/coverage/lcov-report/api/controllers/webhook.js.html +1 -1
  45. package/coverage/lcov-report/api/index.html +1 -1
  46. package/coverage/lcov-report/api/index.js.html +1 -1
  47. package/coverage/lcov-report/api/routes/analytics.js.html +1 -1
  48. package/coverage/lcov-report/api/routes/apikeys.js.html +1 -1
  49. package/coverage/lcov-report/api/routes/auth.js.html +1 -1
  50. package/coverage/lcov-report/api/routes/automation.js.html +1 -1
  51. package/coverage/lcov-report/api/routes/backup.js.html +1 -1
  52. package/coverage/lcov-report/api/routes/cloud.js.html +1 -1
  53. package/coverage/lcov-report/api/routes/component.js.html +1 -1
  54. package/coverage/lcov-report/api/routes/datasource.js.html +1 -1
  55. package/coverage/lcov-report/api/routes/deploy.js.html +1 -1
  56. package/coverage/lcov-report/api/routes/dev.js.html +1 -1
  57. package/coverage/lcov-report/api/routes/index.html +1 -1
  58. package/coverage/lcov-report/api/routes/integration.js.html +1 -1
  59. package/coverage/lcov-report/api/routes/layout.js.html +1 -1
  60. package/coverage/lcov-report/api/routes/metadata.js.html +1 -1
  61. package/coverage/lcov-report/api/routes/migrations.js.html +1 -1
  62. package/coverage/lcov-report/api/routes/permission.js.html +1 -1
  63. package/coverage/lcov-report/api/routes/query.js.html +1 -1
  64. package/coverage/lcov-report/api/routes/role.js.html +1 -1
  65. package/coverage/lcov-report/api/routes/routing.js.html +1 -1
  66. package/coverage/lcov-report/api/routes/screen.js.html +1 -1
  67. package/coverage/lcov-report/api/routes/script.js.html +1 -1
  68. package/coverage/lcov-report/api/routes/table.js.html +1 -1
  69. package/coverage/lcov-report/api/routes/templates.js.html +1 -1
  70. package/coverage/lcov-report/api/routes/user.js.html +1 -1
  71. package/coverage/lcov-report/api/routes/utils/index.html +1 -1
  72. package/coverage/lcov-report/api/routes/utils/validators.js.html +2 -2
  73. package/coverage/lcov-report/api/routes/view.js.html +1 -1
  74. package/coverage/lcov-report/api/routes/webhook.js.html +1 -1
  75. package/coverage/lcov-report/automations/actions.js.html +1 -1
  76. package/coverage/lcov-report/automations/automationUtils.js.html +1 -1
  77. package/coverage/lcov-report/automations/bullboard.js.html +1 -1
  78. package/coverage/lcov-report/automations/index.html +1 -1
  79. package/coverage/lcov-report/automations/index.js.html +1 -1
  80. package/coverage/lcov-report/automations/steps/bash.js.html +1 -1
  81. package/coverage/lcov-report/automations/steps/delay.js.html +1 -1
  82. package/coverage/lcov-report/automations/steps/discord.js.html +1 -1
  83. package/coverage/lcov-report/automations/steps/executeQuery.js.html +2 -5
  84. package/coverage/lcov-report/automations/steps/executeScript.js.html +1 -1
  85. package/coverage/lcov-report/automations/steps/filter.js.html +1 -1
  86. package/coverage/lcov-report/automations/steps/index.html +1 -1
  87. package/coverage/lcov-report/automations/steps/integromat.js.html +1 -1
  88. package/coverage/lcov-report/automations/steps/loop.js.html +1 -1
  89. package/coverage/lcov-report/automations/steps/outgoingWebhook.js.html +1 -1
  90. package/coverage/lcov-report/automations/steps/queryRows.js.html +1 -1
  91. package/coverage/lcov-report/automations/steps/sendSmtpEmail.js.html +1 -1
  92. package/coverage/lcov-report/automations/steps/serverLog.js.html +1 -1
  93. package/coverage/lcov-report/automations/steps/slack.js.html +1 -1
  94. package/coverage/lcov-report/automations/steps/updateRow.js.html +1 -1
  95. package/coverage/lcov-report/automations/steps/utils.js.html +1 -1
  96. package/coverage/lcov-report/automations/steps/zapier.js.html +1 -1
  97. package/coverage/lcov-report/automations/triggerInfo/app.js.html +1 -1
  98. package/coverage/lcov-report/automations/triggerInfo/cron.js.html +1 -1
  99. package/coverage/lcov-report/automations/triggerInfo/index.html +1 -1
  100. package/coverage/lcov-report/automations/triggerInfo/index.js.html +1 -1
  101. package/coverage/lcov-report/automations/triggerInfo/rowDeleted.js.html +1 -1
  102. package/coverage/lcov-report/automations/triggerInfo/rowSaved.js.html +1 -1
  103. package/coverage/lcov-report/automations/triggerInfo/rowUpdated.js.html +1 -1
  104. package/coverage/lcov-report/automations/triggerInfo/webhook.js.html +1 -1
  105. package/coverage/lcov-report/automations/triggers.js.html +1 -1
  106. package/coverage/lcov-report/constants/index.html +1 -1
  107. package/coverage/lcov-report/constants/index.js.html +1 -1
  108. package/coverage/lcov-report/constants/layouts.js.html +1 -1
  109. package/coverage/lcov-report/constants/screens.js.html +1 -1
  110. package/coverage/lcov-report/db/inMemoryView.js.html +1 -1
  111. package/coverage/lcov-report/db/index.html +1 -1
  112. package/coverage/lcov-report/db/index.js.html +1 -1
  113. package/coverage/lcov-report/db/linkedRows/LinkController.js.html +1 -1
  114. package/coverage/lcov-report/db/linkedRows/index.html +1 -1
  115. package/coverage/lcov-report/db/linkedRows/index.js.html +1 -1
  116. package/coverage/lcov-report/db/linkedRows/linkUtils.js.html +1 -1
  117. package/coverage/lcov-report/db/newid.js.html +1 -1
  118. package/coverage/lcov-report/db/utils.js.html +1 -1
  119. package/coverage/lcov-report/events/AutomationEmitter.js.html +1 -1
  120. package/coverage/lcov-report/events/index.html +1 -1
  121. package/coverage/lcov-report/events/index.js.html +1 -1
  122. package/coverage/lcov-report/events/utils.js.html +1 -1
  123. package/coverage/lcov-report/favicon.png +0 -0
  124. package/coverage/lcov-report/index.html +39 -39
  125. package/coverage/lcov-report/integrations/tests/TestConfiguration.js.html +1 -1
  126. package/coverage/lcov-report/integrations/tests/index.html +1 -1
  127. package/coverage/lcov-report/middleware/appInfo.js.html +1 -1
  128. package/coverage/lcov-report/middleware/builder.js.html +1 -1
  129. package/coverage/lcov-report/middleware/currentapp.js.html +1 -1
  130. package/coverage/lcov-report/middleware/index.html +21 -21
  131. package/coverage/lcov-report/middleware/joi-validator.js.html +43 -43
  132. package/coverage/lcov-report/middleware/publicApi.js.html +1 -1
  133. package/coverage/lcov-report/middleware/resourceId.js.html +1 -1
  134. package/coverage/lcov-report/middleware/selfhost.js.html +1 -1
  135. package/coverage/lcov-report/middleware/utils.js.html +1 -1
  136. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  137. package/coverage/lcov-report/threads/automation.js.html +1 -1
  138. package/coverage/lcov-report/threads/index.html +1 -1
  139. package/coverage/lcov-report/threads/query.js.html +1 -1
  140. package/coverage/lcov-report/threads/utils.js.html +1 -1
  141. package/coverage/lcov-report/utilities/budibaseDir.js.html +1 -1
  142. package/coverage/lcov-report/utilities/centralPath.js.html +1 -1
  143. package/coverage/lcov-report/utilities/csvParser.js.html +1 -1
  144. package/coverage/lcov-report/utilities/global.js.html +13 -67
  145. package/coverage/lcov-report/utilities/index.html +20 -20
  146. package/coverage/lcov-report/utilities/index.js.html +1 -1
  147. package/coverage/lcov-report/utilities/queue/inMemoryQueue.js.html +1 -1
  148. package/coverage/lcov-report/utilities/queue/index.html +1 -1
  149. package/coverage/lcov-report/utilities/routing/index.html +1 -1
  150. package/coverage/lcov-report/utilities/routing/index.js.html +1 -1
  151. package/coverage/lcov-report/utilities/rowProcessor/index.html +1 -1
  152. package/coverage/lcov-report/utilities/rowProcessor/index.js.html +1 -1
  153. package/coverage/lcov-report/utilities/rowProcessor/utils.js.html +1 -1
  154. package/coverage/lcov-report/utilities/scriptRunner.js.html +1 -1
  155. package/coverage/lcov-report/utilities/security.js.html +2 -2
  156. package/coverage/lcov-report/utilities/statusCodes.js.html +1 -1
  157. package/coverage/lcov-report/utilities/usageQuota/index.html +1 -1
  158. package/coverage/lcov-report/utilities/usageQuota/rows.js.html +1 -1
  159. package/coverage/lcov-report/utilities/usageQuota/usageQuoteReset.js.html +1 -1
  160. package/coverage/lcov-report/utilities/users.js.html +1 -1
  161. package/coverage/lcov-report/utilities/workerRequests.js.html +1 -1
  162. package/coverage/lcov.info +420 -454
  163. package/dist/api/controllers/query/index.js +1 -1
  164. package/dist/api/controllers/query/validation.js +1 -1
  165. package/dist/api/controllers/row/internalSearch.js +16 -30
  166. package/dist/api/routes/utils/validators.js +1 -1
  167. package/dist/integrations/base/sql.js +14 -43
  168. package/dist/package.json +8 -8
  169. package/dist/tsconfig.build.tsbuildinfo +1 -1
  170. package/dist/utilities/global.js +4 -21
  171. package/package.json +9 -9
  172. package/src/api/controllers/query/index.ts +1 -1
  173. package/src/api/controllers/query/validation.js +1 -1
  174. package/src/api/controllers/row/internalSearch.js +20 -35
  175. package/src/api/routes/tests/user.spec.js +0 -2
  176. package/src/api/routes/utils/validators.js +1 -1
  177. package/src/automations/steps/executeQuery.js +0 -1
  178. package/src/definitions/datasource.ts +0 -3
  179. package/src/integrations/base/sql.ts +13 -44
  180. package/src/integrations/tests/sql.spec.js +4 -50
  181. package/src/middleware/tests/currentapp.spec.js +0 -11
  182. package/src/utilities/global.js +2 -20
  183. package/builder/assets/index.068f4e39.js +0 -978
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">76.08% </span>
26
+ <span class="strong">84.78% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>140/184</span>
28
+ <span class='fraction'>156/184</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">72.35% </span>
33
+ <span class="strong">76.42% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>89/123</span>
35
+ <span class='fraction'>94/123</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">84% </span>
40
+ <span class="strong">100% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>21/25</span>
42
+ <span class='fraction'>25/25</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">76.08% </span>
47
+ <span class="strong">84.78% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>140/184</span>
49
+ <span class='fraction'>156/184</span>
50
50
  </div>
51
51
 
52
52
 
@@ -61,7 +61,7 @@
61
61
  </div>
62
62
  </template>
63
63
  </div>
64
- <div class='status-line medium'></div>
64
+ <div class='status-line high'></div>
65
65
  <div class="pad1">
66
66
  <table class="coverage-summary">
67
67
  <thead>
@@ -124,18 +124,18 @@
124
124
  </tr>
125
125
 
126
126
  <tr>
127
- <td class="file low" data-value="joi-validator.js"><a href="joi-validator.js.html">joi-validator.js</a></td>
128
- <td data-value="0" class="pic low">
129
- <div class="chart"><div class="cover-fill" style="width: 0%"></div><div class="cover-empty" style="width: 100%"></div></div>
127
+ <td class="file high" data-value="joi-validator.js"><a href="joi-validator.js.html">joi-validator.js</a></td>
128
+ <td data-value="84.21" class="pic high">
129
+ <div class="chart"><div class="cover-fill" style="width: 84%"></div><div class="cover-empty" style="width: 16%"></div></div>
130
130
  </td>
131
- <td data-value="0" class="pct low">0%</td>
132
- <td data-value="19" class="abs low">0/19</td>
133
- <td data-value="0" class="pct low">0%</td>
134
- <td data-value="8" class="abs low">0/8</td>
135
- <td data-value="0" class="pct low">0%</td>
136
- <td data-value="4" class="abs low">0/4</td>
137
- <td data-value="0" class="pct low">0%</td>
138
- <td data-value="19" class="abs low">0/19</td>
131
+ <td data-value="84.21" class="pct high">84.21%</td>
132
+ <td data-value="19" class="abs high">16/19</td>
133
+ <td data-value="62.5" class="pct medium">62.5%</td>
134
+ <td data-value="8" class="abs medium">5/8</td>
135
+ <td data-value="100" class="pct high">100%</td>
136
+ <td data-value="4" class="abs high">4/4</td>
137
+ <td data-value="84.21" class="pct high">84.21%</td>
138
+ <td data-value="19" class="abs high">16/19</td>
139
139
  </tr>
140
140
 
141
141
  <tr>
@@ -206,7 +206,7 @@
206
206
  <div class='footer quiet pad2 space-top1 center small'>
207
207
  Code coverage generated by
208
208
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
209
- at 2022-07-27T15:18:51.570Z
209
+ at Wed Jul 27 2022 15:46:03 GMT+0000 (Coordinated Universal Time)
210
210
  </div>
211
211
  <script src="../prettify.js"></script>
212
212
  <script>
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">0% </span>
26
+ <span class="strong">84.21% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>0/19</span>
28
+ <span class='fraction'>16/19</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">0% </span>
33
+ <span class="strong">62.5% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>0/8</span>
35
+ <span class='fraction'>5/8</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">0% </span>
40
+ <span class="strong">100% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>0/4</span>
42
+ <span class='fraction'>4/4</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">0% </span>
47
+ <span class="strong">84.21% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>0/19</span>
49
+ <span class='fraction'>16/19</span>
50
50
  </div>
51
51
 
52
52
 
@@ -61,7 +61,7 @@
61
61
  </div>
62
62
  </template>
63
63
  </div>
64
- <div class='status-line low'></div>
64
+ <div class='status-line high'></div>
65
65
  <pre><table class="coverage">
66
66
  <tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
67
67
  <a name='L2'></a><a href='#L2'>2</a>
@@ -99,77 +99,77 @@
99
99
  <a name='L34'></a><a href='#L34'>34</a>
100
100
  <a name='L35'></a><a href='#L35'>35</a>
101
101
  <a name='L36'></a><a href='#L36'>36</a>
102
- <a name='L37'></a><a href='#L37'>37</a></td><td class="line-coverage quiet"><span class="cline-any cline-no">&nbsp;</span>
102
+ <a name='L37'></a><a href='#L37'>37</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">44x</span>
103
103
  <span class="cline-any cline-neutral">&nbsp;</span>
104
104
  <span class="cline-any cline-neutral">&nbsp;</span>
105
105
  <span class="cline-any cline-neutral">&nbsp;</span>
106
- <span class="cline-any cline-no">&nbsp;</span>
107
- <span class="cline-any cline-no">&nbsp;</span>
106
+ <span class="cline-any cline-yes">594x</span>
107
+ <span class="cline-any cline-yes">52x</span>
108
108
  <span class="cline-any cline-no">&nbsp;</span>
109
109
  <span class="cline-any cline-neutral">&nbsp;</span>
110
- <span class="cline-any cline-no">&nbsp;</span>
111
- <span class="cline-any cline-no">&nbsp;</span>
112
- <span class="cline-any cline-no">&nbsp;</span>
113
- <span class="cline-any cline-no">&nbsp;</span>
114
- <span class="cline-any cline-no">&nbsp;</span>
110
+ <span class="cline-any cline-yes">52x</span>
111
+ <span class="cline-any cline-yes">52x</span>
112
+ <span class="cline-any cline-yes">1x</span>
113
+ <span class="cline-any cline-yes">51x</span>
114
+ <span class="cline-any cline-yes">51x</span>
115
115
  <span class="cline-any cline-neutral">&nbsp;</span>
116
116
  <span class="cline-any cline-neutral">&nbsp;</span>
117
- <span class="cline-any cline-no">&nbsp;</span>
117
+ <span class="cline-any cline-yes">52x</span>
118
118
  <span class="cline-any cline-neutral">&nbsp;</span>
119
119
  <span class="cline-any cline-neutral">&nbsp;</span>
120
120
  <span class="cline-any cline-neutral">&nbsp;</span>
121
121
  <span class="cline-any cline-neutral">&nbsp;</span>
122
- <span class="cline-any cline-no">&nbsp;</span>
123
- <span class="cline-any cline-no">&nbsp;</span>
122
+ <span class="cline-any cline-yes">52x</span>
123
+ <span class="cline-any cline-yes">52x</span>
124
124
  <span class="cline-any cline-no">&nbsp;</span>
125
125
  <span class="cline-any cline-no">&nbsp;</span>
126
126
  <span class="cline-any cline-neutral">&nbsp;</span>
127
- <span class="cline-any cline-no">&nbsp;</span>
127
+ <span class="cline-any cline-yes">52x</span>
128
128
  <span class="cline-any cline-neutral">&nbsp;</span>
129
129
  <span class="cline-any cline-neutral">&nbsp;</span>
130
130
  <span class="cline-any cline-neutral">&nbsp;</span>
131
- <span class="cline-any cline-no">&nbsp;</span>
132
- <span class="cline-any cline-no">&nbsp;</span>
131
+ <span class="cline-any cline-yes">44x</span>
132
+ <span class="cline-any cline-yes">540x</span>
133
133
  <span class="cline-any cline-neutral">&nbsp;</span>
134
134
  <span class="cline-any cline-neutral">&nbsp;</span>
135
- <span class="cline-any cline-no">&nbsp;</span>
136
- <span class="cline-any cline-no">&nbsp;</span>
135
+ <span class="cline-any cline-yes">44x</span>
136
+ <span class="cline-any cline-yes">54x</span>
137
137
  <span class="cline-any cline-neutral">&nbsp;</span>
138
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">const Joi = <span class="cstat-no" title="statement not covered" >require("joi")</span>
138
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">const Joi = require("joi")
139
139
  &nbsp;
140
- function <span class="fstat-no" title="function not covered" >validate(</span>schema, property) {
140
+ function validate(schema, property) {
141
141
  // Return a Koa middleware function
142
- <span class="cstat-no" title="statement not covered" > return <span class="fstat-no" title="function not covered" >(c</span>tx, next) =&gt; {</span>
143
- <span class="cstat-no" title="statement not covered" > if (!schema) {</span>
142
+ return (ctx, next) =&gt; {
143
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (!schema) {
144
144
  <span class="cstat-no" title="statement not covered" > return next()</span>
145
145
  }
146
- let params = <span class="cstat-no" title="statement not covered" >null</span>
147
- <span class="cstat-no" title="statement not covered" > if (ctx[property] != null) {</span>
148
- <span class="cstat-no" title="statement not covered" > params = ctx[property]</span>
149
- } else <span class="cstat-no" title="statement not covered" >if (ctx.request[property] != null) {</span>
150
- <span class="cstat-no" title="statement not covered" > params = ctx.request[property]</span>
146
+ let params = null
147
+ if (ctx[property] != null) {
148
+ params = ctx[property]
149
+ } else <span class="missing-if-branch" title="else path not taken" >E</span>if (ctx.request[property] != null) {
150
+ params = ctx.request[property]
151
151
  }
152
152
  &nbsp;
153
- <span class="cstat-no" title="statement not covered" > schema = schema.append({</span>
153
+ schema = schema.append({
154
154
  createdAt: Joi.any().optional(),
155
155
  updatedAt: Joi.any().optional(),
156
156
  })
157
157
  &nbsp;
158
- const { error } = <span class="cstat-no" title="statement not covered" >schema.validate(params)</span>
159
- <span class="cstat-no" title="statement not covered" > if (error) {</span>
158
+ const { error } = schema.validate(params)
159
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (error) {
160
160
  <span class="cstat-no" title="statement not covered" > ctx.throw(400, `Invalid ${property} - ${error.message}`)</span>
161
161
  <span class="cstat-no" title="statement not covered" > return</span>
162
162
  }
163
- <span class="cstat-no" title="statement not covered" > return next()</span>
163
+ return next()
164
164
  }
165
165
  }
166
166
  &nbsp;
167
- <span class="cstat-no" title="statement not covered" >module.exports.body = <span class="fstat-no" title="function not covered" >sc</span>hema =&gt; {</span>
168
- <span class="cstat-no" title="statement not covered" > return validate(schema, "body")</span>
167
+ module.exports.body = schema =&gt; {
168
+ return validate(schema, "body")
169
169
  }
170
170
  &nbsp;
171
- <span class="cstat-no" title="statement not covered" >module.exports.params = <span class="fstat-no" title="function not covered" >sc</span>hema =&gt; {</span>
172
- <span class="cstat-no" title="statement not covered" > return validate(schema, "params")</span>
171
+ module.exports.params = schema =&gt; {
172
+ return validate(schema, "params")
173
173
  }
174
174
  &nbsp;</pre></td></tr></table></pre>
175
175
 
@@ -178,7 +178,7 @@ function <span class="fstat-no" title="function not covered" >validate(</span>sc
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" rel="noopener noreferrer">istanbul</a>
181
- at 2022-07-27T15:18:51.570Z
181
+ at Wed Jul 27 2022 15:46:03 GMT+0000 (Coordinated Universal Time)
182
182
  </div>
183
183
  <script src="../prettify.js"></script>
184
184
  <script>
@@ -133,7 +133,7 @@ module.exports = function ({ requiresAppId } = <span class="branch-0 cbranch-no"
133
133
  <div class='footer quiet pad2 space-top1 center small'>
134
134
  Code coverage generated by
135
135
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
136
- at 2022-07-27T15:18:51.570Z
136
+ at Wed Jul 27 2022 15:46:03 GMT+0000 (Coordinated Universal Time)
137
137
  </div>
138
138
  <script src="../prettify.js"></script>
139
139
  <script>
@@ -253,7 +253,7 @@ module.exports.bodySubResource = (main, sub) =&gt; {
253
253
  <div class='footer quiet pad2 space-top1 center small'>
254
254
  Code coverage generated by
255
255
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
256
- at 2022-07-27T15:18:51.570Z
256
+ at Wed Jul 27 2022 15:46:03 GMT+0000 (Coordinated Universal Time)
257
257
  </div>
258
258
  <script src="../prettify.js"></script>
259
259
  <script>
@@ -100,7 +100,7 @@ module.exports = async (ctx, next) =&gt; {
100
100
  <div class='footer quiet pad2 space-top1 center small'>
101
101
  Code coverage generated by
102
102
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
103
- at 2022-07-27T15:18:51.570Z
103
+ at Wed Jul 27 2022 15:46:03 GMT+0000 (Coordinated Universal Time)
104
104
  </div>
105
105
  <script src="../prettify.js"></script>
106
106
  <script>
@@ -91,7 +91,7 @@ exports.isWebhookEndpoint = ctx =&gt; {
91
91
  <div class='footer quiet pad2 space-top1 center small'>
92
92
  Code coverage generated by
93
93
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
94
- at 2022-07-27T15:18:51.570Z
94
+ at Wed Jul 27 2022 15:46:03 GMT+0000 (Coordinated Universal Time)
95
95
  </div>
96
96
  <script src="../prettify.js"></script>
97
97
  <script>
@@ -1099,7 +1099,7 @@ module.exports = (input, callback) =&gt; {
1099
1099
  <div class='footer quiet pad2 space-top1 center small'>
1100
1100
  Code coverage generated by
1101
1101
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
1102
- at 2022-07-27T15:18:51.570Z
1102
+ at Wed Jul 27 2022 15:46:03 GMT+0000 (Coordinated Universal Time)
1103
1103
  </div>
1104
1104
  <script src="../prettify.js"></script>
1105
1105
  <script>
@@ -131,7 +131,7 @@
131
131
  <div class='footer quiet pad2 space-top1 center small'>
132
132
  Code coverage generated by
133
133
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
134
- at 2022-07-27T15:18:51.570Z
134
+ at Wed Jul 27 2022 15:46:03 GMT+0000 (Coordinated Universal Time)
135
135
  </div>
136
136
  <script src="../prettify.js"></script>
137
137
  <script>
@@ -901,7 +901,7 @@ module.exports = (input, callback) =&gt; {
901
901
  <div class='footer quiet pad2 space-top1 center small'>
902
902
  Code coverage generated by
903
903
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
904
- at 2022-07-27T15:18:51.570Z
904
+ at Wed Jul 27 2022 15:46:03 GMT+0000 (Coordinated Universal Time)
905
905
  </div>
906
906
  <script src="../prettify.js"></script>
907
907
  <script>
@@ -304,7 +304,7 @@ exports.hasExtraData = response =&gt; {
304
304
  <div class='footer quiet pad2 space-top1 center small'>
305
305
  Code coverage generated by
306
306
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
307
- at 2022-07-27T15:18:51.570Z
307
+ at Wed Jul 27 2022 15:46:03 GMT+0000 (Coordinated Universal Time)
308
308
  </div>
309
309
  <script src="../prettify.js"></script>
310
310
  <script>
@@ -79,7 +79,7 @@ module.exports.budibaseTempDir = budibaseTempDir
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" rel="noopener noreferrer">istanbul</a>
82
- at 2022-07-27T15:18:51.570Z
82
+ at Wed Jul 27 2022 15:46:03 GMT+0000 (Coordinated Universal Time)
83
83
  </div>
84
84
  <script src="../prettify.js"></script>
85
85
  <script>
@@ -136,7 +136,7 @@ exports.resolve = function (...args) {
136
136
  <div class='footer quiet pad2 space-top1 center small'>
137
137
  Code coverage generated by
138
138
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
139
- at 2022-07-27T15:18:51.570Z
139
+ at Wed Jul 27 2022 15:46:03 GMT+0000 (Coordinated Universal Time)
140
140
  </div>
141
141
  <script src="../prettify.js"></script>
142
142
  <script>
@@ -502,7 +502,7 @@ module.exports = {
502
502
  <div class='footer quiet pad2 space-top1 center small'>
503
503
  Code coverage generated by
504
504
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
505
- at 2022-07-27T15:18:51.570Z
505
+ at Wed Jul 27 2022 15:46:03 GMT+0000 (Coordinated Universal Time)
506
506
  </div>
507
507
  <script src="../prettify.js"></script>
508
508
  <script>
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">78.26% </span>
26
+ <span class="strong">83.6% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>54/69</span>
28
+ <span class='fraction'>51/61</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">69.69% </span>
33
+ <span class="strong">78.57% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>23/33</span>
35
+ <span class='fraction'>22/28</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">68.75% </span>
40
+ <span class="strong">73.33% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>11/16</span>
42
+ <span class='fraction'>11/15</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">79.1% </span>
47
+ <span class="strong">84.74% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>53/67</span>
49
+ <span class='fraction'>50/59</span>
50
50
  </div>
51
51
 
52
52
 
@@ -61,7 +61,7 @@
61
61
  </div>
62
62
  </template>
63
63
  </div>
64
- <div class='status-line medium'></div>
64
+ <div class='status-line high'></div>
65
65
  <pre><table class="coverage">
66
66
  <tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
67
67
  <a name='L2'></a><a href='#L2'>2</a>
@@ -170,25 +170,7 @@
170
170
  <a name='L105'></a><a href='#L105'>105</a>
171
171
  <a name='L106'></a><a href='#L106'>106</a>
172
172
  <a name='L107'></a><a href='#L107'>107</a>
173
- <a name='L108'></a><a href='#L108'>108</a>
174
- <a name='L109'></a><a href='#L109'>109</a>
175
- <a name='L110'></a><a href='#L110'>110</a>
176
- <a name='L111'></a><a href='#L111'>111</a>
177
- <a name='L112'></a><a href='#L112'>112</a>
178
- <a name='L113'></a><a href='#L113'>113</a>
179
- <a name='L114'></a><a href='#L114'>114</a>
180
- <a name='L115'></a><a href='#L115'>115</a>
181
- <a name='L116'></a><a href='#L116'>116</a>
182
- <a name='L117'></a><a href='#L117'>117</a>
183
- <a name='L118'></a><a href='#L118'>118</a>
184
- <a name='L119'></a><a href='#L119'>119</a>
185
- <a name='L120'></a><a href='#L120'>120</a>
186
- <a name='L121'></a><a href='#L121'>121</a>
187
- <a name='L122'></a><a href='#L122'>122</a>
188
- <a name='L123'></a><a href='#L123'>123</a>
189
- <a name='L124'></a><a href='#L124'>124</a>
190
- <a name='L125'></a><a href='#L125'>125</a>
191
- <a name='L126'></a><a href='#L126'>126</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
173
+ <a name='L108'></a><a href='#L108'>108</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
192
174
  <span class="cline-any cline-neutral">&nbsp;</span>
193
175
  <span class="cline-any cline-neutral">&nbsp;</span>
194
176
  <span class="cline-any cline-yes">49x</span>
@@ -202,11 +184,9 @@
202
184
  <span class="cline-any cline-yes">49x</span>
203
185
  <span class="cline-any cline-yes">49x</span>
204
186
  <span class="cline-any cline-yes">49x</span>
205
- <span class="cline-any cline-yes">49x</span>
206
187
  <span class="cline-any cline-neutral">&nbsp;</span>
207
188
  <span class="cline-any cline-yes">49x</span>
208
189
  <span class="cline-any cline-yes">238x</span>
209
- <span class="cline-any cline-neutral">&nbsp;</span>
210
190
  <span class="cline-any cline-yes">238x</span>
211
191
  <span class="cline-any cline-yes">3x</span>
212
192
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -225,28 +205,13 @@
225
205
  <span class="cline-any cline-yes">32x</span>
226
206
  <span class="cline-any cline-yes">27x</span>
227
207
  <span class="cline-any cline-neutral">&nbsp;</span>
228
- <span class="cline-any cline-neutral">&nbsp;</span>
229
208
  <span class="cline-any cline-yes">235x</span>
230
209
  <span class="cline-any cline-yes">235x</span>
231
210
  <span class="cline-any cline-neutral">&nbsp;</span>
232
211
  <span class="cline-any cline-neutral">&nbsp;</span>
233
212
  <span class="cline-any cline-neutral">&nbsp;</span>
234
- <span class="cline-any cline-no">&nbsp;</span>
235
- <span class="cline-any cline-no">&nbsp;</span>
236
- <span class="cline-any cline-no">&nbsp;</span>
237
- <span class="cline-any cline-neutral">&nbsp;</span>
238
- <span class="cline-any cline-neutral">&nbsp;</span>
239
- <span class="cline-any cline-no">&nbsp;</span>
240
- <span class="cline-any cline-neutral">&nbsp;</span>
241
- <span class="cline-any cline-neutral">&nbsp;</span>
242
- <span class="cline-any cline-neutral">&nbsp;</span>
243
- <span class="cline-any cline-yes">231x</span>
244
- <span class="cline-any cline-yes">231x</span>
245
- <span class="cline-any cline-neutral">&nbsp;</span>
246
213
  <span class="cline-any cline-yes">231x</span>
247
214
  <span class="cline-any cline-yes">231x</span>
248
- <span class="cline-any cline-no">&nbsp;</span>
249
- <span class="cline-any cline-neutral">&nbsp;</span>
250
215
  <span class="cline-any cline-neutral">&nbsp;</span>
251
216
  <span class="cline-any cline-yes">231x</span>
252
217
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -296,7 +261,6 @@
296
261
  <span class="cline-any cline-yes">32x</span>
297
262
  <span class="cline-any cline-no">&nbsp;</span>
298
263
  <span class="cline-any cline-neutral">&nbsp;</span>
299
- <span class="cline-any cline-neutral">&nbsp;</span>
300
264
  <span class="cline-any cline-yes">32x</span>
301
265
  <span class="cline-any cline-neutral">&nbsp;</span>
302
266
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -327,11 +291,9 @@ const {
327
291
  } = require("@budibase/backend-core/tenancy")
328
292
  const env = require("../environment")
329
293
  const { getAppId } = require("@budibase/backend-core/context")
330
- const { groups } = require("@budibase/pro")
331
294
  &nbsp;
332
295
  exports.updateAppRole = (user, { appId } = {}) =&gt; {
333
296
  appId = appId || getAppId()
334
- &nbsp;
335
297
  if (!user || !user.roles) {
336
298
  return user
337
299
  }
@@ -350,30 +312,15 @@ exports.updateAppRole = (user, { appId } = {}) =&gt; {
350
312
  } else if (!user.roleId) {
351
313
  user.roleId = BUILTIN_ROLE_IDS.PUBLIC
352
314
  }
353
- &nbsp;
354
315
  delete user.roles
355
316
  return user
356
317
  }
357
318
  &nbsp;
358
- async function <span class="fstat-no" title="function not covered" >checkGroupRoles(</span>user, { appId } = <span class="branch-0 cbranch-no" title="branch not covered" >{})</span> {
359
- <span class="cstat-no" title="statement not covered" > if (!user.roleId) {</span>
360
- let roleId = <span class="cstat-no" title="statement not covered" >await groups.getGroupRoleId(user, appId)</span>
361
- <span class="cstat-no" title="statement not covered" > user.roleId = roleId</span>
362
- }
363
- &nbsp;
364
- <span class="cstat-no" title="statement not covered" > return user</span>
365
- }
366
- &nbsp;
367
- async function processUser(user, { appId } = {}) {
319
+ function processUser(user, { appId } = {}) {
368
320
  <span class="missing-if-branch" title="else path not taken" >E</span>if (user) {
369
321
  delete user.password
370
322
  }
371
- user = await exports.updateAppRole(user, { appId })
372
- <span class="missing-if-branch" title="if path not taken" >I</span>if (user?.userGroups?.length) {
373
- <span class="cstat-no" title="statement not covered" > user = await checkGroupRoles(user, { appId })</span>
374
- }
375
- &nbsp;
376
- return user
323
+ return exports.updateAppRole(user, { appId })
377
324
  }
378
325
  &nbsp;
379
326
  exports.getCachedSelf = async (ctx, appId) =&gt; {
@@ -421,7 +368,6 @@ exports.getGlobalUsers = async (users = null) =&gt; {
421
368
  <span class="missing-if-branch" title="if path not taken" >I</span>if (!appId) {
422
369
  <span class="cstat-no" title="statement not covered" > return globalUsers</span>
423
370
  }
424
- &nbsp;
425
371
  return globalUsers.map(user =&gt; exports.updateAppRole(user))
426
372
  }
427
373
  &nbsp;
@@ -445,7 +391,7 @@ exports.getGlobalUsersFromMetadata = async users =&gt; {
445
391
  <div class='footer quiet pad2 space-top1 center small'>
446
392
  Code coverage generated by
447
393
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
448
- at 2022-07-27T15:18:51.570Z
394
+ at Wed Jul 27 2022 15:46:03 GMT+0000 (Coordinated Universal Time)
449
395
  </div>
450
396
  <script src="../prettify.js"></script>
451
397
  <script>