@budibase/server 0.9.171 → 0.9.173-alpha.2

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 (261) hide show
  1. package/__mocks__/{mysql.ts → mysql2.ts} +0 -0
  2. package/builder/assets/{index.dbc6728e.css → index.7469e1e4.css} +2 -2
  3. package/builder/assets/{index.cf0febb9.js → index.8a8f7849.js} +34 -34
  4. package/builder/assets/{vendor.54435e8f.js → vendor.278a305c.js} +1 -1
  5. package/builder/index.html +3 -3
  6. package/coverage/clover.xml +973 -849
  7. package/coverage/coverage-final.json +47 -46
  8. package/coverage/lcov-report/api/controllers/analytics.js.html +21 -9
  9. package/coverage/lcov-report/api/controllers/apikeys.js.html +1 -1
  10. package/coverage/lcov-report/api/controllers/application.js.html +186 -84
  11. package/coverage/lcov-report/api/controllers/auth.js.html +37 -10
  12. package/coverage/lcov-report/api/controllers/automation.js.html +1 -1
  13. package/coverage/lcov-report/api/controllers/backup.js.html +6 -9
  14. package/coverage/lcov-report/api/controllers/cloud.js.html +1 -1
  15. package/coverage/lcov-report/api/controllers/component.js.html +1 -1
  16. package/coverage/lcov-report/api/controllers/datasource.js.html +1 -1
  17. package/coverage/lcov-report/api/controllers/dev.js.html +41 -17
  18. package/coverage/lcov-report/api/controllers/hosting.js.html +1 -1
  19. package/coverage/lcov-report/api/controllers/index.html +71 -71
  20. package/coverage/lcov-report/api/controllers/integration.js.html +1 -1
  21. package/coverage/lcov-report/api/controllers/layout.js.html +1 -1
  22. package/coverage/lcov-report/api/controllers/metadata.js.html +1 -1
  23. package/coverage/lcov-report/api/controllers/permission.js.html +7 -4
  24. package/coverage/lcov-report/api/controllers/query.js.html +129 -24
  25. package/coverage/lcov-report/api/controllers/role.js.html +1 -1
  26. package/coverage/lcov-report/api/controllers/routing.js.html +1 -1
  27. package/coverage/lcov-report/api/controllers/row/external.js.html +1 -1
  28. package/coverage/lcov-report/api/controllers/row/index.html +5 -5
  29. package/coverage/lcov-report/api/controllers/row/index.js.html +15 -15
  30. package/coverage/lcov-report/api/controllers/row/internal.js.html +1 -1
  31. package/coverage/lcov-report/api/controllers/row/internalSearch.js.html +1 -1
  32. package/coverage/lcov-report/api/controllers/row/utils.js.html +1 -1
  33. package/coverage/lcov-report/api/controllers/screen.js.html +9 -9
  34. package/coverage/lcov-report/api/controllers/script.js.html +12 -57
  35. package/coverage/lcov-report/api/controllers/table/index.html +28 -28
  36. package/coverage/lcov-report/api/controllers/table/index.js.html +16 -37
  37. package/coverage/lcov-report/api/controllers/table/utils.js.html +279 -33
  38. package/coverage/lcov-report/api/controllers/templates.js.html +49 -13
  39. package/coverage/lcov-report/api/controllers/user.js.html +3 -3
  40. package/coverage/lcov-report/api/controllers/view/exporters.js.html +1 -1
  41. package/coverage/lcov-report/api/controllers/view/index.html +19 -19
  42. package/coverage/lcov-report/api/controllers/view/index.js.html +1 -1
  43. package/coverage/lcov-report/api/controllers/view/utils.js.html +8 -8
  44. package/coverage/lcov-report/api/controllers/view/viewBuilder.js.html +54 -15
  45. package/coverage/lcov-report/api/controllers/webhook.js.html +1 -1
  46. package/coverage/lcov-report/api/index.html +1 -1
  47. package/coverage/lcov-report/api/index.js.html +3 -3
  48. package/coverage/lcov-report/api/routes/analytics.js.html +1 -1
  49. package/coverage/lcov-report/api/routes/apikeys.js.html +1 -1
  50. package/coverage/lcov-report/api/routes/application.js.html +5 -2
  51. package/coverage/lcov-report/api/routes/auth.js.html +1 -1
  52. package/coverage/lcov-report/api/routes/automation.js.html +1 -1
  53. package/coverage/lcov-report/api/routes/backup.js.html +1 -1
  54. package/coverage/lcov-report/api/routes/cloud.js.html +1 -1
  55. package/coverage/lcov-report/api/routes/component.js.html +1 -1
  56. package/coverage/lcov-report/api/routes/datasource.js.html +1 -1
  57. package/coverage/lcov-report/api/routes/deploy.js.html +1 -1
  58. package/coverage/lcov-report/api/routes/dev.js.html +26 -11
  59. package/coverage/lcov-report/api/routes/hosting.js.html +1 -1
  60. package/coverage/lcov-report/api/routes/index.html +9 -9
  61. package/coverage/lcov-report/api/routes/index.js.html +1 -1
  62. package/coverage/lcov-report/api/routes/integration.js.html +1 -1
  63. package/coverage/lcov-report/api/routes/layout.js.html +1 -1
  64. package/coverage/lcov-report/api/routes/metadata.js.html +1 -1
  65. package/coverage/lcov-report/api/routes/permission.js.html +1 -1
  66. package/coverage/lcov-report/api/routes/query.js.html +9 -3
  67. package/coverage/lcov-report/api/routes/role.js.html +1 -1
  68. package/coverage/lcov-report/api/routes/routing.js.html +1 -1
  69. package/coverage/lcov-report/api/routes/row.js.html +1 -1
  70. package/coverage/lcov-report/api/routes/screen.js.html +1 -1
  71. package/coverage/lcov-report/api/routes/script.js.html +1 -1
  72. package/coverage/lcov-report/api/routes/static.js.html +1 -1
  73. package/coverage/lcov-report/api/routes/table.js.html +1 -1
  74. package/coverage/lcov-report/api/routes/templates.js.html +1 -1
  75. package/coverage/lcov-report/api/routes/user.js.html +1 -1
  76. package/coverage/lcov-report/api/routes/view.js.html +1 -1
  77. package/coverage/lcov-report/api/routes/webhook.js.html +1 -1
  78. package/coverage/lcov-report/automations/actions.js.html +31 -10
  79. package/coverage/lcov-report/automations/automationUtils.js.html +14 -86
  80. package/coverage/lcov-report/automations/bullboard.js.html +1 -1
  81. package/coverage/lcov-report/automations/index.html +37 -37
  82. package/coverage/lcov-report/automations/index.js.html +1 -1
  83. package/coverage/lcov-report/automations/steps/bash.js.html +10 -7
  84. package/coverage/lcov-report/automations/steps/createRow.js.html +2 -2
  85. package/coverage/lcov-report/automations/steps/delay.js.html +1 -1
  86. package/coverage/lcov-report/automations/steps/deleteRow.js.html +8 -5
  87. package/coverage/lcov-report/automations/steps/discord.js.html +1 -1
  88. package/coverage/lcov-report/automations/steps/executeQuery.js.html +10 -7
  89. package/coverage/lcov-report/automations/steps/executeScript.js.html +10 -7
  90. package/coverage/lcov-report/automations/steps/filter.js.html +1 -1
  91. package/coverage/lcov-report/automations/steps/index.html +57 -57
  92. package/coverage/lcov-report/automations/steps/integromat.js.html +1 -1
  93. package/coverage/lcov-report/automations/steps/outgoingWebhook.js.html +10 -7
  94. package/coverage/lcov-report/automations/steps/queryRows.js.html +10 -7
  95. package/coverage/lcov-report/automations/steps/sendSmtpEmail.js.html +10 -7
  96. package/coverage/lcov-report/automations/steps/serverLog.js.html +1 -1
  97. package/coverage/lcov-report/automations/steps/slack.js.html +1 -1
  98. package/coverage/lcov-report/automations/steps/updateRow.js.html +14 -14
  99. package/coverage/lcov-report/automations/steps/utils.js.html +10 -10
  100. package/coverage/lcov-report/automations/steps/zapier.js.html +1 -1
  101. package/coverage/lcov-report/automations/thread.js.html +54 -12
  102. package/coverage/lcov-report/automations/triggerInfo/app.js.html +1 -1
  103. package/coverage/lcov-report/automations/triggerInfo/cron.js.html +1 -1
  104. package/coverage/lcov-report/automations/triggerInfo/index.html +1 -1
  105. package/coverage/lcov-report/automations/triggerInfo/index.js.html +1 -1
  106. package/coverage/lcov-report/automations/triggerInfo/rowDeleted.js.html +1 -1
  107. package/coverage/lcov-report/automations/triggerInfo/rowSaved.js.html +1 -1
  108. package/coverage/lcov-report/automations/triggerInfo/rowUpdated.js.html +1 -1
  109. package/coverage/lcov-report/automations/triggerInfo/webhook.js.html +1 -1
  110. package/coverage/lcov-report/automations/triggers.js.html +1 -1
  111. package/coverage/lcov-report/automations/utils.js.html +28 -28
  112. package/coverage/lcov-report/constants/index.html +1 -1
  113. package/coverage/lcov-report/constants/index.js.html +5 -2
  114. package/coverage/lcov-report/constants/layouts.js.html +1 -1
  115. package/coverage/lcov-report/constants/screens.js.html +2 -2
  116. package/coverage/lcov-report/db/client.js.html +1 -1
  117. package/coverage/lcov-report/db/inMemoryView.js.html +1 -1
  118. package/coverage/lcov-report/db/index.html +1 -1
  119. package/coverage/lcov-report/db/index.js.html +1 -1
  120. package/coverage/lcov-report/db/linkedRows/LinkController.js.html +12 -12
  121. package/coverage/lcov-report/db/linkedRows/index.html +18 -18
  122. package/coverage/lcov-report/db/linkedRows/index.js.html +47 -26
  123. package/coverage/lcov-report/db/linkedRows/linkUtils.js.html +1 -1
  124. package/coverage/lcov-report/db/newid.js.html +2 -2
  125. package/coverage/lcov-report/db/utils.js.html +17 -17
  126. package/coverage/lcov-report/events/AutomationEmitter.js.html +1 -1
  127. package/coverage/lcov-report/events/index.html +1 -1
  128. package/coverage/lcov-report/events/index.js.html +1 -1
  129. package/coverage/lcov-report/events/utils.js.html +1 -1
  130. package/coverage/lcov-report/index.html +107 -107
  131. package/coverage/lcov-report/integrations/tests/TestConfiguration.js.html +1 -1
  132. package/coverage/lcov-report/integrations/tests/index.html +1 -1
  133. package/coverage/lcov-report/middleware/appInfo.js.html +1 -1
  134. package/coverage/lcov-report/middleware/authorized.js.html +2 -2
  135. package/coverage/lcov-report/middleware/builder.js.html +1 -1
  136. package/coverage/lcov-report/middleware/currentapp.js.html +52 -25
  137. package/coverage/lcov-report/middleware/index.html +15 -15
  138. package/coverage/lcov-report/middleware/joi-validator.js.html +1 -1
  139. package/coverage/lcov-report/middleware/resourceId.js.html +1 -1
  140. package/coverage/lcov-report/middleware/selfhost.js.html +1 -1
  141. package/coverage/lcov-report/middleware/usageQuota.js.html +1 -1
  142. package/coverage/lcov-report/utilities/bcrypt.js.html +1 -1
  143. package/coverage/lcov-report/utilities/budibaseDir.js.html +1 -1
  144. package/coverage/lcov-report/utilities/centralPath.js.html +1 -1
  145. package/coverage/lcov-report/utilities/csvParser.js.html +1 -1
  146. package/coverage/lcov-report/utilities/global.js.html +27 -27
  147. package/coverage/lcov-report/utilities/index.html +32 -17
  148. package/coverage/lcov-report/utilities/index.js.html +4 -4
  149. package/coverage/lcov-report/utilities/queue/inMemoryQueue.js.html +29 -8
  150. package/coverage/lcov-report/utilities/queue/index.html +15 -15
  151. package/coverage/lcov-report/utilities/routing/index.html +1 -1
  152. package/coverage/lcov-report/utilities/routing/index.js.html +1 -1
  153. package/coverage/lcov-report/utilities/rowProcessor/index.html +14 -14
  154. package/coverage/lcov-report/utilities/rowProcessor/index.js.html +38 -8
  155. package/coverage/lcov-report/utilities/rowProcessor/utils.js.html +1 -1
  156. package/coverage/lcov-report/utilities/scriptRunner.js.html +143 -0
  157. package/coverage/lcov-report/utilities/security.js.html +1 -1
  158. package/coverage/lcov-report/utilities/statusCodes.js.html +1 -1
  159. package/coverage/lcov-report/utilities/users.js.html +1 -1
  160. package/coverage/lcov-report/utilities/workerRequests.js.html +19 -19
  161. package/coverage/lcov.info +1692 -1452
  162. package/dist/api/controllers/analytics.js +4 -0
  163. package/dist/api/controllers/application.js +185 -171
  164. package/dist/api/controllers/auth.js +12 -2
  165. package/dist/api/controllers/backup.js +4 -4
  166. package/dist/api/controllers/deploy/index.js +3 -16
  167. package/dist/api/controllers/dev.js +17 -11
  168. package/dist/api/controllers/permission.js +1 -0
  169. package/dist/api/controllers/query.js +26 -8
  170. package/dist/api/controllers/row/ExternalRequest.js +46 -5
  171. package/dist/api/controllers/script.js +4 -16
  172. package/dist/api/controllers/table/index.js +5 -10
  173. package/dist/api/controllers/table/utils.js +83 -10
  174. package/dist/api/controllers/templates.js +18 -3
  175. package/dist/api/controllers/view/viewBuilder.js +15 -1
  176. package/dist/api/routes/application.js +1 -0
  177. package/dist/api/routes/dev.js +8 -4
  178. package/dist/api/routes/query.js +3 -1
  179. package/dist/api/routes/tests/utilities/TestFunctions.js +7 -9
  180. package/dist/automations/actions.js +9 -3
  181. package/dist/automations/automationUtils.js +8 -29
  182. package/dist/automations/steps/bash.js +2 -1
  183. package/dist/automations/steps/createRow.js +1 -1
  184. package/dist/automations/steps/deleteRow.js +2 -1
  185. package/dist/automations/steps/executeQuery.js +2 -1
  186. package/dist/automations/steps/executeScript.js +2 -1
  187. package/dist/automations/steps/outgoingWebhook.js +2 -1
  188. package/dist/automations/steps/queryRows.js +2 -1
  189. package/dist/automations/steps/sendSmtpEmail.js +2 -1
  190. package/dist/automations/steps/updateRow.js +6 -2
  191. package/dist/automations/thread.js +14 -3
  192. package/dist/constants/index.js +1 -0
  193. package/dist/db/linkedRows/index.js +9 -6
  194. package/dist/integrations/base/sql.js +4 -4
  195. package/dist/integrations/mysql.js +1 -1
  196. package/dist/integrations/utils.js +17 -1
  197. package/dist/middleware/currentapp.js +8 -2
  198. package/dist/package.json +7 -6
  199. package/dist/tests/utilities/TestConfiguration.js +34 -19
  200. package/dist/tests/utilities/controllers.js +1 -0
  201. package/dist/tsconfig.tsbuildinfo +1 -1
  202. package/dist/utilities/fileSystem/index.js +49 -33
  203. package/dist/utilities/global.js +1 -1
  204. package/dist/utilities/queue/inMemoryQueue.js +6 -0
  205. package/dist/utilities/rowProcessor/index.js +8 -0
  206. package/dist/utilities/scriptRunner.js +19 -0
  207. package/package.json +8 -7
  208. package/scripts/jestSetup.js +2 -0
  209. package/src/api/controllers/analytics.js +4 -0
  210. package/src/api/controllers/application.js +43 -9
  211. package/src/api/controllers/auth.js +12 -3
  212. package/src/api/controllers/backup.js +4 -5
  213. package/src/api/controllers/deploy/index.js +3 -18
  214. package/src/api/controllers/dev.js +16 -8
  215. package/src/api/controllers/permission.js +1 -0
  216. package/src/api/controllers/query.js +46 -11
  217. package/src/api/controllers/row/ExternalRequest.ts +53 -4
  218. package/src/api/controllers/script.js +4 -19
  219. package/src/api/controllers/table/index.js +5 -12
  220. package/src/api/controllers/table/utils.js +94 -12
  221. package/src/api/controllers/templates.js +17 -5
  222. package/src/api/controllers/view/tests/__snapshots__/viewBuilder.spec.js.snap +1 -1
  223. package/src/api/controllers/view/viewBuilder.js +14 -1
  224. package/src/api/routes/application.js +1 -0
  225. package/src/api/routes/dev.js +9 -4
  226. package/src/api/routes/query.js +3 -1
  227. package/src/api/routes/tests/auth.spec.js +1 -2
  228. package/src/api/routes/tests/permissions.spec.js +3 -0
  229. package/src/api/routes/tests/query.spec.js +2 -2
  230. package/src/api/routes/tests/routing.spec.js +24 -8
  231. package/src/api/routes/tests/user.spec.js +1 -1
  232. package/src/api/routes/tests/utilities/TestFunctions.js +7 -9
  233. package/src/api/routes/tests/webhook.spec.js +4 -1
  234. package/src/automations/actions.js +10 -3
  235. package/src/automations/automationUtils.js +7 -31
  236. package/src/automations/steps/bash.js +2 -1
  237. package/src/automations/steps/createRow.js +1 -1
  238. package/src/automations/steps/deleteRow.js +2 -1
  239. package/src/automations/steps/executeQuery.js +2 -1
  240. package/src/automations/steps/executeScript.js +2 -1
  241. package/src/automations/steps/outgoingWebhook.js +2 -1
  242. package/src/automations/steps/queryRows.js +2 -1
  243. package/src/automations/steps/sendSmtpEmail.js +2 -1
  244. package/src/automations/steps/updateRow.js +6 -6
  245. package/src/automations/thread.js +17 -3
  246. package/src/constants/index.js +1 -0
  247. package/src/db/linkedRows/index.js +14 -7
  248. package/src/integrations/base/sql.ts +11 -3
  249. package/src/integrations/mysql.ts +1 -1
  250. package/src/integrations/tests/mongo.spec.js +10 -6
  251. package/src/integrations/tests/mysql.spec.js +1 -1
  252. package/src/integrations/utils.ts +18 -0
  253. package/src/middleware/currentapp.js +11 -2
  254. package/src/middleware/tests/currentapp.spec.js +3 -3
  255. package/src/tests/utilities/TestConfiguration.js +47 -19
  256. package/src/tests/utilities/controllers.js +1 -0
  257. package/src/utilities/fileSystem/index.js +65 -43
  258. package/src/utilities/global.js +1 -1
  259. package/src/utilities/queue/inMemoryQueue.js +7 -0
  260. package/src/utilities/rowProcessor/index.js +10 -0
  261. package/src/utilities/scriptRunner.js +21 -0
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">96.13% </span>
26
+ <span class="strong">96.46% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>298/310</span>
28
+ <span class='fraction'>300/311</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">86.57% </span>
33
+ <span class="strong">86.03% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>116/134</span>
35
+ <span class='fraction'>117/136</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">94.92% </span>
40
+ <span class="strong">95% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>56/59</span>
42
+ <span class='fraction'>57/60</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">96.31% </span>
47
+ <span class="strong">96.67% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>287/298</span>
49
+ <span class='fraction'>290/300</span>
50
50
  </div>
51
51
 
52
52
 
@@ -89,17 +89,17 @@
89
89
 
90
90
  <tr>
91
91
  <td class="file high" data-value="index.js"><a href="index.js.html">index.js</a></td>
92
- <td data-value="95.05" class="pic high">
93
- <div class="chart"><div class="cover-fill" style="width: 95%"></div><div class="cover-empty" style="width: 5%"></div></div>
92
+ <td data-value="96.08" class="pic high">
93
+ <div class="chart"><div class="cover-fill" style="width: 96%"></div><div class="cover-empty" style="width: 4%"></div></div>
94
94
  </td>
95
- <td data-value="95.05" class="pct high">95.05%</td>
96
- <td data-value="101" class="abs high">96/101</td>
97
- <td data-value="82.5" class="pct high">82.5%</td>
98
- <td data-value="40" class="abs high">33/40</td>
95
+ <td data-value="96.08" class="pct high">96.08%</td>
96
+ <td data-value="102" class="abs high">98/102</td>
97
+ <td data-value="80.95" class="pct high">80.95%</td>
98
+ <td data-value="42" class="abs high">34/42</td>
99
99
  <td data-value="100" class="pct high">100%</td>
100
- <td data-value="19" class="abs high">19/19</td>
101
- <td data-value="94.68" class="pct high">94.68%</td>
102
- <td data-value="94" class="abs high">89/94</td>
100
+ <td data-value="20" class="abs high">20/20</td>
101
+ <td data-value="95.83" class="pct high">95.83%</td>
102
+ <td data-value="96" class="abs high">92/96</td>
103
103
  </tr>
104
104
 
105
105
  <tr>
@@ -125,7 +125,7 @@
125
125
  <div class='footer quiet pad2 space-top1 center small'>
126
126
  Code coverage generated by
127
127
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
128
- at Wed Oct 20 2021 13:34:18 GMT+0000 (Coordinated Universal Time)
128
+ at Wed Oct 27 2021 08:59:08 GMT+0000 (Coordinated Universal Time)
129
129
  </div>
130
130
  </div>
131
131
  <script src="../../prettify.js"></script>
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">95.05% </span>
26
+ <span class="strong">96.08% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>96/101</span>
28
+ <span class='fraction'>98/102</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">82.5% </span>
33
+ <span class="strong">80.95% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>33/40</span>
35
+ <span class='fraction'>34/42</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'>19/19</span>
42
+ <span class='fraction'>20/20</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">94.68% </span>
47
+ <span class="strong">95.83% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>89/94</span>
49
+ <span class='fraction'>92/96</span>
50
50
  </div>
51
51
 
52
52
 
@@ -276,7 +276,14 @@
276
276
  <a name='L217'></a><a href='#L217'>217</a>
277
277
  <a name='L218'></a><a href='#L218'>218</a>
278
278
  <a name='L219'></a><a href='#L219'>219</a>
279
- <a name='L220'></a><a href='#L220'>220</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">34x</span>
279
+ <a name='L220'></a><a href='#L220'>220</a>
280
+ <a name='L221'></a><a href='#L221'>221</a>
281
+ <a name='L222'></a><a href='#L222'>222</a>
282
+ <a name='L223'></a><a href='#L223'>223</a>
283
+ <a name='L224'></a><a href='#L224'>224</a>
284
+ <a name='L225'></a><a href='#L225'>225</a>
285
+ <a name='L226'></a><a href='#L226'>226</a>
286
+ <a name='L227'></a><a href='#L227'>227</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">34x</span>
280
287
  <span class="cline-any cline-neutral">&nbsp;</span>
281
288
  <span class="cline-any cline-neutral">&nbsp;</span>
282
289
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -360,6 +367,8 @@
360
367
  <span class="cline-any cline-neutral">&nbsp;</span>
361
368
  <span class="cline-any cline-neutral">&nbsp;</span>
362
369
  <span class="cline-any cline-yes">30x</span>
370
+ <span class="cline-any cline-yes">18x</span>
371
+ <span class="cline-any cline-yes">18x</span>
363
372
  <span class="cline-any cline-neutral">&nbsp;</span>
364
373
  <span class="cline-any cline-yes">30x</span>
365
374
  <span class="cline-any cline-yes">18x</span>
@@ -381,23 +390,23 @@
381
390
  <span class="cline-any cline-neutral">&nbsp;</span>
382
391
  <span class="cline-any cline-neutral">&nbsp;</span>
383
392
  <span class="cline-any cline-yes">34x</span>
384
- <span class="cline-any cline-yes">178x</span>
385
- <span class="cline-any cline-yes">178x</span>
386
- <span class="cline-any cline-yes">178x</span>
393
+ <span class="cline-any cline-yes">177x</span>
394
+ <span class="cline-any cline-yes">177x</span>
395
+ <span class="cline-any cline-yes">177x</span>
387
396
  <span class="cline-any cline-no">&nbsp;</span>
388
397
  <span class="cline-any cline-neutral">&nbsp;</span>
389
398
  <span class="cline-any cline-neutral">&nbsp;</span>
390
- <span class="cline-any cline-yes">178x</span>
399
+ <span class="cline-any cline-yes">177x</span>
391
400
  <span class="cline-any cline-yes">101x</span>
392
401
  <span class="cline-any cline-neutral">&nbsp;</span>
393
- <span class="cline-any cline-yes">178x</span>
394
- <span class="cline-any cline-yes">178x</span>
395
- <span class="cline-any cline-yes">178x</span>
402
+ <span class="cline-any cline-yes">177x</span>
403
+ <span class="cline-any cline-yes">177x</span>
404
+ <span class="cline-any cline-yes">177x</span>
396
405
  <span class="cline-any cline-neutral">&nbsp;</span>
397
406
  <span class="cline-any cline-neutral">&nbsp;</span>
398
407
  <span class="cline-any cline-neutral">&nbsp;</span>
399
408
  <span class="cline-any cline-neutral">&nbsp;</span>
400
- <span class="cline-any cline-yes">137x</span>
409
+ <span class="cline-any cline-yes">136x</span>
401
410
  <span class="cline-any cline-neutral">&nbsp;</span>
402
411
  <span class="cline-any cline-neutral">&nbsp;</span>
403
412
  <span class="cline-any cline-no">&nbsp;</span>
@@ -450,15 +459,20 @@
450
459
  <span class="cline-any cline-yes">18x</span>
451
460
  <span class="cline-any cline-neutral">&nbsp;</span>
452
461
  <span class="cline-any cline-yes">18x</span>
453
- <span class="cline-any cline-neutral">&nbsp;</span>
454
462
  <span class="cline-any cline-yes">18x</span>
463
+ <span class="cline-any cline-neutral">&nbsp;</span>
455
464
  <span class="cline-any cline-yes">18x</span>
456
465
  <span class="cline-any cline-yes">18x</span>
457
- <span class="cline-any cline-no">&nbsp;</span>
458
466
  <span class="cline-any cline-neutral">&nbsp;</span>
467
+ <span class="cline-any cline-neutral">&nbsp;</span>
468
+ <span class="cline-any cline-neutral">&nbsp;</span>
469
+ <span class="cline-any cline-neutral">&nbsp;</span>
470
+ <span class="cline-any cline-yes">18x</span>
459
471
  <span class="cline-any cline-yes">18x</span>
460
472
  <span class="cline-any cline-neutral">&nbsp;</span>
461
473
  <span class="cline-any cline-neutral">&nbsp;</span>
474
+ <span class="cline-any cline-neutral">&nbsp;</span>
475
+ <span class="cline-any cline-neutral">&nbsp;</span>
462
476
  <span class="cline-any cline-yes">30x</span>
463
477
  <span class="cline-any cline-neutral">&nbsp;</span>
464
478
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -578,7 +592,9 @@ async function getFullLinkedDocs(ctx, appId, links) {
578
592
  row =&gt; row.doc
579
593
  )
580
594
  // convert the unique db rows back to a full list of linked rows
581
- const linked = linkedRowIds.map(id =&gt; dbRows.find(row =&gt; row._id === id))
595
+ const linked = linkedRowIds
596
+ .map(id =&gt; dbRows.find(row =&gt; row &amp;&amp; row._id === id))
597
+ .filter(row =&gt; row != null)
582
598
  // need to handle users as specific cases
583
599
  let [users, other] = partition(linked, linkRow =&gt;
584
600
  linkRow._id.startsWith(USER_METDATA_PREFIX)
@@ -669,13 +685,18 @@ exports.attachFullLinkedDocs = async (ctx, table, rows) =&gt; {
669
685
  row[link.fieldName] = []
670
686
  }
671
687
  const linkedRow = linked.find(row =&gt; row._id === link.id)
672
- const linkedTableId =
673
- linkedRow.tableId || <span class="branch-1 cbranch-no" title="branch not covered" >getRelatedTableForField(table, link.fieldName)</span>
674
- const linkedTable = await getLinkedTable(db, linkedTableId, linkedTables)
675
- <span class="missing-if-branch" title="if path not taken" >I</span>if (!linkedRow || !linkedTable) {
676
- <span class="cstat-no" title="statement not covered" > continue</span>
688
+ <span class="missing-if-branch" title="else path not taken" >E</span>if (linkedRow) {
689
+ const linkedTableId =
690
+ linkedRow.tableId || <span class="branch-1 cbranch-no" title="branch not covered" >getRelatedTableForField(table, link.fieldName)</span>
691
+ const linkedTable = await getLinkedTable(
692
+ db,
693
+ linkedTableId,
694
+ linkedTables
695
+ )
696
+ <span class="missing-if-branch" title="else path not taken" >E</span>if (linkedTable) {
697
+ row[link.fieldName].push(processFormulas(linkedTable, linkedRow))
698
+ }
677
699
  }
678
- row[link.fieldName].push(processFormulas(linkedTable, linkedRow))
679
700
  }
680
701
  }
681
702
  return rows
@@ -721,7 +742,7 @@ exports.squashLinksToPrimaryDisplay = async (appId, table, enriched) =&gt; {
721
742
  <div class='footer quiet pad2 space-top1 center small'>
722
743
  Code coverage generated by
723
744
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
724
- at Wed Oct 20 2021 13:34:18 GMT+0000 (Coordinated Universal Time)
745
+ at Wed Oct 27 2021 08:59:08 GMT+0000 (Coordinated Universal Time)
725
746
  </div>
726
747
  </div>
727
748
  <script src="../../prettify.js"></script>
@@ -412,7 +412,7 @@ exports.getRelatedTableForField = (table, fieldName) =&gt; {
412
412
  <div class='footer quiet pad2 space-top1 center small'>
413
413
  Code coverage generated by
414
414
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
415
- at Wed Oct 20 2021 13:34:18 GMT+0000 (Coordinated Universal Time)
415
+ at Wed Oct 27 2021 08:59:08 GMT+0000 (Coordinated Universal Time)
416
416
  </div>
417
417
  </div>
418
418
  <script src="../../prettify.js"></script>
@@ -65,7 +65,7 @@
65
65
  <a name='L6'></a><a href='#L6'>6</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">45x</span>
66
66
  <span class="cline-any cline-neutral">&nbsp;</span>
67
67
  <span class="cline-any cline-yes">45x</span>
68
- <span class="cline-any cline-yes">610x</span>
68
+ <span class="cline-any cline-yes">803x</span>
69
69
  <span class="cline-any cline-neutral">&nbsp;</span>
70
70
  <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">const { v4 } = require("uuid")
71
71
  &nbsp;
@@ -79,7 +79,7 @@ module.exports = function () {
79
79
  <div class='footer quiet pad2 space-top1 center small'>
80
80
  Code coverage generated by
81
81
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
82
- at Wed Oct 20 2021 13:34:18 GMT+0000 (Coordinated Universal Time)
82
+ at Wed Oct 27 2021 08:59:08 GMT+0000 (Coordinated Universal Time)
83
83
  </div>
84
84
  </div>
85
85
  <script src="../prettify.js"></script>
@@ -529,10 +529,10 @@
529
529
  <span class="cline-any cline-neutral">&nbsp;</span>
530
530
  <span class="cline-any cline-neutral">&nbsp;</span>
531
531
  <span class="cline-any cline-neutral">&nbsp;</span>
532
- <span class="cline-any cline-yes">48x</span>
533
- <span class="cline-any cline-yes">35x</span>
532
+ <span class="cline-any cline-yes">603x</span>
533
+ <span class="cline-any cline-yes">590x</span>
534
534
  <span class="cline-any cline-neutral">&nbsp;</span>
535
- <span class="cline-any cline-yes">48x</span>
535
+ <span class="cline-any cline-yes">603x</span>
536
536
  <span class="cline-any cline-neutral">&nbsp;</span>
537
537
  <span class="cline-any cline-neutral">&nbsp;</span>
538
538
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -581,8 +581,8 @@
581
581
  <span class="cline-any cline-neutral">&nbsp;</span>
582
582
  <span class="cline-any cline-neutral">&nbsp;</span>
583
583
  <span class="cline-any cline-yes">45x</span>
584
- <span class="cline-any cline-yes">229x</span>
585
- <span class="cline-any cline-yes">229x</span>
584
+ <span class="cline-any cline-yes">200x</span>
585
+ <span class="cline-any cline-yes">200x</span>
586
586
  <span class="cline-any cline-neutral">&nbsp;</span>
587
587
  <span class="cline-any cline-neutral">&nbsp;</span>
588
588
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -598,7 +598,7 @@
598
598
  <span class="cline-any cline-neutral">&nbsp;</span>
599
599
  <span class="cline-any cline-neutral">&nbsp;</span>
600
600
  <span class="cline-any cline-yes">45x</span>
601
- <span class="cline-any cline-yes">161x</span>
601
+ <span class="cline-any cline-yes">132x</span>
602
602
  <span class="cline-any cline-neutral">&nbsp;</span>
603
603
  <span class="cline-any cline-neutral">&nbsp;</span>
604
604
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -616,7 +616,7 @@
616
616
  <span class="cline-any cline-neutral">&nbsp;</span>
617
617
  <span class="cline-any cline-neutral">&nbsp;</span>
618
618
  <span class="cline-any cline-yes">45x</span>
619
- <span class="cline-any cline-yes">18x</span>
619
+ <span class="cline-any cline-yes">203x</span>
620
620
  <span class="cline-any cline-neutral">&nbsp;</span>
621
621
  <span class="cline-any cline-neutral">&nbsp;</span>
622
622
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -664,11 +664,11 @@
664
664
  <span class="cline-any cline-neutral">&nbsp;</span>
665
665
  <span class="cline-any cline-neutral">&nbsp;</span>
666
666
  <span class="cline-any cline-yes">45x</span>
667
- <span class="cline-any cline-yes">176x</span>
668
- <span class="cline-any cline-yes">176x</span>
667
+ <span class="cline-any cline-yes">178x</span>
668
+ <span class="cline-any cline-yes">178x</span>
669
669
  <span class="cline-any cline-no">&nbsp;</span>
670
670
  <span class="cline-any cline-neutral">&nbsp;</span>
671
- <span class="cline-any cline-yes">176x</span>
671
+ <span class="cline-any cline-yes">178x</span>
672
672
  <span class="cline-any cline-neutral">&nbsp;</span>
673
673
  <span class="cline-any cline-neutral">&nbsp;</span>
674
674
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -676,9 +676,9 @@
676
676
  <span class="cline-any cline-neutral">&nbsp;</span>
677
677
  <span class="cline-any cline-neutral">&nbsp;</span>
678
678
  <span class="cline-any cline-yes">45x</span>
679
- <span class="cline-any cline-yes">176x</span>
680
- <span class="cline-any cline-yes">176x</span>
681
- <span class="cline-any cline-yes">176x</span>
679
+ <span class="cline-any cline-yes">178x</span>
680
+ <span class="cline-any cline-yes">178x</span>
681
+ <span class="cline-any cline-yes">178x</span>
682
682
  <span class="cline-any cline-neutral">&nbsp;</span>
683
683
  <span class="cline-any cline-neutral">&nbsp;</span>
684
684
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -693,7 +693,7 @@
693
693
  <span class="cline-any cline-neutral">&nbsp;</span>
694
694
  <span class="cline-any cline-neutral">&nbsp;</span>
695
695
  <span class="cline-any cline-yes">45x</span>
696
- <span class="cline-any cline-yes">3x</span>
696
+ <span class="cline-any cline-yes">188x</span>
697
697
  <span class="cline-any cline-neutral">&nbsp;</span>
698
698
  <span class="cline-any cline-neutral">&nbsp;</span>
699
699
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -701,14 +701,14 @@
701
701
  <span class="cline-any cline-neutral">&nbsp;</span>
702
702
  <span class="cline-any cline-neutral">&nbsp;</span>
703
703
  <span class="cline-any cline-yes">45x</span>
704
- <span class="cline-any cline-yes">191x</span>
704
+ <span class="cline-any cline-yes">197x</span>
705
705
  <span class="cline-any cline-neutral">&nbsp;</span>
706
706
  <span class="cline-any cline-neutral">&nbsp;</span>
707
707
  <span class="cline-any cline-neutral">&nbsp;</span>
708
708
  <span class="cline-any cline-neutral">&nbsp;</span>
709
709
  <span class="cline-any cline-neutral">&nbsp;</span>
710
710
  <span class="cline-any cline-yes">45x</span>
711
- <span class="cline-any cline-yes">5x</span>
711
+ <span class="cline-any cline-yes">190x</span>
712
712
  <span class="cline-any cline-neutral">&nbsp;</span>
713
713
  <span class="cline-any cline-neutral">&nbsp;</span>
714
714
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -1174,7 +1174,7 @@ exports.getMultiIDParams = ids =&gt; {
1174
1174
  <div class='footer quiet pad2 space-top1 center small'>
1175
1175
  Code coverage generated by
1176
1176
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
1177
- at Wed Oct 20 2021 13:34:18 GMT+0000 (Coordinated Universal Time)
1177
+ at Wed Oct 27 2021 08:59:08 GMT+0000 (Coordinated Universal Time)
1178
1178
  </div>
1179
1179
  </div>
1180
1180
  <script src="../prettify.js"></script>
@@ -217,7 +217,7 @@ module.exports = AutomationEmitter
217
217
  <div class='footer quiet pad2 space-top1 center small'>
218
218
  Code coverage generated by
219
219
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
220
- at Wed Oct 20 2021 13:34:18 GMT+0000 (Coordinated Universal Time)
220
+ at Wed Oct 27 2021 08:59:08 GMT+0000 (Coordinated Universal Time)
221
221
  </div>
222
222
  </div>
223
223
  <script src="../prettify.js"></script>
@@ -125,7 +125,7 @@
125
125
  <div class='footer quiet pad2 space-top1 center small'>
126
126
  Code coverage generated by
127
127
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
128
- at Wed Oct 20 2021 13:34:18 GMT+0000 (Coordinated Universal Time)
128
+ at Wed Oct 27 2021 08:59:08 GMT+0000 (Coordinated Universal Time)
129
129
  </div>
130
130
  </div>
131
131
  <script src="../prettify.js"></script>
@@ -154,7 +154,7 @@ module.exports = emitter
154
154
  <div class='footer quiet pad2 space-top1 center small'>
155
155
  Code coverage generated by
156
156
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
157
- at Wed Oct 20 2021 13:34:18 GMT+0000 (Coordinated Universal Time)
157
+ at Wed Oct 27 2021 08:59:08 GMT+0000 (Coordinated Universal Time)
158
158
  </div>
159
159
  </div>
160
160
  <script src="../prettify.js"></script>
@@ -178,7 +178,7 @@ exports.tableEmission = ({ emitter, eventName, appId, table, metadata }) =&gt; {
178
178
  <div class='footer quiet pad2 space-top1 center small'>
179
179
  Code coverage generated by
180
180
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
181
- at Wed Oct 20 2021 13:34:18 GMT+0000 (Coordinated Universal Time)
181
+ at Wed Oct 27 2021 08:59:08 GMT+0000 (Coordinated Universal Time)
182
182
  </div>
183
183
  </div>
184
184
  <script src="../prettify.js"></script>