@budibase/server 1.0.27-alpha.1 → 1.0.27-alpha.13

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 (343) hide show
  1. package/__mocks__/node-fetch.ts +18 -0
  2. package/builder/assets/{index.4a13c4cb.css → index.176f00e0.css} +1 -1
  3. package/builder/assets/index.5776ef20.js +1348 -0
  4. package/builder/index.html +2 -2
  5. package/coverage/clover.xml +1193 -1027
  6. package/coverage/coverage-final.json +72 -72
  7. package/coverage/lcov-report/api/controllers/analytics.js.html +1 -1
  8. package/coverage/lcov-report/api/controllers/apikeys.js.html +3 -3
  9. package/coverage/lcov-report/api/controllers/application.js.html +73 -64
  10. package/coverage/lcov-report/api/controllers/auth.js.html +2 -2
  11. package/coverage/lcov-report/api/controllers/automation.js.html +1 -1
  12. package/coverage/lcov-report/api/controllers/backup.js.html +1 -1
  13. package/coverage/lcov-report/api/controllers/cloud.js.html +13 -4
  14. package/coverage/lcov-report/api/controllers/component.js.html +4 -4
  15. package/coverage/lcov-report/api/controllers/datasource.js.html +150 -48
  16. package/coverage/lcov-report/api/controllers/dev.js.html +3 -3
  17. package/coverage/lcov-report/api/controllers/hosting.js.html +3 -3
  18. package/coverage/lcov-report/api/controllers/index.html +20 -20
  19. package/coverage/lcov-report/api/controllers/integration.js.html +1 -1
  20. package/coverage/lcov-report/api/controllers/layout.js.html +1 -1
  21. package/coverage/lcov-report/api/controllers/metadata.js.html +1 -1
  22. package/coverage/lcov-report/api/controllers/permission.js.html +3 -3
  23. package/coverage/lcov-report/api/controllers/query/index.html +21 -21
  24. package/coverage/lcov-report/api/controllers/query/index.js.html +101 -122
  25. package/coverage/lcov-report/api/controllers/query/validation.js.html +6 -3
  26. package/coverage/lcov-report/api/controllers/role.js.html +2 -2
  27. package/coverage/lcov-report/api/controllers/routing.js.html +2 -2
  28. package/coverage/lcov-report/api/controllers/row/external.js.html +1 -1
  29. package/coverage/lcov-report/api/controllers/row/index.html +22 -22
  30. package/coverage/lcov-report/api/controllers/row/index.js.html +1 -1
  31. package/coverage/lcov-report/api/controllers/row/internal.js.html +38 -11
  32. package/coverage/lcov-report/api/controllers/row/internalSearch.js.html +8 -5
  33. package/coverage/lcov-report/api/controllers/row/utils.js.html +29 -20
  34. package/coverage/lcov-report/api/controllers/screen.js.html +2 -2
  35. package/coverage/lcov-report/api/controllers/script.js.html +1 -1
  36. package/coverage/lcov-report/api/controllers/table/external.js.html +1 -1
  37. package/coverage/lcov-report/api/controllers/table/index.html +1 -1
  38. package/coverage/lcov-report/api/controllers/table/index.js.html +1 -1
  39. package/coverage/lcov-report/api/controllers/table/internal.js.html +1 -1
  40. package/coverage/lcov-report/api/controllers/table/utils.js.html +1 -1
  41. package/coverage/lcov-report/api/controllers/templates.js.html +1 -1
  42. package/coverage/lcov-report/api/controllers/user.js.html +14 -5
  43. package/coverage/lcov-report/api/controllers/view/exporters.js.html +1 -1
  44. package/coverage/lcov-report/api/controllers/view/index.html +1 -1
  45. package/coverage/lcov-report/api/controllers/view/index.js.html +1 -1
  46. package/coverage/lcov-report/api/controllers/view/utils.js.html +1 -1
  47. package/coverage/lcov-report/api/controllers/view/viewBuilder.js.html +1 -1
  48. package/coverage/lcov-report/api/controllers/webhook.js.html +2 -2
  49. package/coverage/lcov-report/api/index.html +1 -1
  50. package/coverage/lcov-report/api/index.js.html +6 -6
  51. package/coverage/lcov-report/api/routes/analytics.js.html +1 -1
  52. package/coverage/lcov-report/api/routes/apikeys.js.html +2 -2
  53. package/coverage/lcov-report/api/routes/application.js.html +2 -2
  54. package/coverage/lcov-report/api/routes/auth.js.html +1 -1
  55. package/coverage/lcov-report/api/routes/automation.js.html +2 -2
  56. package/coverage/lcov-report/api/routes/backup.js.html +2 -2
  57. package/coverage/lcov-report/api/routes/cloud.js.html +2 -2
  58. package/coverage/lcov-report/api/routes/component.js.html +2 -2
  59. package/coverage/lcov-report/api/routes/datasource.js.html +2 -2
  60. package/coverage/lcov-report/api/routes/deploy.js.html +2 -2
  61. package/coverage/lcov-report/api/routes/dev.js.html +2 -2
  62. package/coverage/lcov-report/api/routes/hosting.js.html +2 -2
  63. package/coverage/lcov-report/api/routes/index.html +1 -1
  64. package/coverage/lcov-report/api/routes/index.js.html +1 -1
  65. package/coverage/lcov-report/api/routes/integration.js.html +2 -2
  66. package/coverage/lcov-report/api/routes/layout.js.html +2 -2
  67. package/coverage/lcov-report/api/routes/metadata.js.html +2 -2
  68. package/coverage/lcov-report/api/routes/permission.js.html +12 -3
  69. package/coverage/lcov-report/api/routes/query.js.html +25 -4
  70. package/coverage/lcov-report/api/routes/role.js.html +2 -2
  71. package/coverage/lcov-report/api/routes/routing.js.html +2 -2
  72. package/coverage/lcov-report/api/routes/row.js.html +2 -2
  73. package/coverage/lcov-report/api/routes/screen.js.html +2 -2
  74. package/coverage/lcov-report/api/routes/script.js.html +2 -2
  75. package/coverage/lcov-report/api/routes/static.js.html +2 -2
  76. package/coverage/lcov-report/api/routes/table.js.html +2 -2
  77. package/coverage/lcov-report/api/routes/templates.js.html +2 -2
  78. package/coverage/lcov-report/api/routes/user.js.html +2 -2
  79. package/coverage/lcov-report/api/routes/view.js.html +2 -2
  80. package/coverage/lcov-report/api/routes/webhook.js.html +2 -2
  81. package/coverage/lcov-report/automations/actions.js.html +1 -1
  82. package/coverage/lcov-report/automations/automationUtils.js.html +1 -1
  83. package/coverage/lcov-report/automations/bullboard.js.html +2 -2
  84. package/coverage/lcov-report/automations/index.html +1 -1
  85. package/coverage/lcov-report/automations/index.js.html +1 -1
  86. package/coverage/lcov-report/automations/steps/bash.js.html +1 -1
  87. package/coverage/lcov-report/automations/steps/createRow.js.html +1 -1
  88. package/coverage/lcov-report/automations/steps/delay.js.html +1 -1
  89. package/coverage/lcov-report/automations/steps/deleteRow.js.html +1 -1
  90. package/coverage/lcov-report/automations/steps/discord.js.html +1 -1
  91. package/coverage/lcov-report/automations/steps/executeQuery.js.html +32 -8
  92. package/coverage/lcov-report/automations/steps/executeScript.js.html +1 -1
  93. package/coverage/lcov-report/automations/steps/filter.js.html +1 -1
  94. package/coverage/lcov-report/automations/steps/index.html +11 -11
  95. package/coverage/lcov-report/automations/steps/integromat.js.html +1 -1
  96. package/coverage/lcov-report/automations/steps/outgoingWebhook.js.html +1 -1
  97. package/coverage/lcov-report/automations/steps/queryRows.js.html +1 -1
  98. package/coverage/lcov-report/automations/steps/sendSmtpEmail.js.html +1 -1
  99. package/coverage/lcov-report/automations/steps/serverLog.js.html +1 -1
  100. package/coverage/lcov-report/automations/steps/slack.js.html +1 -1
  101. package/coverage/lcov-report/automations/steps/updateRow.js.html +1 -1
  102. package/coverage/lcov-report/automations/steps/utils.js.html +1 -1
  103. package/coverage/lcov-report/automations/steps/zapier.js.html +1 -1
  104. package/coverage/lcov-report/automations/triggerInfo/app.js.html +1 -1
  105. package/coverage/lcov-report/automations/triggerInfo/cron.js.html +1 -1
  106. package/coverage/lcov-report/automations/triggerInfo/index.html +1 -1
  107. package/coverage/lcov-report/automations/triggerInfo/index.js.html +1 -1
  108. package/coverage/lcov-report/automations/triggerInfo/rowDeleted.js.html +1 -1
  109. package/coverage/lcov-report/automations/triggerInfo/rowSaved.js.html +1 -1
  110. package/coverage/lcov-report/automations/triggerInfo/rowUpdated.js.html +1 -1
  111. package/coverage/lcov-report/automations/triggerInfo/webhook.js.html +1 -1
  112. package/coverage/lcov-report/automations/triggers.js.html +1 -1
  113. package/coverage/lcov-report/automations/utils.js.html +6 -6
  114. package/coverage/lcov-report/constants/index.html +1 -1
  115. package/coverage/lcov-report/constants/index.js.html +4 -4
  116. package/coverage/lcov-report/constants/layouts.js.html +1 -1
  117. package/coverage/lcov-report/constants/screens.js.html +2 -2
  118. package/coverage/lcov-report/db/client.js.html +2 -2
  119. package/coverage/lcov-report/db/inMemoryView.js.html +1 -1
  120. package/coverage/lcov-report/db/index.html +1 -1
  121. package/coverage/lcov-report/db/index.js.html +1 -1
  122. package/coverage/lcov-report/db/linkedRows/LinkController.js.html +1 -1
  123. package/coverage/lcov-report/db/linkedRows/index.html +1 -1
  124. package/coverage/lcov-report/db/linkedRows/index.js.html +1 -1
  125. package/coverage/lcov-report/db/linkedRows/linkUtils.js.html +1 -1
  126. package/coverage/lcov-report/db/newid.js.html +2 -2
  127. package/coverage/lcov-report/db/utils.js.html +19 -19
  128. package/coverage/lcov-report/events/AutomationEmitter.js.html +1 -1
  129. package/coverage/lcov-report/events/index.html +1 -1
  130. package/coverage/lcov-report/events/index.js.html +1 -1
  131. package/coverage/lcov-report/events/utils.js.html +1 -1
  132. package/coverage/lcov-report/index.html +64 -64
  133. package/coverage/lcov-report/integrations/tests/TestConfiguration.js.html +1 -1
  134. package/coverage/lcov-report/integrations/tests/index.html +1 -1
  135. package/coverage/lcov-report/middleware/appInfo.js.html +1 -1
  136. package/coverage/lcov-report/middleware/authorized.js.html +12 -12
  137. package/coverage/lcov-report/middleware/builder.js.html +10 -10
  138. package/coverage/lcov-report/middleware/currentapp.js.html +48 -36
  139. package/coverage/lcov-report/middleware/index.html +1 -1
  140. package/coverage/lcov-report/middleware/joi-validator.js.html +9 -9
  141. package/coverage/lcov-report/middleware/resourceId.js.html +18 -18
  142. package/coverage/lcov-report/middleware/selfhost.js.html +1 -1
  143. package/coverage/lcov-report/middleware/usageQuota.js.html +2 -2
  144. package/coverage/lcov-report/middleware/utils.js.html +2 -2
  145. package/coverage/lcov-report/threads/automation.js.html +3 -3
  146. package/coverage/lcov-report/threads/index.html +31 -31
  147. package/coverage/lcov-report/threads/index.js.html +12 -12
  148. package/coverage/lcov-report/threads/query.js.html +369 -93
  149. package/coverage/lcov-report/threads/utils.js.html +359 -14
  150. package/coverage/lcov-report/utilities/bcrypt.js.html +1 -1
  151. package/coverage/lcov-report/utilities/budibaseDir.js.html +2 -2
  152. package/coverage/lcov-report/utilities/centralPath.js.html +1 -1
  153. package/coverage/lcov-report/utilities/csvParser.js.html +1 -1
  154. package/coverage/lcov-report/utilities/global.js.html +28 -19
  155. package/coverage/lcov-report/utilities/index.html +1 -1
  156. package/coverage/lcov-report/utilities/index.js.html +11 -11
  157. package/coverage/lcov-report/utilities/queue/inMemoryQueue.js.html +2 -2
  158. package/coverage/lcov-report/utilities/queue/index.html +1 -1
  159. package/coverage/lcov-report/utilities/routing/index.html +1 -1
  160. package/coverage/lcov-report/utilities/routing/index.js.html +1 -1
  161. package/coverage/lcov-report/utilities/rowProcessor/index.html +19 -19
  162. package/coverage/lcov-report/utilities/rowProcessor/index.js.html +247 -10
  163. package/coverage/lcov-report/utilities/rowProcessor/utils.js.html +1 -1
  164. package/coverage/lcov-report/utilities/scriptRunner.js.html +1 -1
  165. package/coverage/lcov-report/utilities/security.js.html +13 -4
  166. package/coverage/lcov-report/utilities/statusCodes.js.html +1 -1
  167. package/coverage/lcov-report/utilities/users.js.html +1 -1
  168. package/coverage/lcov-report/utilities/workerRequests.js.html +22 -22
  169. package/coverage/lcov.info +2027 -1725
  170. package/dist/api/controllers/apikeys.js +2 -2
  171. package/dist/api/controllers/application.js +4 -4
  172. package/dist/api/controllers/auth.js +1 -1
  173. package/dist/api/controllers/cloud.js +2 -2
  174. package/dist/api/controllers/datasource.js +29 -0
  175. package/dist/api/controllers/deploy/index.js +2 -2
  176. package/dist/api/controllers/dev.js +2 -2
  177. package/dist/api/controllers/hosting.js +2 -2
  178. package/dist/api/controllers/permission.js +2 -2
  179. package/dist/api/controllers/query/import/sources/base/index.js +2 -1
  180. package/dist/api/controllers/query/import/sources/curl.js +11 -5
  181. package/dist/api/controllers/query/import/sources/openapi2.js +8 -5
  182. package/dist/api/controllers/query/index.js +45 -47
  183. package/dist/api/controllers/query/validation.js +2 -1
  184. package/dist/api/controllers/role.js +1 -1
  185. package/dist/api/controllers/routing.js +1 -1
  186. package/dist/api/controllers/row/internal.js +14 -6
  187. package/dist/api/controllers/row/internalSearch.js +3 -2
  188. package/dist/api/controllers/row/utils.js +13 -6
  189. package/dist/api/controllers/screen.js +1 -1
  190. package/dist/api/controllers/user.js +3 -3
  191. package/dist/api/controllers/webhook.js +1 -1
  192. package/dist/api/index.js +1 -1
  193. package/dist/api/routes/apikeys.js +1 -1
  194. package/dist/api/routes/application.js +1 -1
  195. package/dist/api/routes/automation.js +1 -1
  196. package/dist/api/routes/backup.js +1 -1
  197. package/dist/api/routes/cloud.js +1 -1
  198. package/dist/api/routes/component.js +1 -1
  199. package/dist/api/routes/datasource.js +1 -1
  200. package/dist/api/routes/deploy.js +1 -1
  201. package/dist/api/routes/dev.js +1 -1
  202. package/dist/api/routes/hosting.js +1 -1
  203. package/dist/api/routes/integration.js +1 -1
  204. package/dist/api/routes/layout.js +1 -1
  205. package/dist/api/routes/metadata.js +1 -1
  206. package/dist/api/routes/permission.js +1 -1
  207. package/dist/api/routes/query.js +4 -2
  208. package/dist/api/routes/role.js +1 -1
  209. package/dist/api/routes/routing.js +1 -1
  210. package/dist/api/routes/row.js +1 -1
  211. package/dist/api/routes/screen.js +1 -1
  212. package/dist/api/routes/script.js +1 -1
  213. package/dist/api/routes/static.js +1 -1
  214. package/dist/api/routes/table.js +1 -1
  215. package/dist/api/routes/templates.js +1 -1
  216. package/dist/api/routes/tests/utilities/TestFunctions.js +1 -1
  217. package/dist/api/routes/user.js +1 -1
  218. package/dist/api/routes/view.js +1 -1
  219. package/dist/api/routes/webhook.js +1 -1
  220. package/dist/app.js +1 -1
  221. package/dist/automations/bullboard.js +1 -1
  222. package/dist/automations/steps/executeQuery.js +9 -2
  223. package/dist/automations/utils.js +1 -1
  224. package/dist/constants/index.js +3 -3
  225. package/dist/constants/screens.js +1 -1
  226. package/dist/db/client.js +1 -1
  227. package/dist/db/utils.js +1 -1
  228. package/dist/integrations/base/sqlTable.js +1 -1
  229. package/dist/integrations/rest.js +3 -3
  230. package/dist/middleware/authorized.js +2 -2
  231. package/dist/middleware/builder.js +2 -2
  232. package/dist/middleware/currentapp.js +6 -6
  233. package/dist/middleware/usageQuota.js +1 -1
  234. package/dist/package.json +5 -4
  235. package/dist/tests/utilities/TestConfiguration.js +55 -8
  236. package/dist/tests/utilities/structures.js +2 -2
  237. package/dist/threads/automation.js +2 -2
  238. package/dist/threads/query.js +148 -52
  239. package/dist/threads/utils.js +106 -1
  240. package/dist/tsconfig.tsbuildinfo +1 -1
  241. package/dist/utilities/budibaseDir.js +1 -1
  242. package/dist/utilities/fileSystem/utilities.js +2 -1
  243. package/dist/utilities/global.js +5 -5
  244. package/dist/utilities/index.js +1 -1
  245. package/dist/utilities/redis.js +1 -1
  246. package/dist/utilities/rowProcessor/index.js +76 -0
  247. package/dist/utilities/security.js +2 -2
  248. package/dist/utilities/usageQuota.js +2 -2
  249. package/dist/utilities/workerRequests.js +3 -3
  250. package/package.json +6 -5
  251. package/scripts/replicateApp.js +1 -1
  252. package/src/api/controllers/apikeys.js +2 -2
  253. package/src/api/controllers/application.js +7 -4
  254. package/src/api/controllers/auth.js +1 -1
  255. package/src/api/controllers/cloud.js +5 -2
  256. package/src/api/controllers/datasource.js +34 -0
  257. package/src/api/controllers/deploy/index.js +2 -2
  258. package/src/api/controllers/dev.js +2 -2
  259. package/src/api/controllers/hosting.js +2 -2
  260. package/src/api/controllers/permission.js +2 -2
  261. package/src/api/controllers/query/import/sources/base/index.ts +3 -1
  262. package/src/api/controllers/query/import/sources/curl.ts +12 -4
  263. package/src/api/controllers/query/import/sources/openapi2.ts +9 -5
  264. package/src/api/controllers/query/import/sources/tests/curl/curl.spec.js +2 -3
  265. package/src/api/controllers/query/import/sources/tests/openapi2/openapi2.spec.js +6 -7
  266. package/src/api/controllers/query/import/tests/index.spec.js +0 -6
  267. package/src/api/controllers/query/index.js +48 -55
  268. package/src/api/controllers/query/validation.js +2 -1
  269. package/src/api/controllers/role.js +1 -1
  270. package/src/api/controllers/routing.js +1 -1
  271. package/src/api/controllers/row/internal.js +14 -5
  272. package/src/api/controllers/row/internalSearch.js +3 -2
  273. package/src/api/controllers/row/utils.js +11 -8
  274. package/src/api/controllers/screen.js +1 -1
  275. package/src/api/controllers/user.js +6 -3
  276. package/src/api/controllers/webhook.js +1 -1
  277. package/src/api/index.js +1 -1
  278. package/src/api/routes/apikeys.js +1 -1
  279. package/src/api/routes/application.js +1 -1
  280. package/src/api/routes/automation.js +1 -1
  281. package/src/api/routes/backup.js +1 -1
  282. package/src/api/routes/cloud.js +1 -1
  283. package/src/api/routes/component.js +1 -1
  284. package/src/api/routes/datasource.js +1 -1
  285. package/src/api/routes/deploy.js +1 -1
  286. package/src/api/routes/dev.js +1 -1
  287. package/src/api/routes/hosting.js +1 -1
  288. package/src/api/routes/integration.js +1 -1
  289. package/src/api/routes/layout.js +1 -1
  290. package/src/api/routes/metadata.js +1 -1
  291. package/src/api/routes/permission.js +4 -1
  292. package/src/api/routes/query.js +9 -2
  293. package/src/api/routes/role.js +1 -1
  294. package/src/api/routes/routing.js +1 -1
  295. package/src/api/routes/row.js +1 -1
  296. package/src/api/routes/screen.js +1 -1
  297. package/src/api/routes/script.js +1 -1
  298. package/src/api/routes/static.js +1 -1
  299. package/src/api/routes/table.js +1 -1
  300. package/src/api/routes/templates.js +1 -1
  301. package/src/api/routes/tests/datasource.spec.js +45 -0
  302. package/src/api/routes/tests/permissions.spec.js +1 -1
  303. package/src/api/routes/tests/query.spec.js +70 -1
  304. package/src/api/routes/tests/role.spec.js +2 -2
  305. package/src/api/routes/tests/routing.spec.js +1 -1
  306. package/src/api/routes/tests/user.spec.js +1 -1
  307. package/src/api/routes/tests/utilities/TestFunctions.js +1 -1
  308. package/src/api/routes/user.js +1 -1
  309. package/src/api/routes/view.js +1 -1
  310. package/src/api/routes/webhook.js +1 -1
  311. package/src/app.ts +1 -1
  312. package/src/automations/bullboard.js +1 -1
  313. package/src/automations/steps/executeQuery.js +10 -2
  314. package/src/automations/utils.js +1 -1
  315. package/src/constants/index.js +3 -3
  316. package/src/constants/screens.js +1 -1
  317. package/src/db/client.js +1 -1
  318. package/src/db/utils.js +1 -1
  319. package/src/definitions/datasource.ts +10 -0
  320. package/src/integrations/base/sqlTable.ts +1 -1
  321. package/src/integrations/rest.ts +6 -3
  322. package/src/middleware/authorized.js +2 -2
  323. package/src/middleware/builder.js +2 -2
  324. package/src/middleware/currentapp.js +11 -7
  325. package/src/middleware/tests/authorized.spec.js +2 -2
  326. package/src/middleware/tests/currentapp.spec.js +35 -41
  327. package/src/middleware/tests/usageQuota.spec.js +1 -1
  328. package/src/middleware/usageQuota.js +1 -1
  329. package/src/tests/utilities/TestConfiguration.js +65 -8
  330. package/src/tests/utilities/structures.js +2 -2
  331. package/src/threads/automation.js +2 -2
  332. package/src/threads/query.js +148 -56
  333. package/src/threads/utils.js +116 -1
  334. package/src/utilities/budibaseDir.js +1 -1
  335. package/src/utilities/fileSystem/utilities.js +3 -1
  336. package/src/utilities/global.js +8 -5
  337. package/src/utilities/index.js +1 -1
  338. package/src/utilities/redis.js +1 -1
  339. package/src/utilities/rowProcessor/index.js +79 -0
  340. package/src/utilities/security.js +5 -2
  341. package/src/utilities/usageQuota.js +2 -2
  342. package/src/utilities/workerRequests.js +3 -3
  343. package/builder/assets/index.00c4135e.js +0 -1320
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">71.59% </span>
26
+ <span class="strong">81.11% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>63/88</span>
28
+ <span class='fraction'>73/90</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">44.44% </span>
33
+ <span class="strong">68.42% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>12/27</span>
35
+ <span class='fraction'>13/19</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">90% </span>
40
+ <span class="strong">85.71% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>9/10</span>
42
+ <span class='fraction'>12/14</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">71.26% </span>
47
+ <span class="strong">80.68% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>62/87</span>
49
+ <span class='fraction'>71/88</span>
50
50
  </div>
51
51
 
52
52
 
@@ -55,7 +55,7 @@
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
57
  </div>
58
- <div class='status-line medium'></div>
58
+ <div class='status-line high'></div>
59
59
  <pre><table class="coverage">
60
60
  <tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
61
61
  <a name='L2'></a><a href='#L2'>2</a>
@@ -252,15 +252,7 @@
252
252
  <a name='L193'></a><a href='#L193'>193</a>
253
253
  <a name='L194'></a><a href='#L194'>194</a>
254
254
  <a name='L195'></a><a href='#L195'>195</a>
255
- <a name='L196'></a><a href='#L196'>196</a>
256
- <a name='L197'></a><a href='#L197'>197</a>
257
- <a name='L198'></a><a href='#L198'>198</a>
258
- <a name='L199'></a><a href='#L199'>199</a>
259
- <a name='L200'></a><a href='#L200'>200</a>
260
- <a name='L201'></a><a href='#L201'>201</a>
261
- <a name='L202'></a><a href='#L202'>202</a>
262
- <a name='L203'></a><a href='#L203'>203</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">34x</span>
263
- <span class="cline-any cline-yes">34x</span>
255
+ <a name='L196'></a><a href='#L196'>196</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">34x</span>
264
256
  <span class="cline-any cline-neutral">&nbsp;</span>
265
257
  <span class="cline-any cline-neutral">&nbsp;</span>
266
258
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -270,6 +262,7 @@
270
262
  <span class="cline-any cline-yes">34x</span>
271
263
  <span class="cline-any cline-yes">34x</span>
272
264
  <span class="cline-any cline-yes">34x</span>
265
+ <span class="cline-any cline-yes">34x</span>
273
266
  <span class="cline-any cline-neutral">&nbsp;</span>
274
267
  <span class="cline-any cline-yes">34x</span>
275
268
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -337,80 +330,69 @@
337
330
  <span class="cline-any cline-neutral">&nbsp;</span>
338
331
  <span class="cline-any cline-neutral">&nbsp;</span>
339
332
  <span class="cline-any cline-yes">34x</span>
340
- <span class="cline-any cline-yes">20x</span>
341
- <span class="cline-any cline-yes">20x</span>
342
- <span class="cline-any cline-neutral">&nbsp;</span>
343
- <span class="cline-any cline-yes">20x</span>
344
- <span class="cline-any cline-yes">20x</span>
345
- <span class="cline-any cline-neutral">&nbsp;</span>
346
- <span class="cline-any cline-neutral">&nbsp;</span>
347
- <span class="cline-any cline-yes">20x</span>
348
- <span class="cline-any cline-yes">20x</span>
349
- <span class="cline-any cline-neutral">&nbsp;</span>
350
- <span class="cline-any cline-yes">20x</span>
351
- <span class="cline-any cline-yes">20x</span>
333
+ <span class="cline-any cline-yes">28x</span>
334
+ <span class="cline-any cline-yes">28x</span>
352
335
  <span class="cline-any cline-neutral">&nbsp;</span>
336
+ <span class="cline-any cline-yes">28x</span>
337
+ <span class="cline-any cline-yes">28x</span>
353
338
  <span class="cline-any cline-neutral">&nbsp;</span>
354
339
  <span class="cline-any cline-neutral">&nbsp;</span>
355
- <span class="cline-any cline-yes">4x</span>
340
+ <span class="cline-any cline-yes">28x</span>
341
+ <span class="cline-any cline-yes">28x</span>
356
342
  <span class="cline-any cline-neutral">&nbsp;</span>
343
+ <span class="cline-any cline-yes">28x</span>
344
+ <span class="cline-any cline-yes">28x</span>
357
345
  <span class="cline-any cline-neutral">&nbsp;</span>
358
- <span class="cline-any cline-yes">4x</span>
359
- <span class="cline-any cline-no">&nbsp;</span>
360
- <span class="cline-any cline-no">&nbsp;</span>
361
346
  <span class="cline-any cline-neutral">&nbsp;</span>
362
- <span class="cline-any cline-no">&nbsp;</span>
347
+ <span class="cline-any cline-yes">34x</span>
348
+ <span class="cline-any cline-yes">3x</span>
349
+ <span class="cline-any cline-yes">3x</span>
363
350
  <span class="cline-any cline-neutral">&nbsp;</span>
364
- <span class="cline-any cline-no">&nbsp;</span>
365
- <span class="cline-any cline-no">&nbsp;</span>
351
+ <span class="cline-any cline-yes">3x</span>
352
+ <span class="cline-any cline-yes">1x</span>
353
+ <span class="cline-any cline-yes">1x</span>
366
354
  <span class="cline-any cline-neutral">&nbsp;</span>
367
- <span class="cline-any cline-no">&nbsp;</span>
355
+ <span class="cline-any cline-yes">3x</span>
368
356
  <span class="cline-any cline-neutral">&nbsp;</span>
369
357
  <span class="cline-any cline-neutral">&nbsp;</span>
358
+ <span class="cline-any cline-yes">34x</span>
359
+ <span class="cline-any cline-yes">8x</span>
370
360
  <span class="cline-any cline-neutral">&nbsp;</span>
371
- <span class="cline-any cline-no">&nbsp;</span>
361
+ <span class="cline-any cline-yes">8x</span>
372
362
  <span class="cline-any cline-neutral">&nbsp;</span>
373
363
  <span class="cline-any cline-neutral">&nbsp;</span>
374
364
  <span class="cline-any cline-neutral">&nbsp;</span>
375
- <span class="cline-any cline-yes">4x</span>
365
+ <span class="cline-any cline-yes">8x</span>
376
366
  <span class="cline-any cline-neutral">&nbsp;</span>
367
+ <span class="cline-any cline-yes">8x</span>
368
+ <span class="cline-any cline-yes">8x</span>
377
369
  <span class="cline-any cline-neutral">&nbsp;</span>
378
370
  <span class="cline-any cline-neutral">&nbsp;</span>
379
371
  <span class="cline-any cline-neutral">&nbsp;</span>
380
- <span class="cline-any cline-no">&nbsp;</span>
381
- <span class="cline-any cline-no">&nbsp;</span>
382
372
  <span class="cline-any cline-neutral">&nbsp;</span>
383
373
  <span class="cline-any cline-neutral">&nbsp;</span>
384
374
  <span class="cline-any cline-neutral">&nbsp;</span>
385
375
  <span class="cline-any cline-neutral">&nbsp;</span>
386
376
  <span class="cline-any cline-neutral">&nbsp;</span>
387
377
  <span class="cline-any cline-neutral">&nbsp;</span>
378
+ <span class="cline-any cline-yes">7x</span>
388
379
  <span class="cline-any cline-neutral">&nbsp;</span>
389
- <span class="cline-any cline-no">&nbsp;</span>
390
380
  <span class="cline-any cline-neutral">&nbsp;</span>
391
381
  <span class="cline-any cline-neutral">&nbsp;</span>
392
- <span class="cline-any cline-yes">4x</span>
393
382
  <span class="cline-any cline-neutral">&nbsp;</span>
394
383
  <span class="cline-any cline-neutral">&nbsp;</span>
395
- <span class="cline-any cline-yes">34x</span>
396
- <span class="cline-any cline-yes">3x</span>
397
- <span class="cline-any cline-yes">3x</span>
398
384
  <span class="cline-any cline-neutral">&nbsp;</span>
399
- <span class="cline-any cline-yes">3x</span>
400
- <span class="cline-any cline-yes">1x</span>
401
385
  <span class="cline-any cline-yes">1x</span>
402
386
  <span class="cline-any cline-neutral">&nbsp;</span>
403
- <span class="cline-any cline-yes">3x</span>
404
387
  <span class="cline-any cline-neutral">&nbsp;</span>
405
388
  <span class="cline-any cline-neutral">&nbsp;</span>
406
- <span class="cline-any cline-yes">34x</span>
407
- <span class="cline-any cline-yes">2x</span>
408
389
  <span class="cline-any cline-neutral">&nbsp;</span>
409
390
  <span class="cline-any cline-yes">2x</span>
410
391
  <span class="cline-any cline-neutral">&nbsp;</span>
411
392
  <span class="cline-any cline-yes">2x</span>
412
393
  <span class="cline-any cline-yes">2x</span>
413
394
  <span class="cline-any cline-neutral">&nbsp;</span>
395
+ <span class="cline-any cline-neutral">&nbsp;</span>
414
396
  <span class="cline-any cline-yes">2x</span>
415
397
  <span class="cline-any cline-yes">2x</span>
416
398
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -419,11 +401,12 @@
419
401
  <span class="cline-any cline-neutral">&nbsp;</span>
420
402
  <span class="cline-any cline-neutral">&nbsp;</span>
421
403
  <span class="cline-any cline-neutral">&nbsp;</span>
422
- <span class="cline-any cline-yes">1x</span>
423
- <span class="cline-any cline-neutral">&nbsp;</span>
424
404
  <span class="cline-any cline-neutral">&nbsp;</span>
425
405
  <span class="cline-any cline-neutral">&nbsp;</span>
406
+ <span class="cline-any cline-yes">1x</span>
407
+ <span class="cline-any cline-yes">1x</span>
426
408
  <span class="cline-any cline-neutral">&nbsp;</span>
409
+ <span class="cline-any cline-no">&nbsp;</span>
427
410
  <span class="cline-any cline-neutral">&nbsp;</span>
428
411
  <span class="cline-any cline-neutral">&nbsp;</span>
429
412
  <span class="cline-any cline-yes">1x</span>
@@ -433,22 +416,24 @@
433
416
  <span class="cline-any cline-yes">34x</span>
434
417
  <span class="cline-any cline-yes">2x</span>
435
418
  <span class="cline-any cline-neutral">&nbsp;</span>
436
- <span class="cline-any cline-yes">2x</span>
437
- <span class="cline-any cline-yes">2x</span>
438
- <span class="cline-any cline-neutral">&nbsp;</span>
439
- <span class="cline-any cline-yes">2x</span>
440
- <span class="cline-any cline-neutral">&nbsp;</span>
441
- <span class="cline-any cline-neutral">&nbsp;</span>
442
419
  <span class="cline-any cline-neutral">&nbsp;</span>
420
+ <span class="cline-any cline-yes">34x</span>
421
+ <span class="cline-any cline-no">&nbsp;</span>
443
422
  <span class="cline-any cline-neutral">&nbsp;</span>
444
423
  <span class="cline-any cline-neutral">&nbsp;</span>
424
+ <span class="cline-any cline-yes">34x</span>
425
+ <span class="cline-any cline-yes">2x</span>
445
426
  <span class="cline-any cline-yes">2x</span>
446
427
  <span class="cline-any cline-yes">2x</span>
447
428
  <span class="cline-any cline-neutral">&nbsp;</span>
429
+ <span class="cline-any cline-yes">2x</span>
448
430
  <span class="cline-any cline-neutral">&nbsp;</span>
431
+ <span class="cline-any cline-yes">1x</span>
432
+ <span class="cline-any cline-yes">1x</span>
433
+ <span class="cline-any cline-yes">1x</span>
449
434
  <span class="cline-any cline-neutral">&nbsp;</span>
450
435
  <span class="cline-any cline-neutral">&nbsp;</span>
451
- <span class="cline-any cline-neutral">&nbsp;</span>
436
+ <span class="cline-any cline-yes">1x</span>
452
437
  <span class="cline-any cline-yes">1x</span>
453
438
  <span class="cline-any cline-neutral">&nbsp;</span>
454
439
  <span class="cline-any cline-yes">1x</span>
@@ -456,13 +441,13 @@
456
441
  <span class="cline-any cline-neutral">&nbsp;</span>
457
442
  <span class="cline-any cline-neutral">&nbsp;</span>
458
443
  <span class="cline-any cline-yes">34x</span>
459
- <span class="cline-any cline-yes">1x</span>
460
- <span class="cline-any cline-yes">1x</span>
461
- <span class="cline-any cline-yes">1x</span>
462
- <span class="cline-any cline-yes">1x</span>
444
+ <span class="cline-any cline-yes">2x</span>
445
+ <span class="cline-any cline-yes">2x</span>
446
+ <span class="cline-any cline-yes">2x</span>
447
+ <span class="cline-any cline-yes">2x</span>
448
+ <span class="cline-any cline-yes">2x</span>
463
449
  <span class="cline-any cline-neutral">&nbsp;</span>
464
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">const { processString } = require("@budibase/string-templates")
465
- const CouchDB = require("../../../db")
450
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">const CouchDB = require("../../../db")
466
451
  const {
467
452
  generateQueryID,
468
453
  getQueryParams,
@@ -472,6 +457,7 @@ const { BaseQueryVerbs } = require("../../../constants")
472
457
  const { Thread, ThreadType } = require("../../../threads")
473
458
  const { save: saveDatasource } = require("../datasource")
474
459
  const { RestImporter } = require("./import")
460
+ const { invalidateDynamicVariables } = require("../../../threads/utils")
475
461
  &nbsp;
476
462
  const Runner = new Thread(ThreadType.QUERY, { timeoutMs: 10000 })
477
463
  &nbsp;
@@ -553,47 +539,6 @@ exports.save = async function (ctx) {
553
539
  ctx.message = `Query ${query.name} saved successfully.`
554
540
  }
555
541
  &nbsp;
556
- async function enrichQueryFields(fields, parameters = <span class="branch-0 cbranch-no" title="branch not covered" >{})</span> {
557
- const enrichedQuery = {}
558
- &nbsp;
559
- // enrich the fields with dynamic parameters
560
- for (let key of Object.keys(fields)) {
561
- <span class="cstat-no" title="statement not covered" > if (fields[key] == null) {</span>
562
- <span class="cstat-no" title="statement not covered" > continue</span>
563
- }
564
- <span class="cstat-no" title="statement not covered" > if (typeof fields[key] === "object") {</span>
565
- // enrich nested fields object
566
- <span class="cstat-no" title="statement not covered" > enrichedQuery[key] = await enrichQueryFields(fields[key], parameters)</span>
567
- } else <span class="cstat-no" title="statement not covered" >if (typeof fields[key] === "string") {</span>
568
- // enrich string value as normal
569
- <span class="cstat-no" title="statement not covered" > enrichedQuery[key] = await processString(fields[key], parameters, {</span>
570
- noHelpers: true,
571
- })
572
- } else {
573
- <span class="cstat-no" title="statement not covered" > enrichedQuery[key] = fields[key]</span>
574
- }
575
- }
576
- &nbsp;
577
- <span class="missing-if-branch" title="if path not taken" >I</span>if (
578
- enrichedQuery.json ||
579
- enrichedQuery.customData ||
580
- enrichedQuery.requestBody
581
- ) {
582
- <span class="cstat-no" title="statement not covered" > try {</span>
583
- <span class="cstat-no" title="statement not covered" > enrichedQuery.json = JSON.parse(</span>
584
- enrichedQuery.json ||
585
- enrichedQuery.customData ||
586
- enrichedQuery.requestBody
587
- )
588
- } catch (err) {
589
- // no json found, ignore
590
- }
591
- <span class="cstat-no" title="statement not covered" > delete enrichedQuery.customData</span>
592
- }
593
- &nbsp;
594
- return enrichedQuery
595
- }
596
- &nbsp;
597
542
  exports.find = async function (ctx) {
598
543
  const db = new CouchDB(ctx.appId)
599
544
  const query = enrichQueries(await db.get(ctx.params.queryId))
@@ -609,16 +554,20 @@ exports.preview = async function (ctx) {
609
554
  const db = new CouchDB(ctx.appId)
610
555
  &nbsp;
611
556
  const datasource = await db.get(ctx.request.body.datasourceId)
612
- &nbsp;
613
- const { fields, parameters, queryVerb, transformer } = ctx.request.body
614
- const enrichedQuery = await enrichQueryFields(fields, parameters)
557
+ // preview may not have a queryId as it hasn't been saved, but if it does
558
+ // this stops dynamic variables from calling the same query
559
+ const { fields, parameters, queryVerb, transformer, queryId } =
560
+ ctx.request.body
615
561
  &nbsp;
616
562
  try {
617
563
  const { rows, keys, info, extra } = await Runner.run({
564
+ appId: ctx.appId,
618
565
  datasource,
619
566
  queryVerb,
620
- query: enrichedQuery,
567
+ fields,
568
+ parameters,
621
569
  transformer,
570
+ queryId,
622
571
  })
623
572
  &nbsp;
624
573
  ctx.body = {
@@ -632,33 +581,63 @@ exports.preview = async function (ctx) {
632
581
  }
633
582
  }
634
583
  &nbsp;
635
- exports.execute = async function (ctx) {
584
+ async function execute(ctx, opts = <span class="branch-0 cbranch-no" title="branch not covered" >{ rowsOnly: false })</span> {
636
585
  const db = new CouchDB(ctx.appId)
637
586
  &nbsp;
638
587
  const query = await db.get(ctx.params.queryId)
639
588
  const datasource = await db.get(query.datasourceId)
640
- &nbsp;
641
- const enrichedQuery = await enrichQueryFields(
642
- query.fields,
643
- ctx.request.body.parameters
644
- )
645
589
  &nbsp;
646
590
  // call the relevant CRUD method on the integration class
647
591
  try {
648
- const { rows } = await Runner.run({
592
+ const { rows, extra } = await Runner.run({
593
+ appId: ctx.appId,
649
594
  datasource,
650
595
  queryVerb: query.queryVerb,
651
- query: enrichedQuery,
596
+ fields: query.fields,
597
+ parameters: ctx.request.body.parameters,
652
598
  transformer: query.transformer,
599
+ queryId: ctx.params.queryId,
653
600
  })
654
- ctx.body = rows
601
+ if (opts &amp;&amp; opts.rowsOnly) {
602
+ ctx.body = rows
603
+ } else <span class="missing-if-branch" title="else path not taken" >E</span>{
604
+ <span class="cstat-no" title="statement not covered" > ctx.body = { data: rows, ...extra }</span>
605
+ }
655
606
  } catch (err) {
656
607
  ctx.throw(400, err)
657
608
  }
658
609
  }
659
610
  &nbsp;
611
+ exports.executeV1 = async function (ctx) {
612
+ return execute(ctx, { rowsOnly: true })
613
+ }
614
+ &nbsp;
615
+ exports.executeV2 = <span class="fstat-no" title="function not covered" >as</span>ync function (ctx) {
616
+ <span class="cstat-no" title="statement not covered" > return execute(ctx, { rowsOnly: false })</span>
617
+ }
618
+ &nbsp;
619
+ const removeDynamicVariables = async (db, queryId) =&gt; {
620
+ const query = await db.get(queryId)
621
+ const datasource = await db.get(query.datasourceId)
622
+ const dynamicVariables = datasource.config.dynamicVariables
623
+ &nbsp;
624
+ if (dynamicVariables) {
625
+ // delete dynamic variables from the datasource
626
+ const newVariables = dynamicVariables.filter(dv =&gt; dv.queryId !== queryId)
627
+ datasource.config.dynamicVariables = newVariables
628
+ await db.put(datasource)
629
+ &nbsp;
630
+ // invalidate the deleted variables
631
+ const variablesToDelete = dynamicVariables.filter(
632
+ dv =&gt; dv.queryId === queryId
633
+ )
634
+ await invalidateDynamicVariables(variablesToDelete)
635
+ }
636
+ }
637
+ &nbsp;
660
638
  exports.destroy = async function (ctx) {
661
639
  const db = new CouchDB(ctx.appId)
640
+ await removeDynamicVariables(db, ctx.params.queryId)
662
641
  await db.remove(ctx.params.queryId, ctx.params.revId)
663
642
  ctx.message = `Query deleted.`
664
643
  ctx.status = 200
@@ -670,7 +649,7 @@ exports.destroy = async function (ctx) {
670
649
  <div class='footer quiet pad2 space-top1 center small'>
671
650
  Code coverage generated by
672
651
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
673
- at Fri Dec 31 2021 14:12:35 GMT+0000 (Coordinated Universal Time)
652
+ at Wed Jan 12 2022 13:19:56 GMT+0000 (Coordinated Universal Time)
674
653
  </div>
675
654
  </div>
676
655
  <script src="../../../prettify.js"></script>
@@ -98,7 +98,8 @@
98
98
  <a name='L39'></a><a href='#L39'>39</a>
99
99
  <a name='L40'></a><a href='#L40'>40</a>
100
100
  <a name='L41'></a><a href='#L41'>41</a>
101
- <a name='L42'></a><a href='#L42'>42</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">35x</span>
101
+ <a name='L42'></a><a href='#L42'>42</a>
102
+ <a name='L43'></a><a href='#L43'>43</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">35x</span>
102
103
  <span class="cline-any cline-yes">35x</span>
103
104
  <span class="cline-any cline-neutral">&nbsp;</span>
104
105
  <span class="cline-any cline-yes">35x</span>
@@ -139,6 +140,7 @@
139
140
  <span class="cline-any cline-neutral">&nbsp;</span>
140
141
  <span class="cline-any cline-neutral">&nbsp;</span>
141
142
  <span class="cline-any cline-neutral">&nbsp;</span>
143
+ <span class="cline-any cline-neutral">&nbsp;</span>
142
144
  <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">const joiValidator = require("../../../middleware/joi-validator")
143
145
  const Joi = require("joi")
144
146
  &nbsp;
@@ -177,7 +179,8 @@ exports.generateQueryPreviewValidation = () =&gt; {
177
179
  extra: Joi.object().optional(),
178
180
  datasourceId: Joi.string().required(),
179
181
  transformer: Joi.string().optional(),
180
- parameters: Joi.object({}).required().unknown(true)
182
+ parameters: Joi.object({}).required().unknown(true),
183
+ queryId: Joi.string().optional(),
181
184
  }))
182
185
  }
183
186
  &nbsp;</pre></td></tr></table></pre>
@@ -187,7 +190,7 @@ exports.generateQueryPreviewValidation = () =&gt; {
187
190
  <div class='footer quiet pad2 space-top1 center small'>
188
191
  Code coverage generated by
189
192
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
190
- at Fri Dec 31 2021 14:12:35 GMT+0000 (Coordinated Universal Time)
193
+ at Wed Jan 12 2022 13:19:56 GMT+0000 (Coordinated Universal Time)
191
194
  </div>
192
195
  </div>
193
196
  <script src="../../../prettify.js"></script>
@@ -259,7 +259,7 @@ const {
259
259
  getRole,
260
260
  isBuiltin,
261
261
  getAllRoles,
262
- } = require("@budibase/auth/roles")
262
+ } = require("@budibase/backend-core/roles")
263
263
  const {
264
264
  generateRoleID,
265
265
  getUserMetadataParams,
@@ -358,7 +358,7 @@ exports.destroy = async function (ctx) {
358
358
  <div class='footer quiet pad2 space-top1 center small'>
359
359
  Code coverage generated by
360
360
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
361
- at Fri Dec 31 2021 14:12:35 GMT+0000 (Coordinated Universal Time)
361
+ at Wed Jan 12 2022 13:19:56 GMT+0000 (Coordinated Universal Time)
362
362
  </div>
363
363
  </div>
364
364
  <script src="../../prettify.js"></script>
@@ -247,7 +247,7 @@
247
247
  const {
248
248
  getUserRoleHierarchy,
249
249
  BUILTIN_ROLE_IDS,
250
- } = require("@budibase/auth/roles")
250
+ } = require("@budibase/backend-core/roles")
251
251
  &nbsp;
252
252
  const URL_SEPARATOR = "/"
253
253
  &nbsp;
@@ -343,7 +343,7 @@ exports.clientFetch = async ctx =&gt; {
343
343
  <div class='footer quiet pad2 space-top1 center small'>
344
344
  Code coverage generated by
345
345
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
346
- at Fri Dec 31 2021 14:12:35 GMT+0000 (Coordinated Universal Time)
346
+ at Wed Jan 12 2022 13:19:56 GMT+0000 (Coordinated Universal Time)
347
347
  </div>
348
348
  </div>
349
349
  <script src="../../prettify.js"></script>
@@ -757,7 +757,7 @@ exports.fetchEnrichedRow = <span class="fstat-no" title="function not covered" >
757
757
  <div class='footer quiet pad2 space-top1 center small'>
758
758
  Code coverage generated by
759
759
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
760
- at Fri Dec 31 2021 14:12:35 GMT+0000 (Coordinated Universal Time)
760
+ at Wed Jan 12 2022 13:19:56 GMT+0000 (Coordinated Universal Time)
761
761
  </div>
762
762
  </div>
763
763
  <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">52.6% </span>
26
+ <span class="strong">52.89% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>313/595</span>
28
+ <span class='fraction'>320/605</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">33.46% </span>
33
+ <span class="strong">33.59% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>83/248</span>
35
+ <span class='fraction'>85/253</span>
36
36
  </div>
37
37
 
38
38
 
@@ -44,9 +44,9 @@
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">52.65% </span>
47
+ <span class="strong">52.95% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>307/583</span>
49
+ <span class='fraction'>314/593</span>
50
50
  </div>
51
51
 
52
52
 
@@ -104,17 +104,17 @@
104
104
 
105
105
  <tr>
106
106
  <td class="file high" data-value="internal.js"><a href="internal.js.html">internal.js</a></td>
107
- <td data-value="82.79" class="pic high">
108
- <div class="chart"><div class="cover-fill" style="width: 82%"></div><div class="cover-empty" style="width: 18%"></div></div>
107
+ <td data-value="83.18" class="pic high">
108
+ <div class="chart"><div class="cover-fill" style="width: 83%"></div><div class="cover-empty" style="width: 17%"></div></div>
109
109
  </td>
110
- <td data-value="82.79" class="pct high">82.79%</td>
111
- <td data-value="215" class="abs high">178/215</td>
110
+ <td data-value="83.18" class="pct high">83.18%</td>
111
+ <td data-value="220" class="abs high">183/220</td>
112
112
  <td data-value="60.93" class="pct medium">60.93%</td>
113
113
  <td data-value="64" class="abs medium">39/64</td>
114
114
  <td data-value="92" class="pct high">92%</td>
115
115
  <td data-value="25" class="abs high">23/25</td>
116
- <td data-value="82.77" class="pct high">82.77%</td>
117
- <td data-value="209" class="abs high">173/209</td>
116
+ <td data-value="83.17" class="pct high">83.17%</td>
117
+ <td data-value="214" class="abs high">178/214</td>
118
118
  </tr>
119
119
 
120
120
  <tr>
@@ -125,7 +125,7 @@
125
125
  <td data-value="4.66" class="pct low">4.66%</td>
126
126
  <td data-value="150" class="abs low">7/150</td>
127
127
  <td data-value="0" class="pct low">0%</td>
128
- <td data-value="85" class="abs low">0/85</td>
128
+ <td data-value="87" class="abs low">0/87</td>
129
129
  <td data-value="0" class="pct low">0%</td>
130
130
  <td data-value="33" class="abs low">0/33</td>
131
131
  <td data-value="4.76" class="pct low">4.76%</td>
@@ -134,17 +134,17 @@
134
134
 
135
135
  <tr>
136
136
  <td class="file medium" data-value="utils.js"><a href="utils.js.html">utils.js</a></td>
137
- <td data-value="77.27" class="pic medium">
138
- <div class="chart"><div class="cover-fill" style="width: 77%"></div><div class="cover-empty" style="width: 23%"></div></div>
137
+ <td data-value="73.46" class="pic medium">
138
+ <div class="chart"><div class="cover-fill" style="width: 73%"></div><div class="cover-empty" style="width: 27%"></div></div>
139
139
  </td>
140
- <td data-value="77.27" class="pct medium">77.27%</td>
141
- <td data-value="44" class="abs medium">34/44</td>
142
- <td data-value="52.17" class="pct medium">52.17%</td>
143
- <td data-value="23" class="abs medium">12/23</td>
140
+ <td data-value="73.46" class="pct medium">73.46%</td>
141
+ <td data-value="49" class="abs medium">36/49</td>
142
+ <td data-value="53.84" class="pct medium">53.84%</td>
143
+ <td data-value="26" class="abs medium">14/26</td>
144
144
  <td data-value="66.66" class="pct medium">66.66%</td>
145
145
  <td data-value="6" class="abs medium">4/6</td>
146
- <td data-value="76.74" class="pct medium">76.74%</td>
147
- <td data-value="43" class="abs medium">33/43</td>
146
+ <td data-value="72.91" class="pct medium">72.91%</td>
147
+ <td data-value="48" class="abs medium">35/48</td>
148
148
  </tr>
149
149
 
150
150
  </tbody>
@@ -155,7 +155,7 @@
155
155
  <div class='footer quiet pad2 space-top1 center small'>
156
156
  Code coverage generated by
157
157
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
158
- at Fri Dec 31 2021 14:12:35 GMT+0000 (Coordinated Universal Time)
158
+ at Wed Jan 12 2022 13:19:56 GMT+0000 (Coordinated Universal Time)
159
159
  </div>
160
160
  </div>
161
161
  <script src="../../../prettify.js"></script>
@@ -481,7 +481,7 @@ exports.fetchEnrichedRow = async function (ctx) {
481
481
  <div class='footer quiet pad2 space-top1 center small'>
482
482
  Code coverage generated by
483
483
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
484
- at Fri Dec 31 2021 14:12:35 GMT+0000 (Coordinated Universal Time)
484
+ at Wed Jan 12 2022 13:19:56 GMT+0000 (Coordinated Universal Time)
485
485
  </div>
486
486
  </div>
487
487
  <script src="../../../prettify.js"></script>