@budibase/worker 2.2.26 → 2.2.27-alpha.1

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 (172) hide show
  1. package/Dockerfile +1 -1
  2. package/__mocks__/node-fetch.ts +23 -0
  3. package/coverage/clover.xml +1423 -1379
  4. package/coverage/coverage-final.json +83 -77
  5. package/coverage/lcov-report/index.html +140 -140
  6. package/coverage/lcov-report/src/api/controllers/global/auth.ts.html +52 -52
  7. package/coverage/lcov-report/src/api/controllers/global/configs.ts.html +167 -224
  8. package/coverage/lcov-report/src/api/controllers/global/email.ts.html +4 -4
  9. package/coverage/lcov-report/src/api/controllers/global/events.ts.html +136 -0
  10. package/coverage/lcov-report/src/api/controllers/global/index.html +83 -68
  11. package/coverage/lcov-report/src/api/controllers/global/license.ts.html +16 -16
  12. package/coverage/lcov-report/src/api/controllers/global/roles.ts.html +69 -69
  13. package/coverage/lcov-report/src/api/controllers/global/self.ts.html +20 -20
  14. package/coverage/lcov-report/src/api/controllers/global/templates.ts.html +54 -54
  15. package/coverage/lcov-report/src/api/controllers/global/users.ts.html +83 -44
  16. package/coverage/lcov-report/src/api/controllers/global/workspaces.ts.html +9 -9
  17. package/coverage/lcov-report/src/api/controllers/system/accounts.ts.html +5 -5
  18. package/coverage/lcov-report/src/api/controllers/system/environment.ts.html +4 -4
  19. package/coverage/lcov-report/src/api/controllers/system/index.html +11 -11
  20. package/coverage/lcov-report/src/api/controllers/system/migrations.ts.html +5 -5
  21. package/coverage/lcov-report/src/api/controllers/system/restore.ts.html +4 -4
  22. package/coverage/lcov-report/src/api/controllers/system/status.ts.html +5 -5
  23. package/coverage/lcov-report/src/api/controllers/system/tenants.ts.html +7 -7
  24. package/coverage/lcov-report/src/api/index.html +1 -1
  25. package/coverage/lcov-report/src/api/index.ts.html +42 -30
  26. package/coverage/lcov-report/src/api/routes/global/auth.ts.html +14 -14
  27. package/coverage/lcov-report/src/api/routes/global/configs.ts.html +25 -25
  28. package/coverage/lcov-report/src/api/routes/global/email.ts.html +13 -13
  29. package/coverage/lcov-report/src/api/routes/global/events.ts.html +109 -0
  30. package/coverage/lcov-report/src/api/routes/global/index.html +37 -22
  31. package/coverage/lcov-report/src/api/routes/global/license.ts.html +9 -9
  32. package/coverage/lcov-report/src/api/routes/global/roles.ts.html +10 -10
  33. package/coverage/lcov-report/src/api/routes/global/self.ts.html +11 -11
  34. package/coverage/lcov-report/src/api/routes/global/templates.ts.html +14 -14
  35. package/coverage/lcov-report/src/api/routes/global/users.ts.html +62 -20
  36. package/coverage/lcov-report/src/api/routes/global/workspaces.ts.html +12 -12
  37. package/coverage/lcov-report/src/api/routes/index.html +7 -7
  38. package/coverage/lcov-report/src/api/routes/index.ts.html +29 -23
  39. package/coverage/lcov-report/src/api/routes/system/accounts.ts.html +10 -10
  40. package/coverage/lcov-report/src/api/routes/system/environment.ts.html +9 -9
  41. package/coverage/lcov-report/src/api/routes/system/index.html +15 -15
  42. package/coverage/lcov-report/src/api/routes/system/migrations.ts.html +10 -10
  43. package/coverage/lcov-report/src/api/routes/system/restore.ts.html +9 -9
  44. package/coverage/lcov-report/src/api/routes/system/status.ts.html +9 -9
  45. package/coverage/lcov-report/src/api/routes/system/tenants.ts.html +10 -10
  46. package/coverage/lcov-report/src/api/routes/validation/index.html +3 -3
  47. package/coverage/lcov-report/src/api/routes/validation/index.ts.html +2 -2
  48. package/coverage/lcov-report/src/api/routes/validation/users.ts.html +14 -14
  49. package/coverage/lcov-report/src/constants/index.html +17 -17
  50. package/coverage/lcov-report/src/constants/index.ts.html +77 -53
  51. package/coverage/lcov-report/src/constants/templates/index.html +18 -18
  52. package/coverage/lcov-report/src/constants/templates/index.ts.html +42 -42
  53. package/coverage/lcov-report/src/db/index.html +17 -17
  54. package/coverage/lcov-report/src/db/index.ts.html +18 -18
  55. package/coverage/lcov-report/src/environment.ts.html +45 -30
  56. package/coverage/lcov-report/src/index.html +27 -27
  57. package/coverage/lcov-report/src/index.ts.html +55 -55
  58. package/coverage/lcov-report/src/middleware/cloudRestricted.ts.html +5 -5
  59. package/coverage/lcov-report/src/middleware/index.html +1 -1
  60. package/coverage/lcov-report/src/migrations/functions/globalInfoSyncUsers.ts.html +9 -9
  61. package/coverage/lcov-report/src/migrations/functions/index.html +11 -11
  62. package/coverage/lcov-report/src/migrations/index.html +15 -15
  63. package/coverage/lcov-report/src/migrations/index.ts.html +27 -27
  64. package/coverage/lcov-report/src/sdk/accounts/accounts.ts.html +13 -13
  65. package/coverage/lcov-report/src/sdk/accounts/index.html +13 -13
  66. package/coverage/lcov-report/src/sdk/accounts/index.ts.html +2 -2
  67. package/coverage/lcov-report/src/sdk/index.html +5 -5
  68. package/coverage/lcov-report/src/sdk/index.ts.html +6 -6
  69. package/coverage/lcov-report/src/sdk/users/events.ts.html +82 -58
  70. package/coverage/lcov-report/src/sdk/users/index.html +28 -28
  71. package/coverage/lcov-report/src/sdk/users/index.ts.html +2 -2
  72. package/coverage/lcov-report/src/sdk/users/users.ts.html +174 -120
  73. package/coverage/lcov-report/src/tests/TestConfiguration.ts.html +221 -107
  74. package/coverage/lcov-report/src/tests/api/accounts.ts.html +7 -7
  75. package/coverage/lcov-report/src/tests/api/auth.ts.html +25 -13
  76. package/coverage/lcov-report/src/tests/api/base.ts.html +5 -5
  77. package/coverage/lcov-report/src/tests/api/configs.ts.html +11 -11
  78. package/coverage/lcov-report/src/tests/api/email.ts.html +6 -6
  79. package/coverage/lcov-report/src/tests/api/environment.ts.html +6 -6
  80. package/coverage/lcov-report/src/tests/api/groups.ts.html +163 -0
  81. package/coverage/lcov-report/src/tests/api/index.html +91 -31
  82. package/coverage/lcov-report/src/tests/api/index.ts.html +62 -29
  83. package/coverage/lcov-report/src/tests/api/license.ts.html +136 -0
  84. package/coverage/lcov-report/src/tests/api/migrations.ts.html +8 -8
  85. package/coverage/lcov-report/src/tests/api/restore.ts.html +7 -7
  86. package/coverage/lcov-report/src/tests/api/roles.ts.html +181 -0
  87. package/coverage/lcov-report/src/tests/api/self.ts.html +7 -7
  88. package/coverage/lcov-report/src/tests/api/status.ts.html +6 -6
  89. package/coverage/lcov-report/src/tests/api/templates.ts.html +175 -0
  90. package/coverage/lcov-report/src/tests/api/tenants.ts.html +10 -10
  91. package/coverage/lcov-report/src/tests/api/users.ts.html +30 -27
  92. package/coverage/lcov-report/src/tests/controllers.ts.html +14 -14
  93. package/coverage/lcov-report/src/tests/index.html +34 -34
  94. package/coverage/lcov-report/src/tests/index.ts.html +19 -55
  95. package/coverage/lcov-report/src/tests/mocks/{email.js.html → email.ts.html} +5 -5
  96. package/coverage/lcov-report/src/tests/mocks/index.html +6 -6
  97. package/coverage/lcov-report/src/tests/mocks/index.ts.html +10 -10
  98. package/coverage/lcov-report/src/tests/structures/configs.ts.html +11 -11
  99. package/coverage/lcov-report/src/tests/structures/groups.ts.html +15 -15
  100. package/coverage/lcov-report/src/tests/structures/index.html +26 -26
  101. package/coverage/lcov-report/src/tests/structures/index.ts.html +16 -22
  102. package/coverage/lcov-report/src/tests/structures/users.ts.html +16 -16
  103. package/coverage/lcov-report/src/utilities/appService.ts.html +45 -18
  104. package/coverage/lcov-report/src/utilities/email.ts.html +28 -28
  105. package/coverage/lcov-report/src/utilities/fileSystem.ts.html +4 -4
  106. package/coverage/lcov-report/src/utilities/index.html +27 -27
  107. package/coverage/lcov-report/src/utilities/index.ts.html +2 -2
  108. package/coverage/lcov-report/src/utilities/redis.ts.html +20 -20
  109. package/coverage/lcov-report/src/utilities/templates.ts.html +6 -6
  110. package/coverage/lcov-report/src/utilities/users.ts.html +7 -7
  111. package/coverage/lcov.info +2826 -2609
  112. package/jest-testcontainers-config.js +8 -0
  113. package/jest.config.ts +10 -4
  114. package/package.json +11 -7
  115. package/scripts/dev/manage.js +2 -2
  116. package/src/api/controllers/global/auth.ts +1 -1
  117. package/src/api/controllers/global/configs.ts +112 -131
  118. package/src/api/controllers/global/events.ts +17 -0
  119. package/src/api/controllers/global/users.ts +14 -1
  120. package/src/api/index.ts +4 -0
  121. package/src/api/routes/global/auth.ts +1 -1
  122. package/src/api/routes/global/configs.ts +7 -7
  123. package/src/api/routes/global/email.ts +1 -1
  124. package/src/api/routes/global/events.ts +8 -0
  125. package/src/api/routes/global/license.ts +1 -1
  126. package/src/api/routes/global/roles.ts +1 -1
  127. package/src/api/routes/global/self.ts +1 -1
  128. package/src/api/routes/global/templates.ts +1 -1
  129. package/src/api/routes/global/tests/auth.spec.ts +30 -22
  130. package/src/api/routes/global/tests/configs.spec.ts +114 -94
  131. package/src/api/routes/global/tests/groups.spec.ts +58 -0
  132. package/src/api/routes/global/tests/license.spec.ts +0 -2
  133. package/src/api/routes/global/tests/roles.spec.ts +71 -5
  134. package/src/api/routes/global/tests/templates.spec.ts +81 -9
  135. package/src/api/routes/global/tests/users.spec.ts +35 -36
  136. package/src/api/routes/global/users.ts +15 -1
  137. package/src/api/routes/global/workspaces.ts +1 -1
  138. package/src/api/routes/index.ts +2 -0
  139. package/src/api/routes/system/accounts.ts +1 -1
  140. package/src/api/routes/system/environment.ts +1 -1
  141. package/src/api/routes/system/migrations.ts +1 -1
  142. package/src/api/routes/system/restore.ts +1 -1
  143. package/src/api/routes/system/status.ts +1 -1
  144. package/src/api/routes/system/tenants.ts +1 -1
  145. package/src/api/routes/system/tests/environment.spec.ts +1 -1
  146. package/src/constants/index.ts +13 -5
  147. package/src/db/index.ts +1 -1
  148. package/src/environment.ts +6 -1
  149. package/src/index.ts +5 -5
  150. package/src/middleware/cloudRestricted.ts +1 -1
  151. package/src/sdk/users/events.ts +8 -0
  152. package/src/sdk/users/users.ts +23 -5
  153. package/src/tests/TestConfiguration.ts +52 -14
  154. package/src/tests/api/auth.ts +7 -3
  155. package/src/tests/api/configs.ts +2 -2
  156. package/src/tests/api/groups.ts +26 -0
  157. package/src/tests/api/index.ts +12 -1
  158. package/src/tests/api/license.ts +17 -0
  159. package/src/tests/api/roles.ts +32 -0
  160. package/src/tests/api/templates.ts +30 -0
  161. package/src/tests/api/users.ts +4 -3
  162. package/src/tests/index.ts +6 -18
  163. package/src/tests/jestEnv.ts +11 -0
  164. package/src/tests/jestSetup.ts +8 -15
  165. package/src/tests/mocks/{email.js → email.ts} +1 -1
  166. package/src/tests/mocks/index.ts +4 -4
  167. package/src/tests/structures/configs.ts +2 -2
  168. package/src/tests/structures/groups.ts +1 -1
  169. package/src/tests/structures/index.ts +3 -5
  170. package/src/tests/structures/users.ts +1 -1
  171. package/src/utilities/appService.ts +12 -3
  172. package/tsconfig.json +2 -2
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">100% </span>
26
+ <span class="strong">87.5% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>8/8</span>
28
+ <span class='fraction'>7/8</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">100% </span>
33
+ <span class="strong">66.66% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>3/3</span>
35
+ <span class='fraction'>2/3</span>
36
36
  </div>
37
37
 
38
38
 
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'>1/1</span>
42
+ <span class='fraction'>2/2</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">100% </span>
47
+ <span class="strong">85.71% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>7/7</span>
49
+ <span class='fraction'>6/7</span>
50
50
  </div>
51
51
 
52
52
 
@@ -73,23 +73,23 @@
73
73
  <a name='L8'></a><a href='#L8'>8</a>
74
74
  <a name='L9'></a><a href='#L9'>9</a>
75
75
  <a name='L10'></a><a href='#L10'>10</a>
76
- <a name='L11'></a><a href='#L11'>11</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">17x</span>
77
- <span class="cline-any cline-yes">17x</span>
76
+ <a name='L11'></a><a href='#L11'>11</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">18x</span>
77
+ <span class="cline-any cline-yes">18x</span>
78
78
  <span class="cline-any cline-neutral">&nbsp;</span>
79
- <span class="cline-any cline-yes">17x</span>
80
- <span class="cline-any cline-yes">34x</span>
81
- <span class="cline-any cline-yes">34x</span>
82
- <span class="cline-any cline-yes">34x</span>
79
+ <span class="cline-any cline-yes">36x</span>
80
+ <span class="cline-any cline-yes">36x</span>
81
+ <span class="cline-any cline-yes">36x</span>
82
+ <span class="cline-any cline-no">&nbsp;</span>
83
83
  <span class="cline-any cline-neutral">&nbsp;</span>
84
- <span class="cline-any cline-yes">34x</span>
84
+ <span class="cline-any cline-yes">36x</span>
85
85
  <span class="cline-any cline-neutral">&nbsp;</span>
86
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import core from "@budibase/backend-core"
86
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import * as core from "@budibase/backend-core"
87
87
  import env from "../environment"
88
88
  &nbsp;
89
89
  export const init = () =&gt; {
90
90
  const dbConfig: any = {}
91
- if (env.isTest() &amp;&amp; !env.COUCH_DB_URL) {
92
- dbConfig.inMemory = true
91
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (env.isTest() &amp;&amp; !env.COUCH_DB_URL) {
92
+ <span class="cstat-no" title="statement not covered" > dbConfig.inMemory = true</span>
93
93
  }
94
94
  core.init({ db: dbConfig })
95
95
  }
@@ -100,7 +100,7 @@ export const init = () =&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 Thu Feb 02 2023 11:54:57 GMT+0000 (Coordinated Universal Time)
103
+ at Mon Feb 06 2023 09:20:59 GMT+0000 (Coordinated Universal Time)
104
104
  </div>
105
105
  <script src="../../prettify.js"></script>
106
106
  <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.94% </span>
26
+ <span class="strong">81.81% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>15/19</span>
28
+ <span class='fraction'>18/22</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">80% </span>
33
+ <span class="strong">61.9% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>16/20</span>
35
+ <span class='fraction'>13/21</span>
36
36
  </div>
37
37
 
38
38
 
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'>5/5</span>
42
+ <span class='fraction'>6/6</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">78.94% </span>
47
+ <span class="strong">80.95% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>15/19</span>
49
+ <span class='fraction'>17/21</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>
@@ -159,22 +159,27 @@
159
159
  <a name='L94'></a><a href='#L94'>94</a>
160
160
  <a name='L95'></a><a href='#L95'>95</a>
161
161
  <a name='L96'></a><a href='#L96'>96</a>
162
- <a name='L97'></a><a href='#L97'>97</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">17x</span>
162
+ <a name='L97'></a><a href='#L97'>97</a>
163
+ <a name='L98'></a><a href='#L98'>98</a>
164
+ <a name='L99'></a><a href='#L99'>99</a>
165
+ <a name='L100'></a><a href='#L100'>100</a>
166
+ <a name='L101'></a><a href='#L101'>101</a>
167
+ <a name='L102'></a><a href='#L102'>102</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">18x</span>
163
168
  <span class="cline-any cline-neutral">&nbsp;</span>
164
169
  <span class="cline-any cline-neutral">&nbsp;</span>
165
- <span class="cline-any cline-yes">52x</span>
170
+ <span class="cline-any cline-yes">55x</span>
166
171
  <span class="cline-any cline-neutral">&nbsp;</span>
167
172
  <span class="cline-any cline-neutral">&nbsp;</span>
168
173
  <span class="cline-any cline-neutral">&nbsp;</span>
169
- <span class="cline-any cline-yes">151x</span>
174
+ <span class="cline-any cline-yes">183x</span>
170
175
  <span class="cline-any cline-neutral">&nbsp;</span>
171
176
  <span class="cline-any cline-neutral">&nbsp;</span>
172
177
  <span class="cline-any cline-neutral">&nbsp;</span>
173
178
  <span class="cline-any cline-neutral">&nbsp;</span>
174
179
  <span class="cline-any cline-neutral">&nbsp;</span>
175
180
  <span class="cline-any cline-neutral">&nbsp;</span>
176
- <span class="cline-any cline-yes">17x</span>
177
- <span class="cline-any cline-yes">17x</span>
181
+ <span class="cline-any cline-yes">18x</span>
182
+ <span class="cline-any cline-yes">18x</span>
178
183
  <span class="cline-any cline-no">&nbsp;</span>
179
184
  <span class="cline-any cline-neutral">&nbsp;</span>
180
185
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -182,12 +187,12 @@
182
187
  <span class="cline-any cline-neutral">&nbsp;</span>
183
188
  <span class="cline-any cline-neutral">&nbsp;</span>
184
189
  <span class="cline-any cline-neutral">&nbsp;</span>
185
- <span class="cline-any cline-yes">17x</span>
190
+ <span class="cline-any cline-yes">18x</span>
186
191
  <span class="cline-any cline-no">&nbsp;</span>
187
192
  <span class="cline-any cline-neutral">&nbsp;</span>
188
193
  <span class="cline-any cline-neutral">&nbsp;</span>
189
194
  <span class="cline-any cline-neutral">&nbsp;</span>
190
- <span class="cline-any cline-yes">17x</span>
195
+ <span class="cline-any cline-yes">18x</span>
191
196
  <span class="cline-any cline-neutral">&nbsp;</span>
192
197
  <span class="cline-any cline-neutral">&nbsp;</span>
193
198
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -227,34 +232,39 @@
227
232
  <span class="cline-any cline-neutral">&nbsp;</span>
228
233
  <span class="cline-any cline-neutral">&nbsp;</span>
229
234
  <span class="cline-any cline-neutral">&nbsp;</span>
230
- <span class="cline-any cline-yes">237x</span>
235
+ <span class="cline-any cline-yes">124x</span>
231
236
  <span class="cline-any cline-neutral">&nbsp;</span>
232
- <span class="cline-any cline-yes">237x</span>
237
+ <span class="cline-any cline-yes">124x</span>
233
238
  <span class="cline-any cline-neutral">&nbsp;</span>
234
239
  <span class="cline-any cline-neutral">&nbsp;</span>
235
240
  <span class="cline-any cline-neutral">&nbsp;</span>
236
241
  <span class="cline-any cline-neutral">&nbsp;</span>
237
- <span class="cline-any cline-yes">17x</span>
242
+ <span class="cline-any cline-yes">18x</span>
238
243
  <span class="cline-any cline-neutral">&nbsp;</span>
239
244
  <span class="cline-any cline-neutral">&nbsp;</span>
240
245
  <span class="cline-any cline-neutral">&nbsp;</span>
241
246
  <span class="cline-any cline-neutral">&nbsp;</span>
242
- <span class="cline-any cline-yes">17x</span>
243
- <span class="cline-any cline-yes">17x</span>
247
+ <span class="cline-any cline-yes">18x</span>
248
+ <span class="cline-any cline-yes">18x</span>
244
249
  <span class="cline-any cline-neutral">&nbsp;</span>
245
250
  <span class="cline-any cline-neutral">&nbsp;</span>
246
251
  <span class="cline-any cline-neutral">&nbsp;</span>
247
252
  <span class="cline-any cline-neutral">&nbsp;</span>
248
253
  <span class="cline-any cline-neutral">&nbsp;</span>
249
- <span class="cline-any cline-yes">17x</span>
254
+ <span class="cline-any cline-yes">18x</span>
250
255
  <span class="cline-any cline-neutral">&nbsp;</span>
251
- <span class="cline-any cline-yes">595x</span>
256
+ <span class="cline-any cline-yes">630x</span>
257
+ <span class="cline-any cline-neutral">&nbsp;</span>
258
+ <span class="cline-any cline-yes">18x</span>
259
+ <span class="cline-any cline-neutral">&nbsp;</span>
260
+ <span class="cline-any cline-neutral">&nbsp;</span>
261
+ <span class="cline-any cline-yes">630x</span>
252
262
  <span class="cline-any cline-neutral">&nbsp;</span>
253
263
  <span class="cline-any cline-no">&nbsp;</span>
254
264
  <span class="cline-any cline-neutral">&nbsp;</span>
255
265
  <span class="cline-any cline-neutral">&nbsp;</span>
256
266
  <span class="cline-any cline-neutral">&nbsp;</span>
257
- <span class="cline-any cline-yes">17x</span>
267
+ <span class="cline-any cline-yes">1307x</span>
258
268
  <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">const { join } = require("path")
259
269
  &nbsp;
260
270
  function isDev() {
@@ -264,8 +274,8 @@ function isDev() {
264
274
  function isTest() {
265
275
  return (
266
276
  process.env.NODE_ENV === "jest" ||
267
- process.env.NODE_ENV === "cypress" ||
268
- process.env.JEST_WORKER_ID != null
277
+ <span class="branch-1 cbranch-no" title="branch not covered" > process.env.NODE_ENV === "cypress" ||</span>
278
+ <span class="branch-2 cbranch-no" title="branch not covered" > process.env.JEST_WORKER_ID != null</span>
269
279
  )
270
280
  }
271
281
  &nbsp;
@@ -302,11 +312,11 @@ const environment = {
302
312
  CDN_URL: process.env.CDN_URL || "https://tenants.cdn.budi.live",
303
313
  // ports
304
314
  // prefer worker port to generic port
305
- PORT: process.env.WORKER_PORT || process.env.PORT,
315
+ PORT: process.env.WORKER_PORT || <span class="branch-1 cbranch-no" title="branch not covered" >process.env.PORT,</span>
306
316
  CLUSTER_PORT: process.env.CLUSTER_PORT,
307
317
  // flags
308
318
  NODE_ENV: process.env.NODE_ENV,
309
- SELF_HOSTED: !!parseInt(process.env.SELF_HOSTED || ""),
319
+ SELF_HOSTED: !!parseInt(process.env.SELF_HOSTED || <span class="branch-1 cbranch-no" title="branch not covered" >""),</span>
310
320
  LOG_LEVEL: process.env.LOG_LEVEL,
311
321
  MULTI_TENANCY: process.env.MULTI_TENANCY,
312
322
  DISABLE_ACCOUNT_PORTAL: process.env.DISABLE_ACCOUNT_PORTAL,
@@ -344,13 +354,18 @@ if (!environment.APPS_URL) {
344
354
  // clean up any environment variable edge cases
345
355
  for (let [key, value] of Object.entries(environment)) {
346
356
  // handle the edge case of "0" to disable an environment variable
347
- <span class="missing-if-branch" title="if path not taken" >I</span>if (value === "0") {
357
+ if (value === "0") {
358
+ // @ts-ignore
359
+ environment[key] = 0
360
+ }
361
+ // handle the edge case of "false" to disable an environment variable
362
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (value === "false") {
348
363
  // @ts-ignore
349
364
  <span class="cstat-no" title="statement not covered" > environment[key] = 0</span>
350
365
  }
351
366
  }
352
367
  &nbsp;
353
- export = environment
368
+ export default environment
354
369
  &nbsp;</pre></td></tr></table></pre>
355
370
 
356
371
  <div class='push'></div><!-- for sticky footer -->
@@ -358,7 +373,7 @@ export = environment
358
373
  <div class='footer quiet pad2 space-top1 center small'>
359
374
  Code coverage generated by
360
375
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
361
- at Thu Feb 02 2023 11:54:57 GMT+0000 (Coordinated Universal Time)
376
+ at Mon Feb 06 2023 09:20:59 GMT+0000 (Coordinated Universal Time)
362
377
  </div>
363
378
  <script src="../prettify.js"></script>
364
379
  <script>
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">66.25% </span>
26
+ <span class="strong">68.67% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>53/80</span>
28
+ <span class='fraction'>57/83</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">65.38% </span>
33
+ <span class="strong">51.85% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>17/26</span>
35
+ <span class='fraction'>14/27</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">43.75% </span>
40
+ <span class="strong">50% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>7/16</span>
42
+ <span class='fraction'>8/16</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">66.66% </span>
47
+ <span class="strong">67.9% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>52/78</span>
49
+ <span class='fraction'>55/81</span>
50
50
  </div>
51
51
 
52
52
 
@@ -79,33 +79,33 @@
79
79
  </tr>
80
80
  </thead>
81
81
  <tbody><tr>
82
- <td class="file medium" data-value="environment.ts"><a href="environment.ts.html">environment.ts</a></td>
83
- <td data-value="78.94" class="pic medium">
84
- <div class="chart"><div class="cover-fill" style="width: 78%"></div><div class="cover-empty" style="width: 22%"></div></div>
82
+ <td class="file high" data-value="environment.ts"><a href="environment.ts.html">environment.ts</a></td>
83
+ <td data-value="81.81" class="pic high">
84
+ <div class="chart"><div class="cover-fill" style="width: 81%"></div><div class="cover-empty" style="width: 19%"></div></div>
85
85
  </td>
86
- <td data-value="78.94" class="pct medium">78.94%</td>
87
- <td data-value="19" class="abs medium">15/19</td>
88
- <td data-value="80" class="pct high">80%</td>
89
- <td data-value="20" class="abs high">16/20</td>
86
+ <td data-value="81.81" class="pct high">81.81%</td>
87
+ <td data-value="22" class="abs high">18/22</td>
88
+ <td data-value="61.9" class="pct medium">61.9%</td>
89
+ <td data-value="21" class="abs medium">13/21</td>
90
90
  <td data-value="100" class="pct high">100%</td>
91
- <td data-value="5" class="abs high">5/5</td>
92
- <td data-value="78.94" class="pct medium">78.94%</td>
93
- <td data-value="19" class="abs medium">15/19</td>
91
+ <td data-value="6" class="abs high">6/6</td>
92
+ <td data-value="80.95" class="pct high">80.95%</td>
93
+ <td data-value="21" class="abs high">17/21</td>
94
94
  </tr>
95
95
 
96
96
  <tr>
97
97
  <td class="file medium" data-value="index.ts"><a href="index.ts.html">index.ts</a></td>
98
- <td data-value="62.29" class="pic medium">
99
- <div class="chart"><div class="cover-fill" style="width: 62%"></div><div class="cover-empty" style="width: 38%"></div></div>
98
+ <td data-value="63.93" class="pic medium">
99
+ <div class="chart"><div class="cover-fill" style="width: 63%"></div><div class="cover-empty" style="width: 37%"></div></div>
100
100
  </td>
101
- <td data-value="62.29" class="pct medium">62.29%</td>
102
- <td data-value="61" class="abs medium">38/61</td>
101
+ <td data-value="63.93" class="pct medium">63.93%</td>
102
+ <td data-value="61" class="abs medium">39/61</td>
103
103
  <td data-value="16.66" class="pct low">16.66%</td>
104
104
  <td data-value="6" class="abs low">1/6</td>
105
- <td data-value="18.18" class="pct low">18.18%</td>
106
- <td data-value="11" class="abs low">2/11</td>
107
- <td data-value="62.71" class="pct medium">62.71%</td>
108
- <td data-value="59" class="abs medium">37/59</td>
105
+ <td data-value="20" class="pct low">20%</td>
106
+ <td data-value="10" class="abs low">2/10</td>
107
+ <td data-value="63.33" class="pct medium">63.33%</td>
108
+ <td data-value="60" class="abs medium">38/60</td>
109
109
  </tr>
110
110
 
111
111
  </tbody>
@@ -116,7 +116,7 @@
116
116
  <div class='footer quiet pad2 space-top1 center small'>
117
117
  Code coverage generated by
118
118
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
119
- at Thu Feb 02 2023 11:54:57 GMT+0000 (Coordinated Universal Time)
119
+ at Mon Feb 06 2023 09:20:59 GMT+0000 (Coordinated Universal Time)
120
120
  </div>
121
121
  <script src="../prettify.js"></script>
122
122
  <script>
@@ -23,9 +23,9 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">62.29% </span>
26
+ <span class="strong">63.93% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>38/61</span>
28
+ <span class='fraction'>39/61</span>
29
29
  </div>
30
30
 
31
31
 
@@ -37,16 +37,16 @@
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">18.18% </span>
40
+ <span class="strong">20% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>2/11</span>
42
+ <span class='fraction'>2/10</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">62.71% </span>
47
+ <span class="strong">63.33% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>37/59</span>
49
+ <span class='fraction'>38/60</span>
50
50
  </div>
51
51
 
52
52
 
@@ -167,10 +167,10 @@
167
167
  <a name='L102'></a><a href='#L102'>102</a>
168
168
  <a name='L103'></a><a href='#L103'>103</a>
169
169
  <a name='L104'></a><a href='#L104'>104</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
170
- <span class="cline-any cline-yes">17x</span>
170
+ <span class="cline-any cline-yes">18x</span>
171
171
  <span class="cline-any cline-neutral">&nbsp;</span>
172
172
  <span class="cline-any cline-neutral">&nbsp;</span>
173
- <span class="cline-any cline-yes">17x</span>
173
+ <span class="cline-any cline-yes">18x</span>
174
174
  <span class="cline-any cline-no">&nbsp;</span>
175
175
  <span class="cline-any cline-neutral">&nbsp;</span>
176
176
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -180,41 +180,42 @@
180
180
  <span class="cline-any cline-neutral">&nbsp;</span>
181
181
  <span class="cline-any cline-neutral">&nbsp;</span>
182
182
  <span class="cline-any cline-neutral">&nbsp;</span>
183
- <span class="cline-any cline-yes">17x</span>
184
- <span class="cline-any cline-yes">17x</span>
185
- <span class="cline-any cline-yes">17x</span>
186
- <span class="cline-any cline-yes">17x</span>
187
- <span class="cline-any cline-yes">17x</span>
188
- <span class="cline-any cline-yes">17x</span>
189
- <span class="cline-any cline-yes">17x</span>
190
- <span class="cline-any cline-yes">17x</span>
191
- <span class="cline-any cline-yes">17x</span>
192
- <span class="cline-any cline-yes">17x</span>
193
- <span class="cline-any cline-yes">17x</span>
194
- <span class="cline-any cline-yes">17x</span>
195
- <span class="cline-any cline-yes">17x</span>
183
+ <span class="cline-any cline-yes">18x</span>
184
+ <span class="cline-any cline-yes">18x</span>
185
+ <span class="cline-any cline-yes">18x</span>
186
+ <span class="cline-any cline-yes">18x</span>
187
+ <span class="cline-any cline-yes">18x</span>
188
+ <span class="cline-any cline-yes">18x</span>
189
+ <span class="cline-any cline-yes">18x</span>
190
+ <span class="cline-any cline-yes">18x</span>
191
+ <span class="cline-any cline-yes">18x</span>
192
+ <span class="cline-any cline-yes">18x</span>
193
+ <span class="cline-any cline-yes">18x</span>
194
+ <span class="cline-any cline-yes">18x</span>
195
+ <span class="cline-any cline-yes">18x</span>
196
196
  <span class="cline-any cline-neutral">&nbsp;</span>
197
197
  <span class="cline-any cline-neutral">&nbsp;</span>
198
- <span class="cline-any cline-yes">17x</span>
198
+ <span class="cline-any cline-yes">18x</span>
199
199
  <span class="cline-any cline-neutral">&nbsp;</span>
200
- <span class="cline-any cline-yes">17x</span>
200
+ <span class="cline-any cline-yes">18x</span>
201
201
  <span class="cline-any cline-neutral">&nbsp;</span>
202
- <span class="cline-any cline-yes">17x</span>
202
+ <span class="cline-any cline-yes">18x</span>
203
203
  <span class="cline-any cline-neutral">&nbsp;</span>
204
204
  <span class="cline-any cline-neutral">&nbsp;</span>
205
- <span class="cline-any cline-yes">17x</span>
206
- <span class="cline-any cline-yes">17x</span>
207
- <span class="cline-any cline-yes">17x</span>
205
+ <span class="cline-any cline-yes">18x</span>
206
+ <span class="cline-any cline-yes">18x</span>
207
+ <span class="cline-any cline-yes">18x</span>
208
+ <span class="cline-any cline-yes">18x</span>
208
209
  <span class="cline-any cline-neutral">&nbsp;</span>
209
210
  <span class="cline-any cline-neutral">&nbsp;</span>
210
- <span class="cline-any cline-yes">17x</span>
211
- <span class="cline-any cline-yes">17x</span>
211
+ <span class="cline-any cline-yes">18x</span>
212
+ <span class="cline-any cline-yes">18x</span>
212
213
  <span class="cline-any cline-neutral">&nbsp;</span>
213
214
  <span class="cline-any cline-neutral">&nbsp;</span>
214
- <span class="cline-any cline-yes">17x</span>
215
+ <span class="cline-any cline-yes">18x</span>
215
216
  <span class="cline-any cline-neutral">&nbsp;</span>
216
217
  <span class="cline-any cline-neutral">&nbsp;</span>
217
- <span class="cline-any cline-yes">17x</span>
218
+ <span class="cline-any cline-yes">18x</span>
218
219
  <span class="cline-any cline-no">&nbsp;</span>
219
220
  <span class="cline-any cline-neutral">&nbsp;</span>
220
221
  <span class="cline-any cline-no">&nbsp;</span>
@@ -227,12 +228,12 @@
227
228
  <span class="cline-any cline-neutral">&nbsp;</span>
228
229
  <span class="cline-any cline-neutral">&nbsp;</span>
229
230
  <span class="cline-any cline-neutral">&nbsp;</span>
230
- <span class="cline-any cline-yes">17x</span>
231
- <span class="cline-any cline-yes">17x</span>
231
+ <span class="cline-any cline-yes">18x</span>
232
+ <span class="cline-any cline-yes">18x</span>
232
233
  <span class="cline-any cline-neutral">&nbsp;</span>
233
- <span class="cline-any cline-yes">17x</span>
234
- <span class="cline-any cline-yes">17x</span>
235
- <span class="cline-any cline-yes">17x</span>
234
+ <span class="cline-any cline-yes">18x</span>
235
+ <span class="cline-any cline-yes">18x</span>
236
+ <span class="cline-any cline-yes">18x</span>
236
237
  <span class="cline-any cline-no">&nbsp;</span>
237
238
  <span class="cline-any cline-no">&nbsp;</span>
238
239
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -245,28 +246,27 @@
245
246
  <span class="cline-any cline-neutral">&nbsp;</span>
246
247
  <span class="cline-any cline-neutral">&nbsp;</span>
247
248
  <span class="cline-any cline-neutral">&nbsp;</span>
248
- <span class="cline-any cline-yes">17x</span>
249
+ <span class="cline-any cline-yes">18x</span>
249
250
  <span class="cline-any cline-no">&nbsp;</span>
250
- <span class="cline-any cline-neutral">&nbsp;</span>
251
251
  <span class="cline-any cline-no">&nbsp;</span>
252
252
  <span class="cline-any cline-neutral">&nbsp;</span>
253
253
  <span class="cline-any cline-neutral">&nbsp;</span>
254
- <span class="cline-any cline-yes">17x</span>
255
- <span class="cline-any cline-yes">17x</span>
256
- <span class="cline-any cline-yes">17x</span>
254
+ <span class="cline-any cline-yes">18x</span>
255
+ <span class="cline-any cline-yes">18x</span>
256
+ <span class="cline-any cline-yes">18x</span>
257
257
  <span class="cline-any cline-neutral">&nbsp;</span>
258
258
  <span class="cline-any cline-neutral">&nbsp;</span>
259
- <span class="cline-any cline-yes">17x</span>
259
+ <span class="cline-any cline-yes">18x</span>
260
260
  <span class="cline-any cline-no">&nbsp;</span>
261
261
  <span class="cline-any cline-no">&nbsp;</span>
262
262
  <span class="cline-any cline-no">&nbsp;</span>
263
263
  <span class="cline-any cline-neutral">&nbsp;</span>
264
264
  <span class="cline-any cline-neutral">&nbsp;</span>
265
- <span class="cline-any cline-yes">17x</span>
265
+ <span class="cline-any cline-yes">18x</span>
266
266
  <span class="cline-any cline-no">&nbsp;</span>
267
267
  <span class="cline-any cline-neutral">&nbsp;</span>
268
268
  <span class="cline-any cline-neutral">&nbsp;</span>
269
- <span class="cline-any cline-yes">17x</span>
269
+ <span class="cline-any cline-yes">18x</span>
270
270
  <span class="cline-any cline-no">&nbsp;</span>
271
271
  <span class="cline-any cline-neutral">&nbsp;</span>
272
272
  <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">// need to load environment first
@@ -285,7 +285,7 @@ import { Event } from "@sentry/types/dist/event"
285
285
  import Application from "koa"
286
286
  import { bootstrap } from "global-agent"
287
287
  import * as db from "./db"
288
- import { auth, logging, events, pinoSettings } from "@budibase/backend-core"
288
+ import { auth, logging, events, middleware } from "@budibase/backend-core"
289
289
  db.init()
290
290
  import Koa from "koa"
291
291
  import koaBody from "koa-body"
@@ -295,7 +295,7 @@ import * as redis from "./utilities/redis"
295
295
  const Sentry = require("@sentry/node")
296
296
  const koaSession = require("koa-session")
297
297
  const logger = require("koa-pino-logger")
298
- const destroyable = require("server-destroy")
298
+ import destroyable from "server-destroy"
299
299
  &nbsp;
300
300
  // this will setup http and https proxies form env variables
301
301
  bootstrap()
@@ -307,7 +307,8 @@ app.keys = ["secret", "key"]
307
307
  // set up top level koa middleware
308
308
  app.use(koaBody({ multipart: true }))
309
309
  app.use(koaSession(app))
310
- app.use(logger(pinoSettings()))
310
+ app.use(middleware.logging)
311
+ app.use(logger(logging.pinoSettings()))
311
312
  &nbsp;
312
313
  // authentication
313
314
  app.use(auth.passport.initialize())
@@ -335,7 +336,7 @@ destroyable(server)
335
336
  &nbsp;
336
337
  let shuttingDown = false,
337
338
  errCode = 0
338
- server.on("close", <span class="fstat-no" title="function not covered" >async () =</span>&gt;<span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" > {</span></span>
339
+ server.on("close", <span class="fstat-no" title="function not covered" >async () =&gt; {</span>
339
340
  <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (shuttingDown) {</span>
340
341
  <span class="cstat-no" title="statement not covered" > return</span>
341
342
  }
@@ -348,28 +349,27 @@ server.on("close", <span class="fstat-no" title="function not covered" >async ()
348
349
  }
349
350
  })
350
351
  &nbsp;
351
- const shutdown = <span class="fstat-no" title="function not covered" >() =</span>&gt; {
352
+ const shutdown = <span class="fstat-no" title="function not covered" >() =&gt; {</span>
352
353
  <span class="cstat-no" title="statement not covered" > server.close()</span>
353
- // @ts-ignore
354
354
  <span class="cstat-no" title="statement not covered" > server.destroy()</span>
355
355
  }
356
356
  &nbsp;
357
- export = server.listen(parseInt(env.PORT || <span class="branch-1 cbranch-no" title="branch not covered" >"4002")</span>, async () =&gt; {
357
+ export default server.listen(parseInt(env.PORT || <span class="branch-1 cbranch-no" title="branch not covered" >"4002"), a</span>sync () =&gt; {
358
358
  console.log(`Worker running on ${JSON.stringify(server.address())}`)
359
359
  await redis.init()
360
360
  })
361
361
  &nbsp;
362
- process.on("uncaughtException", <span class="fstat-no" title="function not covered" >err </span>=&gt; {
362
+ process.on("uncaughtException", <span class="fstat-no" title="function not covered" >err =&gt; {</span>
363
363
  <span class="cstat-no" title="statement not covered" > errCode = -1</span>
364
364
  <span class="cstat-no" title="statement not covered" > logging.logAlert("Uncaught exception.", err)</span>
365
365
  <span class="cstat-no" title="statement not covered" > shutdown()</span>
366
366
  })
367
367
  &nbsp;
368
- process.on("SIGTERM", <span class="fstat-no" title="function not covered" >() =</span>&gt; {
368
+ process.on("SIGTERM", <span class="fstat-no" title="function not covered" >() =&gt; {</span>
369
369
  <span class="cstat-no" title="statement not covered" > shutdown()</span>
370
370
  })
371
371
  &nbsp;
372
- process.on("SIGINT", <span class="fstat-no" title="function not covered" >() =</span>&gt; {
372
+ process.on("SIGINT", <span class="fstat-no" title="function not covered" >() =&gt; {</span>
373
373
  <span class="cstat-no" title="statement not covered" > shutdown()</span>
374
374
  })
375
375
  &nbsp;</pre></td></tr></table></pre>
@@ -379,7 +379,7 @@ process.on("SIGINT", <span class="fstat-no" title="function not covered" >() =</
379
379
  <div class='footer quiet pad2 space-top1 center small'>
380
380
  Code coverage generated by
381
381
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
382
- at Thu Feb 02 2023 11:54:57 GMT+0000 (Coordinated Universal Time)
382
+ at Mon Feb 06 2023 09:20:59 GMT+0000 (Coordinated Universal Time)
383
383
  </div>
384
384
  <script src="../prettify.js"></script>
385
385
  <script>