@budibase/server 1.0.48 → 1.0.49-alpha.3

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 (289) hide show
  1. package/builder/assets/{index.e083dcaf.js → index.21e57eb4.js} +234 -231
  2. package/builder/assets/index.83c0944f.css +1 -0
  3. package/builder/assets/{vendor.f9faf6ab.js → vendor.d526bfe8.js} +12 -12
  4. package/builder/index.html +3 -3
  5. package/coverage/clover.xml +2338 -2028
  6. package/coverage/coverage-final.json +100 -95
  7. package/coverage/lcov-report/api/controllers/analytics.js.html +1 -1
  8. package/coverage/lcov-report/api/controllers/apikeys.js.html +1 -1
  9. package/coverage/lcov-report/api/controllers/application.js.html +210 -126
  10. package/coverage/lcov-report/api/controllers/auth.js.html +18 -6
  11. package/coverage/lcov-report/api/controllers/automation.js.html +21 -21
  12. package/coverage/lcov-report/api/controllers/backup.js.html +1 -1
  13. package/coverage/lcov-report/api/controllers/cloud.js.html +1 -1
  14. package/coverage/lcov-report/api/controllers/component.js.html +4 -4
  15. package/coverage/lcov-report/api/controllers/datasource.js.html +72 -36
  16. package/coverage/lcov-report/api/controllers/dev.js.html +1 -1
  17. package/coverage/lcov-report/api/controllers/index.html +53 -53
  18. package/coverage/lcov-report/api/controllers/integration.js.html +1 -1
  19. package/coverage/lcov-report/api/controllers/layout.js.html +6 -6
  20. package/coverage/lcov-report/api/controllers/metadata.js.html +1 -1
  21. package/coverage/lcov-report/api/controllers/migrations.js.html +119 -0
  22. package/coverage/lcov-report/api/controllers/permission.js.html +15 -15
  23. package/coverage/lcov-report/api/controllers/query/index.html +1 -1
  24. package/coverage/lcov-report/api/controllers/query/index.js.html +19 -19
  25. package/coverage/lcov-report/api/controllers/query/validation.js.html +6 -6
  26. package/coverage/lcov-report/api/controllers/role.js.html +9 -9
  27. package/coverage/lcov-report/api/controllers/routing.js.html +1 -1
  28. package/coverage/lcov-report/api/controllers/row/external.js.html +16 -16
  29. package/coverage/lcov-report/api/controllers/row/index.html +48 -33
  30. package/coverage/lcov-report/api/controllers/row/index.js.html +26 -26
  31. package/coverage/lcov-report/api/controllers/row/internal.js.html +95 -158
  32. package/coverage/lcov-report/api/controllers/row/internalSearch.js.html +41 -17
  33. package/coverage/lcov-report/api/controllers/row/staticFormula.js.html +551 -0
  34. package/coverage/lcov-report/api/controllers/row/utils.js.html +39 -57
  35. package/coverage/lcov-report/api/controllers/screen.js.html +7 -7
  36. package/coverage/lcov-report/api/controllers/script.js.html +4 -4
  37. package/coverage/lcov-report/api/controllers/table/bulkFormula.js.html +629 -0
  38. package/coverage/lcov-report/api/controllers/table/external.js.html +12 -12
  39. package/coverage/lcov-report/api/controllers/table/index.html +46 -31
  40. package/coverage/lcov-report/api/controllers/table/index.js.html +53 -77
  41. package/coverage/lcov-report/api/controllers/table/internal.js.html +59 -35
  42. package/coverage/lcov-report/api/controllers/table/utils.js.html +217 -73
  43. package/coverage/lcov-report/api/controllers/templates.js.html +1 -1
  44. package/coverage/lcov-report/api/controllers/user.js.html +30 -24
  45. package/coverage/lcov-report/api/controllers/view/exporters.js.html +4 -4
  46. package/coverage/lcov-report/api/controllers/view/index.html +1 -1
  47. package/coverage/lcov-report/api/controllers/view/index.js.html +14 -14
  48. package/coverage/lcov-report/api/controllers/view/utils.js.html +11 -11
  49. package/coverage/lcov-report/api/controllers/view/viewBuilder.js.html +7 -7
  50. package/coverage/lcov-report/api/controllers/webhook.js.html +15 -15
  51. package/coverage/lcov-report/api/index.html +1 -1
  52. package/coverage/lcov-report/api/index.js.html +8 -8
  53. package/coverage/lcov-report/api/routes/analytics.js.html +1 -1
  54. package/coverage/lcov-report/api/routes/apikeys.js.html +1 -1
  55. package/coverage/lcov-report/api/routes/application.js.html +1 -1
  56. package/coverage/lcov-report/api/routes/auth.js.html +1 -1
  57. package/coverage/lcov-report/api/routes/automation.js.html +1 -1
  58. package/coverage/lcov-report/api/routes/backup.js.html +1 -1
  59. package/coverage/lcov-report/api/routes/cloud.js.html +1 -1
  60. package/coverage/lcov-report/api/routes/component.js.html +1 -1
  61. package/coverage/lcov-report/api/routes/datasource.js.html +1 -1
  62. package/coverage/lcov-report/api/routes/deploy.js.html +1 -1
  63. package/coverage/lcov-report/api/routes/dev.js.html +1 -1
  64. package/coverage/lcov-report/api/routes/index.html +18 -18
  65. package/coverage/lcov-report/api/routes/index.js.html +3 -3
  66. package/coverage/lcov-report/api/routes/integration.js.html +1 -1
  67. package/coverage/lcov-report/api/routes/layout.js.html +1 -1
  68. package/coverage/lcov-report/api/routes/metadata.js.html +1 -1
  69. package/coverage/lcov-report/api/routes/{hosting.js.html → migrations.js.html} +17 -14
  70. package/coverage/lcov-report/api/routes/permission.js.html +1 -1
  71. package/coverage/lcov-report/api/routes/query.js.html +1 -1
  72. package/coverage/lcov-report/api/routes/role.js.html +1 -1
  73. package/coverage/lcov-report/api/routes/routing.js.html +1 -1
  74. package/coverage/lcov-report/api/routes/row.js.html +1 -1
  75. package/coverage/lcov-report/api/routes/screen.js.html +1 -1
  76. package/coverage/lcov-report/api/routes/script.js.html +1 -1
  77. package/coverage/lcov-report/api/routes/static.js.html +17 -2
  78. package/coverage/lcov-report/api/routes/table.js.html +1 -1
  79. package/coverage/lcov-report/api/routes/templates.js.html +1 -1
  80. package/coverage/lcov-report/api/routes/user.js.html +1 -1
  81. package/coverage/lcov-report/api/routes/view.js.html +1 -1
  82. package/coverage/lcov-report/api/routes/webhook.js.html +1 -1
  83. package/coverage/lcov-report/automations/actions.js.html +24 -24
  84. package/coverage/lcov-report/automations/automationUtils.js.html +5 -5
  85. package/coverage/lcov-report/automations/bullboard.js.html +16 -16
  86. package/coverage/lcov-report/automations/index.html +1 -1
  87. package/coverage/lcov-report/automations/index.js.html +1 -1
  88. package/coverage/lcov-report/automations/steps/bash.js.html +6 -6
  89. package/coverage/lcov-report/automations/steps/createRow.js.html +13 -19
  90. package/coverage/lcov-report/automations/steps/delay.js.html +4 -4
  91. package/coverage/lcov-report/automations/steps/deleteRow.js.html +11 -20
  92. package/coverage/lcov-report/automations/steps/discord.js.html +7 -7
  93. package/coverage/lcov-report/automations/steps/executeQuery.js.html +6 -6
  94. package/coverage/lcov-report/automations/steps/executeScript.js.html +6 -6
  95. package/coverage/lcov-report/automations/steps/filter.js.html +7 -7
  96. package/coverage/lcov-report/automations/steps/index.html +13 -13
  97. package/coverage/lcov-report/automations/steps/integromat.js.html +5 -5
  98. package/coverage/lcov-report/automations/steps/outgoingWebhook.js.html +8 -8
  99. package/coverage/lcov-report/automations/steps/queryRows.js.html +10 -10
  100. package/coverage/lcov-report/automations/steps/sendSmtpEmail.js.html +5 -5
  101. package/coverage/lcov-report/automations/steps/serverLog.js.html +3 -3
  102. package/coverage/lcov-report/automations/steps/slack.js.html +5 -5
  103. package/coverage/lcov-report/automations/steps/updateRow.js.html +6 -6
  104. package/coverage/lcov-report/automations/steps/utils.js.html +3 -3
  105. package/coverage/lcov-report/automations/steps/zapier.js.html +5 -5
  106. package/coverage/lcov-report/automations/triggerInfo/app.js.html +2 -2
  107. package/coverage/lcov-report/automations/triggerInfo/cron.js.html +2 -2
  108. package/coverage/lcov-report/automations/triggerInfo/index.html +1 -1
  109. package/coverage/lcov-report/automations/triggerInfo/index.js.html +8 -8
  110. package/coverage/lcov-report/automations/triggerInfo/rowDeleted.js.html +2 -2
  111. package/coverage/lcov-report/automations/triggerInfo/rowSaved.js.html +2 -2
  112. package/coverage/lcov-report/automations/triggerInfo/rowUpdated.js.html +2 -2
  113. package/coverage/lcov-report/automations/triggerInfo/webhook.js.html +2 -2
  114. package/coverage/lcov-report/automations/triggers.js.html +18 -18
  115. package/coverage/lcov-report/automations/utils.js.html +32 -32
  116. package/coverage/lcov-report/constants/index.html +5 -5
  117. package/coverage/lcov-report/constants/index.js.html +53 -26
  118. package/coverage/lcov-report/constants/layouts.js.html +5 -5
  119. package/coverage/lcov-report/constants/screens.js.html +4 -4
  120. package/coverage/lcov-report/db/client.js.html +18 -18
  121. package/coverage/lcov-report/db/inMemoryView.js.html +7 -7
  122. package/coverage/lcov-report/db/index.html +15 -15
  123. package/coverage/lcov-report/db/index.js.html +3 -3
  124. package/coverage/lcov-report/db/linkedRows/LinkController.js.html +18 -18
  125. package/coverage/lcov-report/db/linkedRows/index.html +10 -10
  126. package/coverage/lcov-report/db/linkedRows/index.js.html +38 -41
  127. package/coverage/lcov-report/db/linkedRows/linkUtils.js.html +15 -15
  128. package/coverage/lcov-report/db/newid.js.html +4 -4
  129. package/coverage/lcov-report/db/utils.js.html +86 -86
  130. package/coverage/lcov-report/events/AutomationEmitter.js.html +1 -1
  131. package/coverage/lcov-report/events/index.html +1 -1
  132. package/coverage/lcov-report/events/index.js.html +5 -5
  133. package/coverage/lcov-report/events/utils.js.html +3 -3
  134. package/coverage/lcov-report/index.html +114 -99
  135. package/coverage/lcov-report/integrations/tests/TestConfiguration.js.html +1 -1
  136. package/coverage/lcov-report/integrations/tests/index.html +1 -1
  137. package/coverage/lcov-report/middleware/appInfo.js.html +1 -1
  138. package/coverage/lcov-report/middleware/authorized.js.html +166 -64
  139. package/coverage/lcov-report/middleware/builder.js.html +8 -8
  140. package/coverage/lcov-report/middleware/currentapp.js.html +29 -29
  141. package/coverage/lcov-report/middleware/index.html +30 -30
  142. package/coverage/lcov-report/middleware/joi-validator.js.html +3 -3
  143. package/coverage/lcov-report/middleware/resourceId.js.html +1 -1
  144. package/coverage/lcov-report/middleware/selfhost.js.html +1 -1
  145. package/coverage/lcov-report/middleware/usageQuota.js.html +270 -42
  146. package/coverage/lcov-report/middleware/utils.js.html +2 -2
  147. package/coverage/lcov-report/threads/automation.js.html +1 -1
  148. package/coverage/lcov-report/threads/index.html +15 -15
  149. package/coverage/lcov-report/threads/index.js.html +10 -10
  150. package/coverage/lcov-report/threads/query.js.html +23 -8
  151. package/coverage/lcov-report/threads/utils.js.html +14 -14
  152. package/coverage/lcov-report/utilities/bcrypt.js.html +1 -1
  153. package/coverage/lcov-report/utilities/budibaseDir.js.html +7 -7
  154. package/coverage/lcov-report/utilities/centralPath.js.html +4 -4
  155. package/coverage/lcov-report/utilities/csvParser.js.html +6 -6
  156. package/coverage/lcov-report/utilities/global.js.html +26 -26
  157. package/coverage/lcov-report/utilities/index.html +19 -19
  158. package/coverage/lcov-report/utilities/index.js.html +25 -25
  159. package/coverage/lcov-report/utilities/queue/inMemoryQueue.js.html +8 -8
  160. package/coverage/lcov-report/utilities/queue/index.html +1 -1
  161. package/coverage/lcov-report/utilities/routing/index.html +1 -1
  162. package/coverage/lcov-report/utilities/routing/index.js.html +1 -1
  163. package/coverage/lcov-report/utilities/rowProcessor/index.html +27 -27
  164. package/coverage/lcov-report/utilities/rowProcessor/index.js.html +115 -79
  165. package/coverage/lcov-report/utilities/rowProcessor/utils.js.html +75 -27
  166. package/coverage/lcov-report/utilities/scriptRunner.js.html +5 -5
  167. package/coverage/lcov-report/utilities/security.js.html +8 -8
  168. package/coverage/lcov-report/utilities/statusCodes.js.html +1 -1
  169. package/coverage/lcov-report/utilities/usageQuota/index.html +141 -0
  170. package/coverage/lcov-report/utilities/usageQuota/index.js.html +356 -0
  171. package/coverage/lcov-report/utilities/usageQuota/rows.js.html +302 -0
  172. package/coverage/lcov-report/{api/controllers/hosting.js.html → utilities/usageQuota/usageQuoteReset.js.html} +36 -48
  173. package/coverage/lcov-report/utilities/users.js.html +5 -5
  174. package/coverage/lcov-report/utilities/workerRequests.js.html +39 -108
  175. package/coverage/lcov.info +3656 -3057
  176. package/dist/api/controllers/application.js +61 -34
  177. package/dist/api/controllers/auth.js +4 -0
  178. package/dist/api/controllers/datasource.js +11 -0
  179. package/dist/api/controllers/migrations.js +21 -0
  180. package/dist/api/controllers/row/internal.js +30 -53
  181. package/dist/api/controllers/row/internalSearch.js +12 -4
  182. package/dist/api/controllers/row/staticFormula.js +147 -0
  183. package/dist/api/controllers/row/utils.js +6 -8
  184. package/dist/api/controllers/static/index.js +59 -10
  185. package/dist/api/controllers/table/bulkFormula.js +160 -0
  186. package/dist/api/controllers/table/index.js +12 -9
  187. package/dist/api/controllers/table/internal.js +9 -0
  188. package/dist/api/controllers/table/utils.js +41 -12
  189. package/dist/api/controllers/user.js +2 -0
  190. package/dist/api/routes/index.js +2 -2
  191. package/dist/api/routes/migrations.js +9 -0
  192. package/dist/api/routes/static.js +2 -1
  193. package/dist/app.js +35 -5
  194. package/dist/automations/steps/createRow.js +2 -4
  195. package/dist/automations/steps/deleteRow.js +1 -4
  196. package/dist/constants/index.js +7 -0
  197. package/dist/db/linkedRows/index.js +4 -5
  198. package/dist/definitions/datasource.js +1 -0
  199. package/dist/environment.js +2 -0
  200. package/dist/integrations/base/sql.js +13 -6
  201. package/dist/integrations/googlesheets.js +340 -0
  202. package/dist/integrations/index.js +3 -0
  203. package/dist/integrations/utils.js +57 -9
  204. package/dist/middleware/authorized.js +55 -30
  205. package/dist/middleware/usageQuota.js +80 -13
  206. package/dist/migrations/functions/appUrls.js +46 -0
  207. package/dist/migrations/functions/quotas1.js +50 -0
  208. package/dist/migrations/functions/usageQuotas/index.js +20 -0
  209. package/dist/migrations/functions/usageQuotas/syncApps.js +32 -0
  210. package/dist/migrations/functions/usageQuotas/syncRows.js +35 -0
  211. package/dist/migrations/functions/userEmailViewCasing.js +24 -0
  212. package/dist/migrations/index.js +62 -0
  213. package/dist/package.json +8 -5
  214. package/dist/tests/utilities/TestConfiguration.js +13 -6
  215. package/dist/threads/query.js +4 -0
  216. package/dist/tsconfig.tsbuildinfo +1 -1
  217. package/dist/utilities/rowProcessor/index.js +18 -11
  218. package/dist/utilities/rowProcessor/utils.js +14 -4
  219. package/dist/utilities/{usageQuota.js → usageQuota/index.js} +44 -31
  220. package/dist/utilities/usageQuota/rows.js +77 -0
  221. package/dist/utilities/usageQuota/usageQuoteReset.js +16 -0
  222. package/dist/utilities/workerRequests.js +0 -20
  223. package/nodemon.json +1 -1
  224. package/package.json +9 -6
  225. package/src/api/controllers/application.js +52 -24
  226. package/src/api/controllers/auth.js +4 -0
  227. package/src/api/controllers/datasource.js +12 -0
  228. package/src/api/controllers/migrations.js +13 -0
  229. package/src/api/controllers/row/internal.js +29 -50
  230. package/src/api/controllers/row/internalSearch.js +12 -4
  231. package/src/api/controllers/row/staticFormula.js +157 -0
  232. package/src/api/controllers/row/utils.js +6 -12
  233. package/src/api/controllers/static/index.js +63 -10
  234. package/src/api/controllers/table/bulkFormula.js +183 -0
  235. package/src/api/controllers/table/index.js +16 -24
  236. package/src/api/controllers/table/internal.js +9 -1
  237. package/src/api/controllers/table/utils.js +57 -9
  238. package/src/api/controllers/user.js +2 -0
  239. package/src/api/routes/index.js +2 -2
  240. package/src/api/routes/migrations.js +14 -0
  241. package/src/api/routes/static.js +5 -0
  242. package/src/api/routes/tests/application.spec.js +2 -2
  243. package/src/api/routes/tests/auth.spec.js +1 -2
  244. package/src/api/routes/tests/static.spec.js +98 -0
  245. package/src/app.ts +18 -5
  246. package/src/automations/steps/createRow.js +2 -4
  247. package/src/automations/steps/deleteRow.js +1 -4
  248. package/src/constants/index.js +9 -0
  249. package/src/db/linkedRows/index.js +4 -5
  250. package/src/definitions/common.ts +3 -0
  251. package/src/definitions/datasource.ts +3 -0
  252. package/src/environment.js +2 -0
  253. package/src/integrations/base/sql.ts +14 -7
  254. package/src/integrations/googlesheets.ts +353 -0
  255. package/src/integrations/index.ts +3 -0
  256. package/src/integrations/tests/sql.spec.js +16 -0
  257. package/src/integrations/utils.ts +71 -11
  258. package/src/middleware/authorized.js +64 -30
  259. package/src/middleware/tests/authorized.spec.js +6 -4
  260. package/src/middleware/tests/usageQuota.spec.js +18 -24
  261. package/src/middleware/usageQuota.js +91 -15
  262. package/src/migrations/functions/appUrls.ts +34 -0
  263. package/src/migrations/functions/quotas1.ts +20 -0
  264. package/src/migrations/functions/tests/appUrls.spec.js +29 -0
  265. package/src/migrations/functions/tests/quotas1.spec.js +27 -0
  266. package/src/migrations/functions/tests/userEmailViewCasing.spec.js +25 -0
  267. package/src/migrations/functions/usageQuotas/index.ts +8 -0
  268. package/src/migrations/functions/usageQuotas/syncApps.ts +18 -0
  269. package/src/migrations/functions/usageQuotas/syncRows.ts +21 -0
  270. package/src/migrations/functions/usageQuotas/tests/syncApps.spec.js +37 -0
  271. package/src/migrations/functions/usageQuotas/tests/syncRows.spec.js +43 -0
  272. package/src/migrations/functions/userEmailViewCasing.ts +13 -0
  273. package/src/migrations/index.ts +56 -0
  274. package/src/tests/utilities/TestConfiguration.js +14 -6
  275. package/src/threads/query.js +5 -0
  276. package/src/utilities/rowProcessor/index.js +24 -12
  277. package/src/utilities/rowProcessor/utils.js +23 -7
  278. package/src/utilities/tests/usageQuota/usageQuota.spec.js +72 -0
  279. package/src/utilities/usageQuota/index.js +92 -0
  280. package/src/utilities/usageQuota/rows.js +74 -0
  281. package/src/utilities/usageQuota/usageQuoteReset.js +18 -0
  282. package/src/utilities/workerRequests.js +0 -23
  283. package/builder/assets/index.39e01193.css +0 -1
  284. package/dist/api/controllers/hosting.js +0 -30
  285. package/dist/api/routes/hosting.js +0 -11
  286. package/src/api/controllers/hosting.js +0 -22
  287. package/src/api/routes/hosting.js +0 -13
  288. package/src/api/routes/tests/hosting.spec.js +0 -36
  289. package/src/utilities/usageQuota.js +0 -73
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">83.18% </span>
26
+ <span class="strong">86.05% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>183/220</span>
28
+ <span class='fraction'>179/208</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">60.93% </span>
33
+ <span class="strong">63.33% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>39/64</span>
35
+ <span class='fraction'>38/60</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">92% </span>
40
+ <span class="strong">91.66% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>23/25</span>
42
+ <span class='fraction'>22/24</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">83.17% </span>
47
+ <span class="strong">86.13% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>178/214</span>
49
+ <span class='fraction'>174/202</span>
50
50
  </div>
51
51
 
52
52
 
@@ -492,90 +492,65 @@
492
492
  <a name='L433'></a><a href='#L433'>433</a>
493
493
  <a name='L434'></a><a href='#L434'>434</a>
494
494
  <a name='L435'></a><a href='#L435'>435</a>
495
- <a name='L436'></a><a href='#L436'>436</a>
496
- <a name='L437'></a><a href='#L437'>437</a>
497
- <a name='L438'></a><a href='#L438'>438</a>
498
- <a name='L439'></a><a href='#L439'>439</a>
499
- <a name='L440'></a><a href='#L440'>440</a>
500
- <a name='L441'></a><a href='#L441'>441</a>
501
- <a name='L442'></a><a href='#L442'>442</a>
502
- <a name='L443'></a><a href='#L443'>443</a>
503
- <a name='L444'></a><a href='#L444'>444</a>
504
- <a name='L445'></a><a href='#L445'>445</a>
505
- <a name='L446'></a><a href='#L446'>446</a>
506
- <a name='L447'></a><a href='#L447'>447</a>
507
- <a name='L448'></a><a href='#L448'>448</a>
508
- <a name='L449'></a><a href='#L449'>449</a>
509
- <a name='L450'></a><a href='#L450'>450</a>
510
- <a name='L451'></a><a href='#L451'>451</a>
511
- <a name='L452'></a><a href='#L452'>452</a>
512
- <a name='L453'></a><a href='#L453'>453</a>
513
- <a name='L454'></a><a href='#L454'>454</a>
514
- <a name='L455'></a><a href='#L455'>455</a>
515
- <a name='L456'></a><a href='#L456'>456</a>
516
- <a name='L457'></a><a href='#L457'>457</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">34x</span>
517
- <span class="cline-any cline-yes">34x</span>
495
+ <a name='L436'></a><a href='#L436'>436</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">39x</span>
496
+ <span class="cline-any cline-yes">39x</span>
518
497
  <span class="cline-any cline-neutral">&nbsp;</span>
519
498
  <span class="cline-any cline-neutral">&nbsp;</span>
520
499
  <span class="cline-any cline-neutral">&nbsp;</span>
521
500
  <span class="cline-any cline-neutral">&nbsp;</span>
522
501
  <span class="cline-any cline-neutral">&nbsp;</span>
523
- <span class="cline-any cline-yes">34x</span>
524
- <span class="cline-any cline-yes">34x</span>
502
+ <span class="cline-any cline-yes">39x</span>
503
+ <span class="cline-any cline-yes">39x</span>
525
504
  <span class="cline-any cline-neutral">&nbsp;</span>
526
505
  <span class="cline-any cline-neutral">&nbsp;</span>
527
506
  <span class="cline-any cline-neutral">&nbsp;</span>
528
507
  <span class="cline-any cline-neutral">&nbsp;</span>
508
+ <span class="cline-any cline-yes">39x</span>
509
+ <span class="cline-any cline-yes">39x</span>
510
+ <span class="cline-any cline-yes">39x</span>
511
+ <span class="cline-any cline-yes">39x</span>
512
+ <span class="cline-any cline-yes">39x</span>
513
+ <span class="cline-any cline-yes">39x</span>
514
+ <span class="cline-any cline-yes">39x</span>
529
515
  <span class="cline-any cline-neutral">&nbsp;</span>
530
- <span class="cline-any cline-yes">34x</span>
531
- <span class="cline-any cline-yes">34x</span>
532
- <span class="cline-any cline-yes">34x</span>
533
- <span class="cline-any cline-yes">34x</span>
534
- <span class="cline-any cline-yes">34x</span>
535
- <span class="cline-any cline-yes">34x</span>
536
- <span class="cline-any cline-yes">34x</span>
537
- <span class="cline-any cline-yes">34x</span>
538
516
  <span class="cline-any cline-neutral">&nbsp;</span>
539
517
  <span class="cline-any cline-neutral">&nbsp;</span>
540
518
  <span class="cline-any cline-neutral">&nbsp;</span>
541
519
  <span class="cline-any cline-neutral">&nbsp;</span>
520
+ <span class="cline-any cline-yes">39x</span>
521
+ <span class="cline-any cline-yes">39x</span>
522
+ <span class="cline-any cline-yes">39x</span>
542
523
  <span class="cline-any cline-neutral">&nbsp;</span>
543
- <span class="cline-any cline-yes">34x</span>
544
- <span class="cline-any cline-yes">34x</span>
524
+ <span class="cline-any cline-yes">39x</span>
545
525
  <span class="cline-any cline-neutral">&nbsp;</span>
546
- <span class="cline-any cline-yes">34x</span>
547
526
  <span class="cline-any cline-neutral">&nbsp;</span>
548
527
  <span class="cline-any cline-neutral">&nbsp;</span>
549
528
  <span class="cline-any cline-neutral">&nbsp;</span>
550
529
  <span class="cline-any cline-neutral">&nbsp;</span>
551
530
  <span class="cline-any cline-neutral">&nbsp;</span>
531
+ <span class="cline-any cline-yes">6x</span>
532
+ <span class="cline-any cline-yes">6x</span>
533
+ <span class="cline-any cline-yes">6x</span>
552
534
  <span class="cline-any cline-neutral">&nbsp;</span>
553
- <span class="cline-any cline-yes">70x</span>
554
- <span class="cline-any cline-neutral">&nbsp;</span>
535
+ <span class="cline-any cline-yes">6x</span>
536
+ <span class="cline-any cline-yes">6x</span>
537
+ <span class="cline-any cline-yes">6x</span>
555
538
  <span class="cline-any cline-neutral">&nbsp;</span>
556
539
  <span class="cline-any cline-neutral">&nbsp;</span>
557
- <span class="cline-any cline-yes">70x</span>
558
- <span class="cline-any cline-no">&nbsp;</span>
540
+ <span class="cline-any cline-yes">1x</span>
559
541
  <span class="cline-any cline-no">&nbsp;</span>
560
542
  <span class="cline-any cline-neutral">&nbsp;</span>
561
- <span class="cline-any cline-no">&nbsp;</span>
562
- <span class="cline-any cline-no">&nbsp;</span>
543
+ <span class="cline-any cline-yes">1x</span>
563
544
  <span class="cline-any cline-no">&nbsp;</span>
564
545
  <span class="cline-any cline-neutral">&nbsp;</span>
565
546
  <span class="cline-any cline-neutral">&nbsp;</span>
566
- <span class="cline-any cline-no">&nbsp;</span>
547
+ <span class="cline-any cline-yes">5x</span>
567
548
  <span class="cline-any cline-no">&nbsp;</span>
568
549
  <span class="cline-any cline-neutral">&nbsp;</span>
550
+ <span class="cline-any cline-yes">5x</span>
569
551
  <span class="cline-any cline-no">&nbsp;</span>
570
552
  <span class="cline-any cline-neutral">&nbsp;</span>
571
- <span class="cline-any cline-neutral">&nbsp;</span>
572
- <span class="cline-any cline-neutral">&nbsp;</span>
573
- <span class="cline-any cline-yes">70x</span>
574
- <span class="cline-any cline-yes">70x</span>
575
- <span class="cline-any cline-neutral">&nbsp;</span>
576
- <span class="cline-any cline-yes">70x</span>
577
- <span class="cline-any cline-yes">70x</span>
578
- <span class="cline-any cline-neutral">&nbsp;</span>
553
+ <span class="cline-any cline-yes">5x</span>
579
554
  <span class="cline-any cline-neutral">&nbsp;</span>
580
555
  <span class="cline-any cline-neutral">&nbsp;</span>
581
556
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -594,33 +569,7 @@
594
569
  <span class="cline-any cline-yes">5x</span>
595
570
  <span class="cline-any cline-neutral">&nbsp;</span>
596
571
  <span class="cline-any cline-neutral">&nbsp;</span>
597
- <span class="cline-any cline-neutral">&nbsp;</span>
598
- <span class="cline-any cline-yes">6x</span>
599
- <span class="cline-any cline-yes">6x</span>
600
- <span class="cline-any cline-yes">6x</span>
601
- <span class="cline-any cline-neutral">&nbsp;</span>
602
- <span class="cline-any cline-yes">6x</span>
603
- <span class="cline-any cline-yes">6x</span>
604
- <span class="cline-any cline-yes">6x</span>
605
- <span class="cline-any cline-neutral">&nbsp;</span>
606
- <span class="cline-any cline-neutral">&nbsp;</span>
607
- <span class="cline-any cline-yes">1x</span>
608
- <span class="cline-any cline-no">&nbsp;</span>
609
- <span class="cline-any cline-neutral">&nbsp;</span>
610
- <span class="cline-any cline-yes">1x</span>
611
- <span class="cline-any cline-no">&nbsp;</span>
612
- <span class="cline-any cline-neutral">&nbsp;</span>
613
- <span class="cline-any cline-neutral">&nbsp;</span>
614
- <span class="cline-any cline-yes">5x</span>
615
- <span class="cline-any cline-no">&nbsp;</span>
616
- <span class="cline-any cline-neutral">&nbsp;</span>
617
- <span class="cline-any cline-yes">5x</span>
618
- <span class="cline-any cline-no">&nbsp;</span>
619
- <span class="cline-any cline-neutral">&nbsp;</span>
620
- <span class="cline-any cline-yes">5x</span>
621
- <span class="cline-any cline-neutral">&nbsp;</span>
622
- <span class="cline-any cline-neutral">&nbsp;</span>
623
- <span class="cline-any cline-yes">34x</span>
572
+ <span class="cline-any cline-yes">39x</span>
624
573
  <span class="cline-any cline-yes">5x</span>
625
574
  <span class="cline-any cline-yes">5x</span>
626
575
  <span class="cline-any cline-yes">5x</span>
@@ -680,30 +629,33 @@
680
629
  <span class="cline-any cline-yes">4x</span>
681
630
  <span class="cline-any cline-neutral">&nbsp;</span>
682
631
  <span class="cline-any cline-neutral">&nbsp;</span>
683
- <span class="cline-any cline-yes">34x</span>
684
- <span class="cline-any cline-yes">67x</span>
685
- <span class="cline-any cline-yes">67x</span>
686
- <span class="cline-any cline-yes">67x</span>
687
- <span class="cline-any cline-yes">67x</span>
688
632
  <span class="cline-any cline-neutral">&nbsp;</span>
689
- <span class="cline-any cline-yes">67x</span>
690
- <span class="cline-any cline-yes">67x</span>
691
633
  <span class="cline-any cline-neutral">&nbsp;</span>
692
634
  <span class="cline-any cline-neutral">&nbsp;</span>
635
+ <span class="cline-any cline-yes">39x</span>
636
+ <span class="cline-any cline-yes">70x</span>
637
+ <span class="cline-any cline-yes">70x</span>
638
+ <span class="cline-any cline-yes">70x</span>
639
+ <span class="cline-any cline-yes">70x</span>
693
640
  <span class="cline-any cline-neutral">&nbsp;</span>
694
- <span class="cline-any cline-yes">67x</span>
695
- <span class="cline-any cline-yes">67x</span>
696
- <span class="cline-any cline-yes">67x</span>
641
+ <span class="cline-any cline-yes">70x</span>
642
+ <span class="cline-any cline-yes">70x</span>
697
643
  <span class="cline-any cline-neutral">&nbsp;</span>
698
644
  <span class="cline-any cline-neutral">&nbsp;</span>
699
645
  <span class="cline-any cline-neutral">&nbsp;</span>
646
+ <span class="cline-any cline-yes">70x</span>
647
+ <span class="cline-any cline-yes">70x</span>
648
+ <span class="cline-any cline-yes">70x</span>
649
+ <span class="cline-any cline-neutral">&nbsp;</span>
700
650
  <span class="cline-any cline-neutral">&nbsp;</span>
701
- <span class="cline-any cline-yes">67x</span>
651
+ <span class="cline-any cline-neutral">&nbsp;</span>
652
+ <span class="cline-any cline-neutral">&nbsp;</span>
653
+ <span class="cline-any cline-yes">70x</span>
702
654
  <span class="cline-any cline-no">&nbsp;</span>
703
655
  <span class="cline-any cline-neutral">&nbsp;</span>
704
656
  <span class="cline-any cline-neutral">&nbsp;</span>
705
657
  <span class="cline-any cline-neutral">&nbsp;</span>
706
- <span class="cline-any cline-yes">67x</span>
658
+ <span class="cline-any cline-yes">70x</span>
707
659
  <span class="cline-any cline-neutral">&nbsp;</span>
708
660
  <span class="cline-any cline-neutral">&nbsp;</span>
709
661
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -711,10 +663,13 @@
711
663
  <span class="cline-any cline-neutral">&nbsp;</span>
712
664
  <span class="cline-any cline-neutral">&nbsp;</span>
713
665
  <span class="cline-any cline-neutral">&nbsp;</span>
714
- <span class="cline-any cline-yes">66x</span>
666
+ <span class="cline-any cline-yes">69x</span>
715
667
  <span class="cline-any cline-neutral">&nbsp;</span>
716
668
  <span class="cline-any cline-neutral">&nbsp;</span>
717
- <span class="cline-any cline-yes">34x</span>
669
+ <span class="cline-any cline-neutral">&nbsp;</span>
670
+ <span class="cline-any cline-neutral">&nbsp;</span>
671
+ <span class="cline-any cline-neutral">&nbsp;</span>
672
+ <span class="cline-any cline-yes">39x</span>
718
673
  <span class="cline-any cline-yes">7x</span>
719
674
  <span class="cline-any cline-yes">7x</span>
720
675
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -777,7 +732,7 @@
777
732
  <span class="cline-any cline-yes">5x</span>
778
733
  <span class="cline-any cline-neutral">&nbsp;</span>
779
734
  <span class="cline-any cline-neutral">&nbsp;</span>
780
- <span class="cline-any cline-yes">34x</span>
735
+ <span class="cline-any cline-yes">39x</span>
781
736
  <span class="cline-any cline-yes">5x</span>
782
737
  <span class="cline-any cline-yes">5x</span>
783
738
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -787,7 +742,7 @@
787
742
  <span class="cline-any cline-yes">5x</span>
788
743
  <span class="cline-any cline-neutral">&nbsp;</span>
789
744
  <span class="cline-any cline-neutral">&nbsp;</span>
790
- <span class="cline-any cline-yes">34x</span>
745
+ <span class="cline-any cline-yes">39x</span>
791
746
  <span class="cline-any cline-yes">18x</span>
792
747
  <span class="cline-any cline-yes">18x</span>
793
748
  <span class="cline-any cline-yes">18x</span>
@@ -796,7 +751,7 @@
796
751
  <span class="cline-any cline-yes">15x</span>
797
752
  <span class="cline-any cline-neutral">&nbsp;</span>
798
753
  <span class="cline-any cline-neutral">&nbsp;</span>
799
- <span class="cline-any cline-yes">34x</span>
754
+ <span class="cline-any cline-yes">39x</span>
800
755
  <span class="cline-any cline-yes">3x</span>
801
756
  <span class="cline-any cline-yes">3x</span>
802
757
  <span class="cline-any cline-yes">3x</span>
@@ -818,6 +773,8 @@
818
773
  <span class="cline-any cline-neutral">&nbsp;</span>
819
774
  <span class="cline-any cline-yes">2x</span>
820
775
  <span class="cline-any cline-neutral">&nbsp;</span>
776
+ <span class="cline-any cline-yes">2x</span>
777
+ <span class="cline-any cline-neutral">&nbsp;</span>
821
778
  <span class="cline-any cline-neutral">&nbsp;</span>
822
779
  <span class="cline-any cline-yes">2x</span>
823
780
  <span class="cline-any cline-no">&nbsp;</span>
@@ -831,7 +788,7 @@
831
788
  <span class="cline-any cline-yes">2x</span>
832
789
  <span class="cline-any cline-neutral">&nbsp;</span>
833
790
  <span class="cline-any cline-neutral">&nbsp;</span>
834
- <span class="cline-any cline-yes">34x</span>
791
+ <span class="cline-any cline-yes">39x</span>
835
792
  <span class="cline-any cline-yes">2x</span>
836
793
  <span class="cline-any cline-yes">2x</span>
837
794
  <span class="cline-any cline-yes">2x</span>
@@ -867,9 +824,10 @@
867
824
  <span class="cline-any cline-yes">2x</span>
868
825
  <span class="cline-any cline-yes">2x</span>
869
826
  <span class="cline-any cline-yes">2x</span>
827
+ <span class="cline-any cline-yes">2x</span>
870
828
  <span class="cline-any cline-neutral">&nbsp;</span>
871
829
  <span class="cline-any cline-neutral">&nbsp;</span>
872
- <span class="cline-any cline-yes">34x</span>
830
+ <span class="cline-any cline-yes">39x</span>
873
831
  <span class="cline-any cline-neutral">&nbsp;</span>
874
832
  <span class="cline-any cline-yes">1x</span>
875
833
  <span class="cline-any cline-no">&nbsp;</span>
@@ -902,7 +860,7 @@
902
860
  <span class="cline-any cline-yes">1x</span>
903
861
  <span class="cline-any cline-neutral">&nbsp;</span>
904
862
  <span class="cline-any cline-neutral">&nbsp;</span>
905
- <span class="cline-any cline-yes">34x</span>
863
+ <span class="cline-any cline-yes">39x</span>
906
864
  <span class="cline-any cline-yes">2x</span>
907
865
  <span class="cline-any cline-neutral">&nbsp;</span>
908
866
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -910,7 +868,7 @@
910
868
  <span class="cline-any cline-neutral">&nbsp;</span>
911
869
  <span class="cline-any cline-neutral">&nbsp;</span>
912
870
  <span class="cline-any cline-neutral">&nbsp;</span>
913
- <span class="cline-any cline-yes">34x</span>
871
+ <span class="cline-any cline-yes">39x</span>
914
872
  <span class="cline-any cline-yes">1x</span>
915
873
  <span class="cline-any cline-yes">1x</span>
916
874
  <span class="cline-any cline-yes">1x</span>
@@ -972,8 +930,8 @@
972
930
  <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">const CouchDB = require("../../../db")
973
931
  const linkRows = require("../../../db/linkedRows")
974
932
  const {
975
- getRowParams,
976
933
  generateRowID,
934
+ getRowParams,
977
935
  DocumentTypes,
978
936
  InternalTables,
979
937
  } = require("../../../db/utils")
@@ -981,11 +939,9 @@ const userController = require("../user")
981
939
  const {
982
940
  inputProcessing,
983
941
  outputProcessing,
984
- processAutoColumn,
985
942
  cleanupAttachments,
986
943
  } = require("../../../utilities/rowProcessor")
987
944
  const { FieldTypes } = require("../../../constants")
988
- const { isEqual } = require("lodash")
989
945
  const { validate, findRow } = require("./utils")
990
946
  const { fullSearch, paginatedSearch } = require("./internalSearch")
991
947
  const { getGlobalUsersFromMetadata } = require("../../../utilities/global")
@@ -998,6 +954,7 @@ const {
998
954
  getFromMemoryDoc,
999
955
  } = require("../view/utils")
1000
956
  const { cloneDeep } = require("lodash/fp")
957
+ const { finaliseRow, updateRelatedFormula } = require("./staticFormula")
1001
958
  &nbsp;
1002
959
  const CALCULATION_TYPES = {
1003
960
  SUM: "sum",
@@ -1005,51 +962,6 @@ const CALCULATION_TYPES = {
1005
962
  STATS: "stats",
1006
963
  }
1007
964
  &nbsp;
1008
- async function storeResponse(ctx, db, row, oldTable, table) {
1009
- row.type = "row"
1010
- // don't worry about rev, tables handle rev/lastID updates
1011
- // if another row has been written since processing this will
1012
- // handle the auto ID clash
1013
- <span class="missing-if-branch" title="if path not taken" >I</span>if (!isEqual(oldTable, table)) {
1014
- <span class="cstat-no" title="statement not covered" > try {</span>
1015
- <span class="cstat-no" title="statement not covered" > await db.put(table)</span>
1016
- } catch (err) {
1017
- <span class="cstat-no" title="statement not covered" > if (err.status === 409) {</span>
1018
- const updatedTable = <span class="cstat-no" title="statement not covered" >await db.get(table._id)</span>
1019
- let response = <span class="cstat-no" title="statement not covered" >processAutoColumn(null, updatedTable, row, {</span>
1020
- reprocessing: true,
1021
- })
1022
- <span class="cstat-no" title="statement not covered" > await db.put(response.table)</span>
1023
- <span class="cstat-no" title="statement not covered" > row = response.row</span>
1024
- } else {
1025
- <span class="cstat-no" title="statement not covered" > throw err</span>
1026
- }
1027
- }
1028
- }
1029
- const response = await db.put(row)
1030
- row._rev = response.rev
1031
- // process the row before return, to include relationships
1032
- row = await outputProcessing(ctx, table, row, { squash: false })
1033
- return { row, table }
1034
- }
1035
- &nbsp;
1036
- // doesn't do the outputProcessing
1037
- async function getRawTableData(ctx, db, tableId) {
1038
- let rows
1039
- <span class="missing-if-branch" title="if path not taken" >I</span>if (tableId === InternalTables.USER_METADATA) {
1040
- <span class="cstat-no" title="statement not covered" > await userController.fetchMetadata(ctx)</span>
1041
- <span class="cstat-no" title="statement not covered" > rows = ctx.body</span>
1042
- } else {
1043
- const response = await db.allDocs(
1044
- getRowParams(tableId, null, {
1045
- include_docs: true,
1046
- })
1047
- )
1048
- rows = response.rows.map(row =&gt; row.doc)
1049
- }
1050
- return rows
1051
- }
1052
- &nbsp;
1053
965
  async function getView(db, viewName) {
1054
966
  let mainGetter = env.SELF_HOSTED ? getFromDesignDoc : <span class="branch-1 cbranch-no" title="branch not covered" >getFromMemoryDoc</span>
1055
967
  let secondaryGetter = env.SELF_HOSTED ? getFromMemoryDoc : <span class="branch-1 cbranch-no" title="branch not covered" >getFromDesignDoc</span>
@@ -1076,6 +988,22 @@ async function getView(db, viewName) {
1076
988
  return viewInfo
1077
989
  }
1078
990
  &nbsp;
991
+ async function getRawTableData(ctx, db, tableId) {
992
+ let rows
993
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (tableId === InternalTables.USER_METADATA) {
994
+ <span class="cstat-no" title="statement not covered" > await userController.fetchMetadata(ctx)</span>
995
+ <span class="cstat-no" title="statement not covered" > rows = ctx.body</span>
996
+ } else {
997
+ const response = await db.allDocs(
998
+ getRowParams(tableId, null, {
999
+ include_docs: true,
1000
+ })
1001
+ )
1002
+ rows = response.rows.map(row =&gt; row.doc)
1003
+ }
1004
+ return rows
1005
+ }
1006
+ &nbsp;
1079
1007
  exports.patch = async ctx =&gt; {
1080
1008
  const appId = ctx.appId
1081
1009
  const db = new CouchDB(appId)
@@ -1133,7 +1061,10 @@ exports.patch = async ctx =&gt; {
1133
1061
  <span class="cstat-no" title="statement not covered" > return { row: ctx.body, table }</span>
1134
1062
  }
1135
1063
  &nbsp;
1136
- return storeResponse(ctx, db, row, dbTable, table)
1064
+ return finaliseRow(ctx.appId, table, row, {
1065
+ oldTable: dbTable,
1066
+ updateFormula: true,
1067
+ })
1137
1068
  }
1138
1069
  &nbsp;
1139
1070
  exports.save = async function (ctx) {
@@ -1167,7 +1098,10 @@ exports.save = async function (ctx) {
1167
1098
  table,
1168
1099
  })
1169
1100
  &nbsp;
1170
- return storeResponse(ctx, db, row, dbTable, table)
1101
+ return finaliseRow(ctx.appId, table, row, {
1102
+ oldTable: dbTable,
1103
+ updateFormula: true,
1104
+ })
1171
1105
  }
1172
1106
  &nbsp;
1173
1107
  exports.fetchView = async ctx =&gt; {
@@ -1273,6 +1207,8 @@ exports.destroy = async function (ctx) {
1273
1207
  })
1274
1208
  // remove any attachments that were on the row from object storage
1275
1209
  await cleanupAttachments(appId, table, { row })
1210
+ // remove any static formula
1211
+ await updateRelatedFormula(appId, table, row)
1276
1212
  &nbsp;
1277
1213
  let response
1278
1214
  <span class="missing-if-branch" title="if path not taken" >I</span>if (ctx.params.tableId === InternalTables.USER_METADATA) {
@@ -1321,6 +1257,7 @@ exports.bulkDestroy = async ctx =&gt; {
1321
1257
  }
1322
1258
  // remove any attachments that were on the rows from object storage
1323
1259
  await cleanupAttachments(appId, table, { rows })
1260
+ await updateRelatedFormula(appId, table, rows)
1324
1261
  await Promise.all(updates)
1325
1262
  return { response: { ok: true }, rows }
1326
1263
  }
@@ -1432,7 +1369,7 @@ exports.fetchEnrichedRow = async ctx =&gt; {
1432
1369
  <div class='footer quiet pad2 space-top1 center small'>
1433
1370
  Code coverage generated by
1434
1371
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
1435
- at Mon Jan 31 2022 13:42:59 GMT+0000 (Coordinated Universal Time)
1372
+ at Mon Jan 31 2022 17:55:41 GMT+0000 (Coordinated Universal Time)
1436
1373
  </div>
1437
1374
  </div>
1438
1375
  <script src="../../../prettify.js"></script>
@@ -23,16 +23,16 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">4.66% </span>
26
+ <span class="strong">4.54% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>7/150</span>
28
+ <span class='fraction'>7/154</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
33
  <span class="strong">0% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>0/87</span>
35
+ <span class='fraction'>0/95</span>
36
36
  </div>
37
37
 
38
38
 
@@ -44,9 +44,9 @@
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">4.76% </span>
47
+ <span class="strong">4.63% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>7/147</span>
49
+ <span class='fraction'>7/151</span>
50
50
  </div>
51
51
 
52
52
 
@@ -446,9 +446,17 @@
446
446
  <a name='L387'></a><a href='#L387'>387</a>
447
447
  <a name='L388'></a><a href='#L388'>388</a>
448
448
  <a name='L389'></a><a href='#L389'>389</a>
449
- <a name='L390'></a><a href='#L390'>390</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">33x</span>
450
- <span class="cline-any cline-yes">33x</span>
451
- <span class="cline-any cline-yes">33x</span>
449
+ <a name='L390'></a><a href='#L390'>390</a>
450
+ <a name='L391'></a><a href='#L391'>391</a>
451
+ <a name='L392'></a><a href='#L392'>392</a>
452
+ <a name='L393'></a><a href='#L393'>393</a>
453
+ <a name='L394'></a><a href='#L394'>394</a>
454
+ <a name='L395'></a><a href='#L395'>395</a>
455
+ <a name='L396'></a><a href='#L396'>396</a>
456
+ <a name='L397'></a><a href='#L397'>397</a>
457
+ <a name='L398'></a><a href='#L398'>398</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">38x</span>
458
+ <span class="cline-any cline-yes">38x</span>
459
+ <span class="cline-any cline-yes">38x</span>
452
460
  <span class="cline-any cline-neutral">&nbsp;</span>
453
461
  <span class="cline-any cline-neutral">&nbsp;</span>
454
462
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -488,21 +496,29 @@
488
496
  <span class="cline-any cline-no">&nbsp;</span>
489
497
  <span class="cline-any cline-no">&nbsp;</span>
490
498
  <span class="cline-any cline-neutral">&nbsp;</span>
499
+ <span class="cline-any cline-no">&nbsp;</span>
500
+ <span class="cline-any cline-neutral">&nbsp;</span>
491
501
  <span class="cline-any cline-neutral">&nbsp;</span>
492
502
  <span class="cline-any cline-neutral">&nbsp;</span>
493
503
  <span class="cline-any cline-no">&nbsp;</span>
494
504
  <span class="cline-any cline-no">&nbsp;</span>
495
505
  <span class="cline-any cline-neutral">&nbsp;</span>
506
+ <span class="cline-any cline-no">&nbsp;</span>
507
+ <span class="cline-any cline-neutral">&nbsp;</span>
496
508
  <span class="cline-any cline-neutral">&nbsp;</span>
497
509
  <span class="cline-any cline-neutral">&nbsp;</span>
498
510
  <span class="cline-any cline-no">&nbsp;</span>
499
511
  <span class="cline-any cline-no">&nbsp;</span>
500
512
  <span class="cline-any cline-neutral">&nbsp;</span>
513
+ <span class="cline-any cline-no">&nbsp;</span>
514
+ <span class="cline-any cline-neutral">&nbsp;</span>
501
515
  <span class="cline-any cline-neutral">&nbsp;</span>
502
516
  <span class="cline-any cline-neutral">&nbsp;</span>
503
517
  <span class="cline-any cline-no">&nbsp;</span>
504
518
  <span class="cline-any cline-no">&nbsp;</span>
505
519
  <span class="cline-any cline-neutral">&nbsp;</span>
520
+ <span class="cline-any cline-no">&nbsp;</span>
521
+ <span class="cline-any cline-neutral">&nbsp;</span>
506
522
  <span class="cline-any cline-neutral">&nbsp;</span>
507
523
  <span class="cline-any cline-neutral">&nbsp;</span>
508
524
  <span class="cline-any cline-no">&nbsp;</span>
@@ -695,7 +711,7 @@
695
711
  <span class="cline-any cline-neutral">&nbsp;</span>
696
712
  <span class="cline-any cline-neutral">&nbsp;</span>
697
713
  <span class="cline-any cline-neutral">&nbsp;</span>
698
- <span class="cline-any cline-yes">33x</span>
714
+ <span class="cline-any cline-yes">38x</span>
699
715
  <span class="cline-any cline-no">&nbsp;</span>
700
716
  <span class="cline-any cline-neutral">&nbsp;</span>
701
717
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -731,7 +747,7 @@
731
747
  <span class="cline-any cline-neutral">&nbsp;</span>
732
748
  <span class="cline-any cline-neutral">&nbsp;</span>
733
749
  <span class="cline-any cline-neutral">&nbsp;</span>
734
- <span class="cline-any cline-yes">33x</span>
750
+ <span class="cline-any cline-yes">38x</span>
735
751
  <span class="cline-any cline-no">&nbsp;</span>
736
752
  <span class="cline-any cline-no">&nbsp;</span>
737
753
  <span class="cline-any cline-no">&nbsp;</span>
@@ -780,7 +796,7 @@
780
796
  <span class="cline-any cline-neutral">&nbsp;</span>
781
797
  <span class="cline-any cline-neutral">&nbsp;</span>
782
798
  <span class="cline-any cline-neutral">&nbsp;</span>
783
- <span class="cline-any cline-yes">33x</span>
799
+ <span class="cline-any cline-yes">38x</span>
784
800
  <span class="cline-any cline-no">&nbsp;</span>
785
801
  <span class="cline-any cline-no">&nbsp;</span>
786
802
  <span class="cline-any cline-no">&nbsp;</span>
@@ -826,7 +842,7 @@
826
842
  <span class="cline-any cline-neutral">&nbsp;</span>
827
843
  <span class="cline-any cline-neutral">&nbsp;</span>
828
844
  <span class="cline-any cline-neutral">&nbsp;</span>
829
- <span class="cline-any cline-yes">33x</span>
845
+ <span class="cline-any cline-yes">38x</span>
830
846
  <span class="cline-any cline-no">&nbsp;</span>
831
847
  <span class="cline-any cline-no">&nbsp;</span>
832
848
  <span class="cline-any cline-no">&nbsp;</span>
@@ -874,22 +890,30 @@ class QueryBuilder {
874
890
  }
875
891
  &nbsp;
876
892
  <span class="fstat-no" title="function not covered" > se</span>tLimit(limit) {
877
- <span class="cstat-no" title="statement not covered" > this.limit = limit</span>
893
+ <span class="cstat-no" title="statement not covered" > if (limit != null) {</span>
894
+ <span class="cstat-no" title="statement not covered" > this.limit = limit</span>
895
+ }
878
896
  <span class="cstat-no" title="statement not covered" > return this</span>
879
897
  }
880
898
  &nbsp;
881
899
  <span class="fstat-no" title="function not covered" > se</span>tSort(sort) {
882
- <span class="cstat-no" title="statement not covered" > this.sort = sort</span>
900
+ <span class="cstat-no" title="statement not covered" > if (sort != null) {</span>
901
+ <span class="cstat-no" title="statement not covered" > this.sort = sort</span>
902
+ }
883
903
  <span class="cstat-no" title="statement not covered" > return this</span>
884
904
  }
885
905
  &nbsp;
886
906
  <span class="fstat-no" title="function not covered" > se</span>tSortOrder(sortOrder) {
887
- <span class="cstat-no" title="statement not covered" > this.sortOrder = sortOrder</span>
907
+ <span class="cstat-no" title="statement not covered" > if (sortOrder != null) {</span>
908
+ <span class="cstat-no" title="statement not covered" > this.sortOrder = sortOrder</span>
909
+ }
888
910
  <span class="cstat-no" title="statement not covered" > return this</span>
889
911
  }
890
912
  &nbsp;
891
913
  <span class="fstat-no" title="function not covered" > se</span>tSortType(sortType) {
892
- <span class="cstat-no" title="statement not covered" > this.sortType = sortType</span>
914
+ <span class="cstat-no" title="statement not covered" > if (sortType != null) {</span>
915
+ <span class="cstat-no" title="statement not covered" > this.sortType = sortType</span>
916
+ }
893
917
  <span class="cstat-no" title="statement not covered" > return this</span>
894
918
  }
895
919
  &nbsp;
@@ -1231,7 +1255,7 @@ exports.fullSearch = <span class="fstat-no" title="function not covered" >as</sp
1231
1255
  <div class='footer quiet pad2 space-top1 center small'>
1232
1256
  Code coverage generated by
1233
1257
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
1234
- at Mon Jan 31 2022 13:42:59 GMT+0000 (Coordinated Universal Time)
1258
+ at Mon Jan 31 2022 17:55:41 GMT+0000 (Coordinated Universal Time)
1235
1259
  </div>
1236
1260
  </div>
1237
1261
  <script src="../../../prettify.js"></script>