@budibase/server 1.0.27-alpha.10 → 1.0.27-alpha.14

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 (331) hide show
  1. package/builder/assets/{index.0dce895b.css → index.39e01193.css} +1 -1
  2. package/builder/assets/{index.39751e34.js → index.411e6960.js} +239 -239
  3. package/builder/index.html +2 -2
  4. package/coverage/clover.xml +909 -890
  5. package/coverage/coverage-final.json +68 -68
  6. package/coverage/lcov-report/api/controllers/analytics.js.html +1 -1
  7. package/coverage/lcov-report/api/controllers/apikeys.js.html +3 -3
  8. package/coverage/lcov-report/api/controllers/application.js.html +71 -62
  9. package/coverage/lcov-report/api/controllers/auth.js.html +2 -2
  10. package/coverage/lcov-report/api/controllers/automation.js.html +1 -1
  11. package/coverage/lcov-report/api/controllers/backup.js.html +1 -1
  12. package/coverage/lcov-report/api/controllers/cloud.js.html +13 -4
  13. package/coverage/lcov-report/api/controllers/component.js.html +1 -1
  14. package/coverage/lcov-report/api/controllers/datasource.js.html +138 -36
  15. package/coverage/lcov-report/api/controllers/dev.js.html +3 -3
  16. package/coverage/lcov-report/api/controllers/hosting.js.html +3 -3
  17. package/coverage/lcov-report/api/controllers/index.html +19 -19
  18. package/coverage/lcov-report/api/controllers/integration.js.html +1 -1
  19. package/coverage/lcov-report/api/controllers/layout.js.html +1 -1
  20. package/coverage/lcov-report/api/controllers/metadata.js.html +1 -1
  21. package/coverage/lcov-report/api/controllers/permission.js.html +3 -3
  22. package/coverage/lcov-report/api/controllers/query/index.html +21 -21
  23. package/coverage/lcov-report/api/controllers/query/index.js.html +51 -48
  24. package/coverage/lcov-report/api/controllers/query/validation.js.html +1 -1
  25. package/coverage/lcov-report/api/controllers/role.js.html +2 -2
  26. package/coverage/lcov-report/api/controllers/routing.js.html +2 -2
  27. package/coverage/lcov-report/api/controllers/row/external.js.html +1 -1
  28. package/coverage/lcov-report/api/controllers/row/index.html +1 -1
  29. package/coverage/lcov-report/api/controllers/row/index.js.html +1 -1
  30. package/coverage/lcov-report/api/controllers/row/internal.js.html +1 -1
  31. package/coverage/lcov-report/api/controllers/row/internalSearch.js.html +2 -2
  32. package/coverage/lcov-report/api/controllers/row/utils.js.html +1 -1
  33. package/coverage/lcov-report/api/controllers/screen.js.html +2 -2
  34. package/coverage/lcov-report/api/controllers/script.js.html +1 -1
  35. package/coverage/lcov-report/api/controllers/table/external.js.html +1 -1
  36. package/coverage/lcov-report/api/controllers/table/index.html +1 -1
  37. package/coverage/lcov-report/api/controllers/table/index.js.html +1 -1
  38. package/coverage/lcov-report/api/controllers/table/internal.js.html +1 -1
  39. package/coverage/lcov-report/api/controllers/table/utils.js.html +1 -1
  40. package/coverage/lcov-report/api/controllers/templates.js.html +1 -1
  41. package/coverage/lcov-report/api/controllers/user.js.html +14 -5
  42. package/coverage/lcov-report/api/controllers/view/exporters.js.html +1 -1
  43. package/coverage/lcov-report/api/controllers/view/index.html +1 -1
  44. package/coverage/lcov-report/api/controllers/view/index.js.html +1 -1
  45. package/coverage/lcov-report/api/controllers/view/utils.js.html +1 -1
  46. package/coverage/lcov-report/api/controllers/view/viewBuilder.js.html +1 -1
  47. package/coverage/lcov-report/api/controllers/webhook.js.html +2 -2
  48. package/coverage/lcov-report/api/index.html +1 -1
  49. package/coverage/lcov-report/api/index.js.html +6 -6
  50. package/coverage/lcov-report/api/routes/analytics.js.html +1 -1
  51. package/coverage/lcov-report/api/routes/apikeys.js.html +2 -2
  52. package/coverage/lcov-report/api/routes/application.js.html +2 -2
  53. package/coverage/lcov-report/api/routes/auth.js.html +1 -1
  54. package/coverage/lcov-report/api/routes/automation.js.html +2 -2
  55. package/coverage/lcov-report/api/routes/backup.js.html +2 -2
  56. package/coverage/lcov-report/api/routes/cloud.js.html +2 -2
  57. package/coverage/lcov-report/api/routes/component.js.html +2 -2
  58. package/coverage/lcov-report/api/routes/datasource.js.html +2 -2
  59. package/coverage/lcov-report/api/routes/deploy.js.html +2 -2
  60. package/coverage/lcov-report/api/routes/dev.js.html +2 -2
  61. package/coverage/lcov-report/api/routes/hosting.js.html +2 -2
  62. package/coverage/lcov-report/api/routes/index.html +1 -1
  63. package/coverage/lcov-report/api/routes/index.js.html +1 -1
  64. package/coverage/lcov-report/api/routes/integration.js.html +2 -2
  65. package/coverage/lcov-report/api/routes/layout.js.html +2 -2
  66. package/coverage/lcov-report/api/routes/metadata.js.html +2 -2
  67. package/coverage/lcov-report/api/routes/permission.js.html +12 -3
  68. package/coverage/lcov-report/api/routes/query.js.html +2 -2
  69. package/coverage/lcov-report/api/routes/role.js.html +2 -2
  70. package/coverage/lcov-report/api/routes/routing.js.html +2 -2
  71. package/coverage/lcov-report/api/routes/row.js.html +2 -2
  72. package/coverage/lcov-report/api/routes/screen.js.html +2 -2
  73. package/coverage/lcov-report/api/routes/script.js.html +2 -2
  74. package/coverage/lcov-report/api/routes/static.js.html +2 -2
  75. package/coverage/lcov-report/api/routes/table.js.html +2 -2
  76. package/coverage/lcov-report/api/routes/templates.js.html +2 -2
  77. package/coverage/lcov-report/api/routes/user.js.html +2 -2
  78. package/coverage/lcov-report/api/routes/view.js.html +2 -2
  79. package/coverage/lcov-report/api/routes/webhook.js.html +2 -2
  80. package/coverage/lcov-report/automations/actions.js.html +1 -1
  81. package/coverage/lcov-report/automations/automationUtils.js.html +1 -1
  82. package/coverage/lcov-report/automations/bullboard.js.html +2 -2
  83. package/coverage/lcov-report/automations/index.html +1 -1
  84. package/coverage/lcov-report/automations/index.js.html +1 -1
  85. package/coverage/lcov-report/automations/steps/bash.js.html +1 -1
  86. package/coverage/lcov-report/automations/steps/createRow.js.html +1 -1
  87. package/coverage/lcov-report/automations/steps/delay.js.html +1 -1
  88. package/coverage/lcov-report/automations/steps/deleteRow.js.html +1 -1
  89. package/coverage/lcov-report/automations/steps/discord.js.html +1 -1
  90. package/coverage/lcov-report/automations/steps/executeQuery.js.html +2 -2
  91. package/coverage/lcov-report/automations/steps/executeScript.js.html +1 -1
  92. package/coverage/lcov-report/automations/steps/filter.js.html +1 -1
  93. package/coverage/lcov-report/automations/steps/index.html +1 -1
  94. package/coverage/lcov-report/automations/steps/integromat.js.html +1 -1
  95. package/coverage/lcov-report/automations/steps/outgoingWebhook.js.html +1 -1
  96. package/coverage/lcov-report/automations/steps/queryRows.js.html +1 -1
  97. package/coverage/lcov-report/automations/steps/sendSmtpEmail.js.html +1 -1
  98. package/coverage/lcov-report/automations/steps/serverLog.js.html +1 -1
  99. package/coverage/lcov-report/automations/steps/slack.js.html +1 -1
  100. package/coverage/lcov-report/automations/steps/updateRow.js.html +1 -1
  101. package/coverage/lcov-report/automations/steps/utils.js.html +1 -1
  102. package/coverage/lcov-report/automations/steps/zapier.js.html +1 -1
  103. package/coverage/lcov-report/automations/triggerInfo/app.js.html +1 -1
  104. package/coverage/lcov-report/automations/triggerInfo/cron.js.html +1 -1
  105. package/coverage/lcov-report/automations/triggerInfo/index.html +1 -1
  106. package/coverage/lcov-report/automations/triggerInfo/index.js.html +1 -1
  107. package/coverage/lcov-report/automations/triggerInfo/rowDeleted.js.html +1 -1
  108. package/coverage/lcov-report/automations/triggerInfo/rowSaved.js.html +1 -1
  109. package/coverage/lcov-report/automations/triggerInfo/rowUpdated.js.html +1 -1
  110. package/coverage/lcov-report/automations/triggerInfo/webhook.js.html +1 -1
  111. package/coverage/lcov-report/automations/triggers.js.html +1 -1
  112. package/coverage/lcov-report/automations/utils.js.html +6 -6
  113. package/coverage/lcov-report/constants/index.html +1 -1
  114. package/coverage/lcov-report/constants/index.js.html +4 -4
  115. package/coverage/lcov-report/constants/layouts.js.html +1 -1
  116. package/coverage/lcov-report/constants/screens.js.html +2 -2
  117. package/coverage/lcov-report/db/client.js.html +2 -2
  118. package/coverage/lcov-report/db/inMemoryView.js.html +1 -1
  119. package/coverage/lcov-report/db/index.html +1 -1
  120. package/coverage/lcov-report/db/index.js.html +1 -1
  121. package/coverage/lcov-report/db/linkedRows/LinkController.js.html +1 -1
  122. package/coverage/lcov-report/db/linkedRows/index.html +1 -1
  123. package/coverage/lcov-report/db/linkedRows/index.js.html +1 -1
  124. package/coverage/lcov-report/db/linkedRows/linkUtils.js.html +1 -1
  125. package/coverage/lcov-report/db/newid.js.html +2 -2
  126. package/coverage/lcov-report/db/utils.js.html +19 -19
  127. package/coverage/lcov-report/events/AutomationEmitter.js.html +1 -1
  128. package/coverage/lcov-report/events/index.html +1 -1
  129. package/coverage/lcov-report/events/index.js.html +1 -1
  130. package/coverage/lcov-report/events/utils.js.html +1 -1
  131. package/coverage/lcov-report/index.html +38 -38
  132. package/coverage/lcov-report/integrations/tests/TestConfiguration.js.html +1 -1
  133. package/coverage/lcov-report/integrations/tests/index.html +1 -1
  134. package/coverage/lcov-report/middleware/appInfo.js.html +1 -1
  135. package/coverage/lcov-report/middleware/authorized.js.html +11 -11
  136. package/coverage/lcov-report/middleware/builder.js.html +10 -10
  137. package/coverage/lcov-report/middleware/currentapp.js.html +48 -36
  138. package/coverage/lcov-report/middleware/index.html +1 -1
  139. package/coverage/lcov-report/middleware/joi-validator.js.html +9 -9
  140. package/coverage/lcov-report/middleware/resourceId.js.html +7 -7
  141. package/coverage/lcov-report/middleware/selfhost.js.html +1 -1
  142. package/coverage/lcov-report/middleware/usageQuota.js.html +2 -2
  143. package/coverage/lcov-report/middleware/utils.js.html +2 -2
  144. package/coverage/lcov-report/threads/automation.js.html +3 -3
  145. package/coverage/lcov-report/threads/index.html +28 -28
  146. package/coverage/lcov-report/threads/index.js.html +12 -12
  147. package/coverage/lcov-report/threads/query.js.html +253 -85
  148. package/coverage/lcov-report/threads/utils.js.html +31 -181
  149. package/coverage/lcov-report/utilities/bcrypt.js.html +1 -1
  150. package/coverage/lcov-report/utilities/budibaseDir.js.html +2 -2
  151. package/coverage/lcov-report/utilities/centralPath.js.html +1 -1
  152. package/coverage/lcov-report/utilities/csvParser.js.html +1 -1
  153. package/coverage/lcov-report/utilities/global.js.html +27 -18
  154. package/coverage/lcov-report/utilities/index.html +4 -4
  155. package/coverage/lcov-report/utilities/index.js.html +13 -13
  156. package/coverage/lcov-report/utilities/queue/inMemoryQueue.js.html +2 -2
  157. package/coverage/lcov-report/utilities/queue/index.html +1 -1
  158. package/coverage/lcov-report/utilities/routing/index.html +1 -1
  159. package/coverage/lcov-report/utilities/routing/index.js.html +1 -1
  160. package/coverage/lcov-report/utilities/rowProcessor/index.html +1 -1
  161. package/coverage/lcov-report/utilities/rowProcessor/index.js.html +15 -3
  162. package/coverage/lcov-report/utilities/rowProcessor/utils.js.html +1 -1
  163. package/coverage/lcov-report/utilities/scriptRunner.js.html +1 -1
  164. package/coverage/lcov-report/utilities/security.js.html +13 -4
  165. package/coverage/lcov-report/utilities/statusCodes.js.html +1 -1
  166. package/coverage/lcov-report/utilities/users.js.html +1 -1
  167. package/coverage/lcov-report/utilities/workerRequests.js.html +22 -22
  168. package/coverage/lcov.info +1566 -1528
  169. package/dist/api/controllers/apikeys.js +2 -2
  170. package/dist/api/controllers/application.js +4 -4
  171. package/dist/api/controllers/auth.js +1 -1
  172. package/dist/api/controllers/cloud.js +2 -2
  173. package/dist/api/controllers/datasource.js +29 -0
  174. package/dist/api/controllers/deploy/index.js +2 -2
  175. package/dist/api/controllers/dev.js +2 -2
  176. package/dist/api/controllers/hosting.js +2 -2
  177. package/dist/api/controllers/permission.js +2 -2
  178. package/dist/api/controllers/query/index.js +3 -2
  179. package/dist/api/controllers/role.js +1 -1
  180. package/dist/api/controllers/routing.js +1 -1
  181. package/dist/api/controllers/row/internalSearch.js +1 -1
  182. package/dist/api/controllers/screen.js +1 -1
  183. package/dist/api/controllers/user.js +3 -3
  184. package/dist/api/controllers/webhook.js +1 -1
  185. package/dist/api/index.js +1 -1
  186. package/dist/api/routes/apikeys.js +1 -1
  187. package/dist/api/routes/application.js +1 -1
  188. package/dist/api/routes/automation.js +1 -1
  189. package/dist/api/routes/backup.js +1 -1
  190. package/dist/api/routes/cloud.js +1 -1
  191. package/dist/api/routes/component.js +1 -1
  192. package/dist/api/routes/datasource.js +1 -1
  193. package/dist/api/routes/deploy.js +1 -1
  194. package/dist/api/routes/dev.js +1 -1
  195. package/dist/api/routes/hosting.js +1 -1
  196. package/dist/api/routes/integration.js +1 -1
  197. package/dist/api/routes/layout.js +1 -1
  198. package/dist/api/routes/metadata.js +1 -1
  199. package/dist/api/routes/permission.js +1 -1
  200. package/dist/api/routes/query.js +1 -1
  201. package/dist/api/routes/role.js +1 -1
  202. package/dist/api/routes/routing.js +1 -1
  203. package/dist/api/routes/row.js +1 -1
  204. package/dist/api/routes/screen.js +1 -1
  205. package/dist/api/routes/script.js +1 -1
  206. package/dist/api/routes/static.js +1 -1
  207. package/dist/api/routes/table.js +1 -1
  208. package/dist/api/routes/templates.js +1 -1
  209. package/dist/api/routes/tests/utilities/TestFunctions.js +1 -1
  210. package/dist/api/routes/user.js +1 -1
  211. package/dist/api/routes/view.js +1 -1
  212. package/dist/api/routes/webhook.js +1 -1
  213. package/dist/app.js +1 -1
  214. package/dist/automations/bullboard.js +1 -1
  215. package/dist/automations/steps/executeQuery.js +1 -1
  216. package/dist/automations/utils.js +1 -1
  217. package/dist/constants/index.js +3 -3
  218. package/dist/constants/screens.js +1 -1
  219. package/dist/db/client.js +1 -1
  220. package/dist/db/utils.js +1 -1
  221. package/dist/environment.js +1 -0
  222. package/dist/integrations/dynamodb.js +19 -0
  223. package/dist/integrations/rest.js +68 -19
  224. package/dist/integrations/s3.js +17 -8
  225. package/dist/middleware/authorized.js +2 -2
  226. package/dist/middleware/builder.js +2 -2
  227. package/dist/middleware/currentapp.js +6 -6
  228. package/dist/middleware/usageQuota.js +1 -1
  229. package/dist/package.json +4 -4
  230. package/dist/tests/utilities/TestConfiguration.js +48 -8
  231. package/dist/tests/utilities/structures.js +2 -2
  232. package/dist/threads/automation.js +2 -2
  233. package/dist/threads/query.js +52 -3
  234. package/dist/threads/utils.js +3 -47
  235. package/dist/tsconfig.tsbuildinfo +1 -1
  236. package/dist/utilities/budibaseDir.js +1 -1
  237. package/dist/utilities/fileSystem/utilities.js +1 -1
  238. package/dist/utilities/global.js +5 -5
  239. package/dist/utilities/index.js +2 -2
  240. package/dist/utilities/redis.js +1 -1
  241. package/dist/utilities/rowProcessor/index.js +1 -1
  242. package/dist/utilities/security.js +2 -2
  243. package/dist/utilities/usageQuota.js +2 -2
  244. package/dist/utilities/workerRequests.js +3 -3
  245. package/package.json +5 -5
  246. package/scripts/replicateApp.js +1 -1
  247. package/src/api/controllers/apikeys.js +2 -2
  248. package/src/api/controllers/application.js +7 -4
  249. package/src/api/controllers/auth.js +1 -1
  250. package/src/api/controllers/cloud.js +5 -2
  251. package/src/api/controllers/datasource.js +34 -0
  252. package/src/api/controllers/deploy/index.js +2 -2
  253. package/src/api/controllers/dev.js +2 -2
  254. package/src/api/controllers/hosting.js +2 -2
  255. package/src/api/controllers/permission.js +2 -2
  256. package/src/api/controllers/query/index.js +3 -2
  257. package/src/api/controllers/role.js +1 -1
  258. package/src/api/controllers/routing.js +1 -1
  259. package/src/api/controllers/row/internalSearch.js +1 -1
  260. package/src/api/controllers/screen.js +1 -1
  261. package/src/api/controllers/user.js +6 -3
  262. package/src/api/controllers/webhook.js +1 -1
  263. package/src/api/index.js +1 -1
  264. package/src/api/routes/apikeys.js +1 -1
  265. package/src/api/routes/application.js +1 -1
  266. package/src/api/routes/automation.js +1 -1
  267. package/src/api/routes/backup.js +1 -1
  268. package/src/api/routes/cloud.js +1 -1
  269. package/src/api/routes/component.js +1 -1
  270. package/src/api/routes/datasource.js +1 -1
  271. package/src/api/routes/deploy.js +1 -1
  272. package/src/api/routes/dev.js +1 -1
  273. package/src/api/routes/hosting.js +1 -1
  274. package/src/api/routes/integration.js +1 -1
  275. package/src/api/routes/layout.js +1 -1
  276. package/src/api/routes/metadata.js +1 -1
  277. package/src/api/routes/permission.js +4 -1
  278. package/src/api/routes/query.js +1 -1
  279. package/src/api/routes/role.js +1 -1
  280. package/src/api/routes/routing.js +1 -1
  281. package/src/api/routes/row.js +1 -1
  282. package/src/api/routes/screen.js +1 -1
  283. package/src/api/routes/script.js +1 -1
  284. package/src/api/routes/static.js +1 -1
  285. package/src/api/routes/table.js +1 -1
  286. package/src/api/routes/templates.js +1 -1
  287. package/src/api/routes/tests/datasource.spec.js +45 -0
  288. package/src/api/routes/tests/permissions.spec.js +1 -1
  289. package/src/api/routes/tests/query.spec.js +25 -44
  290. package/src/api/routes/tests/role.spec.js +2 -2
  291. package/src/api/routes/tests/routing.spec.js +1 -1
  292. package/src/api/routes/tests/user.spec.js +1 -1
  293. package/src/api/routes/tests/utilities/TestFunctions.js +1 -1
  294. package/src/api/routes/user.js +1 -1
  295. package/src/api/routes/view.js +1 -1
  296. package/src/api/routes/webhook.js +1 -1
  297. package/src/app.ts +1 -1
  298. package/src/automations/bullboard.js +1 -1
  299. package/src/automations/steps/executeQuery.js +1 -1
  300. package/src/automations/utils.js +1 -1
  301. package/src/constants/index.js +3 -3
  302. package/src/constants/screens.js +1 -1
  303. package/src/db/client.js +1 -1
  304. package/src/db/utils.js +1 -1
  305. package/src/definitions/datasource.ts +15 -0
  306. package/src/environment.js +1 -0
  307. package/src/integrations/dynamodb.ts +18 -0
  308. package/src/integrations/rest.ts +78 -17
  309. package/src/integrations/s3.ts +18 -7
  310. package/src/integrations/tests/rest.spec.js +287 -24
  311. package/src/middleware/authorized.js +2 -2
  312. package/src/middleware/builder.js +2 -2
  313. package/src/middleware/currentapp.js +11 -7
  314. package/src/middleware/tests/authorized.spec.js +2 -2
  315. package/src/middleware/tests/currentapp.spec.js +35 -41
  316. package/src/middleware/tests/usageQuota.spec.js +1 -1
  317. package/src/middleware/usageQuota.js +1 -1
  318. package/src/tests/utilities/TestConfiguration.js +55 -8
  319. package/src/tests/utilities/structures.js +2 -2
  320. package/src/threads/automation.js +2 -2
  321. package/src/threads/query.js +59 -3
  322. package/src/threads/utils.js +3 -53
  323. package/src/utilities/budibaseDir.js +1 -1
  324. package/src/utilities/fileSystem/utilities.js +1 -1
  325. package/src/utilities/global.js +8 -5
  326. package/src/utilities/index.js +2 -2
  327. package/src/utilities/redis.js +1 -1
  328. package/src/utilities/rowProcessor/index.js +5 -1
  329. package/src/utilities/security.js +5 -2
  330. package/src/utilities/usageQuota.js +2 -2
  331. package/src/utilities/workerRequests.js +3 -3
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">92.39% </span>
26
+ <span class="strong">87.06% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>85/92</span>
28
+ <span class='fraction'>101/116</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">81.08% </span>
33
+ <span class="strong">68.96% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>30/37</span>
35
+ <span class='fraction'>40/58</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">91.66% </span>
40
+ <span class="strong">92.3% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>11/12</span>
42
+ <span class='fraction'>12/13</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">93.18% </span>
47
+ <span class="strong">87.5% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>82/88</span>
49
+ <span class='fraction'>98/112</span>
50
50
  </div>
51
51
 
52
52
 
@@ -230,54 +230,122 @@
230
230
  <a name='L171'></a><a href='#L171'>171</a>
231
231
  <a name='L172'></a><a href='#L172'>172</a>
232
232
  <a name='L173'></a><a href='#L173'>173</a>
233
- <a name='L174'></a><a href='#L174'>174</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
234
- <span class="cline-any cline-yes">1x</span>
235
- <span class="cline-any cline-yes">1x</span>
236
- <span class="cline-any cline-yes">1x</span>
237
- <span class="cline-any cline-yes">1x</span>
238
- <span class="cline-any cline-yes">1x</span>
233
+ <a name='L174'></a><a href='#L174'>174</a>
234
+ <a name='L175'></a><a href='#L175'>175</a>
235
+ <a name='L176'></a><a href='#L176'>176</a>
236
+ <a name='L177'></a><a href='#L177'>177</a>
237
+ <a name='L178'></a><a href='#L178'>178</a>
238
+ <a name='L179'></a><a href='#L179'>179</a>
239
+ <a name='L180'></a><a href='#L180'>180</a>
240
+ <a name='L181'></a><a href='#L181'>181</a>
241
+ <a name='L182'></a><a href='#L182'>182</a>
242
+ <a name='L183'></a><a href='#L183'>183</a>
243
+ <a name='L184'></a><a href='#L184'>184</a>
244
+ <a name='L185'></a><a href='#L185'>185</a>
245
+ <a name='L186'></a><a href='#L186'>186</a>
246
+ <a name='L187'></a><a href='#L187'>187</a>
247
+ <a name='L188'></a><a href='#L188'>188</a>
248
+ <a name='L189'></a><a href='#L189'>189</a>
249
+ <a name='L190'></a><a href='#L190'>190</a>
250
+ <a name='L191'></a><a href='#L191'>191</a>
251
+ <a name='L192'></a><a href='#L192'>192</a>
252
+ <a name='L193'></a><a href='#L193'>193</a>
253
+ <a name='L194'></a><a href='#L194'>194</a>
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>
263
+ <a name='L204'></a><a href='#L204'>204</a>
264
+ <a name='L205'></a><a href='#L205'>205</a>
265
+ <a name='L206'></a><a href='#L206'>206</a>
266
+ <a name='L207'></a><a href='#L207'>207</a>
267
+ <a name='L208'></a><a href='#L208'>208</a>
268
+ <a name='L209'></a><a href='#L209'>209</a>
269
+ <a name='L210'></a><a href='#L210'>210</a>
270
+ <a name='L211'></a><a href='#L211'>211</a>
271
+ <a name='L212'></a><a href='#L212'>212</a>
272
+ <a name='L213'></a><a href='#L213'>213</a>
273
+ <a name='L214'></a><a href='#L214'>214</a>
274
+ <a name='L215'></a><a href='#L215'>215</a>
275
+ <a name='L216'></a><a href='#L216'>216</a>
276
+ <a name='L217'></a><a href='#L217'>217</a>
277
+ <a name='L218'></a><a href='#L218'>218</a>
278
+ <a name='L219'></a><a href='#L219'>219</a>
279
+ <a name='L220'></a><a href='#L220'>220</a>
280
+ <a name='L221'></a><a href='#L221'>221</a>
281
+ <a name='L222'></a><a href='#L222'>222</a>
282
+ <a name='L223'></a><a href='#L223'>223</a>
283
+ <a name='L224'></a><a href='#L224'>224</a>
284
+ <a name='L225'></a><a href='#L225'>225</a>
285
+ <a name='L226'></a><a href='#L226'>226</a>
286
+ <a name='L227'></a><a href='#L227'>227</a>
287
+ <a name='L228'></a><a href='#L228'>228</a>
288
+ <a name='L229'></a><a href='#L229'>229</a>
289
+ <a name='L230'></a><a href='#L230'>230</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">2x</span>
290
+ <span class="cline-any cline-yes">2x</span>
291
+ <span class="cline-any cline-yes">2x</span>
292
+ <span class="cline-any cline-yes">2x</span>
293
+ <span class="cline-any cline-yes">2x</span>
294
+ <span class="cline-any cline-yes">2x</span>
239
295
  <span class="cline-any cline-neutral">&nbsp;</span>
296
+ <span class="cline-any cline-yes">2x</span>
297
+ <span class="cline-any cline-yes">2x</span>
240
298
  <span class="cline-any cline-neutral">&nbsp;</span>
241
299
  <span class="cline-any cline-neutral">&nbsp;</span>
242
- <span class="cline-any cline-yes">11x</span>
243
- <span class="cline-any cline-yes">11x</span>
244
- <span class="cline-any cline-yes">11x</span>
245
- <span class="cline-any cline-yes">11x</span>
246
- <span class="cline-any cline-yes">11x</span>
247
- <span class="cline-any cline-yes">11x</span>
248
- <span class="cline-any cline-yes">11x</span>
249
- <span class="cline-any cline-yes">11x</span>
250
- <span class="cline-any cline-yes">11x</span>
251
300
  <span class="cline-any cline-neutral">&nbsp;</span>
301
+ <span class="cline-any cline-yes">15x</span>
302
+ <span class="cline-any cline-yes">15x</span>
303
+ <span class="cline-any cline-yes">15x</span>
304
+ <span class="cline-any cline-yes">15x</span>
305
+ <span class="cline-any cline-yes">15x</span>
306
+ <span class="cline-any cline-yes">15x</span>
307
+ <span class="cline-any cline-yes">15x</span>
308
+ <span class="cline-any cline-yes">15x</span>
309
+ <span class="cline-any cline-yes">15x</span>
310
+ <span class="cline-any cline-yes">15x</span>
252
311
  <span class="cline-any cline-neutral">&nbsp;</span>
253
312
  <span class="cline-any cline-neutral">&nbsp;</span>
254
- <span class="cline-any cline-yes">11x</span>
255
- <span class="cline-any cline-yes">11x</span>
256
313
  <span class="cline-any cline-neutral">&nbsp;</span>
314
+ <span class="cline-any cline-yes">15x</span>
315
+ <span class="cline-any cline-yes">15x</span>
257
316
  <span class="cline-any cline-neutral">&nbsp;</span>
258
317
  <span class="cline-any cline-neutral">&nbsp;</span>
259
- <span class="cline-any cline-yes">12x</span>
260
318
  <span class="cline-any cline-neutral">&nbsp;</span>
319
+ <span class="cline-any cline-yes">16x</span>
320
+ <span class="cline-any cline-neutral">&nbsp;</span>
321
+ <span class="cline-any cline-yes">16x</span>
322
+ <span class="cline-any cline-yes">16x</span>
323
+ <span class="cline-any cline-neutral">&nbsp;</span>
324
+ <span class="cline-any cline-neutral">&nbsp;</span>
325
+ <span class="cline-any cline-yes">16x</span>
326
+ <span class="cline-any cline-no">&nbsp;</span>
327
+ <span class="cline-any cline-neutral">&nbsp;</span>
328
+ <span class="cline-any cline-neutral">&nbsp;</span>
329
+ <span class="cline-any cline-yes">16x</span>
330
+ <span class="cline-any cline-yes">16x</span>
331
+ <span class="cline-any cline-yes">2x</span>
332
+ <span class="cline-any cline-neutral">&nbsp;</span>
333
+ <span class="cline-any cline-yes">14x</span>
334
+ <span class="cline-any cline-neutral">&nbsp;</span>
335
+ <span class="cline-any cline-yes">14x</span>
336
+ <span class="cline-any cline-yes">14x</span>
337
+ <span class="cline-any cline-yes">14x</span>
338
+ <span class="cline-any cline-yes">14x</span>
339
+ <span class="cline-any cline-yes">14x</span>
340
+ <span class="cline-any cline-yes">14x</span>
261
341
  <span class="cline-any cline-yes">12x</span>
262
342
  <span class="cline-any cline-yes">12x</span>
263
343
  <span class="cline-any cline-yes">12x</span>
264
344
  <span class="cline-any cline-yes">12x</span>
265
- <span class="cline-any cline-yes">2x</span>
266
- <span class="cline-any cline-neutral">&nbsp;</span>
267
- <span class="cline-any cline-yes">10x</span>
268
- <span class="cline-any cline-neutral">&nbsp;</span>
269
- <span class="cline-any cline-yes">10x</span>
270
- <span class="cline-any cline-yes">10x</span>
271
- <span class="cline-any cline-yes">10x</span>
272
- <span class="cline-any cline-yes">10x</span>
273
- <span class="cline-any cline-yes">10x</span>
274
- <span class="cline-any cline-yes">8x</span>
275
- <span class="cline-any cline-yes">8x</span>
276
- <span class="cline-any cline-yes">8x</span>
277
345
  <span class="cline-any cline-neutral">&nbsp;</span>
278
346
  <span class="cline-any cline-neutral">&nbsp;</span>
279
347
  <span class="cline-any cline-neutral">&nbsp;</span>
280
- <span class="cline-any cline-yes">10x</span>
348
+ <span class="cline-any cline-yes">14x</span>
281
349
  <span class="cline-any cline-no">&nbsp;</span>
282
350
  <span class="cline-any cline-neutral">&nbsp;</span>
283
351
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -286,7 +354,7 @@
286
354
  <span class="cline-any cline-neutral">&nbsp;</span>
287
355
  <span class="cline-any cline-neutral">&nbsp;</span>
288
356
  <span class="cline-any cline-neutral">&nbsp;</span>
289
- <span class="cline-any cline-yes">10x</span>
357
+ <span class="cline-any cline-yes">14x</span>
290
358
  <span class="cline-any cline-neutral">&nbsp;</span>
291
359
  <span class="cline-any cline-neutral">&nbsp;</span>
292
360
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -299,30 +367,30 @@
299
367
  <span class="cline-any cline-neutral">&nbsp;</span>
300
368
  <span class="cline-any cline-neutral">&nbsp;</span>
301
369
  <span class="cline-any cline-neutral">&nbsp;</span>
302
- <span class="cline-any cline-yes">9x</span>
303
- <span class="cline-any cline-yes">7x</span>
370
+ <span class="cline-any cline-yes">13x</span>
371
+ <span class="cline-any cline-yes">11x</span>
304
372
  <span class="cline-any cline-neutral">&nbsp;</span>
305
373
  <span class="cline-any cline-neutral">&nbsp;</span>
306
374
  <span class="cline-any cline-neutral">&nbsp;</span>
307
- <span class="cline-any cline-yes">9x</span>
375
+ <span class="cline-any cline-yes">13x</span>
308
376
  <span class="cline-any cline-no">&nbsp;</span>
309
377
  <span class="cline-any cline-neutral">&nbsp;</span>
310
378
  <span class="cline-any cline-neutral">&nbsp;</span>
311
379
  <span class="cline-any cline-neutral">&nbsp;</span>
312
- <span class="cline-any cline-yes">9x</span>
380
+ <span class="cline-any cline-yes">13x</span>
313
381
  <span class="cline-any cline-neutral">&nbsp;</span>
314
- <span class="cline-any cline-yes">9x</span>
382
+ <span class="cline-any cline-yes">13x</span>
315
383
  <span class="cline-any cline-no">&nbsp;</span>
316
384
  <span class="cline-any cline-neutral">&nbsp;</span>
317
385
  <span class="cline-any cline-neutral">&nbsp;</span>
318
- <span class="cline-any cline-yes">9x</span>
386
+ <span class="cline-any cline-yes">13x</span>
319
387
  <span class="cline-any cline-neutral">&nbsp;</span>
320
388
  <span class="cline-any cline-neutral">&nbsp;</span>
321
389
  <span class="cline-any cline-neutral">&nbsp;</span>
322
- <span class="cline-any cline-yes">3x</span>
323
- <span class="cline-any cline-yes">3x</span>
324
- <span class="cline-any cline-yes">3x</span>
325
- <span class="cline-any cline-yes">3x</span>
390
+ <span class="cline-any cline-yes">5x</span>
391
+ <span class="cline-any cline-yes">5x</span>
392
+ <span class="cline-any cline-yes">5x</span>
393
+ <span class="cline-any cline-yes">5x</span>
326
394
  <span class="cline-any cline-neutral">&nbsp;</span>
327
395
  <span class="cline-any cline-neutral">&nbsp;</span>
328
396
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -336,68 +404,112 @@
336
404
  <span class="cline-any cline-neutral">&nbsp;</span>
337
405
  <span class="cline-any cline-neutral">&nbsp;</span>
338
406
  <span class="cline-any cline-neutral">&nbsp;</span>
339
- <span class="cline-any cline-yes">4x</span>
340
- <span class="cline-any cline-yes">4x</span>
341
- <span class="cline-any cline-yes">4x</span>
342
- <span class="cline-any cline-yes">4x</span>
343
- <span class="cline-any cline-yes">4x</span>
344
- <span class="cline-any cline-yes">3x</span>
407
+ <span class="cline-any cline-yes">6x</span>
408
+ <span class="cline-any cline-yes">6x</span>
409
+ <span class="cline-any cline-yes">6x</span>
410
+ <span class="cline-any cline-yes">6x</span>
411
+ <span class="cline-any cline-yes">6x</span>
412
+ <span class="cline-any cline-yes">5x</span>
345
413
  <span class="cline-any cline-neutral">&nbsp;</span>
346
414
  <span class="cline-any cline-neutral">&nbsp;</span>
347
415
  <span class="cline-any cline-neutral">&nbsp;</span>
348
- <span class="cline-any cline-yes">3x</span>
349
- <span class="cline-any cline-yes">3x</span>
416
+ <span class="cline-any cline-yes">5x</span>
417
+ <span class="cline-any cline-yes">5x</span>
350
418
  <span class="cline-any cline-neutral">&nbsp;</span>
351
419
  <span class="cline-any cline-yes">1x</span>
352
420
  <span class="cline-any cline-neutral">&nbsp;</span>
353
- <span class="cline-any cline-yes">4x</span>
421
+ <span class="cline-any cline-yes">6x</span>
354
422
  <span class="cline-any cline-neutral">&nbsp;</span>
355
423
  <span class="cline-any cline-neutral">&nbsp;</span>
356
424
  <span class="cline-any cline-neutral">&nbsp;</span>
357
- <span class="cline-any cline-yes">12x</span>
358
- <span class="cline-any cline-yes">12x</span>
425
+ <span class="cline-any cline-yes">16x</span>
426
+ <span class="cline-any cline-yes">16x</span>
359
427
  <span class="cline-any cline-no">&nbsp;</span>
360
428
  <span class="cline-any cline-neutral">&nbsp;</span>
361
- <span class="cline-any cline-yes">12x</span>
362
- <span class="cline-any cline-yes">12x</span>
363
- <span class="cline-any cline-yes">12x</span>
429
+ <span class="cline-any cline-yes">16x</span>
430
+ <span class="cline-any cline-yes">16x</span>
431
+ <span class="cline-any cline-yes">16x</span>
364
432
  <span class="cline-any cline-yes">2x</span>
365
433
  <span class="cline-any cline-yes">2x</span>
366
434
  <span class="cline-any cline-neutral">&nbsp;</span>
367
435
  <span class="cline-any cline-neutral">&nbsp;</span>
368
- <span class="cline-any cline-yes">12x</span>
436
+ <span class="cline-any cline-yes">16x</span>
369
437
  <span class="cline-any cline-neutral">&nbsp;</span>
370
- <span class="cline-any cline-yes">9x</span>
371
- <span class="cline-any cline-yes">9x</span>
438
+ <span class="cline-any cline-yes">11x</span>
439
+ <span class="cline-any cline-yes">11x</span>
372
440
  <span class="cline-any cline-neutral">&nbsp;</span>
373
- <span class="cline-any cline-yes">4x</span>
441
+ <span class="cline-any cline-yes">6x</span>
374
442
  <span class="cline-any cline-no">&nbsp;</span>
375
443
  <span class="cline-any cline-neutral">&nbsp;</span>
376
444
  <span class="cline-any cline-neutral">&nbsp;</span>
377
- <span class="cline-any cline-yes">4x</span>
378
- <span class="cline-any cline-yes">4x</span>
445
+ <span class="cline-any cline-yes">6x</span>
446
+ <span class="cline-any cline-yes">6x</span>
379
447
  <span class="cline-any cline-neutral">&nbsp;</span>
380
- <span class="cline-any cline-yes">9x</span>
381
- <span class="cline-any cline-yes">9x</span>
382
- <span class="cline-any cline-yes">9x</span>
383
- <span class="cline-any cline-yes">4x</span>
384
- <span class="cline-any cline-yes">4x</span>
448
+ <span class="cline-any cline-yes">11x</span>
449
+ <span class="cline-any cline-yes">11x</span>
450
+ <span class="cline-any cline-yes">11x</span>
451
+ <span class="cline-any cline-yes">6x</span>
452
+ <span class="cline-any cline-yes">6x</span>
385
453
  <span class="cline-any cline-neutral">&nbsp;</span>
386
454
  <span class="cline-any cline-neutral">&nbsp;</span>
387
455
  <span class="cline-any cline-neutral">&nbsp;</span>
388
456
  <span class="cline-any cline-neutral">&nbsp;</span>
389
- <span class="cline-any cline-yes">4x</span>
457
+ <span class="cline-any cline-yes">6x</span>
390
458
  <span class="cline-any cline-neutral">&nbsp;</span>
391
459
  <span class="cline-any cline-neutral">&nbsp;</span>
392
- <span class="cline-any cline-yes">12x</span>
460
+ <span class="cline-any cline-yes">16x</span>
393
461
  <span class="cline-any cline-neutral">&nbsp;</span>
394
462
  <span class="cline-any cline-neutral">&nbsp;</span>
395
463
  <span class="cline-any cline-neutral">&nbsp;</span>
396
- <span class="cline-any cline-yes">1x</span>
397
- <span class="cline-any cline-yes">8x</span>
398
- <span class="cline-any cline-yes">8x</span>
464
+ <span class="cline-any cline-yes">16x</span>
399
465
  <span class="cline-any cline-neutral">&nbsp;</span>
400
- <span class="cline-any cline-yes">6x</span>
466
+ <span class="cline-any cline-neutral">&nbsp;</span>
467
+ <span class="cline-any cline-yes">16x</span>
468
+ <span class="cline-any cline-yes">19x</span>
469
+ <span class="cline-any cline-no">&nbsp;</span>
470
+ <span class="cline-any cline-neutral">&nbsp;</span>
471
+ <span class="cline-any cline-yes">19x</span>
472
+ <span class="cline-any cline-neutral">&nbsp;</span>
473
+ <span class="cline-any cline-no">&nbsp;</span>
474
+ <span class="cline-any cline-yes">19x</span>
475
+ <span class="cline-any cline-neutral">&nbsp;</span>
476
+ <span class="cline-any cline-yes">19x</span>
477
+ <span class="cline-any cline-neutral">&nbsp;</span>
478
+ <span class="cline-any cline-yes">19x</span>
479
+ <span class="cline-any cline-no">&nbsp;</span>
480
+ <span class="cline-any cline-neutral">&nbsp;</span>
481
+ <span class="cline-any cline-yes">19x</span>
482
+ <span class="cline-any cline-neutral">&nbsp;</span>
483
+ <span class="cline-any cline-neutral">&nbsp;</span>
484
+ <span class="cline-any cline-neutral">&nbsp;</span>
485
+ <span class="cline-any cline-no">&nbsp;</span>
486
+ <span class="cline-any cline-neutral">&nbsp;</span>
487
+ <span class="cline-any cline-neutral">&nbsp;</span>
488
+ <span class="cline-any cline-yes">16x</span>
489
+ <span class="cline-any cline-neutral">&nbsp;</span>
490
+ <span class="cline-any cline-neutral">&nbsp;</span>
491
+ <span class="cline-any cline-neutral">&nbsp;</span>
492
+ <span class="cline-any cline-neutral">&nbsp;</span>
493
+ <span class="cline-any cline-no">&nbsp;</span>
494
+ <span class="cline-any cline-no">&nbsp;</span>
495
+ <span class="cline-any cline-neutral">&nbsp;</span>
496
+ <span class="cline-any cline-neutral">&nbsp;</span>
497
+ <span class="cline-any cline-neutral">&nbsp;</span>
498
+ <span class="cline-any cline-neutral">&nbsp;</span>
499
+ <span class="cline-any cline-neutral">&nbsp;</span>
500
+ <span class="cline-any cline-neutral">&nbsp;</span>
501
+ <span class="cline-any cline-neutral">&nbsp;</span>
502
+ <span class="cline-any cline-no">&nbsp;</span>
503
+ <span class="cline-any cline-neutral">&nbsp;</span>
504
+ <span class="cline-any cline-yes">16x</span>
505
+ <span class="cline-any cline-neutral">&nbsp;</span>
506
+ <span class="cline-any cline-neutral">&nbsp;</span>
507
+ <span class="cline-any cline-neutral">&nbsp;</span>
508
+ <span class="cline-any cline-yes">2x</span>
509
+ <span class="cline-any cline-yes">10x</span>
510
+ <span class="cline-any cline-yes">10x</span>
511
+ <span class="cline-any cline-neutral">&nbsp;</span>
512
+ <span class="cline-any cline-yes">8x</span>
401
513
  <span class="cline-any cline-neutral">&nbsp;</span>
402
514
  <span class="cline-any cline-neutral">&nbsp;</span>
403
515
  <span class="cline-any cline-yes">2x</span>
@@ -410,6 +522,9 @@ const { integrations } = require("../integrations")
410
522
  const { processStringSync } = require("@budibase/string-templates")
411
523
  const CouchDB = require("../db")
412
524
  &nbsp;
525
+ const IS_TRIPLE_BRACE = new RegExp(/^{{3}.*}{3}$/)
526
+ const IS_HANDLEBARS = new RegExp(/^{{2}.*}{2}$/)
527
+ &nbsp;
413
528
  class QueryRunner {
414
529
  constructor(input, flags = { noRecursiveQuery: false }) {
415
530
  this.appId = input.appId
@@ -417,6 +532,7 @@ class QueryRunner {
417
532
  this.queryVerb = input.queryVerb
418
533
  this.fields = input.fields
419
534
  this.parameters = input.parameters
535
+ this.pagination = input.pagination
420
536
  this.transformer = input.transformer
421
537
  this.queryId = input.queryId
422
538
  this.noRecursiveQuery = flags.noRecursiveQuery
@@ -432,7 +548,13 @@ class QueryRunner {
432
548
  let { datasource, fields, queryVerb, transformer } = this
433
549
  // pre-query, make sure datasource variables are added to parameters
434
550
  const parameters = await this.addDatasourceVariables()
435
- const query = threadUtils.enrichQueryFields(fields, parameters)
551
+ let query = this.enrichQueryFields(fields, parameters)
552
+ &nbsp;
553
+ // Add pagination values for REST queries
554
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (this.pagination) {
555
+ <span class="cstat-no" title="statement not covered" > query.paginationValues = this.pagination</span>
556
+ }
557
+ &nbsp;
436
558
  const Integration = integrations[datasource.source]
437
559
  if (!Integration) {
438
560
  throw "Integration type does not exist."
@@ -442,11 +564,13 @@ class QueryRunner {
442
564
  let output = threadUtils.formatResponse(await integration[queryVerb](query))
443
565
  let rows = output,
444
566
  info = undefined,
445
- extra = undefined
567
+ extra = undefined,
568
+ pagination = undefined
446
569
  if (threadUtils.hasExtraData(output)) {
447
570
  rows = output.data
448
571
  info = output.info
449
572
  extra = output.extra
573
+ pagination = output.pagination
450
574
  }
451
575
  &nbsp;
452
576
  // transform as required
@@ -488,7 +612,7 @@ class QueryRunner {
488
612
  <span class="cstat-no" title="statement not covered" > integration.end()</span>
489
613
  }
490
614
  &nbsp;
491
- return { rows, keys, info, extra }
615
+ return { rows, keys, info, extra, pagination }
492
616
  }
493
617
  &nbsp;
494
618
  async runAnotherQuery(queryId, parameters) {
@@ -564,6 +688,50 @@ class QueryRunner {
564
688
  }
565
689
  return parameters
566
690
  }
691
+ &nbsp;
692
+ enrichQueryFields(fields, parameters = <span class="branch-0 cbranch-no" title="branch not covered" >{})</span> {
693
+ const enrichedQuery = {}
694
+ &nbsp;
695
+ // enrich the fields with dynamic parameters
696
+ for (let key of Object.keys(fields)) {
697
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (fields[key] == null) {
698
+ <span class="cstat-no" title="statement not covered" > continue</span>
699
+ }
700
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (typeof fields[key] === "object") {
701
+ // enrich nested fields object
702
+ <span class="cstat-no" title="statement not covered" > enrichedQuery[key] = this.enrichQueryFields(fields[key], parameters)</span>
703
+ } else if (typeof fields[key] === "string") {
704
+ // enrich string value as normal
705
+ let value = fields[key]
706
+ // add triple brace to avoid escaping e.g. '=' in cookie header
707
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (IS_HANDLEBARS.test(value) &amp;&amp; <span class="branch-1 cbranch-no" title="branch not covered" >!IS_TRIPLE_BRACE.test(value))</span> {
708
+ <span class="cstat-no" title="statement not covered" > value = `{${value}}`</span>
709
+ }
710
+ enrichedQuery[key] = processStringSync(value, parameters, {
711
+ noHelpers: true,
712
+ })
713
+ } else <span class="missing-if-branch" title="else path not taken" >E</span>{
714
+ <span class="cstat-no" title="statement not covered" > enrichedQuery[key] = fields[key]</span>
715
+ }
716
+ }
717
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (
718
+ enrichedQuery.json ||
719
+ enrichedQuery.customData ||
720
+ enrichedQuery.requestBody
721
+ ) {
722
+ <span class="cstat-no" title="statement not covered" > try {</span>
723
+ <span class="cstat-no" title="statement not covered" > enrichedQuery.json = JSON.parse(</span>
724
+ enrichedQuery.json ||
725
+ enrichedQuery.customData ||
726
+ enrichedQuery.requestBody
727
+ )
728
+ } catch (err) {
729
+ // no json found, ignore
730
+ }
731
+ <span class="cstat-no" title="statement not covered" > delete enrichedQuery.customData</span>
732
+ }
733
+ return enrichedQuery
734
+ }
567
735
  }
568
736
  &nbsp;
569
737
  module.exports = (input, callback) =&gt; {
@@ -583,7 +751,7 @@ module.exports = (input, callback) =&gt; {
583
751
  <div class='footer quiet pad2 space-top1 center small'>
584
752
  Code coverage generated by
585
753
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
586
- at Tue Jan 11 2022 13:49:36 GMT+0000 (Coordinated Universal Time)
754
+ at Thu Jan 13 2022 14:18:11 GMT+0000 (Coordinated Universal Time)
587
755
  </div>
588
756
  </div>
589
757
  <script src="../prettify.js"></script>