@budibase/server 1.0.27-alpha.0 → 1.0.27-alpha.4

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 (199) hide show
  1. package/__mocks__/node-fetch.ts +18 -0
  2. package/builder/assets/{index.4a13c4cb.css → index.431d69df.css} +1 -1
  3. package/builder/assets/index.d849c3ee.js +1348 -0
  4. package/builder/index.html +2 -2
  5. package/coverage/clover.xml +576 -476
  6. package/coverage/coverage-final.json +26 -26
  7. package/coverage/lcov-report/api/controllers/analytics.js.html +1 -1
  8. package/coverage/lcov-report/api/controllers/apikeys.js.html +1 -1
  9. package/coverage/lcov-report/api/controllers/application.js.html +54 -54
  10. package/coverage/lcov-report/api/controllers/auth.js.html +1 -1
  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 +1 -1
  14. package/coverage/lcov-report/api/controllers/component.js.html +4 -4
  15. package/coverage/lcov-report/api/controllers/datasource.js.html +49 -49
  16. package/coverage/lcov-report/api/controllers/dev.js.html +1 -1
  17. package/coverage/lcov-report/api/controllers/hosting.js.html +1 -1
  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 +1 -1
  23. package/coverage/lcov-report/api/controllers/query/index.html +19 -19
  24. package/coverage/lcov-report/api/controllers/query/index.js.html +66 -150
  25. package/coverage/lcov-report/api/controllers/query/validation.js.html +6 -3
  26. package/coverage/lcov-report/api/controllers/role.js.html +1 -1
  27. package/coverage/lcov-report/api/controllers/routing.js.html +1 -1
  28. package/coverage/lcov-report/api/controllers/row/external.js.html +1 -1
  29. package/coverage/lcov-report/api/controllers/row/index.html +16 -16
  30. package/coverage/lcov-report/api/controllers/row/index.js.html +1 -1
  31. package/coverage/lcov-report/api/controllers/row/internal.js.html +1 -1
  32. package/coverage/lcov-report/api/controllers/row/internalSearch.js.html +7 -4
  33. package/coverage/lcov-report/api/controllers/row/utils.js.html +29 -20
  34. package/coverage/lcov-report/api/controllers/screen.js.html +1 -1
  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 +1 -1
  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 +1 -1
  49. package/coverage/lcov-report/api/index.html +1 -1
  50. package/coverage/lcov-report/api/index.js.html +5 -5
  51. package/coverage/lcov-report/api/routes/analytics.js.html +1 -1
  52. package/coverage/lcov-report/api/routes/apikeys.js.html +1 -1
  53. package/coverage/lcov-report/api/routes/application.js.html +1 -1
  54. package/coverage/lcov-report/api/routes/auth.js.html +1 -1
  55. package/coverage/lcov-report/api/routes/automation.js.html +1 -1
  56. package/coverage/lcov-report/api/routes/backup.js.html +1 -1
  57. package/coverage/lcov-report/api/routes/cloud.js.html +1 -1
  58. package/coverage/lcov-report/api/routes/component.js.html +1 -1
  59. package/coverage/lcov-report/api/routes/datasource.js.html +1 -1
  60. package/coverage/lcov-report/api/routes/deploy.js.html +1 -1
  61. package/coverage/lcov-report/api/routes/dev.js.html +1 -1
  62. package/coverage/lcov-report/api/routes/hosting.js.html +1 -1
  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 +1 -1
  66. package/coverage/lcov-report/api/routes/layout.js.html +1 -1
  67. package/coverage/lcov-report/api/routes/metadata.js.html +1 -1
  68. package/coverage/lcov-report/api/routes/permission.js.html +1 -1
  69. package/coverage/lcov-report/api/routes/query.js.html +24 -3
  70. package/coverage/lcov-report/api/routes/role.js.html +1 -1
  71. package/coverage/lcov-report/api/routes/routing.js.html +1 -1
  72. package/coverage/lcov-report/api/routes/row.js.html +1 -1
  73. package/coverage/lcov-report/api/routes/screen.js.html +1 -1
  74. package/coverage/lcov-report/api/routes/script.js.html +1 -1
  75. package/coverage/lcov-report/api/routes/static.js.html +1 -1
  76. package/coverage/lcov-report/api/routes/table.js.html +1 -1
  77. package/coverage/lcov-report/api/routes/templates.js.html +1 -1
  78. package/coverage/lcov-report/api/routes/user.js.html +1 -1
  79. package/coverage/lcov-report/api/routes/view.js.html +1 -1
  80. package/coverage/lcov-report/api/routes/webhook.js.html +1 -1
  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 +1 -1
  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 +31 -7
  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 +5 -5
  114. package/coverage/lcov-report/constants/index.html +1 -1
  115. package/coverage/lcov-report/constants/index.js.html +1 -1
  116. package/coverage/lcov-report/constants/layouts.js.html +1 -1
  117. package/coverage/lcov-report/constants/screens.js.html +1 -1
  118. package/coverage/lcov-report/db/client.js.html +1 -1
  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 +18 -18
  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 +63 -63
  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 +10 -10
  137. package/coverage/lcov-report/middleware/builder.js.html +8 -8
  138. package/coverage/lcov-report/middleware/currentapp.js.html +28 -28
  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 +17 -17
  142. package/coverage/lcov-report/middleware/selfhost.js.html +1 -1
  143. package/coverage/lcov-report/middleware/usageQuota.js.html +1 -1
  144. package/coverage/lcov-report/middleware/utils.js.html +2 -2
  145. package/coverage/lcov-report/threads/automation.js.html +1 -1
  146. package/coverage/lcov-report/threads/index.html +30 -30
  147. package/coverage/lcov-report/threads/index.js.html +11 -11
  148. package/coverage/lcov-report/threads/query.js.html +358 -91
  149. package/coverage/lcov-report/threads/utils.js.html +352 -10
  150. package/coverage/lcov-report/utilities/bcrypt.js.html +1 -1
  151. package/coverage/lcov-report/utilities/budibaseDir.js.html +1 -1
  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 +13 -13
  155. package/coverage/lcov-report/utilities/index.html +1 -1
  156. package/coverage/lcov-report/utilities/index.js.html +9 -9
  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 +46 -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 +1 -1
  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 +1 -1
  169. package/coverage/lcov.info +1001 -826
  170. package/dist/api/controllers/query/import/sources/curl.js +5 -1
  171. package/dist/api/controllers/query/index.js +29 -47
  172. package/dist/api/controllers/query/validation.js +2 -1
  173. package/dist/api/controllers/row/internalSearch.js +2 -1
  174. package/dist/api/controllers/row/utils.js +13 -6
  175. package/dist/api/routes/query.js +3 -1
  176. package/dist/automations/steps/executeQuery.js +8 -1
  177. package/dist/integrations/rest.js +2 -2
  178. package/dist/package.json +5 -4
  179. package/dist/tests/utilities/TestConfiguration.js +7 -0
  180. package/dist/threads/query.js +145 -52
  181. package/dist/threads/utils.js +104 -0
  182. package/dist/tsconfig.tsbuildinfo +1 -1
  183. package/dist/utilities/rowProcessor/index.js +13 -0
  184. package/package.json +6 -5
  185. package/src/api/controllers/query/import/sources/curl.ts +5 -1
  186. package/src/api/controllers/query/index.js +27 -55
  187. package/src/api/controllers/query/validation.js +2 -1
  188. package/src/api/controllers/row/internalSearch.js +2 -1
  189. package/src/api/controllers/row/utils.js +11 -8
  190. package/src/api/routes/query.js +8 -1
  191. package/src/api/routes/tests/query.spec.js +88 -0
  192. package/src/automations/steps/executeQuery.js +9 -1
  193. package/src/definitions/datasource.ts +10 -0
  194. package/src/integrations/rest.ts +5 -2
  195. package/src/tests/utilities/TestConfiguration.js +10 -0
  196. package/src/threads/query.js +145 -56
  197. package/src/threads/utils.js +114 -0
  198. package/src/utilities/rowProcessor/index.js +12 -0
  199. package/builder/assets/index.e2f56628.js +0 -1320
@@ -100,7 +100,7 @@ exports.find = async function (ctx) {
100
100
  <div class='footer quiet pad2 space-top1 center small'>
101
101
  Code coverage generated by
102
102
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
103
- at Mon Dec 20 2021 09:21:37 GMT+0000 (Coordinated Universal Time)
103
+ at Wed Jan 05 2022 15:28:48 GMT+0000 (Coordinated Universal Time)
104
104
  </div>
105
105
  </div>
106
106
  <script src="../../prettify.js"></script>
@@ -217,7 +217,7 @@ exports.destroy = async function (ctx) {
217
217
  <div class='footer quiet pad2 space-top1 center small'>
218
218
  Code coverage generated by
219
219
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
220
- at Mon Dec 20 2021 09:21:37 GMT+0000 (Coordinated Universal Time)
220
+ at Wed Jan 05 2022 15:28:48 GMT+0000 (Coordinated Universal Time)
221
221
  </div>
222
222
  </div>
223
223
  <script src="../../prettify.js"></script>
@@ -202,7 +202,7 @@ exports.getMetadata = async ctx =&gt; {
202
202
  <div class='footer quiet pad2 space-top1 center small'>
203
203
  Code coverage generated by
204
204
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
205
- at Mon Dec 20 2021 09:21:37 GMT+0000 (Coordinated Universal Time)
205
+ at Wed Jan 05 2022 15:28:48 GMT+0000 (Coordinated Universal Time)
206
206
  </div>
207
207
  </div>
208
208
  <script src="../../prettify.js"></script>
@@ -589,7 +589,7 @@ exports.removePermission = async function (ctx) {
589
589
  <div class='footer quiet pad2 space-top1 center small'>
590
590
  Code coverage generated by
591
591
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
592
- at Mon Dec 20 2021 09:21:37 GMT+0000 (Coordinated Universal Time)
592
+ at Wed Jan 05 2022 15:28:48 GMT+0000 (Coordinated Universal Time)
593
593
  </div>
594
594
  </div>
595
595
  <script src="../../prettify.js"></script>
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">73.95% </span>
26
+ <span class="strong">79.76% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>71/96</span>
28
+ <span class='fraction'>67/84</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">64.7% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>12/27</span>
35
+ <span class='fraction'>11/17</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">92.3% </span>
40
+ <span class="strong">85.71% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>12/13</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">73.68% </span>
47
+ <span class="strong">79.51% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>70/95</span>
49
+ <span class='fraction'>66/83</span>
50
50
  </div>
51
51
 
52
52
 
@@ -74,17 +74,17 @@
74
74
  </thead>
75
75
  <tbody><tr>
76
76
  <td class="file medium" data-value="index.js"><a href="index.js.html">index.js</a></td>
77
- <td data-value="71.59" class="pic medium">
78
- <div class="chart"><div class="cover-fill" style="width: 71%"></div><div class="cover-empty" style="width: 29%"></div></div>
77
+ <td data-value="77.63" class="pic medium">
78
+ <div class="chart"><div class="cover-fill" style="width: 77%"></div><div class="cover-empty" style="width: 23%"></div></div>
79
79
  </td>
80
- <td data-value="71.59" class="pct medium">71.59%</td>
81
- <td data-value="88" class="abs medium">63/88</td>
82
- <td data-value="44.44" class="pct low">44.44%</td>
83
- <td data-value="27" class="abs low">12/27</td>
84
- <td data-value="90" class="pct high">90%</td>
85
- <td data-value="10" class="abs high">9/10</td>
86
- <td data-value="71.26" class="pct medium">71.26%</td>
87
- <td data-value="87" class="abs medium">62/87</td>
80
+ <td data-value="77.63" class="pct medium">77.63%</td>
81
+ <td data-value="76" class="abs medium">59/76</td>
82
+ <td data-value="64.7" class="pct medium">64.7%</td>
83
+ <td data-value="17" class="abs medium">11/17</td>
84
+ <td data-value="81.81" class="pct high">81.81%</td>
85
+ <td data-value="11" class="abs high">9/11</td>
86
+ <td data-value="77.33" class="pct medium">77.33%</td>
87
+ <td data-value="75" class="abs medium">58/75</td>
88
88
  </tr>
89
89
 
90
90
  <tr>
@@ -110,7 +110,7 @@
110
110
  <div class='footer quiet pad2 space-top1 center small'>
111
111
  Code coverage generated by
112
112
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
113
- at Mon Dec 20 2021 09:21:37 GMT+0000 (Coordinated Universal Time)
113
+ at Wed Jan 05 2022 15:28:48 GMT+0000 (Coordinated Universal Time)
114
114
  </div>
115
115
  </div>
116
116
  <script src="../../../prettify.js"></script>
@@ -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">77.63% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>63/88</span>
28
+ <span class='fraction'>59/76</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">64.7% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>12/27</span>
35
+ <span class='fraction'>11/17</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">81.81% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>9/10</span>
42
+ <span class='fraction'>9/11</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">77.33% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>62/87</span>
49
+ <span class='fraction'>58/75</span>
50
50
  </div>
51
51
 
52
52
 
@@ -231,36 +231,7 @@
231
231
  <a name='L172'></a><a href='#L172'>172</a>
232
232
  <a name='L173'></a><a href='#L173'>173</a>
233
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></td><td class="line-coverage quiet"><span class="cline-any cline-yes">34x</span>
263
- <span class="cline-any cline-yes">34x</span>
234
+ <a name='L175'></a><a href='#L175'>175</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">34x</span>
264
235
  <span class="cline-any cline-neutral">&nbsp;</span>
265
236
  <span class="cline-any cline-neutral">&nbsp;</span>
266
237
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -337,80 +308,69 @@
337
308
  <span class="cline-any cline-neutral">&nbsp;</span>
338
309
  <span class="cline-any cline-neutral">&nbsp;</span>
339
310
  <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>
311
+ <span class="cline-any cline-yes">25x</span>
312
+ <span class="cline-any cline-yes">25x</span>
342
313
  <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>
314
+ <span class="cline-any cline-yes">25x</span>
315
+ <span class="cline-any cline-yes">25x</span>
345
316
  <span class="cline-any cline-neutral">&nbsp;</span>
346
317
  <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>
318
+ <span class="cline-any cline-yes">25x</span>
319
+ <span class="cline-any cline-yes">25x</span>
349
320
  <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>
321
+ <span class="cline-any cline-yes">25x</span>
322
+ <span class="cline-any cline-yes">25x</span>
352
323
  <span class="cline-any cline-neutral">&nbsp;</span>
353
324
  <span class="cline-any cline-neutral">&nbsp;</span>
325
+ <span class="cline-any cline-yes">34x</span>
326
+ <span class="cline-any cline-yes">3x</span>
327
+ <span class="cline-any cline-yes">3x</span>
354
328
  <span class="cline-any cline-neutral">&nbsp;</span>
355
- <span class="cline-any cline-yes">4x</span>
329
+ <span class="cline-any cline-yes">3x</span>
330
+ <span class="cline-any cline-yes">1x</span>
331
+ <span class="cline-any cline-yes">1x</span>
356
332
  <span class="cline-any cline-neutral">&nbsp;</span>
333
+ <span class="cline-any cline-yes">3x</span>
357
334
  <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
335
  <span class="cline-any cline-neutral">&nbsp;</span>
362
- <span class="cline-any cline-no">&nbsp;</span>
336
+ <span class="cline-any cline-yes">34x</span>
337
+ <span class="cline-any cline-yes">6x</span>
363
338
  <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>
339
+ <span class="cline-any cline-yes">6x</span>
366
340
  <span class="cline-any cline-neutral">&nbsp;</span>
367
- <span class="cline-any cline-no">&nbsp;</span>
368
341
  <span class="cline-any cline-neutral">&nbsp;</span>
369
342
  <span class="cline-any cline-neutral">&nbsp;</span>
343
+ <span class="cline-any cline-yes">6x</span>
370
344
  <span class="cline-any cline-neutral">&nbsp;</span>
371
- <span class="cline-any cline-no">&nbsp;</span>
345
+ <span class="cline-any cline-yes">6x</span>
346
+ <span class="cline-any cline-yes">6x</span>
372
347
  <span class="cline-any cline-neutral">&nbsp;</span>
373
348
  <span class="cline-any cline-neutral">&nbsp;</span>
374
349
  <span class="cline-any cline-neutral">&nbsp;</span>
375
- <span class="cline-any cline-yes">4x</span>
376
- <span class="cline-any cline-neutral">&nbsp;</span>
377
- <span class="cline-any cline-neutral">&nbsp;</span>
378
- <span class="cline-any cline-neutral">&nbsp;</span>
379
- <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
350
  <span class="cline-any cline-neutral">&nbsp;</span>
383
351
  <span class="cline-any cline-neutral">&nbsp;</span>
384
352
  <span class="cline-any cline-neutral">&nbsp;</span>
385
353
  <span class="cline-any cline-neutral">&nbsp;</span>
386
354
  <span class="cline-any cline-neutral">&nbsp;</span>
387
355
  <span class="cline-any cline-neutral">&nbsp;</span>
356
+ <span class="cline-any cline-yes">5x</span>
388
357
  <span class="cline-any cline-neutral">&nbsp;</span>
389
- <span class="cline-any cline-no">&nbsp;</span>
390
358
  <span class="cline-any cline-neutral">&nbsp;</span>
391
359
  <span class="cline-any cline-neutral">&nbsp;</span>
392
- <span class="cline-any cline-yes">4x</span>
393
360
  <span class="cline-any cline-neutral">&nbsp;</span>
394
361
  <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
362
  <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
363
  <span class="cline-any cline-yes">1x</span>
402
364
  <span class="cline-any cline-neutral">&nbsp;</span>
403
- <span class="cline-any cline-yes">3x</span>
404
365
  <span class="cline-any cline-neutral">&nbsp;</span>
405
366
  <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
367
  <span class="cline-any cline-neutral">&nbsp;</span>
409
368
  <span class="cline-any cline-yes">2x</span>
410
369
  <span class="cline-any cline-neutral">&nbsp;</span>
411
370
  <span class="cline-any cline-yes">2x</span>
412
371
  <span class="cline-any cline-yes">2x</span>
413
372
  <span class="cline-any cline-neutral">&nbsp;</span>
373
+ <span class="cline-any cline-neutral">&nbsp;</span>
414
374
  <span class="cline-any cline-yes">2x</span>
415
375
  <span class="cline-any cline-yes">2x</span>
416
376
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -419,11 +379,12 @@
419
379
  <span class="cline-any cline-neutral">&nbsp;</span>
420
380
  <span class="cline-any cline-neutral">&nbsp;</span>
421
381
  <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
382
  <span class="cline-any cline-neutral">&nbsp;</span>
425
383
  <span class="cline-any cline-neutral">&nbsp;</span>
384
+ <span class="cline-any cline-yes">1x</span>
385
+ <span class="cline-any cline-yes">1x</span>
426
386
  <span class="cline-any cline-neutral">&nbsp;</span>
387
+ <span class="cline-any cline-no">&nbsp;</span>
427
388
  <span class="cline-any cline-neutral">&nbsp;</span>
428
389
  <span class="cline-any cline-neutral">&nbsp;</span>
429
390
  <span class="cline-any cline-yes">1x</span>
@@ -433,26 +394,9 @@
433
394
  <span class="cline-any cline-yes">34x</span>
434
395
  <span class="cline-any cline-yes">2x</span>
435
396
  <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
- <span class="cline-any cline-neutral">&nbsp;</span>
443
- <span class="cline-any cline-neutral">&nbsp;</span>
444
- <span class="cline-any cline-neutral">&nbsp;</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-neutral">&nbsp;</span>
448
- <span class="cline-any cline-neutral">&nbsp;</span>
449
- <span class="cline-any cline-neutral">&nbsp;</span>
450
- <span class="cline-any cline-neutral">&nbsp;</span>
451
- <span class="cline-any cline-neutral">&nbsp;</span>
452
- <span class="cline-any cline-yes">1x</span>
453
- <span class="cline-any cline-neutral">&nbsp;</span>
454
- <span class="cline-any cline-yes">1x</span>
455
397
  <span class="cline-any cline-neutral">&nbsp;</span>
398
+ <span class="cline-any cline-yes">34x</span>
399
+ <span class="cline-any cline-no">&nbsp;</span>
456
400
  <span class="cline-any cline-neutral">&nbsp;</span>
457
401
  <span class="cline-any cline-neutral">&nbsp;</span>
458
402
  <span class="cline-any cline-yes">34x</span>
@@ -461,8 +405,7 @@
461
405
  <span class="cline-any cline-yes">1x</span>
462
406
  <span class="cline-any cline-yes">1x</span>
463
407
  <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")
408
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">const CouchDB = require("../../../db")
466
409
  const {
467
410
  generateQueryID,
468
411
  getQueryParams,
@@ -553,47 +496,6 @@ exports.save = async function (ctx) {
553
496
  ctx.message = `Query ${query.name} saved successfully.`
554
497
  }
555
498
  &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
499
  exports.find = async function (ctx) {
598
500
  const db = new CouchDB(ctx.appId)
599
501
  const query = enrichQueries(await db.get(ctx.params.queryId))
@@ -609,16 +511,20 @@ exports.preview = async function (ctx) {
609
511
  const db = new CouchDB(ctx.appId)
610
512
  &nbsp;
611
513
  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)
514
+ // preview may not have a queryId as it hasn't been saved, but if it does
515
+ // this stops dynamic variables from calling the same query
516
+ const { fields, parameters, queryVerb, transformer, queryId } =
517
+ ctx.request.body
615
518
  &nbsp;
616
519
  try {
617
520
  const { rows, keys, info, extra } = await Runner.run({
521
+ appId: ctx.appId,
618
522
  datasource,
619
523
  queryVerb,
620
- query: enrichedQuery,
524
+ fields,
525
+ parameters,
621
526
  transformer,
527
+ queryId,
622
528
  })
623
529
  &nbsp;
624
530
  ctx.body = {
@@ -632,31 +538,41 @@ exports.preview = async function (ctx) {
632
538
  }
633
539
  }
634
540
  &nbsp;
635
- exports.execute = async function (ctx) {
541
+ async function execute(ctx, opts = <span class="branch-0 cbranch-no" title="branch not covered" >{ rowsOnly: false })</span> {
636
542
  const db = new CouchDB(ctx.appId)
637
543
  &nbsp;
638
544
  const query = await db.get(ctx.params.queryId)
639
545
  const datasource = await db.get(query.datasourceId)
640
- &nbsp;
641
- const enrichedQuery = await enrichQueryFields(
642
- query.fields,
643
- ctx.request.body.parameters
644
- )
645
546
  &nbsp;
646
547
  // call the relevant CRUD method on the integration class
647
548
  try {
648
- const { rows } = await Runner.run({
549
+ const { rows, extra } = await Runner.run({
550
+ appId: ctx.appId,
649
551
  datasource,
650
552
  queryVerb: query.queryVerb,
651
- query: enrichedQuery,
553
+ fields: query.fields,
554
+ parameters: ctx.request.body.parameters,
652
555
  transformer: query.transformer,
556
+ queryId: ctx.params.queryId,
653
557
  })
654
- ctx.body = rows
558
+ if (opts &amp;&amp; opts.rowsOnly) {
559
+ ctx.body = rows
560
+ } else <span class="missing-if-branch" title="else path not taken" >E</span>{
561
+ <span class="cstat-no" title="statement not covered" > ctx.body = { data: rows, ...extra }</span>
562
+ }
655
563
  } catch (err) {
656
564
  ctx.throw(400, err)
657
565
  }
658
566
  }
659
567
  &nbsp;
568
+ exports.executeV1 = async function (ctx) {
569
+ return execute(ctx, { rowsOnly: true })
570
+ }
571
+ &nbsp;
572
+ exports.executeV2 = <span class="fstat-no" title="function not covered" >as</span>ync function (ctx) {
573
+ <span class="cstat-no" title="statement not covered" > return execute(ctx, { rowsOnly: false })</span>
574
+ }
575
+ &nbsp;
660
576
  exports.destroy = async function (ctx) {
661
577
  const db = new CouchDB(ctx.appId)
662
578
  await db.remove(ctx.params.queryId, ctx.params.revId)
@@ -670,7 +586,7 @@ exports.destroy = async function (ctx) {
670
586
  <div class='footer quiet pad2 space-top1 center small'>
671
587
  Code coverage generated by
672
588
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
673
- at Mon Dec 20 2021 09:21:37 GMT+0000 (Coordinated Universal Time)
589
+ at Wed Jan 05 2022 15:28:48 GMT+0000 (Coordinated Universal Time)
674
590
  </div>
675
591
  </div>
676
592
  <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 Mon Dec 20 2021 09:21:37 GMT+0000 (Coordinated Universal Time)
193
+ at Wed Jan 05 2022 15:28:48 GMT+0000 (Coordinated Universal Time)
191
194
  </div>
192
195
  </div>
193
196
  <script src="../../../prettify.js"></script>
@@ -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 Mon Dec 20 2021 09:21:37 GMT+0000 (Coordinated Universal Time)
361
+ at Wed Jan 05 2022 15:28:48 GMT+0000 (Coordinated Universal Time)
362
362
  </div>
363
363
  </div>
364
364
  <script src="../../prettify.js"></script>
@@ -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 Mon Dec 20 2021 09:21:37 GMT+0000 (Coordinated Universal Time)
346
+ at Wed Jan 05 2022 15:28:48 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 Mon Dec 20 2021 09:21:37 GMT+0000 (Coordinated Universal Time)
760
+ at Wed Jan 05 2022 15:28:48 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.5% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>313/595</span>
28
+ <span class='fraction'>315/600</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.55% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>307/583</span>
49
+ <span class='fraction'>309/588</span>
50
50
  </div>
51
51
 
52
52
 
@@ -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 Mon Dec 20 2021 09:21:37 GMT+0000 (Coordinated Universal Time)
158
+ at Wed Jan 05 2022 15:28:48 GMT+0000 (Coordinated Universal Time)
159
159
  </div>
160
160
  </div>
161
161
  <script src="../../../prettify.js"></script>