@budibase/server 1.0.123 → 1.0.125

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 (325) hide show
  1. package/builder/assets/index.3d890df7.js +1299 -0
  2. package/builder/assets/index.89795487.css +6 -0
  3. package/builder/assets/{vendor.8e34a169.js → vendor.5240f480.js} +1 -1
  4. package/builder/index.html +3 -3
  5. package/coverage/clover.xml +695 -1678
  6. package/coverage/coverage-final.json +28 -43
  7. package/coverage/lcov-report/api/controllers/analytics.js.html +8 -3
  8. package/coverage/lcov-report/api/controllers/apikeys.js.html +9 -4
  9. package/coverage/lcov-report/api/controllers/auth.js.html +8 -3
  10. package/coverage/lcov-report/api/controllers/automation.js.html +8 -3
  11. package/coverage/lcov-report/api/controllers/backup.js.html +8 -3
  12. package/coverage/lcov-report/api/controllers/cloud.js.html +8 -3
  13. package/coverage/lcov-report/api/controllers/component.js.html +8 -3
  14. package/coverage/lcov-report/api/controllers/datasource.js.html +11 -6
  15. package/coverage/lcov-report/api/controllers/dev.js.html +8 -3
  16. package/coverage/lcov-report/api/controllers/index.html +16 -26
  17. package/coverage/lcov-report/api/controllers/integration.js.html +8 -3
  18. package/coverage/lcov-report/api/controllers/layout.js.html +8 -3
  19. package/coverage/lcov-report/api/controllers/metadata.js.html +8 -3
  20. package/coverage/lcov-report/api/controllers/migrations.js.html +8 -3
  21. package/coverage/lcov-report/api/controllers/permission.js.html +8 -3
  22. package/coverage/lcov-report/api/controllers/query/index.html +16 -26
  23. package/coverage/lcov-report/api/controllers/query/validation.js.html +8 -3
  24. package/coverage/lcov-report/api/controllers/role.js.html +10 -5
  25. package/coverage/lcov-report/api/controllers/routing.js.html +9 -4
  26. package/coverage/lcov-report/api/controllers/row/external.js.html +8 -3
  27. package/coverage/lcov-report/api/controllers/row/index.html +25 -35
  28. package/coverage/lcov-report/api/controllers/row/internal.js.html +32 -24
  29. package/coverage/lcov-report/api/controllers/row/internalSearch.js.html +21 -16
  30. package/coverage/lcov-report/api/controllers/row/staticFormula.js.html +24 -19
  31. package/coverage/lcov-report/api/controllers/row/utils.js.html +33 -19
  32. package/coverage/lcov-report/api/controllers/screen.js.html +9 -4
  33. package/coverage/lcov-report/api/controllers/script.js.html +8 -3
  34. package/coverage/lcov-report/api/controllers/table/bulkFormula.js.html +55 -50
  35. package/coverage/lcov-report/api/controllers/table/external.js.html +8 -3
  36. package/coverage/lcov-report/api/controllers/table/index.html +19 -44
  37. package/coverage/lcov-report/api/controllers/table/index.js.html +20 -15
  38. package/coverage/lcov-report/api/controllers/templates.js.html +8 -3
  39. package/coverage/lcov-report/api/controllers/user.js.html +8 -3
  40. package/coverage/lcov-report/api/controllers/view/exporters.js.html +8 -3
  41. package/coverage/lcov-report/api/controllers/view/index.html +8 -3
  42. package/coverage/lcov-report/api/controllers/view/index.js.html +10 -5
  43. package/coverage/lcov-report/api/controllers/view/utils.js.html +8 -3
  44. package/coverage/lcov-report/api/controllers/view/viewBuilder.js.html +8 -3
  45. package/coverage/lcov-report/api/controllers/webhook.js.html +10 -5
  46. package/coverage/lcov-report/api/index.html +18 -13
  47. package/coverage/lcov-report/api/index.js.html +28 -8
  48. package/coverage/lcov-report/api/routes/analytics.js.html +8 -3
  49. package/coverage/lcov-report/api/routes/apikeys.js.html +8 -3
  50. package/coverage/lcov-report/api/routes/auth.js.html +8 -3
  51. package/coverage/lcov-report/api/routes/automation.js.html +8 -3
  52. package/coverage/lcov-report/api/routes/backup.js.html +8 -3
  53. package/coverage/lcov-report/api/routes/cloud.js.html +8 -3
  54. package/coverage/lcov-report/api/routes/component.js.html +8 -3
  55. package/coverage/lcov-report/api/routes/datasource.js.html +8 -3
  56. package/coverage/lcov-report/api/routes/deploy.js.html +8 -3
  57. package/coverage/lcov-report/api/routes/dev.js.html +9 -4
  58. package/coverage/lcov-report/api/routes/index.html +13 -68
  59. package/coverage/lcov-report/api/routes/integration.js.html +8 -3
  60. package/coverage/lcov-report/api/routes/layout.js.html +8 -3
  61. package/coverage/lcov-report/api/routes/metadata.js.html +8 -3
  62. package/coverage/lcov-report/api/routes/migrations.js.html +8 -3
  63. package/coverage/lcov-report/api/routes/permission.js.html +8 -3
  64. package/coverage/lcov-report/api/routes/query.js.html +8 -3
  65. package/coverage/lcov-report/api/routes/role.js.html +8 -3
  66. package/coverage/lcov-report/api/routes/routing.js.html +8 -3
  67. package/coverage/lcov-report/api/routes/screen.js.html +8 -3
  68. package/coverage/lcov-report/api/routes/script.js.html +8 -3
  69. package/coverage/lcov-report/api/routes/table.js.html +8 -3
  70. package/coverage/lcov-report/api/routes/templates.js.html +8 -3
  71. package/coverage/lcov-report/api/routes/user.js.html +8 -3
  72. package/coverage/lcov-report/api/routes/utils/index.html +8 -3
  73. package/coverage/lcov-report/api/routes/utils/validators.js.html +8 -3
  74. package/coverage/lcov-report/api/routes/view.js.html +8 -3
  75. package/coverage/lcov-report/api/routes/webhook.js.html +8 -3
  76. package/coverage/lcov-report/automations/actions.js.html +21 -7
  77. package/coverage/lcov-report/automations/automationUtils.js.html +64 -23
  78. package/coverage/lcov-report/automations/bullboard.js.html +8 -3
  79. package/coverage/lcov-report/automations/index.html +27 -37
  80. package/coverage/lcov-report/automations/index.js.html +8 -3
  81. package/coverage/lcov-report/automations/steps/bash.js.html +8 -3
  82. package/coverage/lcov-report/automations/steps/delay.js.html +8 -3
  83. package/coverage/lcov-report/automations/steps/discord.js.html +8 -3
  84. package/coverage/lcov-report/automations/steps/executeQuery.js.html +8 -3
  85. package/coverage/lcov-report/automations/steps/executeScript.js.html +8 -3
  86. package/coverage/lcov-report/automations/steps/filter.js.html +8 -3
  87. package/coverage/lcov-report/automations/steps/index.html +31 -41
  88. package/coverage/lcov-report/automations/steps/integromat.js.html +8 -3
  89. package/coverage/lcov-report/{api/routes/static.js.html → automations/steps/loop.js.html} +70 -80
  90. package/coverage/lcov-report/automations/steps/outgoingWebhook.js.html +9 -4
  91. package/coverage/lcov-report/automations/steps/queryRows.js.html +9 -4
  92. package/coverage/lcov-report/automations/steps/sendSmtpEmail.js.html +8 -3
  93. package/coverage/lcov-report/automations/steps/serverLog.js.html +8 -3
  94. package/coverage/lcov-report/automations/steps/slack.js.html +8 -3
  95. package/coverage/lcov-report/automations/steps/updateRow.js.html +8 -3
  96. package/coverage/lcov-report/automations/steps/utils.js.html +14 -9
  97. package/coverage/lcov-report/automations/steps/zapier.js.html +8 -3
  98. package/coverage/lcov-report/automations/triggerInfo/app.js.html +8 -3
  99. package/coverage/lcov-report/automations/triggerInfo/cron.js.html +8 -3
  100. package/coverage/lcov-report/automations/triggerInfo/index.html +8 -3
  101. package/coverage/lcov-report/automations/triggerInfo/index.js.html +8 -3
  102. package/coverage/lcov-report/automations/triggerInfo/rowDeleted.js.html +8 -3
  103. package/coverage/lcov-report/automations/triggerInfo/rowSaved.js.html +8 -3
  104. package/coverage/lcov-report/automations/triggerInfo/rowUpdated.js.html +8 -3
  105. package/coverage/lcov-report/automations/triggerInfo/webhook.js.html +8 -3
  106. package/coverage/lcov-report/automations/triggers.js.html +16 -11
  107. package/coverage/lcov-report/block-navigation.js +8 -0
  108. package/coverage/lcov-report/constants/index.html +12 -7
  109. package/coverage/lcov-report/constants/index.js.html +55 -32
  110. package/coverage/lcov-report/constants/layouts.js.html +8 -3
  111. package/coverage/lcov-report/constants/screens.js.html +8 -3
  112. package/coverage/lcov-report/db/inMemoryView.js.html +8 -3
  113. package/coverage/lcov-report/db/index.html +8 -3
  114. package/coverage/lcov-report/db/index.js.html +9 -4
  115. package/coverage/lcov-report/db/linkedRows/LinkController.js.html +20 -15
  116. package/coverage/lcov-report/db/linkedRows/index.html +8 -3
  117. package/coverage/lcov-report/db/linkedRows/index.js.html +22 -17
  118. package/coverage/lcov-report/db/linkedRows/linkUtils.js.html +12 -7
  119. package/coverage/lcov-report/db/newid.js.html +11 -6
  120. package/coverage/lcov-report/db/utils.js.html +84 -79
  121. package/coverage/lcov-report/events/AutomationEmitter.js.html +14 -9
  122. package/coverage/lcov-report/events/index.html +8 -3
  123. package/coverage/lcov-report/events/index.js.html +9 -4
  124. package/coverage/lcov-report/events/utils.js.html +18 -13
  125. package/coverage/lcov-report/index.html +125 -120
  126. package/coverage/lcov-report/integrations/tests/TestConfiguration.js.html +8 -3
  127. package/coverage/lcov-report/integrations/tests/index.html +8 -3
  128. package/coverage/lcov-report/middleware/appInfo.js.html +8 -3
  129. package/coverage/lcov-report/middleware/builder.js.html +8 -3
  130. package/coverage/lcov-report/middleware/currentapp.js.html +65 -15
  131. package/coverage/lcov-report/middleware/index.html +25 -50
  132. package/coverage/lcov-report/middleware/joi-validator.js.html +9 -4
  133. package/coverage/lcov-report/middleware/publicApi.js.html +8 -3
  134. package/coverage/lcov-report/middleware/resourceId.js.html +8 -3
  135. package/coverage/lcov-report/middleware/selfhost.js.html +9 -4
  136. package/coverage/lcov-report/middleware/utils.js.html +8 -3
  137. package/coverage/lcov-report/sorter.js +26 -0
  138. package/coverage/lcov-report/threads/automation.js.html +581 -90
  139. package/coverage/lcov-report/threads/index.html +30 -40
  140. package/coverage/lcov-report/threads/query.js.html +9 -4
  141. package/coverage/lcov-report/threads/utils.js.html +17 -9
  142. package/coverage/lcov-report/utilities/bcrypt.js.html +8 -3
  143. package/coverage/lcov-report/utilities/budibaseDir.js.html +8 -3
  144. package/coverage/lcov-report/utilities/centralPath.js.html +8 -3
  145. package/coverage/lcov-report/utilities/csvParser.js.html +10 -5
  146. package/coverage/lcov-report/utilities/global.js.html +9 -4
  147. package/coverage/lcov-report/utilities/index.html +8 -3
  148. package/coverage/lcov-report/utilities/index.js.html +11 -6
  149. package/coverage/lcov-report/utilities/queue/inMemoryQueue.js.html +32 -9
  150. package/coverage/lcov-report/utilities/queue/index.html +12 -7
  151. package/coverage/lcov-report/utilities/routing/index.html +8 -3
  152. package/coverage/lcov-report/utilities/routing/index.js.html +8 -3
  153. package/coverage/lcov-report/utilities/rowProcessor/index.html +8 -3
  154. package/coverage/lcov-report/utilities/rowProcessor/index.js.html +48 -43
  155. package/coverage/lcov-report/utilities/rowProcessor/utils.js.html +18 -13
  156. package/coverage/lcov-report/utilities/scriptRunner.js.html +8 -3
  157. package/coverage/lcov-report/utilities/security.js.html +9 -4
  158. package/coverage/lcov-report/utilities/statusCodes.js.html +8 -3
  159. package/coverage/lcov-report/utilities/usageQuota/index.html +24 -34
  160. package/coverage/lcov-report/utilities/usageQuota/rows.js.html +44 -39
  161. package/coverage/lcov-report/utilities/usageQuota/usageQuoteReset.js.html +8 -3
  162. package/coverage/lcov-report/utilities/users.js.html +8 -3
  163. package/coverage/lcov-report/utilities/workerRequests.js.html +9 -4
  164. package/coverage/lcov.info +1144 -2875
  165. package/dist/api/controllers/application.js +145 -73
  166. package/dist/api/controllers/deploy/index.js +68 -36
  167. package/dist/api/controllers/public/applications.js +29 -9
  168. package/dist/api/controllers/public/queries.js +27 -7
  169. package/dist/api/controllers/public/rows.js +32 -12
  170. package/dist/api/controllers/public/tables.js +2 -2
  171. package/dist/api/controllers/public/users.js +8 -8
  172. package/dist/api/controllers/public/utils.js +1 -1
  173. package/dist/api/controllers/query/import/index.js +3 -3
  174. package/dist/api/controllers/query/index.js +57 -44
  175. package/dist/api/controllers/row/ExternalRequest.js +27 -27
  176. package/dist/api/controllers/row/index.js +83 -60
  177. package/dist/api/controllers/row/internal.js +2 -1
  178. package/dist/api/controllers/row/utils.js +2 -1
  179. package/dist/api/controllers/static/templates/BudibaseApp.svelte +3 -0
  180. package/dist/api/controllers/table/bulkFormula.js +2 -1
  181. package/dist/api/controllers/table/internal.js +41 -35
  182. package/dist/api/controllers/table/utils.js +271 -229
  183. package/dist/api/index.js +5 -0
  184. package/dist/api/routes/application.js +39 -13
  185. package/dist/api/routes/index.js +61 -56
  186. package/dist/api/routes/public/index.js +6 -9
  187. package/dist/api/routes/public/queries.js +1 -1
  188. package/dist/api/routes/public/rows.js +1 -1
  189. package/dist/api/routes/public/tables.js +3 -3
  190. package/dist/api/routes/public/users.js +1 -1
  191. package/dist/api/routes/row.js +43 -17
  192. package/dist/api/routes/static.js +40 -13
  193. package/dist/api/routes/tests/utilities/TestFunctions.js +75 -33
  194. package/dist/app.js +8 -4
  195. package/dist/automations/actions.js +3 -0
  196. package/dist/automations/automationUtils.js +10 -0
  197. package/dist/automations/steps/createRow.js +12 -12
  198. package/dist/automations/steps/deleteRow.js +13 -16
  199. package/dist/automations/steps/loop.js +51 -0
  200. package/dist/automations/tests/utilities/index.js +13 -11
  201. package/dist/automations/utils.js +187 -133
  202. package/dist/constants/index.js +5 -0
  203. package/dist/definitions/datasource.js +1 -0
  204. package/dist/environment.js +2 -3
  205. package/dist/index.js +4 -0
  206. package/dist/integrations/base/sql.js +2 -2
  207. package/dist/integrations/base/sqlTable.js +2 -2
  208. package/dist/integrations/googlesheets.js +1 -1
  209. package/dist/integrations/index.js +4 -0
  210. package/dist/integrations/microsoftSqlServer.js +8 -8
  211. package/dist/integrations/mysql.js +9 -9
  212. package/dist/integrations/oracle.js +7 -7
  213. package/dist/integrations/postgres.js +7 -7
  214. package/dist/integrations/queries/sql.js +2 -2
  215. package/dist/integrations/redis.js +158 -0
  216. package/dist/integrations/rest.js +1 -1
  217. package/dist/middleware/authorized.js +51 -51
  218. package/dist/middleware/currentapp.js +15 -1
  219. package/dist/migrations/functions/appUrls.js +1 -1
  220. package/dist/migrations/functions/developerQuota.js +49 -0
  221. package/dist/migrations/functions/publishedAppsQuota.js +47 -0
  222. package/dist/migrations/functions/quotas1.js +6 -2
  223. package/dist/migrations/functions/usageQuotas/index.js +0 -4
  224. package/dist/migrations/functions/usageQuotas/syncApps.js +4 -7
  225. package/dist/migrations/functions/usageQuotas/syncDevelopers.js +24 -0
  226. package/dist/migrations/functions/usageQuotas/syncPublishedApps.js +26 -0
  227. package/dist/migrations/functions/usageQuotas/syncRows.js +5 -8
  228. package/dist/migrations/index.js +17 -1
  229. package/dist/package.json +14 -8
  230. package/dist/threads/automation.js +149 -27
  231. package/dist/threads/index.js +36 -10
  232. package/dist/threads/utils.js +1 -0
  233. package/dist/tsconfig.build.tsbuildinfo +1 -0
  234. package/dist/utilities/queue/inMemoryQueue.js +6 -1
  235. package/nodemon.json +1 -1
  236. package/package.json +15 -9
  237. package/scripts/dev/manage.js +2 -0
  238. package/src/api/controllers/{application.js → application.ts} +118 -51
  239. package/src/api/controllers/deploy/{index.js → index.ts} +53 -29
  240. package/src/api/controllers/public/applications.ts +2 -2
  241. package/src/api/controllers/public/queries.ts +1 -1
  242. package/src/api/controllers/public/rows.ts +1 -1
  243. package/src/api/controllers/query/{index.js → index.ts} +51 -48
  244. package/src/api/controllers/row/ExternalRequest.ts +1 -1
  245. package/src/api/controllers/row/{index.js → index.ts} +24 -17
  246. package/src/api/controllers/row/internal.js +2 -1
  247. package/src/api/controllers/row/utils.js +4 -1
  248. package/src/api/controllers/static/templates/BudibaseApp.svelte +3 -0
  249. package/src/api/controllers/table/bulkFormula.js +1 -1
  250. package/src/api/controllers/table/{internal.js → internal.ts} +30 -26
  251. package/src/api/controllers/table/{utils.js → utils.ts} +86 -69
  252. package/src/api/index.js +5 -0
  253. package/src/api/routes/{application.js → application.ts} +8 -14
  254. package/src/api/routes/index.ts +60 -0
  255. package/src/api/routes/public/index.ts +1 -4
  256. package/src/api/routes/{row.js → row.ts} +7 -15
  257. package/src/api/routes/{static.js → static.ts} +11 -11
  258. package/src/api/routes/tests/misc.spec.js +39 -37
  259. package/src/api/routes/tests/utilities/{TestFunctions.js → TestFunctions.ts} +57 -33
  260. package/src/app.ts +1 -2
  261. package/src/automations/actions.js +3 -0
  262. package/src/automations/automationUtils.js +12 -0
  263. package/src/automations/steps/{createRow.js → createRow.ts} +9 -15
  264. package/src/automations/steps/{deleteRow.js → deleteRow.ts} +10 -16
  265. package/src/automations/steps/loop.js +50 -0
  266. package/src/automations/tests/automation.spec.js +0 -1
  267. package/src/automations/tests/{createRow.spec.js → createRow.spec.ts} +4 -15
  268. package/src/automations/tests/{deleteRow.spec.js → deleteRow.spec.ts} +3 -5
  269. package/src/automations/tests/utilities/index.js +12 -10
  270. package/src/automations/{utils.js → utils.ts} +39 -28
  271. package/src/constants/index.js +6 -0
  272. package/src/definitions/common.ts +1 -0
  273. package/src/definitions/datasource.ts +1 -0
  274. package/src/environment.js +2 -3
  275. package/src/index.ts +3 -0
  276. package/src/integrations/index.ts +4 -0
  277. package/src/integrations/redis.ts +152 -0
  278. package/src/integrations/tests/redis.spec.js +60 -0
  279. package/src/middleware/{authorized.js → authorized.ts} +20 -14
  280. package/src/middleware/currentapp.js +16 -1
  281. package/src/middleware/tests/currentapp.spec.js +8 -4
  282. package/src/migrations/functions/developerQuota.ts +15 -0
  283. package/src/migrations/functions/publishedAppsQuota.ts +13 -0
  284. package/src/migrations/functions/tests/quotas1.spec.js +0 -2
  285. package/src/migrations/functions/usageQuotas/index.ts +0 -5
  286. package/src/migrations/functions/usageQuotas/syncApps.ts +3 -6
  287. package/src/migrations/functions/usageQuotas/syncDevelopers.ts +19 -0
  288. package/src/migrations/functions/usageQuotas/syncPublishedApps.ts +21 -0
  289. package/src/migrations/functions/usageQuotas/syncRows.ts +3 -6
  290. package/src/migrations/functions/usageQuotas/tests/syncApps.spec.ts +34 -0
  291. package/src/migrations/functions/usageQuotas/tests/syncRows.spec.ts +40 -0
  292. package/src/migrations/index.ts +13 -1
  293. package/src/threads/automation.js +196 -34
  294. package/src/threads/{index.js → index.ts} +18 -14
  295. package/src/threads/utils.js +1 -0
  296. package/src/utilities/queue/inMemoryQueue.js +7 -1
  297. package/tsconfig.build.json +10 -0
  298. package/tsconfig.json +2 -2
  299. package/builder/assets/index.68a7f4e3.css +0 -6
  300. package/builder/assets/index.8d4a5b33.js +0 -1291
  301. package/coverage/lcov-report/api/controllers/application.js.html +0 -1436
  302. package/coverage/lcov-report/api/controllers/query/index.js.html +0 -713
  303. package/coverage/lcov-report/api/controllers/row/index.js.html +0 -524
  304. package/coverage/lcov-report/api/controllers/table/internal.js.html +0 -620
  305. package/coverage/lcov-report/api/controllers/table/utils.js.html +0 -1331
  306. package/coverage/lcov-report/api/routes/application.js.html +0 -179
  307. package/coverage/lcov-report/api/routes/index.js.html +0 -266
  308. package/coverage/lcov-report/api/routes/row.js.html +0 -908
  309. package/coverage/lcov-report/automations/steps/createRow.js.html +0 -380
  310. package/coverage/lcov-report/automations/steps/deleteRow.js.html +0 -347
  311. package/coverage/lcov-report/automations/utils.js.html +0 -665
  312. package/coverage/lcov-report/middleware/authorized.js.html +0 -458
  313. package/coverage/lcov-report/middleware/usageQuota.js.html +0 -572
  314. package/coverage/lcov-report/threads/index.js.html +0 -296
  315. package/coverage/lcov-report/utilities/usageQuota/index.js.html +0 -359
  316. package/dist/middleware/usageQuota.js +0 -154
  317. package/dist/tsconfig.tsbuildinfo +0 -1
  318. package/dist/utilities/usageQuota/index.js +0 -86
  319. package/src/api/routes/index.js +0 -62
  320. package/src/middleware/tests/usageQuota.spec.js +0 -120
  321. package/src/middleware/usageQuota.js +0 -164
  322. package/src/migrations/functions/usageQuotas/tests/syncApps.spec.js +0 -41
  323. package/src/migrations/functions/usageQuotas/tests/syncRows.spec.js +0 -45
  324. package/src/utilities/tests/usageQuota/usageQuota.spec.js +0 -72
  325. package/src/utilities/usageQuota/index.js +0 -93
@@ -54,6 +54,12 @@
54
54
  <p class="quiet">
55
55
  Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
56
56
  </p>
57
+ <template id="filterTemplate">
58
+ <div class="quiet">
59
+ Filter:
60
+ <input oninput="onInput()" type="search" id="fileSearch">
61
+ </div>
62
+ </template>
57
63
  </div>
58
64
  <div class='status-line medium'></div>
59
65
  <pre><table class="coverage">
@@ -165,15 +171,15 @@
165
171
  <span class="cline-any cline-yes">41x</span>
166
172
  <span class="cline-any cline-neutral">&nbsp;</span>
167
173
  <span class="cline-any cline-neutral">&nbsp;</span>
168
- <span class="cline-any cline-yes">109x</span>
169
- <span class="cline-any cline-yes">106x</span>
174
+ <span class="cline-any cline-yes">108x</span>
175
+ <span class="cline-any cline-yes">105x</span>
170
176
  <span class="cline-any cline-neutral">&nbsp;</span>
171
- <span class="cline-any cline-yes">109x</span>
177
+ <span class="cline-any cline-yes">108x</span>
172
178
  <span class="cline-any cline-no">&nbsp;</span>
173
- <span class="cline-any cline-yes">109x</span>
179
+ <span class="cline-any cline-yes">108x</span>
174
180
  <span class="cline-any cline-no">&nbsp;</span>
175
181
  <span class="cline-any cline-neutral">&nbsp;</span>
176
- <span class="cline-any cline-yes">109x</span>
182
+ <span class="cline-any cline-yes">108x</span>
177
183
  <span class="cline-any cline-neutral">&nbsp;</span>
178
184
  <span class="cline-any cline-neutral">&nbsp;</span>
179
185
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -211,14 +217,14 @@
211
217
  <span class="cline-any cline-neutral">&nbsp;</span>
212
218
  <span class="cline-any cline-neutral">&nbsp;</span>
213
219
  <span class="cline-any cline-yes">41x</span>
214
- <span class="cline-any cline-yes">106x</span>
215
- <span class="cline-any cline-yes">106x</span>
216
- <span class="cline-any cline-yes">106x</span>
217
- <span class="cline-any cline-yes">106x</span>
218
- <span class="cline-any cline-yes">106x</span>
219
- <span class="cline-any cline-yes">106x</span>
220
+ <span class="cline-any cline-yes">105x</span>
221
+ <span class="cline-any cline-yes">105x</span>
222
+ <span class="cline-any cline-yes">105x</span>
223
+ <span class="cline-any cline-yes">105x</span>
224
+ <span class="cline-any cline-yes">105x</span>
225
+ <span class="cline-any cline-yes">105x</span>
220
226
  <span class="cline-any cline-neutral">&nbsp;</span>
221
- <span class="cline-any cline-yes">106x</span>
227
+ <span class="cline-any cline-yes">105x</span>
222
228
  <span class="cline-any cline-neutral">&nbsp;</span>
223
229
  <span class="cline-any cline-neutral">&nbsp;</span>
224
230
  <span class="cline-any cline-yes">41x</span>
@@ -360,10 +366,9 @@ exports.validateCSVSchema = async function (ctx) {
360
366
  </div><!-- /wrapper -->
361
367
  <div class='footer quiet pad2 space-top1 center small'>
362
368
  Code coverage generated by
363
- <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
364
- at Tue Apr 26 2022 17:11:02 GMT+0000 (Coordinated Universal Time)
369
+ <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
370
+ at Wed Apr 27 2022 09:28:42 GMT+0000 (Coordinated Universal Time)
365
371
  </div>
366
- </div>
367
372
  <script src="../../../prettify.js"></script>
368
373
  <script>
369
374
  window.onload = function () {
@@ -54,6 +54,12 @@
54
54
  <p class="quiet">
55
55
  Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
56
56
  </p>
57
+ <template id="filterTemplate">
58
+ <div class="quiet">
59
+ Filter:
60
+ <input oninput="onInput()" type="search" id="fileSearch">
61
+ </div>
62
+ </template>
57
63
  </div>
58
64
  <div class='status-line high'></div>
59
65
  <pre><table class="coverage">
@@ -180,10 +186,9 @@ exports.downloadTemplate = async function (ctx) {
180
186
  </div><!-- /wrapper -->
181
187
  <div class='footer quiet pad2 space-top1 center small'>
182
188
  Code coverage generated by
183
- <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
184
- at Tue Apr 26 2022 17:11:02 GMT+0000 (Coordinated Universal Time)
189
+ <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
190
+ at Wed Apr 27 2022 09:28:42 GMT+0000 (Coordinated Universal Time)
185
191
  </div>
186
- </div>
187
192
  <script src="../../prettify.js"></script>
188
193
  <script>
189
194
  window.onload = function () {
@@ -54,6 +54,12 @@
54
54
  <p class="quiet">
55
55
  Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
56
56
  </p>
57
+ <template id="filterTemplate">
58
+ <div class="quiet">
59
+ Filter:
60
+ <input oninput="onInput()" type="search" id="fileSearch">
61
+ </div>
62
+ </template>
57
63
  </div>
58
64
  <div class='status-line low'></div>
59
65
  <pre><table class="coverage">
@@ -765,10 +771,9 @@ exports.getFlags = <span class="fstat-no" title="function not covered" >as</span
765
771
  </div><!-- /wrapper -->
766
772
  <div class='footer quiet pad2 space-top1 center small'>
767
773
  Code coverage generated by
768
- <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
769
- at Tue Apr 26 2022 17:11:02 GMT+0000 (Coordinated Universal Time)
774
+ <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
775
+ at Wed Apr 27 2022 09:28:42 GMT+0000 (Coordinated Universal Time)
770
776
  </div>
771
- </div>
772
777
  <script src="../../prettify.js"></script>
773
778
  <script>
774
779
  window.onload = function () {
@@ -54,6 +54,12 @@
54
54
  <p class="quiet">
55
55
  Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
56
56
  </p>
57
+ <template id="filterTemplate">
58
+ <div class="quiet">
59
+ Filter:
60
+ <input oninput="onInput()" type="search" id="fileSearch">
61
+ </div>
62
+ </template>
57
63
  </div>
58
64
  <div class='status-line high'></div>
59
65
  <pre><table class="coverage">
@@ -141,10 +147,9 @@ exports.ExportFormats = {
141
147
  </div><!-- /wrapper -->
142
148
  <div class='footer quiet pad2 space-top1 center small'>
143
149
  Code coverage generated by
144
- <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
145
- at Tue Apr 26 2022 17:11:02 GMT+0000 (Coordinated Universal Time)
150
+ <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
151
+ at Wed Apr 27 2022 09:28:42 GMT+0000 (Coordinated Universal Time)
146
152
  </div>
147
- </div>
148
153
  <script src="../../../prettify.js"></script>
149
154
  <script>
150
155
  window.onload = function () {
@@ -54,6 +54,12 @@
54
54
  <p class="quiet">
55
55
  Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
56
56
  </p>
57
+ <template id="filterTemplate">
58
+ <div class="quiet">
59
+ Filter:
60
+ <input oninput="onInput()" type="search" id="fileSearch">
61
+ </div>
62
+ </template>
57
63
  </div>
58
64
  <div class='status-line medium'></div>
59
65
  <div class="pad1">
@@ -139,10 +145,9 @@
139
145
  </div><!-- /wrapper -->
140
146
  <div class='footer quiet pad2 space-top1 center small'>
141
147
  Code coverage generated by
142
- <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
143
- at Tue Apr 26 2022 17:11:02 GMT+0000 (Coordinated Universal Time)
148
+ <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
149
+ at Wed Apr 27 2022 09:28:42 GMT+0000 (Coordinated Universal Time)
144
150
  </div>
145
- </div>
146
151
  <script src="../../../prettify.js"></script>
147
152
  <script>
148
153
  window.onload = function () {
@@ -54,6 +54,12 @@
54
54
  <p class="quiet">
55
55
  Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
56
56
  </p>
57
+ <template id="filterTemplate">
58
+ <div class="quiet">
59
+ Filter:
60
+ <input oninput="onInput()" type="search" id="fileSearch">
61
+ </div>
62
+ </template>
57
63
  </div>
58
64
  <div class='status-line high'></div>
59
65
  <pre><table class="coverage">
@@ -376,7 +382,7 @@ exports.exportView = async ctx =&gt; {
376
382
  let rows = ctx.body
377
383
  &nbsp;
378
384
  let schema = view &amp;&amp; view.meta &amp;&amp; view.meta.schema
379
- if (!schema) {
385
+ <span class="missing-if-branch" title="else path not taken" >E</span>if (!schema) {
380
386
  const tableId = ctx.params.tableId || view.meta.tableId
381
387
  const table = await getTable(tableId)
382
388
  schema = table.schema
@@ -399,7 +405,7 @@ exports.exportView = async ctx =&gt; {
399
405
  const schemaKeys = Object.keys(schema)
400
406
  for (let key of schemaKeys) {
401
407
  for (let row of rows) {
402
- if (row[key] == null) {
408
+ <span class="missing-if-branch" title="else path not taken" >E</span>if (row[key] == null) {
403
409
  row[key] = ""
404
410
  }
405
411
  }
@@ -420,10 +426,9 @@ exports.exportView = async ctx =&gt; {
420
426
  </div><!-- /wrapper -->
421
427
  <div class='footer quiet pad2 space-top1 center small'>
422
428
  Code coverage generated by
423
- <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
424
- at Tue Apr 26 2022 17:11:02 GMT+0000 (Coordinated Universal Time)
429
+ <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
430
+ at Wed Apr 27 2022 09:28:42 GMT+0000 (Coordinated Universal Time)
425
431
  </div>
426
- </div>
427
432
  <script src="../../../prettify.js"></script>
428
433
  <script>
429
434
  window.onload = function () {
@@ -54,6 +54,12 @@
54
54
  <p class="quiet">
55
55
  Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
56
56
  </p>
57
+ <template id="filterTemplate">
58
+ <div class="quiet">
59
+ Filter:
60
+ <input oninput="onInput()" type="search" id="fileSearch">
61
+ </div>
62
+ </template>
57
63
  </div>
58
64
  <div class='status-line medium'></div>
59
65
  <pre><table class="coverage">
@@ -507,10 +513,9 @@ exports.getFromMemoryDoc = async (db, viewName) =&gt; {
507
513
  </div><!-- /wrapper -->
508
514
  <div class='footer quiet pad2 space-top1 center small'>
509
515
  Code coverage generated by
510
- <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
511
- at Tue Apr 26 2022 17:11:02 GMT+0000 (Coordinated Universal Time)
516
+ <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
517
+ at Wed Apr 27 2022 09:28:42 GMT+0000 (Coordinated Universal Time)
512
518
  </div>
513
- </div>
514
519
  <script src="../../../prettify.js"></script>
515
520
  <script>
516
521
  window.onload = function () {
@@ -54,6 +54,12 @@
54
54
  <p class="quiet">
55
55
  Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
56
56
  </p>
57
+ <template id="filterTemplate">
58
+ <div class="quiet">
59
+ Filter:
60
+ <input oninput="onInput()" type="search" id="fileSearch">
61
+ </div>
62
+ </template>
57
63
  </div>
58
64
  <div class='status-line high'></div>
59
65
  <pre><table class="coverage">
@@ -549,10 +555,9 @@ module.exports = viewTemplate
549
555
  </div><!-- /wrapper -->
550
556
  <div class='footer quiet pad2 space-top1 center small'>
551
557
  Code coverage generated by
552
- <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
553
- at Tue Apr 26 2022 17:11:02 GMT+0000 (Coordinated Universal Time)
558
+ <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
559
+ at Wed Apr 27 2022 09:28:42 GMT+0000 (Coordinated Universal Time)
554
560
  </div>
555
- </div>
556
561
  <script src="../../../prettify.js"></script>
557
562
  <script>
558
563
  window.onload = function () {
@@ -54,6 +54,12 @@
54
54
  <p class="quiet">
55
55
  Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
56
56
  </p>
57
+ <template id="filterTemplate">
58
+ <div class="quiet">
59
+ Filter:
60
+ <input oninput="onInput()" type="search" id="fileSearch">
61
+ </div>
62
+ </template>
57
63
  </div>
58
64
  <div class='status-line high'></div>
59
65
  <pre><table class="coverage">
@@ -344,7 +350,7 @@ exports.buildSchema = async ctx =&gt; {
344
350
  const webhook = await db.get(ctx.params.id)
345
351
  webhook.bodySchema = toJsonSchema(ctx.request.body)
346
352
  // update the automation outputs
347
- if (webhook.action.type === WebhookType.AUTOMATION) {
353
+ <span class="missing-if-branch" title="else path not taken" >E</span>if (webhook.action.type === WebhookType.AUTOMATION) {
348
354
  let automation = await db.get(webhook.action.target)
349
355
  const autoOutputs = automation.definition.trigger.schema.outputs
350
356
  let properties = webhook.bodySchema.properties
@@ -374,7 +380,7 @@ exports.trigger = async ctx =&gt; {
374
380
  <span class="cstat-no" title="statement not covered" > validate(ctx.request.body, webhook.bodySchema)</span>
375
381
  }
376
382
  const target = await db.get(webhook.action.target)
377
- if (webhook.action.type === WebhookType.AUTOMATION) {
383
+ <span class="missing-if-branch" title="else path not taken" >E</span>if (webhook.action.type === WebhookType.AUTOMATION) {
378
384
  // trigger with both the pure request and then expand it
379
385
  // incase the user has produced a schema to bind to
380
386
  await triggers.externalTrigger(target, {
@@ -402,10 +408,9 @@ exports.trigger = async ctx =&gt; {
402
408
  </div><!-- /wrapper -->
403
409
  <div class='footer quiet pad2 space-top1 center small'>
404
410
  Code coverage generated by
405
- <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
406
- at Tue Apr 26 2022 17:11:02 GMT+0000 (Coordinated Universal Time)
411
+ <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
412
+ at Wed Apr 27 2022 09:28:42 GMT+0000 (Coordinated Universal Time)
407
413
  </div>
408
- </div>
409
414
  <script src="../../prettify.js"></script>
410
415
  <script>
411
416
  window.onload = function () {
@@ -23,9 +23,9 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">93.75% </span>
26
+ <span class="strong">94.28% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>30/32</span>
28
+ <span class='fraction'>33/35</span>
29
29
  </div>
30
30
 
31
31
 
@@ -44,9 +44,9 @@
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">93.33% </span>
47
+ <span class="strong">93.93% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>28/30</span>
49
+ <span class='fraction'>31/33</span>
50
50
  </div>
51
51
 
52
52
 
@@ -54,6 +54,12 @@
54
54
  <p class="quiet">
55
55
  Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
56
56
  </p>
57
+ <template id="filterTemplate">
58
+ <div class="quiet">
59
+ Filter:
60
+ <input oninput="onInput()" type="search" id="fileSearch">
61
+ </div>
62
+ </template>
57
63
  </div>
58
64
  <div class='status-line high'></div>
59
65
  <div class="pad1">
@@ -74,17 +80,17 @@
74
80
  </thead>
75
81
  <tbody><tr>
76
82
  <td class="file high" data-value="index.js"><a href="index.js.html">index.js</a></td>
77
- <td data-value="93.75" class="pic high">
78
- <div class="chart"><div class="cover-fill" style="width: 93%"></div><div class="cover-empty" style="width: 7%"></div></div>
83
+ <td data-value="94.28" class="pic high">
84
+ <div class="chart"><div class="cover-fill" style="width: 94%"></div><div class="cover-empty" style="width: 6%"></div></div>
79
85
  </td>
80
- <td data-value="93.75" class="pct high">93.75%</td>
81
- <td data-value="32" class="abs high">30/32</td>
86
+ <td data-value="94.28" class="pct high">94.28%</td>
87
+ <td data-value="35" class="abs high">33/35</td>
82
88
  <td data-value="40" class="pct low">40%</td>
83
89
  <td data-value="5" class="abs low">2/5</td>
84
90
  <td data-value="100" class="pct high">100%</td>
85
91
  <td data-value="4" class="abs high">4/4</td>
86
- <td data-value="93.33" class="pct high">93.33%</td>
87
- <td data-value="30" class="abs high">28/30</td>
92
+ <td data-value="93.93" class="pct high">93.93%</td>
93
+ <td data-value="33" class="abs high">31/33</td>
88
94
  </tr>
89
95
 
90
96
  </tbody>
@@ -94,10 +100,9 @@
94
100
  </div><!-- /wrapper -->
95
101
  <div class='footer quiet pad2 space-top1 center small'>
96
102
  Code coverage generated by
97
- <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
98
- at Tue Apr 26 2022 17:11:02 GMT+0000 (Coordinated Universal Time)
103
+ <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
104
+ at Wed Apr 27 2022 09:28:42 GMT+0000 (Coordinated Universal Time)
99
105
  </div>
100
- </div>
101
106
  <script src="../prettify.js"></script>
102
107
  <script>
103
108
  window.onload = function () {
@@ -23,9 +23,9 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">93.75% </span>
26
+ <span class="strong">94.28% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>30/32</span>
28
+ <span class='fraction'>33/35</span>
29
29
  </div>
30
30
 
31
31
 
@@ -44,9 +44,9 @@
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">93.33% </span>
47
+ <span class="strong">93.93% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>28/30</span>
49
+ <span class='fraction'>31/33</span>
50
50
  </div>
51
51
 
52
52
 
@@ -54,6 +54,12 @@
54
54
  <p class="quiet">
55
55
  Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
56
56
  </p>
57
+ <template id="filterTemplate">
58
+ <div class="quiet">
59
+ Filter:
60
+ <input oninput="onInput()" type="search" id="fileSearch">
61
+ </div>
62
+ </template>
57
63
  </div>
58
64
  <div class='status-line high'></div>
59
65
  <pre><table class="coverage">
@@ -145,7 +151,12 @@
145
151
  <a name='L86'></a><a href='#L86'>86</a>
146
152
  <a name='L87'></a><a href='#L87'>87</a>
147
153
  <a name='L88'></a><a href='#L88'>88</a>
148
- <a name='L89'></a><a href='#L89'>89</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">24x</span>
154
+ <a name='L89'></a><a href='#L89'>89</a>
155
+ <a name='L90'></a><a href='#L90'>90</a>
156
+ <a name='L91'></a><a href='#L91'>91</a>
157
+ <a name='L92'></a><a href='#L92'>92</a>
158
+ <a name='L93'></a><a href='#L93'>93</a>
159
+ <a name='L94'></a><a href='#L94'>94</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">24x</span>
149
160
  <span class="cline-any cline-neutral">&nbsp;</span>
150
161
  <span class="cline-any cline-neutral">&nbsp;</span>
151
162
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -157,6 +168,8 @@
157
168
  <span class="cline-any cline-yes">24x</span>
158
169
  <span class="cline-any cline-yes">24x</span>
159
170
  <span class="cline-any cline-yes">24x</span>
171
+ <span class="cline-any cline-yes">24x</span>
172
+ <span class="cline-any cline-yes">24x</span>
160
173
  <span class="cline-any cline-neutral">&nbsp;</span>
161
174
  <span class="cline-any cline-yes">24x</span>
162
175
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -202,12 +215,15 @@
202
215
  <span class="cline-any cline-neutral">&nbsp;</span>
203
216
  <span class="cline-any cline-neutral">&nbsp;</span>
204
217
  <span class="cline-any cline-neutral">&nbsp;</span>
218
+ <span class="cline-any cline-neutral">&nbsp;</span>
205
219
  <span class="cline-any cline-yes">24x</span>
206
220
  <span class="cline-any cline-yes">186x</span>
207
221
  <span class="cline-any cline-yes">186x</span>
208
222
  <span class="cline-any cline-neutral">&nbsp;</span>
209
223
  <span class="cline-any cline-yes">39x</span>
210
224
  <span class="cline-any cline-yes">39x</span>
225
+ <span class="cline-any cline-yes">39x</span>
226
+ <span class="cline-any cline-neutral">&nbsp;</span>
211
227
  <span class="cline-any cline-neutral">&nbsp;</span>
212
228
  <span class="cline-any cline-neutral">&nbsp;</span>
213
229
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -239,12 +255,14 @@ const {
239
255
  auditLog,
240
256
  buildTenancyMiddleware,
241
257
  } = require("@budibase/backend-core/auth")
258
+ const { errors } = require("@budibase/backend-core")
242
259
  const currentApp = require("../middleware/currentapp")
243
260
  const compress = require("koa-compress")
244
261
  const zlib = require("zlib")
245
262
  const { mainRoutes, staticRoutes, publicRoutes } = require("./routes")
246
263
  const pkg = require("../../package.json")
247
264
  const env = require("../environment")
265
+ const { middleware: pro } = require("@budibase/pro")
248
266
  &nbsp;
249
267
  const router = new Router()
250
268
  &nbsp;
@@ -287,6 +305,7 @@ router
287
305
  })
288
306
  )
289
307
  .use(currentApp)
308
+ .use(pro.licensing())
290
309
  .use(auditLog)
291
310
  &nbsp;
292
311
  // error handling middleware
@@ -295,10 +314,12 @@ router.use(async (ctx, next) =&gt; {
295
314
  await next()
296
315
  } catch (err) {
297
316
  ctx.status = err.status || <span class="branch-1 cbranch-no" title="branch not covered" >err.statusCode </span>|| <span class="branch-2 cbranch-no" title="branch not covered" >500</span>
317
+ const error = errors.getPublicError(err)
298
318
  ctx.body = {
299
319
  message: err.message,
300
320
  status: ctx.status,
301
321
  validationErrors: err.validation,
322
+ error,
302
323
  }
303
324
  <span class="missing-if-branch" title="if path not taken" >I</span>if (env.NODE_ENV !== "jest") {
304
325
  <span class="cstat-no" title="statement not covered" > ctx.log.error(err)</span>
@@ -327,10 +348,9 @@ module.exports = router
327
348
  </div><!-- /wrapper -->
328
349
  <div class='footer quiet pad2 space-top1 center small'>
329
350
  Code coverage generated by
330
- <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
331
- at Tue Apr 26 2022 17:11:02 GMT+0000 (Coordinated Universal Time)
351
+ <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
352
+ at Wed Apr 27 2022 09:28:42 GMT+0000 (Coordinated Universal Time)
332
353
  </div>
333
- </div>
334
354
  <script src="../prettify.js"></script>
335
355
  <script>
336
356
  window.onload = function () {
@@ -54,6 +54,12 @@
54
54
  <p class="quiet">
55
55
  Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
56
56
  </p>
57
+ <template id="filterTemplate">
58
+ <div class="quiet">
59
+ Filter:
60
+ <input oninput="onInput()" type="search" id="fileSearch">
61
+ </div>
62
+ </template>
57
63
  </div>
58
64
  <div class='status-line high'></div>
59
65
  <pre><table class="coverage">
@@ -93,10 +99,9 @@ module.exports = router
93
99
  </div><!-- /wrapper -->
94
100
  <div class='footer quiet pad2 space-top1 center small'>
95
101
  Code coverage generated by
96
- <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
97
- at Tue Apr 26 2022 17:11:02 GMT+0000 (Coordinated Universal Time)
102
+ <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
103
+ at Wed Apr 27 2022 09:28:42 GMT+0000 (Coordinated Universal Time)
98
104
  </div>
99
- </div>
100
105
  <script src="../../prettify.js"></script>
101
106
  <script>
102
107
  window.onload = function () {
@@ -54,6 +54,12 @@
54
54
  <p class="quiet">
55
55
  Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
56
56
  </p>
57
+ <template id="filterTemplate">
58
+ <div class="quiet">
59
+ Filter:
60
+ <input oninput="onInput()" type="search" id="fileSearch">
61
+ </div>
62
+ </template>
57
63
  </div>
58
64
  <div class='status-line high'></div>
59
65
  <pre><table class="coverage">
@@ -99,10 +105,9 @@ module.exports = router
99
105
  </div><!-- /wrapper -->
100
106
  <div class='footer quiet pad2 space-top1 center small'>
101
107
  Code coverage generated by
102
- <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
103
- at Tue Apr 26 2022 17:11:02 GMT+0000 (Coordinated Universal Time)
108
+ <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
109
+ at Wed Apr 27 2022 09:28:42 GMT+0000 (Coordinated Universal Time)
104
110
  </div>
105
- </div>
106
111
  <script src="../../prettify.js"></script>
107
112
  <script>
108
113
  window.onload = function () {
@@ -54,6 +54,12 @@
54
54
  <p class="quiet">
55
55
  Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
56
56
  </p>
57
+ <template id="filterTemplate">
58
+ <div class="quiet">
59
+ Filter:
60
+ <input oninput="onInput()" type="search" id="fileSearch">
61
+ </div>
62
+ </template>
57
63
  </div>
58
64
  <div class='status-line high'></div>
59
65
  <pre><table class="coverage">
@@ -87,10 +93,9 @@ module.exports = router
87
93
  </div><!-- /wrapper -->
88
94
  <div class='footer quiet pad2 space-top1 center small'>
89
95
  Code coverage generated by
90
- <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
91
- at Tue Apr 26 2022 17:11:02 GMT+0000 (Coordinated Universal Time)
96
+ <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
97
+ at Wed Apr 27 2022 09:28:42 GMT+0000 (Coordinated Universal Time)
92
98
  </div>
93
- </div>
94
99
  <script src="../../prettify.js"></script>
95
100
  <script>
96
101
  window.onload = function () {
@@ -54,6 +54,12 @@
54
54
  <p class="quiet">
55
55
  Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
56
56
  </p>
57
+ <template id="filterTemplate">
58
+ <div class="quiet">
59
+ Filter:
60
+ <input oninput="onInput()" type="search" id="fileSearch">
61
+ </div>
62
+ </template>
57
63
  </div>
58
64
  <div class='status-line high'></div>
59
65
  <pre><table class="coverage">
@@ -288,10 +294,9 @@ module.exports = router
288
294
  </div><!-- /wrapper -->
289
295
  <div class='footer quiet pad2 space-top1 center small'>
290
296
  Code coverage generated by
291
- <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
292
- at Tue Apr 26 2022 17:11:02 GMT+0000 (Coordinated Universal Time)
297
+ <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
298
+ at Wed Apr 27 2022 09:28:42 GMT+0000 (Coordinated Universal Time)
293
299
  </div>
294
- </div>
295
300
  <script src="../../prettify.js"></script>
296
301
  <script>
297
302
  window.onload = function () {