@budibase/server 0.9.188 → 0.9.190-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 (307) hide show
  1. package/Dockerfile +7 -1
  2. package/__mocks__/mssql.ts +1 -1
  3. package/__mocks__/oracledb.ts +31 -0
  4. package/__mocks__/pg.ts +3 -0
  5. package/builder/assets/bb-space-man.5be51a45.svg +290 -0
  6. package/builder/assets/index.7d405e74.css +1 -0
  7. package/builder/assets/index.edea4fa5.js +1316 -0
  8. package/builder/assets/oracle.66592424.png +0 -0
  9. package/builder/assets/vendor.470042a4.js +152 -0
  10. package/builder/assets/vendor.5e1fe644.css +1 -0
  11. package/builder/index.html +4 -4
  12. package/coverage/clover.xml +1507 -1081
  13. package/coverage/coverage-final.json +93 -89
  14. package/coverage/lcov-report/api/controllers/analytics.js.html +2 -2
  15. package/coverage/lcov-report/api/controllers/apikeys.js.html +2 -2
  16. package/coverage/lcov-report/api/controllers/application.js.html +64 -13
  17. package/coverage/lcov-report/api/controllers/auth.js.html +19 -10
  18. package/coverage/lcov-report/api/controllers/automation.js.html +3 -3
  19. package/coverage/lcov-report/api/controllers/backup.js.html +1 -1
  20. package/coverage/lcov-report/api/controllers/cloud.js.html +1 -1
  21. package/coverage/lcov-report/api/controllers/component.js.html +4 -4
  22. package/coverage/lcov-report/api/controllers/datasource.js.html +232 -28
  23. package/coverage/lcov-report/api/controllers/dev.js.html +16 -7
  24. package/coverage/lcov-report/api/controllers/hosting.js.html +10 -10
  25. package/coverage/lcov-report/api/controllers/index.html +91 -91
  26. package/coverage/lcov-report/api/controllers/integration.js.html +1 -1
  27. package/coverage/lcov-report/api/controllers/layout.js.html +3 -3
  28. package/coverage/lcov-report/api/controllers/metadata.js.html +3 -3
  29. package/coverage/lcov-report/api/controllers/permission.js.html +3 -3
  30. package/coverage/lcov-report/api/controllers/query.js.html +53 -209
  31. package/coverage/lcov-report/api/controllers/role.js.html +9 -9
  32. package/coverage/lcov-report/api/controllers/routing.js.html +3 -3
  33. package/coverage/lcov-report/api/controllers/row/external.js.html +17 -8
  34. package/coverage/lcov-report/api/controllers/row/index.html +26 -26
  35. package/coverage/lcov-report/api/controllers/row/index.js.html +2 -2
  36. package/coverage/lcov-report/api/controllers/row/internal.js.html +9 -9
  37. package/coverage/lcov-report/api/controllers/row/internalSearch.js.html +2 -2
  38. package/coverage/lcov-report/api/controllers/row/utils.js.html +21 -30
  39. package/coverage/lcov-report/api/controllers/screen.js.html +2 -2
  40. package/coverage/lcov-report/api/controllers/script.js.html +3 -3
  41. package/coverage/lcov-report/api/controllers/table/external.js.html +1001 -0
  42. package/coverage/lcov-report/api/controllers/table/index.html +56 -26
  43. package/coverage/lcov-report/api/controllers/table/index.js.html +80 -350
  44. package/coverage/lcov-report/api/controllers/table/internal.js.html +545 -0
  45. package/coverage/lcov-report/api/controllers/table/utils.js.html +175 -52
  46. package/coverage/lcov-report/api/controllers/templates.js.html +4 -4
  47. package/coverage/lcov-report/api/controllers/user.js.html +390 -33
  48. package/coverage/lcov-report/api/controllers/view/exporters.js.html +19 -4
  49. package/coverage/lcov-report/api/controllers/view/index.html +22 -22
  50. package/coverage/lcov-report/api/controllers/view/index.js.html +52 -13
  51. package/coverage/lcov-report/api/controllers/view/utils.js.html +11 -11
  52. package/coverage/lcov-report/api/controllers/view/viewBuilder.js.html +3 -3
  53. package/coverage/lcov-report/api/controllers/webhook.js.html +4 -4
  54. package/coverage/lcov-report/api/index.html +1 -1
  55. package/coverage/lcov-report/api/index.js.html +1 -1
  56. package/coverage/lcov-report/api/routes/analytics.js.html +1 -1
  57. package/coverage/lcov-report/api/routes/apikeys.js.html +1 -1
  58. package/coverage/lcov-report/api/routes/application.js.html +1 -1
  59. package/coverage/lcov-report/api/routes/auth.js.html +1 -1
  60. package/coverage/lcov-report/api/routes/automation.js.html +1 -1
  61. package/coverage/lcov-report/api/routes/backup.js.html +1 -1
  62. package/coverage/lcov-report/api/routes/cloud.js.html +1 -1
  63. package/coverage/lcov-report/api/routes/component.js.html +1 -1
  64. package/coverage/lcov-report/api/routes/datasource.js.html +1 -1
  65. package/coverage/lcov-report/api/routes/deploy.js.html +1 -1
  66. package/coverage/lcov-report/api/routes/dev.js.html +2 -2
  67. package/coverage/lcov-report/api/routes/hosting.js.html +1 -1
  68. package/coverage/lcov-report/api/routes/index.html +4 -4
  69. package/coverage/lcov-report/api/routes/index.js.html +1 -1
  70. package/coverage/lcov-report/api/routes/integration.js.html +1 -1
  71. package/coverage/lcov-report/api/routes/layout.js.html +1 -1
  72. package/coverage/lcov-report/api/routes/metadata.js.html +1 -1
  73. package/coverage/lcov-report/api/routes/permission.js.html +1 -1
  74. package/coverage/lcov-report/api/routes/query.js.html +5 -2
  75. package/coverage/lcov-report/api/routes/role.js.html +1 -1
  76. package/coverage/lcov-report/api/routes/routing.js.html +1 -1
  77. package/coverage/lcov-report/api/routes/row.js.html +1 -1
  78. package/coverage/lcov-report/api/routes/screen.js.html +1 -1
  79. package/coverage/lcov-report/api/routes/script.js.html +1 -1
  80. package/coverage/lcov-report/api/routes/static.js.html +2 -2
  81. package/coverage/lcov-report/api/routes/table.js.html +35 -2
  82. package/coverage/lcov-report/api/routes/templates.js.html +1 -1
  83. package/coverage/lcov-report/api/routes/user.js.html +17 -2
  84. package/coverage/lcov-report/api/routes/view.js.html +1 -1
  85. package/coverage/lcov-report/api/routes/webhook.js.html +1 -1
  86. package/coverage/lcov-report/automations/actions.js.html +2 -2
  87. package/coverage/lcov-report/automations/automationUtils.js.html +4 -4
  88. package/coverage/lcov-report/automations/bullboard.js.html +71 -20
  89. package/coverage/lcov-report/automations/index.html +35 -50
  90. package/coverage/lcov-report/automations/index.js.html +2 -2
  91. package/coverage/lcov-report/automations/steps/bash.js.html +1 -1
  92. package/coverage/lcov-report/automations/steps/createRow.js.html +1 -1
  93. package/coverage/lcov-report/automations/steps/delay.js.html +1 -1
  94. package/coverage/lcov-report/automations/steps/deleteRow.js.html +1 -1
  95. package/coverage/lcov-report/automations/steps/discord.js.html +3 -3
  96. package/coverage/lcov-report/automations/steps/executeQuery.js.html +1 -1
  97. package/coverage/lcov-report/automations/steps/executeScript.js.html +3 -3
  98. package/coverage/lcov-report/automations/steps/filter.js.html +1 -1
  99. package/coverage/lcov-report/automations/steps/index.html +14 -14
  100. package/coverage/lcov-report/automations/steps/integromat.js.html +1 -1
  101. package/coverage/lcov-report/automations/steps/outgoingWebhook.js.html +3 -3
  102. package/coverage/lcov-report/automations/steps/queryRows.js.html +3 -3
  103. package/coverage/lcov-report/automations/steps/sendSmtpEmail.js.html +1 -1
  104. package/coverage/lcov-report/automations/steps/serverLog.js.html +1 -1
  105. package/coverage/lcov-report/automations/steps/slack.js.html +1 -1
  106. package/coverage/lcov-report/automations/steps/updateRow.js.html +1 -1
  107. package/coverage/lcov-report/automations/steps/utils.js.html +7 -7
  108. package/coverage/lcov-report/automations/steps/zapier.js.html +1 -1
  109. package/coverage/lcov-report/automations/triggerInfo/app.js.html +2 -2
  110. package/coverage/lcov-report/automations/triggerInfo/cron.js.html +2 -2
  111. package/coverage/lcov-report/automations/triggerInfo/index.html +1 -1
  112. package/coverage/lcov-report/automations/triggerInfo/index.js.html +8 -8
  113. package/coverage/lcov-report/automations/triggerInfo/rowDeleted.js.html +2 -2
  114. package/coverage/lcov-report/automations/triggerInfo/rowSaved.js.html +2 -2
  115. package/coverage/lcov-report/automations/triggerInfo/rowUpdated.js.html +2 -2
  116. package/coverage/lcov-report/automations/triggerInfo/webhook.js.html +2 -2
  117. package/coverage/lcov-report/automations/triggers.js.html +22 -10
  118. package/coverage/lcov-report/automations/utils.js.html +42 -12
  119. package/coverage/lcov-report/constants/index.html +5 -5
  120. package/coverage/lcov-report/constants/index.js.html +87 -21
  121. package/coverage/lcov-report/constants/layouts.js.html +1 -1
  122. package/coverage/lcov-report/constants/screens.js.html +1 -1
  123. package/coverage/lcov-report/db/client.js.html +2 -2
  124. package/coverage/lcov-report/db/inMemoryView.js.html +2 -2
  125. package/coverage/lcov-report/db/index.html +2 -2
  126. package/coverage/lcov-report/db/index.js.html +1 -1
  127. package/coverage/lcov-report/db/linkedRows/LinkController.js.html +6 -6
  128. package/coverage/lcov-report/db/linkedRows/index.html +10 -10
  129. package/coverage/lcov-report/db/linkedRows/index.js.html +5 -5
  130. package/coverage/lcov-report/db/linkedRows/linkUtils.js.html +6 -6
  131. package/coverage/lcov-report/db/newid.js.html +3 -3
  132. package/coverage/lcov-report/db/utils.js.html +57 -57
  133. package/coverage/lcov-report/events/AutomationEmitter.js.html +6 -6
  134. package/coverage/lcov-report/events/index.html +6 -6
  135. package/coverage/lcov-report/events/index.js.html +1 -1
  136. package/coverage/lcov-report/events/utils.js.html +5 -5
  137. package/coverage/lcov-report/index.html +106 -91
  138. package/coverage/lcov-report/integrations/tests/TestConfiguration.js.html +1 -1
  139. package/coverage/lcov-report/integrations/tests/index.html +1 -1
  140. package/coverage/lcov-report/middleware/appInfo.js.html +2 -2
  141. package/coverage/lcov-report/middleware/authorized.js.html +11 -8
  142. package/coverage/lcov-report/middleware/builder.js.html +16 -7
  143. package/coverage/lcov-report/middleware/currentapp.js.html +6 -6
  144. package/coverage/lcov-report/middleware/index.html +23 -23
  145. package/coverage/lcov-report/middleware/joi-validator.js.html +2 -2
  146. package/coverage/lcov-report/middleware/resourceId.js.html +18 -18
  147. package/coverage/lcov-report/middleware/selfhost.js.html +2 -2
  148. package/coverage/lcov-report/middleware/usageQuota.js.html +4 -4
  149. package/coverage/lcov-report/middleware/utils.js.html +1 -1
  150. package/coverage/lcov-report/{automations/thread.js.html → threads/automation.js.html} +90 -33
  151. package/coverage/lcov-report/threads/index.html +141 -0
  152. package/coverage/lcov-report/threads/index.js.html +278 -0
  153. package/coverage/lcov-report/threads/query.js.html +278 -0
  154. package/coverage/lcov-report/utilities/bcrypt.js.html +1 -1
  155. package/coverage/lcov-report/utilities/budibaseDir.js.html +1 -1
  156. package/coverage/lcov-report/utilities/centralPath.js.html +1 -1
  157. package/coverage/lcov-report/utilities/csvParser.js.html +144 -15
  158. package/coverage/lcov-report/utilities/global.js.html +26 -11
  159. package/coverage/lcov-report/utilities/index.html +48 -48
  160. package/coverage/lcov-report/utilities/index.js.html +47 -14
  161. package/coverage/lcov-report/utilities/queue/inMemoryQueue.js.html +30 -9
  162. package/coverage/lcov-report/utilities/queue/index.html +14 -14
  163. package/coverage/lcov-report/utilities/routing/index.html +1 -1
  164. package/coverage/lcov-report/utilities/routing/index.js.html +1 -1
  165. package/coverage/lcov-report/utilities/rowProcessor/index.html +4 -4
  166. package/coverage/lcov-report/utilities/rowProcessor/index.js.html +2 -2
  167. package/coverage/lcov-report/utilities/rowProcessor/utils.js.html +3 -3
  168. package/coverage/lcov-report/utilities/scriptRunner.js.html +16 -7
  169. package/coverage/lcov-report/utilities/security.js.html +3 -3
  170. package/coverage/lcov-report/utilities/statusCodes.js.html +1 -1
  171. package/coverage/lcov-report/utilities/users.js.html +1 -1
  172. package/coverage/lcov-report/utilities/workerRequests.js.html +5 -5
  173. package/coverage/lcov.info +2495 -1737
  174. package/dist/api/controllers/application.js +15 -1
  175. package/dist/api/controllers/auth.js +3 -3
  176. package/dist/api/controllers/datasource.js +67 -16
  177. package/dist/api/controllers/deploy/index.js +2 -0
  178. package/dist/api/controllers/dev.js +4 -1
  179. package/dist/api/controllers/query.js +30 -58
  180. package/dist/api/controllers/row/ExternalRequest.js +78 -34
  181. package/dist/api/controllers/row/external.js +3 -1
  182. package/dist/api/controllers/row/utils.js +6 -12
  183. package/dist/api/controllers/table/external.js +249 -0
  184. package/dist/api/controllers/table/index.js +49 -123
  185. package/dist/api/controllers/table/internal.js +150 -0
  186. package/dist/api/controllers/table/utils.js +62 -28
  187. package/dist/api/controllers/user.js +123 -11
  188. package/dist/api/controllers/view/exporters.js +4 -0
  189. package/dist/api/controllers/view/index.js +14 -2
  190. package/dist/api/routes/query.js +1 -1
  191. package/dist/api/routes/table.js +7 -1
  192. package/dist/api/routes/user.js +2 -1
  193. package/dist/app.js +2 -11
  194. package/dist/automations/bullboard.js +37 -10
  195. package/dist/automations/triggers.js +7 -3
  196. package/dist/automations/utils.js +11 -2
  197. package/dist/constants/index.js +19 -0
  198. package/dist/definitions/datasource.js +5 -0
  199. package/dist/environment.js +13 -0
  200. package/dist/integrations/base/IntegrationBase.js +2 -0
  201. package/dist/integrations/base/datasourcePlus.js +2 -0
  202. package/dist/integrations/base/sql.js +353 -177
  203. package/dist/integrations/base/sqlTable.js +143 -0
  204. package/dist/integrations/base/utils.js +30 -0
  205. package/dist/integrations/index.js +6 -0
  206. package/dist/integrations/microsoftSqlServer.js +117 -9
  207. package/dist/integrations/mysql.js +16 -85
  208. package/dist/integrations/oracle.js +347 -0
  209. package/dist/integrations/postgres.js +35 -28
  210. package/dist/integrations/utils.js +71 -9
  211. package/dist/middleware/authorized.js +2 -1
  212. package/dist/middleware/builder.js +4 -1
  213. package/dist/package.json +12 -7
  214. package/dist/tests/utilities/TestConfiguration.js +2 -1
  215. package/dist/{automations/thread.js → threads/automation.js} +26 -8
  216. package/dist/threads/index.js +64 -0
  217. package/dist/threads/query.js +64 -0
  218. package/dist/tsconfig.tsbuildinfo +1 -1
  219. package/dist/utilities/csvParser.js +46 -5
  220. package/dist/utilities/global.js +6 -2
  221. package/dist/utilities/index.js +11 -0
  222. package/dist/utilities/queue/inMemoryQueue.js +8 -0
  223. package/dist/utilities/scriptRunner.js +4 -1
  224. package/package.json +13 -8
  225. package/scripts/dev/manage.js +1 -0
  226. package/scripts/integrations/mssql/data/Dockerfile +9 -0
  227. package/scripts/integrations/mssql/data/entrypoint.sh +24 -0
  228. package/scripts/integrations/mssql/data/setup.sql +54 -0
  229. package/scripts/integrations/mssql/docker-compose.yaml +12 -0
  230. package/scripts/integrations/mssql/reset.sh +3 -0
  231. package/scripts/integrations/oracle/docker-compose.yml +19 -0
  232. package/scripts/integrations/oracle/instantclient/linux/x86-64/basiclite-21.4.zip +0 -0
  233. package/scripts/integrations/oracle/instantclient/linux/x86-64/install.sh +23 -0
  234. package/scripts/integrations/oracle/oracle.md +90 -0
  235. package/scripts/integrations/postgres/docker-compose.yml +3 -3
  236. package/scripts/likeCypress.ts +33 -0
  237. package/src/api/controllers/application.js +18 -1
  238. package/src/api/controllers/auth.js +3 -0
  239. package/src/api/controllers/datasource.js +84 -16
  240. package/src/api/controllers/deploy/index.js +2 -0
  241. package/src/api/controllers/dev.js +4 -1
  242. package/src/api/controllers/query.js +29 -81
  243. package/src/api/controllers/row/ExternalRequest.ts +91 -36
  244. package/src/api/controllers/row/external.js +4 -1
  245. package/src/api/controllers/row/utils.js +8 -11
  246. package/src/api/controllers/table/external.js +307 -0
  247. package/src/api/controllers/table/index.js +47 -137
  248. package/src/api/controllers/table/internal.js +155 -0
  249. package/src/api/controllers/table/utils.js +74 -33
  250. package/src/api/controllers/user.js +132 -13
  251. package/src/api/controllers/view/exporters.js +5 -0
  252. package/src/api/controllers/view/index.js +15 -2
  253. package/src/api/routes/query.js +1 -0
  254. package/src/api/routes/table.js +11 -0
  255. package/src/api/routes/tests/datasource.spec.js +2 -2
  256. package/src/api/routes/tests/misc.spec.js +5 -1
  257. package/src/api/routes/tests/query.spec.js +0 -1
  258. package/src/api/routes/user.js +5 -0
  259. package/src/app.ts +2 -10
  260. package/src/automations/bullboard.js +28 -11
  261. package/src/automations/tests/automation.spec.js +3 -4
  262. package/src/automations/triggers.js +7 -3
  263. package/src/automations/utils.js +12 -2
  264. package/src/constants/index.js +22 -0
  265. package/src/definitions/common.ts +7 -1
  266. package/src/definitions/datasource.ts +10 -3
  267. package/src/environment.js +15 -0
  268. package/src/integrations/airtable.ts +2 -1
  269. package/src/integrations/arangodb.ts +2 -1
  270. package/src/integrations/base/IntegrationBase.ts +6 -0
  271. package/src/integrations/base/datasourcePlus.ts +9 -0
  272. package/src/integrations/base/sql.ts +377 -218
  273. package/src/integrations/base/sqlTable.ts +180 -0
  274. package/src/integrations/base/utils.ts +22 -0
  275. package/src/integrations/couchdb.ts +2 -1
  276. package/src/integrations/dynamodb.ts +2 -1
  277. package/src/integrations/elasticsearch.ts +2 -1
  278. package/src/integrations/index.ts +7 -0
  279. package/src/integrations/microsoftSqlServer.ts +145 -13
  280. package/src/integrations/mongodb.ts +2 -1
  281. package/src/integrations/mysql.ts +23 -95
  282. package/src/integrations/oracle.ts +458 -0
  283. package/src/integrations/postgres.ts +45 -35
  284. package/src/integrations/rest.ts +2 -1
  285. package/src/integrations/s3.ts +2 -1
  286. package/src/integrations/tests/microsoftSqlServer.spec.js +22 -15
  287. package/src/integrations/tests/oracle.spec.js +94 -0
  288. package/src/integrations/tests/postgres.spec.js +4 -0
  289. package/src/integrations/utils.ts +78 -8
  290. package/src/middleware/authorized.js +2 -1
  291. package/src/middleware/builder.js +4 -1
  292. package/src/tests/utilities/TestConfiguration.js +2 -1
  293. package/src/{automations/thread.js → threads/automation.js} +27 -8
  294. package/src/threads/index.js +66 -0
  295. package/src/threads/query.js +66 -0
  296. package/src/utilities/csvParser.js +48 -5
  297. package/src/utilities/global.js +7 -2
  298. package/src/utilities/index.js +11 -0
  299. package/src/utilities/queue/inMemoryQueue.js +7 -0
  300. package/src/utilities/scriptRunner.js +4 -1
  301. package/src/utilities/tests/__snapshots__/csvParser.spec.js.snap +0 -6
  302. package/src/utilities/tests/csvParser.spec.js +3 -0
  303. package/tsconfig.json +1 -1
  304. package/builder/assets/index.550fdba7.js +0 -201
  305. package/builder/assets/index.7469e1e4.css +0 -29
  306. package/builder/assets/vendor.278a305c.js +0 -9
  307. package/builder/assets/vendor.d75d5eb7.css +0 -1
@@ -23,16 +23,16 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">73.14% </span>
26
+ <span class="strong">74.31% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>128/175</span>
28
+ <span class='fraction'>136/183</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">62.34% </span>
33
+ <span class="strong">63.85% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>48/77</span>
35
+ <span class='fraction'>53/83</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">73.41% </span>
47
+ <span class="strong">74.58% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>127/173</span>
49
+ <span class='fraction'>135/181</span>
50
50
  </div>
51
51
 
52
52
 
@@ -78,28 +78,28 @@
78
78
  <div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
79
79
  </td>
80
80
  <td data-value="100" class="pct high">100%</td>
81
- <td data-value="11" class="abs high">11/11</td>
81
+ <td data-value="12" class="abs high">12/12</td>
82
82
  <td data-value="50" class="pct medium">50%</td>
83
83
  <td data-value="2" class="abs medium">1/2</td>
84
84
  <td data-value="100" class="pct high">100%</td>
85
85
  <td data-value="4" class="abs high">4/4</td>
86
86
  <td data-value="100" class="pct high">100%</td>
87
- <td data-value="10" class="abs high">10/10</td>
87
+ <td data-value="11" class="abs high">11/11</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="92.73" class="pic high">
93
- <div class="chart"><div class="cover-fill" style="width: 92%"></div><div class="cover-empty" style="width: 8%"></div></div>
92
+ <td data-value="93.54" class="pic high">
93
+ <div class="chart"><div class="cover-fill" style="width: 93%"></div><div class="cover-empty" style="width: 7%"></div></div>
94
94
  </td>
95
- <td data-value="92.73" class="pct high">92.73%</td>
96
- <td data-value="55" class="abs high">51/55</td>
97
- <td data-value="68.42" class="pct medium">68.42%</td>
98
- <td data-value="19" class="abs medium">13/19</td>
95
+ <td data-value="93.54" class="pct high">93.54%</td>
96
+ <td data-value="62" class="abs high">58/62</td>
97
+ <td data-value="72" class="pct medium">72%</td>
98
+ <td data-value="25" class="abs medium">18/25</td>
99
99
  <td data-value="100" class="pct high">100%</td>
100
100
  <td data-value="4" class="abs high">4/4</td>
101
- <td data-value="94.44" class="pct high">94.44%</td>
102
- <td data-value="54" class="abs high">51/54</td>
101
+ <td data-value="95.08" class="pct high">95.08%</td>
102
+ <td data-value="61" class="abs high">58/61</td>
103
103
  </tr>
104
104
 
105
105
  <tr>
@@ -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 Thu Nov 18 2021 07:07:10 GMT+0000 (Coordinated Universal Time)
143
+ at Thu Nov 25 2021 16:48:05 GMT+0000 (Coordinated Universal Time)
144
144
  </div>
145
145
  </div>
146
146
  <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">92.73% </span>
26
+ <span class="strong">93.54% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>51/55</span>
28
+ <span class='fraction'>58/62</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">68.42% </span>
33
+ <span class="strong">72% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>13/19</span>
35
+ <span class='fraction'>18/25</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">94.44% </span>
47
+ <span class="strong">95.08% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>51/54</span>
49
+ <span class='fraction'>58/61</span>
50
50
  </div>
51
51
 
52
52
 
@@ -151,7 +151,21 @@
151
151
  <a name='L92'></a><a href='#L92'>92</a>
152
152
  <a name='L93'></a><a href='#L93'>93</a>
153
153
  <a name='L94'></a><a href='#L94'>94</a>
154
- <a name='L95'></a><a href='#L95'>95</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">33x</span>
154
+ <a name='L95'></a><a href='#L95'>95</a>
155
+ <a name='L96'></a><a href='#L96'>96</a>
156
+ <a name='L97'></a><a href='#L97'>97</a>
157
+ <a name='L98'></a><a href='#L98'>98</a>
158
+ <a name='L99'></a><a href='#L99'>99</a>
159
+ <a name='L100'></a><a href='#L100'>100</a>
160
+ <a name='L101'></a><a href='#L101'>101</a>
161
+ <a name='L102'></a><a href='#L102'>102</a>
162
+ <a name='L103'></a><a href='#L103'>103</a>
163
+ <a name='L104'></a><a href='#L104'>104</a>
164
+ <a name='L105'></a><a href='#L105'>105</a>
165
+ <a name='L106'></a><a href='#L106'>106</a>
166
+ <a name='L107'></a><a href='#L107'>107</a>
167
+ <a name='L108'></a><a href='#L108'>108</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">33x</span>
168
+ <span class="cline-any cline-yes">33x</span>
155
169
  <span class="cline-any cline-yes">33x</span>
156
170
  <span class="cline-any cline-yes">33x</span>
157
171
  <span class="cline-any cline-yes">33x</span>
@@ -239,6 +253,18 @@
239
253
  <span class="cline-any cline-neutral">&nbsp;</span>
240
254
  <span class="cline-any cline-neutral">&nbsp;</span>
241
255
  <span class="cline-any cline-yes">2x</span>
256
+ <span class="cline-any cline-yes">1x</span>
257
+ <span class="cline-any cline-yes">1x</span>
258
+ <span class="cline-any cline-yes">2x</span>
259
+ <span class="cline-any cline-yes">2x</span>
260
+ <span class="cline-any cline-yes">2x</span>
261
+ <span class="cline-any cline-neutral">&nbsp;</span>
262
+ <span class="cline-any cline-neutral">&nbsp;</span>
263
+ <span class="cline-any cline-neutral">&nbsp;</span>
264
+ <span class="cline-any cline-neutral">&nbsp;</span>
265
+ <span class="cline-any cline-neutral">&nbsp;</span>
266
+ <span class="cline-any cline-neutral">&nbsp;</span>
267
+ <span class="cline-any cline-yes">2x</span>
242
268
  <span class="cline-any cline-yes">2x</span>
243
269
  <span class="cline-any cline-yes">2x</span>
244
270
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -251,6 +277,7 @@ const { apiFileReturn } = require("../../../utilities/fileSystem")
251
277
  const exporters = require("./exporters")
252
278
  const { saveView, getView, getViews, deleteView } = require("./utils")
253
279
  const { fetchView } = require("../row")
280
+ const { getTable } = require("../table/utils")
254
281
  &nbsp;
255
282
  exports.fetch = async ctx =&gt; {
256
283
  const db = new CouchDB(ctx.appId)
@@ -303,11 +330,11 @@ exports.exportView = async ctx =&gt; {
303
330
  const view = await getView(db, viewName)
304
331
  &nbsp;
305
332
  const format = ctx.query.format
306
- <span class="missing-if-branch" title="if path not taken" >I</span>if (!format) {
333
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (!format || !Object.values(exporters.ExportFormats).includes(format)) {
307
334
  <span class="cstat-no" title="statement not covered" > ctx.throw(400, "Format must be specified, either csv or json")</span>
308
335
  }
309
336
  &nbsp;
310
- <span class="missing-if-branch" title="else path not taken" >E</span>if (view) {
337
+ if (view) {
311
338
  ctx.params.viewName = viewName
312
339
  // Fetch view rows
313
340
  ctx.query = {
@@ -316,7 +343,7 @@ exports.exportView = async ctx =&gt; {
316
343
  stats: !!view.meta.field,
317
344
  field: view.meta.field,
318
345
  }
319
- } else {
346
+ } else <span class="missing-if-branch" title="else path not taken" >E</span>{
320
347
  // table all_ view
321
348
  /* istanbul ignore next */
322
349
  ctx.params.viewName = viewName
@@ -325,11 +352,23 @@ exports.exportView = async ctx =&gt; {
325
352
  await fetchView(ctx)
326
353
  &nbsp;
327
354
  let schema = view &amp;&amp; view.meta &amp;&amp; view.meta.schema
328
- <span class="missing-if-branch" title="else path not taken" >E</span>if (!schema) {
355
+ if (!schema) {
329
356
  const tableId = ctx.params.tableId || view.meta.tableId
330
- const table = await db.get(tableId)
357
+ const table = await getTable(ctx.appId, tableId)
331
358
  schema = table.schema
332
359
  }
360
+ &nbsp;
361
+ // make sure no "undefined" entries appear in the CSV
362
+ if (format === exporters.ExportFormats.CSV) {
363
+ const schemaKeys = Object.keys(schema)
364
+ for (let key of schemaKeys) {
365
+ for (let row of ctx.body) {
366
+ if (row[key] == null) {
367
+ row[key] = ""
368
+ }
369
+ }
370
+ }
371
+ }
333
372
  &nbsp;
334
373
  // Export part
335
374
  let headers = Object.keys(schema)
@@ -346,7 +385,7 @@ exports.exportView = async ctx =&gt; {
346
385
  <div class='footer quiet pad2 space-top1 center small'>
347
386
  Code coverage generated by
348
387
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
349
- at Thu Nov 18 2021 07:07:10 GMT+0000 (Coordinated Universal Time)
388
+ at Thu Nov 25 2021 16:48:05 GMT+0000 (Coordinated Universal Time)
350
389
  </div>
351
390
  </div>
352
391
  <script src="../../../prettify.js"></script>
@@ -30,14 +30,14 @@
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">34.62% </span>
33
+ <span class="strong">34.61% </span>
34
34
  <span class="quiet">Branches</span>
35
35
  <span class='fraction'>9/26</span>
36
36
  </div>
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'>6/9</span>
43
43
  </div>
@@ -353,10 +353,10 @@
353
353
  const env = require("../../../environment")
354
354
  &nbsp;
355
355
  exports.getView = async (db, viewName) =&gt; {
356
- <span class="missing-if-branch" title="else path not taken" >E</span>if (env.SELF_HOSTED) {
356
+ if (env.SELF_HOSTED) {
357
357
  const designDoc = await db.get("_design/database")
358
358
  return designDoc.views[viewName]
359
- } else {
359
+ } else <span class="missing-if-branch" title="else path not taken" >E</span>{
360
360
  // This is a table view, don't read the view from the DB
361
361
  <span class="cstat-no" title="statement not covered" > if (viewName.startsWith(DocumentTypes.TABLE + SEPARATOR)) {</span>
362
362
  <span class="cstat-no" title="statement not covered" > return null</span>
@@ -369,7 +369,7 @@ exports.getView = async (db, viewName) =&gt; {
369
369
  &nbsp;
370
370
  exports.getViews = async db =&gt; {
371
371
  const response = []
372
- <span class="missing-if-branch" title="else path not taken" >E</span>if (env.SELF_HOSTED) {
372
+ if (env.SELF_HOSTED) {
373
373
  const designDoc = await db.get("_design/database")
374
374
  for (let name of Object.keys(designDoc.views)) {
375
375
  // Only return custom views, not built ins
@@ -381,7 +381,7 @@ exports.getViews = async db =&gt; {
381
381
  ...designDoc.views[name],
382
382
  })
383
383
  }
384
- } else {
384
+ } else <span class="missing-if-branch" title="else path not taken" >E</span>{
385
385
  const views = <span class="cstat-no" title="statement not covered" >(</span>
386
386
  await db.allDocs(
387
387
  getMemoryViewParams({
@@ -400,7 +400,7 @@ exports.getViews = async db =&gt; {
400
400
  }
401
401
  &nbsp;
402
402
  exports.saveView = async (db, originalName, viewName, viewTemplate) =&gt; {
403
- <span class="missing-if-branch" title="else path not taken" >E</span>if (env.SELF_HOSTED) {
403
+ if (env.SELF_HOSTED) {
404
404
  const designDoc = await db.get("_design/database")
405
405
  designDoc.views = {
406
406
  ...designDoc.views,
@@ -411,7 +411,7 @@ exports.saveView = async (db, originalName, viewName, viewTemplate) =&gt; {
411
411
  <span class="cstat-no" title="statement not covered" > delete designDoc.views[originalName]</span>
412
412
  }
413
413
  await db.put(designDoc)
414
- } else {
414
+ } else <span class="missing-if-branch" title="else path not taken" >E</span>{
415
415
  const id = <span class="cstat-no" title="statement not covered" >generateMemoryViewID(viewName)</span>
416
416
  const originalId = <span class="cstat-no" title="statement not covered" >originalName ? generateMemoryViewID(originalName) : null</span>
417
417
  const viewDoc = <span class="cstat-no" title="statement not covered" >{</span>
@@ -437,13 +437,13 @@ exports.saveView = async (db, originalName, viewName, viewTemplate) =&gt; {
437
437
  }
438
438
  &nbsp;
439
439
  exports.deleteView = async (db, viewName) =&gt; {
440
- <span class="missing-if-branch" title="else path not taken" >E</span>if (env.SELF_HOSTED) {
440
+ if (env.SELF_HOSTED) {
441
441
  const designDoc = await db.get("_design/database")
442
442
  const view = designDoc.views[viewName]
443
443
  delete designDoc.views[viewName]
444
444
  await db.put(designDoc)
445
445
  return view
446
- } else {
446
+ } else <span class="missing-if-branch" title="else path not taken" >E</span>{
447
447
  const id = <span class="cstat-no" title="statement not covered" >generateMemoryViewID(viewName)</span>
448
448
  const viewDoc = <span class="cstat-no" title="statement not covered" >await db.get(id)</span>
449
449
  <span class="cstat-no" title="statement not covered" > await db.remove(viewDoc._id, viewDoc._rev)</span>
@@ -493,7 +493,7 @@ exports.getFromMemoryDoc = async (db, viewName) =&gt; {
493
493
  <div class='footer quiet pad2 space-top1 center small'>
494
494
  Code coverage generated by
495
495
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
496
- at Thu Nov 18 2021 07:07:10 GMT+0000 (Coordinated Universal Time)
496
+ at Thu Nov 25 2021 16:48:05 GMT+0000 (Coordinated Universal Time)
497
497
  </div>
498
498
  </div>
499
499
  <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">84.85% </span>
26
+ <span class="strong">84.84% </span>
27
27
  <span class="quiet">Statements</span>
28
28
  <span class='fraction'>28/33</span>
29
29
  </div>
@@ -44,7 +44,7 @@
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">84.85% </span>
47
+ <span class="strong">84.84% </span>
48
48
  <span class="quiet">Lines</span>
49
49
  <span class='fraction'>28/33</span>
50
50
  </div>
@@ -550,7 +550,7 @@ module.exports = viewTemplate
550
550
  <div class='footer quiet pad2 space-top1 center small'>
551
551
  Code coverage generated by
552
552
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
553
- at Thu Nov 18 2021 07:07:10 GMT+0000 (Coordinated Universal Time)
553
+ at Thu Nov 25 2021 16:48:05 GMT+0000 (Coordinated Universal Time)
554
554
  </div>
555
555
  </div>
556
556
  <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">91.23% </span>
26
+ <span class="strong">91.22% </span>
27
27
  <span class="quiet">Statements</span>
28
28
  <span class='fraction'>52/57</span>
29
29
  </div>
@@ -340,7 +340,7 @@ exports.buildSchema = async ctx =&gt; {
340
340
  const webhook = await db.get(ctx.params.id)
341
341
  webhook.bodySchema = toJsonSchema(ctx.request.body)
342
342
  // update the automation outputs
343
- <span class="missing-if-branch" title="else path not taken" >E</span>if (webhook.action.type === exports.WebhookType.AUTOMATION) {
343
+ if (webhook.action.type === exports.WebhookType.AUTOMATION) {
344
344
  let automation = await db.get(webhook.action.target)
345
345
  const autoOutputs = automation.definition.trigger.schema.outputs
346
346
  let properties = webhook.bodySchema.properties
@@ -365,7 +365,7 @@ exports.trigger = async ctx =&gt; {
365
365
  <span class="cstat-no" title="statement not covered" > validate(ctx.request.body, webhook.bodySchema)</span>
366
366
  }
367
367
  const target = await db.get(webhook.action.target)
368
- <span class="missing-if-branch" title="else path not taken" >E</span>if (webhook.action.type === exports.WebhookType.AUTOMATION) {
368
+ if (webhook.action.type === exports.WebhookType.AUTOMATION) {
369
369
  // trigger with both the pure request and then expand it
370
370
  // incase the user has produced a schema to bind to
371
371
  await triggers.externalTrigger(target, {
@@ -394,7 +394,7 @@ exports.trigger = async ctx =&gt; {
394
394
  <div class='footer quiet pad2 space-top1 center small'>
395
395
  Code coverage generated by
396
396
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
397
- at Thu Nov 18 2021 07:07:10 GMT+0000 (Coordinated Universal Time)
397
+ at Thu Nov 25 2021 16:48:05 GMT+0000 (Coordinated Universal Time)
398
398
  </div>
399
399
  </div>
400
400
  <script src="../../prettify.js"></script>
@@ -95,7 +95,7 @@
95
95
  <div class='footer quiet pad2 space-top1 center small'>
96
96
  Code coverage generated by
97
97
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
98
- at Thu Nov 18 2021 07:07:10 GMT+0000 (Coordinated Universal Time)
98
+ at Thu Nov 25 2021 16:48:05 GMT+0000 (Coordinated Universal Time)
99
99
  </div>
100
100
  </div>
101
101
  <script src="../prettify.js"></script>
@@ -331,7 +331,7 @@ module.exports = router
331
331
  <div class='footer quiet pad2 space-top1 center small'>
332
332
  Code coverage generated by
333
333
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
334
- at Thu Nov 18 2021 07:07:10 GMT+0000 (Coordinated Universal Time)
334
+ at Thu Nov 25 2021 16:48:05 GMT+0000 (Coordinated Universal Time)
335
335
  </div>
336
336
  </div>
337
337
  <script src="../prettify.js"></script>
@@ -94,7 +94,7 @@ module.exports = router
94
94
  <div class='footer quiet pad2 space-top1 center small'>
95
95
  Code coverage generated by
96
96
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
97
- at Thu Nov 18 2021 07:07:10 GMT+0000 (Coordinated Universal Time)
97
+ at Thu Nov 25 2021 16:48:05 GMT+0000 (Coordinated Universal Time)
98
98
  </div>
99
99
  </div>
100
100
  <script src="../../prettify.js"></script>
@@ -100,7 +100,7 @@ module.exports = router
100
100
  <div class='footer quiet pad2 space-top1 center small'>
101
101
  Code coverage generated by
102
102
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
103
- at Thu Nov 18 2021 07:07:10 GMT+0000 (Coordinated Universal Time)
103
+ at Thu Nov 25 2021 16:48:05 GMT+0000 (Coordinated Universal Time)
104
104
  </div>
105
105
  </div>
106
106
  <script src="../../prettify.js"></script>
@@ -163,7 +163,7 @@ module.exports = router
163
163
  <div class='footer quiet pad2 space-top1 center small'>
164
164
  Code coverage generated by
165
165
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
166
- at Thu Nov 18 2021 07:07:10 GMT+0000 (Coordinated Universal Time)
166
+ at Thu Nov 25 2021 16:48:05 GMT+0000 (Coordinated Universal Time)
167
167
  </div>
168
168
  </div>
169
169
  <script src="../../prettify.js"></script>
@@ -88,7 +88,7 @@ module.exports = router
88
88
  <div class='footer quiet pad2 space-top1 center small'>
89
89
  Code coverage generated by
90
90
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
91
- at Thu Nov 18 2021 07:07:10 GMT+0000 (Coordinated Universal Time)
91
+ at Thu Nov 25 2021 16:48:05 GMT+0000 (Coordinated Universal Time)
92
92
  </div>
93
93
  </div>
94
94
  <script src="../../prettify.js"></script>
@@ -379,7 +379,7 @@ module.exports = router
379
379
  <div class='footer quiet pad2 space-top1 center small'>
380
380
  Code coverage generated by
381
381
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
382
- at Thu Nov 18 2021 07:07:10 GMT+0000 (Coordinated Universal Time)
382
+ at Thu Nov 25 2021 16:48:05 GMT+0000 (Coordinated Universal Time)
383
383
  </div>
384
384
  </div>
385
385
  <script src="../../prettify.js"></script>
@@ -94,7 +94,7 @@ module.exports = router
94
94
  <div class='footer quiet pad2 space-top1 center small'>
95
95
  Code coverage generated by
96
96
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
97
- at Thu Nov 18 2021 07:07:10 GMT+0000 (Coordinated Universal Time)
97
+ at Thu Nov 25 2021 16:48:05 GMT+0000 (Coordinated Universal Time)
98
98
  </div>
99
99
  </div>
100
100
  <script src="../../prettify.js"></script>
@@ -106,7 +106,7 @@ module.exports = router
106
106
  <div class='footer quiet pad2 space-top1 center small'>
107
107
  Code coverage generated by
108
108
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
109
- at Thu Nov 18 2021 07:07:10 GMT+0000 (Coordinated Universal Time)
109
+ at Thu Nov 25 2021 16:48:05 GMT+0000 (Coordinated Universal Time)
110
110
  </div>
111
111
  </div>
112
112
  <script src="../../prettify.js"></script>
@@ -106,7 +106,7 @@ module.exports = router
106
106
  <div class='footer quiet pad2 space-top1 center small'>
107
107
  Code coverage generated by
108
108
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
109
- at Thu Nov 18 2021 07:07:10 GMT+0000 (Coordinated Universal Time)
109
+ at Thu Nov 25 2021 16:48:05 GMT+0000 (Coordinated Universal Time)
110
110
  </div>
111
111
  </div>
112
112
  <script src="../../prettify.js"></script>
@@ -355,7 +355,7 @@ module.exports = router
355
355
  <div class='footer quiet pad2 space-top1 center small'>
356
356
  Code coverage generated by
357
357
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
358
- at Thu Nov 18 2021 07:07:10 GMT+0000 (Coordinated Universal Time)
358
+ at Thu Nov 25 2021 16:48:05 GMT+0000 (Coordinated Universal Time)
359
359
  </div>
360
360
  </div>
361
361
  <script src="../../prettify.js"></script>
@@ -115,7 +115,7 @@ module.exports = router
115
115
  <div class='footer quiet pad2 space-top1 center small'>
116
116
  Code coverage generated by
117
117
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
118
- at Thu Nov 18 2021 07:07:10 GMT+0000 (Coordinated Universal Time)
118
+ at Thu Nov 25 2021 16:48:05 GMT+0000 (Coordinated Universal Time)
119
119
  </div>
120
120
  </div>
121
121
  <script src="../../prettify.js"></script>
@@ -124,7 +124,7 @@ function redirectPath(path) {
124
124
  .delete(`/api/${path}/:devPath(.*)`, controller.buildRedirectDelete(path))
125
125
  }
126
126
  &nbsp;
127
- <span class="missing-if-branch" title="else path not taken" >E</span>if (env.isDev() || <span class="branch-1 cbranch-no" title="branch not covered" >env.isTest())</span> {
127
+ if (env.isDev() || <span class="branch-1 cbranch-no" title="branch not covered" >env.isTest())</span> {
128
128
  redirectPath("global")
129
129
  redirectPath("system")
130
130
  }
@@ -142,7 +142,7 @@ module.exports = router
142
142
  <div class='footer quiet pad2 space-top1 center small'>
143
143
  Code coverage generated by
144
144
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
145
- at Thu Nov 18 2021 07:07:10 GMT+0000 (Coordinated Universal Time)
145
+ at Thu Nov 25 2021 16:48:05 GMT+0000 (Coordinated Universal Time)
146
146
  </div>
147
147
  </div>
148
148
  <script src="../../prettify.js"></script>
@@ -103,7 +103,7 @@ module.exports = router
103
103
  <div class='footer quiet pad2 space-top1 center small'>
104
104
  Code coverage generated by
105
105
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
106
- at Thu Nov 18 2021 07:07:10 GMT+0000 (Coordinated Universal Time)
106
+ at Thu Nov 25 2021 16:48:05 GMT+0000 (Coordinated Universal Time)
107
107
  </div>
108
108
  </div>
109
109
  <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">97.42% </span>
26
+ <span class="strong">97.41% </span>
27
27
  <span class="quiet">Statements</span>
28
28
  <span class='fraction'>264/271</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">63.64% </span>
33
+ <span class="strong">63.63% </span>
34
34
  <span class="quiet">Branches</span>
35
35
  <span class='fraction'>7/11</span>
36
36
  </div>
@@ -44,7 +44,7 @@
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">97.42% </span>
47
+ <span class="strong">97.41% </span>
48
48
  <span class="quiet">Lines</span>
49
49
  <span class='fraction'>264/271</span>
50
50
  </div>
@@ -515,7 +515,7 @@
515
515
  <div class='footer quiet pad2 space-top1 center small'>
516
516
  Code coverage generated by
517
517
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
518
- at Thu Nov 18 2021 07:07:10 GMT+0000 (Coordinated Universal Time)
518
+ at Thu Nov 25 2021 16:48:05 GMT+0000 (Coordinated Universal Time)
519
519
  </div>
520
520
  </div>
521
521
  <script src="../../prettify.js"></script>
@@ -244,7 +244,7 @@ exports.staticRoutes = staticRoutes
244
244
  <div class='footer quiet pad2 space-top1 center small'>
245
245
  Code coverage generated by
246
246
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
247
- at Thu Nov 18 2021 07:07:10 GMT+0000 (Coordinated Universal Time)
247
+ at Thu Nov 25 2021 16:48:05 GMT+0000 (Coordinated Universal Time)
248
248
  </div>
249
249
  </div>
250
250
  <script src="../../prettify.js"></script>
@@ -100,7 +100,7 @@ module.exports = router
100
100
  <div class='footer quiet pad2 space-top1 center small'>
101
101
  Code coverage generated by
102
102
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
103
- at Thu Nov 18 2021 07:07:10 GMT+0000 (Coordinated Universal Time)
103
+ at Thu Nov 25 2021 16:48:05 GMT+0000 (Coordinated Universal Time)
104
104
  </div>
105
105
  </div>
106
106
  <script src="../../prettify.js"></script>
@@ -112,7 +112,7 @@ module.exports = router
112
112
  <div class='footer quiet pad2 space-top1 center small'>
113
113
  Code coverage generated by
114
114
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
115
- at Thu Nov 18 2021 07:07:10 GMT+0000 (Coordinated Universal Time)
115
+ at Thu Nov 25 2021 16:48:05 GMT+0000 (Coordinated Universal Time)
116
116
  </div>
117
117
  </div>
118
118
  <script src="../../prettify.js"></script>