@budibase/server 0.9.185-alpha.2 → 0.9.185-alpha.20

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 (251) hide show
  1. package/Dockerfile +7 -1
  2. package/__mocks__/oracledb.ts +31 -0
  3. package/builder/assets/bb-space-man.5be51a45.svg +290 -0
  4. package/builder/assets/index.7d405e74.css +1 -0
  5. package/builder/assets/index.83e08172.js +1316 -0
  6. package/builder/assets/oracle.66592424.png +0 -0
  7. package/builder/assets/vendor.470042a4.js +152 -0
  8. package/builder/assets/vendor.5e1fe644.css +1 -0
  9. package/builder/index.html +4 -4
  10. package/coverage/clover.xml +785 -687
  11. package/coverage/coverage-final.json +90 -88
  12. package/coverage/lcov-report/api/controllers/analytics.js.html +2 -2
  13. package/coverage/lcov-report/api/controllers/apikeys.js.html +2 -2
  14. package/coverage/lcov-report/api/controllers/application.js.html +43 -13
  15. package/coverage/lcov-report/api/controllers/auth.js.html +7 -7
  16. package/coverage/lcov-report/api/controllers/automation.js.html +3 -3
  17. package/coverage/lcov-report/api/controllers/backup.js.html +1 -1
  18. package/coverage/lcov-report/api/controllers/cloud.js.html +1 -1
  19. package/coverage/lcov-report/api/controllers/component.js.html +4 -4
  20. package/coverage/lcov-report/api/controllers/datasource.js.html +129 -21
  21. package/coverage/lcov-report/api/controllers/dev.js.html +16 -7
  22. package/coverage/lcov-report/api/controllers/hosting.js.html +10 -10
  23. package/coverage/lcov-report/api/controllers/index.html +77 -77
  24. package/coverage/lcov-report/api/controllers/integration.js.html +1 -1
  25. package/coverage/lcov-report/api/controllers/layout.js.html +3 -3
  26. package/coverage/lcov-report/api/controllers/metadata.js.html +3 -3
  27. package/coverage/lcov-report/api/controllers/permission.js.html +3 -3
  28. package/coverage/lcov-report/api/controllers/query.js.html +48 -210
  29. package/coverage/lcov-report/api/controllers/role.js.html +9 -9
  30. package/coverage/lcov-report/api/controllers/routing.js.html +3 -3
  31. package/coverage/lcov-report/api/controllers/row/external.js.html +2 -2
  32. package/coverage/lcov-report/api/controllers/row/index.html +10 -10
  33. package/coverage/lcov-report/api/controllers/row/index.js.html +2 -2
  34. package/coverage/lcov-report/api/controllers/row/internal.js.html +9 -9
  35. package/coverage/lcov-report/api/controllers/row/internalSearch.js.html +2 -2
  36. package/coverage/lcov-report/api/controllers/row/utils.js.html +2 -2
  37. package/coverage/lcov-report/api/controllers/screen.js.html +2 -2
  38. package/coverage/lcov-report/api/controllers/script.js.html +3 -3
  39. package/coverage/lcov-report/api/controllers/table/external.js.html +29 -8
  40. package/coverage/lcov-report/api/controllers/table/index.html +20 -20
  41. package/coverage/lcov-report/api/controllers/table/index.js.html +3 -3
  42. package/coverage/lcov-report/api/controllers/table/internal.js.html +2 -2
  43. package/coverage/lcov-report/api/controllers/table/utils.js.html +8 -8
  44. package/coverage/lcov-report/api/controllers/templates.js.html +4 -4
  45. package/coverage/lcov-report/api/controllers/user.js.html +2 -2
  46. package/coverage/lcov-report/api/controllers/view/exporters.js.html +1 -1
  47. package/coverage/lcov-report/api/controllers/view/index.html +9 -9
  48. package/coverage/lcov-report/api/controllers/view/index.js.html +5 -5
  49. package/coverage/lcov-report/api/controllers/view/utils.js.html +11 -11
  50. package/coverage/lcov-report/api/controllers/view/viewBuilder.js.html +3 -3
  51. package/coverage/lcov-report/api/controllers/webhook.js.html +4 -4
  52. package/coverage/lcov-report/api/index.html +1 -1
  53. package/coverage/lcov-report/api/index.js.html +1 -1
  54. package/coverage/lcov-report/api/routes/analytics.js.html +1 -1
  55. package/coverage/lcov-report/api/routes/apikeys.js.html +1 -1
  56. package/coverage/lcov-report/api/routes/application.js.html +1 -1
  57. package/coverage/lcov-report/api/routes/auth.js.html +1 -1
  58. package/coverage/lcov-report/api/routes/automation.js.html +1 -1
  59. package/coverage/lcov-report/api/routes/backup.js.html +1 -1
  60. package/coverage/lcov-report/api/routes/cloud.js.html +1 -1
  61. package/coverage/lcov-report/api/routes/component.js.html +1 -1
  62. package/coverage/lcov-report/api/routes/datasource.js.html +1 -1
  63. package/coverage/lcov-report/api/routes/deploy.js.html +1 -1
  64. package/coverage/lcov-report/api/routes/dev.js.html +2 -2
  65. package/coverage/lcov-report/api/routes/hosting.js.html +1 -1
  66. package/coverage/lcov-report/api/routes/index.html +4 -4
  67. package/coverage/lcov-report/api/routes/index.js.html +1 -1
  68. package/coverage/lcov-report/api/routes/integration.js.html +1 -1
  69. package/coverage/lcov-report/api/routes/layout.js.html +1 -1
  70. package/coverage/lcov-report/api/routes/metadata.js.html +1 -1
  71. package/coverage/lcov-report/api/routes/permission.js.html +1 -1
  72. package/coverage/lcov-report/api/routes/query.js.html +5 -2
  73. package/coverage/lcov-report/api/routes/role.js.html +1 -1
  74. package/coverage/lcov-report/api/routes/routing.js.html +1 -1
  75. package/coverage/lcov-report/api/routes/row.js.html +1 -1
  76. package/coverage/lcov-report/api/routes/screen.js.html +1 -1
  77. package/coverage/lcov-report/api/routes/script.js.html +1 -1
  78. package/coverage/lcov-report/api/routes/static.js.html +2 -2
  79. package/coverage/lcov-report/api/routes/table.js.html +1 -1
  80. package/coverage/lcov-report/api/routes/templates.js.html +1 -1
  81. package/coverage/lcov-report/api/routes/user.js.html +1 -1
  82. package/coverage/lcov-report/api/routes/view.js.html +1 -1
  83. package/coverage/lcov-report/api/routes/webhook.js.html +1 -1
  84. package/coverage/lcov-report/automations/actions.js.html +2 -2
  85. package/coverage/lcov-report/automations/automationUtils.js.html +3 -3
  86. package/coverage/lcov-report/automations/bullboard.js.html +71 -20
  87. package/coverage/lcov-report/automations/index.html +33 -48
  88. package/coverage/lcov-report/automations/index.js.html +2 -2
  89. package/coverage/lcov-report/automations/steps/bash.js.html +1 -1
  90. package/coverage/lcov-report/automations/steps/createRow.js.html +1 -1
  91. package/coverage/lcov-report/automations/steps/delay.js.html +1 -1
  92. package/coverage/lcov-report/automations/steps/deleteRow.js.html +1 -1
  93. package/coverage/lcov-report/automations/steps/discord.js.html +3 -3
  94. package/coverage/lcov-report/automations/steps/executeQuery.js.html +1 -1
  95. package/coverage/lcov-report/automations/steps/executeScript.js.html +3 -3
  96. package/coverage/lcov-report/automations/steps/filter.js.html +1 -1
  97. package/coverage/lcov-report/automations/steps/index.html +14 -14
  98. package/coverage/lcov-report/automations/steps/integromat.js.html +1 -1
  99. package/coverage/lcov-report/automations/steps/outgoingWebhook.js.html +3 -3
  100. package/coverage/lcov-report/automations/steps/queryRows.js.html +3 -3
  101. package/coverage/lcov-report/automations/steps/sendSmtpEmail.js.html +1 -1
  102. package/coverage/lcov-report/automations/steps/serverLog.js.html +1 -1
  103. package/coverage/lcov-report/automations/steps/slack.js.html +1 -1
  104. package/coverage/lcov-report/automations/steps/updateRow.js.html +1 -1
  105. package/coverage/lcov-report/automations/steps/utils.js.html +7 -7
  106. package/coverage/lcov-report/automations/steps/zapier.js.html +1 -1
  107. package/coverage/lcov-report/automations/triggerInfo/app.js.html +2 -2
  108. package/coverage/lcov-report/automations/triggerInfo/cron.js.html +2 -2
  109. package/coverage/lcov-report/automations/triggerInfo/index.html +1 -1
  110. package/coverage/lcov-report/automations/triggerInfo/index.js.html +8 -8
  111. package/coverage/lcov-report/automations/triggerInfo/rowDeleted.js.html +2 -2
  112. package/coverage/lcov-report/automations/triggerInfo/rowSaved.js.html +2 -2
  113. package/coverage/lcov-report/automations/triggerInfo/rowUpdated.js.html +2 -2
  114. package/coverage/lcov-report/automations/triggerInfo/webhook.js.html +2 -2
  115. package/coverage/lcov-report/automations/triggers.js.html +22 -10
  116. package/coverage/lcov-report/automations/utils.js.html +42 -12
  117. package/coverage/lcov-report/constants/index.html +5 -5
  118. package/coverage/lcov-report/constants/index.js.html +44 -23
  119. package/coverage/lcov-report/constants/layouts.js.html +1 -1
  120. package/coverage/lcov-report/constants/screens.js.html +1 -1
  121. package/coverage/lcov-report/db/client.js.html +2 -2
  122. package/coverage/lcov-report/db/inMemoryView.js.html +2 -2
  123. package/coverage/lcov-report/db/index.html +2 -2
  124. package/coverage/lcov-report/db/index.js.html +1 -1
  125. package/coverage/lcov-report/db/linkedRows/LinkController.js.html +6 -6
  126. package/coverage/lcov-report/db/linkedRows/index.html +10 -10
  127. package/coverage/lcov-report/db/linkedRows/index.js.html +5 -5
  128. package/coverage/lcov-report/db/linkedRows/linkUtils.js.html +6 -6
  129. package/coverage/lcov-report/db/newid.js.html +3 -3
  130. package/coverage/lcov-report/db/utils.js.html +57 -57
  131. package/coverage/lcov-report/events/AutomationEmitter.js.html +6 -6
  132. package/coverage/lcov-report/events/index.html +6 -6
  133. package/coverage/lcov-report/events/index.js.html +1 -1
  134. package/coverage/lcov-report/events/utils.js.html +5 -5
  135. package/coverage/lcov-report/index.html +86 -71
  136. package/coverage/lcov-report/integrations/tests/TestConfiguration.js.html +1 -1
  137. package/coverage/lcov-report/integrations/tests/index.html +1 -1
  138. package/coverage/lcov-report/middleware/appInfo.js.html +2 -2
  139. package/coverage/lcov-report/middleware/authorized.js.html +4 -4
  140. package/coverage/lcov-report/middleware/builder.js.html +16 -7
  141. package/coverage/lcov-report/middleware/currentapp.js.html +6 -6
  142. package/coverage/lcov-report/middleware/index.html +21 -21
  143. package/coverage/lcov-report/middleware/joi-validator.js.html +2 -2
  144. package/coverage/lcov-report/middleware/resourceId.js.html +18 -18
  145. package/coverage/lcov-report/middleware/selfhost.js.html +2 -2
  146. package/coverage/lcov-report/middleware/usageQuota.js.html +4 -4
  147. package/coverage/lcov-report/middleware/utils.js.html +1 -1
  148. package/coverage/lcov-report/{automations/thread.js.html → threads/automation.js.html} +90 -33
  149. package/coverage/lcov-report/threads/index.html +141 -0
  150. package/coverage/lcov-report/threads/index.js.html +278 -0
  151. package/coverage/lcov-report/threads/query.js.html +278 -0
  152. package/coverage/lcov-report/utilities/bcrypt.js.html +1 -1
  153. package/coverage/lcov-report/utilities/budibaseDir.js.html +1 -1
  154. package/coverage/lcov-report/utilities/centralPath.js.html +1 -1
  155. package/coverage/lcov-report/utilities/csvParser.js.html +2 -2
  156. package/coverage/lcov-report/utilities/global.js.html +2 -2
  157. package/coverage/lcov-report/utilities/index.html +21 -21
  158. package/coverage/lcov-report/utilities/index.js.html +12 -9
  159. package/coverage/lcov-report/utilities/queue/inMemoryQueue.js.html +30 -9
  160. package/coverage/lcov-report/utilities/queue/index.html +14 -14
  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 +4 -4
  164. package/coverage/lcov-report/utilities/rowProcessor/index.js.html +2 -2
  165. package/coverage/lcov-report/utilities/rowProcessor/utils.js.html +3 -3
  166. package/coverage/lcov-report/utilities/scriptRunner.js.html +16 -7
  167. package/coverage/lcov-report/utilities/security.js.html +3 -3
  168. package/coverage/lcov-report/utilities/statusCodes.js.html +1 -1
  169. package/coverage/lcov-report/utilities/users.js.html +1 -1
  170. package/coverage/lcov-report/utilities/workerRequests.js.html +5 -5
  171. package/coverage/lcov.info +1247 -1070
  172. package/dist/api/controllers/application.js +11 -1
  173. package/dist/api/controllers/datasource.js +31 -7
  174. package/dist/api/controllers/deploy/index.js +2 -0
  175. package/dist/api/controllers/dev.js +4 -1
  176. package/dist/api/controllers/query.js +27 -57
  177. package/dist/api/controllers/table/external.js +8 -1
  178. package/dist/api/routes/query.js +1 -1
  179. package/dist/app.js +2 -11
  180. package/dist/automations/bullboard.js +37 -10
  181. package/dist/automations/triggers.js +7 -3
  182. package/dist/automations/utils.js +11 -2
  183. package/dist/constants/index.js +6 -0
  184. package/dist/definitions/datasource.js +1 -0
  185. package/dist/environment.js +13 -0
  186. package/dist/integrations/base/IntegrationBase.js +2 -0
  187. package/dist/integrations/base/sql.js +40 -8
  188. package/dist/integrations/index.js +6 -0
  189. package/dist/integrations/mysql.js +3 -1
  190. package/dist/integrations/oracle.js +345 -0
  191. package/dist/integrations/utils.js +17 -2
  192. package/dist/middleware/builder.js +4 -1
  193. package/dist/package.json +11 -6
  194. package/dist/{automations/thread.js → threads/automation.js} +26 -8
  195. package/dist/threads/index.js +64 -0
  196. package/dist/threads/query.js +64 -0
  197. package/dist/tsconfig.tsbuildinfo +1 -1
  198. package/dist/utilities/index.js +1 -0
  199. package/dist/utilities/queue/inMemoryQueue.js +8 -0
  200. package/dist/utilities/scriptRunner.js +4 -1
  201. package/package.json +12 -7
  202. package/scripts/dev/manage.js +1 -0
  203. package/scripts/integrations/oracle/docker-compose.yml +19 -0
  204. package/scripts/integrations/oracle/instantclient/linux/x86-64/basiclite-21.4.zip +0 -0
  205. package/scripts/integrations/oracle/instantclient/linux/x86-64/install.sh +23 -0
  206. package/scripts/integrations/oracle/oracle.md +90 -0
  207. package/scripts/integrations/postgres/docker-compose.yml +3 -3
  208. package/scripts/likeCypress.ts +33 -0
  209. package/src/api/controllers/application.js +11 -1
  210. package/src/api/controllers/datasource.js +45 -9
  211. package/src/api/controllers/deploy/index.js +2 -0
  212. package/src/api/controllers/dev.js +4 -1
  213. package/src/api/controllers/query.js +26 -80
  214. package/src/api/controllers/table/external.js +8 -1
  215. package/src/api/routes/query.js +1 -0
  216. package/src/app.ts +2 -10
  217. package/src/automations/bullboard.js +28 -11
  218. package/src/automations/tests/automation.spec.js +3 -4
  219. package/src/automations/triggers.js +7 -3
  220. package/src/automations/utils.js +12 -2
  221. package/src/constants/index.js +7 -0
  222. package/src/definitions/datasource.ts +1 -0
  223. package/src/environment.js +15 -0
  224. package/src/integrations/airtable.ts +2 -1
  225. package/src/integrations/arangodb.ts +2 -1
  226. package/src/integrations/base/IntegrationBase.ts +6 -0
  227. package/src/integrations/base/datasourcePlus.ts +2 -1
  228. package/src/integrations/base/sql.ts +41 -9
  229. package/src/integrations/couchdb.ts +2 -1
  230. package/src/integrations/dynamodb.ts +2 -1
  231. package/src/integrations/elasticsearch.ts +2 -1
  232. package/src/integrations/index.ts +7 -0
  233. package/src/integrations/mongodb.ts +2 -1
  234. package/src/integrations/mysql.ts +1 -1
  235. package/src/integrations/oracle.ts +445 -0
  236. package/src/integrations/rest.ts +2 -1
  237. package/src/integrations/s3.ts +2 -1
  238. package/src/integrations/tests/oracle.spec.js +94 -0
  239. package/src/integrations/utils.ts +16 -2
  240. package/src/middleware/builder.js +4 -1
  241. package/src/{automations/thread.js → threads/automation.js} +27 -8
  242. package/src/threads/index.js +66 -0
  243. package/src/threads/query.js +66 -0
  244. package/src/utilities/index.js +1 -0
  245. package/src/utilities/queue/inMemoryQueue.js +7 -0
  246. package/src/utilities/scriptRunner.js +4 -1
  247. package/tsconfig.json +1 -1
  248. package/builder/assets/index.0eadd2f5.js +0 -201
  249. package/builder/assets/index.a79ec0ef.css +0 -29
  250. package/builder/assets/vendor.278a305c.js +0 -9
  251. package/builder/assets/vendor.d75d5eb7.css +0 -1
@@ -30,7 +30,7 @@
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">60.94% </span>
33
+ <span class="strong">60.93% </span>
34
34
  <span class="quiet">Branches</span>
35
35
  <span class='fraction'>39/64</span>
36
36
  </div>
@@ -44,7 +44,7 @@
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">82.78% </span>
47
+ <span class="strong">82.77% </span>
48
48
  <span class="quiet">Lines</span>
49
49
  <span class='fraction'>173/209</span>
50
50
  </div>
@@ -1119,7 +1119,7 @@ exports.save = async function (ctx) {
1119
1119
  let inputs = ctx.request.body
1120
1120
  inputs.tableId = ctx.params.tableId
1121
1121
  &nbsp;
1122
- <span class="missing-if-branch" title="else path not taken" >E</span>if (!inputs._rev &amp;&amp; !inputs._id) {
1122
+ if (!inputs._rev &amp;&amp; !inputs._id) {
1123
1123
  inputs._id = generateRowID(inputs.tableId)
1124
1124
  }
1125
1125
  &nbsp;
@@ -1161,12 +1161,12 @@ exports.fetchView = async ctx =&gt; {
1161
1161
  const { calculation, group, field } = ctx.query
1162
1162
  const viewInfo = await getView(db, viewName)
1163
1163
  let response
1164
- <span class="missing-if-branch" title="else path not taken" >E</span>if (env.SELF_HOSTED) {
1164
+ if (env.SELF_HOSTED) {
1165
1165
  response = await db.query(`database/${viewName}`, {
1166
1166
  include_docs: !calculation,
1167
1167
  group: !!group,
1168
1168
  })
1169
- } else {
1169
+ } else <span class="missing-if-branch" title="else path not taken" >E</span>{
1170
1170
  const tableId = <span class="cstat-no" title="statement not covered" >viewInfo.meta.tableId</span>
1171
1171
  const data = <span class="cstat-no" title="statement not covered" >await getRawTableData(ctx, db, tableId)</span>
1172
1172
  <span class="cstat-no" title="statement not covered" > response = await inMemoryViews.runView(viewInfo, calculation, group, data)</span>
@@ -1319,7 +1319,7 @@ exports.search = async ctx =&gt; {
1319
1319
  }
1320
1320
  &nbsp;
1321
1321
  // Enrich search results with relationships
1322
- <span class="missing-if-branch" title="else path not taken" >E</span>if (response.rows &amp;&amp; response.rows.length) {
1322
+ if (response.rows &amp;&amp; response.rows.length) {
1323
1323
  // enrich with global users if from users table
1324
1324
  <span class="missing-if-branch" title="if path not taken" >I</span>if (tableId === InternalTables.USER_METADATA) {
1325
1325
  <span class="cstat-no" title="statement not covered" > response.rows = await getGlobalUsersFromMetadata(appId, response.rows)</span>
@@ -1367,10 +1367,10 @@ exports.fetchEnrichedRow = async ctx =&gt; {
1367
1367
  tables = {}
1368
1368
  for (let row of response) {
1369
1369
  const linkedTableId = row.tableId
1370
- <span class="missing-if-branch" title="else path not taken" >E</span>if (groups[linkedTableId] == null) {
1370
+ if (groups[linkedTableId] == null) {
1371
1371
  groups[linkedTableId] = [row]
1372
1372
  tables[linkedTableId] = await db.get(linkedTableId)
1373
- } else {
1373
+ } else <span class="missing-if-branch" title="else path not taken" >E</span>{
1374
1374
  <span class="cstat-no" title="statement not covered" > groups[linkedTableId].push(row)</span>
1375
1375
  }
1376
1376
  }
@@ -1405,7 +1405,7 @@ exports.fetchEnrichedRow = async ctx =&gt; {
1405
1405
  <div class='footer quiet pad2 space-top1 center small'>
1406
1406
  Code coverage generated by
1407
1407
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
1408
- at Mon Nov 15 2021 17:44:42 GMT+0000 (Coordinated Universal Time)
1408
+ at Wed Nov 24 2021 13:54:22 GMT+0000 (Coordinated Universal Time)
1409
1409
  </div>
1410
1410
  </div>
1411
1411
  <script src="../../../prettify.js"></script>
@@ -23,7 +23,7 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">4.67% </span>
26
+ <span class="strong">4.66% </span>
27
27
  <span class="quiet">Statements</span>
28
28
  <span class='fraction'>7/150</span>
29
29
  </div>
@@ -1228,7 +1228,7 @@ exports.fullSearch = <span class="fstat-no" title="function not covered" >as</sp
1228
1228
  <div class='footer quiet pad2 space-top1 center small'>
1229
1229
  Code coverage generated by
1230
1230
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
1231
- at Mon Nov 15 2021 17:44:42 GMT+0000 (Coordinated Universal Time)
1231
+ at Wed Nov 24 2021 13:54:22 GMT+0000 (Coordinated Universal Time)
1232
1232
  </div>
1233
1233
  </div>
1234
1234
  <script src="../../../prettify.js"></script>
@@ -37,7 +37,7 @@
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">66.67% </span>
40
+ <span class="strong">66.66% </span>
41
41
  <span class="quiet">Functions</span>
42
42
  <span class='fraction'>4/6</span>
43
43
  </div>
@@ -319,7 +319,7 @@ exports.validate = async ({ appId, tableId, row, table }) =&gt; {
319
319
  <div class='footer quiet pad2 space-top1 center small'>
320
320
  Code coverage generated by
321
321
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
322
- at Mon Nov 15 2021 17:44:42 GMT+0000 (Coordinated Universal Time)
322
+ at Wed Nov 24 2021 13:54:22 GMT+0000 (Coordinated Universal Time)
323
323
  </div>
324
324
  </div>
325
325
  <script src="../../../prettify.js"></script>
@@ -180,7 +180,7 @@ exports.save = async ctx =&gt; {
180
180
  const db = new CouchDB(appId)
181
181
  let screen = ctx.request.body
182
182
  &nbsp;
183
- <span class="missing-if-branch" title="else path not taken" >E</span>if (!screen._id) {
183
+ if (!screen._id) {
184
184
  screen._id = generateScreenID()
185
185
  }
186
186
  const response = await db.put(screen)
@@ -208,7 +208,7 @@ exports.destroy = async ctx =&gt; {
208
208
  <div class='footer quiet pad2 space-top1 center small'>
209
209
  Code coverage generated by
210
210
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
211
- at Mon Nov 15 2021 17:44:42 GMT+0000 (Coordinated Universal Time)
211
+ at Wed Nov 24 2021 13:54:22 GMT+0000 (Coordinated Universal Time)
212
212
  </div>
213
213
  </div>
214
214
  <script src="../../prettify.js"></script>
@@ -23,7 +23,7 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">42.86% </span>
26
+ <span class="strong">42.85% </span>
27
27
  <span class="quiet">Statements</span>
28
28
  <span class='fraction'>3/7</span>
29
29
  </div>
@@ -44,7 +44,7 @@
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">42.86% </span>
47
+ <span class="strong">42.85% </span>
48
48
  <span class="quiet">Lines</span>
49
49
  <span class='fraction'>3/7</span>
50
50
  </div>
@@ -97,7 +97,7 @@ exports.save = <span class="fstat-no" title="function not covered" >as</span>ync
97
97
  <div class='footer quiet pad2 space-top1 center small'>
98
98
  Code coverage generated by
99
99
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
100
- at Mon Nov 15 2021 17:44:42 GMT+0000 (Coordinated Universal Time)
100
+ at Wed Nov 24 2021 13:54:22 GMT+0000 (Coordinated Universal Time)
101
101
  </div>
102
102
  </div>
103
103
  <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">8.27% </span>
26
+ <span class="strong">8.02% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>11/133</span>
28
+ <span class='fraction'>11/137</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/70</span>
35
+ <span class='fraction'>0/76</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">8.27% </span>
47
+ <span class="strong">8.02% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>11/133</span>
49
+ <span class='fraction'>11/137</span>
50
50
  </div>
51
51
 
52
52
 
@@ -357,7 +357,14 @@
357
357
  <a name='L298'></a><a href='#L298'>298</a>
358
358
  <a name='L299'></a><a href='#L299'>299</a>
359
359
  <a name='L300'></a><a href='#L300'>300</a>
360
- <a name='L301'></a><a href='#L301'>301</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">34x</span>
360
+ <a name='L301'></a><a href='#L301'>301</a>
361
+ <a name='L302'></a><a href='#L302'>302</a>
362
+ <a name='L303'></a><a href='#L303'>303</a>
363
+ <a name='L304'></a><a href='#L304'>304</a>
364
+ <a name='L305'></a><a href='#L305'>305</a>
365
+ <a name='L306'></a><a href='#L306'>306</a>
366
+ <a name='L307'></a><a href='#L307'>307</a>
367
+ <a name='L308'></a><a href='#L308'>308</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">34x</span>
361
368
  <span class="cline-any cline-neutral">&nbsp;</span>
362
369
  <span class="cline-any cline-neutral">&nbsp;</span>
363
370
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -523,6 +530,10 @@
523
530
  <span class="cline-any cline-neutral">&nbsp;</span>
524
531
  <span class="cline-any cline-no">&nbsp;</span>
525
532
  <span class="cline-any cline-no">&nbsp;</span>
533
+ <span class="cline-any cline-neutral">&nbsp;</span>
534
+ <span class="cline-any cline-no">&nbsp;</span>
535
+ <span class="cline-any cline-no">&nbsp;</span>
536
+ <span class="cline-any cline-neutral">&nbsp;</span>
526
537
  <span class="cline-any cline-no">&nbsp;</span>
527
538
  <span class="cline-any cline-neutral">&nbsp;</span>
528
539
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -625,6 +636,9 @@
625
636
  <span class="cline-any cline-no">&nbsp;</span>
626
637
  <span class="cline-any cline-no">&nbsp;</span>
627
638
  <span class="cline-any cline-no">&nbsp;</span>
639
+ <span class="cline-any cline-no">&nbsp;</span>
640
+ <span class="cline-any cline-neutral">&nbsp;</span>
641
+ <span class="cline-any cline-no">&nbsp;</span>
628
642
  <span class="cline-any cline-neutral">&nbsp;</span>
629
643
  <span class="cline-any cline-no">&nbsp;</span>
630
644
  <span class="cline-any cline-no">&nbsp;</span>
@@ -820,9 +834,13 @@ function <span class="fstat-no" title="function not covered" >isRelationshipSetu
820
834
  exports.save = <span class="fstat-no" title="function not covered" >as</span>ync function (ctx) {
821
835
  const appId = <span class="cstat-no" title="statement not covered" >ctx.appId</span>
822
836
  const table = <span class="cstat-no" title="statement not covered" >ctx.request.body</span>
823
- // can't do this
837
+ // can't do this right now
824
838
  <span class="cstat-no" title="statement not covered" > delete table.dataImport</span>
825
839
  const datasourceId = <span class="cstat-no" title="statement not covered" >getDatasourceId(ctx.request.body)</span>
840
+ // table doesn't exist already, note that it is created
841
+ <span class="cstat-no" title="statement not covered" > if (!table._id) {</span>
842
+ <span class="cstat-no" title="statement not covered" > table.created = true</span>
843
+ }
826
844
  let tableToSave = <span class="cstat-no" title="statement not covered" >{</span>
827
845
  type: "table",
828
846
  _id: buildExternalTableId(datasourceId, table.name),
@@ -924,6 +942,9 @@ exports.save = <span class="fstat-no" title="function not covered" >as</span>ync
924
942
  exports.destroy = <span class="fstat-no" title="function not covered" >as</span>ync function (ctx) {
925
943
  const appId = <span class="cstat-no" title="statement not covered" >ctx.appId</span>
926
944
  const tableToDelete = <span class="cstat-no" title="statement not covered" >await getTable(appId, ctx.params.tableId)</span>
945
+ <span class="cstat-no" title="statement not covered" > if (!tableToDelete || !tableToDelete.created) {</span>
946
+ <span class="cstat-no" title="statement not covered" > ctx.throw(400, "Cannot delete tables which weren't created in Budibase.")</span>
947
+ }
927
948
  const datasourceId = <span class="cstat-no" title="statement not covered" >getDatasourceId(tableToDelete)</span>
928
949
  &nbsp;
929
950
  const db = <span class="cstat-no" title="statement not covered" >new CouchDB(appId)</span>
@@ -964,7 +985,7 @@ exports.bulkImport = <span class="fstat-no" title="function not covered" >as</sp
964
985
  <div class='footer quiet pad2 space-top1 center small'>
965
986
  Code coverage generated by
966
987
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
967
- at Mon Nov 15 2021 17:44:42 GMT+0000 (Coordinated Universal Time)
988
+ at Wed Nov 24 2021 13:54:22 GMT+0000 (Coordinated Universal Time)
968
989
  </div>
969
990
  </div>
970
991
  <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">51.75% </span>
26
+ <span class="strong">51.27% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>222/429</span>
28
+ <span class='fraction'>222/433</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">38.36% </span>
33
+ <span class="strong">37.33% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>84/219</span>
35
+ <span class='fraction'>84/225</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">52.26% </span>
47
+ <span class="strong">51.76% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>220/421</span>
49
+ <span class='fraction'>220/425</span>
50
50
  </div>
51
51
 
52
52
 
@@ -74,31 +74,31 @@
74
74
  </thead>
75
75
  <tbody><tr>
76
76
  <td class="file low" data-value="external.js"><a href="external.js.html">external.js</a></td>
77
- <td data-value="8.27" class="pic low">
77
+ <td data-value="8.02" class="pic low">
78
78
  <div class="chart"><div class="cover-fill" style="width: 8%"></div><div class="cover-empty" style="width: 92%"></div></div>
79
79
  </td>
80
- <td data-value="8.27" class="pct low">8.27%</td>
81
- <td data-value="133" class="abs low">11/133</td>
80
+ <td data-value="8.02" class="pct low">8.02%</td>
81
+ <td data-value="137" class="abs low">11/137</td>
82
82
  <td data-value="0" class="pct low">0%</td>
83
- <td data-value="70" class="abs low">0/70</td>
83
+ <td data-value="76" class="abs low">0/76</td>
84
84
  <td data-value="0" class="pct low">0%</td>
85
85
  <td data-value="14" class="abs low">0/14</td>
86
- <td data-value="8.27" class="pct low">8.27%</td>
87
- <td data-value="133" class="abs low">11/133</td>
86
+ <td data-value="8.02" class="pct low">8.02%</td>
87
+ <td data-value="137" class="abs low">11/137</td>
88
88
  </tr>
89
89
 
90
90
  <tr>
91
91
  <td class="file high" data-value="index.js"><a href="index.js.html">index.js</a></td>
92
- <td data-value="81.82" class="pic high">
92
+ <td data-value="81.81" class="pic high">
93
93
  <div class="chart"><div class="cover-fill" style="width: 81%"></div><div class="cover-empty" style="width: 19%"></div></div>
94
94
  </td>
95
- <td data-value="81.82" class="pct high">81.82%</td>
95
+ <td data-value="81.81" class="pct high">81.81%</td>
96
96
  <td data-value="55" class="abs high">45/55</td>
97
97
  <td data-value="73.91" class="pct medium">73.91%</td>
98
98
  <td data-value="23" class="abs medium">17/23</td>
99
99
  <td data-value="70" class="pct medium">70%</td>
100
100
  <td data-value="10" class="abs medium">7/10</td>
101
- <td data-value="83.02" class="pct high">83.02%</td>
101
+ <td data-value="83.01" class="pct high">83.01%</td>
102
102
  <td data-value="53" class="abs high">44/53</td>
103
103
  </tr>
104
104
 
@@ -113,18 +113,18 @@
113
113
  <td data-value="36" class="abs medium">26/36</td>
114
114
  <td data-value="60" class="pct medium">60%</td>
115
115
  <td data-value="5" class="abs medium">3/5</td>
116
- <td data-value="77.78" class="pct medium">77.78%</td>
116
+ <td data-value="77.77" class="pct medium">77.77%</td>
117
117
  <td data-value="63" class="abs medium">49/63</td>
118
118
  </tr>
119
119
 
120
120
  <tr>
121
121
  <td class="file medium" data-value="utils.js"><a href="utils.js.html">utils.js</a></td>
122
- <td data-value="66.86" class="pic medium">
122
+ <td data-value="66.85" class="pic medium">
123
123
  <div class="chart"><div class="cover-fill" style="width: 66%"></div><div class="cover-empty" style="width: 34%"></div></div>
124
124
  </td>
125
- <td data-value="66.86" class="pct medium">66.86%</td>
125
+ <td data-value="66.85" class="pct medium">66.85%</td>
126
126
  <td data-value="175" class="abs medium">117/175</td>
127
- <td data-value="45.56" class="pct low">45.56%</td>
127
+ <td data-value="45.55" class="pct low">45.55%</td>
128
128
  <td data-value="90" class="abs low">41/90</td>
129
129
  <td data-value="62.96" class="pct medium">62.96%</td>
130
130
  <td data-value="27" class="abs medium">17/27</td>
@@ -140,7 +140,7 @@
140
140
  <div class='footer quiet pad2 space-top1 center small'>
141
141
  Code coverage generated by
142
142
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
143
- at Mon Nov 15 2021 17:44:42 GMT+0000 (Coordinated Universal Time)
143
+ at Wed Nov 24 2021 13:54:22 GMT+0000 (Coordinated Universal Time)
144
144
  </div>
145
145
  </div>
146
146
  <script src="../../../prettify.js"></script>
@@ -23,7 +23,7 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">81.82% </span>
26
+ <span class="strong">81.81% </span>
27
27
  <span class="quiet">Statements</span>
28
28
  <span class='fraction'>45/55</span>
29
29
  </div>
@@ -44,7 +44,7 @@
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">83.02% </span>
47
+ <span class="strong">83.01% </span>
48
48
  <span class="quiet">Lines</span>
49
49
  <span class='fraction'>44/53</span>
50
50
  </div>
@@ -382,7 +382,7 @@ exports.validateCSVSchema = async function (ctx) {
382
382
  <div class='footer quiet pad2 space-top1 center small'>
383
383
  Code coverage generated by
384
384
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
385
- at Mon Nov 15 2021 17:44:42 GMT+0000 (Coordinated Universal Time)
385
+ at Wed Nov 24 2021 13:54:22 GMT+0000 (Coordinated Universal Time)
386
386
  </div>
387
387
  </div>
388
388
  <script src="../../../prettify.js"></script>
@@ -44,7 +44,7 @@
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">77.78% </span>
47
+ <span class="strong">77.77% </span>
48
48
  <span class="quiet">Lines</span>
49
49
  <span class='fraction'>49/63</span>
50
50
  </div>
@@ -529,7 +529,7 @@ exports.bulkImport = <span class="fstat-no" title="function not covered" >as</sp
529
529
  <div class='footer quiet pad2 space-top1 center small'>
530
530
  Code coverage generated by
531
531
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
532
- at Mon Nov 15 2021 17:44:42 GMT+0000 (Coordinated Universal Time)
532
+ at Wed Nov 24 2021 13:54:22 GMT+0000 (Coordinated Universal Time)
533
533
  </div>
534
534
  </div>
535
535
  <script src="../../../prettify.js"></script>
@@ -23,14 +23,14 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">66.86% </span>
26
+ <span class="strong">66.85% </span>
27
27
  <span class="quiet">Statements</span>
28
28
  <span class='fraction'>117/175</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">45.56% </span>
33
+ <span class="strong">45.55% </span>
34
34
  <span class="quiet">Branches</span>
35
35
  <span class='fraction'>41/90</span>
36
36
  </div>
@@ -811,10 +811,10 @@ exports.checkForColumnUpdates = async (db, oldTable, updatedTable) =&gt; {
811
811
  })
812
812
  )
813
813
  updatedRows = rows.rows.map(({ doc }) =&gt; {
814
- <span class="missing-if-branch" title="else path not taken" >E</span>if (rename) {
814
+ if (rename) {
815
815
  doc[rename.updated] = doc[rename.old]
816
816
  delete doc[rename.old]
817
- } else <span class="cstat-no" title="statement not covered" >if (deletedColumns.length !== 0) {</span>
817
+ } else <span class="cstat-no" title="statement not covered" ><span class="missing-if-branch" title="else path not taken" >E</span>if (deletedColumns.length !== 0) {</span>
818
818
  <span class="cstat-no" title="statement not covered" > deletedColumns.forEach(<span class="fstat-no" title="function not covered" >co</span>lName =&gt; <span class="cstat-no" title="statement not covered" >delete doc[colName])</span></span>
819
819
  }
820
820
  return doc
@@ -910,7 +910,7 @@ exports.handleSearchIndexes = async (appId, table) =&gt; {
910
910
  )
911
911
  &nbsp;
912
912
  // if index fields have changed, delete the original index
913
- <span class="missing-if-branch" title="else path not taken" >E</span>if (!isEqual(currentFields, table.indexes)) {
913
+ if (!isEqual(currentFields, table.indexes)) {
914
914
  await db.deleteIndex(existingIndex)
915
915
  // create/recreate the index with fields
916
916
  await db.createIndex({
@@ -942,7 +942,7 @@ exports.checkStaticTables = table =&gt; {
942
942
  if (table._id === InternalTables.USER_METADATA) {
943
943
  for (let [key, schema] of Object.entries(USERS_TABLE_SCHEMA.schema)) {
944
944
  // check if the schema exists on the table to be created/updated
945
- <span class="missing-if-branch" title="else path not taken" >E</span>if (table.schema[key] == null) {
945
+ if (table.schema[key] == null) {
946
946
  table.schema[key] = schema
947
947
  }
948
948
  }
@@ -954,7 +954,7 @@ class TableSaveFunctions {
954
954
  constructor({ db, ctx, oldTable, dataImport }) {
955
955
  this.db = db
956
956
  this.ctx = ctx
957
- <span class="missing-if-branch" title="else path not taken" >E</span>if (this.ctx &amp;&amp; this.ctx.user) {
957
+ if (this.ctx &amp;&amp; this.ctx.user) {
958
958
  this.appId = this.ctx.appId
959
959
  }
960
960
  this.oldTable = oldTable
@@ -1141,7 +1141,7 @@ exports.TableSaveFunctions = TableSaveFunctions
1141
1141
  <div class='footer quiet pad2 space-top1 center small'>
1142
1142
  Code coverage generated by
1143
1143
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
1144
- at Mon Nov 15 2021 17:44:42 GMT+0000 (Coordinated Universal Time)
1144
+ at Wed Nov 24 2021 13:54:22 GMT+0000 (Coordinated Universal Time)
1145
1145
  </div>
1146
1146
  </div>
1147
1147
  <script src="../../../prettify.js"></script>
@@ -30,7 +30,7 @@
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">71.43% </span>
33
+ <span class="strong">71.42% </span>
34
34
  <span class="quiet">Branches</span>
35
35
  <span class='fraction'>5/7</span>
36
36
  </div>
@@ -155,10 +155,10 @@ exports.fetch = async function (ctx) {
155
155
  <span class="cstat-no" title="statement not covered" > error = true</span>
156
156
  }
157
157
  // if there is an error, simply return no templates
158
- <span class="missing-if-branch" title="else path not taken" >E</span>if (!error &amp;&amp; response) {
158
+ if (!error &amp;&amp; response) {
159
159
  const json = await response.json()
160
160
  ctx.body = Object.values(json.templates[type])
161
- } else {
161
+ } else <span class="missing-if-branch" title="else path not taken" >E</span>{
162
162
  <span class="cstat-no" title="statement not covered" > ctx.body = []</span>
163
163
  }
164
164
  }
@@ -181,7 +181,7 @@ exports.downloadTemplate = async function (ctx) {
181
181
  <div class='footer quiet pad2 space-top1 center small'>
182
182
  Code coverage generated by
183
183
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
184
- at Mon Nov 15 2021 17:44:42 GMT+0000 (Coordinated Universal Time)
184
+ at Wed Nov 24 2021 13:54:22 GMT+0000 (Coordinated Universal Time)
185
185
  </div>
186
186
  </div>
187
187
  <script src="../../prettify.js"></script>
@@ -44,7 +44,7 @@
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">37.76% </span>
47
+ <span class="strong">37.75% </span>
48
48
  <span class="quiet">Lines</span>
49
49
  <span class='fraction'>37/98</span>
50
50
  </div>
@@ -655,7 +655,7 @@ exports.findMetadata = async function (ctx) {
655
655
  <div class='footer quiet pad2 space-top1 center small'>
656
656
  Code coverage generated by
657
657
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
658
- at Mon Nov 15 2021 17:44:42 GMT+0000 (Coordinated Universal Time)
658
+ at Wed Nov 24 2021 13:54:22 GMT+0000 (Coordinated Universal Time)
659
659
  </div>
660
660
  </div>
661
661
  <script src="../../prettify.js"></script>
@@ -118,7 +118,7 @@ exports.json = function (headers, rows) {
118
118
  <div class='footer quiet pad2 space-top1 center small'>
119
119
  Code coverage generated by
120
120
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
121
- at Mon Nov 15 2021 17:44:42 GMT+0000 (Coordinated Universal Time)
121
+ at Wed Nov 24 2021 13:54:22 GMT+0000 (Coordinated Universal Time)
122
122
  </div>
123
123
  </div>
124
124
  <script src="../../../prettify.js"></script>
@@ -30,7 +30,7 @@
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">62.34% </span>
33
+ <span class="strong">62.33% </span>
34
34
  <span class="quiet">Branches</span>
35
35
  <span class='fraction'>48/77</span>
36
36
  </div>
@@ -89,10 +89,10 @@
89
89
 
90
90
  <tr>
91
91
  <td class="file high" data-value="index.js"><a href="index.js.html">index.js</a></td>
92
- <td data-value="92.73" class="pic high">
92
+ <td data-value="92.72" class="pic high">
93
93
  <div class="chart"><div class="cover-fill" style="width: 92%"></div><div class="cover-empty" style="width: 8%"></div></div>
94
94
  </td>
95
- <td data-value="92.73" class="pct high">92.73%</td>
95
+ <td data-value="92.72" class="pct high">92.72%</td>
96
96
  <td data-value="55" class="abs high">51/55</td>
97
97
  <td data-value="68.42" class="pct medium">68.42%</td>
98
98
  <td data-value="19" class="abs medium">13/19</td>
@@ -109,9 +109,9 @@
109
109
  </td>
110
110
  <td data-value="50" class="pct medium">50%</td>
111
111
  <td data-value="76" class="abs medium">38/76</td>
112
- <td data-value="34.62" class="pct low">34.62%</td>
112
+ <td data-value="34.61" class="pct low">34.61%</td>
113
113
  <td data-value="26" class="abs low">9/26</td>
114
- <td data-value="66.67" class="pct medium">66.67%</td>
114
+ <td data-value="66.66" class="pct medium">66.66%</td>
115
115
  <td data-value="9" class="abs medium">6/9</td>
116
116
  <td data-value="50" class="pct medium">50%</td>
117
117
  <td data-value="76" class="abs medium">38/76</td>
@@ -119,16 +119,16 @@
119
119
 
120
120
  <tr>
121
121
  <td class="file high" data-value="viewBuilder.js"><a href="viewBuilder.js.html">viewBuilder.js</a></td>
122
- <td data-value="84.85" class="pic high">
122
+ <td data-value="84.84" class="pic high">
123
123
  <div class="chart"><div class="cover-fill" style="width: 84%"></div><div class="cover-empty" style="width: 16%"></div></div>
124
124
  </td>
125
- <td data-value="84.85" class="pct high">84.85%</td>
125
+ <td data-value="84.84" class="pct high">84.84%</td>
126
126
  <td data-value="33" class="abs high">28/33</td>
127
127
  <td data-value="83.33" class="pct high">83.33%</td>
128
128
  <td data-value="30" class="abs high">25/30</td>
129
129
  <td data-value="75" class="pct medium">75%</td>
130
130
  <td data-value="4" class="abs medium">3/4</td>
131
- <td data-value="84.85" class="pct high">84.85%</td>
131
+ <td data-value="84.84" class="pct high">84.84%</td>
132
132
  <td data-value="33" class="abs high">28/33</td>
133
133
  </tr>
134
134
 
@@ -140,7 +140,7 @@
140
140
  <div class='footer quiet pad2 space-top1 center small'>
141
141
  Code coverage generated by
142
142
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
143
- at Mon Nov 15 2021 17:44:42 GMT+0000 (Coordinated Universal Time)
143
+ at Wed Nov 24 2021 13:54:22 GMT+0000 (Coordinated Universal Time)
144
144
  </div>
145
145
  </div>
146
146
  <script src="../../../prettify.js"></script>