@budibase/server 1.0.199 → 1.0.200-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 (281) hide show
  1. package/Dockerfile +2 -0
  2. package/builder/assets/index.359da19e.js +1315 -0
  3. package/builder/index.html +1 -1
  4. package/coverage/clover.xml +2089 -2001
  5. package/coverage/coverage-final.json +121 -122
  6. package/coverage/lcov-report/api/controllers/apikeys.js.html +6 -6
  7. package/coverage/lcov-report/api/controllers/auth.js.html +7 -7
  8. package/coverage/lcov-report/api/controllers/automation.js.html +174 -72
  9. package/coverage/lcov-report/api/controllers/backup.js.html +30 -6
  10. package/coverage/lcov-report/api/controllers/cloud.js.html +11 -11
  11. package/coverage/lcov-report/api/controllers/component.js.html +5 -5
  12. package/coverage/lcov-report/api/controllers/datasource.js.html +53 -41
  13. package/coverage/lcov-report/api/controllers/dev.js.html +94 -70
  14. package/coverage/lcov-report/api/controllers/index.html +57 -72
  15. package/coverage/lcov-report/api/controllers/integration.js.html +8 -8
  16. package/coverage/lcov-report/api/controllers/layout.js.html +28 -19
  17. package/coverage/lcov-report/api/controllers/metadata.js.html +9 -9
  18. package/coverage/lcov-report/api/controllers/migrations.js.html +4 -4
  19. package/coverage/lcov-report/api/controllers/permission.js.html +15 -15
  20. package/coverage/lcov-report/api/controllers/query/index.html +1 -1
  21. package/coverage/lcov-report/api/controllers/query/validation.js.html +10 -10
  22. package/coverage/lcov-report/api/controllers/role.js.html +78 -48
  23. package/coverage/lcov-report/api/controllers/routing.js.html +9 -9
  24. package/coverage/lcov-report/api/controllers/row/external.js.html +19 -19
  25. package/coverage/lcov-report/api/controllers/row/index.html +1 -1
  26. package/coverage/lcov-report/api/controllers/row/internal.js.html +54 -54
  27. package/coverage/lcov-report/api/controllers/row/internalSearch.js.html +9 -9
  28. package/coverage/lcov-report/api/controllers/row/staticFormula.js.html +24 -24
  29. package/coverage/lcov-report/api/controllers/row/utils.js.html +24 -24
  30. package/coverage/lcov-report/api/controllers/screen.js.html +56 -20
  31. package/coverage/lcov-report/api/controllers/script.js.html +4 -4
  32. package/coverage/lcov-report/api/controllers/table/bulkFormula.js.html +49 -49
  33. package/coverage/lcov-report/api/controllers/table/external.js.html +23 -17
  34. package/coverage/lcov-report/api/controllers/table/index.html +26 -26
  35. package/coverage/lcov-report/api/controllers/table/index.js.html +85 -49
  36. package/coverage/lcov-report/api/controllers/templates.js.html +6 -6
  37. package/coverage/lcov-report/api/controllers/user.js.html +19 -19
  38. package/coverage/lcov-report/api/controllers/view/exporters.js.html +11 -11
  39. package/coverage/lcov-report/api/controllers/view/index.html +21 -21
  40. package/coverage/lcov-report/api/controllers/view/index.js.html +275 -65
  41. package/coverage/lcov-report/api/controllers/view/utils.js.html +23 -23
  42. package/coverage/lcov-report/api/controllers/view/viewBuilder.js.html +40 -40
  43. package/coverage/lcov-report/api/controllers/webhook.js.html +17 -17
  44. package/coverage/lcov-report/api/index.html +15 -15
  45. package/coverage/lcov-report/api/index.js.html +39 -45
  46. package/coverage/lcov-report/api/routes/analytics.js.html +7 -13
  47. package/coverage/lcov-report/api/routes/apikeys.js.html +8 -8
  48. package/coverage/lcov-report/api/routes/auth.js.html +6 -6
  49. package/coverage/lcov-report/api/routes/automation.js.html +11 -11
  50. package/coverage/lcov-report/api/routes/backup.js.html +8 -8
  51. package/coverage/lcov-report/api/routes/cloud.js.html +8 -8
  52. package/coverage/lcov-report/api/routes/component.js.html +8 -8
  53. package/coverage/lcov-report/api/routes/datasource.js.html +9 -9
  54. package/coverage/lcov-report/api/routes/deploy.js.html +8 -8
  55. package/coverage/lcov-report/api/routes/dev.js.html +13 -13
  56. package/coverage/lcov-report/api/routes/index.html +1 -1
  57. package/coverage/lcov-report/api/routes/integration.js.html +8 -8
  58. package/coverage/lcov-report/api/routes/layout.js.html +8 -8
  59. package/coverage/lcov-report/api/routes/metadata.js.html +9 -9
  60. package/coverage/lcov-report/api/routes/migrations.js.html +7 -7
  61. package/coverage/lcov-report/api/routes/permission.js.html +9 -9
  62. package/coverage/lcov-report/api/routes/query.js.html +10 -10
  63. package/coverage/lcov-report/api/routes/role.js.html +9 -9
  64. package/coverage/lcov-report/api/routes/routing.js.html +8 -8
  65. package/coverage/lcov-report/api/routes/screen.js.html +9 -9
  66. package/coverage/lcov-report/api/routes/script.js.html +1 -1
  67. package/coverage/lcov-report/api/routes/table.js.html +10 -10
  68. package/coverage/lcov-report/api/routes/templates.js.html +8 -8
  69. package/coverage/lcov-report/api/routes/user.js.html +8 -8
  70. package/coverage/lcov-report/api/routes/utils/index.html +1 -1
  71. package/coverage/lcov-report/api/routes/utils/validators.js.html +36 -36
  72. package/coverage/lcov-report/api/routes/view.js.html +10 -10
  73. package/coverage/lcov-report/api/routes/webhook.js.html +9 -9
  74. package/coverage/lcov-report/automations/actions.js.html +25 -25
  75. package/coverage/lcov-report/automations/automationUtils.js.html +8 -8
  76. package/coverage/lcov-report/automations/bullboard.js.html +35 -35
  77. package/coverage/lcov-report/automations/index.html +29 -29
  78. package/coverage/lcov-report/automations/index.js.html +29 -17
  79. package/coverage/lcov-report/automations/steps/bash.js.html +7 -7
  80. package/coverage/lcov-report/automations/steps/delay.js.html +4 -4
  81. package/coverage/lcov-report/automations/steps/discord.js.html +7 -7
  82. package/coverage/lcov-report/automations/steps/executeQuery.js.html +6 -6
  83. package/coverage/lcov-report/automations/steps/executeScript.js.html +6 -6
  84. package/coverage/lcov-report/automations/steps/filter.js.html +7 -7
  85. package/coverage/lcov-report/automations/steps/index.html +1 -1
  86. package/coverage/lcov-report/automations/steps/integromat.js.html +5 -5
  87. package/coverage/lcov-report/automations/steps/loop.js.html +2 -2
  88. package/coverage/lcov-report/automations/steps/outgoingWebhook.js.html +8 -8
  89. package/coverage/lcov-report/automations/steps/queryRows.js.html +10 -10
  90. package/coverage/lcov-report/automations/steps/sendSmtpEmail.js.html +5 -5
  91. package/coverage/lcov-report/automations/steps/serverLog.js.html +3 -3
  92. package/coverage/lcov-report/automations/steps/slack.js.html +5 -5
  93. package/coverage/lcov-report/automations/steps/updateRow.js.html +6 -6
  94. package/coverage/lcov-report/automations/steps/utils.js.html +3 -3
  95. package/coverage/lcov-report/automations/steps/zapier.js.html +5 -5
  96. package/coverage/lcov-report/automations/triggerInfo/app.js.html +2 -2
  97. package/coverage/lcov-report/automations/triggerInfo/cron.js.html +2 -2
  98. package/coverage/lcov-report/automations/triggerInfo/index.html +1 -1
  99. package/coverage/lcov-report/automations/triggerInfo/index.js.html +8 -8
  100. package/coverage/lcov-report/automations/triggerInfo/rowDeleted.js.html +2 -2
  101. package/coverage/lcov-report/automations/triggerInfo/rowSaved.js.html +2 -2
  102. package/coverage/lcov-report/automations/triggerInfo/rowUpdated.js.html +2 -2
  103. package/coverage/lcov-report/automations/triggerInfo/webhook.js.html +2 -2
  104. package/coverage/lcov-report/automations/triggers.js.html +18 -18
  105. package/coverage/lcov-report/constants/index.html +1 -1
  106. package/coverage/lcov-report/constants/index.js.html +30 -30
  107. package/coverage/lcov-report/constants/layouts.js.html +5 -5
  108. package/coverage/lcov-report/constants/screens.js.html +4 -4
  109. package/coverage/lcov-report/db/inMemoryView.js.html +5 -5
  110. package/coverage/lcov-report/db/index.html +1 -1
  111. package/coverage/lcov-report/db/index.js.html +9 -9
  112. package/coverage/lcov-report/db/linkedRows/LinkController.js.html +17 -17
  113. package/coverage/lcov-report/db/linkedRows/index.html +1 -1
  114. package/coverage/lcov-report/db/linkedRows/index.js.html +36 -36
  115. package/coverage/lcov-report/db/linkedRows/linkUtils.js.html +19 -19
  116. package/coverage/lcov-report/db/newid.js.html +4 -4
  117. package/coverage/lcov-report/db/utils.js.html +81 -81
  118. package/coverage/lcov-report/events/AutomationEmitter.js.html +1 -1
  119. package/coverage/lcov-report/events/index.html +1 -1
  120. package/coverage/lcov-report/events/index.js.html +7 -7
  121. package/coverage/lcov-report/events/utils.js.html +10 -10
  122. package/coverage/lcov-report/index.html +74 -74
  123. package/coverage/lcov-report/integrations/tests/TestConfiguration.js.html +1 -1
  124. package/coverage/lcov-report/integrations/tests/index.html +1 -1
  125. package/coverage/lcov-report/middleware/appInfo.js.html +5 -5
  126. package/coverage/lcov-report/middleware/builder.js.html +20 -20
  127. package/coverage/lcov-report/middleware/currentapp.js.html +49 -49
  128. package/coverage/lcov-report/middleware/index.html +1 -1
  129. package/coverage/lcov-report/middleware/joi-validator.js.html +14 -14
  130. package/coverage/lcov-report/middleware/publicApi.js.html +5 -5
  131. package/coverage/lcov-report/middleware/resourceId.js.html +29 -29
  132. package/coverage/lcov-report/middleware/selfhost.js.html +1 -1
  133. package/coverage/lcov-report/middleware/utils.js.html +4 -4
  134. package/coverage/lcov-report/threads/automation.js.html +1 -1
  135. package/coverage/lcov-report/threads/index.html +1 -1
  136. package/coverage/lcov-report/threads/query.js.html +1 -1
  137. package/coverage/lcov-report/threads/utils.js.html +13 -13
  138. package/coverage/lcov-report/utilities/budibaseDir.js.html +3 -3
  139. package/coverage/lcov-report/utilities/centralPath.js.html +14 -14
  140. package/coverage/lcov-report/utilities/csvParser.js.html +34 -34
  141. package/coverage/lcov-report/utilities/global.js.html +28 -28
  142. package/coverage/lcov-report/utilities/index.html +25 -25
  143. package/coverage/lcov-report/utilities/index.js.html +41 -41
  144. package/coverage/lcov-report/utilities/queue/inMemoryQueue.js.html +18 -18
  145. package/coverage/lcov-report/utilities/queue/index.html +15 -15
  146. package/coverage/lcov-report/utilities/routing/index.html +1 -1
  147. package/coverage/lcov-report/utilities/routing/index.js.html +6 -6
  148. package/coverage/lcov-report/utilities/rowProcessor/index.html +1 -1
  149. package/coverage/lcov-report/utilities/rowProcessor/index.js.html +59 -59
  150. package/coverage/lcov-report/utilities/rowProcessor/utils.js.html +15 -15
  151. package/coverage/lcov-report/utilities/scriptRunner.js.html +5 -5
  152. package/coverage/lcov-report/utilities/security.js.html +8 -8
  153. package/coverage/lcov-report/utilities/statusCodes.js.html +1 -1
  154. package/coverage/lcov-report/utilities/usageQuota/index.html +1 -1
  155. package/coverage/lcov-report/utilities/usageQuota/rows.js.html +30 -30
  156. package/coverage/lcov-report/utilities/usageQuota/usageQuoteReset.js.html +1 -1
  157. package/coverage/lcov-report/utilities/users.js.html +7 -7
  158. package/coverage/lcov-report/utilities/workerRequests.js.html +29 -29
  159. package/coverage/lcov.info +2903 -2762
  160. package/dist/api/controllers/analytics.js +7 -30
  161. package/dist/api/controllers/application.js +56 -16
  162. package/dist/api/controllers/automation.js +31 -2
  163. package/dist/api/controllers/backup.js +7 -0
  164. package/dist/api/controllers/datasource.js +8 -2
  165. package/dist/api/controllers/deploy/index.js +6 -2
  166. package/dist/api/controllers/dev.js +9 -2
  167. package/dist/api/controllers/layout.js +3 -0
  168. package/dist/api/controllers/query/import/index.js +12 -2
  169. package/dist/api/controllers/query/import/sources/curl.js +3 -0
  170. package/dist/api/controllers/query/import/sources/openapi2.js +3 -0
  171. package/dist/api/controllers/query/import/sources/openapi3.js +3 -0
  172. package/dist/api/controllers/query/index.js +16 -2
  173. package/dist/api/controllers/role.js +11 -0
  174. package/dist/api/controllers/screen.js +10 -1
  175. package/dist/api/controllers/static/index.js +29 -15
  176. package/dist/api/controllers/table/external.js +2 -0
  177. package/dist/api/controllers/table/index.js +12 -0
  178. package/dist/api/controllers/table/utils.js +3 -3
  179. package/dist/api/controllers/view/index.js +62 -6
  180. package/dist/api/index.js +2 -4
  181. package/dist/api/routes/analytics.js +1 -3
  182. package/dist/app.js +16 -8
  183. package/dist/automations/index.js +4 -0
  184. package/dist/environment.js +4 -2
  185. package/dist/migrations/functions/backfill/app/automations.js +31 -0
  186. package/dist/migrations/functions/backfill/app/datasources.js +28 -0
  187. package/dist/migrations/functions/backfill/app/layouts.js +33 -0
  188. package/dist/migrations/functions/backfill/app/queries.js +32 -0
  189. package/dist/migrations/functions/backfill/app/roles.js +28 -0
  190. package/dist/migrations/functions/backfill/app/screens.js +28 -0
  191. package/dist/migrations/functions/backfill/app/tables.js +40 -0
  192. package/dist/migrations/functions/backfill/app.js +175 -0
  193. package/dist/migrations/functions/backfill/global/configs.js +61 -0
  194. package/dist/migrations/functions/backfill/global/quotas.js +60 -0
  195. package/dist/migrations/functions/backfill/global/users.js +50 -0
  196. package/dist/migrations/functions/backfill/global.js +189 -0
  197. package/dist/migrations/functions/backfill/index.js +32 -0
  198. package/dist/migrations/functions/backfill/installation.js +81 -0
  199. package/dist/migrations/index.js +95 -31
  200. package/dist/migrations/tests/helpers.js +72 -0
  201. package/dist/migrations/tests/structures.js +37 -0
  202. package/dist/package.json +79 -69
  203. package/dist/tests/utilities/TestConfiguration.js +121 -93
  204. package/dist/tests/utilities/structures.js +45 -0
  205. package/dist/tsconfig.build.tsbuildinfo +1 -1
  206. package/nodemon.json +1 -1
  207. package/package.json +80 -70
  208. package/scripts/dev/manage.js +2 -0
  209. package/scripts/jestSetup.js +7 -0
  210. package/scripts/likeCypress.ts +1 -1
  211. package/src/api/controllers/analytics.ts +8 -0
  212. package/src/api/controllers/application.ts +60 -18
  213. package/src/api/controllers/automation.js +36 -2
  214. package/src/api/controllers/backup.js +8 -0
  215. package/src/api/controllers/datasource.js +8 -4
  216. package/src/api/controllers/deploy/index.ts +6 -2
  217. package/src/api/controllers/dev.js +10 -2
  218. package/src/api/controllers/layout.js +3 -0
  219. package/src/api/controllers/query/import/index.ts +16 -3
  220. package/src/api/controllers/query/import/sources/base/index.ts +2 -1
  221. package/src/api/controllers/query/import/sources/curl.ts +4 -0
  222. package/src/api/controllers/query/import/sources/openapi2.ts +4 -0
  223. package/src/api/controllers/query/import/sources/openapi3.ts +4 -0
  224. package/src/api/controllers/query/import/tests/index.spec.js +20 -7
  225. package/src/api/controllers/query/index.ts +16 -3
  226. package/src/api/controllers/role.js +10 -0
  227. package/src/api/controllers/screen.js +13 -1
  228. package/src/api/controllers/static/index.js +28 -15
  229. package/src/api/controllers/table/external.js +2 -0
  230. package/src/api/controllers/table/index.js +12 -0
  231. package/src/api/controllers/table/utils.ts +4 -4
  232. package/src/api/controllers/view/index.js +76 -6
  233. package/src/api/index.js +2 -4
  234. package/src/api/routes/analytics.js +1 -3
  235. package/src/api/routes/public/utils/Endpoint.ts +1 -1
  236. package/src/api/routes/tests/__snapshots__/datasource.spec.js.snap +5 -1
  237. package/src/api/routes/tests/application.spec.js +64 -4
  238. package/src/api/routes/tests/automation.spec.js +168 -60
  239. package/src/api/routes/tests/backup.spec.js +2 -0
  240. package/src/api/routes/tests/data/export.txt +1 -0
  241. package/src/api/routes/tests/datasource.spec.js +5 -0
  242. package/src/api/routes/tests/deployment.spec.js +25 -0
  243. package/src/api/routes/tests/dev.spec.js +40 -0
  244. package/src/api/routes/tests/layout.spec.js +4 -0
  245. package/src/api/routes/tests/query.spec.js +56 -13
  246. package/src/api/routes/tests/role.spec.js +40 -7
  247. package/src/api/routes/tests/row.spec.js +2 -3
  248. package/src/api/routes/tests/screen.spec.js +30 -4
  249. package/src/api/routes/tests/static.spec.js +120 -54
  250. package/src/api/routes/tests/table.spec.js +102 -38
  251. package/src/api/routes/tests/view.spec.js +222 -43
  252. package/src/app.ts +18 -9
  253. package/src/automations/index.js +4 -0
  254. package/src/automations/tests/delay.spec.js +4 -0
  255. package/src/environment.js +5 -2
  256. package/src/migrations/functions/backfill/app/automations.ts +26 -0
  257. package/src/migrations/functions/backfill/app/datasources.ts +22 -0
  258. package/src/migrations/functions/backfill/app/layouts.ts +29 -0
  259. package/src/migrations/functions/backfill/app/queries.ts +33 -0
  260. package/src/migrations/functions/backfill/app/roles.ts +22 -0
  261. package/src/migrations/functions/backfill/app/screens.ts +22 -0
  262. package/src/migrations/functions/backfill/app/tables.ts +36 -0
  263. package/src/migrations/functions/backfill/app.ts +148 -0
  264. package/src/migrations/functions/backfill/global/configs.ts +66 -0
  265. package/src/migrations/functions/backfill/global/quotas.ts +60 -0
  266. package/src/migrations/functions/backfill/global/users.ts +49 -0
  267. package/src/migrations/functions/backfill/global.ts +194 -0
  268. package/src/migrations/functions/backfill/index.ts +7 -0
  269. package/src/migrations/functions/backfill/installation.ts +51 -0
  270. package/src/migrations/index.ts +120 -51
  271. package/src/migrations/tests/helpers.ts +40 -0
  272. package/src/migrations/tests/index.spec.ts +132 -0
  273. package/src/migrations/tests/structures.ts +66 -0
  274. package/src/module.d.ts +0 -1
  275. package/src/tests/utilities/TestConfiguration.js +138 -90
  276. package/src/tests/utilities/structures.js +71 -0
  277. package/tsconfig.build.json +20 -5
  278. package/tsconfig.json +22 -17
  279. package/builder/assets/index.107ba2e5.js +0 -1315
  280. package/coverage/lcov-report/api/controllers/analytics.js.html +0 -202
  281. package/src/api/controllers/analytics.js +0 -39
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">39.92% </span>
26
+ <span class="strong">43.1% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>109/273</span>
28
+ <span class='fraction'>122/283</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">25.78% </span>
33
+ <span class="strong">29.34% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>41/159</span>
35
+ <span class='fraction'>49/167</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">48.71% </span>
40
+ <span class="strong">51.28% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>19/39</span>
42
+ <span class='fraction'>20/39</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">39.77% </span>
47
+ <span class="strong">43.01% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>107/269</span>
49
+ <span class='fraction'>120/279</span>
50
50
  </div>
51
51
 
52
52
 
@@ -95,32 +95,32 @@
95
95
 
96
96
  <tr>
97
97
  <td class="file low" data-value="external.js"><a href="external.js.html">external.js</a></td>
98
- <td data-value="7.97" class="pic low">
99
- <div class="chart"><div class="cover-fill" style="width: 7%"></div><div class="cover-empty" style="width: 93%"></div></div>
98
+ <td data-value="8.57" class="pic low">
99
+ <div class="chart"><div class="cover-fill" style="width: 8%"></div><div class="cover-empty" style="width: 92%"></div></div>
100
100
  </td>
101
- <td data-value="7.97" class="pct low">7.97%</td>
102
- <td data-value="138" class="abs low">11/138</td>
101
+ <td data-value="8.57" class="pct low">8.57%</td>
102
+ <td data-value="140" class="abs low">12/140</td>
103
103
  <td data-value="0" class="pct low">0%</td>
104
104
  <td data-value="79" class="abs low">0/79</td>
105
105
  <td data-value="0" class="pct low">0%</td>
106
106
  <td data-value="14" class="abs low">0/14</td>
107
- <td data-value="7.97" class="pct low">7.97%</td>
108
- <td data-value="138" class="abs low">11/138</td>
107
+ <td data-value="8.57" class="pct low">8.57%</td>
108
+ <td data-value="140" class="abs low">12/140</td>
109
109
  </tr>
110
110
 
111
111
  <tr>
112
- <td class="file medium" data-value="index.js"><a href="index.js.html">index.js</a></td>
113
- <td data-value="77.19" class="pic medium">
114
- <div class="chart"><div class="cover-fill" style="width: 77%"></div><div class="cover-empty" style="width: 23%"></div></div>
112
+ <td class="file high" data-value="index.js"><a href="index.js.html">index.js</a></td>
113
+ <td data-value="86.15" class="pic high">
114
+ <div class="chart"><div class="cover-fill" style="width: 86%"></div><div class="cover-empty" style="width: 14%"></div></div>
115
115
  </td>
116
- <td data-value="77.19" class="pct medium">77.19%</td>
117
- <td data-value="57" class="abs medium">44/57</td>
118
- <td data-value="73.91" class="pct medium">73.91%</td>
119
- <td data-value="23" class="abs medium">17/23</td>
120
- <td data-value="66.66" class="pct medium">66.66%</td>
121
- <td data-value="9" class="abs medium">6/9</td>
122
- <td data-value="78.57" class="pct medium">78.57%</td>
123
- <td data-value="56" class="abs medium">44/56</td>
116
+ <td data-value="86.15" class="pct high">86.15%</td>
117
+ <td data-value="65" class="abs high">56/65</td>
118
+ <td data-value="80.64" class="pct high">80.64%</td>
119
+ <td data-value="31" class="abs high">25/31</td>
120
+ <td data-value="77.77" class="pct medium">77.77%</td>
121
+ <td data-value="9" class="abs medium">7/9</td>
122
+ <td data-value="87.5" class="pct high">87.5%</td>
123
+ <td data-value="64" class="abs high">56/64</td>
124
124
  </tr>
125
125
 
126
126
  </tbody>
@@ -131,7 +131,7 @@
131
131
  <div class='footer quiet pad2 space-top1 center small'>
132
132
  Code coverage generated by
133
133
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
134
- at Fri Jun 10 2022 13:42:57 GMT+0000 (Coordinated Universal Time)
134
+ at Mon Jun 13 2022 15:58:57 GMT+0000 (Coordinated Universal Time)
135
135
  </div>
136
136
  <script src="../../../prettify.js"></script>
137
137
  <script>
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">77.19% </span>
26
+ <span class="strong">86.15% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>44/57</span>
28
+ <span class='fraction'>56/65</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">73.91% </span>
33
+ <span class="strong">80.64% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>17/23</span>
35
+ <span class='fraction'>25/31</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">66.66% </span>
40
+ <span class="strong">77.77% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>6/9</span>
42
+ <span class='fraction'>7/9</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">78.57% </span>
47
+ <span class="strong">87.5% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>44/56</span>
49
+ <span class='fraction'>56/64</span>
50
50
  </div>
51
51
 
52
52
 
@@ -61,7 +61,7 @@
61
61
  </div>
62
62
  </template>
63
63
  </div>
64
- <div class='status-line medium'></div>
64
+ <div class='status-line high'></div>
65
65
  <pre><table class="coverage">
66
66
  <tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
67
67
  <a name='L2'></a><a href='#L2'>2</a>
@@ -162,28 +162,41 @@
162
162
  <a name='L97'></a><a href='#L97'>97</a>
163
163
  <a name='L98'></a><a href='#L98'>98</a>
164
164
  <a name='L99'></a><a href='#L99'>99</a>
165
- <a name='L100'></a><a href='#L100'>100</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">41x</span>
166
- <span class="cline-any cline-yes">41x</span>
167
- <span class="cline-any cline-yes">41x</span>
168
- <span class="cline-any cline-yes">41x</span>
169
- <span class="cline-any cline-yes">41x</span>
170
- <span class="cline-any cline-yes">41x</span>
171
- <span class="cline-any cline-yes">41x</span>
172
- <span class="cline-any cline-neutral">&nbsp;</span>
173
- <span class="cline-any cline-neutral">&nbsp;</span>
174
- <span class="cline-any cline-yes">108x</span>
175
- <span class="cline-any cline-yes">105x</span>
176
- <span class="cline-any cline-neutral">&nbsp;</span>
177
- <span class="cline-any cline-yes">108x</span>
165
+ <a name='L100'></a><a href='#L100'>100</a>
166
+ <a name='L101'></a><a href='#L101'>101</a>
167
+ <a name='L102'></a><a href='#L102'>102</a>
168
+ <a name='L103'></a><a href='#L103'>103</a>
169
+ <a name='L104'></a><a href='#L104'>104</a>
170
+ <a name='L105'></a><a href='#L105'>105</a>
171
+ <a name='L106'></a><a href='#L106'>106</a>
172
+ <a name='L107'></a><a href='#L107'>107</a>
173
+ <a name='L108'></a><a href='#L108'>108</a>
174
+ <a name='L109'></a><a href='#L109'>109</a>
175
+ <a name='L110'></a><a href='#L110'>110</a>
176
+ <a name='L111'></a><a href='#L111'>111</a>
177
+ <a name='L112'></a><a href='#L112'>112</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">44x</span>
178
+ <span class="cline-any cline-yes">44x</span>
179
+ <span class="cline-any cline-yes">44x</span>
180
+ <span class="cline-any cline-yes">44x</span>
181
+ <span class="cline-any cline-yes">44x</span>
182
+ <span class="cline-any cline-yes">44x</span>
183
+ <span class="cline-any cline-yes">44x</span>
184
+ <span class="cline-any cline-yes">44x</span>
185
+ <span class="cline-any cline-neutral">&nbsp;</span>
186
+ <span class="cline-any cline-neutral">&nbsp;</span>
187
+ <span class="cline-any cline-yes">132x</span>
188
+ <span class="cline-any cline-yes">128x</span>
189
+ <span class="cline-any cline-neutral">&nbsp;</span>
190
+ <span class="cline-any cline-yes">132x</span>
178
191
  <span class="cline-any cline-no">&nbsp;</span>
179
- <span class="cline-any cline-yes">108x</span>
192
+ <span class="cline-any cline-yes">132x</span>
180
193
  <span class="cline-any cline-no">&nbsp;</span>
181
194
  <span class="cline-any cline-neutral">&nbsp;</span>
182
- <span class="cline-any cline-yes">108x</span>
195
+ <span class="cline-any cline-yes">132x</span>
183
196
  <span class="cline-any cline-neutral">&nbsp;</span>
184
197
  <span class="cline-any cline-neutral">&nbsp;</span>
185
198
  <span class="cline-any cline-neutral">&nbsp;</span>
186
- <span class="cline-any cline-yes">41x</span>
199
+ <span class="cline-any cline-yes">44x</span>
187
200
  <span class="cline-any cline-yes">2x</span>
188
201
  <span class="cline-any cline-neutral">&nbsp;</span>
189
202
  <span class="cline-any cline-yes">2x</span>
@@ -211,23 +224,34 @@
211
224
  <span class="cline-any cline-yes">2x</span>
212
225
  <span class="cline-any cline-neutral">&nbsp;</span>
213
226
  <span class="cline-any cline-neutral">&nbsp;</span>
214
- <span class="cline-any cline-yes">41x</span>
215
- <span class="cline-any cline-yes">20x</span>
216
- <span class="cline-any cline-yes">20x</span>
227
+ <span class="cline-any cline-yes">44x</span>
228
+ <span class="cline-any cline-yes">22x</span>
229
+ <span class="cline-any cline-yes">22x</span>
217
230
  <span class="cline-any cline-neutral">&nbsp;</span>
218
231
  <span class="cline-any cline-neutral">&nbsp;</span>
219
- <span class="cline-any cline-yes">41x</span>
220
- <span class="cline-any cline-yes">105x</span>
221
- <span class="cline-any cline-yes">105x</span>
222
- <span class="cline-any cline-yes">105x</span>
223
- <span class="cline-any cline-yes">105x</span>
224
- <span class="cline-any cline-yes">105x</span>
225
- <span class="cline-any cline-yes">105x</span>
232
+ <span class="cline-any cline-yes">44x</span>
233
+ <span class="cline-any cline-yes">128x</span>
234
+ <span class="cline-any cline-yes">128x</span>
226
235
  <span class="cline-any cline-neutral">&nbsp;</span>
227
- <span class="cline-any cline-yes">105x</span>
236
+ <span class="cline-any cline-yes">128x</span>
237
+ <span class="cline-any cline-yes">128x</span>
238
+ <span class="cline-any cline-yes">128x</span>
239
+ <span class="cline-any cline-yes">122x</span>
240
+ <span class="cline-any cline-neutral">&nbsp;</span>
241
+ <span class="cline-any cline-yes">6x</span>
242
+ <span class="cline-any cline-neutral">&nbsp;</span>
243
+ <span class="cline-any cline-yes">128x</span>
244
+ <span class="cline-any cline-yes">1x</span>
228
245
  <span class="cline-any cline-neutral">&nbsp;</span>
246
+ <span class="cline-any cline-yes">128x</span>
247
+ <span class="cline-any cline-yes">128x</span>
248
+ <span class="cline-any cline-yes">128x</span>
229
249
  <span class="cline-any cline-neutral">&nbsp;</span>
230
- <span class="cline-any cline-yes">41x</span>
250
+ <span class="cline-any cline-yes">128x</span>
251
+ <span class="cline-any cline-neutral">&nbsp;</span>
252
+ <span class="cline-any cline-neutral">&nbsp;</span>
253
+ <span class="cline-any cline-yes">44x</span>
254
+ <span class="cline-any cline-yes">3x</span>
231
255
  <span class="cline-any cline-yes">3x</span>
232
256
  <span class="cline-any cline-yes">3x</span>
233
257
  <span class="cline-any cline-yes">3x</span>
@@ -238,17 +262,17 @@
238
262
  <span class="cline-any cline-yes">3x</span>
239
263
  <span class="cline-any cline-neutral">&nbsp;</span>
240
264
  <span class="cline-any cline-neutral">&nbsp;</span>
241
- <span class="cline-any cline-yes">41x</span>
242
- <span class="cline-any cline-no">&nbsp;</span>
243
- <span class="cline-any cline-no">&nbsp;</span>
265
+ <span class="cline-any cline-yes">44x</span>
266
+ <span class="cline-any cline-yes">1x</span>
267
+ <span class="cline-any cline-yes">1x</span>
244
268
  <span class="cline-any cline-neutral">&nbsp;</span>
245
269
  <span class="cline-any cline-neutral">&nbsp;</span>
246
270
  <span class="cline-any cline-neutral">&nbsp;</span>
247
- <span class="cline-any cline-no">&nbsp;</span>
248
- <span class="cline-any cline-no">&nbsp;</span>
271
+ <span class="cline-any cline-yes">1x</span>
272
+ <span class="cline-any cline-yes">1x</span>
249
273
  <span class="cline-any cline-neutral">&nbsp;</span>
250
274
  <span class="cline-any cline-neutral">&nbsp;</span>
251
- <span class="cline-any cline-yes">41x</span>
275
+ <span class="cline-any cline-yes">44x</span>
252
276
  <span class="cline-any cline-neutral">&nbsp;</span>
253
277
  <span class="cline-any cline-yes">1x</span>
254
278
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -268,6 +292,7 @@ const { isExternalTable, isSQL } = require("../../../integrations/utils")
268
292
  const { getDatasourceParams } = require("../../../db/utils")
269
293
  const { getAppDB } = require("@budibase/backend-core/context")
270
294
  const { getTable, getAllInternalTables } = require("./utils")
295
+ const { events } = require("@budibase/backend-core")
271
296
  &nbsp;
272
297
  function pickApi({ tableId, table }) {
273
298
  if (table &amp;&amp; !tableId) {
@@ -318,7 +343,17 @@ exports.find = async function (ctx) {
318
343
  exports.save = async function (ctx) {
319
344
  const appId = ctx.appId
320
345
  const table = ctx.request.body
346
+ const importFormat =
347
+ table.dataImport &amp;&amp; table.dataImport.csvString ? "csv" : undefined
321
348
  const savedTable = await pickApi({ table }).save(ctx)
349
+ if (!table._id) {
350
+ await events.table.created(savedTable)
351
+ } else {
352
+ await events.table.updated(savedTable)
353
+ }
354
+ if (importFormat) {
355
+ await events.table.imported(savedTable, importFormat)
356
+ }
322
357
  ctx.status = 200
323
358
  ctx.message = `Table ${table.name} saved successfully.`
324
359
  ctx.eventEmitter &amp;&amp;
@@ -330,6 +365,7 @@ exports.destroy = async function (ctx) {
330
365
  const appId = ctx.appId
331
366
  const tableId = ctx.params.tableId
332
367
  const deletedTable = await pickApi({ tableId }).destroy(ctx)
368
+ await events.table.deleted(deletedTable)
333
369
  ctx.eventEmitter &amp;&amp;
334
370
  ctx.eventEmitter.emitTable(`table:delete`, appId, deletedTable)
335
371
  ctx.status = 200
@@ -337,14 +373,14 @@ exports.destroy = async function (ctx) {
337
373
  ctx.body = { message: `Table ${tableId} deleted.` }
338
374
  }
339
375
  &nbsp;
340
- exports.bulkImport = <span class="fstat-no" title="function not covered" >as</span>ync function (ctx) {
341
- const tableId = <span class="cstat-no" title="statement not covered" >ctx.params.tableId</span>
342
- <span class="cstat-no" title="statement not covered" > await pickApi({ tableId }).bulkImport(ctx)</span>
376
+ exports.bulkImport = async function (ctx) {
377
+ const tableId = ctx.params.tableId
378
+ await pickApi({ tableId }).bulkImport(ctx)
343
379
  // right now we don't trigger anything for bulk import because it
344
380
  // can only be done in the builder, but in the future we may need to
345
381
  // think about events for bulk items
346
- <span class="cstat-no" title="statement not covered" > ctx.status = 200</span>
347
- <span class="cstat-no" title="statement not covered" > ctx.body = { message: `Bulk rows created.` }</span>
382
+ ctx.status = 200
383
+ ctx.body = { message: `Bulk rows created.` }
348
384
  }
349
385
  &nbsp;
350
386
  exports.validateCSVSchema = async function (ctx) {
@@ -367,7 +403,7 @@ exports.validateCSVSchema = async function (ctx) {
367
403
  <div class='footer quiet pad2 space-top1 center small'>
368
404
  Code coverage generated by
369
405
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
370
- at Fri Jun 10 2022 13:42:57 GMT+0000 (Coordinated Universal Time)
406
+ at Mon Jun 13 2022 15:58:57 GMT+0000 (Coordinated Universal Time)
371
407
  </div>
372
408
  <script src="../../../prettify.js"></script>
373
409
  <script>
@@ -103,15 +103,15 @@
103
103
  <a name='L38'></a><a href='#L38'>38</a>
104
104
  <a name='L39'></a><a href='#L39'>39</a>
105
105
  <a name='L40'></a><a href='#L40'>40</a>
106
- <a name='L41'></a><a href='#L41'>41</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">24x</span>
107
- <span class="cline-any cline-yes">24x</span>
108
- <span class="cline-any cline-yes">24x</span>
106
+ <a name='L41'></a><a href='#L41'>41</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">27x</span>
107
+ <span class="cline-any cline-yes">27x</span>
108
+ <span class="cline-any cline-yes">27x</span>
109
109
  <span class="cline-any cline-neutral">&nbsp;</span>
110
110
  <span class="cline-any cline-neutral">&nbsp;</span>
111
111
  <span class="cline-any cline-neutral">&nbsp;</span>
112
- <span class="cline-any cline-yes">24x</span>
112
+ <span class="cline-any cline-yes">27x</span>
113
113
  <span class="cline-any cline-neutral">&nbsp;</span>
114
- <span class="cline-any cline-yes">24x</span>
114
+ <span class="cline-any cline-yes">27x</span>
115
115
  <span class="cline-any cline-yes">1x</span>
116
116
  <span class="cline-any cline-neutral">&nbsp;</span>
117
117
  <span class="cline-any cline-yes">1x</span>
@@ -190,7 +190,7 @@ exports.downloadTemplate = async function (ctx) {
190
190
  <div class='footer quiet pad2 space-top1 center small'>
191
191
  Code coverage generated by
192
192
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
193
- at Fri Jun 10 2022 13:42:57 GMT+0000 (Coordinated Universal Time)
193
+ at Mon Jun 13 2022 15:58:57 GMT+0000 (Coordinated Universal Time)
194
194
  </div>
195
195
  <script src="../../prettify.js"></script>
196
196
  <script>
@@ -301,19 +301,19 @@
301
301
  <span class="cline-any cline-neutral">&nbsp;</span>
302
302
  <span class="cline-any cline-neutral">&nbsp;</span>
303
303
  <span class="cline-any cline-neutral">&nbsp;</span>
304
- <span class="cline-any cline-yes">41x</span>
305
- <span class="cline-any cline-yes">41x</span>
306
- <span class="cline-any cline-yes">41x</span>
307
- <span class="cline-any cline-yes">41x</span>
308
- <span class="cline-any cline-yes">41x</span>
309
- <span class="cline-any cline-yes">41x</span>
304
+ <span class="cline-any cline-yes">44x</span>
305
+ <span class="cline-any cline-yes">44x</span>
306
+ <span class="cline-any cline-yes">44x</span>
307
+ <span class="cline-any cline-yes">44x</span>
308
+ <span class="cline-any cline-yes">44x</span>
309
+ <span class="cline-any cline-yes">44x</span>
310
310
  <span class="cline-any cline-neutral">&nbsp;</span>
311
311
  <span class="cline-any cline-neutral">&nbsp;</span>
312
312
  <span class="cline-any cline-neutral">&nbsp;</span>
313
313
  <span class="cline-any cline-neutral">&nbsp;</span>
314
- <span class="cline-any cline-yes">41x</span>
315
- <span class="cline-any cline-yes">41x</span>
316
- <span class="cline-any cline-yes">41x</span>
314
+ <span class="cline-any cline-yes">44x</span>
315
+ <span class="cline-any cline-yes">44x</span>
316
+ <span class="cline-any cline-yes">44x</span>
317
317
  <span class="cline-any cline-neutral">&nbsp;</span>
318
318
  <span class="cline-any cline-neutral">&nbsp;</span>
319
319
  <span class="cline-any cline-yes">2x</span>
@@ -354,7 +354,7 @@
354
354
  <span class="cline-any cline-no">&nbsp;</span>
355
355
  <span class="cline-any cline-neutral">&nbsp;</span>
356
356
  <span class="cline-any cline-neutral">&nbsp;</span>
357
- <span class="cline-any cline-yes">41x</span>
357
+ <span class="cline-any cline-yes">44x</span>
358
358
  <span class="cline-any cline-neutral">&nbsp;</span>
359
359
  <span class="cline-any cline-no">&nbsp;</span>
360
360
  <span class="cline-any cline-no">&nbsp;</span>
@@ -368,7 +368,7 @@
368
368
  <span class="cline-any cline-no">&nbsp;</span>
369
369
  <span class="cline-any cline-neutral">&nbsp;</span>
370
370
  <span class="cline-any cline-neutral">&nbsp;</span>
371
- <span class="cline-any cline-yes">41x</span>
371
+ <span class="cline-any cline-yes">44x</span>
372
372
  <span class="cline-any cline-no">&nbsp;</span>
373
373
  <span class="cline-any cline-neutral">&nbsp;</span>
374
374
  <span class="cline-any cline-no">&nbsp;</span>
@@ -441,7 +441,7 @@
441
441
  <span class="cline-any cline-neutral">&nbsp;</span>
442
442
  <span class="cline-any cline-neutral">&nbsp;</span>
443
443
  <span class="cline-any cline-neutral">&nbsp;</span>
444
- <span class="cline-any cline-yes">41x</span>
444
+ <span class="cline-any cline-yes">44x</span>
445
445
  <span class="cline-any cline-yes">2x</span>
446
446
  <span class="cline-any cline-yes">2x</span>
447
447
  <span class="cline-any cline-yes">2x</span>
@@ -461,7 +461,7 @@
461
461
  <span class="cline-any cline-yes">2x</span>
462
462
  <span class="cline-any cline-neutral">&nbsp;</span>
463
463
  <span class="cline-any cline-neutral">&nbsp;</span>
464
- <span class="cline-any cline-yes">41x</span>
464
+ <span class="cline-any cline-yes">44x</span>
465
465
  <span class="cline-any cline-neutral">&nbsp;</span>
466
466
  <span class="cline-any cline-no">&nbsp;</span>
467
467
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -471,7 +471,7 @@
471
471
  <span class="cline-any cline-no">&nbsp;</span>
472
472
  <span class="cline-any cline-neutral">&nbsp;</span>
473
473
  <span class="cline-any cline-neutral">&nbsp;</span>
474
- <span class="cline-any cline-yes">41x</span>
474
+ <span class="cline-any cline-yes">44x</span>
475
475
  <span class="cline-any cline-yes">1x</span>
476
476
  <span class="cline-any cline-yes">1x</span>
477
477
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -483,7 +483,7 @@
483
483
  <span class="cline-any cline-yes">1x</span>
484
484
  <span class="cline-any cline-neutral">&nbsp;</span>
485
485
  <span class="cline-any cline-neutral">&nbsp;</span>
486
- <span class="cline-any cline-yes">41x</span>
486
+ <span class="cline-any cline-yes">44x</span>
487
487
  <span class="cline-any cline-yes">1x</span>
488
488
  <span class="cline-any cline-yes">1x</span>
489
489
  <span class="cline-any cline-yes">1x</span>
@@ -496,11 +496,11 @@
496
496
  <span class="cline-any cline-neutral">&nbsp;</span>
497
497
  <span class="cline-any cline-neutral">&nbsp;</span>
498
498
  <span class="cline-any cline-neutral">&nbsp;</span>
499
- <span class="cline-any cline-yes">41x</span>
499
+ <span class="cline-any cline-yes">44x</span>
500
500
  <span class="cline-any cline-yes">1x</span>
501
501
  <span class="cline-any cline-neutral">&nbsp;</span>
502
502
  <span class="cline-any cline-neutral">&nbsp;</span>
503
- <span class="cline-any cline-yes">41x</span>
503
+ <span class="cline-any cline-yes">44x</span>
504
504
  <span class="cline-any cline-no">&nbsp;</span>
505
505
  <span class="cline-any cline-no">&nbsp;</span>
506
506
  <span class="cline-any cline-no">&nbsp;</span>
@@ -519,7 +519,7 @@
519
519
  <span class="cline-any cline-no">&nbsp;</span>
520
520
  <span class="cline-any cline-neutral">&nbsp;</span>
521
521
  <span class="cline-any cline-neutral">&nbsp;</span>
522
- <span class="cline-any cline-yes">41x</span>
522
+ <span class="cline-any cline-yes">44x</span>
523
523
  <span class="cline-any cline-no">&nbsp;</span>
524
524
  <span class="cline-any cline-no">&nbsp;</span>
525
525
  <span class="cline-any cline-no">&nbsp;</span>
@@ -772,7 +772,7 @@ exports.getFlags = <span class="fstat-no" title="function not covered" >as</span
772
772
  <div class='footer quiet pad2 space-top1 center small'>
773
773
  Code coverage generated by
774
774
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
775
- at Fri Jun 10 2022 13:42:57 GMT+0000 (Coordinated Universal Time)
775
+ at Mon Jun 13 2022 15:58:57 GMT+0000 (Coordinated Universal Time)
776
776
  </div>
777
777
  <script src="../../prettify.js"></script>
778
778
  <script>
@@ -89,29 +89,29 @@
89
89
  <a name='L24'></a><a href='#L24'>24</a>
90
90
  <a name='L25'></a><a href='#L25'>25</a>
91
91
  <a name='L26'></a><a href='#L26'>26</a>
92
- <a name='L27'></a><a href='#L27'>27</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">41x</span>
93
- <span class="cline-any cline-yes">2x</span>
94
- <span class="cline-any cline-neutral">&nbsp;</span>
95
- <span class="cline-any cline-yes">1x</span>
96
- <span class="cline-any cline-yes">1x</span>
92
+ <a name='L27'></a><a href='#L27'>27</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">44x</span>
93
+ <span class="cline-any cline-yes">4x</span>
97
94
  <span class="cline-any cline-neutral">&nbsp;</span>
98
95
  <span class="cline-any cline-yes">2x</span>
99
96
  <span class="cline-any cline-yes">2x</span>
100
97
  <span class="cline-any cline-neutral">&nbsp;</span>
98
+ <span class="cline-any cline-yes">4x</span>
99
+ <span class="cline-any cline-yes">4x</span>
101
100
  <span class="cline-any cline-neutral">&nbsp;</span>
102
101
  <span class="cline-any cline-neutral">&nbsp;</span>
103
- <span class="cline-any cline-yes">2x</span>
104
102
  <span class="cline-any cline-neutral">&nbsp;</span>
103
+ <span class="cline-any cline-yes">4x</span>
105
104
  <span class="cline-any cline-neutral">&nbsp;</span>
106
105
  <span class="cline-any cline-neutral">&nbsp;</span>
107
- <span class="cline-any cline-yes">1x</span>
106
+ <span class="cline-any cline-neutral">&nbsp;</span>
107
+ <span class="cline-any cline-yes">2x</span>
108
108
  <span class="cline-any cline-neutral">&nbsp;</span>
109
109
  <span class="cline-any cline-neutral">&nbsp;</span>
110
- <span class="cline-any cline-yes">41x</span>
111
- <span class="cline-any cline-yes">1x</span>
110
+ <span class="cline-any cline-yes">44x</span>
111
+ <span class="cline-any cline-yes">2x</span>
112
112
  <span class="cline-any cline-neutral">&nbsp;</span>
113
113
  <span class="cline-any cline-neutral">&nbsp;</span>
114
- <span class="cline-any cline-yes">41x</span>
114
+ <span class="cline-any cline-yes">44x</span>
115
115
  <span class="cline-any cline-neutral">&nbsp;</span>
116
116
  <span class="cline-any cline-neutral">&nbsp;</span>
117
117
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -148,7 +148,7 @@ exports.ExportFormats = {
148
148
  <div class='footer quiet pad2 space-top1 center small'>
149
149
  Code coverage generated by
150
150
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
151
- at Fri Jun 10 2022 13:42:57 GMT+0000 (Coordinated Universal Time)
151
+ at Mon Jun 13 2022 15:58:57 GMT+0000 (Coordinated Universal Time)
152
152
  </div>
153
153
  <script src="../../../prettify.js"></script>
154
154
  <script>
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">75.86% </span>
26
+ <span class="strong">78.57% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>154/203</span>
28
+ <span class='fraction'>187/238</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">65.93% </span>
33
+ <span class="strong">77.86% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>60/91</span>
35
+ <span class='fraction'>102/131</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">76.92% </span>
40
+ <span class="strong">79.31% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>20/26</span>
42
+ <span class='fraction'>23/29</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">76.11% </span>
47
+ <span class="strong">78.81% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>153/201</span>
49
+ <span class='fraction'>186/236</span>
50
50
  </div>
51
51
 
52
52
 
@@ -95,17 +95,17 @@
95
95
 
96
96
  <tr>
97
97
  <td class="file high" data-value="index.js"><a href="index.js.html">index.js</a></td>
98
- <td data-value="88.4" class="pic high">
99
- <div class="chart"><div class="cover-fill" style="width: 88%"></div><div class="cover-empty" style="width: 12%"></div></div>
98
+ <td data-value="90.38" class="pic high">
99
+ <div class="chart"><div class="cover-fill" style="width: 90%"></div><div class="cover-empty" style="width: 10%"></div></div>
100
100
  </td>
101
- <td data-value="88.4" class="pct high">88.4%</td>
102
- <td data-value="69" class="abs high">61/69</td>
103
- <td data-value="72" class="pct medium">72%</td>
104
- <td data-value="25" class="abs medium">18/25</td>
105
- <td data-value="62.5" class="pct medium">62.5%</td>
106
- <td data-value="8" class="abs medium">5/8</td>
107
- <td data-value="89.7" class="pct high">89.7%</td>
108
- <td data-value="68" class="abs high">61/68</td>
101
+ <td data-value="90.38" class="pct high">90.38%</td>
102
+ <td data-value="104" class="abs high">94/104</td>
103
+ <td data-value="90.76" class="pct high">90.76%</td>
104
+ <td data-value="65" class="abs high">59/65</td>
105
+ <td data-value="72.72" class="pct medium">72.72%</td>
106
+ <td data-value="11" class="abs medium">8/11</td>
107
+ <td data-value="91.26" class="pct high">91.26%</td>
108
+ <td data-value="103" class="abs high">94/103</td>
109
109
  </tr>
110
110
 
111
111
  <tr>
@@ -130,8 +130,8 @@
130
130
  </td>
131
131
  <td data-value="92.5" class="pct high">92.5%</td>
132
132
  <td data-value="40" class="abs high">37/40</td>
133
- <td data-value="86.11" class="pct high">86.11%</td>
134
- <td data-value="36" class="abs high">31/36</td>
133
+ <td data-value="88.88" class="pct high">88.88%</td>
134
+ <td data-value="36" class="abs high">32/36</td>
135
135
  <td data-value="100" class="pct high">100%</td>
136
136
  <td data-value="5" class="abs high">5/5</td>
137
137
  <td data-value="92.5" class="pct high">92.5%</td>
@@ -146,7 +146,7 @@
146
146
  <div class='footer quiet pad2 space-top1 center small'>
147
147
  Code coverage generated by
148
148
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
149
- at Fri Jun 10 2022 13:42:57 GMT+0000 (Coordinated Universal Time)
149
+ at Mon Jun 13 2022 15:58:57 GMT+0000 (Coordinated Universal Time)
150
150
  </div>
151
151
  <script src="../../../prettify.js"></script>
152
152
  <script>