@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,9 +23,9 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">47.36% </span>
26
+ <span class="strong">47.61% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>9/19</span>
28
+ <span class='fraction'>10/21</span>
29
29
  </div>
30
30
 
31
31
 
@@ -44,9 +44,9 @@
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">47.36% </span>
47
+ <span class="strong">47.61% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>9/19</span>
49
+ <span class='fraction'>10/21</span>
50
50
  </div>
51
51
 
52
52
 
@@ -95,14 +95,24 @@
95
95
  <a name='L30'></a><a href='#L30'>30</a>
96
96
  <a name='L31'></a><a href='#L31'>31</a>
97
97
  <a name='L32'></a><a href='#L32'>32</a>
98
- <a name='L33'></a><a href='#L33'>33</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">17x</span>
99
- <span class="cline-any cline-yes">17x</span>
100
- <span class="cline-any cline-yes">17x</span>
101
- <span class="cline-any cline-yes">17x</span>
98
+ <a name='L33'></a><a href='#L33'>33</a>
99
+ <a name='L34'></a><a href='#L34'>34</a>
100
+ <a name='L35'></a><a href='#L35'>35</a>
101
+ <a name='L36'></a><a href='#L36'>36</a>
102
+ <a name='L37'></a><a href='#L37'>37</a>
103
+ <a name='L38'></a><a href='#L38'>38</a>
104
+ <a name='L39'></a><a href='#L39'>39</a>
105
+ <a name='L40'></a><a href='#L40'>40</a>
106
+ <a name='L41'></a><a href='#L41'>41</a>
107
+ <a name='L42'></a><a href='#L42'>42</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">18x</span>
108
+ <span class="cline-any cline-yes">18x</span>
109
+ <span class="cline-any cline-yes">18x</span>
110
+ <span class="cline-any cline-yes">18x</span>
102
111
  <span class="cline-any cline-neutral">&nbsp;</span>
103
112
  <span class="cline-any cline-neutral">&nbsp;</span>
104
- <span class="cline-any cline-yes">98x</span>
105
- <span class="cline-any cline-yes">98x</span>
113
+ <span class="cline-any cline-neutral">&nbsp;</span>
114
+ <span class="cline-any cline-yes">127x</span>
115
+ <span class="cline-any cline-yes">127x</span>
106
116
  <span class="cline-any cline-neutral">&nbsp;</span>
107
117
  <span class="cline-any cline-no">&nbsp;</span>
108
118
  <span class="cline-any cline-no">&nbsp;</span>
@@ -114,23 +124,32 @@
114
124
  <span class="cline-any cline-no">&nbsp;</span>
115
125
  <span class="cline-any cline-neutral">&nbsp;</span>
116
126
  <span class="cline-any cline-no">&nbsp;</span>
127
+ <span class="cline-any cline-neutral">&nbsp;</span>
128
+ <span class="cline-any cline-neutral">&nbsp;</span>
129
+ <span class="cline-any cline-no">&nbsp;</span>
130
+ <span class="cline-any cline-neutral">&nbsp;</span>
117
131
  <span class="cline-any cline-no">&nbsp;</span>
118
132
  <span class="cline-any cline-neutral">&nbsp;</span>
119
133
  <span class="cline-any cline-neutral">&nbsp;</span>
120
- <span class="cline-any cline-yes">17x</span>
121
- <span class="cline-any cline-yes">98x</span>
134
+ <span class="cline-any cline-yes">127x</span>
135
+ <span class="cline-any cline-yes">127x</span>
136
+ <span class="cline-any cline-neutral">&nbsp;</span>
122
137
  <span class="cline-any cline-neutral">&nbsp;</span>
123
138
  <span class="cline-any cline-neutral">&nbsp;</span>
139
+ <span class="cline-any cline-yes">127x</span>
124
140
  <span class="cline-any cline-neutral">&nbsp;</span>
125
141
  <span class="cline-any cline-neutral">&nbsp;</span>
126
- <span class="cline-any cline-yes">98x</span>
142
+ <span class="cline-any cline-neutral">&nbsp;</span>
143
+ <span class="cline-any cline-neutral">&nbsp;</span>
144
+ <span class="cline-any cline-yes">127x</span>
127
145
  <span class="cline-any cline-no">&nbsp;</span>
128
146
  <span class="cline-any cline-neutral">&nbsp;</span>
129
147
  <span class="cline-any cline-neutral">&nbsp;</span>
130
148
  <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import fetch from "node-fetch"
131
- import { constants, tenancy } from "@budibase/backend-core"
149
+ import { constants, tenancy, logging } from "@budibase/backend-core"
132
150
  import { checkSlashesInUrl } from "../utilities"
133
151
  import env from "../environment"
152
+ import { SyncUserRequest, User } from "@budibase/types"
134
153
  &nbsp;
135
154
  async function makeAppRequest(url: string, method: string, body: any) {
136
155
  if (env.isTest()) {
@@ -146,16 +165,24 @@ async function makeAppRequest(url: string, method: string, body: any) {
146
165
  <span class="cstat-no" title="statement not covered" > request.body = JSON.stringify(body)</span>
147
166
  }
148
167
  <span class="cstat-no" title="statement not covered" > request.method = method</span>
168
+ &nbsp;
169
+ // add x-budibase-correlation-id header
170
+ <span class="cstat-no" title="statement not covered" > logging.correlation.setHeader(request.headers)</span>
171
+ &nbsp;
149
172
  <span class="cstat-no" title="statement not covered" > return fetch(checkSlashesInUrl(env.APPS_URL + url), request)</span>
150
173
  }
151
174
  &nbsp;
152
- export async function syncUserInApps(userId: string) {
175
+ export async function syncUserInApps(userId: string, previousUser?: User) {
176
+ const body: SyncUserRequest = {
177
+ previousUser,
178
+ }
179
+ &nbsp;
153
180
  const response = await makeAppRequest(
154
181
  `/api/users/metadata/sync/${userId}`,
155
182
  "POST",
156
- {}
183
+ body
157
184
  )
158
- <span class="missing-if-branch" title="if path not taken" >I</span>if (response &amp;&amp; <span class="branch-1 cbranch-no" title="branch not covered" >response.status !== 200)</span> {
185
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (response &amp;&amp; <span class="branch-1 cbranch-no" title="branch not covered" >response.status !== 200) {</span>
159
186
  <span class="cstat-no" title="statement not covered" > throw "Unable to sync user."</span>
160
187
  }
161
188
  }
@@ -166,7 +193,7 @@ export async function syncUserInApps(userId: string) {
166
193
  <div class='footer quiet pad2 space-top1 center small'>
167
194
  Code coverage generated by
168
195
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
169
- at Thu Feb 02 2023 11:54:57 GMT+0000 (Coordinated Universal Time)
196
+ at Mon Feb 06 2023 09:20:59 GMT+0000 (Coordinated Universal Time)
170
197
  </div>
171
198
  <script src="../../prettify.js"></script>
172
199
  <script>
@@ -30,16 +30,16 @@
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">67.05% </span>
33
+ <span class="strong">60% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>57/85</span>
35
+ <span class='fraction'>27/45</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'>7/7</span>
42
+ <span class='fraction'>10/10</span>
43
43
  </div>
44
44
 
45
45
 
@@ -318,15 +318,15 @@
318
318
  <a name='L253'></a><a href='#L253'>253</a>
319
319
  <a name='L254'></a><a href='#L254'>254</a>
320
320
  <a name='L255'></a><a href='#L255'>255</a>
321
- <a name='L256'></a><a href='#L256'>256</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">17x</span>
322
- <span class="cline-any cline-yes">17x</span>
323
- <span class="cline-any cline-yes">17x</span>
324
- <span class="cline-any cline-yes">17x</span>
325
- <span class="cline-any cline-yes">17x</span>
326
- <span class="cline-any cline-yes">17x</span>
321
+ <a name='L256'></a><a href='#L256'>256</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">18x</span>
322
+ <span class="cline-any cline-yes">18x</span>
323
+ <span class="cline-any cline-yes">18x</span>
324
+ <span class="cline-any cline-yes">18x</span>
325
+ <span class="cline-any cline-yes">18x</span>
326
+ <span class="cline-any cline-yes">18x</span>
327
327
  <span class="cline-any cline-neutral">&nbsp;</span>
328
- <span class="cline-any cline-yes">17x</span>
329
- <span class="cline-any cline-yes">17x</span>
328
+ <span class="cline-any cline-yes">18x</span>
329
+ <span class="cline-any cline-yes">18x</span>
330
330
  <span class="cline-any cline-neutral">&nbsp;</span>
331
331
  <span class="cline-any cline-neutral">&nbsp;</span>
332
332
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -346,10 +346,10 @@
346
346
  <span class="cline-any cline-neutral">&nbsp;</span>
347
347
  <span class="cline-any cline-neutral">&nbsp;</span>
348
348
  <span class="cline-any cline-neutral">&nbsp;</span>
349
- <span class="cline-any cline-yes">17x</span>
350
- <span class="cline-any cline-yes">17x</span>
349
+ <span class="cline-any cline-yes">18x</span>
350
+ <span class="cline-any cline-yes">18x</span>
351
351
  <span class="cline-any cline-neutral">&nbsp;</span>
352
- <span class="cline-any cline-yes">17x</span>
352
+ <span class="cline-any cline-yes">18x</span>
353
353
  <span class="cline-any cline-neutral">&nbsp;</span>
354
354
  <span class="cline-any cline-neutral">&nbsp;</span>
355
355
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -498,7 +498,7 @@
498
498
  <span class="cline-any cline-neutral">&nbsp;</span>
499
499
  <span class="cline-any cline-neutral">&nbsp;</span>
500
500
  <span class="cline-any cline-neutral">&nbsp;</span>
501
- <span class="cline-any cline-yes">17x</span>
501
+ <span class="cline-any cline-yes">2x</span>
502
502
  <span class="cline-any cline-neutral">&nbsp;</span>
503
503
  <span class="cline-any cline-yes">2x</span>
504
504
  <span class="cline-any cline-no">&nbsp;</span>
@@ -517,7 +517,7 @@
517
517
  <span class="cline-any cline-neutral">&nbsp;</span>
518
518
  <span class="cline-any cline-neutral">&nbsp;</span>
519
519
  <span class="cline-any cline-neutral">&nbsp;</span>
520
- <span class="cline-any cline-yes">17x</span>
520
+ <span class="cline-any cline-yes">7x</span>
521
521
  <span class="cline-any cline-neutral">&nbsp;</span>
522
522
  <span class="cline-any cline-neutral">&nbsp;</span>
523
523
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -569,7 +569,7 @@
569
569
  <span class="cline-any cline-neutral">&nbsp;</span>
570
570
  <span class="cline-any cline-neutral">&nbsp;</span>
571
571
  <span class="cline-any cline-neutral">&nbsp;</span>
572
- <span class="cline-any cline-yes">17x</span>
572
+ <span class="cline-any cline-yes">15x</span>
573
573
  <span class="cline-any cline-yes">15x</span>
574
574
  <span class="cline-any cline-yes">15x</span>
575
575
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -779,36 +779,36 @@ export async function sendEmail(
779
779
  ) {
780
780
  const db = tenancy.getGlobalDB()
781
781
  let config =
782
- (await getSmtpConfiguration(db, opts<span class="branch-0 cbranch-no" title="branch not covered" >?.w</span>orkspaceId, opts<span class="branch-0 cbranch-no" title="branch not covered" >?.a</span>utomation)) || <span class="branch-1 cbranch-no" title="branch not covered" >{}</span>
783
- <span class="missing-if-branch" title="if path not taken" >I</span>if (Object.keys(config).length === 0 &amp;&amp; <span class="branch-1 cbranch-no" title="branch not covered" >!TEST_MODE)</span> {
782
+ (await getSmtpConfiguration(db, opts?.workspaceId, opts?.automation)) || <span class="branch-1 cbranch-no" title="branch not covered" >{}</span>
783
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (Object.keys(config).length === 0 &amp;&amp; <span class="branch-1 cbranch-no" title="branch not covered" >!TEST_MODE) {</span>
784
784
  <span class="cstat-no" title="statement not covered" > throw "Unable to find SMTP configuration."</span>
785
785
  }
786
786
  const transport = createSMTPTransport(config)
787
787
  // if there is a link code needed this will retrieve it
788
- const code = await getLinkCode(purpose, email, opts.user, opts<span class="branch-0 cbranch-no" title="branch not covered" >?.i</span>nfo)
788
+ const code = await getLinkCode(purpose, email, opts.user, opts?.info)
789
789
  let context
790
790
  if (code) {
791
791
  context = await getSettingsTemplateContext(purpose, code)
792
792
  }
793
793
  &nbsp;
794
794
  let message: any = {
795
- from: opts<span class="branch-0 cbranch-no" title="branch not covered" >?.f</span>rom || config.from,
795
+ from: opts?.from || config.from,
796
796
  html: await buildEmail(purpose, email, context, {
797
- user: opts<span class="branch-0 cbranch-no" title="branch not covered" >?.u</span>ser,
798
- contents: opts<span class="branch-0 cbranch-no" title="branch not covered" >?.c</span>ontents,
797
+ user: opts?.user,
798
+ contents: opts?.contents,
799
799
  }),
800
800
  }
801
801
  &nbsp;
802
802
  message = {
803
803
  ...message,
804
804
  to: email,
805
- cc: opts<span class="branch-0 cbranch-no" title="branch not covered" >?.c</span>c,
806
- bcc: opts<span class="branch-0 cbranch-no" title="branch not covered" >?.b</span>cc,
805
+ cc: opts?.cc,
806
+ bcc: opts?.bcc,
807
807
  }
808
808
  &nbsp;
809
- if (opts<span class="branch-0 cbranch-no" title="branch not covered" >?.s</span>ubject || config.subject) {
809
+ if (opts?.subject || config.subject) {
810
810
  message.subject = await processString(
811
- opts<span class="branch-0 cbranch-no" title="branch not covered" >?.s</span>ubject || config.subject,
811
+ opts?.subject || config.subject,
812
812
  context
813
813
  )
814
814
  }
@@ -835,7 +835,7 @@ export async function verifyConfig(config: any) {
835
835
  <div class='footer quiet pad2 space-top1 center small'>
836
836
  Code coverage generated by
837
837
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
838
- at Thu Feb 02 2023 11:54:57 GMT+0000 (Coordinated Universal Time)
838
+ at Mon Feb 06 2023 09:20:59 GMT+0000 (Coordinated Universal Time)
839
839
  </div>
840
840
  <script src="../../prettify.js"></script>
841
841
  <script>
@@ -68,10 +68,10 @@
68
68
  <a name='L3'></a><a href='#L3'>3</a>
69
69
  <a name='L4'></a><a href='#L4'>4</a>
70
70
  <a name='L5'></a><a href='#L5'>5</a>
71
- <a name='L6'></a><a href='#L6'>6</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">17x</span>
71
+ <a name='L6'></a><a href='#L6'>6</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">18x</span>
72
72
  <span class="cline-any cline-neutral">&nbsp;</span>
73
- <span class="cline-any cline-yes">17x</span>
74
- <span class="cline-any cline-yes">85x</span>
73
+ <span class="cline-any cline-yes">90x</span>
74
+ <span class="cline-any cline-yes">90x</span>
75
75
  <span class="cline-any cline-neutral">&nbsp;</span>
76
76
  <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import { readFileSync } from "fs"
77
77
  &nbsp;
@@ -85,7 +85,7 @@ export function readStaticFile(path: string) {
85
85
  <div class='footer quiet pad2 space-top1 center small'>
86
86
  Code coverage generated by
87
87
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
88
- at Thu Feb 02 2023 11:54:57 GMT+0000 (Coordinated Universal Time)
88
+ at Mon Feb 06 2023 09:20:59 GMT+0000 (Coordinated Universal Time)
89
89
  </div>
90
90
  <script src="../../prettify.js"></script>
91
91
  <script>
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">80.74% </span>
26
+ <span class="strong">79.75% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>130/161</span>
28
+ <span class='fraction'>130/163</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">65.78% </span>
33
+ <span class="strong">60.81% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>75/114</span>
35
+ <span class='fraction'>45/74</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">95.65% </span>
40
+ <span class="strong">93.75% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>22/23</span>
42
+ <span class='fraction'>30/32</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">81.76% </span>
47
+ <span class="strong">80.74% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>130/159</span>
49
+ <span class='fraction'>130/161</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 high'></div>
64
+ <div class='status-line medium'></div>
65
65
  <div class="pad1">
66
66
  <table class="coverage-summary">
67
67
  <thead>
@@ -80,17 +80,17 @@
80
80
  </thead>
81
81
  <tbody><tr>
82
82
  <td class="file low" data-value="appService.ts"><a href="appService.ts.html">appService.ts</a></td>
83
- <td data-value="47.36" class="pic low">
83
+ <td data-value="47.61" class="pic low">
84
84
  <div class="chart"><div class="cover-fill" style="width: 47%"></div><div class="cover-empty" style="width: 53%"></div></div>
85
85
  </td>
86
- <td data-value="47.36" class="pct low">47.36%</td>
87
- <td data-value="19" class="abs low">9/19</td>
86
+ <td data-value="47.61" class="pct low">47.61%</td>
87
+ <td data-value="21" class="abs low">10/21</td>
88
88
  <td data-value="33.33" class="pct low">33.33%</td>
89
89
  <td data-value="6" class="abs low">2/6</td>
90
90
  <td data-value="100" class="pct high">100%</td>
91
91
  <td data-value="2" class="abs high">2/2</td>
92
- <td data-value="47.36" class="pct low">47.36%</td>
93
- <td data-value="19" class="abs low">9/19</td>
92
+ <td data-value="47.61" class="pct low">47.61%</td>
93
+ <td data-value="21" class="abs low">10/21</td>
94
94
  </tr>
95
95
 
96
96
  <tr>
@@ -100,10 +100,10 @@
100
100
  </td>
101
101
  <td data-value="83.33" class="pct high">83.33%</td>
102
102
  <td data-value="72" class="abs high">60/72</td>
103
- <td data-value="67.05" class="pct medium">67.05%</td>
104
- <td data-value="85" class="abs medium">57/85</td>
103
+ <td data-value="60" class="pct medium">60%</td>
104
+ <td data-value="45" class="abs medium">27/45</td>
105
105
  <td data-value="100" class="pct high">100%</td>
106
- <td data-value="7" class="abs high">7/7</td>
106
+ <td data-value="10" class="abs high">10/10</td>
107
107
  <td data-value="83.33" class="pct high">83.33%</td>
108
108
  <td data-value="72" class="abs high">60/72</td>
109
109
  </tr>
@@ -139,18 +139,18 @@
139
139
  </tr>
140
140
 
141
141
  <tr>
142
- <td class="file high" data-value="redis.ts"><a href="redis.ts.html">redis.ts</a></td>
143
- <td data-value="80.48" class="pic high">
144
- <div class="chart"><div class="cover-fill" style="width: 80%"></div><div class="cover-empty" style="width: 20%"></div></div>
142
+ <td class="file medium" data-value="redis.ts"><a href="redis.ts.html">redis.ts</a></td>
143
+ <td data-value="78.04" class="pic medium">
144
+ <div class="chart"><div class="cover-fill" style="width: 78%"></div><div class="cover-empty" style="width: 22%"></div></div>
145
145
  </td>
146
- <td data-value="80.48" class="pct high">80.48%</td>
147
- <td data-value="41" class="abs high">33/41</td>
146
+ <td data-value="78.04" class="pct medium">78.04%</td>
147
+ <td data-value="41" class="abs medium">32/41</td>
148
148
  <td data-value="63.63" class="pct medium">63.63%</td>
149
149
  <td data-value="11" class="abs medium">7/11</td>
150
- <td data-value="90" class="pct high">90%</td>
151
- <td data-value="10" class="abs high">9/10</td>
152
- <td data-value="84.61" class="pct high">84.61%</td>
153
- <td data-value="39" class="abs high">33/39</td>
150
+ <td data-value="87.5" class="pct high">87.5%</td>
151
+ <td data-value="16" class="abs high">14/16</td>
152
+ <td data-value="82.05" class="pct high">82.05%</td>
153
+ <td data-value="39" class="abs high">32/39</td>
154
154
  </tr>
155
155
 
156
156
  <tr>
@@ -191,7 +191,7 @@
191
191
  <div class='footer quiet pad2 space-top1 center small'>
192
192
  Code coverage generated by
193
193
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
194
- at Thu Feb 02 2023 11:54:57 GMT+0000 (Coordinated Universal Time)
194
+ at Mon Feb 06 2023 09:20:59 GMT+0000 (Coordinated Universal Time)
195
195
  </div>
196
196
  <script src="../../prettify.js"></script>
197
197
  <script>
@@ -78,7 +78,7 @@
78
78
  <span class="cline-any cline-neutral">&nbsp;</span>
79
79
  <span class="cline-any cline-neutral">&nbsp;</span>
80
80
  <span class="cline-any cline-neutral">&nbsp;</span>
81
- <span class="cline-any cline-yes">17x</span>
81
+ <span class="cline-any cline-yes">21x</span>
82
82
  <span class="cline-any cline-yes">21x</span>
83
83
  <span class="cline-any cline-neutral">&nbsp;</span>
84
84
  <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">/**
@@ -97,7 +97,7 @@ export function checkSlashesInUrl(url: string) {
97
97
  <div class='footer quiet pad2 space-top1 center small'>
98
98
  Code coverage generated by
99
99
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
100
- at Thu Feb 02 2023 11:54:57 GMT+0000 (Coordinated Universal Time)
100
+ at Mon Feb 06 2023 09:20:59 GMT+0000 (Coordinated Universal Time)
101
101
  </div>
102
102
  <script src="../../prettify.js"></script>
103
103
  <script>
@@ -23,9 +23,9 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">80.48% </span>
26
+ <span class="strong">78.04% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>33/41</span>
28
+ <span class='fraction'>32/41</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">90% </span>
40
+ <span class="strong">87.5% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>9/10</span>
42
+ <span class='fraction'>14/16</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">84.61% </span>
47
+ <span class="strong">82.05% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>33/39</span>
49
+ <span class='fraction'>32/39</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 high'></div>
64
+ <div class='status-line medium'></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>
@@ -176,7 +176,7 @@
176
176
  <a name='L111'></a><a href='#L111'>111</a>
177
177
  <a name='L112'></a><a href='#L112'>112</a>
178
178
  <a name='L113'></a><a href='#L113'>113</a>
179
- <a name='L114'></a><a href='#L114'>114</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">17x</span>
179
+ <a name='L114'></a><a href='#L114'>114</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">18x</span>
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-yes">7x</span>
@@ -219,17 +219,17 @@
219
219
  <span class="cline-any cline-yes">2x</span>
220
220
  <span class="cline-any cline-neutral">&nbsp;</span>
221
221
  <span class="cline-any cline-neutral">&nbsp;</span>
222
- <span class="cline-any cline-yes">17x</span>
223
- <span class="cline-any cline-yes">17x</span>
224
- <span class="cline-any cline-yes">17x</span>
225
- <span class="cline-any cline-yes">17x</span>
226
- <span class="cline-any cline-yes">17x</span>
222
+ <span class="cline-any cline-yes">18x</span>
223
+ <span class="cline-any cline-yes">18x</span>
224
+ <span class="cline-any cline-yes">18x</span>
225
+ <span class="cline-any cline-yes">18x</span>
226
+ <span class="cline-any cline-yes">18x</span>
227
227
  <span class="cline-any cline-neutral">&nbsp;</span>
228
228
  <span class="cline-any cline-neutral">&nbsp;</span>
229
229
  <span class="cline-any cline-neutral">&nbsp;</span>
230
230
  <span class="cline-any cline-neutral">&nbsp;</span>
231
231
  <span class="cline-any cline-neutral">&nbsp;</span>
232
- <span class="cline-any cline-yes">17x</span>
232
+ <span class="cline-any cline-no">&nbsp;</span>
233
233
  <span class="cline-any cline-no">&nbsp;</span>
234
234
  <span class="cline-any cline-no">&nbsp;</span>
235
235
  <span class="cline-any cline-no">&nbsp;</span>
@@ -242,7 +242,7 @@
242
242
  <span class="cline-any cline-neutral">&nbsp;</span>
243
243
  <span class="cline-any cline-neutral">&nbsp;</span>
244
244
  <span class="cline-any cline-neutral">&nbsp;</span>
245
- <span class="cline-any cline-yes">17x</span>
245
+ <span class="cline-any cline-yes">2x</span>
246
246
  <span class="cline-any cline-yes">2x</span>
247
247
  <span class="cline-any cline-neutral">&nbsp;</span>
248
248
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -252,7 +252,7 @@
252
252
  <span class="cline-any cline-neutral">&nbsp;</span>
253
253
  <span class="cline-any cline-neutral">&nbsp;</span>
254
254
  <span class="cline-any cline-neutral">&nbsp;</span>
255
- <span class="cline-any cline-yes">17x</span>
255
+ <span class="cline-any cline-yes">1x</span>
256
256
  <span class="cline-any cline-neutral">&nbsp;</span>
257
257
  <span class="cline-any cline-neutral">&nbsp;</span>
258
258
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -269,7 +269,7 @@
269
269
  <span class="cline-any cline-neutral">&nbsp;</span>
270
270
  <span class="cline-any cline-neutral">&nbsp;</span>
271
271
  <span class="cline-any cline-neutral">&nbsp;</span>
272
- <span class="cline-any cline-yes">17x</span>
272
+ <span class="cline-any cline-yes">5x</span>
273
273
  <span class="cline-any cline-yes">5x</span>
274
274
  <span class="cline-any cline-neutral">&nbsp;</span>
275
275
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -279,7 +279,7 @@
279
279
  <span class="cline-any cline-neutral">&nbsp;</span>
280
280
  <span class="cline-any cline-neutral">&nbsp;</span>
281
281
  <span class="cline-any cline-neutral">&nbsp;</span>
282
- <span class="cline-any cline-yes">17x</span>
282
+ <span class="cline-any cline-yes">1x</span>
283
283
  <span class="cline-any cline-neutral">&nbsp;</span>
284
284
  <span class="cline-any cline-neutral">&nbsp;</span>
285
285
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -342,7 +342,7 @@ export async function init() {
342
342
  /**
343
343
  * make sure redis connection is closed.
344
344
  */
345
- export async function <span class="fstat-no" title="function not covered" >shutdown(</span>) {
345
+ export async function <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >shutdown<span class="fstat-no" title="function not covered" >(</span></span>) {</span>
346
346
  <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (pwResetClient) <span class="cstat-no" title="statement not covered" >await pwResetClient.finish()</span></span>
347
347
  <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (invitationClient) <span class="cstat-no" title="statement not covered" >await invitationClient.finish()</span></span>
348
348
  <span class="cstat-no" title="statement not covered" > console.log("Redis shutdown")</span>
@@ -409,7 +409,7 @@ export async function checkInviteCode(
409
409
  <div class='footer quiet pad2 space-top1 center small'>
410
410
  Code coverage generated by
411
411
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
412
- at Thu Feb 02 2023 11:54:57 GMT+0000 (Coordinated Universal Time)
412
+ at Mon Feb 06 2023 09:20:59 GMT+0000 (Coordinated Universal Time)
413
413
  </div>
414
414
  <script src="../../prettify.js"></script>
415
415
  <script>
@@ -112,17 +112,17 @@
112
112
  <a name='L47'></a><a href='#L47'>47</a>
113
113
  <a name='L48'></a><a href='#L48'>48</a>
114
114
  <a name='L49'></a><a href='#L49'>49</a>
115
- <a name='L50'></a><a href='#L50'>50</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">17x</span>
116
- <span class="cline-any cline-yes">17x</span>
115
+ <a name='L50'></a><a href='#L50'>50</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">18x</span>
117
116
  <span class="cline-any cline-neutral">&nbsp;</span>
118
117
  <span class="cline-any cline-neutral">&nbsp;</span>
119
118
  <span class="cline-any cline-neutral">&nbsp;</span>
120
119
  <span class="cline-any cline-neutral">&nbsp;</span>
121
120
  <span class="cline-any cline-neutral">&nbsp;</span>
122
- <span class="cline-any cline-yes">17x</span>
123
- <span class="cline-any cline-yes">17x</span>
121
+ <span class="cline-any cline-yes">18x</span>
122
+ <span class="cline-any cline-yes">18x</span>
123
+ <span class="cline-any cline-yes">18x</span>
124
124
  <span class="cline-any cline-neutral">&nbsp;</span>
125
- <span class="cline-any cline-yes">17x</span>
125
+ <span class="cline-any cline-yes">7x</span>
126
126
  <span class="cline-any cline-neutral">&nbsp;</span>
127
127
  <span class="cline-any cline-neutral">&nbsp;</span>
128
128
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -217,7 +217,7 @@ export async function getSettingsTemplateContext(
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" rel="noopener noreferrer">istanbul</a>
220
- at Thu Feb 02 2023 11:54:57 GMT+0000 (Coordinated Universal Time)
220
+ at Mon Feb 06 2023 09:20:59 GMT+0000 (Coordinated Universal Time)
221
221
  </div>
222
222
  <script src="../../prettify.js"></script>
223
223
  <script>